Ao usar A * (ou qualquer outro algoritmo de melhor localização de caminho), dizemos que a heurística usada deve ser admissível , ou seja, nunca deve superestimar o comprimento (ou os movimentos) reais do caminho da solução.
Como uma heurística admissível garante uma solução ideal? De preferência, estou procurando uma explicação intuitiva.
Se você quiser, pode explicar usando a heurística de distância de Manhattan do quebra-cabeça 8.
Respostas:
Enquanto a resposta de Anton é absolutamente perfeita, deixe-me tentar fornecer uma resposta alternativa: ser admissível significa que a heurística não superestima o esforço para atingir a meta, ou seja, para todos os n no espaço de estados (no quebra-cabeça 8, isso significa apenas para qualquer permutação dos ladrilhos e o objetivo que você está considerando no momento) em que h ∗ ( n ) é o custo ideal para atingir a meta.h ( n ) ≤ h∗( N ) n h∗( N )
Eu acho que a resposta mais lógica para ver por que fornece soluções ideais se h ( n ) é admissível, porque ele classifica todos os nós no OPEN em ordem crescente de f ( n ) = g ( n ) + h ( n ) e, também , porque não para ao gerar a meta, mas ao expandi-la:UMA∗ h ( n ) f( n ) = g( n ) + h ( n )
E isso é, essencialmente, tudo o que você encontrará na prova original de Nilsson et al.
Espero que isto ajude,
fonte
Se a função heurística não for admissível, poderemos ter uma estimativa maior que o custo real do caminho de um nó para um nó de objetivo. Se essa estimativa de custo de caminho mais alto estiver no caminho de menor custo (que estamos procurando), o algoritmo não o explorará e poderá encontrar outro caminho (não de menor custo) para a meta.
Veja este exemplo simples.
Que as heurísticas sejam
fonte