Minimalis koltsegu lefogo csucshalmaz
Minden csucsnak van egy nem negativ koltsege:
legyen valtozok:
Ennek az IP feladatnak az LP relaxaltja (tort relaxaltja) csak annyi, hogy elhagyjuk az egeszsegi feltetelt.
IP feladat optimalis megoldasas:
LP feladat optimalis megoldasa:
Eszrevetel 1:
legyen a kovetkezo:
Eszrevetel 2:
Eszrevetel 3:
Tehat ez egy -kozelito algoritmus.
Fixed parameter Tractable (FPT)
Input: ahol egy bites szam (vagy egy csucsu graf), es egy parameter.
peldaul: Kapunk egy grafot es egy paramteret es a kerdes az hogy van e legalabb hossz ut a grafban.
Def.: XP azon feladatok halmaza, melyeket meg tudunk oldani polinomialis idoben minden fix -ra.
Def.: FPT XP ahol FPT azon feladatok halmaza, melyekre ideju algoritmus ami megoldja.
peldaul az elozo orarol a Vertex Cover algoritmus:
VC(G', k'):
IF k' < 0 THEN return False
let v in V such that d(v) is maximal
IF d(v) = 0 THEN return {} // case: empty graph
IF k' = 0 THEN return False
IF d(v) = 1 THEN return tau(G')
// v lefogo
T_1 := VC(G' - v, k' - 1)
IF T_1 != False THEN return (T_1 U {v})
// v nem lefogo
T_2 := VC(G' - v - N(v), k' - d(v))
IF T_2 != False THEN return (T_2 U N(v))
Legyen a rekurziv hivasok szama -ra
Ekkor lathato, hogy
Tehat a futasi ido, mert egy lepest minding meg tudunk csinalni idoben es a rekurziv hivasok szama a fenti eszrevetel miatt a fibonacci sorozat altal korlatozott.
Tudjuk egy kicsit javitani az algoritmus ugy, hogy atcsereljuk a kovetkezo sort: IF d(v) = 1 ...
arra, hogy IF d(v) = 2 ...
es igy a rekurziv lepesek szamara igaz, hogy
Igy a futasi ido . Ezt lattuk az elozo oran.
Def.: Egy inputu feladat -kernele:
polinomialis idoben elkeszitunk egy inputot, amire:
- Az eredeti feladatra “Igen” a valasz A vesszos feladatra “Igen” a valasz
A lenyege a kernel keszitesnek az, hogy ha tudunk adni egy kernelt egy feladatra, akkor azt a kernelt barhogyan megoldjuk az algoritmus ami eloszor elkesziti a kernelt es utana a kernelt megoldja biztosan FPT algoritmus lesz. Mivel polinomialis idoben adunk egy kernelt, es a meretu feladatot barhogyan megoldjuk, ezert az algoritmus futasideje , ahol jeloli a kernel megoldasanak idejet es a kernel letrehozasanak idejet.
Kernel keszites a lefogo csucshalmaz feladatra
Feladat: Keszitsunk egy csucsu lefogo csucshalmazt.
Ha
Megj.: Ha akkor megallunk es az a valaszunk, hogy “Nem lefoghato”.
Megj.: Az izolalt csucsokat toruljuk.
Legyen a vegso es a vegso graf.
Ha -nek tobb mint ele van, akkor megallunk es az a valaszunk, hogy “Nem lefoghato”.
Ha -nek tobb mint csucsa van, akkor megallunk es az a valaszunk, hogy “Nem lefoghato”.
Ha ezek utan meg mindig nem alltunk meg, akkor lesz a kernelunk ahol es
Ezt a kissebb grafot a fenti algorimussal meg lehet mar oldani lepesben es a kernelt el tudjuk kesziteni idoben.
Def.: korona-felbontasa: (crown, head, body)
- fuggetlen
- ha es (a korona es a body kozott nincs el)
- A paros grafban letezik -t fedo parositas
Korona redukcio:
ahol a graf megszoritasa a halmazra.
All.:
Biz.:
Ha van egy csucshalmazom, ami lefogja eleit es , akkor lefogja eleit.
Legyen egy eleit lefogo csucshalmaz, amire .
Ekkor letezik ugy, hogy es es , mert a korona felbontas 3. pontja szerint letezik -t fedo parositas a paros grafban.
csucsu kernel
-ben legnagyobb parositas, legkisebb lefogo.
Ha akkor megallunk. Ezt eldontottuk idoben.
Kulonben elkeszitjuk a kovetkezo koronafelbontast:
Allitasok:
- fuggetlen
- nem letezik el, ahol es b inn B
- Az a -et felparositja -be
Igy -ben is *pipa*
Igy a kernelunk.