Exerciții Model parțial, Exercițiul 6

minimumPaths/2 — drumuri BFS de lungime minimă

Fie predicatele succesor/2 și objective/1. Adaptați algoritmul BFS astfel încât să păstrăm drumurile cele mai scurte care ajung de la un nod de start la un nod obiectiv.

Dacă rulați solve(1, R), veți găsi R = [[5, 3, 4, 2, 1], [5, 2, 1], [5, 3, 1], [5, 3, 4, 1]]. Vrem să păstrăm doar drumurile de lungime minimă, adică de lungime 3.

Hint: găsește toate drumurile cu solve/2, mapează fiecare la lungimea lui cu findall + length, ia minimul, filtrează din nou prin findall.

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (1 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
minimumPaths(1, R). așteptat: R = [[5,2,1],[5,3,1]]