Você está na página 1de 1

UNIVERSIDADE

FEDERAL DE PERNAMBUCO
CENTRO DE INFORMATICA
SISTEMAS DE INFORMACAO
IF969 – Algoritmos e Estruturas de Dados
Prof.: Renato Vimieiro

Projeto 3 – Busca em profundidade

1 – Objetivos

O objetivo desse projeto é praticar conceitos básicos de algoritmos em grafos. O aluno implementará a estrutura
de dados Grafo. Em seguida, implementará o algoritmo de busca em profundidade baseado nessa estrutura.

2 – O que implementar?

Você deverá implementar um programa em Python 3 que lê um grafo de um arquivo texto, seguindo o formato
disponível no arquivo exemplo anexo ao projeto. Criado o grafo, seu programa deverá executar uma busca em
profundidade nesse grafo, seguindo o algoritmo visto em sala de aula. Ao final, o programa deve exibir o vetor de
antecessores resultante da busca.

O arquivo zip disponível na página da disciplina contém a estrutura básica do programa. Várias partes do código
foram removidas para serem implementadas por você. Para essas partes, forma acrescentados comentários com a
descrição básica da funcionalidade esperada. Você deve garantir que sua implementação atenda as necessidades
do programa.

3 – Métricas de avaliação

Serão avaliados:

1. A completude do programa
2. A organização do código e sua devida documentação
3. A correção na implementação das funcionalidades

Você deverá anexar um arquivo mostrando a execução do programa. Você deve executar pelo menos 10 testes,
sendo que desses, pelo menos, dois testes são com grafos com no mínimo 20 vértices e 20 arestas, e outros dois
com no mínimo 50 vértices e 100 arestas. Os arquivos deverão ser anexados à entrega.

Os grafos teste podem (ou melhor devem) ser gerados aleatoriamente.

Durante a correção, os resultados reportados serão replicados. Caso a saída não corresponda ao que foi enviado
pelo aluno, isso caracterizará o plágio do trabalho. Nesse caso, o projeto será prontamente anulado. Se não for
possível replicar os passos, haverão penalidades compatíveis com o problema.

4 – O que e quando entregar?

- Você deverá entregar os códigos desenvolvidos devidamente identificados por comentários, e os arquivos de
teste e resultado. Não comprima os arquivos, especialmente com rar! Os arquivos devem ser nomeados usando
as mesmas restrições de identificadores em Python.
- A data limite de entrega do projeto é 24/06 por email até às 23h59.
- A multa por atraso é de 0,75 ponto no primeiro dia, e 0,3 por dia a partir do segundo dia. Após o terceiro dia de
atraso o trabalho não será mais aceito.
- Não será tolerado plágio da internet ou de colegas. Em caso de cópia de trabalhos, todos os envolvidos serão
punidos com a perda total dos pontos.