NC luokka

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 31.5.2020 tarkistetusta versiosta . tarkastukset vaativat 8 muokkausta .

Laskennallisen monimutkaisuuden teoriassa NC-luokka ( englanninkielisestä Nick's Class ) on joukko ratkaistavuusongelmia , jotka voidaan ratkaista polylogaritmisessa ajassa rinnakkaistietokoneella , jossa on polynomimäärä prosessoreita. Toisin sanoen ongelma kuuluu NC-luokkaan, jos siinä on vakioita ja sellaisia, että se voidaan ratkaista ajoissa rinnakkaisilla prosessoreilla. Stephen Cook [1] [2] antoi sille nimen "Nick's Class" Nick Pippengerin mukaan, joka teki laajan tutkimuksen [3] piireistä, joissa on polylogin syvyys ja polynomikoko. [neljä]

Aivan kuten luokkaa P voidaan pitää muokattavien ongelmien luokkana ( Cobhamin opinnäytetyö ), NC voidaan ajatella luokan tehtävien luokkana, joka voidaan ratkaista tehokkaasti rinnakkaistietokoneella. [5] NC on P:n osajoukko, koska rinnakkaisia ​​polylogialaskuja voidaan simuloida käyttämällä peräkkäisiä polynomialaskuja. Ei tiedetä, onko NP = P totta, mutta useimmat tutkijat uskovat, että se ei pidä paikkaansa, mikä tarkoittaa, että on todennäköisesti muovattavia tehtäviä, jotka ovat "luonnoltaan" peräkkäisiä ja joita ei voida merkittävästi nopeuttaa rinnakkaisuuden avulla. Aivan kuten NP-täydellisten ongelmien luokkaa voidaan pitää "todennäköisimmin ratkaisemattomien" ongelmien luokkana, niin P-täydellisten ongelmien luokkaa , kun se pelkistetään NC:ksi, voidaan ajatella "todennäköisimmin ei rinnakkaistavissa" tai "todennäköisimmin peräkkäinen luonteeltaan".

Määritelmässä olevaa rinnakkaistietokonetta voidaan pitää rinnakkaisena hajasaantikoneena ( PRAM  - englannin kielestä rinnakkais, random-access machine). Se on rinnakkaistietokone, jossa on keskusmuisti, jonka mikä tahansa prosessori voi käyttää mitä tahansa bittiä vakioajassa. NC:n määritelmään ei vaikuta tapa, jolla PRAM käyttää samaa bittiä useista prosessoreista samanaikaisesti.

NC voidaan määritellä joukkona ratkaistavuusongelmia, jotka voidaan ratkaista hajautetulla Boolen piirillä , jolla on polylogaritminen syvyys ja polynomimäärä portteja .

Tehtävät NC:ssä

NC sisältää monia tehtäviä, mukaan lukien:

Usein näiden ongelmien algoritmit keksittiin erikseen, eivätkä ne voineet olla tunnettujen algoritmien naiivia adaptaatiota - Gaussin menetelmä ja Euclid-algoritmi perustuvat siihen, että toiminnot suoritetaan peräkkäin.

Hierarkia NC

NC i  on joukko ratkeavuusongelmia, jotka voidaan ratkaista hajautetuilla Boolen piireillä, joissa on polynomimäärä portteja (enintään kaksi tuloa) ja syvyys , tai jotka voidaan ratkaista ajallisesti rinnakkaistietokoneella, jossa on polynomimäärä prosessoreita. Ilmeisesti

mikä on NC - hierarkia.

Voimme yhdistää NC -luokat tallennusluokkiin L , NL [6] ja AC [7] :

Luokat NC ja AC ovat identtisiä, lukuun ottamatta rajatonta määrää venttiilituloja luokassa AC. Jokaisen kohdalla [5] [7] on totta :

Tämän seurauksena NC = AC . [8] Molempien sisällytysten tiedetään olevan tiukkoja . [5] Vastaavasti voimme saada, että NC vastaa muuttujalla Turingin koneella ratkaistavia tehtäviä, joissa on enintään kaksi vaihtoehtoa kussakin vaiheessa ja O (log n ) muistilla ja muutoksilla. [9]

Ratkaisematon ongelma: onko NC natiivi?

Yksi laskennan monimutkaisuusteorian suurista avoimista kysymyksistä  on, onko jokainen NC-hierarkian upotus oikein. Kuten Papadimitriou huomautti, jos NC i = NC i +1 on totta joillekin , niin NC i = NC j kaikille , ja sen seurauksena NC i = NC . Tätä havaintoa kutsutaan NC-hierarkian taitoksi, koska jopa yhdestä tasa-arvosta sisäkkäisketjussa:

tästä seuraa, että koko NC -hierarkia "lupautuu" jollekin tasolle . Näin ollen kaksi vaihtoehtoa on mahdollista:

Yleisesti uskotaan, että (1) on totta, vaikka todisteita kummankaan väitteen totuudesta ei ole vielä löydetty.

Barringtonin lause

Muuttujien, leveyden ja pituuden haaroitusohjelma koostuu joukosta pituuskäskyjä . Jokainen käsky on kolmiosainen , jossa  on tarkistettavan muuttujan indeksi ja ja  ovat permutaatiofunktiot alkaen - . Numeroita kutsutaan haarautumisohjelman tiloiksi. Ohjelma alkaa tilasta 1, ja jokainen käsky muuttaa tilan tai -tilaan riippuen siitä, onko -: s muuttuja 0 vai 1.

Haaroitusohjelmien perhe koostuu haaroitusohjelmista, joissa jokaiselle on muuttuja .

On helppo osoittaa, että mikä tahansa kieli voidaan tunnistaa haarautuvien ohjelmien perheestä, jonka leveys on 5 ja pituus eksponentiaalinen, tai perheestä, jonka leveys ja lineaarinen pituus on eksponentiaalinen.

Jokaista säännöllistä kieltä ei voida tunnistaa vakioleveyksisten, lineaarista käskyä haaroittavien ohjelmien perheeksi (koska DFA voidaan muuntaa haarautumisohjelmaksi). BWBP tarkoittaa kieliluokkaa, jonka tunnistaa BWBP  (rajoitettu leveys ja polynomipituus) haarautuvien ohjelmien perhe . [10] .

Barringtonin lause [11] väittää, että BWBP  on täsmälleen allokoimaton NC 1 . Lauseen todistuksessa käytetään symmetriaryhmän ratkaisemattomuutta . [kymmenen]

Todistus Barringtonin lauseesta

Osoitetaan, että haaroitusohjelma ( VP ), jolla on vakioleveys ja polynomikoko, voidaan muuttaa piiriksi NC 1 :stä .

Päinvastoin: olkoon piiri C NC 1 :stä . Yleisyyttä menettämättä oletetaan, että siinä käytetään vain AND- ja EI - portteja .

Määritelmä: VI:tä kutsutaan Boolen funktion -laskemiseksi tai jos se antaa tuloksen - identtisen permutaation ja sen tulokseksi -permutaatioksi. Koska C -skeemamme kuvaa jotain Boolen funktiota ja vain sitä, voimme vaihtaa nämä termit keskenään.

Todistuksessa käytämme kahta lemmaa:

Lemma 1 : Jos on VP, joka -laskee , niin on olemassa myös VP, joka -laskee (eli yhtä suuri kuin , ja yhtä suuri kuin .

Todistus : koska ja  ovat jaksoja ja mitkä tahansa kaksi sykliä ovat konjugoituja , niin on olemassa sellainen permutaatio , että = . Sitten kerrotaan permutaatioilla ja ensimmäisestä vasemmanpuoleisesta VP-käskystä (jotta saadaan permutaatiot ja ), ja kerrotaan permutaatiot viimeisestä käskystä oikealla (saamme ja ). Jos ennen toimintamme (ilman yleisyyden menetystä) oli yhtä suuri kuin , niin nyt tulos on , ja jos se oli yhtä suuri , tulos on yhtä suuri kuin . Saimme siis VI:n, joka -laskee , samanpituisena (käskyjen määrä ei ole muuttunut).

Huomaa : jos kerromme VP : n ulostulon oikealla, niin saadaan ilmeisellä tavalla VP, -laskentafunktio .

Lemma 2 : Jos on kaksi VI:tä: -laskeminen ja -laskenta pituuksilla ja , missä ja  ovat 5-syklisiä permutaatioita, niin on olemassa VI, jolla on 5-syklinen permutaatio siten, että VI -laskee ja sen koko ei ylitä + .

Todistus : Laitetaan "peräkkäin" neljän VP:n ohjeet: , , , (käänteiset rakennamme Lemman 1 mukaan). Jos toinen tai molemmat funktiot palauttavat arvon 0, niin suuren ohjelman tulos on : esimerkiksi . Jos molemmat funktiot palauttavat arvon 1, niin . Tässä , mikä on totta, koska nämä permutaatiot ovat 5-syklisiä ( symmetriaryhmän ratkaisemattomuudesta johtuen ). Uuden VI:n pituus lasketaan määritelmän mukaan.

Todistus lauseesta

Todistamme induktiolla. Oletetaan, että meillä on piiri C tuloineen ja että kaikille alipiireille D ja 5-jaksoisille permutaatioille on VI, joka -laskee D :n . Osoitetaan, että kaikille 5-permutaatioille on olemassa VP, joka -laskee C :n .

Tuloksena olevan haaroitusohjelman koko ei ylitä , missä  on piirin syvyys. Jos kaaviolla on logaritminen syvyys, niin VP:llä on polynomipituus.

Muistiinpanot

  1. "Kohti synkronisen rinnakkaislaskennan kompleksisuusteoriaa. D L'Enseignement mathematique 27” [ eng. ]. Arkistoitu alkuperäisestä 2022-03-10 . Haettu 19.04.2020 . Käytöstä poistettu parametri |deadlink=( ohje )
  2. Cook, Stephen A. (1985-01-01). "Nopeiden rinnakkaisten algoritmien ongelmien taksonomia". Tiedot ja valvonta . Kansainvälinen konferenssi laskennan teorian perusteista ]. 64 (1):2-22. DOI : 10.1016/S0019-9958(85)80041-3 . ISSN  0019-9958 .
  3. Pippenger, Nicholas (1979). "Samanaikaisilla resurssirajoilla" . 20th Annual Symposium on Foundations of Computer Science ( SFCS 1979 ) ]: 307-311. DOI : 10.1109/SFCS.1979.29 . ISSN  0272-5428 .
  4. Arora & Barak (2009) s. 120
  5. 1 2 3 Arora & Barak (2009) s. 118
  6. Papadimitriou (1994) Lause 16.1
  7. 1 2 Clote & Kranakis (2002) s. 437
  8. Clote & Kranakis (2002) s. 12
  9. S. Bellantoni ja I. Oitavem (2004). "NC:n erottaminen delta-akselia pitkin". Teoreettinen tietojenkäsittelytiede . 318 (1-2): 57-78. DOI : 10.1016/j.tcs.2003.10.021 .
  10. 1 2 Clote & Kranakis (2002) s. 50
  11. Barrington, David A. (1989). "Rajaleveät polynomikokoiset haarautumisohjelmat tunnistavat juuri ne kielet NC 1 :ssä " (PDF) . J Comput. Syst. Sci . 38 (1): 150-164. DOI : 10.1016/0022-0000(89)90037-8 . ISSN  0022-0000 . Zbl  0667.68059 .

Linkit