V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1
Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan ongelma (TSP) Minimaalinen monileikkaus (engl. Minimum Multiway Cut, ei Minimum Multi-Cut) Minimaalinen k-leikkaus (engl. Minimum k-cut) ja tarkastellaan niiden approksimointia. Kotitehtävät: 3.1, 3.2 ja 4.2. 2
Steiner-puu Määritelmä: Kelvolliset syötteet muotoa ((V, E), w, R, S), missä: (V, E) on suuntaamaton verkko w : E Q + on painofunktio. R V on pakollisten solmujen ja S = V \ R Steiner-solmujen joukko. Tehtävä: Etsi kevein puu T, joka on G:n aliverkko ja sisältää kaikki joukon R solmut. 3
Metrinen Steiner-puu Lisätään tavallisen Steiner-puu -ongelman määritelmään ehto, että w toteuttaa kolmioepäyhtälön: w({x, y}) w({x, z}) + w({z, y}) Metrinen Steiner-puu on siis tavallisen Steiner-puun rajoitus. Seuraava approksimointisuhteen säilyttävä palautus osoittaa, ettei metristä Steiner-puuta ole kuitenkaan yhtään helpompi approksimoida. Seuraus: Jatkossa voidaan rajoittua tarkastelemaan metristä Steiner-puuta. 4
Palautus Kuvaus: ((V, E), w, R, S) (K V, w, R, S), missä w ({u, v}) = lyhimmän polun u v pituus ja K V on joukon V täydellinen verkko. Selvästi w (T ) w(t ) kaikille puille T E Palautus ei kasvata optimiratkaisun kustannusta. Olkoon T opt jokin optimiratkaisu palautuksen tuloksena syntyneeseen tapaukseen. Olkoon T opt puu, joka saadaan Korvaamalla puun T opt kaaret {u, v} lyhimmillä (verkon (V, E)) u v poluilla Poistamalla syntyneestä (V, E):n aliverkosta kaaria kunnes se on syklitön 5
Palautus jatkuu... Selvästi puulle T opt pätee w(t opt ) w (T opt) Palautus ei pienennä optimiratkaisun kustannusta. Lisäksi T opt saadaan puusta T opt polynomisessa ajassa. Siispä: palautus todellakin on approksimointisuhteen säilyttävä palautus. 6
Approksimointialgoritmi metriselle Steiner-puulle Joukon R virittävä puu on verkon (V, E) alipuu, jonka solmujoukko on täsmälleen R. Selvästi eräs kelvollinen ratkaisu Steiner-puu -ongelmalle on joukon R pienin virittävä puu (MST), joka osataan löytää polynomisessa ajassa. MST ei ole aina optimaalinen ratkaisu (kuva). Kuitenkin metrisessä tapauksessa pätee (todistus kirjassa): w(mst) 2 w(t opt ) Siispä: MST:n etsivä algoritmi on 2-approksimointialgoritmi metriselle Steiner-puulle. 7
Kauppamatkustajan ongelma (TSP) Määritelmä: Annettu täydellinen verkko (V, E), jonka kaaret on painotettu painofunktiolla w : E Q +. Tehtävä: Etsi kevein (V, E):n sykli, joka käy jokaisessa verkon solmussa tasan kerran. Tunnettu tosiasia (todistus kirjassa): Jos painofunktiosta w ei tehdä lisäoletuksia ja P NP, TSP:tä ei voi approksimoida lainkaan. 8
Metrinen TSP Kuten Steiner-puun tapauksessa, oletetaan että w täyttää kolmioepäyhtälön. Tällä lisäoletuksella TSP:lle saadaan yksinkertainen 3/2-approksimointialgoritmi (ns. Christofideen algoritmi): 1. Etsi (V, E):n MST T. 2. Etsi kevein täydellinen pariutus M niille solmuille, joiden aste T :ssä on pariton. Lisää M:n kaaret T :hen, tuloksena Eulerin (multi)verkko (so. verkko, jossa jokaisen solmun aste on parillinen). 3. Etsi Eulerin kierros T syntyneestä verkosta (so. kierros, joka kulkee täsmälleen kerran jokaista verkon kaarta pitkin). 4. Palauta kierros C, joka saadaan kulkemalla pitkin kierrosta T ja tulostamalla solmut siinä järjestyksessä kun ne kierroksella tulevat ensimmäistä kertaa vastaan. 9
Approksimointisuhteen todistus Merkitään symbolilla OPT TSP:n optimiratkaisun painoa. Lemma: Olkoon V V joukko, jossa on parillinen määrä alkioita, ja olkoon M V :n jokin kevein täydellinen pariutus. Tällöin w(m) w(opt)/2. Todistus: Suullinen (tai katso kirja). Koska T :n paritonasteisten solmujen lukumäärä on parillinen, lemmasta seuraa, että algoritmin etsimän Eulerin kierroksen paino on w(t ) + w(m) OPT + 1 2 OPT = 3 2 OPT. 10
Minimaalinen monileikkaus Määritelmä: Annettu yhtenäinen suuntaamaton verkko (V, E), painofunktio w : E Q + ja solmujoukko S = {s 1,..., s k } V. Etsittävä kevein monileikkaus eli kaarten joukko A, jonka poistaminen E:stä eristää kaikki solmut s i toisistaan. A on siis monileikkaus joss jokainen s i s j polku, i j, kulkee jonkin A:n kaaren kautta. Tunnettua: Tapaus k = 2 on tavallinen verkkovuo-ongelma ja siis helppo, mutta NP-täydellinen kaikilla kiinteillä k 3. Kirjassa esitetty (2 2/k)-approksimointialgoritmi todistuksineen, kannattaa lukea. Myöhemmin kirjassa esitetään myös 3/2-approksimointialgoritmi (luku 19). 11
Minimaalinen k-leikkaus Määritelmä: Annettu yhtenäinen suuntaamaton verkko (V, E), painofunktio w : E Q + ja k N. Etsittävä minimaalinen k-leikkaus eli kaarten joukko A E, jolle Verkossa (V, E \ A) on k yhtenäistä komponenttia Jos w(a ) < w(a), niin verkossa (V, E \ A ) on alle k komponenttia. Kiinteälle k ongelma osataan ratkaista polynomisessa ajassa, mutta jos k on osa syötettä kuten yllä, ongelma on NP-täydellinen. 12
Gomory-Hu -puut Kirjassa esitetty (2 2/k)-approksimointialgoritmi perustuu Gomory-Hu -puihin. Niille annettu määritelmä kirjassa on hieman epämääräinen... Painotetun suuntaamattoman verkon ((V, E), w), missä w : E Q +, Gomory-Hu -puu on painotettu puu T = (V, T ), jonka painofunktiolle w : T Q + pätee: Solmut u, v V verkossa (V, E) erottavan minimaalisen leikkauksen paino on min{w (e i ) e 1,..., e s on polku u v puussa T } Kaari e = {u 0, u 1 } T vastaa leikkausta (U 0, U 1 ) verkossa (V, E), missä U i on solmun u i sisältävä puun (V, T \ {e}) yhtenäinen komponentti. 13
Minimaalisen k-leikkauksen approksimointi Algoritmi: 1. Laske syöteverkon Gomory-Hu -puu (katso J. van Leeuwen, Handbook of Theoretical Computer Science, Volume A, sivut 605-608). 2. Tulosta puun k 1 keveintä kaarta vastaavien leikkausten yhdiste. Jos tulostettavien kaarten joukon poistaminen leikkaa verkon yli k komponenttiin, kaaria voidaan palauttaa mielivaltaisessa järjestyksessä kunnes jäljellä on tasan k komponenttia. 14
Analyysin idea Se, että tulostettava kaarten joukko pilkkoo verkon (vähintään) k komponenttiin on ilmeistä (?). Approksimointisuhteen analyysin ideana on: Jos optimaalisen A E poistaminen leikkaa V :n k osaan V 1,..., V k (ja A on joukkoinkluusion suhteen minimaalinen tälläinen joukko), niin A = k i=1 A i, missä A i on V i :n muusta verkosta erottava kaarijoukko. Selvästi kukin e A kuuluu tasan kahteen joukkoon A i, joten k i=1 w(a i) = 2 w(a). Olettaen, että A k on kaarijoukoista painavin, pätee edelleen k 1 i=1 w(a i) 2(1 1/k)w(A). Riittää siis osoittaa, että puun T k 1 keveimmän kaaren painojen summa k 1 i=1 w(a i) (kirjassa). 15