Sunteți pe pagina 1din 5

Busca cega

Busca cega ou no informada


Busca em largura Busca em profundidade

Universidade Federal de Pelotas Centro de Desenvolvimento Tecnolgico Inteligncia Artificial I Prof.: Anderson Priebe Ferrugem E-mail: ferrugem@inf.ufpel.edu.br
UFPEL Inteligncia Artificial I Anderson Ferrugem 2

Algoritmo de busca em largura


1. Crie uma varivel chamada Lista-de-Ns e insira o estado inicial. 2. At ser encontrado um estado-meta ou Lista de- Ns ficar vazia, faa: (a)Remova o primeiro elemento de Lista de- Ns e chame-o de E. Se Lista de- Ns estiver vazia, saia. (b)Para cada maneira como cada regra pode ser casada com o estado descrito por E, faa: Aplique a regra para gerar um novo estado. Se o novo estado for um estado-meta, saia e retorne este estado. Caso contrario, acrescente o novo estado ao final de Lista -de- Ns.
UFPEL Inteligncia Artificial I Anderson Ferrugem

Algoritmo de busca em largura


Lista de ns (0,0)

Lista de ns (0, 0) E = (0, 0)

(0, 0)

Lista de ns (4, 0) (0, 3)

(4, 0 )

(0, 3)

UFPEL Inteligncia Artificial I Anderson Ferrugem

Algoritmo de busca em largura


(0, 0) Lista de ns (0, 3) (4, 3) (0, 0) (1, 3)

Algoritmo de busca em largura


(0, 0) Lista de ns (0, 3) (4, 3) (0, 0) (1, 3)

(4, 0 )

(0, 3)

E = (4, 0)

(4, 0 )

(0, 3)

E = (4, 0)

(4, 3 )

(0, 0 )

(1, 3)

(4, 3 )

(0, 0 )

(1, 3)

(0, 0)

Lista de ns (4, 3) (0, 0) (1, 3)

(0, 0)

Lista de ns (4, 3) (0, 0) (1, 3)

(4, 0 )

(0, 3)

E = (3, 0)

(4, 0 )

(0, 3)

E = (3, 0)

(4, 3 )

(0, 0 )

(1, 3)

(4, 3 )

(0, 0 )

(3, 0)
UFPEL Inteligncia Artificial I Anderson Ferrugem 5

(4, 3 )

(0, 0 )

(1, 3)

(4, 3 )

(0, 0 )

(3, 0)
UFPEL Inteligncia Artificial I Anderson Ferrugem 6

Algoritmo de busca em largura


Esta estratgia completa tima ?
Sempre encontra a soluo mais rasa
* que nem sempre a soluo de menor custo de caminho, caso os operadores tenham valores diferentes.

Algoritmo de busca em largura


Fator de expanso da rvore de busca: nmero de ns gerados a partir de cada n (b) Custo de tempo: se o fator de expanso do problema = b, e a primeira soluo para o problema est no nvel d, ento o nmero mximo de ns gerados at se encontrar a soluo = 1 + b + b2 + b3 + + bd custo exponencial = O (bd).

tima se

n,n profundidade(n) profundidade(n) custo de caminho(n) custo de caminho (n).


A funo custo de caminho no-decrescente com a profundidade do n. Essa funo acumula o custo do caminho da origem ao n atual.

Geralmente, isto s ocorre quando todos os operadores tm o mesmo custo (=1)

Algoritmo de busca em largura


Custo de memria: a fronteira do espao de estados deve permanecer na memria o problema mais crucial do que o tempo de execuo da busca

Algoritmo de busca em profundidade


Crie uma varivel chamada Pilha-de-Ns e ajuste-a para o estado inicial. At ser encontrado um estado-meta (sucesso) ou Pilha deNs ficar vazia, faa: Faa Estado atual receber o primeiro elemento de Pilhade-Ns. Se Pilhade- Ns estiver vazia, saia e sinalize fracasso. Gere um sucessor, E, do estado atual. Se no houver mais sucessores, sinalize fracasso e remova estado atual da pilha de ns, se E for um estado meta retorne sucesso. Se existir um sucessor E do estado atual , insira E na pilha.

Esta estratgia s d bons resultados quando a profundidade da rvore de busca pequena.

UFPEL Inteligncia Artificial I Anderson Ferrugem

10

Algoritmo Busca em profundidade


A

Algoritmo Busca em profundidade


Esta estratgia no completa nem tima. Custo de memria: mantm na memria o caminho que est sendo expandido no momento, e os ns irmos dos ns no caminho (para possibilitar o backtracking) necessita armazenar apenas b.m ns para um espao de

estados com fator de expanso b e profundidade m, onde m pode ser maior que d (profundidade da 1a. soluo). Custo de tempo: O(bm), no pior caso.

Para problemas com vrias solues, esta estratgia pode ser bem mais rpida do que busca em largura. Esta estratgia deve ser evitada quando as rvores geradas so muito profundas ou geram caminhos infinitos.

Estado Meta : E

UFPEL Inteligncia Artificial I Anderson Ferrugem

11

UFPEL Inteligncia Artificial I Anderson Ferrugem

12

Exerccios
Considere um algoritmo para construir roteiro de vos entre cidades com ou sem conexo direta, alimentado com os seguintes dados:

Exerccios
Construa o grafo e rvore de busca (partindo de New York)
New York -> Chicago Chicago -> Denver New York -> Toronto New York -> Denver Toronto Toronto Toronto Denver Denver Houston Denver -> Calgary -> Los Angeles -> Chicago -> Urbana -> Houston -> Los Angeles -> Los Angeles = 1000 milhas = 1000 milhas = 800 milhas = 1900 milhas = 1500 milhas = 1800 milhas = 500 milhas = 1000 milhas = 1500 milhas = 1500 milhas = 1000 milhas

UFPEL Inteligncia Artificial I Anderson Ferrugem

13

UFPEL Inteligncia Artificial I Anderson Ferrugem

14

Exerccios
Construa o grafo e rvore de busca (partindo de New York)

Exerccios
Implemente um algoritmo de busca em profundidade e largura para solucionar o quebra-cabea oito. Critrios
Grupos de no mximo 3 pessoas; Implementao em qualquer linguagem; Deve retornar
o nmero de estados (movimentos) testados o caminho e nmero de estados para a soluo;
UFPEL Inteligncia Artificial I Anderson Ferrugem

Exemplo de possvel soluo; Caracterstica interessante deste problema: O espao de estados dividido em dois subespaos de maneira que, a partir de um estado em um subespao impossvel alcanar qualquer estado do outro subespao

15

UFPEL Inteligncia Artificial I Anderson Ferrugem

16

Busca em largura

Busca em Profundidade (Limite de profundidade 5)

UFPEL Inteligncia Artificial I Anderson Ferrugem

17

UFPEL Inteligncia Artificial I Anderson Ferrugem

18

Busca em profundidade e Largura

UFPEL Inteligncia Artificial I Anderson Ferrugem

19

S-ar putea să vă placă și