24.03.2015 Views

2 dalis - techmat.vgtu.lt

2 dalis - techmat.vgtu.lt

2 dalis - techmat.vgtu.lt

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!