Resolução de Problemas Aula 2 - Inteligência Artificial
Resolução de Problemas (Introdução) A resolução de um problema é composta por três passos: Definir o problema com precisão. (situações inicial e final) Analisar o problema. (recursos) Escolher a melhor técnica e aplicá-la ao problema em particular.
Definição do Problema como uma usca em um Espaço de Estados Para exemplificar, vejamos dois exemplos: locos Vasilhame de água
Problema - locos Problema: encontrar um plano para rearranjar os blocos. A? A
Problema - locos ondições Um bloco pode ser movido apenas se seu topo está vazio; Apenas um bloco pode ser movido de cada vez; Um bloco pode ser colocado sobre a mesa ou sobre outro bloco; Para encontrar um plano, devemos encontrar um seqüência de movimentos que nos levem ao objetivo.
Problema - locos Explorar entre as diversas possíveis alternativas. omo esse exemplo ilustra, existem dois tipos de conceitos envolvidos nesse problema: Situações do problema; Movimentos ou ações permitidos, os quais transformam as situações de problema em outras situações.
Problema locos Espaço de Estados Estado inicial A A A A A A A A A A A A A
Problema locos Espaço de Estados Estado inicial A A A A A A A A A A A Estado final A A
Problema Vasilhame Problema: são dados dois vasilhames d água, em de 4 litros e outros de 3 litros. Nenhum deles possui qualquer marcação de medida. Há uma bomba que pode ser utilizada para encher os vasilhames de água. omo colocar exatamente 2 litros de água no vasilhame de 4 litros?
Problema Vasilhame Espaço de estados pode ser descrito como o conjunto de pares ordenados de inteiros (x,y), tal que x={0,1,2,3,4} e y={0,1,2,3} onde x representa o vasilhame de 4 l e y o vasilhame de 3 l. Estado inicial: (0,0) Estado final: (2,n)
Problema Vasilhame Regras: (x,y! x<4) (4,y) Encher (x,y! y<3) (x,3) Encher (x,y! x>0) (x-d,y) Esvaziar parcial/ e (x,y! y>0) (x,y-d) Esvaziar parcial/ e (x,y! x>0) (0,y) Esvaziar (x,y! y>0) (x,0) Esvaziar (x,y! x+y>=4 ^ y>0) (4,y-(4-x)) Despejar (x,y! x+y>=3 ^ x>0) (x-(3-y),3) Despejar (x,y! x+y>=4 ^ y>0) (x+y,0) Despejar tudo (x,y! x+y>=3 ^ x>0) (0,x+y) Despejar tudo
Problema Vasilhame Para resolver o problema, deve-se: Escolher a regra cujo lado esquerdo seja igual ao estado atual; A mudança adequada ao estado seja realizada conforme descrito pelo lado direito correspondente; Verificar se o estado resultante corresponde ao estado meta (final); cc repetir até que o estado meta seja alcançado.
Problema Vasilhame Uma possível solução: Litros no vasilhame de 4 l 0 0 3 3 4 0 2 Litros no vasilhame de 3 l 0 3 0 3 2 2 0 Regra aplicada 2 9 2 7 5 9
Problema Vasilhame Observar regras 3 e 4. Prática x característica inteligente ; Poucas regras (generalidade) x muitas regras (especificidade); omo projetar um programa que converta descrições informais de problemas em representações de espaço de estados?
Descrição formal de um problema Definir o espaço de estados; Especificar estado(s) inicial(ais) e final(ais); Especificar o conjunto de operadores e a estratégia de controle: Que suposições não declaradas estão presentes na descrição informal? Qual a generalidade a ser considerada? Quanto do trabalho exigido para resolver o problema deve ser pré-calculado e representado nas regras?
Estratégias de ontrole Importante pois, algumas vezes, mais de uma regra pode ter seu lado esquerdo igual ao estado atual; A decisão sobre que regras aplicar tem um impacto direto sobre o tempo e possibilidade de resolução do problema;
Estratégias de ontrole Exigências para uma estratégia de controle: Ela deve causar movimento, cc é possível que uma solução nunca seja encontrada; Ela deve ser sistemática, cc seqüências de estados inúteis podem ser exploradas antes que uma solução seja encontrada. Exemplo: árvore contendo os estados possíveis.
Estratégias de ontrole Duas estratégias básicas de abordagem para a busca: usca em profundidade usca em largura
usca em profundidade O nó mais distante do nó inicial é sempre escolhido. Idéia: Se N é um nó solução então Sol=[N], ou Se há um nó adjacente N1 a N, tal que existe um caminho Sol1 partindo de N1 até o nó final, então Sol=[N Sol1]
usca em profundidade a b c d e f g h i j k
usca em largura São escolhidos os nós mais próximos do nó inicial. A busca é realizada mais em largura que em profundidade. Algoritmo mais complexo, pois é necessário manter um conjunto de candidatos em uma fila e não apenas um como na busca em profundidade.
usca em largura O caminho mais curto sempre é encontrado. Idéia: Dado um conjunto(fila) de caminhos candidatos: Se o primeiro caminho contém o nó final como primeiro elemento da fila, esta é a solução; Remova o primeiro caminho do conjunto de candidatos e gere um conjunto de todas as possíveis extensões de um nó desse caminho, adicione esse conjunto de extensões ao final do conjunto de candidatos e execute busca em largura no conjunto resultante.
usca em largura a b c d e f g h i j k
usca Heurística usca em profundidade e largura ineficientes para resolver problemas complexos fundamental procurar por melhores estratégias de busca. Maioria dessas melhores estratégias estão relacionadas a busca em profundidade e largura. Duas variações: busca usando heurística e busca usando funções de avaliação.
Alguns problemas clássicos anibais e Missionários Torre de Hanoi Macaco e ananas aminho num Grafo aminho do avalo no Tabuleiro de Xadrez Problema das Oito Rainhas