Sunteți pe pagina 1din 4

Backtracking este numele unui algoritm general de descoperire a tuturor

soluiilor unei probleme de calcul, algoritm ce se bazeaz pe construirea


incremental de soluii-candidat, abandonnd fiecare candidat parial imediat ce
devine clar c acesta nu are anse s devin o soluie valid.
[1][2][3]

Exemplul de baz folosit n numeroase manuale de liceu i de nivel universitar
este problema reginelor, care cere s se gseasc toate modurile n care pot fi
aezate pe o tabl de ah opt regine astfel nct s nu se atace. n abordarea
backtracking, candidatele pariale sunt aranjamente de cte k regine pe
primele k rnduri ale tablei, toate pe rnduri i coloane diferite. Orice soluie
parial ce conine dou regine care se atac poate fi abandonat, deoarece n mod
clar restul de regine nu pot fi aezate ntr-o soluie valid.
Tehnica backtracking se poate aplica doar pentru probleme ce admit conceptul
de candidat parial de soluie i ofer un test relativ rapid asupra posibilitii ca
un astfel de candidat s fie completat ctre o soluie valid. Cnd se poate aplica,
ns, backtrackingul este adesea mult mai rapid dect cutarea prin metoda forei
brute prin toi candidaii, ntruct este capabil s elimine dintr-un singur test un
mare numr de candidai.
Backtrackingul este util la rezolvarea unor probleme de satisfacere a
constrngerilor, cum ar fi cuvintele ncruciate, jocuri de sudoku i alte probleme
similare. Ea st la baza unei serii de limbaje de programare logic, cum ar
fi Icon,Planner i Prolog.
Termenul backtrack a fost inventat de matematicianul american D. H.
Lehmer n anii 1950.
[4

S-ar putea să vă placă și