Backtracking Algorithm

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

Backtracking Algorithm

function backtrack;
begin
SL:=[start]; NSL:=[start]; DE:=[]; CS:=start;
while NSL<>[] do begin
if CS=goal then return(SL
if CS ne!a nasledni"a then begin
while SL<>[] and CS=SL[#] do begin
add(DE$CS;
re!o%e SL[#];
re!o%e NSL[#];
CS:=NSL[#];
end;
add(SL$CS
end
else begin
&enerate(CS$CSne't;
add(NSL$CSne't;
CS:=NSL[#];
add(SL$CS;
end;
end;
return(()*L;
end+
,, ini-i.ali/a-i.a
,, do" i!a stan.a
,, 0S1E2 3 %ra4a 5utan.u 5re"o SL
,, SL[#] 5r%i ele!ent ni/a SL
,, add CS to DE
,, while
,, add CS to SL
,, if
,, &eneri6e sledbeni"a od CS
,, else
,, while
,, NE0S1E2
,, begin
Strukture podataka:
SL 3 Lista stan.a "o.a sadr7i stan.a na trenutno. 5utan.i+ )"o .e -il.no stan.e dostignuto$ sadr7i re6a%a.u4i 5ut+
NSL 3 Lista no%ih stan.a "o.a sadr7i stan.a "o.a 4e te" biti 5ose4ena+
DE 3 Lista stan.a 8i.i 5oto!-i ne sadr7e re6en.a+ )"o ne"o od o%ih stan.a 5ono%o bude dostignuto$ ne4e se dal.e
ra/%i.ati+
CS 3 9e"u4e stan.e+
Iteracija CS SL NSL DE
: ) [)] [)] []
# ; [;)] [;CD)] []
< E [E;)] [E(;CD)] []
= 2 [2E;)] [2*E(;CD)] []
> * [*E;)] [*E(;CD)] [2]
?
@
A
B
Iteracija CS SL NSL DE
: ) [)] [)] []
# ; [;)] [;CD)] []
< E [E;)] [E(;CD)] []
= 2 [2E;)] [2*E(;CD)] []
> * [*E;)] [*E(;CD)] [2]
? ( [(;)] [(;CD)] [E*2]
@ C [C(;)] [C(;CD)] [E*2]
A C [C)] [CD)] [;(CE*2]
B & [&C)] [&CD)] [;(CE*2]

You might also like