Busca no espaço de estados (parte II)

Documentos relacionados
Busca no Espaço de Estados

Busca no espaço de estados

Busca no espaço de estados (parte I)

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

lnteligência Artificial

Técnicas Inteligência Artificial

Buscas Informadas ou Heurísticas - Parte II

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Busca com informação e exploração. Inteligência Artificial

Técnicas Inteligência Artificial

GSI010 - Programação Lógica Resolvendo problemas com Programação Lógica Busca informada

Inteligência Artificial

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Fundamentos de Inteligência Artificial [5COP099]

Resolução de problemas por meio de busca. CAPÍTULO 3 - Russell

Inteligência Artificial

meio de busca Seções 3.1, 3.2 e 3.3

Resolução de Problemas

Agentes baseados em metas Capítulo 3 Parte I

Os problemas de IA empregam heurísticas, basicamente, em duas situações:

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro

Estratégias informadas de Busca. February 19, 2018

Busca Heurística - Informada

Cap. 4 Busca com Informações e Exploração. do livro de Russel e Norvig

Inteligência Artificial

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Métodos de Busca. Inteligência Artificial. Busca Heurística. Busca Heurística. Prof. Ms. Luiz Alberto Contato:

Agentes que resolvem problemas através de busca Capítulo 3 Parte I

Inteligência Artificial

Resolução de problemas por meio de busca. Inteligência Artificial

Tópicos Especiais: Inteligência Artificial BUSCA COM INFORMAÇÃO E EXPLORAÇÃO

Procura Informada. Capítulo 4

Sistemas Inteligentes Lista de Exercícios sobre Busca e Agentes Inteligentes

Lista 1 Sistemas Inteligentes (INE5633) 2014s2. Cap. 2 - Russel & Norvig - Exercícios selecionados (respostas em azul)

RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA (PARTE 1) *Capítulo 3 (Russel & Norvig)

PROCURA E PLANEAMENTO

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Inteligência Artificial

Resolução de Problemas: Busca Heurística

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3

Estratégias de Busca Cega

3. Resolução de problemas por meio de busca

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Estratégias de Busca Cega

Métodos de Busca. Estratégias de Busca Cega

LERCI/LEIC TAGUSPARK INTELIGÊNCIA ARTIFICIAL 2005/06 PROCURA

Prof. Dr. Jaime Simão Sichman Prof. Dra. Anna Helena Reali Costa

Estratégias de Busca: Métodos Informados. March 9, 2015

Inteligência Computacional

Inteligência Artificial

Inteligência Artificial

Busca Cega (Exaustiva) e Heurística. Busca Aula 2

INTELIGÊNCIA ARTIFICIAL 2008/09

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Busca com informação e exploração. Inteligência Artificial. Busca pela melhor escolha. Romênia com custos em km. Busca com informação (ou heurística)

Usar a implementação Prolog do A*

MAC425/5739 Inteligência Artificial 3. Busca informada

Busca com informação e exploração. Inteligência Artificial. Busca pela melhor escolha. Romênia com custos em km 9/13/2010

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Resolução de Problemas de Busca

Métodos de Busca Informada (best first search) Capítulo 4 Parte I

Buscas Informadas ou Heurísticas - Parte I

Estratégias informadas de Busca. March 3, 2016

Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho

Introdução à Resolução de Problemas por meio de Busca

Resolução de Problemas através de Busca. Prof. Júlio Cesar Nievola PPGIA - PUC-PR

INTELIGÊNCIA ARTIFICIAL 2008/09

Física Professor Dutra / Movimento Retilíneo Uniforme Exercícios (Resolução) Exercício 1. Resolução. S 0 = 15 m Posição Inicial. V = 2 m/s Velocidade

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

Resolução de problemas por meio de busca. Inteligência Artificial. Formulação de problemas. Estratégias de busca

Busca em Espaço de Estados a

Inteligência Artificial Busca

Resolução de problemas por meio de busca. Prof. Pedro Luiz Santos Serra

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Resolução de problemas por meio de busca. Inteligência Artificial. Busca. Exemplo: Romênia. Exemplo: Romênia 8/23/2010

Inteligência Computacional

Lista de exercícios 1

Inteligência Artificial (SI 214) Aula 4 Resolução de Problemas por meio de Busca Heurística

Introdução 1. Um espaço de estados possíveis, incluindo um estado inicial e um estado final(objetivo): Introdução

Inteligência Artificial

Métodos de Busca: Busca sem Informação. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

PROCURA E PLANEAMENTO

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

Busca Heurística. Profa. Josiane M. P. Ferreira

Sistemas Baseados em Conhecimento

Algoritmos Genéticos

Alguns Exercícios de Inteligência Artificial

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.4 e 3.5

Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira

Lista de exercícios 1 - Gabarito

Programação de Computadores III

INF 1771 Inteligência Artificial

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

Inteligência Artificial

Transcrição:

Busca no espaço de estados (parte II) Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Estratégias de busca: recordando... Uma estratégia de busca especifica em que ordem devemos visitar os nós da árvore de busca para achar uma solução As principais estratégias de busca podem ser divididas em dois grupos: busca não-informada: as estratégias neste grupo não dispõem de informação que possibilite a escolha do nó mais promissor para ser visitado em cada instante. busca aleatória busca em largura busca em profundidade busca informada: as estratégias neste grupo dispõem de informação que possibilitam a escolha do nó mais promissor para ser visitado em cada instante. busca pelo menor custo busca pela melhor estimativa busca ótima (A*) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 2

Busca informada busca pelo menor custo busca pela melhor estimativa busca ótima (A*)

Custo de ação Em muitos problemas de busca, as ações podem ter custos que refletem a dificuldade que o agente tem em executá-las. Este custo pode representar uma quantia de dinheiro, tempo, distância, etc. Para que o custo de uma ação possa ser levado em conta durante a busca, precisamos adicioná-lo como um novo argumento na especificação das ações. Representação de ações com custos ação(α,e 1,e 2,g) :- β. onde: α é o identificador da ação e 1 é o estado em que o mundo se encontra antes da execução da ação α e 2 é o estado em que o mundo fica após a execução da ação α g é o custo de executar a ação α β é uma especificação das precondições e/ou efeitos da ação α Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 4

Custo de ação No problema das rotas, as ações do agente permitem seu deslocamento de um ponto ao outro do mapa e seus custos representam as distâncias percorridas. Exemplo 1. Problema das rotas (versão 1) Mapa de vias inicial(a). meta(j). ação(vai(p,q) vai(p,q),p,q,d),p,q,d) :- via(p,q,d). via(a,b,4.0). via(a,d,5.8). via(a,e,3.2). via(a,h,7.0). via(b,c,3.2). via(c,f,4.0). via(d,c,2.8). via(d,j,5.8). via(e,g,2.2). via(f,i,3.2). via(g,j,3.0). via(h,j,2.2). via(i,d,5.1). via(i,j,4.0). via(j,a,8.2). 3.2 B 4 A C 2.8 3.2 4 D 5.8 E 2.2 7 F 5.1 G 8.2 3.2 5.8 3 H I 4 J 2.2 Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 5

Custo de caminho Custo de caminho Mapa de vias quando as ações têm custo, o custo de um caminho [a 1, a 2,..., a n ] é onde g(a i ) é o custo da ação a i. 3.2 B 4 A C 2.8 3.2 5.8 4 D E 2.2 7 F 5.1 G 8.2 3.2 5.8 3 H I 4 J 2.2 Exemplo 2. Custo de caminho O custo do caminho [vai(a,h) vai(a,h),vai(h,j) vai(h,j) vai(h,j)] é 7 + 2.2 2.2 = 9.2 Numa árvore de busca, o custo de uma folha é o custo do caminho da raiz até ela. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 6

Busca pelo menor custo Na busca pelo menor custo em cada instante, expande-se uma das folhas que tenha custo mínimo 0:a vai(a,b) vai(a,d) vai(a,e) vai(a,h) 4.0:b 5.8:d 3.2:e 7.0:h vai(b,c) vai(d,c) vai(d,j) vai(e,g) vai(h,j) 7.2:c 8.6:c 11.6:j 5.4:g 9.2:j vai(c,f) vai(g,j) 11.2:f Solução: [vai(a,e),vai(e,g),vai(g,j)] 8.4:j Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 7

Busca pelo menor custo A busca pelo menor custo garante encontrar uma solução de custo mínimo (não necessariamente com menos passos) se as ações têm custo uniforme (todos iguais), esta busca funciona como a busca em largura Folhas de maior custo Folha de custo mínimo nós ainda não explorados Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 8

Busca pelo menor custo Exemplo 3. Implementação de busca pelo menor custo busca_menor_custo :- inicial(e), busca_menor_custo([0:e:[]],[],p:g), format('~nplano: ~w',[p]), format('~ncusto: ~w~n~n',[g]). busca_menor_custo([ ([G:E:C _],_,P:G) :- meta(e),!, reverse(c,p). busca_menor_custo([ ([G:E:C F],V,P) :- sucessoresg(g:e:c,v,s), insereordenado(s,f,nf), union([e],v,nv), busca_menor_custo(nf,nv,p). Ordenando as folhas pelo valor de g(s), garantimos escolher a folha de menor custo Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 9

Busca pelo menor custo Exemplo 3. Implementação de busca pelo menor custo (continuação) sucessoresg(g:e:c,v,s) :- findall(g1:n:[a C],(ação(A,E,N,G2), not(member member(n,v)), G1 is G+G2),S). insereordenado(s,f,nf) :- append(s,f,r), sort(r,nf),!. Exercício 1. Teste de busca pelo menor custo Considerando a especificação de ações do problema das rotas (versão 1), encontre uma solução de custo mínimo para os seguintes problemas: Ir de A até J Ir de J até H Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 10

Busca pelo menor custo Exercício 2. O problema de aritmética Resolva o problema especificado a seguir usando busca pelo menor custo: inicial(0). meta(10). ação(inc inc,s1,s2,1) :- S2 is S1+1. ação(dec dec,s1,s2,1) :- S2 is S1-1. 1. ação(dup dup,s1,s2,2) :- S2 is S1*2. ação(div div,s1,s2,2) :- S2 is S1//2. ação(inv inv,s1,s2,2) :- S2 is -S1. Exercício 3. Outros problemas de aritmética Resolva os problemas de aritmética a seguir usando busca pelo menor custo: Transformar 10 em 0 Transformar 7 em 1 Transformar -7 em 1 Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 11

Busca pelo menor custo Exercício 4. O problema das fichas O problema das fichas consiste num tabuleiro com cinco posições e apenas quatro fichas. O objetivo é posicionar as duas fichas azuis à esquerda e as duas fichas vermelhas à direita. As ações possíveis são da forma mij, sendo i a posição atual da ficha e j a nova posição para a qual ela é movida (que deve estar livre). Se i e j são adjacentes, o custo da ação é 1; caso contrário, o custo da ação é igual ao dobro do número de posições saltadas pela ficha movida. ação(m21 m21,[,[b,a,b,c,d],[a,,a,b,c,d],[a,b,b,c,d],1).,b,c,d],1). ação(m31 m31,[,[b,a,b,c,d],[b,a,,a,b,c,d],[b,a,b,c,d],2).,c,d],2). ação(m41 m41,[,[b,a,b,c,d],[c,a,b,,a,b,c,d],[c,a,b,b,d],4).,d],4). ação(m51 m51,[,[b,a,b,c,d],[d,a,b,c,,a,b,c,d],[d,a,b,c,b],6). ],6). Especifique as ações para este problema e resolva-o usando busca pelo menor custo. inicial([v,b,a,v,a]) 1 2 3 4 5 1 2 3 4 5 meta([a,a,b,v,v]) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 12

Função heurística Função heurística é uma função h que estima o custo mínimo de um caminho (desconhecido) que leva de um determinado estado corrente s a um estado meta s. inicial corrente meta s 0 s s o custo exato do caminho já percorrido é g(s) o custo mínimo estimado do caminho que falta percorrer é h(s) Seja h* uma função que calcula o custo mínimo exato de um caminho que leva de um estado corrente s a um estado meta s. Uma função heurística h é admissível se, para todo estado s, temos h(s) h*(s). Particularmente, se s é um estado meta, devemos ter h(s) = 0. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 13

Função heurística (distância de Manhattan) Exemplo 4. Função heurística admissível O problema do quebra-cabeça de oito peças consiste em encontrar uma seqüência de movimentos que transforme um estado inicial s num estado meta s. Uma heurística admissível bastante conhecida para este problema é a chamada distância de Manhattan. Esta heurística estima o custo mínimo do caminho a ser percorrido de um estado corrente s a um estado meta s, calculando a soma das distâncias entre as posições que as peças ocupam em s e em s. h(s 1 ) = d 1 (2) + d 1 (3) + d 1 (4) = 1+1+1 = 3 h(s 2 ) = d 2 (2) + d 2 (3) + d 2 (4) + d 2 (5) = 1+1+1+1+1 = 5 Esta heurística é admissível porque as peças não podem se mover na diagonal. Sucessor mais promissor? s 1 3 4 8 2 5 7 6 s 1 s 2 1 3 4 8 2 7 6 5 s 1 2 3 8 4 7 6 5 1 3 4 8 2 5 7 6 Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 14

Função heurística (distância em linha reta) Exemplo 5. Problema das rotas (versão 2) inicial(a). meta(j). ação(vai(p,q) vai(p,q),p,q,d),p,q,d) :- via(p,q), dist(p,q,d). h(s,h) :- meta(m), dist(s,m,h). via(a,b). via(a,d). via(a,e). via(a,h). via(b,c). via(c,f). via(d,c). via(d,j). via(e,g). via(f,i). via(g,j). via(h,j). via(i,d). via(i,j). via(j,a). dist(p,q,d) :- pos(p,xp,yp), pos(q,xq,yq), D is sqrt((xp ((Xp-Xq)^2 Xq)^2 + (Yp-Yq)^2). Yq)^2). pos(a,1,2). pos(b,1,6). pos(c,2,9). pos(d,4,7). pos(e,4,3). pos(f,6,9). pos(g,6,4). pos(h,8,2). pos(i,9,8). pos(j,9,4). Exercício 5. Heurística Calcule a heurística para cada localização do mapa a abaixo. Mapa com coordenadas 9 C F 8 7 6 5 4 3 2 1 B A D E 1 2 3 4 5 6 7 8 9 G H I J Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 15

Busca heurística Um método de busca heurístico é um método que usa a estimativa fornecida por uma função heurística h para escolher a folha mais promissora (i.e., mais próxima a um estado meta) a ser expandida em cada instante da busca. De acordo com esta definição, embora o método de busca pelo menor custo seja um método de busca informada (pois utiliza informação sobre o custo das ações para escolher a folha mais promissora a ser expandida), ele não é um método heurístico (pois a informação que ele tem não serve para orientar a busca em direção à meta). A seguir, apresentamos dois métodos de busca heurística: busca pela melhor estimativa busca ótima (A*) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 16

Busca pela melhor estimativa Na busca pela melhor estimativa em cada instante, expande-se uma das folhas que tenha a melhor estimativa (heurística) 8.2:a vai(a,b) vai(a,d) vai(a,e) vai(a,h) 8.2:b 5.8:d 5.1:e 2.2:h vai(h,j) Solução: [vai(a,h),vai(h,j)] 0.0:j Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 17

Busca pela melhor estimativa A busca pelo menor custo minimiza o comprimento do caminho já percorrido, a partir do estado inicial, até um estado corrente. Conseqüência: encontra uma solução de custo mínimo. inicial corrente meta s 0 s s busca pelo menor custo busca pela melhor estimativa A busca pela melhor estimativa minimiza o comprimento estimado do caminho que ainda falta percorrer, do estado corrente, até um estado meta. Conseqüência: encontra uma solução rapidamente. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 18

Busca pela melhor estimativa Exemplo 6. Implementação de busca pela melhor estimativa busca_melhor_estimativa :- inicial(e), busca_melhor_estimativa([_:0:e:[]],[],p:g), format('~nplano: ~w',[p]), format('~ncusto: ~w~n~n',[g]). busca_melhor_estimativa([ ([_:G:E:C _],_,P:G) :- meta(e),!, reverse(c,p). busca_melhor_estimativa([ ([_:G:E:C F],V,P) :- sucessoresh(g:e:c,v,s), insereordenado(s,f,nf), union([e],v,nv), busca_melhor_estimativa(nf,nv,p). Ordenando as folhas pelo valor de h(s), garantimos escolher a folha de melhor estimativa Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 19

Busca pela melhor estimativa Exemplo 6. Implementação de busca pela melhor estimativa (continuação) sucessoresh(g:e:c,v,s) :- findall(h:g1:n:[a C],(ação(A,E,N,G2), not(member member(n,v)), h(n,h), G1 is G+G2),S). insereordenado(s,f,nf) :- append(s,f,r), sort(r,nf),!. Exercício 6. Teste de busca pela melhor estimativa Usando busca pela melhor estimativa, encontre uma solução para a segunda versão do problema das rotas. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 20

Busca pela melhor estimativa Exercício 7. Heurística para o problema das fichas O número de peças fora do lugar desejado pode ser usado como heurística no problema das fichas. h(s,h) :- meta(m), dif(s,m,h),!. dif([],[],0) :-!. dif([b A],[_ B],D) :-!, dif(a,b,d). dif([x A],[X B],D) :-!, dif(a,b,d). dif([_ A],[_ B],D) :-!, dif(a,b,r), D is R+1. Use esta heurística para resolver o problema, com o algoritmo de busca pela melhor estimativa. inicial([v,b,a,v,a]) 1 2 3 4 5 1 2 3 4 5 meta([a,a,b,v,v]) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 21

Busca ótima (ou A*) Na busca ótima (ou A*) em cada instante, expande-se uma das folhas que tenha a menor soma de custo e heurística. 8.2:0.0:a vai(a,b) vai(a,d) vai(a,e) vai(a,h) 8.2:4.0:b 5.8:5.8:d 5.1:3.2:e 2.2:7.0:h vai(e,g) 3.0:5.4:g vai(g,j) Solução: [vai(a,e),vai(e,g),vai(g,j)] 0.0:8.4:j Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 22

Busca ótima (ou A*) A busca pelo menor custo encontra uma solução de custo mínimo. A busca pela melhor estimativa encontra uma solução rapidamente. inicial corrente meta s 0 s s menor custo minimiza g(s) melhor estimativa minimiza h(s) busca ótima minimiza g(s)+h(s) A busca ótima (ou A*) encontra uma solução de custo mínimo rapidamente. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 23

Busca ótima (ou A*) Exemplo 7. Implementação de busca ótima busca_ótima :- inicial(e), busca_ótima([_:_:0:e:[]],[],p:g), format('~nplano: ~w',[p]), format('~ncusto: ~w~n~n',[g]). busca_ótima([ ([_:_:G:E:C _],_,P:G) :- meta(e),!, reverse(c,p). busca_ótima([ ([_:_:G:E:C F],V,P) :- sucessoresf(g:e:c,v,s), insereordenado(s,f,nf), union([e],v,nv), busca_ótima(nf,nv,p). Ordenando as folhas pelo valor de f(s), garantimos escolher a folha de menor g(s)+h(s) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 24

Busca ótima (ou A*) Exemplo 7. Implementação de busca ótima (continuação) sucessoresf(g:e:c,v,s) :- findall(f:h:g1:n:[a C],(ação(A,E,N,G2), not(member member(n,v)), h(n,h), G1 is G+G2, F is H+G1), S). insereordenado(s,f,nf) :- append(s,f,r), sort(r,nf),!. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 25

Busca ótima (ou A*) Exercício 8. Teste de busca ótima Considerando a segunda versão do problema das rotas, use busca ótima para resolver os seguintes problemas: Encontrar uma rota de A até J. Encontrar uma rota de J até A. 3 9 8 7 6 5 4 B C D E F G I J 2 A 1 H 1 2 3 4 5 6 7 8 9 1 2 3 4 5 1 2 3 4 5 Exercício 9. Teste de busca ótima Considerando a especificação de ações para o problema das fichas, use busca ótima para encontrar uma solução para o problema ilustrado na figura ao lado. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 26

Algoritmo de busca generalizado Exemplo 8. Algoritmo de busca generalizado busca(t) :- inicial(e), busca(t,[_:_:0:e:[]],[],p:g), tipo(t,n), format(' ('~ntipo ~ntipo.: ~w',[n]), format(' ('~nplano ~nplano: ~w',[p]), format(' ('~ncusto ~ncusto: ~w~n~n w~n~n',[g]). busca(_,[_:_:g:e:,[_:_:g:e:c _ C _],_,P:G) :- meta(e),!, reverse(c,p). busca(t,[_:_:g:e:,[_:_:g:e:c F C F], ],V,P),P) :- sucessores(t,g:e:c,v,s), insere(t,s,f,nf), union([e],v,nv), busca(t,nf,nv,p). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 27

Algoritmo de busca generalizado Exemplo 8. Algoritmo de busca generalizado (continuação) sucessores(t,g1:e:c,v,r) :- findall(f:h:g:s:[a C], (ação(a,e,s,g2), not(member member(s,v)), h(s,h), G is G1+G2, (T=4 -> F is G ;T=5 -> F is H ;T=6 -> F is G+H ; F is 0)),R). insere(1,s,f,nf) :- append(s,f,r), length(r,l), embaralha(l,r,nf),!. insere(2,s,f,nf) :- append(f,s,nf),!. insere(3,s,f,nf) :- append(s,f,nf),!. insere(_,s,f,nf) :- append(s,f,r), sort(r,nf),!. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 28

Algoritmo de busca generalizado Exemplo 8. Algoritmo de busca generalizado (continuação) embaralha(0,f,f) :-!. embaralha(l,f,[x NF]) :- N is random(l), nth0(n,f,x), delete(f,x,r), M is L-1, embaralha(m,r,nf),!. tipo(1,aleatória). tipo(2,largura). tipo(3,profundidade). tipo(4,menor_custo). tipo(5,melhor_estimativa). tipo(6,ótima). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 29

Algoritmo de busca generalizado Exercício 10. Teste do algoritmo de busca generalizado Para cada um dos problemas a seguir: problema das rotas (versão 2) problema das fichas faça as consultas abaixo e analise os resultados obtidos:?- busca(1).?- busca(2).?- busca(3).?- busca(4).?- busca(5).?- busca(6). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 30

Representações sucintas hipótese do mundo fechado representação sucinta de estados representação sucinta de ações busca generalizada

Hipótese do mundo fechado A hipótese do mundo fechado assume que aquilo que não é explicitamente declarado como verdadeiro é falso permite que os estados do mundo sejam representados de forma mais concisa os fatos verdadeiros são declarados por meio de fluentes Fluente Significado C A B clear(x) on(x,y) ontable(x) bloco X está livre bloco X está sobre o bloco Y bloco X está sobre a mesa Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 32

Representação sucinta de estados Estados são representados por conjuntos de fluentes Fluente Significado C A B A B C clear(x) on(x,y) ontable(x) bloco X está livre bloco X está sobre o bloco Y bloco X está sobre a mesa Exemplo 9. Estado inicial e meta do problema de Sussman (Mundo dos Blocos) inicial([ ([clear(b) clear(b),clear(c) clear(c),on(c,a) on(c,a),ontable(a) ontable(a),ontable(b) ontable(b)]). meta(s) :- subset([on(a,b) on(a,b),on(b,c) on(b,c)],s). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 33

Representação sucinta de ações Exemplo 10. Ações para o mundo dos blocos ação(stack(x,y) stack(x,y),e,s,1),e,s,1) :- member(ontable(x), ontable(x),e), member(clear(x) clear(x),e), member(clear(y) clear(y),e), X\=Y =Y, union(e,[on(x,y) on(x,y)],s1), subtract(s1,[ontable(x) ontable(x),clear(y) clear(y)],s). ação(unstack(x,y) unstack(x,y),e,s,1),e,s,1) :- member(clear(x) clear(x),e), member(on(x,y) on(x,y),e),,e), union(e,[ontable(x) ontable(x),clear(y) clear(y)],s1), subtract(s1,[on(x,y) on(x,y)],s). ação(move(x,y) move(x,y),e,s,1),e,s,1) :- member(clear(x) clear(x),e), member(clear(y) clear(y),e), X\=Y =Y, member(on(x,z) on(x,z),e),,e), Y\=Z =Z, union(e,[on(x,y) on(x,y),clear(z) clear(z)],s1), subtract(s1,[on(x,z) on(x,z),clear(y) clear(y)],s). precondições efeito positivo efeitos negativos Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 34

Busca com representações sucintas Exemplo 11. Algoritmo de busca com representações sucintas busca(t) :- inicial(e), busca(t,[_:_:0:e:[]],[],p:g), tipo(t,n), format(' ('~ntipo ~ntipo.: ~w',[n]), format(' ('~nplano ~nplano: ~w',[p]), format(' ('~ncusto ~ncusto: ~w~n~n w~n~n',[g]). busca(_,[_:_:g:e:,[_:_:g:e:c _ C _],_,P:G) :- meta(e),!, reverse(c,p). busca(t,[_:_:g:e:,[_:_:g:e:c F C F], ],V,P),P) :- sucessores(t,g:e:c,v,s), insere(t,s,f,nf), adiciona(e,v,nv), busca(t,nf,nv,p). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 35

Busca com representações sucintas Exemplo 11. Algoritmo de busca com representações sucintas (continuação) sucessores(t,g1:e:c,v,r) :- findall(f:h:g:s:[ (F:H:G:S:[A C A C], (ação(a,e,s,g2), not(pertence pertence(s,v)), h(s,h), G is G1+G2, (T=4 -> F is G ;T=5 -> F is H ;T=6 -> F is G+H ; F is 0)),R). insere(1,s,f,nf) :- append(s,f,r), length(r,l), embaralha(l,r,nf),!. insere(2,s,f,nf) :- append(f,s,nf),!. insere(3,s,f,nf) :- append(s,f,nf),!. insere(_,s,f,nf) :- append(s,f,r), sort(r,nf),!. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 36

Busca com representações sucintas Exemplo 11. Algoritmo de busca com representações sucintas (continuação) embaralha(0,f,f) :-!. embaralha(l,f,[ (L,F,[X NF X NF]) :- N is random(l), nth0(n,f,x), delete(f,x,r), M is L-1, embaralha(m,r,nf),!. pertence(x,s) :- member(y,s), subset(x,y),!. adiciona(x,a,a) :- pertence(x,a),!. adiciona(x,a,[ (X,A,[X A X A]). tipo(1,aleatória). tipo(2,largura). tipo(3,profundidade). tipo(4, (4,menor_custo menor_custo). tipo(5, (5,melhor_estimativa melhor_estimativa). tipo(6,ótima). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 37

Busca com representações sucintas Exercício 11. Problema de Sussman Use o algoritmo de busca com representações sucintas para encontrar uma solução para o problema de Sussman especificado no Exemplo 8. Defina h(_,0). Exercício 12. Outros problemas no mundo dos blocos Especifique e encontre soluções para os problemas a seguir: D C B A A C B D A C B D A C B D Usando time/1 time/1, compare os tempos de busca em largura e profundidade. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 38

Busca com representações sucintas Exercício 13. Mundo do aspirador simplificado Especifique as ações para o mundo do aspirador simplificado, usando o fluente em(x) para denotar que o aspirador está na sala X e o fluente limpa(x) para denotar que a sala X está limpa. Em seguida, teste sua especificação para encontrar uma solução para o problema em que: Estado inicial = aspirador está na sala 1 e as duas salas estão sujas Estado meta = as duas salas estão limpas e não importa onde esteja o aspirador Heurística nula: h(_,0). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 39

Busca com representações sucintas Exercício 14. Quebra-cabeça de oito peças (inicial e meta) inicial([p( ([p(2,0,0), p(5,0,1), p(6,0,2), p(1,1,0), p(-,1,1), p(3,1,2), p(8,2,0), p(4,2,1), p(7,2,2)]). meta(s) :- subset([p( ([p(1,0,0), p(2,0,1), p(3,0,2), p(8,1,0), p(-,1,1), p(4,1,2), p(7,2,0), p(6,2,1), p(5,2,2)],s). 2 5 6 1 3 8 4 7 1 2 3 8 4 7 6 5 Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 40

Busca com representações sucintas Exercício 14. Quebra-cabeça de oito peças (ações) ação(a,e,s,1) :- member(p( (p(-,x1,y1),e), novapos(a,x1,y1,x2,y2), subtract(e,[p( (E,[p(-,X1,Y1),p(N,X2,Y2)],S1),,X1,Y1),p(N,X2,Y2)],S1), union([p( ([p(-,x2,y2),p(n,x1,y1)],s1,s). novapos(up up,x1,y,x2,y) :- X1>0, X2 is X1-1. 1. novapos(lt lt,x,y1,x,y2) :- Y1>0, Y2 is Y1-1. 1. novapos(rt rt,x,y1,x,y2) :- Y1<2, Y2 is Y1+1. novapos(dn dn,x1,y,x2,y) :- X1<2, X2 is X1+1. h([],0) :-!. h([p( ([p(-,_,_) R],H) :- h(r,h),!. h([p(n,x,y) R],H) :- meta(m), member(p(n,x1,y1),m), h(r,h1), H is H1+abs abs(x1 (X1-X)+ X)+abs abs(y1 (Y1-Y), Y),!. 1 3 4 8 2 5 7 6 1 2 3 8 4 7 6 5 Use busca com representações sucintas para resolver este problema! Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 41

Busca com representações sucintas Exercício 15. Quebra-cabeça de oito peças: outro problema Especifique e resolva o problema a seguir usando busca heurística. 1 4 7 1 2 3 6 3 5 2 8 8 4 7 6 5 Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 42

Fim