1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E
TECNOLOGIA DO SUL DE MINAS – CAMPUS
MUZAMBINHO
Curso Superior de Ciência da Computação
PEDRO HENRIQUE DE OLIVEIRA MACHADO
SAYMON CRISTIAN ALVES OLIVEIRA
REGINALDO FARIA DA SILVA
RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA COM
INFORMAÇÃO
Muzambinho
2013
2. 2
Sumário
1
Resolução de Problemas por meio de busca ...................................................................... 3
2
Busca com Informação ....................................................................................................... 3
3
Heurística............................................................................................................................ 3
4
Busca A* ............................................................................................................................. 4
5
Busca Gulosa ..................................................................................................................... 6
6
Minimax .............................................................................................................................. 6
7
Anexo I ..............................................................................................................................10
7.1
Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012 ........................10
7.1.1
8
O problema do Metrô de Paris .............................................................................10
Bibliografia .........................................................................................................................13
3. 3
1 Resolução de Problemas por meio de busca
É construir um espaço de estados para encontrar uma sequência de ações cuja
aplicação resolve um problema.(RIZZI, 2013)
Segundo LIMA, o processo de tentar encontrar uma sequencia de ações que
leva de um estado até um estado objetivo é chamado de busca.
2 Busca com Informação
A Busca com Informação utiliza a definição do problema bem como o
conhecimento específico do problema (informações do problema) para efetuar as
buscas, este método, não procura a melhor solução é sim uma boa ou apenas alguma
solução.
Portanto a Busca com Informação utiliza o conhecimento específico para as
tomadas de decisão, ou seja, a escolha do próximo nó a ser expandido, isso não
garante encontrar uma solução nem ao menos uma solução ótima mais na maioria das
vezes consegue acelerar o processo.
Ex: perder uma chave e se recordar da ultima vez que utilizou ela para começar a
procurar.
3 Heurística
Problemas intratáveis ou difíceis de se obter uma solução ótima são casos da
aplicação de algoritmos de heurística. Pode-se dizer que é um algoritmo que pode
produzir um bom resultado, ou até mesmo obter a solução ótima, mas pode
também não produzir solução alguma ou uma solução que está distante da solução
ótima, assim ele gerasoluções aproximadas dentro de um limite, afim de mostrar
qualidade nos resultados.
4. 4
Trabalhamos com algoritmos de heurística quando se diz respeito ao consumo
de tempo e não ter uma grande quantidade de recursos para encontrar soluções de
boa qualidade.
Definimos alguns casos e exemplos de heurística para melhor entendimento:
●
Problema da subida da encosta ou Hill Climbing:é uma estratégia que foi
baseada na Busca em Profundidade, que liga a ideia de atingir o objetivo com
o menor custo ou menor número de regras. A ideia é, empregando uma
ordenação total ou parcial do conjunto de estados, é possível dizer se um estado
sucessor leva para mais perto ou para mais longe da solução. Assim o algoritmo
de busca pode preferir explorar em primeiro lugar os estados que levam para
mais perto da solução.
●
Há duas variações do método: a Subida de Encosta SIMPLES e a Subida de Encosta
PELA TRILHA MAIS ÍNGREME.
●
Subida de encosta simples: vai examinando os sucessores do estado atual e segue
para o primeiro estado que for maior que o atual.
●
Subida de encosta pela trilha mais íngreme: Examina todos os sucessores do estado
atual e escolhe entre estes sucessores qual é o que está mais próximo da solução.
● Caixeiro Viajante:
● Problema das cores do mapa:
Se assemelha com o “tentativa e erro”.
4 Busca A*
É a forma mais conhecida de busca pela melhor escolha, avalia os nós
combinando g(n), o custo para alcançar cada nó , e h(n), o custo para ir do nó até o
objetivo: f(n) = g(n) + h(n). (RUSSEL, 2004)
5. 5
Sendo assim g(n) trata-se do caminho a ser percorrido do nó inicial até o nó n
sendo este o nó atual e h(n) refere-se ao caminho a ser percorrido do nó n até o nó
objetivo, desta forma f(n) caracteriza pela soma do caminho a ser percorrido para se
chegar ao nó n com o caminho a ser percorrido do nó n até chegar o objetivo da busca
onde é estimada a solução de custo maís baixo passando por n.
O algoritmo de Busca A* visa experimentar primeiro o nó com menor valor de
g(n) + h(n), esta estratégia poderá resultar em um algoritmo ótimo e completo, desde
que a função heurística h(n) satisfaça certas condições, a busca A* será ao mesmo
tempo completa e ótima.
Segundo RUSSEL(2004), A* será ótima se for usada com BUSCA-EM-ÁRVORE
e se h(n) for uma heurística admissível, isto é, desde que h(n) nunca superestime o
custo para alcançar o objetivo. Heurística admissíveis são otimistas por natureza , pois
imaginam que o custo da resolução do problema seja menor do que ele é na realidade.
Tendo em vista que g(n) nunca irá superestimar o custo verdadeiro de uma solução
passando por n.
Se h(n) for sempre uma subestimativa da distância de um nó a um nó
objetivo, então o algoritmo A* será ótimo: é garantido encontrar o
caminho mais curto até um estado objetivo. A* é descrito como sendo
otimamente eficiente, no sentido de que, para encontrar o caminho até o
nó objetivo, ele expandirá o mínimo de caminhos possível. Mais uma vez,
essa propriedade depende de h(n) ser sempre um subestimativa.
(COPPIN, 2012)
A* será completo apenas se:
● a árvore a ser percorrida tiver um fator finito de ramificação;
● não contiver um caminho de custo finito com um número de nós infinitos;
● se o grafo a ser percorrido for localmente finito, ou seja, deve possuir um fator
finito de ramificações;
● e todo arco entre dois nós do grafo tiver um custo diferente de zero.
6. 6
5 Busca Gulosa
A busca gulosa pela melhor escolha tenta expandir o nó mais próximo à meta,
na suposição de que isso provavelmente levará a uma solução rápida segundo Russel,
2004, ou seja, o algoritmo se dirige ao nó cuja medida reta até o destino proposto seja
o menor entre todos os nós isso supostamente levaria o algoritmo a um caminho mais
próximo.
Busca gulosa é uma variação do algoritmo A*, na qual g(nó) é zerada, de
tal modo que apenas h(nó) é utilizada para avaliar caminhos apropriados.
Deste modo, o algoritmo sempre seleciona o caminho que tenha o menor
valor heurístico ou distância estimada (ou custo) até o objetivo.(COPPIN,
2012)
No entanto a distância reta entre um nó a outro pode não ser a distância exata a
ser percorrida o que faz com que a solução encontrada pelo algoritmo de Busca Gulosa
não seja uma solução ótima uma vez que a distância a ser percorrida possa ser maior
que a distância das retas.
6 Minimax
É um método usado na Teoria da Decisão, Teoria dos Jogos, Estatística e
Filosofia para minimizar a perda máxima possível.(CALADO, 2008/2009)
O minimax é um recurso para minimizar a perda máximapossível. Sendo
considerado como a maximização do ganho mínimo. Avaliando a árvore de jogos,
pode-se assumir que o computador esteja tentando maximizar alguma pontuação que o
oponente esteja tentando minimizar.
O Algoritmo Minimax é usado para identificar os bons movimentos. Tendo a
disponibilidade de uma adequada função estática de avaliação que seja capaz de
fornecer uma pontuação geral para uma dada posição. Assim ao aplicar o Minimax o
avaliador estático será utilizado apenas nas folhas e os valores das folhas serão
7. 7
filtrados, subindo a árvore, para pegar o melhor caminho que o computador possa
atingir.
O algoritmo minimax calcula a decisão minimax a partir do estado
corrente. Ela utiliza uma computação recursiva simples dos valores
minimax de cada estado sucessor, implementando diretamente as
equações da definição. A recursão percorre todo o caminho descendente
até as folhas da árvore, e depois os valores minimax são propagados de
volta pela árvore, à medida que a recursão retorna.
O algoritmo minimax executa uma exploração completa em profundidade
da árvore de jogo. Se a profundidade máxima da árvore é m e existem b
movimentos válidos em cada ponto, a complexidade de tempo do
m
m
algoritmo minimax é O(b ). A complexidade de espaço é O(b )para um
m
algoritmo que gera todos os sucessores de um vez ou O(b )para um
algoritmo que gera um sucesso de cada vez.(RUSSEL, 2004)
O Algoritmo Minimax um procedimento recursivo direto, que usa por base dois
procedimentos auxiliares, específicos do jogo, o gerador de movimento e a avaliação
estática.
O procedimento minimax precisa de três parâmetros para ser iniciada.
- Posição do Tabuleiro.
- Atual profundidade da busca.
- Jogador que realizara a jogada.
Sendo assim uma função recursiva, a profundidade atual é a mais comumente
utilizada para o encerramento. É possível utilizar diversos modos: limitar o
procedimento através do número de nós gerado, através do tempo estipulado, ou até
que a busca ache um movimento que não seja ruim não precisa ser o melhor
movimento. Como em qualquer partida, existe o fator do tempo do relógio, que varia
muito conforme a ocasião. Assim foi feito o mecanismo de cotas de tempo para que o
tempo seja processado e administrado do melhor modo como se fosse um humano.
Podendo estipular o tempo do jogo e assim feito uma estimativa do tempo de cada
jogada. Durante a execução, quando a cota de tempo é ultrapassada, a estrutura é
retornada e o movimento com a melhor contagem até então é realizado.
8. 8
O procedimento minimax traz como resultado a estrutura que contém o valor do
caminho escolhido e o caminho em si, com o primeiro elemento, que representa o
melhor movimento a partir da posição atual. Se estiver dentro da cota de tempo, uma
camada da arvore é gerada, chamando a função de geração de movimento e atribuindo
como nós sucessores a lista que for retornada. Casa não haja sucessores, então não
há mais movimento a fazer. Retorna a estrutura. Se a lista de sucessores não estiver
vazia, então cada elemento é examinado através da função de avaliação estática, que
retornara o valor de cada nó, sendo guardado o registro do melhor elemento.
Como o Procedimento Minimax, tem um caminho que é explorado até o onde o
tempo permitir, muito caminhos podem surgir sem necessidade. Através de algoritmos
de busca fazendo algumas alterações no algoritmo Minimax para que isso não ocorra.
Alguns dos algoritmos de busca:
● Cortes Alfa-Beta- Técnica de manutenção de dois valores limites
para os nós, modificando, dessa forma, a estratégia de ramificar e
limitar utilizada no Minimax
● Busca de Quiescência- Consiste em uma busca adicional, que
tenta solucionar o problema de respostas incertas que podem ser
dadas pela função de avaliação caso se pare de aprofundar em
uma árvore não estável.
● Busca de Consistência- Consiste em uma busca de quiescência
que generaliza a busca de captura, frequentemente usada em
programas de xadrez. Expande nós que não são consistentes.
● Busca Secundária- Aumentando a precisão do procedimento
Minimax através da conferência dupla em determinada parte da
árvore.
● Movimentos Livrescos- A utilização de movimentos livrescos nas
sequências iniciais e finais em alguns jogos, combinada com a
utilização do procedimento Minimax, fornece um exemplo de como
o conhecimento e a busca podem ser combinados num único
programa e produzir resultados mais eficazes do que quando
aplicados isoladamente.
9. 9
● Busca Racional- Fundada na teoria da decisão, a ideia é analisar
matematicamente as decisões tomadas por um algoritmo de busca
para que sejam tomadas da melhor maneira possível.
10. 10
7 Anexo I
7.1 Exemplo de aplicação de Heurística com A* segundo NICÁCIO 2012
7.1.1
O problema do Metrô de Paris
“Suponha que queremos construir um sistema para auxiliar um
usuário do metrô de Paris a saber o trajeto mais rápido entre a estação
onde ele se encontra e a estação de destino. O usuário tem um painel
com o mapa, podendo selecionar a sua estação de destino.
O
sistema então acende as luzes sobre o mapa mostrando o melhor trajeto
a seguir (em termos de quais estações ele vai atravessar., e quais as
conexões mais rápidas a fazer – se for o caso).
Considere que:
• A distância em linha reta entre duas estações quaisquer é
dada em uma tabela. Para facilitar a vida, considere apenas 4 linhas do
metrô.
• A Velocidade média de um trem é de 30km/h;
• Tempo gasto para trocar de linha dentro de mesma estação
(fazer baldeação) é de 4 minutos.”(NICÁCIO, 2012)
11. 11
Fonte: http://www.acso.uneb.br/marcosimoes/Disciplinas/UNEB/TEI3/Arquivos/MetroParis.pdf
“No problema do metrô de Paris, adotamos como representação do Estado o seguinte conjunto
de informações:
• O número da estação de metrô
• A linha a qual esta estação pertente
• informação sobre baldeação – informações sobre as linhas de metrô que passam pela estação, quando
esta estação dá acesso a mais de uma linha de metrô.
12. 12
A informação sobre baldeação é importante porque informa ao agente de busca quando é
possível trocar de linha de metrô, assim como também ajuda na formação da função heurística, visto que
a realização de baldeação de linha pode ser mais custoso em um determinado ponto do caminho, mas
nada impede que o caminho de menor custo seja justamente o caminho que utilize baldeações.
Alguns exemplos da representação de um estado seriam:
• E = (1, azul, null) – representando a estação UM que pertence à linha azul e não possui opção de
baldeação.
• E = (4, azul, azul-verde) – representando a estação QUATRO, que pertence à linha Azul e possui
baldeação com a linha verde.
• E = (4, verde, azul-verde) – representando a estação QUATRO, que pertence à linha Verde e possui
baldeação com a linha azul.
Observe que cada estação que possui opção de baldeação pode ser representada de duas
formas diferentes, dependendo do caminho percorrido pelo agente. Pela ótica do agente de busca, se
ele está percorrendo a linha azul em busca da estação 8 (linha verde ou amarela) e alcança a estação 4,
naturalmente ele entenderá que essa estação pertence à linha que ele vem percorrendo (linha azul).
Uma vez estando na estação 4-azul, o agente pode modificar seu trajeto para a estação 4-verde.
Toda vez que o agente realizar uma ação onde ele não muda de estação, mas muda de linha, dizemos
que o agente realizou uma ação de baldeação.
Ações do agente
Neste contexto, o agente pode realizar as seguintes ações:
• Ir(estacao)
• Baldear(Estação)
Resultado da busca
Utilizamos o algoritmo A* (A Estrela) para a busca do estado alvo. Para demonstração,
escolhemos a estação 1 como estado inicial e a estação 14 como estado final.
Como o algoritmo A* exige a utilização de funções heurísticas, precisávamos representar, em
alguma estrutura de dados, as informações fornecidas pela lista através da tabela de distâncias e do
mapa do metrô. No programa, portanto, todas essas informações necessárias estão à disposição em
uma classe chamada ModeloMetro.java, utilizando o padrão de projeto singleton.”(NICÁCIO, 2012))
13. 13
8 Bibliografia
CALADO
CARLOS,
Luís,
et
al
.Algoritmo
MiniMax.
Disponível
em:<http://paginas.fe.up.pt/~eol/IA/IA0809/APONTAMENTOS/Alunos_MiniMax.pdf>
2008/2009. Acesso em: 04/09/2013.
COPPPIN, Ben; Inteligência Artificial. Editora: LTC - Livros Técnicos e Científicos
Editora LTDA 2012. 628p.
NICÁCIO, Jalves Mendonça; MIRANDA, SunnyKelma Oliveira; PINTO, Fernando
Antonio
Dantas
Gomes,
Disponível
em:
<http://jalvesnicacio.wordpress.com/2012/03/25/algoritmo-a-a-star-e-busca-emlargura/> Publicado em : 25 março 2012 . Acesso em: 17/09/2013
LIMA, Edirlei Soares de. Inteligência Artificial – Resolução de Problemas por Meio
de
Busca.
Disponível
em:
<http://edirlei.3dgb.com.br/aulas/ia_2012_2/IA_Aula_03_Busca_2012.pdf> Acesso em:
31/08/2013.
RIZZI, Claudia Brandelero, Inteligência Artificial – Busca com informação e
exploração. Disponível em: <http://www.inf.unioeste.br/~claudia/aula2203_heu1.pdf>
25/03/2013, Acesso em : 31/08/2013.
RUSSELL, Stuart ; NORVIG, Peter. Inteligência Artificial. 12ª Tirgagem.
Elsevier 2004. 1021 p.
Editora: