Sunteți pe pagina 1din 8

PROIECT LA

INFORMATICA
Butunoi Alin si Dumitrasc Ciprian
CUPRINS

• INFORMATII DESPRE BACKTRACKING


• PROBLEMA 8
BACKTRACKING
• Backtracking este numele unui algoritm general de descoperire a tuturor soluțiilor unei
probleme de calcul, algoritm ce se bazează pe construirea incrementală de soluții-candidat,
abandonând fiecare candidat parțial imediat ce devine clar că acesta nu are șanse să devină o
soluție validă.
BACKTRACKING
• Exemplul de bază folosit în numeroase manuale de liceu și de nivel universitar
este problema reginelor, care cere să se găsească toate modurile în care pot fi așezate pe o
tablă de șah opt regine astfel încât să nu se atace. În abordarea backtracking, candidatele
parțiale sunt aranjamente de câte k regine pe primele k rânduri ale tablei, toate pe rânduri și
coloane diferite. Orice soluție parțială ce conține două regine care se atacă poate fi
abandonată, deoarece în mod clar restul de regine nu pot fi așezate într-o soluție validă.
BACKTRACKING
• Tehnica backtracking se poate aplica doar pentru probleme ce admit conceptul de „candidat
parțial de soluție” și oferă un test relativ rapid asupra posibilității ca un astfel de candidat să
fie completat către o soluție validă. Când se poate aplica, însă, backtrackingul este adesea
mult mai rapid decât căutarea prin metoda forței brute prin toți candidații, întrucât este
capabilă să elimine dintr-un singur test un mare număr de candidați.
BACKTRACKING
• Backtrackingul este util la rezolvarea unor probleme de satisfacere a constrângerilor, cum ar
fi cuvintele încrucișate, 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.
PROBLEMA 8
• Se dau n paralelipipede avand fiecare dimensiunile ai, bi si ci. Sa se construiasca un turn de
inaltime maxima prin suprapunerea acestor paralelipipede. Un paralelipiped poate fi asezat
pe orice fata. Un paralelipiped poate fi aranjat peste un alt paralelipiped numai daca fata lui
nu depaseste fata paralelipipedului pe care este pus. Rezolvati problema folosind metoda
backtracking si metoda programarii dinamice.

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