You are on page 1of 8

ATIVIDADES PRTICAS SUPERVISIONADAS

Cincia da Computao

7 Srie Anlise e Complexidade de Algoritmos

A atividade prtica supervisionada (ATPS) um procedimento metodolgico de ensino-aprendizagem desenvolvido por meio de um conjunto de etapas programadas e supervisionadas e que tem por objetivos: Favorecer a aprendizagem. Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e eficaz. Promover o estudo, a convivncia e o trabalho em grupo. Desenvolver os estudos independentes, sistemticos e o autoaprendizado. Oferecer diferentes ambientes de aprendizagem. Auxiliar no desenvolvimento das competncias requeridas pelas Diretrizes Curriculares Nacionais dos Cursos de Graduao. Promover a aplicao da teoria e conceitos para a soluo de problemas prticos relativos profisso. Direcionar o estudante para a busca do raciocnio crtico e a emancipao intelectual. Para atingir estes objetivos a ATPS prope um desafio e indica os passos a serem percorridos ao longo do semestre para a sua soluo. A sua participao nesta proposta essencial para que adquira as competncias e habilidades requeridas na sua atuao profissional. Aproveite esta oportunidade de estudar e aprender com desafios da vida profissional.

AUTORIA:
Marcela Cristiani Ferreira
Faculdade Anhanguera de Limeira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 2 de 8

COMPETNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio, voc ter desenvolvido as competncias e habilidades que constam, nas Diretrizes Curriculares Nacionais, descritas a seguir. Competncia para identificar, analisar, documentar e solucionar problemas e necessidades passveis de soluo via computao. Capacidade de desenvolvimento para a pesquisa cientfica e tecnolgica. Aplicao eficiente dos princpios de gerenciamento, organizao e busca de informaes. Analisar, organizar, abstrair e relacionar dados e informaes.

Produo Acadmica
Sero produzidos relatrios parciais referentes a cada uma das etapas.

Participao
Para a elaborao dessa atividade, os alunos devero previamente organizar-se em equipes de 1 a 4 participantes e entregar seus nomes, RAs e e-mails ao professor da disciplina. Essas equipes sero mantidas durante todas as etapas.

Padronizao
O material escrito solicitado nessa atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padro: em papel branco, formato A4; com margens esquerda e superior de 3cm, direita e inferior de 2cm; fonte Times New Roman tamanho 12, cor preta; espaamento duplo entre linhas; se houver citaes com mais de trs linhas, devem ser em fonte tamanho 10, com um recuo de 4cm da margem esquerda e espaamento simples entre linhas; com capa, contendo: nome de sua Unidade de Ensino, Curso e Disciplina; nome e RA de cada participante; ttulo da atividade; nome do professor da disciplina; cidade e data da entrega, apresentao ou publicao.

DESAFIO
De acordo com Ziviani (2005), um algoritmo pode ser visto como uma sequncia de aes executveis a fim de obter uma soluo para um determinado tipo de problema. O objetivo da disciplina de Anlise e Complexidade de Algoritmos atribuir ferramentas que auxiliem na deciso de escolha entre dois ou mais algoritmos, qual o melhor para resolver determinado problema, levando em considerao o tempo gasto para executar todas as aes e a quantidade de memria utilizada para armazenamento das informaes. O estudo da complexidade feita atravs de classes assintticas.
1

Consulte o Manual para Elaborao de Trabalhos Acadmicos. Unianhanguera. Disponvel em: <http://www.unianhanguera.edu.br/anhanguera/bibliotecas/normas_bibliograficas/index.html>.

Marcela Cristiani Ferreira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 3 de 8

Esse desafio prope aos alunos fazerem um estudo sobre anlise de classes distintas de algoritmos, sendo elas: algoritmos de ordenao, algoritmos em grafos, algoritmos iterativos e recursivos e algoritmos gulosos, fazendo uso dos conceitos de medidas de complexidade vistos na disciplina de Anlise e Complexidade de Algoritmos. Essas anlises sero feitas para que o aluno possa aplic-las em situaes de deciso entre dois ou mais algoritmos que resolvem certos tipos de problemas. O objetivo do desafio mostrar ao aluno o funcionamento das classes de algoritmos citadas acima e, ao final conhecer uma ferramenta que o ajudar na anlise de complexidade.

Objetivo do Desafio
Elaborar estudo sobre anlise de classes distintas de algoritmos: algoritmos de ordenao, algoritmos em grafos, algoritmos interativos e recursivos e algoritmos gulosos atravs de medidas de complexidade.

ETAPA 1 (tempo para realizao: 4 horas)


Aula-tema: Medidas de Complexidade, anlise assinttica de limites de complexidade. Essa atividade importante para que voc conhea as medidas assintticas de complexidade, considerando que os algoritmos so representados, muitas vezes, por funes matemticas, assim, faz-se um estudo sobre o comportamento assinttico dessas funes. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Ler o Captulo 1 Introduo: Seo 1.3; subsees 1.3.1, 1.3.2, do livro do Ziviani (2005). Passo 2 (Equipe) Definir, de acordo com o texto lido no passo 1, as medidas de complexidade micron ( ), mega ( ) e Theta ( ). Passo 3 (Equipe) Usar as medidas de complexidade descritas acima e fazer as seguintes atividades: 1. Comparar uma funo linear f(n) com uma funo quadrtica g(n) e mostrar que f(n) micron (g(n)), determinando constantes n0 natural e c real positivo; 2. Comparar uma funo exponencial f(n) com uma funo cbica g(n) e mostrar que f(n) mega (g(n)), determinando constantes n0 natural e d real positivo; 3. Comparar duas funes quadrticas f(n) e g(n) e mostrar que f(n) Theta (g(n)), determinando constantes c, d reais positivos e n0 natural.

Marcela Cristiani Ferreira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 4 de 8

Passo 4 (Equipe) Criar um algoritmo que tenha pelo menos dois elementos que sejam comuns a maioria dos algoritmos como, por exemplo, atribuies simples, declaraes, laos, laos aninhados, If-Then-Else. Entregar ao professor o Relatrio 1 com todos os passos descritos nessa etapa.

ETAPA 2 (tempo para realizao: 4 horas)


Aula-tema: Anlise de desempenho de alguns algoritmos clssicos de busca, ordenao e sobre grafos. Essa atividade importante para que voc aprenda a analisar algoritmos de ordenao por seleo e por insero. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Equipe) Citar as vantagens e desvantagens dos algoritmos de ordenao por seleo e de ordenao por insero. Explicar o funcionamento de cada um deles. Passo 2 (Equipe) Criar um algoritmo de ordenao por insero e um de ordenao por seleo para ordenar um vetor de tamanho n. Passo 3 (Equipe) Explicar o funcionamento, passo a passo, dos algoritmos criados no passo 2 dessa etapa. Passo 4 (Equipe) Escrever a complexidade, linha a linha, de cada um dos algoritmos criados no passo 2 dessa etapa. Entregar ao professor o Relatrio 2 com todos os passos descritos nessa etapa.

ETAPA 3 (tempo para realizao: 4 horas)


Aula-tema: Anlise de desempenho de alguns algoritmos clssicos de busca, ordenao e sobre grafos. Essa atividade importante para que voc aprenda a representar grafos atravs de listas de adjacncia e matriz de adjacncia. Para realiz-la, importante seguir os passos descritos.

Marcela Cristiani Ferreira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 5 de 8

PASSOS
Passo 1 (Equipe) Criar um grafo com no mnimo 5 vrtices, represente-o atravs da matriz de adjacncia e atravs da lista de adjacncia e faam um algoritmo que d o grau de cada um de seus vrtices, usando as duas maneiras representadas. Apresentar a complexidade dos algoritmos criados. Passo 2 (Equipe) Desenhar o grafo ponderado que representa a seguinte situao: Supor que um funcionrio encarregado de verificar o estado das estradas, deseja planejar a sua rota de inspeo nas estradas que existem entre as cidades A, B, C, D e E. A rota deve se iniciar na cidade A. O custo de cada estrada : Estrada ligando a cidade A cidade B = 3; Estrada ligando a cidade A cidade E = 12; Estrada ligando a cidade B cidade C = 3; Estrada ligando a cidade B cidade D = 2; Estrada ligando a cidade B cidade E = 7; Estrada ligando a cidade C cidade D = 2; Estrada ligando a cidade E cidade D = 6. Passo 3 (Equipe) Fazer a matriz de custos que representa o grafo do passo 2 dessa etapa. Passo 4 (Equipe) Calcular o caminho de custo mnimo para o inspetor percorrer. Entregar ao professor todos os passos da etapa descritos no Relatrio 3.

ETAPA 4 (tempo para realizao: 4 horas)


Aula-tema: Introduo aos principais paradigmas do projeto de algoritmos recursividade. Essa atividade importante para que voc perceba a diferena entre as anlises de um algoritmo recursivo e um algoritmo iterativo. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Pesquisar em Ziviani (2005) ou em Cormen (2002) as diferenas entre os dois tipos de algoritmos: iterativo e recursivo, dando pelo menos um exemplo de cada um deles.

Marcela Cristiani Ferreira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 6 de 8

Passo 2 (Aluno) Pesquisar no livro do Cormen (2002), os mtodos de resoluo de uma equao de recorrncia. Apresentar a equao de recorrncia que representa o algoritmo recursivo extrado do livro do Ziviani (2005), captulo 1, pgina 22:
Pesquisa (n); (1) if n <= 1 (2) then inspecione elemento e termine else begin (3) para cada um dos n elementos inspecione elemento; (4) Pesquisa (n/3); end;

Em seguida, resolva a seguinte equao de recorrncia: T(n) = n + T(n/2); T(1) = 0. Passo 3 (Equipe) Apresentar a equao de recorrncia, resolver e escrever a ordem de complexidade do algoritmo a seguir:
int soma(int n) { int (n == 1) return(1); else return (n + soma(n - 1)); } main ( ) { int n = 4; printf (%d, soma (n)); }

Passo 4 (Equipe) Descrever a ordem de complexidade do algoritmo a seguir, explicando o seu raciocnio. Entregar um ao professor todos os passos da etapa descritos no Relatrio 4.

Marcela Cristiani Ferreira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 7 de 8

funct subsequnciaSomaMxima(v: array Z, n : N) : Z var soma, somaMxima: Z i, j, k : N end begin somaMxima v[1] for i = 1 to n step 1 do for j = i to n step 1 do soma 0 for k = i to j step 1 do soma soma + v[k] od if soma > somaMxima then somaMxima soma fl od od result somaMxima end
Fonte: DHABE, DAVID (2003, p. 8)

ETAPA 5 (tempo para realizao: 4 horas)


Aula-tema: Introduo aos principais paradigmas do projeto de algoritmos: Algoritmos Gulosos e Algoritmos de aproximao. Essa atividade importante para que voc entenda o funcionamento de um algoritmo guloso. Para realiz-la, importante seguir os passos descritos.

PASSOS
Passo 1 (aluno) Pesquisar no livro do Cormen (2002), explicar como o funcionamento do algoritmo guloso e como calculada sua complexidade. Passo 2 (Equipe) Escolher trs listas de tamanhos diferentes e faa a intercalao segundo o algoritmo guloso. Explicar de que forma a ordem da escolha das listas de tamanhos m1, m2 e m3 influencia na complexidade do algoritmo. Passo 3 (Aluno) Ler o artigo: Sistema para Anlise Automtica da Complexidade de Algoritmos No Recursivos no Pior Caso de Marco Antonio de Castro Barbosa. Disponvel em: <https://docs.google.com/fileview?id=0B-Sl6Nl2puCNDAzOTM1MGYtZDllYy00ZmRlLWFhNjctNjQzMThhMWRkY2M5&h>. Acesso em: 27 out. 2010. Em seguida, fazer uma anlise crtica do mesmo.

Marcela Cristiani Ferreira

Cincia da Computao 7 Srie Anlise e Complexidade de Algoritmos

Pg. 8 de 8

Passo 4 (Equipe) Fazer o Relatrio 5 com as informaes referentes a essa etapa e entregar ao professor.

Referncias Bibliogrficas
ZIVIANI, N. Projeto de Algoritmos com implementaes em Pascal e C . 2 edio. So Paulo: Pioneira Thomson Learning, 2005. 552 p. CORMEN, T. H.; LEISERSON, C . E.; RIVEST, R. L.; STEIN, C. Algoritmos: Teoria e Prtica. Traduo da 2 edio Americana. Rio de Janeiro, Elsevier, 2002. 916 p.

Livro Texto da Disciplina


TOSCANI, Veloso. Complexidade de Algoritmos. 3 ed. So Paulo: Bookman, 2012, v.13.

Marcela Cristiani Ferreira

You might also like