Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouBetty Amado Pereira Alterado mais de 8 anos atrás
2
Who is Mr Wolf ?
4
Mr Wolf
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].
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.