66
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

  • Upload
    afram

  • View
    21

  • Download
    4

Embed Size (px)

DESCRIPTION

Algoritmusok bonyolults ága és kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium 2004 szeptember. A bonyolultságelmélet alapvető részei. algoritmus, idő, tár stb. pontos fogalma matematikai gép különböző modelljei erőforrások korlátozása –> - PowerPoint PPT Presentation

Citation preview

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

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

Page 2: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A bonyolultságelmélet alapvető részeiA 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ő modelljeimatematikai gép különböző modelljei

• erőforrások korlátozása erőforrások korlátozása –>–>

megoldhatmegoldható feladatok körének szűküléseó feladatok körének szűkülése –> –>

bonyolultsági osztályokbonyolultsági osztályok

• llegfontosabb algoritmusegfontosabb algoritmusokok er erőforrásőforrás--igényei?igényei?

• hatékony algoritmusok arra, hogy fontos hatékony algoritmusok arra, hogy fontos feladatokrólfeladatokról

eldönsük melyik bonyolultsági osztályba tartoznak eldönsük melyik bonyolultsági osztályba tartoznak

Page 3: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

• „„negatnegatív eredményekív eredmények”” bizonyítása: bizonyítása:

egyes feladatok nem oldhatók meg bizonyos egyes feladatok nem oldhatók meg bizonyos erőforráserőforrás--

korlkorlátozások mellettátozások mellett

(bonyolultsági osztályok különbözőek(bonyolultsági osztályok különbözőek-e, -e, üreseküresek-e-e?)?)

• „„negatnegatív eredményekív eredmények”” (bonyolult problémák és (bonyolult problémák és struktúrák) felhasználása:struktúrák) felhasználása:

véletlen számok generálása, kommunikációs véletlen számok generálása, kommunikációs protokollok,protokollok,

titkosírások (kriptográfia), adatvédelemtitkosírások (kriptográfia), adatvédelem

Page 4: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A A matematikai gmatematikai gép különböző fajtáiép különböző fajtái

• Véges automataVéges automata (bonyolultságelmélet számára (bonyolultságelmélet számára túlságosan primitív)túlságosan primitív)

• Turing-gépTuring-gép (megalkotója Turing angol (megalkotója Turing angol matematikus még a programvezérlésű matematikus még a programvezérlésű számítógépek előtt, 1936)számítógépek előtt, 1936)

Matematikailag tiszta, de leírása nehézkes, ezért Matematikailag tiszta, de leírása nehézkes, ezért inkább elméleti vizsgálatokban használjuk. Turing-inkább elméleti vizsgálatokban használjuk. Turing-gépen minden számítás elvégezhető, ami gépen minden számítás elvégezhető, ami bármilyen más azóta definiált matematikai gépen. bármilyen más azóta definiált matematikai gépen. A valódi számítógépektől több vonatkozásban 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ű.eltér, pl. memóriája nem közvetlen elérésű.

Page 5: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Alan Turing(1912-1954)

• Turing-gTuring-gépép

• ChurchChurch--TuringTuring-t-tézisézis

• Enigma feltöréseEnigma feltörése

• TuringTuring-teszt-teszt

Page 6: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

• RAM-gépRAM-gép (Random Acces Machine) (Random Acces Machine)

A memória tetszőleges rekesze egy lépésben A memória tetszőleges rekesze egy lépésben elérhető. A valódi számítógépek leegyszerűsített elérhető. A valódi számítógépek leegyszerűsített modellje azzal az absztrakcióval, hogy memóriája modellje azzal az absztrakcióval, hogy memóriája korlátlan, és minden memóriarekeszében korlátlan, és minden memóriarekeszében tetszőlegesen nagy egész tárolható. RAM-gépen tetszőlegesen nagy egész tárolható. RAM-gépen ugyanazok a függvények számíthatók ki, mint Turing-ugyanazok a függvények számíthatók ki, mint Turing-gépen.gépen.

• Logikai hálózatokLogikai hálózatok

Rögzített méretű bemenet esetén minden függvény 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 kiszámítható logikai hálózattal, de egy adott hálózat csak adott nagyságú bemenetet enged meg.csak adott nagyságú bemenetet enged meg.

Page 7: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Turing-gép alkotórészeiTuring-gép alkotórészei

• k ≥ 1 két irányban végtelen szalag. Minden k ≥ 1 két irányban végtelen szalag. Minden szalagnak van egy kitüntetett kezdőmezeje (0. szalagnak van egy kitüntetett kezdőmezeje (0. mező). A mezőkre egy véges mező). A mezőkre egy véges ΣΣ ábécéből lehet jelet ábécéből lehet jelet írni. Véges sok mező kivételével ez a jel az üres írni. Véges sok mező kivételével ez a jel az üres mező jele („mező jele („##”) kell legyen”) kell legyen..

• Minden szalaghoz tartozik egy Minden szalaghoz tartozik egy író-olvasó fej, mely író-olvasó fej, mely minden lépésben a szalag egy mezején áll.minden lépésben a szalag egy mezején áll.

• Vezérlőegység, melynek állapotai egy véges Vezérlőegység, melynek állapotai egy véges ΓΓ halmazt alkotnak. Ki van tüntetve egy „START” halmazt alkotnak. Ki van tüntetve egy „START” kezdőállapot és egy „STOP” végállapot. kezdőállapot és egy „STOP” végállapot.

Page 8: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Az Az ideális Turing-gépideális Turing-gép

Page 9: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Turing-gép működéseTuring-gép működése

• Kezdetben a vezérlőegység a START állapotban van, Kezdetben a vezérlőegység a START állapotban van, a fejek pedig a szalagok kezdőmezőjén. a fejek pedig a szalagok kezdőmezőjén.

• Minden lépésben minden fej leolvassa a szalagjá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 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:a saját állapotától függően 3 dolgot csinál:

» » átmegy egy új állapotba (ez lehet a régi is)átmegy egy új állapotba (ez lehet a régi is)

»» utasítást ad a fejeknek, hogy az adott mezőn lévő 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 jelet fölülírják (v. speciálisan azt, hogy ne írják fölül)fölül)

»» minden fejnek utasítást ad, hogy lépjen jobbra v. minden fejnek utasítást ad, hogy lépjen jobbra v. balra egyet, vagy maradjon helybenbalra egyet, vagy maradjon helyben

• A gép megáll, ha a vezérlőegység a STOP állapotba A gép megáll, ha a vezérlőegység a STOP állapotba jut. jut.

Page 10: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A Turing-gép paraméterei A Turing-gép paraméterei

T T = (k,= (k,ΣΣ,,ΓΓ,,φφ,,ψψ,,δδ))

• k ≥ 1k ≥ 1 eg egészész

• ΣΣ és és ΓΓ véges halmazok, véges halmazok, ## є є ΣΣ és START, STOP és START, STOP є є ΓΓ

• φφ: : ΓΓ ×× ΣΣ k k ——> > ΓΓ

• ψψ: : ΓΓ ×× ΣΣ k k ——> > ΣΣ k k

• δδ: : ΓΓ ×× ΣΣ k k ——> {-1,0,1}> {-1,0,1}

Page 11: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Megjegyzések: Megjegyzések:

• ΣΣ a a # jelen k# jelen kívűl általában még legalább 2 jelet ívűl általában még legalább 2 jelet (0,1) tartalmaz, és általában ennyi elegendő is.(0,1) tartalmaz, és általában ennyi elegendő is.

• Gyakran a szalagok csak egy irányban végtelenek, Gyakran a szalagok csak egy irányban végtelenek, és számuk szinte mindig könnyen korlátozható és számuk szinte mindig könnyen korlátozható volna 2-re, és igen sok vonatkozásban 1-re is.volna 2-re, és igen sok vonatkozásban 1-re is.

• Bizonyos szalagokról kiköthető volna, hogy azok Bizonyos szalagokról kiköthető volna, hogy azok csak írhatók vagy csak olvashatók.csak írhatók vagy csak olvashatók.

• Bemeneten általában az induláskor a szalagra írt Bemeneten általában az induláskor a szalagra írt ΣΣ ábécé beli szavakat értjük, míg kimeneten a ábécé beli szavakat értjük, míg kimeneten a végállapotban a szalagon lévő szavakat, vagy az végállapotban a szalagon lévő szavakat, vagy az utolsó szalagon lévő szót.utolsó szalagon lévő szót.

Page 12: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Az univerzális Turing-gép gondolata Az univerzális Turing-gép gondolata

Az eddigiek alapján egy lényeges különbséget Az eddigiek alapján egy lényeges különbséget vehetünk észre a Turing-gépek és a valódi vehetünk észre a Turing-gépek és a valódi programvezérlésű számítógépek között:programvezérlésű számítógépek között:

Minden függvény kiszámításához külön Turing-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 gépet kell konstruálni, míg a számítógépeken elegendő megfelelő programot írni.elegendő megfelelő programot írni.

Megmutatjuk, hogy a Turing-gépet is lehet így Megmutatjuk, hogy a Turing-gépet is lehet így kezelni. Ez vezet az univerzális Turing-gép kezelni. Ez vezet az univerzális Turing-gép fogalmához!fogalmához!

Page 13: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Univerzális Turing-gép Univerzális Turing-gép

Legyen T Legyen T = (k+1,= (k+1,ΣΣ,,ΓΓTT,,φφTT,,ψψTT,,δδTT) ) és S és S = (k,= (k,ΣΣ,,ΓΓSS,,φφSS,,ψψSS,,δδSS))

két Turing-gép. Legyen p egy két Turing-gép. Legyen p egy ΣΣ ábécé beli szó. ábécé beli szó.

Azt mondjuk, hogy Azt mondjuk, hogy T a p programmal szimulálja S-etT a p programmal szimulálja S-et, ha, ha

tetszőleges xtetszőleges x1, 1, xx2, … , 2, … , xxk k szavakra T az (xszavakra T az (x1, 1, xx2, … , 2, … , xxkk, p), p)

bemenete csakkor áll meg véges számú lépésben, ha S azbemenete csakkor áll meg véges számú lépésben, ha S az

(x(x1, 1, xx2, … , 2, … , xxkk) bement) bementrere megáll, és megálláskor T első k megáll, és megálláskor T első k

szalagján rendre ugyanaz áll, mint S szalagjain.szalagján rendre ugyanaz áll, mint S szalagjain.

Page 14: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A A k+1 szalagos T Turing-gép univerzális a k szalagosk+1 szalagos T Turing-gép univerzális a k szalagos

Turing-gépekre nézveTuring-gépekre nézve, ha bármely k szlagos , ha bármely k szlagos ΣΣ fölötti S fölötti S

Turing-géphez létezik olyan p szó (program), mellyel a Turing-géphez létezik olyan p szó (program), mellyel a TT

szimulálja S-et.szimulálja S-et.

Tétel: Tétel: Minden k ≥ 1 számhoz és minden Minden k ≥ 1 számhoz és minden ΣΣ ábécéhez ábécéhez létezik létezik k+1 szalagú univerzális Turing-gép.k+1 szalagú univerzális Turing-gép.

Bizonyitás vázlat: Bizonyitás vázlat: A konstrukció alapgondolata az, A konstrukció alapgondolata az, hogy a hogy a

((k k + 1)-edik+ 1)-edik szalagra a szimuláló S Turing-gép szalagra a szimuláló S Turing-gép működését leíró táblázatot írunk. Az univerzális 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 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. szimulált S gép melyik állapotában van éppen.

Page 15: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A következő tétel azt mutatja, hogy nem lényeges, A következő tétel azt mutatja, hogy nem lényeges, hogyhogy

hány szalagja van egy Turing-gépnek.hány szalagja van egy Turing-gépnek.

Tétel: Tétel: Minden k szalagos S Turing-géphez van olyan 1 Minden k szalagos S Turing-géphez van olyan 1 szalagos Turing-gép, ami S-et helyettesíti a szalagos Turing-gép, ami S-et helyettesíti a következő értelemben: minden következő értelemben: minden ΣΣ ábécé beli ábécé beli

szóra S szóra S csakkor áll meg véges sok lépésben, ha csakkor áll meg véges sok lépésben, ha T megáll T megáll ugyanerre a szóra, és megálláskor S ugyanerre a szóra, és megálláskor S utolsóutolsó szalagjára ugyanaz lesz írva, mint T szalagjára ugyanaz lesz írva, mint T szalagjára. szalagjára. Továbbá, ha S N lépést tesz, akkor T-nek Továbbá, ha S N lépést tesz, akkor T-nek O(NO(N22) ) lépésre van szüksége.lépésre van szüksége.

MegjegyzMegjegyzés: a bemenetet mindig írhatjuk 1 szalagra, Sés: a bemenetet mindig írhatjuk 1 szalagra, S

szalagjai szalagjai csak csak a számítási idő lerövidítésére valóka számítási idő lerövidítésére valók!!

Page 16: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

JelölésekJelölések

Legyen Legyen ΣΣ egy véges ábécé, mely tartalmazza a „ egy véges ábécé, mely tartalmazza a „##” jelet.” jelet.

Turing-gépek bemeneteként olyan szavakat engedünk meg,Turing-gépek bemeneteként olyan szavakat engedünk meg,

melyek ezt a speciális üres mező jelet nem tartalmazzák.melyek ezt a speciális üres mező jelet nem tartalmazzák.

• ΣΣ00 : := = ΣΣ – {#} – {#}

• ΣΣ00* * jelölje ajelölje a ΣΣ00 ffölötti szavak halmazátölötti szavak halmazát

• ΣΣ00* * egy részhalmazát nyelvnek nevezzükegy részhalmazát nyelvnek nevezzük

Page 17: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Rekurzív és rekurzíve fölsorolható Rekurzív és rekurzíve fölsorolható

nyelvek nyelvek

Definíció:Definíció: Egy f : Egy f : ΣΣ00* * ―>―> ΣΣ00

* * függvényt függvényt kiszámíthatónakkiszámíthatónak

vagy vagy rekurzívnakrekurzívnak nevezünk, ha van olyan T Turing-gép, nevezünk, ha van olyan T Turing-gép, ami bármely x ami bármely x єє ΣΣ00

* * bemenettel (vagyis első szalagjára bemenettel (vagyis első szalagjára

x-et írva, a többit üresen hagyva) véges idő után 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. megáll, és az első szalagjára az f(x) szó lesz írva.

Definíció:Definíció: Az L Az L ΣΣ00* * beli nyelvet beli nyelvet rekurzívnak rekurzívnak hívjuk, ha hívjuk, ha

karakterisztikus függvénye:karakterisztikus függvénye:

ffLL(x) (x) = {1, ha = {1, ha x x єє L ; 0, ha L ; 0, ha x x єє ΣΣ00* * - L} - L}

kiszkiszámíthatóámítható, ahol feltett, ahol feltettük, hogy ük, hogy 0,1 0,1 єє ΣΣ00..

Page 18: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Megjegyzések: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: Ha L rekurzív, akkor a komplementere: ΣΣ00* * - L- L is az. is az.

• Mivel kontinuum sok nyelv van, míg a Turing-gépek Mivel kontinuum sok nyelv van, míg a Turing-gépek száma megszámlálható, nyilvánvalóan létezik nem száma megszámlálható, nyilvánvalóan létezik nem rekurzív nyelv isrekurzív nyelv is!!

Definíció:Definíció: Egy L nyelvet Egy L nyelvet rekurzíve fölsorolhatónakrekurzíve fölsorolhatónak nevezünk, ha vagy L nevezünk, ha vagy L = Ø, vagy van olyan = Ø, vagy van olyan kiszkiszámítható ámítható

f : f : ΣΣ00* * ―>―> ΣΣ00

* * függvény, melynek értékkészlete L.függvény, melynek értékkészlete L.

/ / Egy rekurzíve fölsorolható nyelv komplementere márEgy rekurzíve fölsorolható nyelv komplementere már

nnemem feltétlenül rekurzíve fölsorolhatófeltétlenül rekurzíve fölsorolható!! //

Page 19: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A rekurzA rekurzív és rekurzíve fölsorolható ív és rekurzíve fölsorolható

nyelvek közötti kapcsolat nyelvek közötti kapcsolat

Lemma: Lemma: Egy L nyelv Egy L nyelv csakkor rekurzíve fölsorolhatócsakkor rekurzíve fölsorolható, , ha van olyan T Turing-gép, melynek első ha van olyan T Turing-gép, melynek első szalagjára x-et írva, a gép csakkor áll le véges idő szalagjára x-et írva, a gép csakkor áll le véges idő múlva, ha x múlva, ha x єє LL..

Tétel: Tétel: Egy L nyelv Egy L nyelv csakkor rekurzívcsakkor rekurzív, ha mind az L , ha mind az L nyelv, mind a nyelv, mind a ΣΣ00

* * - L- L nyelv rekurzíve fölsorolható. nyelv rekurzíve fölsorolható.

Page 20: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A A megállási problémamegállási probléma

Most megmutatjuk, hogy van rekurzíve fölsorolható, de Most megmutatjuk, hogy van rekurzíve fölsorolható, de nemnem

rekurzív nyelv.rekurzív nyelv.

Legyen T Turing-gép. Álljon Legyen T Turing-gép. Álljon LLTT mindazon x mindazon x єє ΣΣ00** szavakból, szavakból,

melyekre fennáll, hogy T minden szalagjára x-et írva, a melyekre fennáll, hogy T minden szalagjára x-et írva, a gépgép

véges sok lépésben megáll.véges sok lépésben megáll.

Állítás: Állítás: Az LAz LTT nyelv rekurzíve fölsorolható. De, ha T nyelv rekurzíve fölsorolható. De, ha T univerzális Turing-gép, akkor univerzális Turing-gép, akkor LLTT nem rekurzív. nem rekurzív.

Page 21: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Mit is jelent ez? Mit is jelent ez?

Röviden szólva: algoritmikusan nem lehet eldönteni, hogyRöviden szólva: algoritmikusan nem lehet eldönteni, hogy

egy univerzális Turing-gép egy adott bemenettel véges időnegy univerzális Turing-gép egy adott bemenettel véges időn

belül megáll-e Ezt a feladatot hívják belül megáll-e Ezt a feladatot hívják megállási problémánakmegállási problémának. .

Megjegyzés:Megjegyzés: Algoritmikusan kiszámíthatónak azt nevezzük, Algoritmikusan kiszámíthatónak azt nevezzük,

amit Turing-gépen ki lehet számolni. Olyan determinisztikusamit Turing-gépen ki lehet számolni. Olyan determinisztikus

modellt, amely több mindent tudna kiszámolni, mint amodellt, amely több mindent tudna kiszámolni, mint a

Turing-gép, még senki sem talált.Turing-gép, még senki sem talált.

Page 22: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

BizonyításBizonyítás

Az első állítás a Lemmából következik.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éértA második állítás bizonyításához az egyszerűség kedvéért

tegyük fel, hogy T-nek 2 szalagja van.tegyük fel, hogy T-nek 2 szalagja van.

Ha LHa LTT rekurzív volna, akkor rekurzív volna, akkor ΣΣ00* * - - LLTT rekurzíve fölsorolhatórekurzíve fölsorolható

volna, és így megadható volna olyan 1 szalagos Tvolna, és így megadható volna olyan 1 szalagos T11 Turing- Turing-

gép, hogy az x bemeneten csakkor áll le, ha x gép, hogy az x bemeneten csakkor áll le, ha x єє ΣΣ00* * - - LLTT. .

A TA T11 szimulálható T-n úgy, hogy 2. szalagjára egy szimulálható T-n úgy, hogy 2. szalagjára egy alkalmas alkalmas

p „programot” írunk. p „programot” írunk.

Page 23: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Ekkor T mindkét szalagjára p-t írva, csakkor áll le, ha TEkkor T mindkét szalagjára p-t írva, csakkor áll le, ha T11

leáll (a szimuláció miatt).leáll (a szimuláció miatt).

TT1 1 viszont csakkor áll le, ha T nem áll le ezzel a bemenettel,viszont csakkor áll le, ha T nem áll le ezzel a bemenettel,

vagyis ha p nem eleme Lvagyis ha p nem eleme LTT-nek.-nek.

Tehát ellentmondás,Tehát ellentmondás, hiszenhiszen LLTT defindefinííciciója szerint T pontosanója szerint T pontosan

akkor áll le, ha p eleme Lakkor áll le, ha p eleme LTT-nek.-nek.

Q.E.D.Q.E.D.

Page 24: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Algoritmikusan eldönthetetlen Algoritmikusan eldönthetetlen problémák problémák

Példák:Példák:

• Dominó-problémaDominó-probléma

• Hilbert 1Hilbert 100. problémája, avagy a diophantoszi . problémája, avagy a diophantoszi egyenletek megoldhatóságának problémájaegyenletek megoldhatóságának problémája

(egész együtthatós n változós polinomnak van-e (egész együtthatós n változós polinomnak van-e egész számokból álló megoldása?)egész számokból álló megoldása?)

Page 25: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Tár és időTár és idő

• timetimeTT(n)(n) a T Turinga T Turing-géphez tartozó ún. időigény--géphez tartozó ún. időigény-függvény, mely a gép lépésszámának maximumát adja függvény, mely a gép lépésszámának maximumát adja n hosszúságú bemenet esetén. n hosszúságú bemenet esetén.

Általában a gépnek el kell olvasnia a bemenetet,Általában a gépnek el kell olvasnia a bemenetet, ezértezért

timetimeTT(n) ≥ n.(n) ≥ n.

• spacespaceTT(n)(n) a T Turinga T Turing-géphez tartozó ún. tárigény--géphez tartozó ún. tárigény-függvény, mely a gép szalagjain azon különböző 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 mezők maximális számát adja, melyekre a gép ír n hosszúságú bemenet esetén.hosszúságú bemenet esetén.

Nyilván Nyilván spacespaceTT(n) ≥ 1.(n) ≥ 1.

Page 26: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Polinomiális Turing-gépPolinomiális Turing-gép

Azt mondjuk, hogy a Azt mondjuk, hogy a T Turing-gép polinomiális, T Turing-gép polinomiális, ha időigényeha időigénye

O(f) vO(f) vaalamely f polinomra, vagyis van olyan clamely f polinomra, vagyis van olyan c > 0 konstans, > 0 konstans,

hogy Thogy T időigénye O(n időigénye O(ncc).).

Megjegyzés:Megjegyzés: Hasonlóan definiálhatjuk az exponenciális idejű Hasonlóan definiálhatjuk az exponenciális idejű

algoritmusokat (O((2algoritmusokat (O((2nn))cc) időigényű valamely c) időigényű valamely c > 0 > 0 konstans- konstans-

ra), polinomiális tárigényű algoritmusokat (Turing-gépeket)ra), polinomiális tárigényű algoritmusokat (Turing-gépeket)

stb.stb.

Page 27: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Azt mondjuk, hogy a L Azt mondjuk, hogy a L ΣΣ* * beli nyelv időbonyolultságabeli nyelv időbonyolultsága

legfeljebb f(n), ha a nyelv egy legfeljebb f(n) időigényűlegfeljebb f(n), ha a nyelv egy legfeljebb f(n) időigényű

Turing-géppel eldönthető. Turing-géppel eldönthető.

A legfeljebb f(n) időbonyolultságú nyelvek osztályátA legfeljebb f(n) időbonyolultságú nyelvek osztályát

DTIME(f(n))DTIME(f(n))-nel jelöljük. (A -nel jelöljük. (A „D” a determinisztikusra utal,„D” a determinisztikusra utal,

később lesznek véletlent is használó algoritmusok.később lesznek véletlent is használó algoritmusok.))

A polinomiális Turing-géppel eldönthető nyelvek osztályát A polinomiális Turing-géppel eldönthető nyelvek osztályát

PTIMEPTIME-mal vagy egyszerűen -mal vagy egyszerűen PP-vel jelöljük.-vel jelöljük.

Hasonlóan definiálhatók aHasonlóan definiálhatók a DSPACE(f(n)) DSPACE(f(n)) nyelvosztályok és nyelvosztályok és

aa DSPACE DSPACE nyelvosztály. nyelvosztály.

NyelvosztályokNyelvosztályok

Page 28: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Nem-determinizmus alapgondolata Nem-determinizmus alapgondolata

Ha egy algoritmus megold egy problémát, akkor Ha egy algoritmus megold egy problémát, akkor impliciteimplicite

arra is bizonyítékot szolgáltat, hogy a válasza helyes.arra is bizonyítékot szolgáltat, hogy a válasza helyes.

Néha ez a bizonyíték sokkal egyszerűbb (rövidebb,Néha ez a bizonyíték sokkal egyszerűbb (rövidebb,

áttekinthetőbb), mint a bizonyíték megtalálása, azaz azáttekinthetőbb), mint a bizonyíték megtalálása, azaz az

algoritmus futásának figyelemmel kísérése.algoritmus futásának figyelemmel kísérése.

Vizsgálhatjuk csupán a bizonyítékot annélkül, hogyVizsgálhatjuk csupán a bizonyítékot annélkül, hogy

törődnénk vele, hogyan lehet megtalálni. törődnénk vele, hogyan lehet megtalálni.

Page 29: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Ha tudjuk, hogy egy feladatra adott bizonyíték Ha tudjuk, hogy egy feladatra adott bizonyíték helyességehelyessége

sem adható meg adott időn (vagy táron) belül, akkor azsem adható meg adott időn (vagy táron) belül, akkor az

algoritmus bonyolultságára is alsó becslést kapunk.algoritmus bonyolultságára is alsó becslést kapunk.

Aszerint osztályozva a feladatokat, hogy milyen nehéz Aszerint osztályozva a feladatokat, hogy milyen nehéz aa

válaszra a helyességét rábizonyítani, igen érdekes és válaszra a helyességét rábizonyítani, igen érdekes és

AlapvetőAlapvető bonyolultsági osztályokat kapunkbonyolultsági osztályokat kapunk!!

Ez az a gondolat, melyet nemEz az a gondolat, melyet nem--determinizmusnak determinizmusnak

neveznek.neveznek.

Page 30: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Nem-determinisztikus Nem-determinisztikus TuringTuring-gép-gép

Egy nem-determinisztikus Turing-gép annyiban különbözikEgy nem-determinisztikus Turing-gép annyiban különbözik

egy determinisztiustól, hogy minden helyzetében több egy determinisztiustól, hogy minden helyzetében több lehet-lehet-

Séges lépés is megengedett a vezérlőegység állapotának Séges lépés is megengedett a vezérlőegység állapotának ésés

a fejek által leolvasott jelek függvényében.a fejek által leolvasott jelek függvényében.

Legális számolásnakLegális számolásnak nevezzük a gép legális lépéseinek nevezzük a gép legális lépéseinek egyegy

sorozatát.sorozatát.

Page 31: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Nem-determinisztikus Nem-determinisztikus TuringTuring-gép -gép matematiai leírása matematiai leírása

T T = (k,= (k,ΣΣ,,ΓΓ,,φφ,,ψψ,,δδ)) helyett T helyett T = (k,= (k,ΣΣ,,ΓΓ,,ΦΦ), ahol), ahol

φφ: : ΓΓ ×× ΣΣ k k ——> > ΓΓ

ψψ: : ΓΓ ×× ΣΣ k k ——> > ΣΣ k k

δδ: : ΓΓ ×× ΣΣ k k ——> {-1,0,1}> {-1,0,1}

hhelyetelyett t ΦΦ rel relációáció::

1,0,1 kk 1,0,1 kk

Page 32: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

NNTIME(f(n)), NSPACE(f(n))TIME(f(n)), NSPACE(f(n))

Egy Egy nem-determinisztikus Turing-gép nem-determinisztikus Turing-gép t idt időben elfogadja azőben elfogadja az

x x єє ΣΣ00** szót szót, ha első szalagjára x-et írva (a többire az üres, ha első szalagjára x-et írva (a többire az üres

szót), van olyan legális számolás ezzel a bementtel, melyszó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.legfeljebb t lépésben megáll, és megálláskor az 1. szalag 0.

poziciójában „1” áll.poziciójában „1” áll.

Azt mondjuk, hogy a Azt mondjuk, hogy a T nem-determinisztikus Turing-gép föl-T nem-determinisztikus Turing-gép föl-

ismeri az L ismeri az L ΣΣ00** beli nyelvet beli nyelvet , ha L pontosan azokból a sza-, ha L pontosan azokból a sza-

vakból áll, melyeket T elfogad (akármekkora véges időben).vakból áll, melyeket T elfogad (akármekkora véges időben).

Page 33: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Ha ezenfelül a gép minden x Ha ezenfelül a gép minden x єє L szót f( L szót f(|x||x|)) id időben elfogad,őben elfogad,

akkor azt mondjuk, hogyakkor azt mondjuk, hogy a gép L-et f(n) időben ismeri föl. a gép L-et f(n) időben ismeri föl.

Az f(n) időben nem-determinisztikus Turing-géppel fölismer-Az f(n) időben nem-determinisztikus Turing-géppel fölismer-

hető nyelvek osztályát hető nyelvek osztályát NTIME(f(n)) NTIME(f(n)) jelöli.jelöli.

Hasonlóan definiáljuk azt, hogy egy Hasonlóan definiáljuk azt, hogy egy nem-determinisztikusnem-determinisztikus

Turing-gép az L nyelvet s tár föl-használásával fogadja elTuring-gép az L nyelvet s tár föl-használásával fogadja el,,

illetve az illetve az f(n) tárral való fölismerhetőségetf(n) tárral való fölismerhetőséget..

Az f(n) tárral nem-determinisztikus Turing-géppel fölismer-Az f(n) tárral nem-determinisztikus Turing-géppel fölismer-

hető nyelvek osztályát hető nyelvek osztályát NSPACE(f(n)) NSPACE(f(n)) jelöli.jelöli.

Page 34: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Co-NCo-NTIME(f(n)), TIME(f(n)), co-co-NSPACE(f(n))NSPACE(f(n))

A determinisztikus osztályoktól eltérően, egy L nyelv nem-A determinisztikus osztályoktól eltérően, egy L nyelv nem-

determinisztikus fölismerhetősége nem jelenti, hogy a komp-determinisztikus fölismerhetősége nem jelenti, hogy a komp-

lementer nyelv (lementer nyelv (ΣΣ00**- L) is fölismerhető (látni fogjuk, hogy- L) is fölismerhető (látni fogjuk, hogy

erre minden rekurzíve fölsorolható, de nem rekurzív nyelverre minden rekurzíve fölsorolható, de nem rekurzív nyelv

példa). Ezért értelmes bevezetni az alábbi nyelvosztályokat:példa). Ezért értelmes bevezetni az alábbi nyelvosztályokat:

Egy L nyelv akkor és csak akkor tartozik a Egy L nyelv akkor és csak akkor tartozik a co-NTIME(f(n)) co-NTIME(f(n)) ill.ill.

aa co-NSPACE(f(n)) co-NSPACE(f(n)) osztályba, ha a komplementer nyelv, azaz osztályba, ha a komplementer nyelv, azaz

ΣΣ00**- L, az NTIME(f(n)) ill. NSPACE(f(n)) osztályba tartozik.- L, az NTIME(f(n)) ill. NSPACE(f(n)) osztályba tartozik.

Page 35: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

MegjegyzésekMegjegyzések

A nem-determinisztikus Turing-gép egy szituációban többféleA 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öllé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, akkorsemmilyen valószínűségeloszlást. Ha ezt tennénk, akkor

randomizált Turing-gépekrőlrandomizált Turing-gépekről beszélnénk, melyek egyébként beszélnénk, melyek egyébként

fontos gyakorlati jelentőséggel bírnak.fontos gyakorlati jelentőséggel bírnak.

Tétel:Tétel: A nem-determinisztikus Turing-géppel fölismerhető A nem-determinisztikus Turing-géppel fölismerhető

nyelvek pontosan a rekurzíve fölsorolható nyelvek. nyelvek pontosan a rekurzíve fölsorolható nyelvek.

Page 36: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

A tanúA tanú

Megmutatjuk, hogy az L nyelv nem-determinisztikus Turing-Megmutatjuk, hogy az L nyelv nem-determinisztikus Turing-

géppel bizonyos időben való fölismerhetősége azzal függgéppel bizonyos időben való fölismerhetősége azzal függ

össze, hogy mennyire egyszerű össze, hogy mennyire egyszerű „rábizonyítani” egy szóra,„rábizonyítani” egy szóra,

hogy L-ben van.hogy L-ben van.

Azt mondjuk, hogy Azt mondjuk, hogy L-nek f(n) hosszúságú g(n) idejű tanújaL-nek f(n) hosszúságú g(n) idejű tanúja

az Laz L00 єє DTIME(g(n)) nyelv DTIME(g(n)) nyelv, ha x , ha x єє L csakkor, ha van olyan L csakkor, ha van olyan

x x єє ΣΣ00** szó, hogy szó, hogy |y| ≤ f|y| ≤ f((|x||x|)) és xés x&&yy єє LL00 ( (ahol ahol „„&&” ” egy egy új jel,új jel,

ami az x és y szavak elválasztására szolgál). ami az x és y szavak elválasztására szolgál).

Page 37: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

NP, co-NPNP, co-NP

Tétel:Tétel: Tetszőleges L Tetszőleges L ΣΣ00** beli nyelvre az alábbi beli nyelvre az alábbi

tulajdonságok tulajdonságok ekvivalensek:ekvivalensek:

•L fölismerhető nem-determinisztikus Turing-gépen L fölismerhető nem-determinisztikus Turing-gépen polinomiális időben.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 A kimondott tulajdonsággal rendelkező nyelvek osztályát NPNP--

vel jelöljük. Azon nyelvek, melyekre vel jelöljük. Azon nyelvek, melyekre ΣΣ00**- L - L єє NP, alkotják a NP, alkotják a

co-NP co-NP osztályt.osztályt.

Page 38: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

MegjegyzésekMegjegyzések

Pontos megfogalmazás nélkül megemlítjük, hogy Pontos megfogalmazás nélkül megemlítjük, hogy L L єє NP NP ek-ek-

vivalens azzal is, hogy az L nyelvnek adható a vivalens azzal is, hogy az L nyelvnek adható a halmazelmélethalmazelmélet

axiómarendszerében olyan definíciója, hogy minden x axiómarendszerében olyan definíciója, hogy minden x єє L L

szóra az az állítás, hogy „ x szóra az az állítás, hogy „ x єє L” bebizonyítható a L” bebizonyítható a halmazel-halmazel-

mélet axiómáiból mélet axiómáiból |x|-ben polinomi|x|-ben polinomiáális llis lééppéésben.sben.

Savitch tétele:Savitch tétele: PSPACE PSPACE==NPSPACE. NPSPACE.

Page 39: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Példák NP-beli nyelvekrePéldák NP-beli nyelvekre

Számos fontos nyelv a tanújával van megadva:Számos fontos nyelv a tanújával van megadva:

• Gráf összefüggősége.Gráf összefüggősége. Tanú: n(n-1) Tanú: n(n-1)/2/2 út, minden út, minden pontpárra egy-egy.pontpárra egy-egy.

• Összetettség.Összetettség. Tanú: valódi osztó. Tanú: valódi osztó.

• Hamilton-kör létezése.Hamilton-kör létezése. Tanú: a Hamilton-kör. Tanú: a Hamilton-kör.

• Síkba nem rajzolhatóság.Síkba nem rajzolhatóság. Tanú: teljes ötszög v. Tanú: teljes ötszög v. három-három-

ház-három-kút részgráf (Kuratowski-tétele alapján).ház-három-kút részgráf (Kuratowski-tétele alapján).

• Stb.Stb.

Page 40: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

PolinomiPolinomiális visszavezethetőségális visszavezethetőség

Azt mondjuk, hogy az Azt mondjuk, hogy az LL1 1 ΣΣ11** beli nyelv polinomiálisan vissza-beli nyelv polinomiálisan vissza-

vezethető az Lvezethető az L2 2 ΣΣ22** beli nyelvrebeli nyelvre, ha van olyan polinomiális, ha van olyan polinomiális

időben kiszámítható f : időben kiszámítható f : ΣΣ11** ——> > ΣΣ22

** függvény, hogy mindenfüggvény, hogy minden

xx єє ΣΣ11** szóra szóra xx єє LL1 1 ekvivalensekvivalens f(x)f(x) єє LL22 –vel.–vel.

A definíció alapján a polinomiálisan visszavezethetőség A definíció alapján a polinomiálisan visszavezethetőség tran-tran-

zitívzitív tulajdonság. tulajdonság.

Állítás:Állítás: Ha egy nyelv P-ben van, akkor minden rá polinomiáli- Ha egy nyelv P-ben van, akkor minden rá polinomiáli-

san visszavezethető nyelv is P-ben van. Hasonlóan NP-re. san visszavezethető nyelv is P-ben van. Hasonlóan NP-re.

Page 41: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

NNPP-teljesség-teljesség

Definíció:Definíció: Egy NP-beli L nyelvet NP-teljesnek nevezünk, ha Egy NP-beli L nyelvet NP-teljesnek nevezünk, ha

minden NP-beli nyelv polinomiálisan visszavezethető L-re.minden NP-beli nyelv polinomiálisan visszavezethető L-re.

Megjegyzés:Megjegyzés: Az NP-teljes nyelvek tehát a „legnehezebb” Az NP-teljes nyelvek tehát a „legnehezebb” NP-NP-

beli nyelvek. Ha meg tudnánk mutatni egy NP-teljes nyelv-beli nyelvek. Ha meg tudnánk mutatni egy NP-teljes nyelv-

ről, hogy P-ben van, akkor abból következne, hogy Pről, hogy P-ben van, akkor abból következne, hogy P==NP.NP.

Észrevétel:Észrevétel: Ha egy NP-teljes Ha egy NP-teljes LL11 nyelv polinomiálisan vissza- nyelv polinomiálisan vissza-

vezethető egy vezethető egy LL22 nyelvre, akkor nyelvre, akkor LL22 is NP-teljes. is NP-teljes.

Page 42: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Példák NP-teljes problémákraPéldák NP-teljes problémákra

• Lefogási feladat:Lefogási feladat: Adott egy véges S halmaz részhalmaza- Adott egy véges S halmaz részhalmaza-

inak egy inak egy {{AA11, …,, …, AAmm} rendszere } rendszere és egy k természetes és egy k természetes szám. Van-e olyan legfeljebb k elemű halmaz, mely min-szám. Van-e olyan legfeljebb k elemű halmaz, mely min-

den den AAi i -t metsz?-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: Részletösszeg probléma: Adottak az Adottak az aa11, …,, …, aamm és b termé-és b termé-szetes számok. Van-e az szetes számok. Van-e az {{aa11, …,, …, aamm} halmaznak olyan } halmaznak olyan rréészhalmaza, melynek szhalmaza, melynek összege b?összege b?

Page 43: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Kategorizálatlan NP-beli problémákKategorizálatlan NP-beli problémák

Tapasztalati tény, hogy a legtöbb NP-beli problémáról vagyTapasztalati 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-az derül ki, hogy NP-teljes, vagy az, hogy P-beli. Nem sike-

rült eddig besorolni az alábbiakat:rült eddig besorolni az alábbiakat:

• Adott természetes szám prím-e? (Adott természetes szám prím-e? (P?, Riemann-sejtés)P?, Riemann-sejtés)

• Adott n természetes számnak van-e k-nál nem nagyobb Adott n természetes számnak van-e k-nál nem nagyobb osztója? (osztója? (várhatóan se nem P se nem NP-teljesvárhatóan se nem P se nem NP-teljes))

• Két adott gráf izomorf-e? (Két adott gráf izomorf-e? (várhatóan se nem P se nem várhatóan se nem P se nem NP-teljesNP-teljes))

Page 44: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Millió dolláros Millió dolláros megoldatlan megoldatlan problémproblémaa

A A PP ≠ NP ≠ NP sejtés az első helyen szere sejtés az első helyen szereppelel

a Clay Mathematics Institute (CMI) 7 dba Clay Mathematics Institute (CMI) 7 db

egymillió dolláros problémája között.egymillió dolláros problémája között.

$1.000.000

Page 45: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Információs bonyolultság dióhéjbanInformációs bonyolultság dióhéjban

Alapprobléma:Alapprobléma: eldönteni egy 0-1 sorozatról, hogy véletlen-e. eldönteni egy 0-1 sorozatról, hogy véletlen-e.

Durván szólva, akkor akarunk egy sorozatot véletlennek te-Durván szólva, akkor akarunk egy sorozatot véletlennek te-

kinteni, ha nincs benne „szabályosság”. Itt a szabályosságotkinteni, ha nincs benne „szabályosság”. Itt a szabályosságot

azzal fogjuk meg, hogy az a sorozat gazdaságosabb kódolá-azzal fogjuk meg, hogy az a sorozat gazdaságosabb kódolá-

sára adna lehetőséget, azaz a sorozat bonyolultsága kicsisára adna lehetőséget, azaz a sorozat bonyolultsága kicsi

volna. Ehhez definiálnunk kell az ún. volna. Ehhez definiálnunk kell az ún. információs bonyolult-információs bonyolult-

ságotságot. .

Page 46: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

AA bonyolultság d bonyolultság definefiníciójának íciójának alapgondolataalapgondolata

Egy Egy xx єє ΣΣ00** szó szó bonyolultságánbonyolultságán a legrövidebb olyan szó a legrövidebb olyan szó

(program) hosszát fogjuk érteni, mely egy (program) hosszát fogjuk érteni, mely egy ΣΣ00** fölötti Tfölötti T

univerzális Turing-gépen az x szót nyomtatja ki (azaz a 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állprogramot T-n futtatva, az véges sok lépésben megáll

úgy, hogy az első szalagján az x szó áll).úgy, hogy az első szalagján az x szó áll).

Megjegyzés:Megjegyzés: Minden x szó kinyomtatható egy univerzális Minden x szó kinyomtatható egy univerzális

Turing-gépen. És néhány egyszerű feltevést téve a gép-Turing-gépen. És néhány egyszerű feltevést téve a gép-

re (hogy ne legyen direkt „ügyetlen” ), kiderül, hogy are (hogy ne legyen direkt „ügyetlen” ), kiderül, hogy a

bonyolultság géptől független lesz.bonyolultság géptől független lesz.

Page 47: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Kommunikációs bonyolultságKommunikációs bonyolultság(bevezető péld(bevezető példa a randomiza a randomizált ált kommunikáció köréből)kommunikáció köréből)

Legyen egy űrhajónk, melynek van egy 10Legyen egy űrhajónk, melynek van egy 102020 bites programja. bites programja.

A programot néha ellenőrizni kell, mert pl. a kozmikus sugár-A programot néha ellenőrizni kell, mert pl. a kozmikus sugár-

zás kárt tehet benne. A 10zás kárt tehet benne. A 102020 bit elküldése sok idő és energia. bit elküldése sok idő és energia.

Mit érdemes csinálni? Mit érdemes csinálni?

Page 48: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Első gondolat: Első gondolat: Prímtényezőkre bontás.Prímtényezőkre bontás.

Sajnos nem nyerhetünk. 10Sajnos nem nyerhetünk. 102020 bitnél olcsóbban nem bitnél olcsóbban nem úszhatóúszható

meg a teljes információ visszaküldésemeg a teljes információ visszaküldése!! Sőt a Sőt a prímtényezőkreprímtényezőkre

való bontás nehéz és a tényezőket el is kell választani.való bontás nehéz és a tényezőket el is kell választani.

Valamiben engednValamiben engednüünk kell! Legyen ez a biztonsnk kell! Legyen ez a biztonsáág.g.

Pl. 99Pl. 99%%-os biztonságot szeretnénk.-os biztonságot szeretnénk.

Ha véletlenszerűen választott jegyeket küldünk vissza, Ha véletlenszerűen választott jegyeket küldünk vissza, akkorakkor

jegyenként csak 1jegyenként csak 1/ / 10102020 a vala valószínűsége annak, hogy hibásószínűsége annak, hogy hibás

jegyre akadunk. Ezt jegyre akadunk. Ezt ssem érdemesem érdemes!!

Page 49: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

JJó módszer: ó módszer: Ún. randomizált algoritmus.Ún. randomizált algoritmus.

X az X az űrhajó programjaűrhajó programja

Y a Földön biztonságban tárolt kódY a Földön biztonságban tárolt kód

p p :=:= RANDOM RANDOM PRPRííMM єє ]2,N[]2,N[

XX1 1 ::= X mod p= X mod p

YY11 ::= Y mod p= Y mod p

• Ha Ha XX1 1 ≠ Y≠ Y11, akkor a program rossz!, akkor a program rossz!

• Ha Ha XX1 1 = Y= Y11, akkor q val, akkor q valószínűséggel rossz a program, ószínűséggel rossz a program, le-le-

hetséges ugyanis, hogy phetséges ugyanis, hogy p|||X-Y|.|X-Y|.

Page 50: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

//aaholhol ΠΠ(N)(N) az N-n az N-nél nem nagyobb prímek számaél nem nagyobb prímek száma//

Mekkora legyen N, hogy q kisebb legyen 0.01?Mekkora legyen N, hogy q kisebb legyen 0.01?

• Legyen Legyen |X-Y| = p|X-Y| = p11ββ11·p·p22

ββ22·… p·… pkkββkk. .

• Legrosszabb esetben minden pLegrosszabb esetben minden pi i == 22 és és ββi i = 1. = 1.

• Ekkor 2^(Ekkor 2^(10102020) ≥ |X-Y| ≥ 2) ≥ |X-Y| ≥ 2kk..

• TTeheháátt k ≤ k ≤ 10102020..

• q q = k / = k / ΠΠ(N)(N) ≤ 0.01, ≤ 0.01, azaz k ≤ 0.01 azaz k ≤ 0.01 ΠΠ(N). (N).

• Tehát elegendő volna, hogy Tehát elegendő volna, hogy 10102020 ≤ 0.01 ≤ 0.01 ΠΠ(N).(N).

• Vagyis Vagyis 10102222 ≤ ≤ ΠΠ(N).(N).

q = |X-Y| prq = |X-Y| prímosztóinak a száma ímosztóinak a száma / / ΠΠ(N) :(N) := k / = k / ΠΠ(N)(N)q = |X-Y| prq = |X-Y| prímosztóinak a száma ímosztóinak a száma / / ΠΠ(N) :(N) := k / = k / ΠΠ(N)(N)

Page 51: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Prímszámtétel szerint: Prímszámtétel szerint: ΠΠ(N) ≈ N(N) ≈ N / ln(N) / ln(N)..

Tehát Tehát 10102222 ln(N) ≤ N. ln(N) ≤ N.

Amiből N kb. 24 jegyű, ami Amiből N kb. 24 jegyű, ami 80 bitnek80 bitnek felel meg felel meg! !

(A (A 10102200 helyett!) helyett!)

Ha a biztonsHa a biztonságot 99.99%-ra növeljük, akkor ágot 99.99%-ra növeljük, akkor

10102424 ln(N) ≤ N adódik, s csak néhány bittel kell több 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 Sőt, számelméleti eredményeket felhasználva q-ra sokkalsokkal

jobb becslés adható. Kiderül, hogy az átküldendő bitekjobb becslés adható. Kiderül, hogy az átküldendő bitek

száma száma 22··log(n)log(n)+konstans+konstans (n= (n= 10102200).).

Page 52: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

AA protokollprotokoll

Ami az algoritmikus bonyolultsAmi az algoritmikus bonyolultság esetén az algoritmus, ág esetén az algoritmus, az a az a

kommunikációs bonyolultság esetén a kommunikációs bonyolultság esetén a protokollprotokoll..

Protokoll:Protokoll: Minden „játékos” számára elő van írva, hogy a 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é-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 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 mit és kinek kell üzennie. A protokollt minden játékos ismeri, tehát tudják az üzenetek „jelentését” (milyen ismeri, tehát tudják az üzenetek „jelentését” (milyen bemenetek esetén üzenhette ezt a másik).bemenetek esetén üzenhette ezt a másik).

Page 53: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Triviális protokoll:Triviális protokoll: Az egyik fél elküldi az általa Az egyik fél elküldi az általa ismert bemenetet a másiknak, aki kiszámolja a ismert bemenetet a másiknak, aki kiszámolja a kívánt eredményt, majd visszaüzeni.kívánt eredményt, majd visszaüzeni.

Kommunikációs mátrix:Kommunikációs mátrix:

Legyenek a felek lehetsLegyenek a felek lehetségeége bemenetei: bemenetei:

aa11… … aann és és bb11… … bbmm

A A kiszámítandó érték az kiszámítandó érték az aaii és és bbjj bemenetekre bemenetekre: : ccijij

A cA cijij-k alkotta n×m-es -k alkotta n×m-es (ezentúl C) (ezentúl C) mmátrixot átrixot nevenevezzük a feladatzzük a feladat k kommunikációs mátrixának. A ommunikációs mátrixának. A mátrix teljesen leírja a feladatot, és mindkét fél mátrix teljesen leírja a feladatot, és mindkét fél ismeri a teljes mátrixot. ismeri a teljes mátrixot.

Page 54: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Triviális protokoll Triviális protokoll a kommunikációs mátrixra nézvea kommunikációs mátrixra nézve

AAz egyik fél ismeri a C mátrix egyik sorának i indexét.z 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 A másik fél ismeri a C mátrix egyik oszlopának j indexét.indexét.

Feladat:Feladat: a a ccijij elem elem meghatározásameghatározása

Triviális protokoll:Triviális protokoll: egyikük egyikük [[loglog n] ill. [log m] bitben n] ill. [log m] bitben elelkküldi az ő általa ismert indexet.üldi az ő általa ismert indexet.

Page 55: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Általános protokoll Általános protokoll a kommunikációs mátrixra nézvea kommunikációs mátrixra nézve

Ha az egyik fél üzen Ha az egyik fél üzen egy egy єє bitet, az arra vonatkozóan fog bitet, az arra vonatkozóan fog

iinformációt hordozni, hogy mi az ő indexe.nformációt hordozni, hogy mi az ő indexe.

C sorait (v. oszlopait) C sorait (v. oszlopait) kétkét oszt osztályba lehet sorolni aszerint,ályba lehet sorolni aszerint,

hhogy ogy єє = 0 vagy 1. = 0 vagy 1.

A C mA C mátrix tehát két almátrixra: Cátrix tehát két almátrixra: C0 0 ééss CC11 bomlik. bomlik. EztEzt a a ffölöl--

bontást a protokoll határozza meg, tehát mindkét fél bontást a protokoll határozza meg, tehát mindkét fél ismeri.ismeri.

AAz üzenő bit azt kódolja, hogy melyik almátrixban van azz üzenő bit azt kódolja, hogy melyik almátrixban van az

üzenő sora (v. oszlopa), tehát a probléma ettől kezdveüzenő sora (v. oszlopa), tehát a probléma ettől kezdve

leszűkül, valamelyik almátrixra.leszűkül, valamelyik almátrixra.

Page 56: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

GuillotineGuillotine--fölbontásfölbontás

Továbbmenve látjuk, hogy a protokoll aTovábbmenve látjuk, hogy a protokoll a

C mátrix egyre kisebb részmátrixora valóC mátrix egyre kisebb részmátrixora való

bontásának felel meg.bontásának felel meg.

Minden lépésben az aktuális részmátrixotMinden lépésben az aktuális részmátrixot

két kisebb részmátrixra bontunk egykét kisebb részmátrixra bontunk egy

vízszintes vagy egy függőleges vízszintes vagy egy függőleges hasítással. hasítással.

Page 57: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

MegjegyzésMegjegyzés

• A mátrix sorait és oszlopai tetszés szerint A mátrix sorait és oszlopai tetszés szerint oszthatjuk két részre, tehát annak, hogy eredetileg oszthatjuk két részre, tehát annak, hogy eredetileg milyen sorrendben vannak, semmi szerepe nincsenmilyen sorrendben vannak, semmi szerepe nincsen

• A k. A k. üzenet nem kell minden esetben ugyanazt üzenet nem kell minden esetben ugyanazt jelentse ajelentse az z éppen soros részmátrix felbontásra éppen soros részmátrix felbontásra nézve, azaz nem kell ugyanúgy kettéossza a nézve, azaz nem kell ugyanúgy kettéossza a sorokat (ill. oszlopokat), sőt az is lehet, hogy a sorokat (ill. oszlopokat), sőt az is lehet, hogy a ,,0’’ ,,0’’ üzenet azt jelenti, hogy ,,mondok még valamitüzenet azt jelenti, hogy ,,mondok még valamit’’’’, az , az ,,1’’ ,,1’’ üzenet pedig azt, hogy üzenet pedig azt, hogy ,,te j,,te jösszössz’’’’, tehát az , tehát az egyik esetben a sorokat míg a másik esetben az egyik esetben a sorokat míg a másik esetben az oszlopokat fogjuk felbontani. oszlopokat fogjuk felbontani.

Page 58: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Mikor áll meg a protokoll?Mikor áll meg a protokoll?

Ha a lehetőségek leszűkűltek egy CHa a lehetőségek leszűkűltek egy C’ al’ almátrixra, mindkettenmátrixra, mindketten

tudják, hogy a másik oszlopa ill. sora ehhez atudják, hogy a másik oszlopa ill. sora ehhez a C’-h C’-höz öz tartozik.tartozik.

Az eredmény tehát, akkor egyértelmű mindkettőjüknek, ha Az eredmény tehát, akkor egyértelmű mindkettőjüknek, ha aa

CC’ minden eleme egyforma: 1 vagy 0.’ minden eleme egyforma: 1 vagy 0.

A feladat tehA feladat tehát kombinatorikai jellegű:át kombinatorikai jellegű:

Hány lépésben tudunk egy adott Hány lépésben tudunk egy adott 0-10-1 mátrixot csupa mátrixot csupa-0 -0 ésés

csupacsupa-1-1 mátrixokra felhasogatni? mátrixokra felhasogatni?

Page 59: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

PProtokollrotokoll-fa-fa

C

C0

0110100...

C1

0 1

0 1 0 1

0 0 0 0 0 0 0 0 0

1 11 1

01 1 1 0 1 0 00 1 1 0 10 00 0

Page 60: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

KommunikKommunikációs bonyolultságációs bonyolultság

A protokoll A protokoll ididőigényeőigénye a protokoll a protokoll-fa -fa mélysége.mélysége.

A feladat (a C mátrix) A feladat (a C mátrix) kommunikációs bonyolultságakommunikációs bonyolultsága

az összes őt megoldó protokollok lehető legkisebb az összes őt megoldó protokollok lehető legkisebb időigénye.időigénye.

Jele: Jele: κκ(C)(C)

Lemma:Lemma: κκ(C) ≥ 1 (C) ≥ 1 + log rk(C)+ log rk(C) , ahol rk(C) a C m, ahol rk(C) a C mátrix átrix rangja.rangja.

Page 61: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

PéldaPélda

Feladat: Feladat: Adél is, és Béla is ismer egyAdél is, és Béla is ismer egy--egy n hosszúságú egy n hosszúságú 0-10-1

sorozatot. Azt akarják eldönteni, hogy a két sorozatsorozatot. Azt akarják eldönteni, hogy a két sorozat

egyenlőegyenlő-e.-e.

MegoldMegoldás:ás: A feladathoz tartozó kommunikációs mátrix A feladathoz tartozó kommunikációs mátrix

nyilván a (2nyilván a (2nn××22nn))-s-szzereseres egységmátrix. Mivel egységmátrix. Mivel

ennek a rangja 2ennek a rangja 2nn, ezért erre a feladatra nincsen, ezért erre a feladatra nincsen

a triviális (na triviális (n+1+1) bitet használó protokollnál jobb) bitet használó protokollnál jobb

protokoll.protokoll.

Page 62: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

NemNem-determinisztikus kommunik-determinisztikus kommunikáácicióó

Ahogyan az algoritmusoknál, a protokolloknál is fontosAhogyan az algoritmusoknál, a protokolloknál is fontos

szerepet játszik a nemszerepet játszik a nem-determinisz-determinisztikus változat.tikus változat.

Ezt a tanú fogalmával analóg módon egy Ezt a tanú fogalmával analóg módon egy ,,s,,szuperlény zuperlény

kinyilatkoztatásakinyilatkoztatása’’’’ segítségével definiáljuk. segítségével definiáljuk.

Gondoljuk el, hogy a felek minden olyan bemenetére, melyreGondoljuk el, hogy a felek minden olyan bemenetére, melyre

a válasz a válasz 11, egy ,,, egy ,,sszuperlényzuperlény’’’’ kinyilatkoztathat egy rövid kinyilatkoztathat egy rövid

0-10-1 sorozatot (bizonyíték), mely meggyőzi mindkét felet 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.

Page 63: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

PéldaPélda

Feladat: Feladat: A felek egyA felek egy--egy konvex sokszöget ismernek a egy konvex sokszöget ismernek a síkon,síkon,

és azt szeretnék eldönteni, hogy vanés azt szeretnék eldönteni, hogy van--e a két soke a két sok--

szögnek közös pontja.szögnek közös pontja.

A ,,szuperlA ,,szuperlényény’’’’ segítsége lehet ebben az esetben: segítsége lehet ebben az esetben:

• egy közös pont kinyilatkoztatása, ha a sokszögek nem egy közös pont kinyilatkoztatása, ha a sokszögek nem diszjunktakdiszjunktak

• egy olyan egyenes kinyilatkoztatása, mely elválasztja a egy olyan egyenes kinyilatkoztatása, mely elválasztja a sokszögeket, abban az esetben, ha a sokszögek sokszögeket, abban az esetben, ha a sokszögek diszjunktakdiszjunktak

Page 64: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

NemNem-determinisztikus-determinisztikuskommunikkommunikációs bonyolultságációs bonyolultság

Egy nemEgy nem-determinisztikus protokoll-determinisztikus protokoll tehát bizonyos tehát bizonyos lehetlehet--

séges xséges x11, x, x22 … … , x, xnn єє {0,1}{0,1}** ,,kin ,,kinyilatkoztatásokbólyilatkoztatásokból’’ ’’ áll,áll,

mmelyekelyek mindegyike elfogadható a felek számára bizonyosmindegyike elfogadható a felek számára bizonyos

llehetségesehetséges bemenetek esetén.bemenetek esetén.

Egy bemenetEgy bemenet-p-párhoz csakkor van xárhoz csakkor van xii, mely mindkettőjük, mely mindkettőjük

számára elfogadható, ha a bemenetszámára elfogadható, ha a bemenet-p-párra a válasz 1.árra a válasz 1.

A leghosszabb xA leghosszabb xii hossza a hossza a protokoll bonyolultságaprotokoll bonyolultsága. .

Végül a C mátrix Végül a C mátrix nemnem-determinis-determinisztikus kommunikációsztikus kommunikációs

bonyolultságabonyolultsága a rá alkalmazható nem a rá alkalmazható nem-determinis-determinisztikusztikus

protokollok minimális bonyolultsága. Jele: protokollok minimális bonyolultsága. Jele: κκNDND(C).(C).

Page 65: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

PPkommkomm, NP, NPkommkomm, co-NP, co-NPkommkomm

Az egysAz egyszerűség kedvéért tekintsünk négyzetes zerűség kedvéért tekintsünk négyzetes mátrixokat.mátrixokat.

• C C єє PPkommkomm, ha , ha κκ(C) log(log n) egy polinomjánál nem na(C) log(log n) egy polinomjánál nem na--

gyobb, ahol n a mátrix sorainak száma (tehát a bonyogyobb, ahol n a mátrix sorainak száma (tehát a bonyo--

lultság a triviális (1lultság a triviális (1+log n+log n))–n–nél lényegesen kisebb)él lényegesen kisebb)

• C C єє PPkommkomm, ha , ha κκNDND(C) log(log n) egy polinomjánál nem(C) log(log n) egy polinomjánál nem

nagyobbnagyobb

• C C єє co-NPco-NPkommkomm, ha , ha κκ(C(C’’) log(log n) egy polinomjánál ) log(log n) egy polinomjánál nem nagyobbnem nagyobb, ahol C’-t C-b, ahol C’-t C-ből ől 0-1 cser0-1 cserével kapjukével kapjuk

Page 66: Algoritmusok bonyolults ága és  kommunikációs bonyolultság Gáspár Merse Előd fizika szeminárium

Felhasznát irodalomFelhasznát irodalom

• Lovász László: Algoritmusok bonyolultsága Lovász László: Algoritmusok bonyolultsága

(egyetemi jegyzet(egyetemi jegyzet)) letölthető: letölthető:

www.cs.elte.hu/~gromusz/www.cs.elte.hu/~gromusz/bboard/bony2-2.htmlbboard/bony2-2.html

• GGács Péter – Lovász László: Algoritmusokács Péter – Lovász László: Algoritmusok

• Rónyai Lajos, Ivanyos Gábor, Szabó Réka: Rónyai Lajos, Ivanyos Gábor, Szabó Réka: AlgoritmusokAlgoritmusok

• 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)(Számítógépek, gondolkodás és a fizika törvényei)