Exercicio

7.9. Exercício de Implementação O primeiro passo para irmos de encontro a uma "solução" para problemas complexos, é você ganhar um "feeling" para estes problemas.

Para poder ter uma noção de o que significa resolver um problema complexo, nós vamos implementar o problema do caixeiro viajante, que todos vimos em Teoria dos Grafos, e observar o seu comportamento no tempo:

Para a solução do Problema do Caixeiro Viajante existem muitos algoritmos, dentre eles o "Método Algébrico de Christofides", o Algoritmo de Rubin e o Algoritmo de Roberts e Flores. O mais interessante é o de Roberts e Flores pois pode ser implementado de forma recursiva bastante simples em uma linguagem como Prolog. Podemos também implementá-lo em "C" ou Pascal sem muitos problemas.

Exercício 2.1 (prazo: 2 semanas):


Exercício 2.2 (prazo: 2 semanas):

Torres de Hanoi

Este é um jogo milenar consistindo de três pinos e de um conjunto variável de discos, todos de tamanhos diferentes. Inicialmente os discos estão empilhados em um extremo, o maior embaixo, o menor em cima. O objetivo é colocar todos os discos no outro lado do tabuleiro, na mesma ordem, seguindo as seguintes regras:

O único prerequisito é que nunca um disco maior poderá estar sobre um menor.

Resolva este exercício da mesma forma que o anterios, implementando-o (pesquise na literatura - o mais simples é usar Prolog), rodando-o para 2,3,4,5,10,15,20,30 e 50 discos e plotando o sresultados em uma curva. Identifique a complexidade do problema justificando.


Contents