46
Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Embed Size (px)

Citation preview

Page 1: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Inteligência Artificial

Aula 04

Busca não-determinística

e Busca cega

Page 2: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Aula Anterior

Conhecimento em IA Como gerar? Como armazenar? Como buscar soluções usando esse conhecimento?

Estratégia de busca serve para decidir que parte do conhecimento armazenado

deve ser explorada em busca da solução;

Formulação problema de busca Espaço de estados (conjunto de estados + ações possíveis) Estado inicial do problema Estado meta do problema (solução)

Page 3: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 3: Aspirador com 2 pisos Considere uma versão do Mundo do Aspirador

onde há um prédio com dois pisos;

Cada piso possui duas salas (1 e 2) e um

saguão (0).

Não há passagem direta de uma sala para

outra, de modo que o aspirador tem que estar

no saguão para entrar numa sala ou para

mudar de piso.

Page 4: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 3:Aspirador com 2 pisos Para representar os estados nessa versão do

problema, podemos usar uma estrutura da forma

[Pos; Piso1; Piso2], onde:

Pos = [Piso; Sala], podendo Piso assumir {1, 2} e

Sala {0, 1, 2}: indica a posição corrente do

aspirador.

Piso1 = [X; Y ], podendo X e Y assumir {0, 1}: indica

se as salas 1 e 2 do piso 1 estão limpas ou sujas.

Piso2 = [X; Y ], podendo X e Y assumir {0, 1}: indica

se as salas 1 e 2 do piso 2 estão limpas ou sujas.

Page 5: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Espaço de Estados do Aspirador com 2 pisos

Conjunto de ações:

A = {oper(entrarSala1; [[P;0];[X1;Y1];[X2 ;Y2]]; [[P;1];[X1;Y1];[X2;Y2]]),

oper( entrarSala2; [[P; 0];[X1;Y1];[X2 ;Y2]]; [[P;2];[X1;Y1];[X2 ;Y2]]),

oper( sair; [[P ; 1] [X1; Y1] ;[X2 ;Y2]]; [[P ; 0] [X1; Y1] ;[X2 ;Y2]]),

oper( sair; [[P ; 2] [X1; Y1] ;[X2 ;Y2]]; [[P ; 0] [X1; Y1] ;[X2 ;Y2]]),

oper( subir; [[1 ; 0] [X1; Y1] ;[X2 ;Y2]]; [[2 ; 0] [X1; Y1] ;[X2 ;Y2]]),

oper( descer; [[2 ; 0] [X1; Y1] ;[X2 ;Y2]]; [[1 ; 0] [X1; Y1] ;[X2 ;Y2]]),

oper( aspirar; [[1 ; 1] [1; Y1] ;[X2 ;Y2]]; [[1 ; 1] [0; Y1] ;[X2 ;Y2]]),

oper( aspirar; [[1 ; 2] [X1; 1] ;[X2 ;Y2]]; [[1 ; 2] [X1; 0] ;[X2 ;Y2]]),

oper( aspirar; [[2 ; 1] [X1; Y1] ;[1 ; Y2]]; [[2 ; 1] [X1; Y1] ;[0 ; Y2]]),

oper( aspirar; [[2 ; 2] [X1; Y1] ;[X2 ; 1]]; [[2 ; 2] [X1; Y1] ;[X2 ; 0]])}

Page 6: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Espaço de Estados do Aspirador com 2 pisos

Conjunto de Estados:S = { [[1; 0]; [0; 0]; [0; 0]], [[1; 0]; [0; 0]; [0; 1]],

[[1; 0]; [0; 0]; [1; 0]], [[1; 0]; [0; 0]; [1; 1]],

[[1; 0]; [0; 1]; [0; 0]], [[1; 0]; [0; 1]; [0; 1]],

[[1; 0]; [0; 1]; [1; 0]], [[1; 0]; [0; 1]; [1; 1]],

[[1; 0]; [1; 0]; [0; 0]], [[1; 0]; [1; 0]; [0; 1]],

[[1; 0]; [1; 0]; [1; 0]], [[1; 0]; [1; 0]; [1; 1]],

[[1; 0]; [1; 1]; [0; 0]], [[1; 0]; [1; 1]; [0; 1]],

[[1; 0]; [1; 1]; [1; 0]], [[1; 0]; [1; 1]; [1; 1]],

...

Page 7: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Aspirador com 2 pisos...[[1; 1]; [0; 0]; [0; 0]], [[1; 1]; [0; 0]; [0; 1]],[[1; 1]; [0; 0]; [1; 0]], [[1; 1]; [0; 0]; [1; 1]],[[1; 1]; [0; 1]; [0; 0]], [[1; 1]; [0; 1]; [0; 1]],[[1; 1]; [0; 1]; [1; 0]], [[1; 1]; [0; 1]; [1; 1]],

...[[1; 2]; [0; 0]; [0; 0]], [[1; 2]; [0; 0]; [0; 1]],

...[[2; 0]; [0; 0]; [0; 0]], [[2; 0]; [0; 0]; [0; 1]],...[[2; 1]; [0; 0]; [0; 0]], [[2; 1]; [0; 0]; [0; 1]],...[[2; 2]; [0; 0]; [0; 0]], [[2; 2]; [0; 0]; [0; 1]]...[[2; 2]; [1; 1]; [1; 0]], [[2; 2]; [1; 1]; [1; 1]],}

Total: 96 estados

Page 8: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Grafo do Espaço de Estados

[[1;0];[0;1];[1;1]]

[[2;0];[0;1];[1;1]]

[[1;1];[0;1];[1;1]]

aspirar

[[1;1];[1;1];[1;1]]

[[1;0];[1;0];[1;1]]

[[1;2];[1;0];[1;1]]

[[1;2];[1;1];[1;1]]

aspirar

subir

sair entrarSala2entrarSala1 Sair

[[1;0];[1;1];[1;1]]

[[1;2];[0;1];[1;1]] [[1;1];[1;0];[1;1]][[2;0];[1;0];[1;1]]

[[2;0];[1;1];[1;1]]...

...... ...

...

descer

subirdescer

subir descerentrarSala1

entrarSala2sair

sair

entrarSala1 entrarSala2

sair sair

Page 9: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 4 - Missionários

Três missionários e três canibais vão atravessar de uma

margem para a outra de um rio, usando um barco onde

só cabem duas pessoas de cada vez.

O número de canibais não pode exceder o número de

missionários em nenhuma das margens do rio.

Encontre uma forma de levar todos para a outra

margem do rio, utilizando este barco.

Formule o problema (represente estados e ações).

Page 10: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 4 - Missionários

Para representar os estados podemos usar uma

estrutura da forma [B; M; C], onde:

B pode assumir {e, d}: indica se o barco está na

margem esquerda ou direita.

M pode assumir {0, 1, 2, 3}: indica a quantidade de

missionários na margem esquerda.

C pode assumir {0, 1, 2, 3}: indica a quantidade de

canibais na margem esquerda.

Page 11: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Missionários e Canibais – Conjunto de Ações

Conjunto de Estados:

S = { [e; 3; 3]; [e; 3; 2]; [e; 3; 1]; [e; 3; 0];

[e; 0; 3]; [e; 0; 2]; [e; 0; 1]; [e; 0; 0];

[e; 2; 2]; [e; 1; 1];

[d; 3; 3]; [d; 3; 2]; [d; 3; 1]; [d; 3; 0];

[d; 0; 3]; [d; 0; 2]; [d; 0; 1]; [d; 0; 0];

[d; 2; 2]; [d; 1; 1]

}

Page 12: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca no espaço de estados

Técnica que supõe a existência de um agente capaz de realizar ações que modificam o estado do seu mundo.

Descrição do problema de busca: Espaço de estados: Conjunto de estados (S) e ações (A) que o

agente é capaz de realizar; Estado inicial: configuração atual do mundo do agente (estado s0 pertencente a S);

Estado meta: que se deseja atingir (conjunto G contido em S);

Solução: conjunto de ações executadas pelo agente que transforma o estado inicial num estado meta.

Page 13: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo Problema: Dado que inicialmente o aspirador esteja na

primeira sala e que ambas as salas estejam sujas, encontre um estado onde ambas as salas estejam limpas.

Descrição do problema: Espaço de estados (conjuntos S e A);

S = { [1; 0; 0]; [1; 0; 1]; [1; 1; 0]; [1; 1; 1];

[2; 0; 0]; [2; 0; 1]; [2; 1; 0]; [2; 1; 1]}

A = { oper(entrarSala1; [2; Y;Z]; [1; Y;Z]),

oper(entrarSala2; [1; Y;Z]; [2; Y;Z]),

oper(aspirar; [1; 1;Z]; [1; 0;Z]),

oper(aspirar; [2; Y; 1]; [2; Y; 0])} Estado inicial: [1; 1; 1] Estados meta: G = {[1; 0; 0]; [2; 0; 0]}

Page 14: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Solução para problema de busca

Consiste numa sequência de ações; Rotulam o caminho que leva do estado inicial a um

dos estados meta no espaço de estados do problema.

Exemplo: Mundo do aspirador Caminho: [aspirar; entrarSala2; aspirar] Leva do estado inicial [1; 1; 1] ao estado meta [2; 0; 0]

Page 15: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Uma possível solução

[2;0;1]

[2;0;0]

[1;0;1]

entrarSala1

aspirar

[1;1;1]

[1;1;0]

[1;0;0]

[2;0;1]

[2;1;1]entrarSala2

entrarSala2

entrarSala1

aspirar

aspirar aspirar

entrarSala2 entrarSala2entrarSala1 entrarSala1

Encontre mais uma possível solução

Page 16: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Grafo do Espaço de Estados

[2;0;1]

[2;0;0]

[1;0;1]

entrarSala1

aspirar

[1;1;1]

[1;1;0]

[1;0;0]

[2;0;1]

[2;1;1]entrarSala2

entrarSala2

entrarSala1

aspirar

aspirar aspirar

entrarSala2 entrarSala2entrarSala1 entrarSala1

Caminho: [entrarSala2; aspirar; entrarSala1; aspirar] Leva do estado inicial [1; 1; 1] ao estado meta [1; 0; 0]

Page 17: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Reflexões

Será que preciso especificar todos os estados de um problema para encontrar uma solução?

Será que todos os algoritmos de busca sempre dão a “melhor” resposta?

Tenho garantia que sempre vou percorrer o menor caminho?

Page 18: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Algoritmo de Busca

Geralmente, os algoritmos de busca não especificam explicitamente o conjunto de estados de um problema.

Esses estados podem ser gerados a medida em que forem sendo encontrados durante a busca.

Uma estratégia de busca pode ser realizada a partir do estado inicial e gerando os estados sucessores até chegar a um estado meta.

Page 19: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Algoritmo de Busca não-determinístico Dados um conjunto A de ações, um estado inicial s0

pertencente a S e um conjunto de estados meta G contido em S, um algoritmo não-determinístico de busca pode ser especificado da seguinte maneira:

• remove(Σ): escolhe estado em Σ aleatoriamente; • sucessores (s, A): gera os estados sucessores de s a partir de A;• caminho(s): caminho entre estado inicial e estado s;

O conjunto sigma armazena os estados a serem explorados

Page 20: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo Mundo do aspirador

Estado inicial: s0 = [1; 1; 1] Estados Meta: G = {[1; 0; 0]; [2; 0; 0]} 1ª iteração

Σ = {[1,1,1]} s = remove(Σ) s = [1,1,1] [1,1,1] não é estado meta, portanto, são gerados

seus sucessores e adicionados ao conjunto Σ; Σ = {[2,1,1]; [1,0,1]}

Page 21: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo Mundo do aspirador

2ª iteração Σ = {[2,1,1]; [1,0,1]} s = remove(Σ) s = [2,1,1] (aleatório) [2,1,1] não é estado meta, portanto, são gerados

seus sucessores e adicionados ao conjunto Σ; Σ = {[1; 1; 1]; [2; 1; 0]; [1; 0; 1]}

Page 22: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo Mundo do aspirador 3ª iteração

Σ = {[1; 1; 1]; [2; 1; 0]; [1; 0; 1]} s = remove(Σ) s = [2,1,0] (aleatório) [2,1,0] não é estado meta, portanto, são gerados

seus sucessores e adicionados ao conjunto Σ; Σ = {[1; 1; 0]; [1; 1; 1]; [1; 0; 1]}

Page 23: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo Mundo do aspirador

4ª iteração Σ = {[1; 1; 0]; [1; 1; 1]; [1; 0; 1]} s = remove(Σ) s = [1,1,0] (aleatório) [1,1,0] não é estado meta, portanto, são gerados

seus sucessores e adicionados ao conjunto Σ; Σ = {[1; 0; 0]; [1; 1; 1]; [1; 0; 1]}

Page 24: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo Mundo do aspirador 5ª iteração

Σ = {[1; 0; 0]; [1; 1; 1]; [1; 0; 1]} s=remove(Σ) s = [1,0,0] (aleatório) [1,0,0] é estado meta devolve o caminho:

[entrarSala2, aspirar,

entrarSala1, aspirar]

Page 25: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividades

Exercício 5. Mostre que, fazendo outras escolhas, o algoritmo de busca não-determinística poderia ter encontrado uma solução mais curta (i.e. com menos ações) para o mesmo problema.

Page 26: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividades

Exercício 6. Mostre que, fazendo outras escolhas, o algoritmo de busca não-determinística poderia ficar executando infinitamente, sem nunca encontrar uma solução para este problema.

Page 27: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Detectando ciclos

Um problema com o algoritmo de busca não-determinística é que, caso o espaço de estados do problema contenha ciclos, ele pode executar infinitamente.

Para evitar que isso aconteça, podemos guardar os estados já expandidos e impedir que esses estados sejam expandidos novamente durante a busca.

Page 28: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca sem ciclos

O conjunto gama armazena os estados já visitados

Page 29: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 7 – Para Casa

Desenhe uma das árvores de buscas que poderiam ser produzidas pelo rastreamento da chamada Busca´(A; s0; G) – busca sem ciclos, sendo: A = conjunto de ações para o Mundo do Aspirador; s0 = [1; 1; 1]; G = {[2; 0; 0]}.

Page 30: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Mais estratégias de Busca

Estratégias de busca cega bastante utilizadas: Busca em largura (breadth first search) Busca em profundidade (depth first search)

As estratégias de busca cega ou busca não-informada não levam em conta a qualidade da solução encontrada.

Estratégias de busca heurística tentam minimizar o custo da solução, seja em termos do número de ações ou em termos dos custos dessas ações.

Page 31: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca em largura

Na busca em largura, o estado inicial (nível 0) é expandido primeiro: seus sucessores são posicionados no nível 1 da árvore

de busca;

Em seguida, cada um dos estados do nível 1 são expandidos: seus sucessores são posicionados no nível 2, e assim

por diante

De maneira que todos os estados num nível n sejam expandidos antes daqueles no nível n + 1.

Page 32: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca em largura

O algoritmo de busca em largura é obtido simplesmente sistematizando a ordem de inserção e remoção de estados no conjunto Σ, que agora passa a se comportar como uma fila (FIFO).

Page 33: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca em largura O algoritmo BuscaLargura sempre encontra uma

solução com o menor número de ações, mas pode levar mais tempo expandindo os estados do que a busca em profundidade.

Page 34: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca em profundidade

Expandimos sempre o estado mais a esquerda, no nível mais profundo da árvore de busca até que: uma solução seja encontrada; ou um beco seja atingido (estado sem expansão);

Nesse último caso, retrocedemos e reiniciamos a busca no próximo estado ainda não expandido, posicionado mais a esquerda, no nível mais profundo da árvore (backtracking).

Page 35: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Busca em profundidade

O algoritmo é obtido pela sistematização da ordem de inserção e remoção de estados no conjunto Σ.

Entretanto, em vez de fila usamos pilha (LIFO).

Page 36: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Exemplo: Mundo do aspirador

A = conjunto de ações para o Mundo do Aspirador; s0 = [1; 1; 1] G = {[2; 0; 1]}

Observe que o estado

[2,0,0] é um beco; A busca retrocede e

toma outro caminho;

Page 37: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 8 - Jarros O Problema dos Jarros [Rich] consiste no seguinte:

Há dois jarros com capacidades de 3 e 4 litros, respectivamente.

Nenhum dos jarros contém qualquer medida ou escala, de modo que só se pode saber o conteúdo exato quando eles estão cheios.

Sabendo-se que podemos encher ou esvaziar um jarro, bem como transferir água de um jarro para outro, encontre uma sequência de passos que deixe o jarro de 4 litros com exatamente 2 litros de água.

Page 38: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Representação de estados Para representar os estados desse problema, podemos usar

um par [X; Y ], onde X pertencente a {0; 1; 2; 3} representa o conteúdo do primeiro jarro e Y pertencente a {0; 1; 2; 3; 4} representa o conteúdo do segundo jarro.

As ações podem ser representadas pelos seguintes operadores:

Page 39: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Árvore de Busca

O estado inicial é s0 = [0; 0] O conjunto de estados meta é G = {[X; 2]}. Com base nessa especificação, desenhe a

árvore de busca criada pelo algoritmo BuscaLargura, ao procurar a solução do problema.

Em que nível da árvore foi encontrada a solução?

Page 40: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Atividade 9 - Fazendeiro Um fazendeiro encontra-se na margem esquerda de um rio,

levando consigo um lobo, uma ovelha e um repolho. O fazendeiro precisa atingir a outra margem do rio com toda

a sua carga intacta, mas para isso dispõe somente de um pequeno bote com capacidade para levar apenas ele mesmo e mais uma de suas cargas.

O fazendeiro poderia cruzar o rio quantas vezes fossem necessárias para transportar seus pertences, mas o problema é que, na ausência do fazendeiro, o lobo pode comer a ovelha e essa, por sua vez, pode comer o repolho.

Encontre uma sequência de passos que resolva esse problema.

Page 41: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Espaço de estados

Para representar os estados desse problema, podemos usar uma estrutura da forma [F; L;O;R], cujas variáveis denotam, respectivamente, as posições do fazendeiro, do lobo, da ovelha e do repolho.

Cada variável pode assumir os valores e ou d, dependendo da margem do rio onde o objeto se encontra. O estado inicial é s0 = [e; e; e; e] O conjunto de estados meta é G = {[d; d; d; d]}

Page 42: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Ações As ações podem ser representadas pelos seguintes

operadores:

Com base nessa especificação, desenhe a árvore de busca criada pelo algoritmo BuscaProfundidade, ao procurar a solução do problema.

Page 43: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Seminários e Grupos

1. Planejamento

2. Visão Computacional

3. Aprendizagem e Redes Neurais

4. Data mining e Sistemas de recomendação

5. Proc. Ling. Natural e Text Mining

6. Chatter Bot

7. Jogo 1 – Sudoku

8. Jogo 2 – Jogo da onça

9. Jogo 3 – Pet Squares

Page 44: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Apresentação dos Trabalhos

Média: 60 a 90 min Entregar:

Apresentação (slides) Trabalho teórico: Texto incluindo referências

bibliográficas (.doc ou pdf). Trabalho prático: código fonte dos programas

Page 45: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Calendário de aulas (previsão)

02/Mar – Algoritmos de Busca 09/Mar – Algoritmos de Busca 16/Mar – Não haverá aula 23/Mar – Sem. 1 – Planejamento 30/Mar – Sem. 2 – Visão Computacional 06/Abr – Semana Santa 13/Abr – Não haverá aula 20/Abr – Sem. 3 – Aprendizagem e Redes Neurais

Page 46: Inteligência Artificial Aula 04 Busca não-determinística e Busca cega

Calendário de aulas (previsão)

27/Abr – Sem. 4 - Data Mining e Sist. Recomendação 04/Mai - Sem. 5 – Proc. Ling. Natural e Text Mining 11/Mai – Sem. 6 – Chatter Bot 18/Mai – Não haverá aula (evento externo) 25/Mai – Sem. 7 – Sudoku 01/Jun – Sem. 8 e 9 – Jogo da Onça e Pet Squares 08/Jun – Corpus Christi 15/Jun – Não haverá aula (evento externo) 22/Jun - Entrega de Notas