2 dalis - techmat.vgtu.lt
2 dalis - techmat.vgtu.lt
2 dalis - techmat.vgtu.lt
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Algoritmų sudarymo principai ir metodai<br />
Variantų perrinkimas ir rekursijos metodas<br />
Skaldyk ir valdyk metodas<br />
Šakų ir rėžių metodas<br />
Dinaminio programavimo metodas<br />
Euristikos ir godieji algorimai<br />
begin BranchAndBound ⋃ ()<br />
m<br />
(1) Išskaidome D =<br />
i=1 D i, apskaičiuojame rėžius LB(D i ), UB(D i ),<br />
užduotis P(f , D i ) įtraukiame į sąrašą L = {P(f , D i ), 1 ≤ i ≤ m},<br />
S = ∅, apskaičiuojame UB(D) = min 1≤i≤m UB(D i ).<br />
(2) while (L ≠ ∅) do<br />
(3) Naudodami ( parinkimo ) taisyklę išimame užduotį P(f , D i ) ∈ L<br />
(4) if LB(Di ) < UB(D) then<br />
⋃ m<br />
(5) Išskaidome aibę D i =<br />
j=1 D ij<br />
(6) for all (D ij , j = 1, m) do<br />
(7) Apskaičiuojame ( rėžius UB(D ij ) ir ) LB(D ij )<br />
(8) UB(D) = min UB(D), UB(D ij ) //Galimai patiksliname rėžį<br />
(9) ( ) if LB(D ij ) < UB(D) then<br />
(10) if (P(f , D ij ) yra lapas ) then //Nebeskaidoma sritis<br />
(11) S = Sprendinys(D ij , S) //Ar D ij turi geresnį sprendinį<br />
(12) else // negu turimas S?<br />
(13) L := L ∪ P(f , D ij ) //Įtraukiame į sąrašą<br />
end if<br />
end if<br />
end do<br />
end if<br />
end do<br />
end BranchAndBound<br />
doc. dr. Vadimas Starikovičius Algoritmų analizės specialieji skyriai