A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Planejar uma Rota enunciado do exercício mapa (um caso de teste)

Apresentações semelhantes


Apresentação em tema: "Planejar uma Rota enunciado do exercício mapa (um caso de teste)"— Transcrição da apresentação:

1 Planejar uma Rota enunciado do exercício mapa (um caso de teste)
características do programa

2 Planejar Rotas Escrever programa que planeja uma rota entre duas cidades fornecendo horários de duração de viagem. O mapa deve incluir quilômetro, condições de estrada e disponibilidade de postos de combustível.

3 Rota no Mapa Ribeirão Preto São Carlos Araçatuba Bauru
Assis São Carlos Presidente Prudente 120km 60min 200km 120min 170km 150km 90min 325km 180min 99km 50min 140km 70min Dados não-reais

4 Este exercício é um exemplo de aplicação no PROLOG onde o usuário terá as informações sobre o horário de duração de viagem de uma cidade Origem (Ribeirão Preto) para uma cidade Destino (Assis). A informação sobre a distância, condições de estrada e disponibilidade de posto de combustível também podem ser obtidas como informações extras. Podendo mais tarde, a pesquisa ser incrementado a partir de critérios analisados sobre a disponibilidade de posto de gazolina e as condições da estrada obter o melhor caminho.

5 estrada(X) - informa as condicões da estrada de acordo
A operação abaixo indica que existe um caminho único partindo de 'Origem’ até 'Destino', o qual leva 'Tempo' minutos para ser percorrido numa distância de 'Dist'. 'CondicaoDaEstrada' assumirá os valores mostrados acima conforme as condicões da estrada, e 'DisponibilidadeDePosto' assumira 0 (zero) caso existam postos de combustivel nesse trajeto, ou 1 (hum) caso contrário. estrada(X) - informa as condicões da estrada de acordo com o valor passado para X, onde X = X = 1 - será mostrado na tela que a estrada é boa X = 2 - será mostrado na tela que a estrada é media X = 3 - será mostrado na tela que a estrada é ruim arco(Origem,Destino,Tempo,Dist,CondicaoDaEstrada,DisponibilidadeDePosto)

6 not( member(CidadeX,Historia)),
member( ) - verifica se determinada cidade já faz parte da lista de cidades que compõem a rota até a cidade destino. not( ) - nega a existencia de uma cidade na lista de rota, caso a cidade jah tenha sido incluida, isto eh, as cidades jah adicionadas nao serao repetidas na rota.

7 Distancia is Distancia1 + Dist.
Foi utilizado o operador matematico de adicao (+) para calcular a distancia total entre a cidade de origem e o destino. Analogamente, esse operador foi empregado para calcular o tempo total de viagem entre a cidade de origem e o destino. Tempo is Tempo1 + T, Distancia is Distancia1 + Dist. Nota-se que a sintaxe nesse caso deve ser, por exemplo, para o tempo : Tempo is Temp1 + T Onde a variavel Tempo recebera o conteudo da variavel Temp1 mais o conteudo de T. Uma sintaxe do tipo: Tempo = Temp1 + T causaria um erro, pois o PROLOG tentaria unificar Tempo com Temp1 + T, que visivelmente sao coisas distintas.

8 Utiliza-se o operador write( ) para produzir a saída dos resultados na tela, de forma que o usuário possa visualizá-los. Ao final da execucão, o programa mostra a distância total e o tempo total para percorrer de Origem até o Destino. escreve(Rota,CondcaoEstrada,Tempo,Distancia,Origem,Destino):- write('Para ir da cidade '),write(Origem),write(' ate a cidade '), write(Destino), nl, write('O tempo gasto eh '),write(Tempo), nl, write('A distancia total eh '), write(Distancia),nl, escreve(Rota,CE).

9 Para a resolucão deste problema, foi imprescíndivel o uso de listas para montar a rota das cidades que ligam a Origem ate o Destino. Isso foi feito devido a facilidade de expansão, pois a Base de Conhecimento dos arcos que ligam as cidades pode aumentar. As listas são uma ótima abordagem para o tratamento desse tipo de problema, podendo ser facilmente extraída da lista o primeiro elemento, ou mesmo verificar se determinada cidade já faz parte da lista de rotas.

10 arco(ribeirãoPreto,Araçatuba,180,325,3,1).
A utilizacão das estrutura de arcos é importante como forma de diminuir o espaço ocupado pela Base de Conhecimento e diminuir a quantidade de interacões, favorecendo assim a rapidez na resposta. arco(ribeirãoPreto,Araçatuba,180,325,3,1). arco(ribeirãoPreto,sãoCarlos,50,99,1,0). arco(araçatuba,presidentePrudente,120,200,2,0). arco(araçatuba,bauru,90,150,2,1). arco(presidentePrudente,assis,60,120, 1,1). arco(assis,bauru,110,170,3,0).

11 dist(cidadeA, cidadeB, Km) duracao(cidadeA, cidadeB, Tempo)
Poderiamos ter representada a base de conhecimento da seguinte maneira : dist(cidadeA, cidadeB, Km) informaria a distancia da cidadeA ateh a cidadeB em Km duracao(cidadeA, cidadeB, Tempo) informaria a duracao da viagem da cidadeA ateh a cidadeB em minutos

12 posto(cidadeA, cidadeB, S)
informaria a disponibilidade de postos de combustivel entre a cidadeA e a cidadeB, onde S poderia se 1 caso houvessem postos, ou S seria 0 caso contrario estrada(cidadeA, cidadeB, Cond) informaria as condicoes da estrada entre a cidadeA e a cidadeB, onde: Cond = boa Cond = media Cond = ruim


Carregar ppt "Planejar uma Rota enunciado do exercício mapa (um caso de teste)"

Apresentações semelhantes


Anúncios Google