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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

az adott szakaszhoz.<br />

Jelölje d1(x, y) azon pontok halmazát, melyek az xy-szakasz fölé, d2(x, y) pedig<br />

azon pontok halmazát, melyek az xy-szakasz alá esnek.<br />

Legyen f1(x, y) az xy-szakasz fölötti pontok közül, f2(x, y) pedig az xy-szakasz<br />

alatti pontok közül kiválasztható maximális konvex részhalmaz.<br />

Az f1(x, y), ill. f2(x, y) meghatározásához szükség lesz segédfüggvényekre:<br />

f1(x, y; z) jelölje azon xy-szakasz fölötti maximális konvex részhalmazt, mely szét-<br />

osztható egy xz-szakasz és egy zy-szakasz fölötti (z-t nem feltétlenül tartalmazó)<br />

konvex részhalmazra. f2(x, y; z)-t hasonlóan definiáljuk.<br />

|d1(x, y)| = 0 esetén f1(x, y) = {x, y}.<br />

Tegyük fel, hogy |d1(x, y)| > 0. Ekkor f1(x, y; z) kétféle lehet attól függően, hogy<br />

z eleme lesz a halmaznak, vagy sem:<br />

f1(x, y; z) = f1(x, z) ∪ f1(z, y) \ {z}, ha z a w1w2 szakasz alatt van, ahol w1 az<br />

f1(x, z) z előtti utolsó pontja, w2 pedig az f1(z, y) z utáni első pontja;<br />

f1(x, y; z) = f1(x, z) ∪ f1(z, y) , ha z a w1w2 szakasz felett van.<br />

f1(x, y) ∈ {f1(x, y; z) : maxw|f1(x, y; w)| = |f1(x, y; z)|}.<br />

Ha már minden pontpárra kiszámítottuk az f1(x, y)-t, a ponthalmazt tükrözve<br />

kiszámoljuk ismét, vagy az f2(x, y) függvényt számoljuk ki hasonlóképpen a sza-<br />

kaszok alatti részekre, hogy megkapjuk a keresett konvex részhalmaz alsó részét.<br />

Minden x,y pontpárra egyesítjük a két eredményt, és kiválasztjuk a maximálisat.<br />

Visszavezetés aciklikus digráfban maximális út keresésére :<br />

A pontpárokat megfeleltetjük egy G gráf csúcsainak, az élhalmazt pedig a követ-<br />

kezőképpen definiáljuk:<br />

(u1, u2) → (v1, v2), ha u2 = v1 és u2 az u1v2 szakasz fölött van.<br />

Állítás: Az így definiált gráfban egy maximális xy-út megfelel egy xy-szakasz<br />

fölötti, x-t és y-t tartalmazó maximális konvex ponthalmaznak.

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

Saved successfully!

Ooh no, something went wrong!