Trabalho prático de Inteligência Artificial, FEUP
Determinar um plano de evacuação de um conjunto de turistas retidos numa montanha.
Pretende-se evacuar turistas que ficaram retidos numa montanha. Estão disponíveis veículos de
transporte localizados em n pontos/locais estratégicos.
É também conhecido o local do abrigo para onde devem ser evacuados os turistas.
Os veículos possuem capacidade limitada e só existe um veículo em cada um dos n pontos estratégicos
considerados.
O programa deve determinar o percurso ótimo para evacuar todos os turistas no menor tempo. O veículo
de transporte pode não possuir capacidade suficiente para transportar todos os turistas que se
encontram num determinado local, pelo que deve: o mesmo veículo efetuar mais que uma viagem; ou usar
um segundo veículo.
Considere duas versões deste trabalho:
> versão 1: Os turistas a evacuar estão no mesmo local.
> versão 2: Os turistas a evacuar estão em locais distintos.
Figura 1: Exemplo de Grafo Representativo da situação descrita
Inicialmente o grupo efetuou pesquisa sobre a melhor forma de mostrar o grafo representativo dos
locais. Optamos por utilizar a framework JUNG (Java Universal Network/Graph Framework) [1].
O código necessário para o grafo foi implementado utilizando a linguagem de programação JAVA.
Criamos classes que representam componentes do grafo, assim como elementos que representam pessoas
e veículos. Para a criação do grafo é efetuada a leitura de um ficheiro XML, o que permite adicionar
locais mais facilmente consoante o desenvolvimento. Os locais não têm coordenadas fixas, apenas as
ligações entre os mesmos são representadas pela distância, e nome da ligação. Do mesmo modo, é
efetuada uma leitura para obter os grupos de turistas que se encontram em cada local. De forma a
guardar estas informações, foram criadas estruturas de dados, nomeadamente listas.
Cláudia Rodrigues
David Falcão
Pedro Miranda