Véletlen algoritmus páros gráfok párosítási problémájára

Egy egyszerűsített problémát vizsgálunk. Adott egy G páros gráf két azonos méretű színosztállyal (|A|=|F|=n). Döntsük el van-e G-ben teljes párosítás.

Először két rossz algoritmust ismertetünk. Majd ezek tanulságaként adjuk ezen fejezet fő eredményét.

-1. változat: Vegyük G alsó-felső szomszédsági mátrixát, SG-t, azaz azt a mátrixot, amely sorai az alsó pontokkal, oszlopai a felső pontokkal azonosított és egy a alsó pont-f felső pont párja által leírt sor-oszlop találkozásban 1 áll, ha af él és 0 áll, ha a és f nem összekötött. Azaz SG-ben szereplő 1-esek azonosíthatók G éleivel.

det SG determináns kifejtésében egy nem 0 kifejtési tag egy n tényezős szorozatnak felel meg, amely nem 0 volta azt jelenti, hogy minden tényező 1. Így n éllel állunk szemben, ami a kifejtési tag tulajdonság miatt egy teljes párosítás. Így ha a determináns nem 0, akkor tudjuk, hogy gráfunkban van teljes párosítás. Talán a determináns 0 voltából tudunk a teljes párosítás nem létére következtetni?

NEM! A determináns 0 voltából azonban nem következtethetünk a teljes párosítás hiányára. A hiány esetén valóban 0 lesz adetemináns, de ez akkor is elófordulat, ha vannak nem 0 kifejtési tagok (és így teljes párosítás G-ben), de azok kiejtik egymást.


0. változat: Vegyük G alsó-felső szomszédsági mátrixát, SG-t, és mindegyik 1-es helyéb helyettesítsünk egy-egy különböző betűt. Legyen S^G az így kapott mátrix.

det S^G definiálható az algebrában szokott módon csak a számolás nem számok körében történei, hanem a `betűszámtan' keretében, eredménye egy polinom. Ha det S^G értéke nem 0 (nem a 0 polinom), akkor gráfunkban van teljes párosítás. De most a kiegészítő állítás is igaz: ha det S^G=0, akkor gráfunkban nincs teljes párosítás, ugyanis a teljes párosítás det S^G-hez egy nem 0 monom. Most ezt más monomok nem tudják kiejteni (szemben a számokkal történő -1. változattal).

A fenti gondolatmenet természetes módon ad egy algoritmust, ami azonban nem hatékony. Ugyanais a det S^G polinom kiszámolása nem egyszerű. A számmatrixoknálmegtanult módok (például Gauss-elimináció) nem alkalmazhatók. A determináns-polinom olyan sok monomot tartalmazhat, hogy fel sem írható. Annak ellenére, hogy det S^G polinom nem egyszerű, azért vagy egy egyszerű oldala: kiértékelései egyszerűen elvégezhetők.


Az előző két változat tanulsága mellet az újdonság az lesz hogy algoritmusunk egy véletlen számokat használó algoritmus lesz.

Algoritmus:
1. lépés: Írjuk fel az SG mátrixot.
2. lépés: Írjuk fel az S^G mátrixot.
3. lépés: S^G minden betűjéhez rendeljük {1,2,3,...,N-1,N} egy véletlen, uniform, független elemét.
4. lépés: S^G betűi helyett a számokat írva egy numerikus mátrixot kapunk, amely determinánsát kiszámoljuk
5. lépés: Ha a determináns nem 0, akkor az output G-ben van teljes párosítás. Ha a determináns 0, akkor az output G-ben valószínűleg nincs teljes párosítás.

Az algoritmusunk olyan, hogy tévedhet: a det P^G polinom lehet, hogy nem 0, de a helyettesíténél számaink választása olyan `szerencsétlen', hogy eltaláljuk egyik gyökét és így jutunk a 0 értékhez. Ez a tévedés teljesen más, mint a -1. változatnál. Itt a tévedés a számaink szerencsétlen genarálásból ered. A -1. változatnál a tévedés abból eredt, hogy lehet, hogy gráfunk, az input, trükkös. Így, ha az inputot egy ``ellenségünk'' adja, akkor az 1. változaton múló algoritmusban nem bízunk meg, míg a valódi algoritmus eredményere fogadhatunk, ha megértjük a következő analízist.

Az algoritmusunkban szerepel egy N paraméter. Hogyan válasszuk meg? Mennyire bízhatunk algoritmusunk eredményében. Ehhez szükségünk lesz a következő tétélre.

Tétel: (Schwartz-lemma) Legyen p(x1, x2, ... , xn) egy nem 0 polinom. Legyen r1, r2, ... , rn az {1,2, ..., N} halmaz függetlenül, uniform módon választott véletlen elemei. ekkor Prob(p(r1, r2, ... , rn)=0)< nd/N, ahol d a p polinom fokszáma.

A tételt nem bizonyítjuk (lásd jegyzet). Az algoritmus analízisére vonatkozó következményeit azonben leszűrjük.

Következmény: Az algoritmusunk csak úgy hibázhat, hogy a G-ben valószínűleg nincs teljes párosítás outputot adja és G-ben van teljes párosítás. A N=|V||E| választással a hibázás valószínűsége 1/2.

Bizonyítás: Nyilvánvaló abból, hogy det S^G polinom változó száma (a felhasznált betűk száma) SG 1-eseinek szám, ami G éleinek száma, azaz |E|. det S^G minden monomja n betű szorzata (n=|A|=|F|=|V|/2), azaz foka n=|V|/2. Így a Schwartz-lemma 1/2-del becsüli annak valószínűségét, hogy az algoritmus a 3. lépésben det S^G egy gyökét generáljuk, feltéve, hogy det S^G nem 0.

A hibázás valószínűsége csökkenthető, ha N értékét nagyobbra választjuk, vagy ha a fenti választással élünk, de algoritmusunkat többször futtatjuk és G-ben valószínűleg nincs teljes párosítás outputot akkor hírdetjük ki, ha minden futás esetén erre jutottunk. A determinisztikus algoritmusokkal szemben a véletlen algoritusok ismételt futásának (ugyanazon inputon) van értelme. Az ismételt futattásokkal nyert algoritmusunk akkor és csak akkor hibázik, ha minden független futása hibázott. Azaz k-szori ismétléssel elérjük, hogy a hibázás valószínűsége (1/2)k-val legyen felülről becsülhető.