NC osztály

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. május 31-én felülvizsgált verziótól ; az ellenőrzések 8 szerkesztést igényelnek .

A számítási bonyolultság elméletében az NC osztály (az angol Nick's Class szóból ) azon megoldhatósági problémák összessége , amelyek polilogaritmikus időben megoldhatók egy párhuzamos számítógépen , polinomiális számú processzorral. Más szóval, egy probléma akkor tartozik az NC osztályba, ha vannak olyan állandók , amelyek párhuzamos processzorokkal időben megoldhatók . Stephen Cook [1] [2] Nick Pippenger után nevezte el "Nick osztályának" , aki kiterjedt kutatásokat végzett [3] a polilogmélységű és polinomméretű áramkörökről. [négy]

Ahogyan a P osztályt képlékeny problémák osztályának tekinthetjük ( Cobham tézise ), úgy az NC-t is úgy lehet felfogni, mint egy párhuzamos számítógépen hatékonyan megoldható problémák osztályát. [5] Az NC a P részhalmaza, mivel párhuzamos polilog számítások szimulálhatók szekvenciális polinomszámításokkal. Nem ismert, hogy NP = P igaz-e, de a legtöbb tudós úgy véli, hogy nem, ami azt jelenti, hogy valószínűleg vannak olyan alakítható feladatok, amelyek „természetüknél fogva” egymás után következnek, és nem gyorsíthatók fel a párhuzamosság segítségével. Ahogyan az NP-teljes problémák osztályát a "legvalószínűbben megoldhatatlan" problémák osztályának tekinthetjük, úgy a P-teljes problémák osztályát NC-re redukálva úgy tekinthetjük, mint "nagy valószínűséggel nem párhuzamosítható" vagy "valószínűleg szekvenciális természetű".

A definícióban szereplő párhuzamos számítógép párhuzamos véletlen hozzáférésű gépnek tekinthető ( PRAM  - az angol parallel, random-access gépből). Ez egy párhuzamos számítógép központi memóriatárral, amelynek bármely processzora állandó időben bármely bithez hozzáfér. Az NC definícióját nem befolyásolja az, hogy a PRAM hogyan éri el ugyanazt a bitet több processzorról egyszerre.

Az NC úgy definiálható , mint a polilogaritmikus mélységű és polinomiális számú kapuval rendelkező elosztott Boole - áramkör által megoldható megoldhatósági problémák halmaza .

Feladatok az NC-ben

Az NC számos feladatot tartalmaz, többek között:

Gyakran ezekre a problémákra az algoritmusokat külön-külön gondolták ki, és nem lehet az ismert algoritmusok naiv adaptációja - a Gauss-módszer és az Euklidész-algoritmus arra a tényre támaszkodik, hogy a műveleteket szekvenciálisan hajtják végre.

Hierarchia NC

Az NC i  olyan megoldhatósági problémák halmaza, amelyek polinomiális számú kapuval (legfeljebb két bemenettel) és mélységgel , vagy egy párhuzamos számítógéppel, polinomszámú processzorral időben megoldhatók . Nyilvánvalóan,

mi az NC hierarchia.

Az NC osztályokat az L , NL [6] és AC [7] tárolási osztályokhoz rendelhetjük :

Az NC és AC osztályok azonosak, kivéve az AC osztályhoz tartozó szelepbemenetek korlátlan számát. Mindegyikre az [5] [7] igaz :

Ennek következménye az NC = AC . [8] Ismeretes, hogy mindkét zárvány szigorú a -ra . [5] Hasonlóképpen megkaphatjuk, hogy az NC ekvivalens a változó Turing-gépen megoldott feladatsorral , lépésenként legfeljebb két választási lehetőséggel, O (log n ) memóriával és változtatásokkal. [9]

Megoldatlan probléma: natív az NC?

A számítási komplexitáselmélet egyik nagy nyitott kérdése az  , hogy az NC-hierarchia minden beágyazása megfelelő-e. Amint Papadimitriou megjegyezte, ha NC i = NC i +1 igaz néhányra , akkor NC i = NC j mindegyikre , és ennek következtében NC i = NC . Ezt a megfigyelést NC-hierarchia hajtogatásának nevezik, mert még az egymásba ágyazó lánc egyetlen egyenlőségéből is:

ebből következik, hogy a teljes NC -hierarchia valamilyen szintre "összeomlik" . Így két lehetőség lehetséges:

Széles körben elterjedt az a vélemény, hogy az (1) igaz, bár még nem találtak bizonyítékot egyik állítás igazságosságára sem.

Barrington tétele

A változó, szélesség és hosszúságú elágazó program hosszúságú utasítások sorozatából áll . Minden utasítás egy hármas , ahol  az ellenőrizni kívánt változó indexe , és a és  a permutációs függvények -tól -ig . A számokat az elágazó program állapotainak nevezzük. A program az 1-es állapotban indul, és minden utasítás állapotát vagy -ra változtatja , attól függően, hogy a -edik változó 0-val vagy 1-gyel egyenlő-e.

Az elágazó programok családja elágazó programokból áll, mindegyikhez változókkal .

Könnyen kimutatható, hogy bármely nyelv felismerhető egy 5-ös szélességű és exponenciális hosszúságú elágazó programcsaládról, vagy egy exponenciális szélességű és lineáris hosszúságú elágazó programcsaládról.

Minden reguláris nyelv nem ismerhető fel állandó szélességű, lineáris utasításokat elágazó programok családjaként (mivel a DFA átalakítható elágazó programmá). A BWBP olyan nyelvosztályt jelöl, amelyet a BWBP  (korlátozott szélesség és polinomiális hossz) elágazó programok családja ismer fel. [10] .

Barrington tétele [11] kimondja, hogy a BWBP  pontosan allokálatlan NC 1 . A tétel bizonyítása a szimmetriacsoport eldönthetetlenségét használja fel . [tíz]

A Barrington-tétel bizonyítása

Bizonyítsuk be, hogy egy állandó szélességű és polinomméretű elágazó program ( VP ) NC 1 -ből áramkörré alakítható .

Ellenkezőleg: legyen egy C áramkör az NC 1 -ből . Az általánosság elvesztése nélkül feltételezzük, hogy csak ÉS és NEM kapukat használunk benne.

Definíció: A VI-t Boole-függvény kiszámításának nevezzük, vagy ha az eredményt adja , akkor az azonos permutációt , az eredményéhez pedig a -permutációt . Mivel a C sémánk néhány logikai függvényt ír le , és csak azt, ezeket a kifejezéseket felcserélhetjük.

A bizonyításhoz két lemmát fogunk használni:

1. lemma : Ha van olyan VP, amely -számítja , akkor létezik olyan VP is, amely -kalkulál (vagyis egyenlő at , és egyenlő .

Bizonyítás : mivel a és  a ciklusok, és bármely két ciklus konjugált , akkor van olyan permutáció , hogy = . Ezután megszorozzuk a permutációkkal és a bal oldali első VP utasítással (hogy megkapjuk a permutációkat és ), majd az utolsó utasításból származó permutációkat megszorozzuk a jobb oldalival ( és kapjuk ). Ha korábban cselekedeteink (az általánosság elvesztése nélkül) egyenlő volt -vel, akkor most az eredmény , ha pedig egyenlő volt -vel, akkor az eredmény egyenlő -vel . Így kaptunk egy VI-t, amely -calculates , ugyanolyan hosszúsággal (az utasítások száma nem változott).

Megjegyzés : ha a VP kimenetét megszorozzuk a jobbal , akkor nyilvánvaló módon megkapjuk a VP, -calculating függvényt .

2. lemma : Ha két VI van: -számítás és -számítás hosszúságokkal és , ahol és  5-ciklusos permutáció, akkor létezik olyan VI 5-ciklusos permutációval , hogy a VI -számítja , és mérete nem haladja meg + .

Bizonyítás : Tegyük "sorba" négy VP utasításait: , , , (az inverzeket az 1. lemma alapján építjük fel). Ha az egyik vagy mindkét függvény 0-t ad vissza, akkor egy nagy program eredménye : például -val . Ha mindkét függvény 1-et ad vissza, akkor . Itt , ami annak köszönhető, hogy ezek a permutációk 5-ciklikusak ( a szimmetriacsoport feloldhatatlansága miatt ). Az új VI hosszát definíció szerint számítják ki.

A tétel bizonyítása

Indukcióval fogjuk bizonyítani. Tegyük fel, hogy van egy C áramkörünk bemenetekkel , és minden D aláramkörre és 5 ciklusú permutációra van egy VI, amely -kiszámolja D -t . Mutassuk meg, hogy mind az 5-permutációra létezik egy VP, amely -kiszámítja C -t .

A kapott elágazó program mérete nem haladja meg a -t , ahol  az áramkör mélysége. Ha a sémának logaritmikus mélysége van, akkor a VP polinomhosszúságú.

Jegyzetek

  1. „A szinkron párhuzamos számítások komplexitáselmélete felé. D L'Enseignement mathematique 27” [ eng. ]. Archiválva az eredetiből, ekkor: 2022-03-10 . Letöltve: 2020-04-19 . Elavult használt paraméter |deadlink=( súgó )
  2. Cook, Stephen A. (1985-01-01). „Problémák taxonómiája gyors párhuzamos algoritmusokkal”. Információ és ellenőrzés . Nemzetközi Konferencia a Számításelmélet alapjairól ]. 64 (1):2-22. DOI : 10.1016/S0019-9958(85)80041-3 . ISSN  0019-9958 .
  3. Pippenger, Nicholas (1979). „Az egyidejű erőforrás-korlátokról” . 20. éves szimpózium a számítástechnika alapjairól ( SFCS 1979 ) ]: 307-311. DOI : 10.1109/SFCS.1979.29 . ISSN  0272-5428 .
  4. Arora és Barak (2009) 120. o
  5. 1 2 3 Arora & Barak (2009) 118. o
  6. Papadimitriou (1994) 16.1. Tétel
  7. 1 2 Clote & Kranakis (2002) 437. o
  8. Clote & Kranakis (2002) 12. o
  9. S. Bellantoni és I. Oitavem (2004). „NC elválasztása a delta tengely mentén”. Elméleti számítástechnika . 318 (1-2): 57-78. DOI : 10.1016/j.tcs.2003.10.021 .
  10. 1 2 Clote & Kranakis (2002) 50. o
  11. Barrington, David A. (1989). „A korlátos szélességű polinom méretű elágazó programok pontosan azokat a nyelveket ismerik fel az NC 1 -ben ” (PDF) . J Számítógép. Syst. Sci . 38 (1): 150-164. DOI : 10.1016/0022-0000(89)90037-8 . ISSN  0022-0000 . Zbl  0667.68059 .

Linkek