În sensul cel mai general, putem spune că un algoritm de căutare este de tipul Best-First dacă păstrează o evidenţă cu candidaţii şi alege să verifice mereu candidaţii cu potenţial mai mare înainte de a-i verifica pe cei cu potenţial mai mic(cu alte cuvinte, verifică întâi candidatul cel mai bun - cu cel mai mare potenţial).
Folosind noţiunile de mai sus, încercăm să identificăm funcţiile de cost potenţial pentru următoarea problemă: găsirea unui drum de cost minim de la un nod sursă(S) la un nod destinaţie(D) într-un graf.
Definim funcţia de cost potenţial h(N) = posibilul cost din nodul curent(C), prin nodul vecin(N), până la nodul destinaţie(D)
Metoda Greedy construieşte soluţia alegând mereu optimul local, cu alte cuvinte
Definim funcţia de cost potenţial g(N) = costul minim al drumului din punctul iniţial(S) până în nodul N
Algoritmul A* este definit, în sens general, ca fiind un algoritm de căutare de tip BFS(Best-First) ce foloseşte funcţia de cost potenţial
f(N) = g(N) + h(N), unde g(N) = costul minim pentru un drum de la S la N h(N) = estimarea pentru costului minim pentru un drum de la N la D
Definirea funcţiei g nu ridică probleme(putem folosi aceeaşi funcţie ca la algoritmul lui Dijkstra), dar, din punct de vedere al funcţiei h, numită funcţie euristică, distingem câteva cazuri:
O estimare iniţială bună creşte performanţa algoritmului şi păstrează rezultatul optim.
Presupunem următoarul caz:
Dacă putem reduce orice intersecţie la un punct, găsiţi drumul cel mai scurt pe care poate merge un taxi din S în D(fără a trece prin intersecţiile blocate)