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

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

Who is Mr Wolf ? Mr Wolf Pesquisa num espaço de estados Resolução de Problemas.

Apresentações semelhantes


Apresentação em tema: "Who is Mr Wolf ? Mr Wolf Pesquisa num espaço de estados Resolução de Problemas."— Transcrição da apresentação:

1

2 Who is Mr Wolf ?

3

4 Mr Wolf

5

6

7

8 Pesquisa num espaço de estados Resolução de Problemas

9  Agentes reflexos Panorâmica

10  Agentes reflexos  Agentes que planeiam e que antecipam os efeitos das suas acções Panorâmica

11  Agentes reflexos  Agentes que planeiam e que antecipam os efeitos das suas acções  Modelo do Mundo/Problema  Grafo de Estados: uma abstracção do problema Panorâmica

12  Resolução de problemas como uma pesquisa num espaço de estados.  Agentes reflexos  Agentes que planeiam e que antecipam os efeitos das suas acções  Modelo do Mundo/Problema  Grafo de Estados: uma abstracção do problema Panorâmica

13  Resolução de problemas como uma pesquisa num espaço de estados.  Uma solução é um plano capaz de atingir os objectivos.  Agentes reflexos  Agentes que planeiam e que antecipam os efeitos das suas acções  Modelo do Mundo/Problema  Grafo de Estados: uma abstracção do problema Panorâmica

14 Formalização de um problema numa pesquisa num grafo Espaço de estados A realidade do problema é abstraída em termos de estados. Só a informação relevante que muda devido aos operadores de transição é que deve estar inscrita nos estados. Transições entre estados As acções determinísticas e discretas levam de um estado X a um estado Y, com um determinado custo. Estado Inicial um estado conhecido) Teste de estado final (satisfação do objectivo) (Pode dar-se o caso de não sabermos quais os estados que satisfazem o nosso objectivo mas sabemos identificar que são finais com um teste de satisfação dos objectivos.

15 Viajando na Roménia O problema consiste em encontrar o caminho mais curto desde Arad até Bucarest.

16 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados

17 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades

18 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço

19 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20

20 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados

21 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados Ir para a cidade adjacente em que o custo é o comprimento da Estrada que liga as 2 cidades.

22 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados Ir para a cidade adjacente em que o custo é o comprimento da Estrada que liga as 2 cidades. Poderíamos ter como custo não a distância mas o tempo ou o combustível gasto ou alguma combinação desses custos.

23 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados Ir para a cidade adjacente em que o custo é o comprimento da Estrada que liga as 2 cidades. Poderíamos ter como custo não a distância mas o tempo ou o combustível gasto ou alguma combinação desses custos. Estado Inicial

24 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados Ir para a cidade adjacente em que o custo é o comprimento da Estrada que liga as 2 cidades. Poderíamos ter como custo não a distância mas o tempo ou o combustível gasto ou alguma combinação desses custos. Estado Inicial Arad

25 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados Ir para a cidade adjacente em que o custo é o comprimento da Estrada que liga as 2 cidades. Poderíamos ter como custo não a distância mas o tempo ou o combustível gasto ou alguma combinação desses custos. Estado Inicial Arad Estado Final

26 Esboço de uma formalização do problema Viajando na Roménia Espaço de estados Cidades Tamanho do espaço Nº de cidades = 20 Transições entre estados Ir para a cidade adjacente em que o custo é o comprimento da Estrada que liga as 2 cidades. Poderíamos ter como custo não a distância mas o tempo ou o combustível gasto ou alguma combinação desses custos. Estado Inicial Arad Estado Final Bucareste

27 Formalização em Prolog do problema Viajando na Roménia Inicial(‘Arad’). final(‘Bucarest’). sucessor(Cid1,Cid2,M,C) :- adjacente(Cid1, Cid2, M,C) ; adjacente(Cid2, Cid1, M, C). % o 3º argumento indica a etiqueta que % identifica o movimento/operador adjacente(‘Oradea’, ’Zerind’, o-z, 71). adjacente(‘Oradea’, ’Sibiu’, o-s, 151). adjacente(‘Arad’, ’Zerind’, a-z, 75). adjacente(‘Arad’, ‘Timisoara’, a-t,118). adjacente(‘Lugoj’, ’Timisoara’, l-t, 111). adjacente(‘Mehadia’, ’Lugoj’, m-l, 70). adjacente(‘Drobeta’, ‘Craiova’, d-c, 120). adjacente(‘Drobeta’, ’Mehadia’, d-m, 75)....

28 O Pacman pode mover-se para Norte, Sul, Este e Oeste. Pacman quer ir até uma determinada posição. Por exemplo uma superPastilha Quando se move para uma célula com pastilha ou superpastilha estas são ignoradas e os fantasmas são inofensivos, andam pelo jogo sem fazer qualquer mal ao Pacman, que os ignora. Só está interessado em encontrar um caminho. objectivo

29 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho

30 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho Apenas a informação relevante para a resolução do problema e a informação que muda devido aos operadores de transição entre estados.

31 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho Apenas a informação relevante para a resolução do problema e a informação que muda devido aos operadores de transição entre estados. Sendo assim, não queremos saber

32 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho Apenas a informação relevante para a resolução do problema e a informação que muda devido aos operadores de transição entre estados. Sendo assim, não queremos saber que cor tem o Pacman, ou os fantasmas, nem as cores ou tipos de pastilhas

33 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho Apenas a informação relevante para a resolução do problema e a informação que muda devido aos operadores de transição entre estados. Sendo assim, não queremos saber que cor tem o Pacman, ou os fantasmas, nem as cores ou tipos de pastilhas as posições das pastilhas ou dos fantasmas

34 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho Apenas a informação relevante para a resolução do problema e a informação que muda devido aos operadores de transição entre estados. Sendo assim, não queremos saber que cor tem o Pacman, ou os fantasmas, nem as cores ou tipos de pastilhas as posições das pastilhas ou dos fantasmas as dimensões do mundo ou as coordenadas das paredes ou das células navegáveis.

35 O que representar em cada estado? Formalização do PacMan quer descobrir um caminho Apenas a informação relevante para a resolução do problema e a informação que muda devido aos operadores de transição entre estados. Sendo assim, não queremos saber que cor tem o Pacman, ou os fantasmas, nem as cores ou tipos de pastilhas as posições das pastilhas ou dos fantasmas as dimensões do mundo ou as coordenadas das paredes ou das células navegáveis. O que muda é apenas a posição do PacMan

36 Coordenadas cartesianas Vamos definir uma grelha de 6 x 30, para representar as células navegáveis ou as paredes. (1,1) (1,6) (30,6) (30,1)

37 Um estado: Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

38 Um estado: é apenas as coordenadas do PacMan Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

39 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

40 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

41 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Estado Inicial: Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

42 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Estado Inicial: posição do Pacman Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

43 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Estado Inicial: posição do Pacman Estado Final: Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

44 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Estado Inicial: posição do Pacman Estado Final: célula objectivo Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

45 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Estado Inicial: posição do Pacman Estado Final: célula objective Transição de estados: Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

46 Um estado: é apenas as coordenadas do PacMan Tamanho do espaço de estados : nº de células navegáveis ~6x30 – #paredes. Estado Inicial: posição do Pacman Estado Final: célula objective Transição de estados: Move o PacMan para uma célula válida ortogonalmente vizinha (a norte, leste, sul, oeste) da sua posição actual, dentro dos limites do tabuleiro. Formalização do Pacman quer descobrir um caminho num problema de Pesquisa

47 Formalização do Pacman quer descobrir um caminho em Prolog % informação estática que % não faz parte do estado navegavel((1,1)). navegavel((1,2)).... navegavel((30,6)). % não precisamos de nos preocupar % com os limites do mundo porque % conhecemos as células navegáveis viz((X,Y),(NX,Y),oeste) :- NX is X – 1. viz((X,Y),(NX,Y),leste) :- NX is X + 1. viz((X,Y),(X,NY),norte) :- NY is Y – 1. viz((X,Y),(X,NY),sul) :- NY is Y + 1. inicial((1,3)). final((30,3)). suc(Est,NEst,Mov,1) :- viz(Est,Nest,Mov), navegavel(NE).

48 Formalização do Pacman quer descobrir um caminho em Prolog (alternativa) % informação estática que % não faz parte do estado parede((2,1)). parede((2,2)).... % temos de verificar os limites % do labirinto. viz((X,Y),(NX,Y),oeste) :- NX >1, NX is X – 1. viz((X,Y),(NX,Y),leste) :- NX < 30, NX is X + 1. viz((X,Y),(X,NY),norte) :- NY > 1, NY is Y – 1. viz((X,Y),(X,NY),sul) :- NY < 6, NY is Y + 1. Inicial((1,3)). final((30,3)). % todos os sucs têm custo 1 suc(Est,NEst,Mov,1) :- viz(Est,NEst,Mov), \+ parede(NEst). Vamos declarar as coordenadas das paredes interiores e não as células navegáveis.

49 O Pacman pode mover-se para Norte, Sul, Este e Oeste. Novo Problema: Pacman quer comer todas as pastilhas Quando se move para uma célula com pastilha, esta é “papada”

50 Espaço de estados Problema de Pesquisa Operador de sucessor Um estado inicial e um teste de satisfação do objectivo Uma solução é uma sequência de acções (um plano) que transformam o estado inicial num estado final (satisfaz objectivo) PacMan quer comer todas as pastilhas

51 O que representar em cada estado? Formalização do PacMan quer comer todas as pastilhas

52 O que representar em cada estado? Formalização do PacMan quer comer todas as pastilhas O que muda e é relevante é: a posição do PacMan e a informação sobre as pastilhas, se foram ou não comidas.

53 Vamos arranjar um sistema de coordenadas para poder com precisão definir a posição do Pacman e as posições que têm pastilha. O que representar em cada estado? 1 2 3 123123

54 Vamos arranjar um sistema de coordenadas para poder com precisão definir a posição do Pacman e as posições que têm pastilha. O que representar em cada estado? O pacman é representado pelas coordenadas da célula que ocupa 1 2 3 123123

55 Vamos arranjar um sistema de coordenadas para poder com precisão definir a posição do Pacman e as posições que têm pastilha. O que representar em cada estado? O pacman é representado pelas coordenadas da célula que ocupa Um vector de booleans para cada pastilha. O 1º elemento do vector seria a pastilha no topo mais à esquerda e o ultimo a pastilha de fundo mais à direita. (função que mapeia as coordenadas de uma posição com pastilha num índice do vector). 1 2 3 123123

56 Vamos arranjar um sistema de coordenadas para poder com precisão definir a posição do Pacman e as posições que têm pastilha. O que representar em cada estado? O pacman é representado pelas coordenadas da célula que ocupa Um vector de booleans para cada pastilha. O 1º elemento do vector seria a pastilha no topo mais à esquerda e o último a pastilha de fundo mais à direita. (função que mapeia as coordenadas de uma posição com pastilha num índice do vector). Teremos então um duplo (PacMan, Pastilhas) em que o Pacman é dado pelo par (X,Y) das suas coordenadas cartesianas e em que Pastilhas é um vector de booleans. 1 2 3 123123

57 Um estado: é um duplo (PacMan, Pastilhas) Tamanho do espaço de estados: ~ 9 X 2 8 Estado Inicial: ((2,2),#(true,true,true,true,true,true,true,true)) Estado Final : (qualquer, #(false,false,false,false,false,false,false,false)) Transição de estados: Move o PacMan para uma célula válida ortogonalmente vizinha (a norte, leste, sul, oeste) da sua posição actual, dentro dos limites do tabuleiro. Se a nova posição contiver uma pastilha então actualiza o vector de booleans. Formalização do Pacman num problema de Pesquisa

58 Um estado: é um duplo (PacMan, Pastilhas) em que as Pastilhs é um conjunto de coordenadas das células com pastilha. Tamanho do espaço de estados : ~ 9 X 2 8 (na verdade são menos) Estado Inicial: ((2,2),{(1,1),(1,2),(1,3),(2,1),(2,3),(3,1),(3,2),(3,3)}) Estado Final : (qualquer, {}) Transição de estados: Move o PacMan para uma célula válida ortogonalmente vizinha (a norte, leste, sul, oeste) da sua posição actual, dentro dos limites do tabuleiro. Se a nova posição contiver uma pastilha então remove a nova posição da lista actual de coordenadas das pastilhas. Formalização alternativa do Pacman num problema de Pesquisa

59 % um estado é dado por uma par com as coordenadas do Pacman e % a lista das coordenadas das pastilhas. inicial( ((2,2), [(1,1),(1,2),(1,3),(2,1),(2,3),(3,1),(3,2),(3,3)]) ). % não interessa onde está o Pacman mas apenas que não restam pastilhas final( (_,[]) ). suc((Pacman,Pastilhas), (NovoPacman,NovasPastilhas),Movimento,1) :- move(Pacman, NovoPacman, Movimento), actualizaPastilhas(Pastilhas, Pacman, NovasPastilhas). Modelização do Pacman em Prolog

60 move((X,Y),(NX,Y),oeste) :- X > 1, NX is X – 1. move((X,Y),(NX,Y),leste) :- X < 3, NX is X + 1. move((X,Y),(X,NY),norte) :- Y > 1, NY is Y – 1. move((X,Y),(X,NY),sul) :- Y < 3, NY is Y + 1. Modelização do Pacman em Prolog (cont.) % se existir pastilha remove-a actualizaPastilhas((X,Y),Pastilhas,Novas) :- select (( X,Y),Pastilhas,Novas). % mantém intactas se a nova posição não % contiver pastilha. actualizaPastilhas((X,Y),Pastilhas,Pastilhas). \+ member((X,Y),Pastilhas).

61 Problema da Torre de Hanoi A Torre de Hanói é um quebra-cabeça inventado ou divulgado por Édouard Lucas em 1883 e que consiste numa base contendo 3 pinos, em cada um dos quais podem ser dispostos discos, uns sobre os outros, por ordem crescente de diâmetro, (de cima para baixo). O problema consiste em passar todos os discos de um pino para outro, por exemplo do pino da esquerda para o do centro, sem que nunca um disco maior fique em cima de um menor..

62 Formalização gráfica do Problema da Torre de Hanoi Estados : Transição entre estados : (custos homogéneos) Estado inicial : Estado final : Tamanho do Espaço : 27

63 O Grafo de Estados das Torres de Hanoi Inicial Final

64 Solução do Problema dasTorres de Hánoi

65 Modelização do Problema da Torre de Hánoi

66 Estados :

67 Modelização do Problema da Torre de Hánoi Estados : Estado inicial : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior.

68 Modelização do Problema da Torre de Hánoi Estados : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior. Estado inicial :

69 Modelização do Problema da Torre de Hánoi Estados : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior. Estado inicial : ([1,2,3],[],[])

70 Modelização do Problema da Torre de Hánoi Estados : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior. Estado inicial : ([1,2,3],[],[]) Estado final :

71 Modelização do Problema da Torre de Hánoi Estados : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior. Estado inicial : ([1,2,3],[],[]) Estado final : ([],[],[1,2,3])

72 Modelização do Problema da Torre de Hánoi Estados : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior. Estado inicial : ([1,2,3],[],[]) Estado final : ([],[],[1,2,3]) Transição entre estados : (custos homogéneos)

73 Modelização do Problema da Torre de Hánoi Estados : Uma lista de 3 pinos em que cada pino é representado por uma pilha de números. 1 para o disco menor, 2 para o do meio e 3 para o maior. Estado inicial : ([1,2,3],[],[]) Estado final : ([],[],[1,2,3]) Transição entre estados : desempilha um dos discos e empilha-o num dos pinos livres ou numa pilha com o topo maior.

74 Modelização em Prolog do Problema da Torre de Hánoi

75 Inicial(([1,2,3],[],[])). final(([],[],[1,2,3])). transfere([P|R],[],R,[P]). transfere([P|R],[Q|S],R,[P,Q|S]) :-  P < Q. suc((P1,P2,P3),(NP1,NP2,P3),transf(1,2),1).  transfere(P1,P2,NP1,NP2). suc((P1,P2,P3),(NP1,P2,NP3),transf(1,3),1).  transfere(P1,P3,NP1,NP3). suc((P1,P2,P3),(P1,NP2,NP3),transf(2,3),1).  transfere(P2,P3,NP2,NP3). suc((P1,P2,P3),(NP1,NP2,P3),transf(2,1),1).  transfere(P2,P1,NP2,NP1). suc((P1,P2,P3),(NP1,P2,NP3),transf(3,1),1).  transfere(P3,P1,NP3,NP1). suc((P1,P2,P3),(P1,NP2,NP3),transf(3,2),1).  transfere(P3,P2,NP3,NP2).

76 Modelização em Prolog do Problema da Torre de Hánoi (2ª versão) Inicial(((e,[1,2,3]),(c,[]),(d,[]))). final(((e[]),(c,[]),(d,[1,2,3]))). transfere([P|R],[],R,[P]). transfere([P|R],[Q|S],R,[P,Q|S]) :- P < Q. suc(Pinos,NovosPinos,transf(X,Y),1). select((X1,P1),Pinos,Pr), select((X2,P2),Pr,Prr), transfere(P1,P2,NP1,NP2), NovosPinos = [(X1,NP1),(X2,NP2)|Prr].


Carregar ppt "Who is Mr Wolf ? Mr Wolf Pesquisa num espaço de estados Resolução de Problemas."

Apresentações semelhantes


Anúncios Google