Sunteți pe pagina 1din 1

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. 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.

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