Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Algoritmusok bonyolultsága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember Algoritmusok bonyolultsága és kommunikációs.

Hasonló előadás


Az előadások a következő témára: "Algoritmusok bonyolultsága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember Algoritmusok bonyolultsága és kommunikációs."— Előadás másolata:

1 Algoritmusok bonyolultsága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember Algoritmusok bonyolultsága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember

2 A bonyolultságelmélet alapvető részei algoritmus, idő, tár stb. pontos fogalma algoritmus, idő, tár stb. pontos fogalma matematikai gép különböző modelljei erőforrások korlátozása –> erőforrások korlátozása –> megoldható feladatok körének szűkülése –> bonyolultsági osztályok legfontosabb algoritmusok erőforrás-igényei? legfontosabb algoritmusok erőforrás-igényei? hatékony algoritmusok arra, hogy fontos feladatokról hatékony algoritmusok arra, hogy fontos feladatokról eldönsük melyik bonyolultsági osztályba tartoznak

3 „negatív eredmények” bizonyítása: „negatív eredmények” bizonyítása: egyes feladatok nem oldhatók meg bizonyos erőforrás- korlátozások mellett (bonyolultsági osztályok különbözőek-e, üresek-e?) „negatív eredmények” (bonyolult problémák és struktúrák) felhasználása: „negatív eredmények” (bonyolult problémák és struktúrák) felhasználása: véletlen számok generálása, kommunikációs protokollok, titkosírások (kriptográfia), adatvédelem

4 A matematikai gép különböző fajtái Véges automata (bonyolultságelmélet számára túlságosan primitív) Véges automata (bonyolultságelmélet számára túlságosan primitív) Turing-gép (megalkotója Turing angol matematikus még a programvezérlésű számítógépek előtt, 1936) Turing-gép (megalkotója Turing angol matematikus még a programvezérlésű számítógépek előtt, 1936) Matematikailag tiszta, de leírása nehézkes, ezért inkább elméleti vizsgálatokban használjuk. Turing-gépen minden számítás elvégezhető, ami bármilyen más azóta definiált matematikai gépen. A valódi számítógépektől több vonatkozásban eltér, pl. memóriája nem közvetlen elérésű.

5 Alan Turing (1912-1954) Turing-gép Turing-gép Church-Turing-tézis Church-Turing-tézis Enigma feltörése Enigma feltörése Turing-teszt Turing-teszt

6 RAM-gép (Random Acces Machine) RAM-gép (Random Acces Machine) A memória tetszőleges rekesze egy lépésben elérhető. A valódi számítógépek leegyszerűsített modellje azzal az absztrakcióval, hogy memóriája korlátlan, és minden memóriarekeszében tetszőlegesen nagy egész tárolható. RAM-gépen ugyanazok a függvények számíthatók ki, mint Turing-gépen. Logikai hálózatok Logikai hálózatok Rögzített méretű bemenet esetén minden függvény kiszámítható logikai hálózattal, de egy adott hálózat csak adott nagyságú bemenetet enged meg.

7 Turing-gép alkotórészei k ≥ 1 két irányban végtelen szalag. Minden szalagnak van egy kitüntetett kezdőmezeje (0. mező). A mezőkre egy véges Σ ábécéből lehet jelet írni. Véges sok mező kivételével ez a jel az üres mező jele („#”) kell legyen. k ≥ 1 két irányban végtelen szalag. Minden szalagnak van egy kitüntetett kezdőmezeje (0. mező). A mezőkre egy véges Σ ábécéből lehet jelet írni. Véges sok mező kivételével ez a jel az üres mező jele („#”) kell legyen. Minden szalaghoz tartozik egy író-olvasó fej, mely minden lépésben a szalag egy mezején áll. Minden szalaghoz tartozik egy író-olvasó fej, mely minden lépésben a szalag egy mezején áll. Vezérlőegység, melynek állapotai egy véges Γ halmazt alkotnak. Ki van tüntetve egy „START” kezdőállapot és egy „STOP” végállapot. Vezérlőegység, melynek állapotai egy véges Γ halmazt alkotnak. Ki van tüntetve egy „START” kezdőállapot és egy „STOP” végállapot.

8 Az ideális Turing-gép

9 Turing-gép működése Kezdetben a vezérlőegység a START állapotban van, a fejek pedig a szalagok kezdőmezőjén. Kezdetben a vezérlőegység a START állapotban van, a fejek pedig a szalagok kezdőmezőjén. Minden lépésben minden fej leolvassa a szalagján lévő jelet, és a vezérlőegység a leolvasott jelektől és a saját állapotától függően 3 dolgot csinál: Minden lépésben minden fej leolvassa a szalagján lévő jelet, és a vezérlőegység a leolvasott jelektől és a saját állapotától függően 3 dolgot csinál: » átmegy egy új állapotba (ez lehet a régi is) » utasítást ad a fejeknek, hogy az adott mezőn lévő jelet fölülírják (v. speciálisan azt, hogy ne írják fölül) » minden fejnek utasítást ad, hogy lépjen jobbra v. balra egyet, vagy maradjon helyben A gép megáll, ha a vezérlőegység a STOP állapotba jut. A gép megáll, ha a vezérlőegység a STOP állapotba jut.

10 A Turing-gép paraméterei T = (k,Σ,Γ,φ,ψ,δ) k ≥ 1 egész k ≥ 1 egész Σ és Γ véges halmazok, # є Σ és START, STOP є Γ Σ és Γ véges halmazok, # є Σ és START, STOP є Γ φ: Γ × Σ k —> Γ φ: Γ × Σ k —> Γ ψ: Γ × Σ k —> Σ k ψ: Γ × Σ k —> Σ k δ: Γ × Σ k —> {-1,0,1} δ: Γ × Σ k —> {-1,0,1}

11 Megjegyzések: Σ a # jelen kívűl általában még legalább 2 jelet (0,1) tartalmaz, és általában ennyi elegendő is. Σ a # jelen kívűl általában még legalább 2 jelet (0,1) tartalmaz, és általában ennyi elegendő is. Gyakran a szalagok csak egy irányban végtelenek, és számuk szinte mindig könnyen korlátozható volna 2-re, és igen sok vonatkozásban 1-re is. Gyakran a szalagok csak egy irányban végtelenek, és számuk szinte mindig könnyen korlátozható volna 2-re, és igen sok vonatkozásban 1-re is. Bizonyos szalagokról kiköthető volna, hogy azok csak írhatók vagy csak olvashatók. Bizonyos szalagokról kiköthető volna, hogy azok csak írhatók vagy csak olvashatók. Bemeneten általában az induláskor a szalagra írt Σ ábécé beli szavakat értjük, míg kimeneten a végállapotban a szalagon lévő szavakat, vagy az utolsó szalagon lévő szót. Bemeneten általában az induláskor a szalagra írt Σ ábécé beli szavakat értjük, míg kimeneten a végállapotban a szalagon lévő szavakat, vagy az utolsó szalagon lévő szót.

12 Az univerzális Turing-gép gondolata Az eddigiek alapján egy lényeges különbséget vehetünk észre a Turing-gépek és a valódi programvezérlésű számítógépek között: Minden függvény kiszámításához külön Turing-gépet kell konstruálni, míg a számítógépeken elegendő megfelelő programot írni. Megmutatjuk, hogy a Turing-gépet is lehet így kezelni. Ez vezet az univerzális Turing-gép fogalmához!

13 Univerzális Turing-gép Legyen T = (k+1,Σ,Γ T,φ T,ψ T,δ T ) és S = (k,Σ,Γ S,φ S,ψ S,δ S ) két Turing-gép. Legyen p egy Σ ábécé beli szó. Azt mondjuk, hogy T a p programmal szimulálja S-et, ha tetszőleges x 1, x 2, …, x k szavakra T az (x 1, x 2, …, x k, p) bemenete csakkor áll meg véges számú lépésben, ha S az (x 1, x 2, …, x k ) bementre megáll, és megálláskor T első k szalagján rendre ugyanaz áll, mint S szalagjain.

14 A k+1 szalagos T Turing-gép univerzális a k szalagos Turing-gépekre nézve, ha bármely k szlagos Σ fölötti S Turing-géphez létezik olyan p szó (program), mellyel a T szimulálja S-et. Tétel: Minden k ≥ 1 számhoz és minden Σ ábécéhez létezik k+1 szalagú univerzális Turing-gép. Bizonyitás vázlat: A konstrukció alapgondolata az, hogy a (k + 1)-edik szalagra a szimuláló S Turing-gép működését leíró táblázatot írunk. Az univerzális Turing-gép ezen kívűl még felírja magának, hogy a szimulált S gép melyik állapotában van éppen.

15 A következő tétel azt mutatja, hogy nem lényeges, hogy hány szalagja van egy Turing-gépnek. Tétel: Minden k szalagos S Turing-géphez van olyan 1 szalagos Turing-gép, ami S-et helyettesíti a következő értelemben: minden Σ ábécé beli szóra S csakkor áll meg véges sok lépésben, ha T megáll ugyanerre a szóra, és megálláskor S utolsó szalagjára ugyanaz lesz írva, mint T szalagjára. Továbbá, ha S N lépést tesz, akkor T-nek O(N 2 ) lépésre van szüksége. Megjegyzés: a bemenetet mindig írhatjuk 1 szalagra, S szalagjai csak a számítási idő lerövidítésére valók!

16 Jelölések Legyen Σ egy véges ábécé, mely tartalmazza a „#” jelet. Turing-gépek bemeneteként olyan szavakat engedünk meg, melyek ezt a speciális üres mező jelet nem tartalmazzák. Σ 0 := Σ – {#} Σ 0 := Σ – {#} Σ 0 * jelölje a Σ 0 fölötti szavak halmazát Σ 0 * jelölje a Σ 0 fölötti szavak halmazát Σ 0 * egy részhalmazát nyelvnek nevezzük Σ 0 * egy részhalmazát nyelvnek nevezzük

17 Rekurzív és rekurzíve fölsorolható nyelvek Definíció: Egy f : Σ 0 * ―> Σ 0 * függvényt kiszámíthatónak vagy rekurzívnak nevezünk, ha van olyan T Turing-gép, ami bármely x є Σ 0 * bemenettel (vagyis első szalagjára vagy rekurzívnak nevezünk, ha van olyan T Turing-gép, ami bármely x є Σ 0 * bemenettel (vagyis első szalagjára x-et írva, a többit üresen hagyva) véges idő után megáll, és az első szalagjára az f(x) szó lesz írva. x-et írva, a többit üresen hagyva) véges idő után megáll, és az első szalagjára az f(x) szó lesz írva. Definíció: Az L Σ 0 * beli nyelvet rekurzívnak hívjuk, ha karakterisztikus függvénye: f L (x) = {1, ha x є L ; 0, ha x є Σ 0 * - L} kiszámítható, ahol feltettük, hogy 0,1 є Σ 0.

18 Megjegyzések: Nyilvánvaló, hogy minden véges nyelv rekurzív. Nyilvánvaló, hogy minden véges nyelv rekurzív. Ha L rekurzív, akkor a komplementere: Σ 0 * - L is az. Ha L rekurzív, akkor a komplementere: Σ 0 * - L is az. Mivel kontinuum sok nyelv van, míg a Turing-gépek száma megszámlálható, nyilvánvalóan létezik nem rekurzív nyelv is! Mivel kontinuum sok nyelv van, míg a Turing-gépek száma megszámlálható, nyilvánvalóan létezik nem rekurzív nyelv is! Definíció: Egy L nyelvet rekurzíve fölsorolhatónak nevezünk, ha vagy L = Ø, vagy van olyan kiszámítható f : Σ 0 * ―> Σ 0 * függvény, melynek értékkészlete L. / Egy rekurzíve fölsorolható nyelv komplementere már nem feltétlenül rekurzíve fölsorolható! /

19 A rekurzív és rekurzíve fölsorolható nyelvek közötti kapcsolat Lemma: Egy L nyelv csakkor rekurzíve fölsorolható, ha van olyan T Turing-gép, melynek első szalagjára x-et írva, a gép csakkor áll le véges idő múlva, ha x є L. Tétel: Egy L nyelv csakkor rekurzív, ha mind az L nyelv, mind a Σ 0 * - L nyelv rekurzíve fölsorolható.

20 A megállási probléma Most megmutatjuk, hogy van rekurzíve fölsorolható, de nem rekurzív nyelv. Legyen T Turing-gép. Álljon L T mindazon x є Σ 0 * szavakból, melyekre fennáll, hogy T minden szalagjára x-et írva, a gép véges sok lépésben megáll. Állítás: Az L T nyelv rekurzíve fölsorolható. De, ha T univerzális Turing-gép, akkor L T nem rekurzív.

21 Mit is jelent ez? Röviden szólva: algoritmikusan nem lehet eldönteni, hogy egy univerzális Turing-gép egy adott bemenettel véges időn belül megáll-e Ezt a feladatot hívják megállási problémának. Megjegyzés: Algoritmikusan kiszámíthatónak azt nevezzük, amit Turing-gépen ki lehet számolni. Olyan determinisztikus modellt, amely több mindent tudna kiszámolni, mint a Turing-gép, még senki sem talált.

22 Bizonyítás Az első állítás a Lemmából következik. A második állítás bizonyításához az egyszerűség kedvéért tegyük fel, hogy T-nek 2 szalagja van. Ha L T rekurzív volna, akkor Σ 0 * - L T rekurzíve fölsorolható volna, és így megadható volna olyan 1 szalagos T 1 Turing- gép, hogy az x bemeneten csakkor áll le, ha x є Σ 0 * - L T. A T 1 szimulálható T-n úgy, hogy 2. szalagjára egy alkalmas p „programot” írunk.

23 Ekkor T mindkét szalagjára p-t írva, csakkor áll le, ha T 1 leáll (a szimuláció miatt). T 1 viszont csakkor áll le, ha T nem áll le ezzel a bemenettel, vagyis ha p nem eleme L T -nek. Tehát ellentmondás, hiszen L T definíciója szerint T pontosan akkor áll le, ha p eleme L T -nek. Q.E.D.

24 Algoritmikusan eldönthetetlen problémák Példák: Dominó-probléma Dominó-probléma Hilbert 10. problémája, avagy a diophantoszi egyenletek megoldhatóságának problémája Hilbert 10. problémája, avagy a diophantoszi egyenletek megoldhatóságának problémája (egész együtthatós n változós polinomnak van-e egész számokból álló megoldása?)

25 Tár és idő time T (n) a T Turing-géphez tartozó ún. időigény-függvény, mely a gép lépésszámának maximumát adja n hosszúságú bemenet esetén. time T (n) a T Turing-géphez tartozó ún. időigény-függvény, mely a gép lépésszámának maximumát adja n hosszúságú bemenet esetén. Általában a gépnek el kell olvasnia a bemenetet, ezért Általában a gépnek el kell olvasnia a bemenetet, ezért time T (n) ≥ n. space T (n) a T Turing-géphez tartozó ún. tárigény-függvény, mely a gép szalagjain azon különböző mezők maximális számát adja, melyekre a gép ír n hosszúságú bemenet esetén. space T (n) a T Turing-géphez tartozó ún. tárigény-függvény, mely a gép szalagjain azon különböző mezők maximális számát adja, melyekre a gép ír n hosszúságú bemenet esetén. Nyilván space T (n) ≥ 1.

26 Polinomiális Turing-gép Azt mondjuk, hogy a T Turing-gép polinomiális, ha időigénye O(f) valamely f polinomra, vagyis van olyan c > 0 konstans, hogy T időigénye O(n c ). Megjegyzés: Hasonlóan definiálhatjuk az exponenciális idejű algoritmusokat (O((2 n ) c ) időigényű valamely c > 0 konstans- ra), polinomiális tárigényű algoritmusokat (Turing-gépeket) stb.

27 Azt mondjuk, hogy a L Σ * beli nyelv időbonyolultsága legfeljebb f(n), ha a nyelv egy legfeljebb f(n) időigényű Turing-géppel eldönthető. A legfeljebb f(n) időbonyolultságú nyelvek osztályát DTIME(f(n))-nel jelöljük. (A „D” a determinisztikusra utal, később lesznek véletlent is használó algoritmusok.) A polinomiális Turing-géppel eldönthető nyelvek osztályát PTIME-mal vagy egyszerűen P-vel jelöljük. Hasonlóan definiálhatók a DSPACE(f(n)) nyelvosztályok és a DSPACE nyelvosztály. Nyelvosztályok

28 Nem-determinizmus alapgondolata Ha egy algoritmus megold egy problémát, akkor implicite arra is bizonyítékot szolgáltat, hogy a válasza helyes. Néha ez a bizonyíték sokkal egyszerűbb (rövidebb, áttekinthetőbb), mint a bizonyíték megtalálása, azaz az algoritmus futásának figyelemmel kísérése. Vizsgálhatjuk csupán a bizonyítékot annélkül, hogy törődnénk vele, hogyan lehet megtalálni.

29 Ha tudjuk, hogy egy feladatra adott bizonyíték helyessége sem adható meg adott időn (vagy táron) belül, akkor az algoritmus bonyolultságára is alsó becslést kapunk. Aszerint osztályozva a feladatokat, hogy milyen nehéz a válaszra a helyességét rábizonyítani, igen érdekes és Alapvető bonyolultsági osztályokat kapunk! Ez az a gondolat, melyet nem-determinizmusnak neveznek.

30 Nem-determinisztikus Turing-gép Egy nem-determinisztikus Turing-gép annyiban különbözik egy determinisztiustól, hogy minden helyzetében több lehet- Séges lépés is megengedett a vezérlőegység állapotának és a fejek által leolvasott jelek függvényében. Legális számolásnak nevezzük a gép legális lépéseinek egy sorozatát.

31 Nem-determinisztikus Turing-gép matematiai leírása T = (k,Σ,Γ,φ,ψ,δ) helyett T = (k,Σ,Γ,Φ), ahol φ: Γ × Σ k —> Γ ψ: Γ × Σ k —> Σ k δ: Γ × Σ k —> {-1,0,1} helyett Φ reláció:

32 NTIME(f(n)), NSPACE(f(n)) Egy nem-determinisztikus Turing-gép t időben elfogadja az x є Σ 0 * szót, ha első szalagjára x-et írva (a többire az üres szót), van olyan legális számolás ezzel a bementtel, mely legfeljebb t lépésben megáll, és megálláskor az 1. szalag 0. poziciójában „1” áll. Azt mondjuk, hogy a T nem-determinisztikus Turing-gép föl- ismeri az L Σ 0 * beli nyelvet, ha L pontosan azokból a sza- vakból áll, melyeket T elfogad (akármekkora véges időben).

33 Ha ezenfelül a gép minden x є L szót f(|x|) időben elfogad, akkor azt mondjuk, hogy a gép L-et f(n) időben ismeri föl. Az f(n) időben nem-determinisztikus Turing-géppel fölismer- hető nyelvek osztályát NTIME(f(n)) jelöli. Hasonlóan definiáljuk azt, hogy egy nem-determinisztikus Turing-gép az L nyelvet s tár föl-használásával fogadja el, illetve az f(n) tárral való fölismerhetőséget. Az f(n) tárral nem-determinisztikus Turing-géppel fölismer- hető nyelvek osztályát NSPACE(f(n)) jelöli.

34 Co-NTIME(f(n)), co-NSPACE(f(n)) A determinisztikus osztályoktól eltérően, egy L nyelv nem- determinisztikus fölismerhetősége nem jelenti, hogy a komp- lementer nyelv (Σ 0 * - L) is fölismerhető (látni fogjuk, hogy erre minden rekurzíve fölsorolható, de nem rekurzív nyelv példa). Ezért értelmes bevezetni az alábbi nyelvosztályokat: Egy L nyelv akkor és csak akkor tartozik a co-NTIME(f(n)) ill. a co-NSPACE(f(n)) osztályba, ha a komplementer nyelv, azaz Σ 0 * - L, az NTIME(f(n)) ill. NSPACE(f(n)) osztályba tartozik.

35 Megjegyzések A nem-determinisztikus Turing-gép egy szituációban többféle lépést is tehet, de ezeken a lépéseken nem tételezünk föl semmilyen valószínűségeloszlást. Ha ezt tennénk, akkor randomizált Turing-gépekről beszélnénk, melyek egyébként fontos gyakorlati jelentőséggel bírnak. Tétel: A nem-determinisztikus Turing-géppel fölismerhető nyelvek pontosan a rekurzíve fölsorolható nyelvek.

36 A tanú Megmutatjuk, hogy az L nyelv nem-determinisztikus Turing- géppel bizonyos időben való fölismerhetősége azzal függ össze, hogy mennyire egyszerű „rábizonyítani” egy szóra, hogy L-ben van. Azt mondjuk, hogy L-nek f(n) hosszúságú g(n) idejű tanúja az L 0 є DTIME(g(n)) nyelv, ha x є L csakkor, ha van olyan x є Σ 0 * szó, hogy |y| ≤ f(|x|) és x&y є L 0 (ahol „&” egy új jel, ami az x és y szavak elválasztására szolgál).

37 NP, co-NP Tétel: Tetszőleges L Σ 0 * beli nyelvre az alábbi tulajdonságok ekvivalensek: L fölismerhető nem-determinisztikus Turing-gépen polinomiális időben. L fölismerhető nem-determinisztikus Turing-gépen polinomiális időben. L-nek van polinomiális hosszúságú és idejű tanúja. L-nek van polinomiális hosszúságú és idejű tanúja. A kimondott tulajdonsággal rendelkező nyelvek osztályát NP- vel jelöljük. Azon nyelvek, melyekre Σ 0 * - L є NP, alkotják a co-NP osztályt.

38 Megjegyzések Pontos megfogalmazás nélkül megemlítjük, hogy L є NP ek- vivalens azzal is, hogy az L nyelvnek adható a halmazelmélet axiómarendszerében olyan definíciója, hogy minden x є L szóra az az állítás, hogy „ x є L” bebizonyítható a halmazel- mélet axiómáiból |x|-ben polinomiális lépésben. Savitch tétele: PSPACE=NPSPACE.

39 Példák NP-beli nyelvekre Számos fontos nyelv a tanújával van megadva: Gráf összefüggősége. Tanú: n(n-1)/2 út, minden pontpárra egy-egy. Gráf összefüggősége. Tanú: n(n-1)/2 út, minden pontpárra egy-egy. Összetettség. Tanú: valódi osztó. Összetettség. Tanú: valódi osztó. Hamilton-kör létezése. Tanú: a Hamilton-kör. Hamilton-kör létezése. Tanú: a Hamilton-kör. Síkba nem rajzolhatóság. Tanú: teljes ötszög v. három- Síkba nem rajzolhatóság. Tanú: teljes ötszög v. három- ház-három-kút részgráf (Kuratowski-tétele alapján). Stb. Stb.

40 Polinomiális visszavezethetőség Azt mondjuk, hogy az L 1 Σ 1 * beli nyelv polinomiálisan vissza- vezethető az L 2 Σ 2 * beli nyelvre, ha van olyan polinomiális időben kiszámítható f : Σ 1 * —> Σ 2 * függvény, hogy minden x є Σ 1 * szóra x є L 1 ekvivalens f(x) є L 2 –vel. A definíció alapján a polinomiálisan visszavezethetőség tran- zitív tulajdonság. Állítás: Ha egy nyelv P-ben van, akkor minden rá polinomiáli- san visszavezethető nyelv is P-ben van. Hasonlóan NP-re.

41 NP-teljesség Definíció: Egy NP-beli L nyelvet NP-teljesnek nevezünk, ha minden NP-beli nyelv polinomiálisan visszavezethető L-re. Megjegyzés: Az NP-teljes nyelvek tehát a „legnehezebb” NP- beli nyelvek. Ha meg tudnánk mutatni egy NP-teljes nyelv- ről, hogy P-ben van, akkor abból következne, hogy P=NP. Észrevétel: Ha egy NP-teljes L 1 nyelv polinomiálisan vissza- vezethető egy L 2 nyelvre, akkor L 2 is NP-teljes.

42 Példák NP-teljes problémákra Lefogási feladat: Adott egy véges S halmaz részhalmaza- Lefogási feladat: Adott egy véges S halmaz részhalmaza- inak egy {A 1, …, A m } rendszere és egy k természetes szám. Van-e olyan legfeljebb k elemű halmaz, mely min- den A i -t metsz? Gráfok 3 színnel való szinezhetősége. Gráfok 3 színnel való szinezhetősége. Diophantoszi egyenlőtlenségrendszer megoldhatósága. Diophantoszi egyenlőtlenségrendszer megoldhatósága. Részletösszeg probléma: Adottak az a 1, …, a m és b termé- szetes számok. Van-e az {a 1, …, a m } halmaznak olyan részhalmaza, melynek összege b? Részletösszeg probléma: Adottak az a 1, …, a m és b termé- szetes számok. Van-e az {a 1, …, a m } halmaznak olyan részhalmaza, melynek összege b?

43 Kategorizálatlan NP-beli problémák Tapasztalati tény, hogy a legtöbb NP-beli problémáról vagy az derül ki, hogy NP-teljes, vagy az, hogy P-beli. Nem sike- rült eddig besorolni az alábbiakat: Adott természetes szám prím-e? (P?, Riemann-sejtés) Adott természetes szám prím-e? (P?, Riemann-sejtés) Adott n természetes számnak van-e k-nál nem nagyobb osztója? (várhatóan se nem P se nem NP-teljes) Adott n természetes számnak van-e k-nál nem nagyobb osztója? (várhatóan se nem P se nem NP-teljes) Két adott gráf izomorf-e? (várhatóan se nem P se nem NP- teljes) Két adott gráf izomorf-e? (várhatóan se nem P se nem NP- teljes)

44 Millió dolláros megoldatlan probléma A P ≠ NP sejtés az első helyen szerepel a Clay Mathematics Institute (CMI) 7 db egymillió dolláros problémája között. $1.000.000

45 Információs bonyolultság dióhéjban Alapprobléma: eldönteni egy 0-1 sorozatról, hogy véletlen-e. Durván szólva, akkor akarunk egy sorozatot véletlennek te- kinteni, ha nincs benne „szabályosság”. Itt a szabályosságot azzal fogjuk meg, hogy az a sorozat gazdaságosabb kódolá- sára adna lehetőséget, azaz a sorozat bonyolultsága kicsi volna. Ehhez definiálnunk kell az ún. információs bonyolult- ságot.

46 A bonyolultság definíciójának alapgondolata Egy x є Σ 0 * szó bonyolultságán a legrövidebb olyan szó (program) hosszát fogjuk érteni, mely egy Σ 0 * fölötti T univerzális Turing-gépen az x szót nyomtatja ki (azaz a programot T-n futtatva, az véges sok lépésben megáll úgy, hogy az első szalagján az x szó áll). Megjegyzés: Minden x szó kinyomtatható egy univerzális Turing-gépen. És néhány egyszerű feltevést téve a gép- re (hogy ne legyen direkt „ügyetlen” ), kiderül, hogy a bonyolultság géptől független lesz.

47 Kommunikációs bonyolultság (bevezető példa a randomizált kommunikáció köréből) Legyen egy űrhajónk, melynek van egy 10 20 bites programja. A programot néha ellenőrizni kell, mert pl. a kozmikus sugár- zás kárt tehet benne. A 10 20 bit elküldése sok idő és energia. Mit érdemes csinálni?

48 Első gondolat: Prímtényezőkre bontás. Sajnos nem nyerhetünk. 10 20 bitnél olcsóbban nem úszható meg a teljes információ visszaküldése! Sőt a prímtényezőkre való bontás nehéz és a tényezőket el is kell választani. Valamiben engednünk kell! Legyen ez a biztonság. Pl. 99%-os biztonságot szeretnénk. Ha véletlenszerűen választott jegyeket küldünk vissza, akkor jegyenként csak 1/ 10 20 a valószínűsége annak, hogy hibás jegyre akadunk. Ezt sem érdemes!

49 Jó módszer: Ún. randomizált algoritmus. X az űrhajó programja Y a Földön biztonságban tárolt kód p := RANDOM PRíM є ]2,N[ X 1 := X mod p Y 1 := Y mod p Ha X 1 ≠ Y 1, akkor a program rossz! Ha X 1 ≠ Y 1, akkor a program rossz! Ha X 1 = Y 1, akkor q valószínűséggel rossz a program, le- Ha X 1 = Y 1, akkor q valószínűséggel rossz a program, le- hetséges ugyanis, hogy p | |X-Y|.

50 /ahol Π(N) az N-nél nem nagyobb prímek száma/ /ahol Π(N) az N-nél nem nagyobb prímek száma/ Mekkora legyen N, hogy q kisebb legyen 0.01? Legyen |X-Y| = p 1 β1 ·p 2 β2 ·… p k βk. Legyen |X-Y| = p 1 β1 ·p 2 β2 ·… p k βk. Legrosszabb esetben minden p i = 2 és β i = 1. Legrosszabb esetben minden p i = 2 és β i = 1. Ekkor 2^(10 20 ) ≥ |X-Y| ≥ 2 k. Ekkor 2^(10 20 ) ≥ |X-Y| ≥ 2 k. Tehát k ≤ 10 20. Tehát k ≤ 10 20. q = k / Π(N) ≤ 0.01, azaz k ≤ 0.01 Π(N). q = k / Π(N) ≤ 0.01, azaz k ≤ 0.01 Π(N). Tehát elegendő volna, hogy 10 20 ≤ 0.01 Π(N). Tehát elegendő volna, hogy 10 20 ≤ 0.01 Π(N). Vagyis 10 22 ≤ Π(N). Vagyis 10 22 ≤ Π(N). q = |X-Y| prímosztóinak a száma / Π(N) := k / Π(N)

51 Prímszámtétel szerint: Π(N) ≈ N / ln(N). Tehát 10 22 ln(N) ≤ N. Amiből N kb. 24 jegyű, ami 80 bitnek felel meg! (A 10 20 helyett!) Ha a biztonságot 99.99%-ra növeljük, akkor 10 24 ln(N) ≤ N adódik, s csak néhány bittel kell több! Sőt, számelméleti eredményeket felhasználva q-ra sokkal jobb becslés adható. Kiderül, hogy az átküldendő bitek száma 2·log(n)+konstans (n= 10 20 ).

52 A protokoll Ami az algoritmikus bonyolultság esetén az algoritmus, az a kommunikációs bonyolultság esetén a protokoll. Protokoll: Minden „játékos” számára elő van írva, hogy a bemenet és a többi játékos által üzent bitek függvényé- ben ő van-e soron (x-től függetlenül), s ha igen, akkor mit és kinek kell üzennie. A protokollt minden játékos ismeri, tehát tudják az üzenetek „jelentését” (milyen bemenetek esetén üzenhette ezt a másik).

53 Triviális protokoll: Az egyik fél elküldi az általa ismert bemenetet a másiknak, aki kiszámolja a kívánt eredményt, majd visszaüzeni. Kommunikációs mátrix: Legyenek a felek lehetsége bemenetei: Legyenek a felek lehetsége bemenetei: a 1 … a n és b 1 … b m a 1 … a n és b 1 … b m A kiszámítandó érték az a i és b j bemenetekre: c ij A kiszámítandó érték az a i és b j bemenetekre: c ij A c ij -k alkotta n×m-es (ezentúl C) mátrixot nevezzük a feladat kommunikációs mátrixának. A mátrix teljesen leírja a feladatot, és mindkét fél ismeri a teljes mátrixot. A c ij -k alkotta n×m-es (ezentúl C) mátrixot nevezzük a feladat kommunikációs mátrixának. A mátrix teljesen leírja a feladatot, és mindkét fél ismeri a teljes mátrixot.

54 Triviális protokoll a kommunikációs mátrixra nézve Az egyik fél ismeri a C mátrix egyik sorának i indexét. A másik fél ismeri a C mátrix egyik oszlopának j indexét. Feladat: a c ij elem meghatározása Triviális protokoll: egyikük [log n] ill. [log m] bitben elküldi az ő általa ismert indexet.

55 Általános protokoll a kommunikációs mátrixra nézve Ha az egyik fél üzen egy є bitet, az arra vonatkozóan fog információt hordozni, hogy mi az ő indexe. C sorait (v. oszlopait) két osztályba lehet sorolni aszerint, hogy є = 0 vagy 1. A C mátrix tehát két almátrixra: C 0 és C 1 bomlik. Ezt a föl- bontást a protokoll határozza meg, tehát mindkét fél ismeri. Az üzenő bit azt kódolja, hogy melyik almátrixban van az üzenő sora (v. oszlopa), tehát a probléma ettől kezdve leszűkül, valamelyik almátrixra.

56 Guillotine-fölbontás Továbbmenve látjuk, hogy a protokoll a C mátrix egyre kisebb részmátrixora való bontásának felel meg. Minden lépésben az aktuális részmátrixot két kisebb részmátrixra bontunk egy vízszintes vagy egy függőleges hasítással.

57 Megjegyzés A mátrix sorait és oszlopai tetszés szerint oszthatjuk két részre, tehát annak, hogy eredetileg milyen sorrendben vannak, semmi szerepe nincsen A mátrix sorait és oszlopai tetszés szerint oszthatjuk két részre, tehát annak, hogy eredetileg milyen sorrendben vannak, semmi szerepe nincsen A k. üzenet nem kell minden esetben ugyanazt jelentse az éppen soros részmátrix felbontásra nézve, azaz nem kell ugyanúgy kettéossza a sorokat (ill. oszlopokat), sőt az is lehet, hogy a,,0’’ üzenet azt jelenti, hogy,,mondok még valamit’’, az,,1’’ üzenet pedig azt, hogy,,te jössz’’, tehát az egyik esetben a sorokat míg a másik esetben az oszlopokat fogjuk felbontani. A k. üzenet nem kell minden esetben ugyanazt jelentse az éppen soros részmátrix felbontásra nézve, azaz nem kell ugyanúgy kettéossza a sorokat (ill. oszlopokat), sőt az is lehet, hogy a,,0’’ üzenet azt jelenti, hogy,,mondok még valamit’’, az,,1’’ üzenet pedig azt, hogy,,te jössz’’, tehát az egyik esetben a sorokat míg a másik esetben az oszlopokat fogjuk felbontani.

58 Mikor áll meg a protokoll? Ha a lehetőségek leszűkűltek egy C’ almátrixra, mindketten tudják, hogy a másik oszlopa ill. sora ehhez a C’-höz tartozik. Az eredmény tehát, akkor egyértelmű mindkettőjüknek, ha a C’ minden eleme egyforma: 1 vagy 0. A feladat tehát kombinatorikai jellegű: Hány lépésben tudunk egy adott 0-1 mátrixot csupa-0 és csupa-1 mátrixokra felhasogatni?

59 Protokoll-fa C C0C0 0110100... C1C1 01 0101 0 0 0 1 01110100011010

60 Kommunikációs bonyolultság A protokoll időigénye a protokoll-fa mélysége. A feladat (a C mátrix) kommunikációs bonyolultsága az összes őt megoldó protokollok lehető legkisebb időigénye. Jele: κ(C) Lemma: κ(C) ≥ 1 + log rk(C), ahol rk(C) a C mátrix rangja.

61 Példa Feladat: Adél is, és Béla is ismer egy-egy n hosszúságú 0-1 sorozatot. Azt akarják eldönteni, hogy a két sorozat sorozatot. Azt akarják eldönteni, hogy a két sorozat egyenlő-e. egyenlő-e. Megoldás: A feladathoz tartozó kommunikációs mátrix nyilván a (2 n ×2 n )-szeres egységmátrix. Mivel nyilván a (2 n ×2 n )-szeres egységmátrix. Mivel ennek a rangja 2 n, ezért erre a feladatra nincsen ennek a rangja 2 n, ezért erre a feladatra nincsen a triviális (n+1) bitet használó protokollnál jobb a triviális (n+1) bitet használó protokollnál jobb protokoll. protokoll.

62 Nem-determinisztikus kommunikáció Ahogyan az algoritmusoknál, a protokolloknál is fontos szerepet játszik a nem-determinisztikus változat. Ezt a tanú fogalmával analóg módon egy,,szuperlény kinyilatkoztatása’’ segítségével definiáljuk. Gondoljuk el, hogy a felek minden olyan bemenetére, melyre a válasz 1, egy,,szuperlény’’ kinyilatkoztathat egy rövid a válasz 1, egy,,szuperlény’’ kinyilatkoztathat egy rövid 0-1 sorozatot (bizonyíték), mely meggyőzi mindkét felet arról, hogy a válasz valóban 1. arról, hogy a válasz valóban 1.

63 Példa Feladat: A felek egy-egy konvex sokszöget ismernek a síkon, és azt szeretnék eldönteni, hogy van-e a két sok- és azt szeretnék eldönteni, hogy van-e a két sok- szögnek közös pontja. szögnek közös pontja. A,,szuperlény’’ segítsége lehet ebben az esetben: egy közös pont kinyilatkoztatása, ha a sokszögek nem diszjunktak egy közös pont kinyilatkoztatása, ha a sokszögek nem diszjunktak egy olyan egyenes kinyilatkoztatása, mely elválasztja a sokszögeket, abban az esetben, ha a sokszögek diszjunktak egy olyan egyenes kinyilatkoztatása, mely elválasztja a sokszögeket, abban az esetben, ha a sokszögek diszjunktak

64 Nem-determinisztikus kommunikációs bonyolultság Egy nem-determinisztikus protokoll tehát bizonyos lehet- Egy nem-determinisztikus protokoll tehát bizonyos lehet- séges x 1, x 2 …, x n є {0,1} *,,kinyilatkoztatásokból’’ áll, melyek mindegyike elfogadható a felek számára bizonyos lehetséges bemenetek esetén. Egy bemenet-párhoz csakkor van x i, mely mindkettőjük Egy bemenet-párhoz csakkor van x i, mely mindkettőjük számára elfogadható, ha a bemenet-párra a válasz 1. A leghosszabb x i hossza a protokoll bonyolultsága. A leghosszabb x i hossza a protokoll bonyolultsága. Végül a C mátrix nem-determinisztikus kommunikációs Végül a C mátrix nem-determinisztikus kommunikációs bonyolultsága a rá alkalmazható nem-determinisztikus protokollok minimális bonyolultsága. Jele: κ ND (C).

65 P komm, NP komm, co-NP komm Az egyszerűség kedvéért tekintsünk négyzetes mátrixokat. C є P komm, ha κ(C) log(log n) egy polinomjánál nem na- C є P komm, ha κ(C) log(log n) egy polinomjánál nem na- gyobb, ahol n a mátrix sorainak száma (tehát a bonyo- gyobb, ahol n a mátrix sorainak száma (tehát a bonyo- lultság a triviális (1+log n)–nél lényegesen kisebb) lultság a triviális (1+log n)–nél lényegesen kisebb) C є P komm, ha κ ND (C) log(log n) egy polinomjánál nem C є P komm, ha κ ND (C) log(log n) egy polinomjánál nem nagyobb nagyobb C є co-NP komm, ha κ(C’) log(log n) egy polinomjánál nem nagyobb, ahol C’-t C-ből 0-1 cserével kapjuk C є co-NP komm, ha κ(C’) log(log n) egy polinomjánál nem nagyobb, ahol C’-t C-ből 0-1 cserével kapjuk

66 Felhasznát irodalom Lovász László: Algoritmusok bonyolultsága Lovász László: Algoritmusok bonyolultsága (egyetemi jegyzet) letölthető: www.cs.elte.hu/~gromusz/www.cs.elte.hu/~gromusz/bboard/bony2-2.html www.cs.elte.hu/~gromusz/ Gács Péter – Lovász László: Algoritmusok Gács Péter – Lovász László: Algoritmusok Rónyai Lajos, Ivanyos Gábor, Szabó Réka: Algoritmusok Rónyai Lajos, Ivanyos Gábor, Szabó Réka: Algoritmusok Roger Penrose: A Császár új elméje Roger Penrose: A Császár új elméje (Számítógépek, gondolkodás és a fizika törvényei)


Letölteni ppt "Algoritmusok bonyolultsága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember Algoritmusok bonyolultsága és kommunikációs."

Hasonló előadás


Google Hirdetések