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

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

Upload: ethan-bernard

Post on 02-Jan-2016

14 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 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

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

Planejar Planejar RotasRotas

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.

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

Ribeirão PretoRibeirão Preto

AraçatubaAraçatuba

BauruBauru

AssisAssis

São CarlosSão Carlos

Presidente PrudentePresidente Prudente120km120km60min60min

200km200km120min120min

170km170km120min120min

150km150km90min90min

325km325km180min180min

99km99km50min50min

140km140km70min70min

Dados não-reaisDados não-reais

Rota no Mapa

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

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.

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

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 acordocom o valor passado para X, onde X = 1...3.

X = 1 - será mostrado na tela que a estrada é boaX = 2 - será mostrado na tela que a estrada é mediaX = 3 - será mostrado na tela que a estrada é ruim

arco(Origem,Destino,Tempo,Dist,CondicaoDaEstrada,DisponibilidadeDePosto)

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

not( member(CidadeX,Historia)),

member( ) - verifica se determinada cidade já faz parte da listade cidades que compõem a rota até a cidade destino.

not( ) - nega a existencia de uma cidade na lista de rota, casoa cidade jah tenha sido incluida, isto eh, as cidades jah adicionadas nao serao repetidas na rota.

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

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.

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

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).

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

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.

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

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).

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

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

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

posto(cidadeA, cidadeB, S)

• informaria a disponibilidade de postos de combustivelentre a cidadeA e a cidadeB, onde S poderia se 1 caso houvessempostos, 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 = mediaCond = ruim