/* cod preluat din cartea(bibliografie[1]): BALCAN Maria Florina, HRISTEA Florentina, Aspecte ale Cautarii si Reprezentarii Cunostintelor in Inteligenta Artificiala, Editura Universitatii din Bucuresti, 2004 */ %bestfirst(+Nod_initial,-Solutie) bestfirst(Nod_initial,Solutie):- expandeaza([],l(Nod_initial,0/0),9999999,_, da,Solutie). %expandeaza(+Drum,+Arbore,+Limita,-A1,-Rezultat,-Solutie), expandeaza(Drum,l(N,_),_,_, da,[N|Drum]):-scop(N). expandeaza(Drum,l(N,F/G),Limita,Arb1,Rez,Sol):- F=Limita. %continua(+Drum,+Arb,+Limita,-Arb1,-Rez1,-Rez,-Sol) continua(_,_,_,_,da,da,Sol). continua(P,t(N,F/G,[A1|As]),Limita,Arb1,nu,Rez,Sol):- insereaza(A1,As,NAs), cea_mai_buna_f(NAs,F1), expandeaza(P,t(N,F1/G,NAs),Limita,Arb1,Rez,Sol). continua(P,t(N,F/G,[_|As]),Limita,Arb1,imposibil,Rez, Sol):-cea_mai_buna_f(As,F1), expandeaza(P,t(N,F1/G,As),Limita,Arb1,Rez,Sol). %listasucc(+G,+Succesori,-Arbore) listasucc(_,[],[]). listasucc(G0,[N/C|NCs],Ts):- G is G0+C, h(N,H), F is G+H, listasucc(G0,NCs,Ts1), insereaza(l(N,F/G),Ts1,Ts). %insereaza(+Arb,+ListArb, -ListArbrez) insereaza(A,As,[A|As]):- f(A,F), cea_mai_buna_f(As,F1), F=