Metoda Backtracking

	Aceasta tehnica se foloseste in rezolvarea problemelor care indeplinesc simultan urmatoarele conditii :	
•	Solutia lor poate fi pusa sub forma unui vector S=x1,x2,….,xn cu x1  A1, x2  A2, …,xn  An;
•	Multimile A1,A2,A3,…An sunt multimi finite, iar elementele lor se considera ca se afla intr-o relatie de ordine bine stabilita;
•	Nu dispune de o alta forma de rezolvare mai rapida.

Observatii:

•	Nu pentru toate problemele n este cunoscut de la inceput
•	x1,x2,…,xn pot fi la randul lor vectori
•	in mai multe probleme, multimile A1,A2,…,An coincid.

Tehnica Backtracking are la baza un principiu extrem de simplu:
•	se constituie solutia pas cu pas: x1,x2,...,xn;
•	daca se considera ca pentru orice valoare aleasa, nu avem cum sa ajungem la solutie, se renunta la acea valoare si se reia cautarea din punctul in care am ramas.

Concret :
•	Se alege primul element x1, ce apartine lui A1;
•	Presupunand generate elementele x1,x2,…,xk, apartinand multimilor A1,A2,…,respectiv Ak, se alege (daca exista) xk+1, primul element disponibil din multimea Ak+1, aparand doua posibilitati :
1)	nu s-a gasit un astfel de element, caz in care se reia cautarea considerand generate elementele x1,x2, …,xk+1, iar aceasta se reia de la urmatorul element al multimii Ak ramas netestat;
2)	a fost gasit, caz in care se testeaza daca acesta indeplineste anumite conditii de continuare, aparand astfel doua posibilitati :
2.1) le indeplineste, caz in care se testeaza daca s-a ajuns la solutie si apar, din nou, doua posibilitati :

2.1.1) s-a ajuns la solutie, se tipareste solutia si se reia algoritmul considerand generate elementele x1,x2, …,xk (se cauta, in continuare, un alt element al multimii Ak+1 ramas netestat);
2.1.2) nu s-a ajuns la solutie, caz in care se reia algoritmul considerand generate urmatoarele elemente x1,x2, …,xk+1 si se cauta pentru primul element xk+2  Ak+2;

2.2) nu le indeplineste, caz in care se reia algoritmul considerand generate elementele x1,x2, …,xk, iar elementul xk+1 se cauta intre elementele ramase netestate ale multimii Ak+1.

Observatii : 

•	Tehnica Backtracking are ca rezultat obtinerea tuturor solutiilor problemei. In cazul in care se cere o singura solutie se poate forta oprirea atunci cand a fost gasita.
•	Problemele rezolvate prin aceasta metoda necesita un timp indelungat, motiv pentru care este bine sa utilizam metoda numai atunci cand nu avem la dispozitie un alt algoritm mai eficient. Cu toate ca exista probleme pentru care nu se pot elabora algoritmi mai eficienti, tehnica Backtracking trebuie aplicata numai in ultima instanta.