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
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.