4 - Resolução de Problemas
Inteligência Artificial
Prof. Laurence Rodrigues do Amaral
Introdução
• A capacidade das pessoas para resolver problemas de naturezas variadas é um importante indicador de inteligência
• Em IA a resolução de problemas também é importante para a maioria das aplicações
• Para que a tarefa possa ser executada em um computador, é preciso encontrar estruturas
capazes de representá-lo de modo que seja possível realizar o processamento em cima desta representação
Introdução
• As estruturas mais usadas na prática são os grafos e árvores
• Para os quais existe um bom conjunto de técnicas destinadas ao seu
Representação do Problemas
e Espaço de Estados
• Muitas vezes, um problema por ser
representado por um grafo, composto por nós e arcos
– Nós: representam os estados que podem
ocorrer em diferentes etapas da resolução do problema
– Arcos (ou arestas): representam ações que transformam um estado em outro, no sentido de que uma solução seja encontrada
Representação de Problemas
e Espaço de Estados
• Exemplo clássico de resolução de problemas
– Problema dos missionários e canibais
– http://jogolandia.uol.com.br/index2.php?bfga mes=jogar&id=2019
Problema dos
Problema dos
Problema dos 8
• O problema apresenta um número de combinações muito grande
• O uso de heurísticas se torna necessário, maximizando alguma medida que
descreve, de algum modo, o quanto uma jogada é boa
• De fato, esta é a estratégia usada pelas pessoas quando participam deste jogo
Busca Heurística (BH)
• Dentre as técnicas de IA, tem-se a busca heurística
• A BH proporciona um meio de solucionar problemas complexos, para os quais não há disponível uma abordagem mais direta nem uma estrutura na qual qualquer
técnica direta disponível possa ser inserida
Heurística
• A palavra “heurística” vem do grego heuriskein, que significa “descobrir” • Ela é um procedimento para resolver
problemas através de um enfoque
intuitivo, em geral racional, no qual a estrutura do problema passa a ser
interpretada e explorada inteligentemente para obter uma solução razoável
Heurística
• Para os estudiosos da IA, as heurísticas são critérios, métodos ou princípios
para decidir, entre os vários cursos de ação alternativos, aquele que parecer mais efetivo para atingir algum objetivo
Decomposição de Problemas
• Complexidade de problemas é uma
questão muito relevante, devendo sempre ser considerada
• Pois pode acontecer do número de
prováveis caminhos ser muito grande, ou até mesmo impossível de ser processado
– Problemas combinatórios de ordem muito elevada, que não podem ser resolvidos em tempos viáveis
Decomposição de Problemas
• Para tentar solucionar este problema a primeira tarefa é verificar se o problema pode ser decomposto em problemas
menores
• Cujas soluções tendem a ser menos complexas
• Assim, a resolução do problema principal deverá ser obtida resolvendo os
Técnicas de Busca (TB)
• Técnicas de Buscas
– Técnicas de Buscas Cegas
• Busca em Amplitude ou Largura • Busca em Profundidade
• Busca Bidirecional
– Técnicas de Buscas Heurísticas
• Busca Melhor Escolha
• Busca Subindo o Morro (Hill Climbing)
• Busca Têmpera Simulada e Algoritmo Genético • Busca Menor Custo ou A*
– Técnicas de Busca com Adversários
Técnicas de Busca (TB)
• O desempenho dos algoritmos de busca pode ser avaliado em quatro aspectos
– Completeza: quando o algoritmo sempre encontra uma solução, se ela existir;
– Otimização: quando o algoritmo encontra a solução ótima;
– Complexidade de tempo: se refere ao tempo
máximo exigido pelo algoritmo para realizar a busca; – Complexidade de memória: se refere à quantidade
máxima de memória usada pelo algoritmo,
geralmente utilizada para guardar informações sobre os nós visitados e a serem visitados (lista)
Encontrar o melhor
caminho entre os nós A e I
Valor estimado entre o nó e estado final
Técnicas de Buscas Cegas
• As buscas cegas (não informadas) apresentam grandes diferenças entre as sequências de nós percorridos
• Entretanto, em todos os casos, usam uma lista para manter o controle sobre os nós já visitados • As buscas cegas mais conhecidas são
– Busca em amplitude ou largura (ou em níveis ou breadth-first)
– Busca em profundidade (depth-first) – Busca Bidirecional
Busca em Amplitude
ou Largura
• Esta técnica insere o nó a ser visitado no final da lista e, consequentemente, irá percorrer
todos os nós mais próximos ao nó inicial e, em seguida, os nós que estão a dois arcos do nó inicial
• Por isto, também é conhecida por busca em níveis
• Estrutura FIFO (first in first out)
– Nós são inseridos no final da lista e sempre retirados do início da lista
Busca em Amplitude ou Largura Saindo de A e chegando em I Lista = A Lista = A, B, C, D Lista = A, B, C, D, E, F
Busca em Amplitude
ou Largura
Busca em Profundidade
• Nesta técnica os nós visitados são
inseridos no início da lista, assim, serão percorridos todos os nós nível abaixo, até atingir o nó mais distante da raiz, quando então a busca precisa retornar um nível acima para continuar
• Estrutura LIFO (last in, first out)
– Os nós são inseridos no início da lista e sempre retirados do início da mesma para serem visitados
Busca em Profundidade –
Saindo de A e chegando em I
Lista = A Lista = B, C, D, A Lista =E, F, B, C, D, A Lista =K, L, E, F, B, C, D, A Lista = K, L, E, F, B, C, D, ABusca Bidirecional
• Evitar o número excessivo de nós a serem visitados com a busca em largura
• A Busca Bidirecional propõe usar duas buscas em largura; uma partindo do nó inicial e outra partindo do nó meta
• E o processo é interrompido quando as duas buscas se interceptam
Busca Bidirecional
Lista Meta = I Lista Meta = I, L, J, G, D
Lista Início = A
Buscas Heurísticas
• Podem ajudar a acelerar a solução do problema
– Estimativa da distância entre os nós e a meta
• Geralmente os parâmetros são incertos e não garantem uma solução ótima,
• Conseguem acelerar o processo, pois as buscas heurísticas exploram direções
Buscas Heurísticas
• O uso de heurísticas NÃO garante que a solução será encontrada e, muito menos, que a solução encontrada será a solução ótima para o problema
• A única maneira de se resolver um
problema é utilizando buscas heurísticas
– Quando o número de estados possíveis se
torna grande demais para ser processado por buscas exaustivas
Busca Melhor Escolha
• Depende do conhecimento que permite estimar um valor relativo à meta e move-se na direção do nó que apresenta um valor melhor que o nó atual
• Com isso, tenta-se minimizar o número de nós visitados
• Para cada nós gerado, a função heurística de avaliação retorna o valor estimado até a meta, e a busca segue para o primeiro nó filho com
Busca Melhor Escolha
Lista = A Lista = A, B, C, D 67 68 45 43 Lista = A, B, C, D F G H 67 68 45 43 50 28 21Busca Subindo o Morro
ou Hill Climbing
• Depende de conhecimento que permite estimar um valor relativo à meta e move-se em direção do nó que apremove-senta um valor melhor que o nó atual
• Se assemelha com a Busca Melhor
Escolha, mas não utiliza uma lista para manter o controle sobre os nós visitados, objetivando diminuir a necessidade de
Hill Climbing
• A Busca Hill Climbing apresenta alguns problemas
– Quando todas as direções (todos os nós filhos) são iguais, o que é chamado Platô
– A direção parece boa, mas em seguida se verifica que não é (Máximo Local)
– Como ela não utiliza lista para se orientar, podem ocorrer situações em que a busca fica andando em círculos, ou até mesmo presa em um estado (Máximo Local)
• Isso pode ser resolvido com uma pequena lista auxiliar para guardar os últimos movimentos e, quando verificar a
repetição de estados, altera-se a próxima escolha do nó a visitar
Hill Climbing
1. Avalia-se A, como não é a meta, avalia-se os filhos
2. B = 68, C = 45 e D = 43. Avalia-se os C pois é o primeiro melhor valor que A = 67 3. Como C não é a meta, avalia-se os seus filhos
4. F = 50, G = 28 e H = 21. Avalia-se G pois é o primeiro melhor valor que C = 45 5. Como G não é a meta, avalia-se os seus filhos
6. I = 0 e H = 21. Avalia-se I pois é o primeiro melhor valor que G = 28 7. Como I é a meta, o algoritmo chegou ao final
Busca Têmpera Simulada
e Algoritmos Genéticos
• Têmpera simulada gera os novos estados com alguma aleatoriedade
– Diferentemente da Hill Climbing que sempre se
desloca em direção ao topo, e apresenta dificuldades na presença de máximos locais
• Funcionamento
– Quando um novo estado é melhor que o estado atual (se aproxima mais da meta, maximizando ou
minimizando a função de avaliação), o novo estado é adotado
– Mesmo quando o novo estado não é melhor que o estado atual, ainda existe uma probabilidade deste novo estado ser adotado
Busca Têmpera Simulada
e Algoritmos Genéticos
• Com esta estratégia, espera-se resolver o problema dos máximos ou mínimos locais, evitando que a busca fique presa
• Os Algoritmos Genéticos, podem também serem vistos como uma técnica de busca parecida com a técnica Hill Climbing,
porém gerando os novos estados a partir de cruzamento dos estados atuais mais promissores
Busca Menor Custo
ou A*
• Explora os nós com o menor custo total
– Somando o custo exato para ir do nó inicial até o nó atual (função custo)
– Com o custo estimado para continuar até a meta (função de avaliação)
• Esta busca também sofre com o problema dos máximos locais
– Assim, nós que inicialmente parecem bons, podem se revelar ruins
– Da mesma forma que nós não muito promissores, podem se tornar interessantes
• Durante a busca os nós são inseridos em uma lista que deve ser ordenada de acordo como custo total dos nós
Busca Menor Custo
ou A*
• Tem-se: partindo do nó A, que não é a meta, são estimados os custos totais pelos caminhos indo por seus nós
Busca Menor Custo
ou A*
Busca Menor Custo
ou A*
Busca Menor Custo
ou A*
Busca Menor Custo
ou A*
Busca Menor Custo
ou A*
Busca Menor Custo
ou A*
Busca com Adversários
• Existem problemas que exigem a interação com um adversário, como é o caso dos jogos de
damas e xadrez
• Neste caso, a solução também pode ser representada por um grafo de estados,
entretanto, uma nova estratégia precisa ser
adotada, pois não basta a máquina encontrar o melhor caminho para as suas jogadas, é preciso que o caminho escolhido atenue os estragos
Busca com Adversários
• A estratégia mais conhecida neste caso é a técnica Min-Max, que procura um
caminho pelo grafo que maximiza as
jogadas da máquina e ao mesmo tempo minimiza os danos pelas jogadas de seu adversário
Busca com Adversários
Paras as minhas jogadas eu seleciono o MAX
Poda Alfa-Beta
• O problema com o método Min-Max é que a quantidade de buscas pode se tornar
muito grande
• A poda Alfa-Beta sugere então diminuir o número de caminhos a serem
investigados, descartando os caminhos ruins