Busca em Espaço de Estados a

Documentos relacionados
Busca em Espaço de Estados

Inteligência Artificial

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

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

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)

Buscas Não Informadas (Cegas) - Parte I

Redes Neurais (Inteligência Artificial)

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

Técnicas Inteligência Artificial

BUSCA CEGA OU SEM INFORMAÇÃO (parte 2 Resolução de problemas por busca) *Capítulo 3 (Russel & Norvig)

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

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

REDES NEURAIS / INTELIGÊNCIA ARTIFICIAL LISTA DE EXERCÍCIOS 6

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 *

Técnicas Inteligência Artificial

Inteligência Artificial - IA

Inteligência Artificial 04. Busca Sem Informação (Cega) Capítulo 3 Russell & Norvig; Seções 3.4 e 3.5

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

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

*Capítulo 3 (Russel & Norvig)

Estratégias informadas de Busca. March 3, 2016

Inteligência Artificial

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

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

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

INF 1771 Inteligência Artificial

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

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

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

lnteligência Artificial

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

BCC204 - Teoria dos Grafos

Estratégias informadas de Busca. February 19, 2018

Jogos com Oponentes. March 7, 2018

Inteligência Artificial

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

Resolução de Problemas

Inteligência Artificial

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

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

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

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

MAC425/5739 Inteligência Artificial 3. Busca informada

Aula 03 Métodos de busca sem informação

Agentes baseados em metas Capítulo 3 Parte I

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

Inteligência Artificial

Inteligência Artificial

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

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

Inteligência Artificial

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

Inteligência Artificial. 3º Quadrimestre de 2018

Buscas Informadas ou Heurísticas - Parte II

Inteligência Artificial

PCS Gabarito da 1a. lista

Resolução de Problemas de Busca

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

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

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

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

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

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

SISTEMAS INTELIGENTES 1 PROF. TACLA/UTFPR/CPGEI-PPGCA

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

Revisão sobre Busca 1

Tópicos Especiais: Inteligência Artificial

Procura Informada. Capítulo 4

Sistemas Inteligentes 2014/2

Procura Informada. Capítulo 4

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO GABARITO

Inteligência Artificial

INF 1771 Inteligência Artificial

Buscas Informadas ou Heurísticas - Parte I

Agentes de Procura Procura Estocástica. Capítulo 3: Costa, E. e Simões, A. (2008). Inteligência Artificial Fundamentos e Aplicações, 2.ª edição, FCA.

Inteligência Artificial

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

Inteligência Artificial

Busca Local. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

Técnicas para Implementação de Jogos

Aula 05 Busca com informação

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Busca heurística

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

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

Busca Heurística - Informada

Procura Informada. Capítulo 4

Heurística Curso de Análise e Desenvolvimento de Sistemas INTELIGÊNCIA ARTIFICIAL PROFESSOR FLÁVIO MURILO

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

Busca em Espaço de Estados: Implementação. Busca em Espaço de Estados: Geração e Teste. Busca em Espaço de Estados:Algoritmo

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

Sistemas Inteligentes / Inteligência Artificial, Outros Métodos de Procura

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial

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

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

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

2284-ELE/5, 3316-IE/3

Transcrição:

Busca em Espaço de Estados a Fabrício Jailson Barth BandTec Agosto de 2012 a Slides baseados no material do Prof. Jomi F. Hübner (UFSC)

Introdução 2

Agente orientado a meta O projetista não determina um mapeamento entre percepções e ações, mas determina que objetivo o agente deve alcançar É necessário que o próprio agente construa um plano de ações que atinjam seu objetivo (como se o próprio agente construísse seu programa) Exemplos: o agente aspirador de pó, um agente motorista de táxi, uma sonda espacial,... Introdução Agente orientado a meta BandTec 3

O que é busca? O mundo do agente tem um conjunto de estados possíveis (muitas vezes este conjunto é infinito) Existem transições entre os estados do mundo, formando um grafo. São utilizados algoritmos para encontrar um caminho neste grafo partindo do estado inicial (atual) até o estado objetivo Introdução O que é busca? BandTec 4

Exemplo do aspirador de pó Um robô aspirador de pó deve limpar uma casa com duas posições. As operações que ele sabe executar são: sugar ir para a posição da esquerda ir para a posição da direita Como o aspirador pode montar um plano para limpar a casa se inicialmente ele esta na posição direita e as duas posições têm sujeira? Quais os estados possíveis do mundo do aspirador e as transições? Introdução Exemplo do aspirador de pó BandTec 5

Estados possíveis: 1 2 3 4 5 6 7 8 Introdução Exemplo do aspirador de pó BandTec 6

Espaço de busca L R L R S S L R R L R R L L S S S S L R L R S S Introdução Exemplo do aspirador de pó BandTec 7

Por que estados? As informações do mundo real são absurdamente complexas, é praticamente impossível modelá-las todas No exemplo do aspirador, o mundo dele tem várias outras informações: a cor do tapete, se é dia, de que material o aspirador é feito, quanto ele tem de energia, como é o nome do/a proprietário/a,... A noção de estado é utilizada para abstrair esses detalhes e considerar somente o que é relevante para a solução do problema O mesmo se dá com as operações modeladas: são abstrações das operações reais (ir para a posição da direita implica em várias outras operações). Introdução Por que estados? BandTec 8

Exemplo do homem, o lobo, o carneiro e o cesto de alface. Uma pessoa, um lobo, um carneiro e um cesto de alface estão à beira de um rio. Dispondo de um barco no qual pode carregar apenas um dos outros três, a pessoa deve transportar tudo para a outra margem. Determine uma série de travessias que respeite a seguinte condição: em nenhum momento devem ser deixados juntos e sozinhos o lobo e o carneiro ou o carneiro e o cesto de alface. Introdução Exemplo do homem, o lobo, o carneiro e o cesto de alface. BandTec 9

Busca como desenvolvimento de software No desenvolvimento de um software para resolver um problema, o projetista pode optar por várias paradigmas de modelagem do problema: O sistema é modelado por procedimentos que alteram os dados de entrada O sistema é modelado por funções O sistema é modelado por predicados O sistema é modelado por objetos... Introdução Busca como desenvolvimento de software BandTec 10

Busca é mais uma forma de modelar um problema: Definir os estados Definir as transições Escolher um algoritmo de busca Introdução Busca como desenvolvimento de software BandTec 11

Exercício O que é estado transição estado meta e custo da solução encontrada para os seguintes problemas Introdução Exercício BandTec 12

8-Puzzle 5 4 51 42 3 6 1 8 68 84 7 3 2 7 6 25 Start State Goal State Introdução Exercício BandTec 13

Encontrar um caminho da cidade i até x i e f d h g p b k n m x a l 1 c o 3 3 2 2 2 3 1 1 2 2 2 4 3 3 2 1 14 1 1 6 Introdução Exercício BandTec 14

Algoritmos de Busca Cega 15

Árvore de busca Coloca-se o estado inicial como nodo raiz Cada operação sobre o estado raiz gera um novo nodo (chamado de sucessor) Repete-se este processo para os novos nodos até gerar o nodo que representa o estado meta Estratégia de busca: que nodo escolher para expandir Exemplo: (fazer as árvores para o exemplo do aspirador e do homem no rio) Algoritmos de Busca Cega Árvore de busca BandTec 16

Estratégias de busca Busca em largura: o nodo de menor profundidade mais a esquerda é escolhido para gerar sucessores Busca em profundidade: o nodo de maior profundidade mais a esquerda é escolhido para gerar sucessores Algoritmos de Busca Cega Estratégias de busca BandTec 17

Nodos da árvore Cada nodo tem o estado que representa o nodo pai o operador que o gerou sua profundidade na árvore de busca o custo de ter sido gerado (dentado por g) opcionalmente, os nodos sucessores (fazer a figura) Algoritmos de Busca Cega Nodos da árvore BandTec 18

Estratégias de poda da árvore de busca Um nodo não gera um sucessor igual a seu pai Um nodo não gera um sucessor igual a um de seus ascendentes Um nodo não gera um sucessor que já exista na árvore de busca Algoritmos de Busca Cega Estratégias de poda da árvore de busca BandTec 19

Detalhes de implementação: Verificar se um estado já esta na árvore pode levar muito tempo imagine uma árvore com milhares de estados do jogo de xadrez, cada novo estado deve ser comparado com outros milhares de estados! Ter uma tabela hash (que tem tempo ótimo de consulta) para saber se determinado nodo existe na árvore Algoritmos de Busca Cega Estratégias de poda da árvore de busca BandTec 20

Algoritmo de busca em largura function BL(Estado inicial): Nodo Fila abertos abertos.add(new Nodo(inicial)) while abertos.size() > 0 do Nodo n abertos.removefirst() if n.getestado().émeta() then return n end if abertos.append(n.sucessores()) end while return null Algoritmos de Busca Cega Algoritmo de busca em largura BandTec 21

Critérios de comparação entre os algoritmos Completo: o algoritmo encontra a solução se ela existir Ótimo: o algoritmo encontra a solução de menor custo Tempo: quanto tempo o algoritmo leva para encontrar a solução no pior caso Espaço: quanto de memória o algoritmo ocupa Algoritmos de Busca Cega Critérios de comparação entre os algoritmos BandTec 22

Análise do algoritmo BL Completo: sim Ótimo: sim Tempo: explorar O(b d ) nodos b = fator de ramificação d = profundidade do estado meta O(b d ) = 1 + b + b 2 + b 3 +... + b d Espaço: guardar O(b d ) nodos. Algoritmos de Busca Cega Análise do algoritmo BL BandTec 23

Exemplo de complexidade Prof. Nodos Tempo Memória 0 1 1ms 100 bytes 2 111 0,1 seg 11 Kbytes 4 11.111 11 seg 1 Mbyte 6 10 6 18 min 111 Mbytes 8 10 8 31 horas 11 Gbytes 12 10 12 35 anos 111 Tbytes 14 10 14 3500 anos 11.111 Tbytes (b = 10, 1000 nodos por segundo, 100 bytes por nodo) Algoritmos de Busca Cega Exemplo de complexidade BandTec 24

Algoritmo de busca em profundidade function BP(Estado inicial, int m): Nodo Pilha abertos abertos.add(new Nodo(inicial)) while abertos.size() > 0 do Nodo n abertos.removetopo() if n.getestado().émeta() then return n end if if n.getprofundidade() < m then abertos.insert(n.sucessores()) end if end while return null Algoritmos de Busca Cega Algoritmo de busca em profundidade BandTec 25

Análise do algoritmo BP Completo: não (caso a meta esteja em profundidade maior que m) Se m =, é completo se o espaço de estados é finito e existe poda para não haver loops entre as operações Ótimo: não Tempo: explorar O(b m ) nodos (ruim se m é muito maior que d) Espaço: guardar O(bm) nodos. (em profundidade 12, ocupa 12 Kbytes!) Algoritmos de Busca Cega Análise do algoritmo BP BandTec 26

Algoritmo de busca em profundidade iterativo function BPI(Estado inicial): Nodo int p 1 loop Nodo n BP(inicial, p) if n null then return n end if p p + 1 end loop Algoritmos de Busca Cega Algoritmo de busca em profundidade iterativo BandTec 27

Análise do algoritmo BPI Completo: sim Ótimo: sim se todas as ações tem o mesmo custo Tempo: explorar O(b d ) nodos Espaço: guardar O(bd) nodos. Algoritmos de Busca Cega Análise do algoritmo BPI BandTec 28

Algoritmo de busca de custo uniforme function BCU(Estado inicial): Nodo Set abertos ordenados por custo abertos.add(new Nodo(inicial)) while abertos.size() > 0 do Nodo n abertos.removefirst() if n.getestado().émeta() then return n end if abertos.append(n.sucessores()) end while return null Algoritmos de Busca Cega Algoritmo de busca de custo uniforme BandTec 29

Algoritmo de busca de custo uniforme Expande nós de acordo com o custo. Se custo = profundidade do nó então temos uma busca em largura. Algoritmos de Busca Cega Algoritmo de busca de custo uniforme BandTec 30

Resumo BL BP BPI BCU Completo sim não sim sim Ótimo sim não sim sim Tempo O(b d ) O(b m ) O(b d ) O(b d ) Espaço O(b d ) O(bm) O(bd) O(b d ) Algoritmos de Busca Cega Resumo BandTec 31

Algoritmos de Busca Inteligente 32

Exemplo: ir de h para o (com BL) i e f d h g p b k n m x a l 1 c o 3 3 2 2 2 3 1 1 2 2 2 4 3 3 2 1 14 1 1 6 A árvore de busca gerada é inteligente? Algoritmos de Busca Inteligente Exemplo: ir de h para o (com BL) BandTec 33

Heurística Heurística: Estimativa de custo até a meta. (denotado pela função h : Estados Reais) No exemplo das cidades, poderia ser a distância em linha reta. Algoritmo de busca gananciosa: retira de abertos sempre o nodo com menor estimativa de custo (menor h). Refazer a busca de um caminho entre h e o. Refazer a busca de um caminho entre i e x. Fazer a tabela de h para os dois casos. Algoritmos de Busca Inteligente Heurística BandTec 34

Refazer a busca de um caminho entre h e o. ótimo! Refazer a busca de um caminho entre i e x. não ótimo! Algoritmos de Busca Inteligente Heurística BandTec 35

Busca A* Idéia: Evitar expandir caminhos que já estão muito caros mas também considerar os que têm menor expectativa de custo. Utilizar na escolha de um nodo da lista de abertos tanto a estimativa de custo de um nodo (h(n)) quanto o custo acumulado para chegar no nodo (g(n)) f(n) = g(n) + h(n) Refazer a busca de um caminho entre i e x utilizando f. Algoritmos de Busca Inteligente Busca A* BandTec 36

Algoritmo de busca A* function BA*(Estado inicial): Nodo PriorityList(f) abertos {lista ordenada por f} abertos.add(new Nodo(inicial)) while abertos.size() > 0 do Nodo n abertos.removefirst() if n.getestado().émeta() then return n end if abertos.append(n.sucessores()) end while return null Algoritmos de Busca Inteligente Algoritmo de busca A* BandTec 37

Propriedades da função h Supondo que o valor de h, no exemplo das cidades, é dados por 10 * a distância em linha reta. O algoritmo A* ainda é ótimo? h(n): estimativa de custo de n até a meta h (n): custo real de n até a meta Se h(n) h (n), então h é admissível. Se h é admissível, o algoritmo A* é ótimo! Algoritmos de Busca Inteligente Propriedades da função h BandTec 38

Análise do algoritmo A* Completo: sim Ótimo: sim (se h é admissível) Tempo: explorar O(b d ) nodos no pior caso (quando a heurística é do contra ) Espaço: guardar O(b d ) nodos no pior caso. Algoritmos de Busca Inteligente Análise do algoritmo A* BandTec 39

Exercício Determine uma heurística para o problema 8-Puzzle e verifique se é admissível. 5 4 51 42 3 6 1 8 68 84 7 3 2 7 6 25 Start State Goal State Algoritmos de Busca Inteligente Exercício BandTec 40

h 1 : número de peças fora do lugar h 2 : distância de cada peça de seu lugar h 3 : peças fora da formação de caracol Algoritmos de Busca Inteligente Exercício BandTec 41

Exercício Determine uma heurística para o problema das 8-raínhas e verifique se é admissível. Algoritmos de Busca Inteligente Exercício BandTec 42

h: soma do número de ataques Algoritmos de Busca Inteligente Exercício BandTec 43

Algoritmo Subida da Montanha-1 Idéia: escolher sempre um sucessor melhor ( subir sempre ). function BSM-1(Estado inicial): Estado Estado atual inicial loop prox melhor sucessor de atual (segundo h) if h(prox) h(atual) then {sem sucessor melhor} return atual end if atual prox end loop Algoritmos de Busca Inteligente Algoritmo Subida da Montanha-1 BandTec 44

Análise do algoritmo BSM-1 Não mantém a árvore (logo, não pode retornar o caminho que usou para chegar à meta). Completo: não (problema de máximos locais) Ótimo: não se aplica Tempo:? Espaço: nada! Algoritmos de Busca Inteligente Análise do algoritmo BSM-1 BandTec 45

Algoritmo Subida da Montanha-2 function BSM-2(Estado inicial): Estado Estado atual inicial loop prox melhor sucessor de atual (segundo h) if h(prox) h(atual) then {sem sucessor melhor} if atual.émeta() then return atual else atual estado gerado aleatóriamente end if else atual prox end if end loop Algoritmos de Busca Inteligente Algoritmo Subida da Montanha-2 BandTec 46

Análise do algoritmo BSM-2 Completo: sim (se a geração de estados aleatórios distribuir normalmente os estados gerados) Ótimo: não se aplica Tempo:? Espaço: nada! Algoritmos de Busca Inteligente Análise do algoritmo BSM-2 BandTec 47

Material de consulta Capítulos 3 e 4 do livro do Russell & Norvig Algoritmos de Busca Inteligente Material de consulta BandTec 48