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

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

Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega

Apresentações semelhantes


Apresentação em tema: "Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega"— Transcrição da apresentação:

1 Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega
Disciplina: Inteligência Artificial Universidade de Itaúna César Augusto Oliveira

2 Estratégias de busca cega
Uma estratégia de busca é dita “cega” se ela não leva em conta informações específicas sobre o problema a ser resolvido. Estratégias de busca sem informação usam apenas a informação disponível na definição do problema. Apenas geram sucessores e verificam se o estado objetivo foi atingido.

3 Estratégias de busca cega
As estratégias de busca sem informação (cega) se distinguem pela ordem em que os nós são expandidos. Principais métodos : - Busca em amplitude, extensão ou largura - Busca em profundidade - Busca com aprofundamento iterativo

4 Estratégias de busca cega
Estratégias são avaliadas de acordo com os seguintes critérios: completeza: o algoritmo sempre encontra a solução se ela existe? complexidade de tempo: número de nós gerados. complexidade de espaço: número máximo de nós na memória. otimização: a estratégia encontra a solução ótima? Complexidade de tempo e espaço são medidas em termos de: b: máximo fator de ramificação da árvore (número máximo de sucessores de qualquer nó) d: profundidade do nó objetivo menos profundo m: o comprimento máximo de qualquer caminho no espaço de estados (pode ser ∞)

5 Busca em largura O nó raiz é expandido, em seguida todos os nós sucessores são expandidos, então todos próximos nós sucessores, e assim em diante. Em geral, todos os nós de uma dada profundidade na árvore de busca são expandidos antes que todos os nós do nível seguinte seja expandido.

6 Busca em largura Expandir o nó não-expandido mais perto da raiz.
Implementação: a borda é uma fila FIFO (first-in, first-out), isto é, novos itens entram no final.

7 Busca em largura Expandir o nó não-expandido mais perto da raiz.
Implementação: a borda é uma fila FIFO (first-in, first-out), isto é, novos itens entram no final.

8 Busca em largura Expandir o nó não-expandido mais perto da raiz.
Implementação: a borda é uma fila FIFO (first-in, first-out), isto é, novos itens entram no final.

9 Busca em largura Expandir o nó não-expandido mais perto da raiz.
Implementação: a borda é uma fila FIFO (first-in, first-out), isto é, novos itens entram no final.

10 Busca em Largura 1. Crie uma lista de nodos "LISTA_DE_NODOS" e insira o estado inicial. 2. Até que (um estado objetivo seja encontrado) ou (LISTA_DE_NODOS seja vazia) faça: a. Remova o primeiro elemento "E" de LISTA_DE_NODOS b. Para cada operação possível para o estado E faça: i. Gere um novo estado ii. Se o novo estado é um estado objetivo, pare e retorne este estado Senão, adicione o novo estado ao final de LISTA_DE_NODOS.

11 Avaliação da busca em largura
Completa? Sim (se b é finito) Tempo? 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1) Espaço? O(bd+1) (mantém todos os nós na memória) Ótima? Sim (se todas as ações tiverem o mesmo custo)

12 Exemplo b: número máximo de sucessores de um nó qualquer (neste caso, 2) d: profundidade do nó objetivo menos profundo (vamos supor G, então d=2)

13 Avaliação da busca em largura
Exemplo: fator de expansão b = 10 1.000 nós gerados por segundo cada nó ocupa 100 bytes

14 Busca em profundidade O nodo de maior profundidade mais a esquerda é escolhido para gerar sucessores

15 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha Destino M

16 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

17 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

18 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

19 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

20 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

21 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

22 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

23 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

24 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

25 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

26 Busca em Profundidade Expande o nó não-expandido mais profundo.
Implementação: borda = fila LIFO (last-in, first-out) = pilha

27 Busca em Profundidade Algoritmo pode ser implementado recursivamente ou usando pilha. Algoritmo recursivo chamado com o estado inicial BUSCA EM PROFUNDIDADE (estado E) Se o estado E é um estado final, pare e retorne sucesso Senão a. faça o seguinte até o sucesso (ou insucesso): i. Gere um sucessor "ES" de E. ii. Se não há mais sucessores, retorne insucesso. Senão, chame BUSCA EM PROFUNDIDADE com ES como parâmetro b. Se sucesso então é retornado sucesso Senão, continue o passo a

28 Propriedades da Busca em Profundidade
Completa? Não: falha em espaços com profundidade infinita, espaços com loops Se modificada para evitar estados repetidos é completa para espaços finitos Tempo? O(bm): péssimo quando m é muito maior que d. mas se há muitas soluções pode ser mais eficiente que a busca em extensão Espaço? O(bm), i.e., espaço linear! Ótima? Não

29 Avaliação da busca em profundidade
Custo de espaço: - Recursivo: mantém na memória as chamadas do caminho que está sendo expandido no momento. Iterativo com pilha: o caminho que está sendo expandido no momento e os nós irmãos dos nós no caminho (b x m nós) Otimalidade Não garante a solução ótima

30 Busca com aprofundamento iterativo
Evita o problema de caminhos muito longos ou infinitos impondo um limite máximo de profundidade para os caminhos gerados Esta estratégia tenta limites com valores crescentes, partindo de zero, até encontrar a primeira solução Piora o tempo de busca, porém melhora o custo de memória

31 Busca com aprofundamento iterativo

32 Busca de Aprofundamento Iterativo em Profundidade l =0

33 Busca de Aprofundamento Iterativo em Profundidade l =1

34 Busca de Aprofundamento Iterativo em Profundidade l =2

35 Busca de Aprofundamento Iterativo em Profundidade l =3

36 Busca com aprofundamento iterativo
1. Inicialize i com 0 2. Faça: a. Execute a busca em profundidade até o limite i de profundidade b. Se retornou insucesso i. i = i + n ii. Retorne ao passo 2 Senão, pare e retorne o estado encontrado

37 Avaliação da busca com aprofundamento iterativo
Combina as vantagens de busca em largura com busca em profundidade. Completude: - É completa, pois sempre encontra uma solução se ela existir (como na largura) Custo de tempo: - Custo exponencial = O (bd) (como na largura) - Tempo um pouco maior por causa das buscas repetidas

38 Avaliação da busca com aprofundamento iterativo
Custo de espaço: - b x m nós (como na profundidade) Otimalidade - Sempre encontra a solução mais “rasa” (como na largura) - É ótima se o custo de caminho é igual para todos os operadores Nem sempre é a solução de menor custo de caminho, caso os operadores tenham valores diferentes

39 Comparação dos métodos de busca cega

40 Atividade em sala a) Busca em largura b) Busca em profundidade c) Busca em profundidade iterativa

41 Bibliografia Livros -BITTENCOURT, Guilherme. Inteligência Artificial – Ferramentas e Teorias. Editora da UFSC - REZENDE, Solange Oliveira. Sistemas inteligentes: fundamentos e aplicações. Barueri: Manole, 2003. - RUSSEL, Stuart; NORVIG, Peter: Inteligência Artificial. Campus, São Paulo, 2004. Slides - BITTENCOURT, Guilherme. Transparências de Inteligência computacional. Disponível em: tra-soft.pdf - LINDEN, Ricardo. Transparências de Inteligência Artificial. Disponível em:

42 Bibliografia Applets Puzzle8 - Artificial Intelligence Test. Disponível em: Jarros - Racha Cuca. Disponível em: ou Missionários e Canibais - Racha Cuca. Disponível em: ou Lobo, ovelha e couve - Racha Cuca. Disponível em:


Carregar ppt "Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega"

Apresentações semelhantes


Anúncios Google