Busca Heuristica
Algoritmos de busca são técnicas de Inteligência Artificial aplicadas a problemas de alta complexidade teórica que não são resolvidos com técnicas de programação convencionais, principalmente as de natureza numérica. A complexidade de um problema está relacionada ao tamanho do seu espaço de busca correspondente. O processo de solução de um problema pode ser reduzido a um Algoritmo de Busca Heurística, cujo espaço de busca é formado por transformações sucessivas de estados em uma certa ordem de geração e percurso. Vejamos a seguir alguns métodos de busca:
Busca Cega ou Exaustiva:
– Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo dos não objetivos.
Busca Heurística:
– Estima qual o melhor nó da fronteira a ser expandido com base em funções heurísticas.
- A busca heurística leva em conta o objetivo para decidir qual caminho escolher.
Busca Local:
– Operam em um único estado e movem-se para a vizinhança deste estado.
A busca heurística leva em conta o objetivo para decidir qual caminho escolher. Conhecimento extra sobre o problema é utilizado para guiar o processo de busca.
Vejamos alguns algoritmos de busca heurística que iremos abordar:
-A*
-Breadth First Search
-Best First Search
-Dijkstra
2. Métodos Heurísticos
Métodos heurísticos são algoritmos exploratórios que buscam resolver problemas.
Geralmente não envolvem a implementação computacional de um conhecimento especializado (por exemplo, um método heurístico, para resolver uma equação de segundo grau, não usaria, necessariamente, a fórmula de Báscara, mas buscaria, por outros métodos, uma solução que atendesse à equação). Por este motivo, muitas vezes, esses métodos são classificados como busca cega.
Uma solução ótima de um problema nem sempre é o alvo dos métodos heurísticos,uma vez que, tendo como ponto de partida uma solução viável, baseiam-se emsucessivas aproximações direcionadas a um ponto ótimo.