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
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
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
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
Inteligncia Artificial
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
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).
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)
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
G 13
25
D 20 18
I 24
J 24
K 29
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
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
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.
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