Anda di halaman 1dari 18

Inteligncia Artificial

Resoluo de problemas atravs de pesquisa

Agentes que resolvem problemas


Para que um agente resolva um problema com sucesso necessrio que tenha um objectivo a cumprir. Por isso, o primeiro passo na resoluo de um problema a formulao do objectivo. O que um objectivo? Do ponto de vista do agente, um objectivo um conjunto de estados do mundo (ambiente) nos quais o objectivo satisfeito. Mas, para que um agente cumpra um objectivo necessrio que conhea o ambiente sobre o qual vai trabalhar e quais os tipos de aces que poder realizar sobre ele. O passo seguinte consiste, por isso, na definio do tipo de aces que podem ser realizadas e o conjunto de estados em que o ambiente pode estar. A este processo chama-se a formulao do problema. Munido destes dados, o agente dever examinar diferentes sequncias de aces possveis e escolher aquela que o leve a atingir o objectivo com maior eficcia. Esta a fase de pesquisa. Um algoritmo de pesquisa recebe um problema como entrada e devolve uma soluo na forma de uma sequncia de aces. Uma vez encontrada a soluo, as aces que a constituem devero ser executadas. A esta fase chama-se execuo. Resumindo, Etapas na Resoluo de Problemas 1. Formulao do objectivo: conjunto de estados do ambiente; 2. Formulao do problema: aces e estados a considerar; 3. Pesquisa: processo de procura da sequncia de aces que permitem conduzir o agente at ao objectivo a partir da situao inicial; 4. Execuo.

Inteligncia Artificial

O que um Problema
Informalmente, podemos dizer que um problema um conjunto de dados que o agente usa para decidir o que tem que fazer de modo a atingir o objectivo. Elementos bsicos na formulao de um problema: Estado inicial: estado em que o agente se encontra quando comea a resolver o problema. Operadores: o conjunto de aces que o agente pode realizar. Um operador descreve uma aco em funo do estado que alcanado se essa aco for realizada num estado particular. Teste de satisfao do objectivo: o teste que o agente aplica a um estado para determinar se est num estado objectivo. Por vezes, existe um forma explcita de especificar um conjunto de estados objectivo, o que permite testar facilmente se o objectivo foi atingido. Outras vezes, o objectivo definido por uma propriedade abstracta (Ex.: Xadrez). Custo do caminho: funo que calcula o custo do caminho de um estado a outro. Geralmente, o custo do caminho dado pela soma do custo de cada aco pertencente a esse caminho.

O estado inicial e o conjunto de operadores permitem definir o espao de estados que o conjunto de estados acessveis a partir do estado inicial. A resoluo de um problema pode ser vista como uma pesquisa num espao de estados.

Medio do desempenho de um agente A avaliao de uma pesquisa pode ser realizada de trs formas: O agente encontrou uma soluo? A soluo encontrada boa? (Ex.: O custo do caminho baixo?). Qual o custo da procura associado ao tempo e memria necessrios para achar a soluo?

O custo total de uma pesquisa pode ser definido como: Custo Total = Custo do Caminho + Custo da Procura Geralmente, quanto maior o custo da procura, menor o custo do caminho e vice-versa. O agente tem, pois, que gerir as dois tipos de custo de modo a conseguir o menor custo total.

Inteligncia Artificial

Mtodos de Pesquisa
O processo de pesquisa constri uma rvore de pesquisa cuja raiz o estado inicial do problema e todos os ns folha so ns que ainda no foram expandidos ou que no tm sucessores. Ao conjunto dos ns que ainda no foram expandidos d-se o nome de fronteira. Cada mtodo de pesquisa possui uma estratgia prpria para seleccionar o prximo n a ser expandido. Esta estratgia pode ser definida facilmente recorrendo a uma estrutura de dados que guarde os ns a expandir e que os ordene de modo a tornar simples a escolha (Ex.: fila, pilha, etc.). Situaes que os mtodos de pesquisa devem evitar: Voltar ao estado anterior; Criao de ciclos; Gerao de estados que j tenham sido gerados.

Avaliao A avaliao dos mtodos de pesquisa realizada segundo os seguintes critrios: Completo: encontra uma soluo quando ela existe? ptimo: encontra a melhor soluo quando existem vrias alternativas? Complexidade Temporal: quanto tempo demora a encontrar uma soluo? Complexidade Espacial: qual a quantidade de memria necessria para realizar a pesquisa?

Tipos de mtodos de pesquisa Existem dois tipos de mtodos de pesquisa: Mtodos no informados (pesquisa cega): estes mtodos no possuem qualquer informao acerca do nmero de estados existentes a partir do estado corrente ou do custo do caminho do estado corrente at ao objectivo. Mtodos informados (pesquisa heurstica): mtodos que tm acesso informao atrs referida.

Os mtodos de pesquisa informados so, normalmente mais eficazes do que os mtodos no informados. No entanto, os mtodos no informados so tambm importantes uma vez que existem muitos problemas onde no existe informao adicional disponvel.

Inteligncia Artificial

Algoritmo Geral de Pesquisa


Iremos agora ver um algoritmo geral de pesquisa que serve de base a todos os mtodos de pesquisa que iremos estudar.

funo agp(problema, mtodo de pesquisa) devolve uma soluo ou falha 1. Inicializar a rvore de pesquisa, Ar, com o estado inicial, n0. Inicializar a lista NsPorExpandir com n0. 2. Criar a lista vazia NsExpandidos. 3. Se a lista NsPorExpandir est vazia, falha e sai. 4. Remover o primeiro n, n, da lista NsPorExpandir, e introduzi-lo na lista NsExpandidos. 5. Se n um n objectivo, sai com sucesso, sendo a soluo obtida percorrendo, em Ar, o caminho desde n a n0 (Os arcos so criados no passo 6). 6. Expandir o n n, gerando um conjunto S de sucessores de n. Criar, em Ar, arcos de n a cada um dos elementos de S. 7. Introduzir cada um dos elementos de S na lista NsPorExpandir de acordo com o mtodo de pesquisa. 8. Voltar ao passo 3.

Como se pode ver por este algoritmo, a principal diferena entre os mtodos de pesquisa reside na ordem por que so expandidos os ns. Esta ordem estabelecida no passo 7 quando se acrescentam lista de ns por expandir os sucessores de n. Nota Importante: Para evitar que se visite um n mais do que uma vez, o passo 6 deve ser modificado de modo a que s sejam gerados ns que no pertenam lista NsExpandidos.

Inteligncia Artificial

Mtodos de pesquisa no informados


Pesquisa em largura primeiro
Princpio: os ns do nvel n so todos expandidos antes dos ns do nvel n + 1. Caractersticas: A lista de ns por expandir manipulada como uma estrutura de dados do tipo fila. completo. ptimo, se o custo de um caminho for uma funo no decrescente do nvel do n. Esta condio geralmente satisfeita quando todos os operadores tiverem o mesmo custo. Complexidade espacial e complexidade temporal O(bd) onde, b o factor de ramificao e d a profundidade da rvore. Demora muito tempo se a soluo tem muitos passos, pois verifica todas as possibilidades mais curtas; Pouco eficaz em situaes com um factor de ramificao alto, podendo mesmo ser impossvel a sua utilizao.

A figura seguinte ilustra a ordem por que so expandidos os ns numa pesquisa em largura primeiro.
1

2 4 8 9 5 10 6

3 7

11

Inteligncia Artificial

Pesquisa em profundidade primeiro


Princpio: Expandir sempre o n cujo caminho at ao estado inicial tem mais passos. Caractersticas: A lista de ns por expandir manipulada como uma estrutura de dados do tipo pilha. No completo se no se definir um limite para o nvel mximo a pesquisar. No ptimo. Complexidade espacial O(b*d) (exige pouca memria) e complexidade temporal O(bd).

A figura seguinte ilustra a ordem por que so expandidos os ns numa pesquisa em profundidade.
1

2 3 4 5 6 9 8

7 11

10

Pesquisa por custo uniforme


Princpio: expandir sempre o n na fronteira da rvore com menor custo. Quando g(n) = profundidade(n) este algoritmo funciona como o de pesquisa em largura primeiro. Nota: g(n) o custo do caminho desde a raiz at ao n n. Caractersticas: A lista de ns por expandir ordenada pelo valor de g dos ns. Completo. ptimo se g(sucessor(n)) g(n). Complexidade espacial e complexidade espacial O(bd) onde, b o factor de ramificao e d o nvel a que se encontra a soluo na rvore.

Inteligncia Artificial

Pesquisa em profundidade limitada


Princpio: Expanso dos ns em profundidade primeiro at um nvel l imposto. Este mtodo til quando se sabe que a soluo tem que estar abaixo de um determinado nvel. Caractersticas: Completo se l d. No ptimo. Complexidade espacial O(b*l) e complexidade temporal O(bl).

Pesquisa por aprofundamento progressivo


Princpio: expanso dos ns em profundidade primeiro at ao nvel 0, depois at ao nvel 1, etc. Caractersticas: Completo. ptimo, se todos os operadores tm o mesmo custo. Caso contrrio, encontra a soluo com menos passos. Complexidade espacial O(b*d) e complexidade temporal O(bd).

A figura seguinte ilustra a ordem por que so expandidos os ns numa pesquisa por aprofundamento progressivo.
1 Limite = 0 1 1 2 6 5 2 3 7 4 5 6 9 Limite = 3 8 7 11 1

3 Limite = 1

10

Limite = 2

Este mtodo combina as vantagens da pesquisa em largura primeiro ( completo) e da pesquisa em profundidade primeiro (complexidade espacial).

Inteligncia Artificial

Exemplo Consideremos a seguinte situao: b = 10; d = 5. Nmero de expanses se for usada a pesquisa em profundidade primeiro ou a pesquisa em largura primeiro: 1 + b + b2 + b3 + b4 + b5 = 1 + 10 + 100 + 1000 + 10000 + 100000 = 111.111 Nmero de expanses se for usada a pesquisa por aprofundamento progressivo: (d + 1) * 1 + d * b + (d - 1) b2 + ... + 1 * b5 = 6 + 50 + 400 + 3000 + 20000 + 100000 = 123.456 Apenas so gerados aproximadamente 11% mais ns com a pesquisa por profundamento progressivo do que com as pesquisas em profundidade ou largura primeiro. Em geral o aprofundamento progressivo o mtodo a seguir quando o espao de procura extenso e a profundidade a que se encontra a soluo desconhecida.

Pesquisa Bidireccional
Princpio: pesquisa simultnea a partir do estado inicial e do(s) estado(s) objectivo at que as duas pesquisas se encontrem num determinado ponto. Neste mtodo preciso ter em conta os seguintes aspectos: Gerao dos predecessores; Pode-se ter que pesquisar a partir de vrios estados objectivo (descritos explcita ou implicitamente); Deve haver um mtodo de deteco de ocorrncia do mesmo n em ambas as direces de pesquisa. Mtodo de pesquisa a usar em cada uma das direces de pesquisa.

Caractersticas: Completo quando aplicvel. ptimo quando aplicvel. Complexidade espacial e temporal de O(bd/2).

Inteligncia Artificial

Mtodos de pesquisa informados


Os mtodos de pesquisa informados usam informao acerca do domnio para seleccionar o melhor caminho. Para isso, definida uma funo heurstica h(n) que estima o custo (ou distncia) do caminho de um n n at ao estado objectivo. A lista de ns a expandir ordenada por ordem crescente do valor de uma funo f, associado a cada n, que depende do valor de h. A ideia subjacente expandir o n que esteja mais prximo do objectivo. Propriedades de h(n): h(n) = 0 se n o n objectivo. h(n) 0 para os outros ns. h(n) tem valor infinito se impossvel atingir o objectivo a partir de n.

Exemplos de heursticas: Missionrios e Canibais: nmero de pessoas na margem de partida. Puzzle de 8: nmero de peas fora do stio. Puzzle de 8: Soma das distncias das peas em relao sua posio correcta.

Existem dois tipos de mtodos de pesquisa informados: Melhor Primeiro (Best-First Search): Neste tipo de algoritmos, tal como em todos os que j estudmos, a soluo consiste numa sequncia de aces que permitem ao agente atingir o estado objectivo a partir do estado inicial. Estes algoritmos ordenam a lista de ns a expandir por ordem crescente do valor de uma funo de avaliao f que incorpora informao especfica do domnio, e escolhem depois o melhor n, isto , o primeiro n da lista.

Melhoramento Iterativo: Em determinados problemas a informao necessria para atingir a soluo est contida no prprio n (Ex.: problema das 8 rainhas). Nestes casos no estamos interessados em saber qual o caminho para chegar soluo mas sim qual essa soluo. Os algoritmos usados nestes problemas comeam com uma configurao completa do problema e fazem modificaes nessa configurao com vista ao seu melhoramento. Analogia: as vrias configuraes so representadas por pontos numa superfcie que determina um relevo. A altitude de cada ponto na superfcie corresponde ao valor da

Inteligncia Artificial

funo de avaliao da configurao. A partir do ponto inicial (configurao inicial) pretende-se atingir o pico mais alto da superfcie (configurao ptima).

Melhor Primeiro (Best-First Search)


Procura Sfrega (Greedy Search)
Selecciona, para expandir, o n que se julga estar mais perto do objectivo, ou seja aquele para o qual o valor de h menor. Neste caso f(n) = h(n), em que n representa um n. Caractersticas: No completo. No ptimo. No pior caso a complexidade temporal e espacial so O(bm), em que m a profundidade mxima do espao de pesquisa.

10

Inteligncia Artificial

A*
Tenta expandir o n que pertence ao caminho com um menor custo associado. Caractersticas: Usa uma funo de avaliao f(n) = g(n) + h(n), onde g(n) d o valor do custo do caminho percorrido desde a raiz at ao n n. Quando h(n) h*(n) , onde h*(n) igual ao custo real do caminho com custo mnimo desde n at ao objectivo para todo o n, diz-se que h admissvel. O uso de uma heurstica admissvel garante que um n que pertena a um caminho ptimo no parea mau ao ponto de nunca ser escolhido. O A* completo e ptimo desde que h(n) seja admissvel. Se h(n) = h*(n) para qualquer n, todos os ns pertencentes soluo ptima sero os primeiros a ser expandidos. Isto implica que no se visitem ns que no pertenam a essa soluo. Se h1(n) < h2(n) <= h*(n) para todos os ns n que no sejam soluo, ento h2 uma heurstica melhor que h1, na medida em que se A1* for uma verso do A* que use h1, e A2* uma verso do A* que use h2, ento qualquer n expandido por A2* tambm expandido por A1*. Por outras palavras, A1* expande pelo menos tantos ns como A2*. Diz-se que A2* mais bem informado do que A1*. Concluso: Quanto mais perto h estiver de h* menos ns sero expandidos.

Condio de consistncia Geralmente, o espao de pesquisa pode-se representar por um grafo onde pode existir mais do que um caminho para chegar a um n. Tendo em conta este facto e tambm que pretendemos usar uma verso do algoritmo geral de pesquisa que no permita que se expanda um n mais do que uma vez, teramos que alterar este algoritmo de modo a podermos, a qualquer momento, saber qual o caminho mais curto para atingir um n. Esta nova verso do algoritmo geraria um grafo de pesquisa e no uma rvore. Existe, no entanto, uma condio, denominada condio de consistncia, que se pode impor funo heurstica h que, quando obedecida, garante que o primeiro caminho a ser gerado at um determinado n j o caminho ptimo para esse n. Se essa condio se verificar podemos trabalhar com a verso do algoritmo j apresentada, que constri uma rvore de pesquisa e no um grafo. Consideremos um par de ns tal que nj seja sucessor de ni. Diz-se que a funo heurstica h obedece condio de consistncia se, para todos os pares no grafo de pesquisa, h(ni) h(nj) c(ni, nj) Onde c(ni, nj) o custo do arco de ni para nj.

11

Inteligncia Artificial

Pode-se tambm escrever h(ni) c(ni, nj) + h(nj) A figura seguinte ilustra esta condio nj c(ni, nj) ni h(ni) h(ni) c(ni, nj) + h(nj) h(nj)

Pesquisa com Memria Limitada


Aprofundamento Progressivo do A* (IDA*) Este algoritmo funciona de modo semelhante ao algoritmo de pesquisa por aprofundamento progressivo, mas em vez de impor um limite na profundidade at que se podem expandir os ns em cada iterao, impe limites sucessivos (contornos) no custo das solues que se podem calcular. O limite comea por tomar o valor de f para o n inicial e nas iteraes posteriores ter sempre o menor valor de f dos ns que ficaram por expandir na iterao anterior. O algoritmo pra quando encontra uma soluo cujo custo menor ou igual que o limite da iterao actual. Caractersticas: completo. ptimo. Em cada iterao a pesquisa realizada em profundidade primeiro. Entre iteraes, o IDA* s retm o limite corrente de f. O comportamento inferior do IDA* em certos domnios decorre de usar muito pouca memria. Se o valor da heurstica for diferente para todos os ns, em cada iterao s se inclui mais um n ().

12

Inteligncia Artificial

Exemplo: Suponhamos que temos um problema cujo espao de pesquisa pode ser representado pela seguinte rvore:
A 0 + 12 = 12 10 B 10 + 5 = 15 10 C 10 D 20 + 0 = 20 10 F 30 + 0 = 30 24 + 0 = 24 J 16 + 2 = 18 8 8 K 24 + 5 = 29 H 8 8 G 8 + 5 = 13 16 I 24 + 0 = 24

20 + 5 = 25 10 E 30 + 5 = 35

1 iterao limite = 12
A 12 B 15 G 13

O menor valor de f para os ns que no foram expandidos 13. Este ser o limite da prxima iterao. 2 iterao limite = 13
A 12 B 15

G 13

H 18

I 24

O limite da prxima iterao ser 15. Repare-se que I n objectivo mas, como o valor de f deste n superior ao limite actual, a pesquisa contnua.

13

Inteligncia Artificial

3 Iterao limite = 15
A 12 B 15

G 13

25

D 20 18

I 24

O prximo limite ser 18 4 Iterao limite = 18


A 12 B 15

G 13

25

D 20 18

I 24

J 24

K 29

O prximo limite ser 20 5 Iterao limite = 20


A 12 B 15

25

D 20

14

Inteligncia Artificial

SMA* O SMA* usa a memria disponvel e quando necessita de expandir um sucessor, mas no tem memria suficiente, esquece os ns com f mais alto. Caractersticas: Exemplo: Suponhamos que temos um problema cujo espao de pesquisa igual ao do exemplo anterior e que a memria apenas tem capacidade para guardar simultaneamente a informao de trs estados: Passos seguidos pelo algoritmo: 0. Incio.
A 12

Usa toda a memria disponvel. completo e ptimo se a memria o permitir.

1. Em cada passo, adicionado um sucessor ao n com menor custo que esteja no nvel mais profundo e que ainda no tenha sucessores . adicionado o filho B raiz A.
A 12 B 15

2. f(A) ainda 12. Expandimos o filho direito de A com f = 13. Agora que vimos todos as filhos de A, actualizamos o seu custo para o mnimo do custo dos seus filhos, ou seja, 13. A memria est agora cheia.
A 13 B 15 G 13

3. G ir ser expandido, mas primeiro temos que esquecer um n para termos espao. Esquecemos B, que a folha num nvel mais baixo com o maior valor de f. A guarda o valor mais baixo do seus descendentes esquecidos, ou seja, 15 (entre parntesis). A seguir, expandimos H com f(H) = 18. H no um n objectivo, e o caminho para H

15

Inteligncia Artificial

ocupa toda a memria (3 ns). Logo, no possvel achar uma soluo atravs de H, pelo que fazemos f(H) = .
A 13 (15) 8 G 13 H 18

4. G expandido outra vez. Esquece-se H e acrescenta-se I com f(I) = 24. Agora que vimos ambos os sucessores de G com valores de e 24 fazemos f(G) = 24. Agora f(A) toma o valor 15 (o menor de 15 e 24). Note-se que I um n objectivo, mas pode no ser a melhor soluo porque o custo de A de apenas 15.
A 15 (15) G 24 () I

24

5. A novamente o n mais promissor, pelo que B gerado pela segunda vez (chegmos concluso de que G afinal no era assim to bom).
A 15 B 15 G 24

6. C, o primeiro sucessor de B, no um n objectivo e j esgotmos a memria, pelo que fazemos f(C) = .


A 15 (24)

B 15

25

16

Inteligncia Artificial

7. Antes de visitarmos o outro sucessor esquecemos C. f(D) = 20, e este valor herdado por B e A.
A 20 (24)

20 ()

D 20

8. Agora o n que est no nvel mais profundo e com custo mais baixo D. D seleccionado para ser expandido e porque um n objectivo a pesquisa termina.

Melhoramento Iterativo
Trepa colinas (Hill Climbing)
Escolhe, de entre os sucessores de um n, o que tiver valor mais alto e considera apenas esse para continuar a pesquisa. Problemas: pode ficar preso em Mximos locais: so picos mais baixos do que o pico mais alto do espao de estados. Planaltos: so reas onde o valor da funo de avaliao praticamente o mesmo; Linhas de encontro de encostas.

Nestas situaes o procedimento usual reiniciar o algoritmo aleatoriamente noutro ponto do espao.

Esfriamento Simulado (Simulated Annealing)


Permite que, de vez em quando, se possa escolher um n com valor de f menor que o valor de f do n actual. Este procedimento tem por objectivo evitar mximos locais. Como funciona: Igual ao Trepa Colinas mas, em vez de escolher sempre o melhor n, escolhe aleatoriamente o sucessor s.
17

Inteligncia Artificial

s sempre escolhido se for melhor que o n actual. Se s for pior que o n actual, escolhido com uma determinada probabilidade que decresce esponencialmente com o valor de f de s. A probabilidade de s ser escolhido depende tambm do parmetro T. Quanto maior for o valor de T, maior a probabilidade de s ser escolhido. O valor de T vai diminuindo ao longo do processo de pesquisa.

Funes Heursticas
Alguns aspectos a considerar: Uma boa funo heurstica deve poder ser calculada rapidamente. Caso contrrio prefervel expandir mais ns usando uma heurstica mais rpida. Por vezes, pode-se formular uma boa heurstica calculando o custo exacto de uma soluo para uma verso simplificada de problema. Por exemplo, no puzzle de 8, se impusermos menos restries forma como as peas se podem movimentar de modo que qualquer pea possa ser movida num nico passo de qualquer posio para qualquer outra posio, ento isso significa que a soluo custa apenas o nmero de peas deslocadas, uma vez que agora cada pea deslocada pode ser colocada na posio certa num passo apenas. De modo semelhante, se assumirmos que em cada movimento se pode movimentar uma pea uma posio em qualquer direco independentemente do facto de essa posio estar ocupada ou no, ficamos com uma heurstica que a soma das distncias das peas deslocadas sua posio final. Qualquer uma das duas heursticas apresentadas admissvel. Por vezes possvel ter em conta as caractersticas de um estado na formulao de uma heurstica. Por exemplo, algumas das caractersticas importantes no xadrez so o nmero de peas de cada tipo que cada jogador ainda possui ou o nmero de peas que esto a ser atacadas pelas peas do adversrio. Se no for exigida uma soluo ptima, o uso de uma heurstica que sobrestime ocasionalmente o custo real mas que esteja normalmente muito perto desse valor, leva a que se expandam muito menos ns do que se usasse uma heurstica admissvel.

18

Anda mungkin juga menyukai