20.11.2012 Views

Kis-Benedek Ágnes Dinamikus programozás a gráfelméletben

Kis-Benedek Ágnes Dinamikus programozás a gráfelméletben

Kis-Benedek Ágnes Dinamikus programozás a gráfelméletben

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

30 4. FEJEZET. KÜLÖNBÖZŐ PROBLÉMÁK KÖZÖTTI KAPCSOLATOK<br />

vallumon vett maximális diszjunkt részrendszert. f(v0) = 0, és ha már tudjuk f(vi)<br />

értékét ∀i < k-ra, f(vk)-ra a következő rekurziót írhatjuk föl:<br />

f(vk) = max{f(vk−1), max<br />

[vi,vk]∈I {c([vi, vk]) + f(vi)}}<br />

Ugyanis már számításba kell venni a v[k] végpontú intervallumokat is, és vagy<br />

nem választunk ki ezek közül egyet sem, ekkor f(vk) = f(vk−1), vagy beválasztunk<br />

a részintervallum-rendszerbe egy [vi, vk] intervallumot, és ehhez még hozzáveszünk<br />

egy [v0, vi]-n optimális részrendszert.<br />

A súlyozott intervallum probléma visszavezetése részbenrendezett hal-<br />

mazban maximális lánc keresésére:<br />

Definiáljunk egy részbenrendezést a következőképpen: jelentse ai az i. interval-<br />

lumot, és legyen ai < aj, ha ai végpontja ≤ aj kezdőpontjánál. Az ai elem súlya<br />

egyezzen meg az i. intervallum súlyával. Ez valóban helyes részbenrendezés, és a<br />

reláció a diszjunkt tulajdonságot, pontosabban az intervallumok diszjunkt egymás-<br />

utániságát fejezi ki. Ebben a részbenrendezett halmazban a maximális lánc keresése<br />

ekvivalens probléma az optimális részintervallum-rendszer meghatározásával.<br />

4.3. Bináris hátizsák feladat<br />

Feladat: Adott n darab tárgy, c a tárgyakon értelmezett nemnegatív értékfügg-<br />

vény, a szintén a tárgyakon értelmezett nemnegatív súlyfüggvény, és egy b > 0<br />

kapacitású hátizsák. A kérdés, hogy hogyan lehet ebbe a hátizsákba a lehető leg-<br />

nagyobb összértékben tárgyakat elhelyezni a kapacitás figyelembevétele mellett, azaz<br />

a következő értéket szeretnénk meghatározni: max{ � n<br />

i=1 cixi : � n<br />

i=1 aixi ≤ b, x ∈<br />

{0, 1} n }.<br />

A feladatot bővítsük olyan módon alfeladatokkal, hogy a tárgyak közül csak az<br />

első k darab használatát engedélyezzük, a hátizsák kapacitását pedig d-nek választjuk.<br />

Ennek a részfeladatnak az optimumát jelöljük fk(d)-vel: fk(d) := max{ � k<br />

i=1 cixi :<br />

� k<br />

i=1 aixi ≤ d, x ∈ {0, 1} k }, k ∈ {1, . . . , n}, d ∈ {0, . . . , b}.

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

Saved successfully!

Ooh no, something went wrong!