1 / 12

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Ribeirão Preto 99km 50min 325km 180min São Carlos Araçatuba 150km 90min 140km 70min Bauru 200km 120min 170km 120min Presidente Prudente 120km 60min Assis Dados não-reais Rota no Mapa

  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. 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 = 1...3. 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. 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. 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. 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

More Related