Kombinatorikus számítási modellek MSc hallgatók számára 4. Hét Előadó: Hajnal Péter 2012. Március 8. 1. Kommunikációs bonyolultság Az alábbiakban f(x 1, x 2,...,x n, y 1, y 2,...,y n ) alakú Boole-függvényekkel foglalkozunk. Az ilyen alakú függvények egy kicsit több információt hordoznak mint egy közönséges Boole-függvény: a változói két kategóriába vannak sorolva. Ekkor az {0, 1} 2n értelmezési tartomány, az input kettéosztásának megfelelően direktszorzatként írható fel: {0, 1} n {0, 1} n. Egy f : {0, 1} n {0, 1} n {0, 1} függvény egy M f mátrixszal írható le: Definíció. M f sorai az x változók értékadásainak (2 n darab), M f oszlopai az y változók értékadásainak (2 n darab) felelnek meg. Egy sor és egy oszlop metszetében szereplő pozíció így azonosítja f változóinak egy teljes értékadását. Ehhez a pozícióhoz tartozó mátrixelem a függvény értéke a pozíció által leírt értékadás mellett. Számítási modellünkben két résztvevő van, A és B. Mindkettő tisztában van az f függvénnyel (ismeri az M f mátrixot) és egy ismeretlen értékadásról (az M f mátrix egy ismeretlen pozíciójáról) részleges információja van: A ismeri az x-ek értékadását (az ismeretlen pozíció sorát), míg B ismeri az y-ok értékadását (az ismeretlen pozíció oszlopát). A és B szeretné kiszámolni a függvény értékét az ismeretlen helyen (azaz meghatározni az M f mátrix elemét az ismeretlen pozícióban, ami nem ugyanaz, mint a pozíció meghatározása). Céljuk eléréséhez üzeneteket váltanak. Az üzenetek cseréjét elemi lépésekre bontjuk. Minden elemi lépés egy bit információ (azaz vagy egy 0 vagy egy 1 jel) küldése vagy A-tól B-hez, vagy fordítva, B-től A-hoz. A számítási eljárás leírásának tisztázni kell, hogy mikor ki következik jel küldésével, illetve mikor ér véget az eljárás. Megjegyzés. Amennyiben feladatunkban több résztvevő szerepel a számítási eljárást, az algoritmust protokollnak nevezzük. Azaz a protokoll csak egy algoritmus. Az elnevezés azt az információt is hordozza, hogy az algoritmus több résztvevő között szabja meg az elvégezendő lépések miben létét. A több résztvevős eljárások igen gyakoriak az életben. Egy idegen ország képviselőinek a vendéglátókkal való találkozóját, egy kártyával pénzt felvenni szándékozó ember és a pénzautomata közti ügymenetet protokollokkal szabályozzák. Most formalizáljuk, hogy ez a tisztázás hogyan történik. Ehhez először definiáljuk a kommunikáció történetét. Ez egy véges sorozat, amely leírja milyen információváltások történtek eddig. Egy példa a kommunikáció történetére: 0, 0, 1, 1, 1, 0, 1, 0, 1, 0. Ez a történet az eljárás során egyre bővül, hosszabb lesz. Hogy minden pillanatban tisztázott az információküldés iránya, azt egy függvénnyel írhatjuk le, amely a lehetséges kommunikációs történetek T halmazán értelmezett ι : T {A B, A B, 0, 1 } függvény. Reméljük, hogy a 4-1
függvény jelentése világos: Ha egy t történethez A B-t rendel, akkor a t által leírt információcsere után B következik egy üzenet küldésével. Ha egy t történethez 1 -t rendel, akkor a t információcsere után az eljárás leáll, az eljárás végeredménye (a kiszámolt érték) az 1 bit. Továbbá egy függvény megmondja, hogy információküldés esetén mi legyen a küldött bit: β : T {0, 1} n {0, 1}. A függvény jelentése remélhetőleg ismét világos. Mi ezt néhány példával világítjuk meg: Ha ι(t) = A B, akkor t bekövetkezése után A elküldi a β(t, ǫ 1,...,ǫ n ) bitet B-nek, ahol (ǫ 1,...,ǫ n ) az x-ek (A számára ismert) értékadása. Ha ι(t) = A B, akkor t bekövetkezése után B elküldi a β(t, ǫ 1,...,ǫ n ) bitet A-nak, ahol (ǫ 1,..., ǫ n ) az y-ok (B számára ismert) értékadása. Megjegyzés. A kiszámolt érték csak a kommunikáció függvénye, így mindkét résztvevő számára ismert. Mi nem foglalkozunk olyan modellel, amely a számítást befejezettnek tekintheti akkor is, ha csak az egyik résztvevő ismeri a keresett értéket. Az input egy teljes értékadása esetén a fenti függvények leírnak egy kommunikációs sorozatot. Ha ez a sorozat minden értékadásra leáll, akkor azt mondjuk, hogy a számítási eljárás kiszámította azt a Boole-függvényt, amely az értékadáshoz a számítási eljárás végén bejelentett értéket rendeli. Természetes feladatunk az inverz probléma is: adott f Boole-függvényhez keressünk olyan eljárást, amely kiszámítja f-et. Hogyan mérjük az eljárás bonyolultságát? Mint a modell neve már sugallja a kommunikáció mennyiségét számlázzuk csak. Pontosan fogalmazva egy adott értékadás esetén az eljárás futásának költsége az elemi lépések, azaz az elküldött bitek száma. Az A eljárás kommunikációs bonyolultsága, C k (A) a futások költségeinek maximuma, ahol a maximumot az összes {0, 1} n {0, 1} n -beli inputra vesszük. Definíció. Egy f : {0, 1} n {0, 1} n {0, 1} Boole-függvény kommunikációs bonyolultsága C k (f) = max{c k (A) : A kiszámolja f-et}. Minden f függvény esetén az alábbi protokoll helyes eljárás f kiszámítására: A kommunikáció első n lépésében mindig A küld üzenetet: sorra elküldi az általa ismert értékadásokat az x változókhoz. Ennek a végén B tudja a teljes inputot, így minden kommunikáció nélkül képes kiszámolni az f függvény értékét (kikeresni az M f mátrix, az általa ismert oszlopában álló, az üzenet által azonosított elemét). Az n + 1-edik lépésben B küld üzenetet A-nak, az így megtalált egy bitet. Ezek után az eljárás leáll. Ez a triviális protokoll n + 1 költségű. 1. Lemma. Tetszőleges f : {0, 1} n {0, 1} n {0, 1} függvény esetén 0 C k (F) n + 1. A 0 alsó becslés nyilvánvaló, de a konstans függvény esetén ez a bonyolultság fel is lép. A és B minden kommunikáció (sőt mi több, az input saját maguk számára elérhető részének vizsgálata) nélkül tudja a függvény értékét. A fenti definíciót szemléletesebbé tesszük, ha az eljárást egy gyökeres bináris fával szemléltetjük. Akár a döntési fánál, a fa gyökere a kiinduló lépésnek van szentelve. Az ǫ üres történethez ι egy értéket rendel. Ha ez A B, akkor 4-2
β 0 = β {ǫ} {0,1} n : {0, 1} n {0, 1} megmondja milyen értéket küldjön. β 0 azonosítható az x változók lehetséges értékadásainak két osztályba (negatív és pozitív példák) sorolásával: {0, 1} n = β ( 1) 0 (0) β ( 1) 0 (1). Mátrixnyelvezettel élve, a sorokat két osztályba soroljuk. Az elsőbe esnek azok a sorok, amelyeket A megkapva az üzenete 0 lesz, a második sorhalmaz ennek komplementere lesz, azaz az x változók azon értékadásait tartalmazza, amely esetén a protokoll az 1 üzenetet írja elő A számára. A gyökérben feltüntetjük mátrixunk β 0 által előírt felszabdalását (az sorok két osztályba sorolásával) két 2 n oszloppal rendelkező mátrixra, M 0 -ra és M 1 -re. A gyökérben lévő teljes mátrix pozíciói az összes inputnak felelnek meg. A mátrix tetszőleges pozíciója vagy M 0 -ba vagy M 1 -be esik. Ettől függően az üzenet 0 vagy 1 lesz. A két eshetőségnek felel meg a gyökér két gyereke (az ide vezető élek címkéje mondja meg melyik eshetőséget ábrázolja a fában történő lelépés). A két gyerekcsúcsba már csak az M 0, illetve M 1 mátrixokat tüntetjük fel, amely azokat a pozíciókat (az ott álló elemmel) tartalmazza, amelyek által leírt inputok esetén a kommunikáció történetének eleje az aktuális csúcshoz vezető úton lévő információval azonos. A két gyerekcsúcsban tovább növelhetjük a fát a fentiek alapján (persze a történet, ami az egyes csúcsok mögött van hosszabb lesz). β az aktuális mátrixot ismét kettéosztja. Az üzenet irányától függően a sorok halmazának vagy az oszlopok halmazának kettéosztásával. Illetve a csúcsot levélnek nyilváníthatjuk, ha a történethez ι leállást rendel. Egy eljárásnak, ami minden input esetén leáll egy véges fa felel meg. Ezt szemléleteti a következő ábra. 1. ábra. Minden pozíció a fában egy a gyökértől a levélig vezető utat definiál. Az út csúcsai azok a pontok lesznek, amihez rendelt mátrixok tartalmazzák a vizsgált 4-3
pozíciót. A protokollt leíró fa akkor lesz helyes, ha a levelekbe kerülő mátrix minden eleme ugyanaz, az eljárás leveléhez tartozó leállás során bejelentett értékkel azonos. A dinamikus képre a következő ábra mutat példát. 2. ábra. A formális definíciót (az egyes csúcsok és élek címkézésének, a számítási út, bonyolultság formális leírását) az olvasóra hagyjuk. Érdemes összefoglalni azokat a kombinatorikus definíciókat, amelyek a további munkánkat megkönnyítik. Definíció. Legyen M egy 0-1 mátrix, azaz M : X Y {0, 1} függvény. X elemei a sorok nevei, Y elemei az oszlopok nevei. X Y elemei a mátrix pozíciói. Az M függvény megmondja, hogy az egyes pozíciókban milyen értékek állnak. M egy az X X sorokhoz és Y Y oszlopokhoz tartozó részmátrixa M = M X Y. Az X Y pozícióhalmazt téglalapnak nevezzük. A téglalapok és részmátrixok között természetes megfeleltés van. Egy téglalap homogén (0-homogén, 1-homogén), ha a megfelelő részmátrixban minden elem ugyanaz (minden elem 0 vagy minden elem 1). Minden 1 1 méretű téglalap homogén. Definíció. Egy téglalap sorok szerinti felszabdalása alatt azt értjük, hogy sorainak halmazát két osztályba soroljuk, és mindkét osztály esetén vesszük a hozzá tartozó 4-4
sorok által alkotott mátrixot. Hasonlóan definiálhatjuk egy téglalap oszlopok szerinti felszabdalását. Egy téglalap felszabdalása sorok vagy oszlopok szerinti felszabdalása. Definíció. Egy M mátrix téglalapokra történő felszabdalási eljárása egy olyan eljárás, amely kezdetén egyetlen téglalapunk van (kiinduló mátrixunknak, M-nek megfelelő téglalap), majd minden lépésben a rendelkezésünkre álló téglalapok mindegyikét vagy érintetlenül hagyjuk, vagy felszabdaljuk. Egy M mátrix felszabdalása homogén téglalapokra egy olyan szabdalási eljárás, amely végén kialakuló téglalapok mindegyike homogén. Egy M mátrix fedése homogén téglalapokkal homogén téglalapok egy olyan rendszere, amelyek uniója a mátrix összes pozíciójának halmaza. Egy M mátrix parkettázása homogén téglalapokkal páronként diszjunkt homogén téglalapok egy olyan rendszere, amelyek uniója a mátrix összes pozíciójának halmaza. Példa. Legyen M egy tetszőleges mátrix. Definiálunk egy triviális szabdalási eljárását. Az első lépésekben mindig a sorok szerint osztjuk ketté a mátrixot, egészen addig míg részeink egy-egy sor által alkotott rész lesz. A nem azonosan 0-t, illetve nem azonosan 1-et tartalmazó sorok esetén egy-egy oszlopok szerinti szabdalást végzünk el, hogy az két azonos elemeket tartalmazó mátrixszá essen szét. Így log 2 s +1 lépésben homogén téglalapokra szabdaljuk mátrixunkat, ahol s a sorok száma. A fenti fogalmakhoz természetes módon paramétereket rendelhetünk hozzá. Definíció. Egy M mátrix homogén mátrixokra történő S szabdalási eljárásának d(s) mélysége az eljárás lépéseinek száma. Egy M mátrix homogén mátrixokra történő S szabdalási eljárásának s(s) mérete az eljárás végén előállított homogén téglalapok száma. Egy M mátrix homogén mátrixokkal történő P parkettázásának mérete s(p), a rendszer téglalapjainak száma. Egy M mátrix homogén mátrixokkal történő F fedésének mérete s(f), a rendszer téglalapjainak száma. Természetesen ezekhez a paraméterekhez feladatokat kapcsolhatunk. Például egy M mátrix fedési feladata minél kisebb méretű fedés megtalálása. Illetve optimalizálási problémákat vezethetünk be, és a mátrixhoz az optimum értékét mint egy fontos kombinatorikus paramétert rendelhetjük hozzá. Definíció. δ(m) = min{d(s) : S az M mátrix egy homogén téglalapokra történő szabdalása}. σ(m) = min{s(s) : S az M mátrix egy homogén téglalapokra történő szabdalása}. π(m) = min{s(p) : P az M mátrix homogén téglalapokkal történő parkettázása}. 4-5
ϕ(m) = min{s(f) : F az M mátrix homogén téglalapokkal történő fedése}. A fedési és parkettázási feladat esetén az 1 elemeket fedő/parkettázó téglalapok diszjunktak lesznek a 0 elemeket fedő/parkettázó téglalapoktól. Így a probléma szétesik két egymástól függetlenül kezelhető kérdésre. Az ezekhez tartozó paramétereket az alábbiakban definiáljuk. Definíció. Egy M mátrix homogén mátrixokkal történő P parkettázásának 0-mérete s 0 (P), a rendszer 0-homogén téglalapjainak száma. Egy M mátrix homogén mátrixokkal történő F fedésének 0-mérete s 0 (F), a rendszer 0-homogén téglalapjainak száma. Egy M mátrix homogén mátrixokkal történő P parkettázásának 1-mérete s 1 (P), a rendszer 1-homogén téglalapjainak száma. Egy M mátrix homogén mátrixokkal történő F fedésének 1-mérete s 1 (F), a rendszer 1-homogén téglalapjainak száma. π 0 (M) = min{s(p) : P az M mátrix 0 elemeinek homogén téglalapokkal történő parkettázása}. ϕ 0 (M) = min{s(f) : F az M mátrix 0 elemeinek homogén téglalapokkal történő fedése}. π 1 (M) = min{s(p) : P az M mátrix 1 elemeinek homogén téglalapokkal történő parkettázása}. ϕ 1 (M) = min{s(f) : F az M mátrix 1 elemeinek homogén téglalapokkal történő fedése}. A fenti paraméterek közötti kapcsolat nyilvánvaló: 2. Lemma. (i) ϕ(m) = ϕ 0 (M) + ϕ 1 (M), (ii) π(m) = π 0 (M) + π 1 (M), (iii) ϕ(m) π(m) σ(m) 2 δ(m). A szabdalási eljárás mélysége és a kommunikációs protokollok bonyolultsága közötti kapcsolat ( izomorfia ) nyilvánvaló. 3. Lemma. Legyen f : {0, 1} n {0, 1} n {0, 1}, és M f az f-et leíró 2 n 2 n méretű mátrix. Ekkor C k (f) = δ(m f ). Ezek alapján a kombinatrikus paraméterekre adott becslések a megfelelő Boolefüggvény kommunkációs bonyolultságára. 4-6
4. Lemma. log 2 ϕ(m f ) log 2 π(m f ) log 2 σ(m f ) C k (f). Példa. Legyen M = I 2 k 2 k, a 2k 2 k méretű egységmátrix. M minden 1-homogén téglalapja 1 1 méretű. Így könnyen látható, hogy ϕ 1 (M) = π 1 (M) = 2 k. π 0 (M) = 2 k igazolása egy nehezebb probléma. Ennek megmutatását az egyik feladatra bízzuk. Végül megmutatjuk, hogy ϕ 0 (M) 2k. Ehhez a sorok és oszlopok neveire mint k hosszú 0-1 sorozatokra gondolunk. Legyen Xi 0 azon sorok halmaza, amelyek neveinek i-edik karaktere 0, és legyen Yi 1 azon oszlopok halmaza, amelyek neveinek i-edik karaktere 1. Ekkor Xi 0 Y i 1 egy 0-homogén mátrix. Analóg módon definiálható Xi 1 és Yi 0. Ekkor X1 i Y i 0 egy 0-homogén mátrix. Ha i = 1, 2,..., k értékeket vesszük, akkor 2k darab 0-homogén mátrixhoz jutunk, amelyek az összes 0 elemet lefedik. 5. Feladat. Bizonyítsuk be, hogy π 0 (I 2 k 2 k) = 2k. 6. Feladat. Bizonyítsuk be, hogy ϕ 0 (I 2 k 2k) = 2k. 2. Alsó becslések a kommunikációs bonyolultságra Az alábbiakban csupán egy egyszerű lineáris algebrai technikát említünk meg. Definíció. Legyen S O pozíciók egy halmaza, és t egy téglalap. J(t) legyen az a mátrix az S O pozíciókon, amelynek elemei 1-es értékűek t pozícióiban, míg 0 értékűek más helyeken. Ekkor könnyen átlátható, hogy egy M 0-1 mátrix, és ennek homogén téglalapokkal történő P parkettázásánál Illetve, M = {J(t) : t P, t 1-homogén}, J M = {J(t) : t P, t 0-homogén}, ahol J a csupa 1-est tartalmazó mátrix. A következő lemma a lineáris algebra elemi eredménye. 7. Lemma. Legyen M = k i=1 M 1. Ekkor rk (M) k rk (M i ). i=1 Fenti egyszerű gontdolataink a kommunikációs bonyolultság egy hatékony alsó becsléséhez vezetnek. Ezt foglalja össze a következő lemma. 8. Lemma. Legyen M egy 0-1 mátrix és P egy parkettázása homogén téglalapokkal. Ekkor (i) s 1 (P) rk (M), 4-7
(ii) s 0 (P) rk (J M). Ezt a becslést nyilvánvaló módon kiterjeszthetjük a parkettázási paraméterre, illetve a kommunikációs bonyolultságra adott becsléssé. 9. Következmény. Legyen M egy 0-1 mátrix. Ekkor (i) π 1 (M) rk (M), (ii) π 0 (M) rk (J M), (iii) π(m) rk (M) + rk (J M). 10. Következmény. C k (f) log 2 (rk(m) + rk (J M)). Megjegyzés. A figyelmes olvasót zavarhatja, hogy 0-1 mátrixszokkal dolgozunk, azaz a lineáris algebránk mögötti test bármi lehet. Ennek ellenére semmit sem tettünk a rejtett test tisztázására. Ez azért volt mert az ismertetett lineáris algebrai tény (a rangfüggvény szubadditivitása) tetszőleges test felett igaz. A későbbiekben (konkrét számolásoknál) természetesen feltüntetjük a testet, ha ennek szerepe lényeges. Így egy egyszerű rangszámítással alsó becslést adhatunk a kommunikációs bonyolultságra. Az alábbiakban példákkal szemléltetjük a módszert. Példa. Legyen Id n (x 1,...,x n, y 1,...,y n ) = { 1, ha x i = y i minden i = 1, 2,..., n esetén, 0, különben. Azaz Id n két n hosszú bitsorozat egyenlőségét teszteli. Ekkor M Idn = I 2 n 2n. Így C k (Id n ) log 2 (rk (I 2 n 2 n) + rk (J 2 n 2 n I 2 n 2 n)) > log 2 2 n = n. Mivel C k (Id n ) n + 1, ezért kapjuk, hogy C k (Id n ) = n + 1. Azaz a triviális módszernél nincs hatékonyabb eljárás Id n kiszámítására. Az alapos olvasót zavarhatja, hogy kikerültük rk (J 2 n 2 n I 2 n 2n) kiszámítását. Ezt a nem nehéz kérdést az egyik feladatra utaljuk. Példa. Legyen D n (x 1,...,x n, y 1,...,y n ) = { 1, ha x i y i = 0 minden i = 1, 2,..., n esetén, 0, különben. (Érdekes észrevenni, hogy az x i y i szorzat kiszámításához nem kellett az aritmetikát leírnunk. 0, 1 számok szorzása minden testben ugyanaz.) Azaz D n inputja két n hosszú bitsorozat, amelyet úgyis felfoghatunk mint egy n-elemű alaphalmaz két részhalmazának karakterisztikus vektora. D n értéke akkor és csak akkor 1, ha a két részhalmaz diszjunkt. Legyen M Dn a megfelelő 2 n 2 n méretű mátrix. 4-8
Példa. Legyen MD n (x 1,...,x n, y 1,...,y n ) = n x i y i, i=1 ahol a jobb oldalon szereplő kifejezés aritmetikája F 2 testben értendő. Azaz MD n inputja két n hosszú bitsorozat, amelyet úgyis felfoghatunk mint egy n-elemű alaphalmaz két részhalmazának karakterisztikus vektora. MD n értéke akkor és csak akkor 1, ha a két részhalmaz metszetének elemszáma páratlan. Legyen M MDn a megfelelő 2 n 2 n méretű mátrix. Példa. Az Ö n Boole-függvény leírásához először tisztázzuk, hogy az (x 1,...,x ( v 2), y 1,...,y ( v 2) ) változók a [v] alaphalmazon lévő G x, illetve G y egyszerű gráfokat kódolnak. Ö(x 1,...,x ( v 2), y 1,...,y ( v 2) ) akkor és csak akkor 1, ha G x G y gráf összefüggő. Legyen M Ön a megfelelő 2 2) (v 2 ( v 2) méretű mátrix. 11. Feladat. Bizonyítsuk be, hogy az F test feletti aritmetikát használva { rk F (J 2 n 2 n I 2 n 2 n) = 2 n, ha char F 2 n 1 2 n 1, ha char F 2 n 1. 12. Feladat. Állapítsuk meg rk M Dn értékét. 13. Feladat. Állapítsuk meg rk M MDn értékét. 14. Feladat. Állapítsuk meg rk M Ön értékét. 4-9