Sunteți pe pagina 1din 5

Metoda Backtracking

Termenul backtrack a fost inventat de matematicianul


american D. H. Lehmer n anii 1950.

Backtracking-ul este un algoritm care ajut la


rezolvarea problemelor unde trebuie aflate toate
soluiile sale. Este un algoritm lent i poate de aceea nu
ntotdeauna adoptat. Uneori e suficient s se afle cteva
soluii sau e nevoie s se afle cea mai bun soluie i
pentru aceasta nu ntotdeauna e nevoie de toate
soluiile.
Fiecare soluie se memoreaz ntr-o structura de
date de tip stiv implementat cu ajutorul unui
vector;
Este o metod, nu un program pe calculator pe care
l scrii o dat i merge pentru orice problem de
acest tip, cu mici ajustari;

Cum functioneaza?
ntr-un algoritm backtracking ne intereseaz toate
soluiile posibile. Pentru a obine fiecare soluie final se
completeaz stiva nivel cu nivel trecnd astfel prin
soluii pariale. Astfel soluiile finale ct i cele pariale
pentru a fi luate n considerare trebuie s ndeplineasc
anumite condiii numite condiii de validare. O soluie
care ndeplinete o astfel de condiie se numete soluie
valid.
Toate configuraiile stivei ce reprezint soluii finale sunt
alctuite din elementele aceleiai mulimi bine definite
pe care o numim mulimea soluiilor. Fiecare nou
soluie parial se obine prin completarea soluiei

pariale precedente cu nc o nivel pe stiv. La fiecare


nivel se pun valori din mulimea soluiilor care nu au fost
ncercate pn cnd se obine o soluie valid. n acest
moment se trece la nivelul urmtor n stiv pentru a
completa mai departe soluia relund ncercrile pe noul
nivel.
La un moment dat pe un anumit nivel nu mai exist nici
o valoare nencercat din mulimea valorilor problemei.
n acest caz se face un pas napoi n stiv la nivelul
anterior i se reia cutarea cu valorile rmase
nencercate pe acest nivel anterior.

Backtracking - Permutari [RO] - Analiza Algoritm YouTube


Programming Interview: Sudoku Solving Algorithm using
Backtracking

Probleme rezolvate cu metoda


backtracking

1. Generarea permutrilor
2. Generarea aranjamentelor
3. Generarea combinrilor
4. Generarea tuturor submulimilor
5. Generarea tuturor partiiilor unei mulimi
6. Generarea produsului cartezian al n mulimi
7. Problema celor n dame
8. Problema labirintului

9. Problema
hrilor

colorrii

10. Problema
voiajorului

comis-

1.

Problema celor n dame


Enunt: Fiind data o tabla de sah cu dimensiunea n*n, se
cer toate solutiile aranjarii celor n dame, astfel incat sa
nu se afle doua dame pe aceeas diagona, linie sau
coloana.

2.

Problema colorarii hartilor

Enunt: Fiind data o harta cu n tari, se cer toate solutiile


de colorare a hartii utilizand cel mult 4 culori, astfel
incat doua tari cu frontiera comuna sa fie colorate
diferit.
Este demonstrat ca sunt suficiente 4 culori pentru orice
numar de tari.

3.

Problema comis voiajorului

Enunt: Un comis voiajor vrea sa viziteze n tari. El


porneste dintr-o tara notata cu 1 si doreste ca la
intoarcere sa nu treaca prin acelasi oras de 2 ori.
Cunoscand legaturile dintre tari, sa se tipareasca
drumurile posibile efectuate de comis.

4.
b
a

Pro
lem

labirintului
Enunt: Se da un labirint sub forma de matrice cu m linii
si n coloane. Fiecare element al matricei reprezinta o
camera a labirintului. Intr-una din camere, de
coordonate lin si col, se gaseste un om. Se cere sa se
gaseasca toate iesirile din labirint. Nu este permis ca un
drum sa treaca de doua ori prin aceiasi camera.

Backtrackingul este util la rezolvarea unor


probleme de satisfacere a constrngerilor, cum ar fi
cuvintele ncruciate, jocuri de sudoku i alte probleme
similare.

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