2. În metoda reluării se presupune că soluţia
problemei pe care trebuie să fie rezolvată
poate fi reprezentată printr-un vector:
În metoda reluării componentele vectorului X
primesc valori pe rînd. Odată o valoare pentru
xk stabilită, nu se trece direct la atribuirea de
valori lui xk+1, ci se verifică anumite condiţii de
continuare referitoare la x1,x2,...,xk. Aceste
condiţii stabilesc situaţiile în care are sens să
trecem la calculul lui xk+1.
AxxxxX k ),,,,( 21
3. Anume micşorarea lui k dă nume metodei studiate
cuvîntul reluare semnificînd revenirea la alte variante
de alegere a variabilelor x1,x2,...,xk-1. Aceeaşi semnificaţie o
are şi denumirea engleză a metodei în studiu 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.
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.
5. procedure Reluare(k:integer);
begin
if k<=n then
begin
X[k]:=);
if Continuare(k) then Reluare(k+1);
while ExistaSuccesor(k) do
begin
X[k]:=Succesor(k);
if Continuare(k) then Reluare(k+1)
end; { while }
end { then }
else PrelucrareaSolutiei;
end; {Reluare}