Escolar Documentos
Profissional Documentos
Cultura Documentos
ATPS Analise e Complexidade de Algoritmos
ATPS Analise e Complexidade de Algoritmos
SUPERVISIONADAS
Cincia da Computao
7 Srie
Anlise e Complexidade de Algoritmos
AUTORIA:
Marcela Cristiani Ferreira
Faculdade Anhanguera de Limeira
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:
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;
ttulo da atividade;
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
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.
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.
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.
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.
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.
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.
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;
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.
Pg. 7 de 8
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.
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.