Extras din curs
Este una dintre cele mai cunoscute metode de elaborare a algoritmilor. Ea se aplic acelor
probleme @n care solutia se poate reprezenta sub forma unui vector x=(x1,. . . , xn)ÎA1x. . .xAn, unde Ai,
i=1, n sunt finite ( i A =ni, i=1, n ). in plus, pentru fiecare problem @n parte este necesar ca solutia:
x1,...,xn sa satisfac anumite conditii interne r(x1, . . . , xn).
Multimea A=A1x. . .xAn este spatiul solutiilor posibile. Elementele xÎA care satisfac conditiile
interne se numesc solutii rezultat. Ne propunem determinarea tuturor solutiilor rezultat, eventual pentru
a alege dintre ele pe cea care minimizeaz sau maximizeaz o functie obiectiv.
Metoda Backtracking evit generarea tuturor solutiilor posibile (toate elementele produsului
cartezian A1x...xAn). Elementului xkÎAk, k=1, n i se atribuie o valoare dup ce au fost atribuite valori
pentru componentele x1ÎA1,..., xk-1ÎAk-1. Metoda trece la atribuirea unei valori pentru xk+1ÎAk+1 doar
dac xk @mpreun cu x1,...,xk-1 verific conditiile de continuare, notate rk(x1,...,xk). Dac conditiile
rk(x1,...,xk) sunt @ndeplinite se trece la atribuirea unei valori pentru elementul xk+1ÎAk+1 al solutiei.
Neindeplinirea conditiilor exprim faptul c oricum am alege xk+1ÎAk+1,...,xnÎAn nu vom putea ajunge
la o solutie rezultat @n care conditiile interne s fie @ndeplinite. in acest ultim caz va trebui s facem o
alt alegere pentru xk, iar acest lucru este posibil doar dac nu am epuizat toate valorile posibile din
multimea Ak. Dac multimea Ak a fost epuizat va trebui sa mic]or m pe k, k¬k-1 ]i s trecem la
Preview document
Conținut arhivă zip
- Backtracking.pdf