NC (złożoność)

W teorii złożoności jedną z dziedzin informatyki teoretycznej , NC (dla klasy Nicka ) jest klasa złożoności obejmująca równoległość . Jest to zbiór problemów decyzyjnych rozstrzyganych w czasie polilogarytmicznym przez wielomianową liczbę maszyn równolegle. Odpowiada problemom uważanym za łatwe do rozwiązania przez architekturę równoległą. Klasa została nazwana przez Stephena Cooka na cześć Nicka Pippengera  (z wewnątrz ) , który pracował nad tym tematem.

Na przykład (problem decyzyjny związany z obliczeniem) iloczynu macierzy jest w NC .

Definicja

Problem A występuje w NC, jeśli istnieją dwie stałe c i k takie, że możliwe jest rozwiązanie A w jednym czasie przy użyciu równoległych procesorów. Bardziej precyzyjną definicję możemy podać dzięki obwodom boolowskim . Chodzi o to, że dwie bramki logiczne mogą równolegle obliczać swoje wyjście. Zatem liczba bramek logicznych to - z grubsza mówiąc - liczba procesorów. Głębokość obwodu reprezentuje czas wykonania. Dokładniej, dla wszystkiego najpierw definiujemy klasę NC c jako zbiór języków wyznaczonych przez rodzinę obwodów (gdzie jest rozmiar wejścia) zwanych uniformami (to znaczy, że możemy faktycznie obliczyć z integer ) wielomianu wielkości i głębokości . Jest wtedy klasa NC .

Te dwie definicje są równoważne.

Przykłady problemów w NC

W NC znajdują się problemy decyzyjne związane z następującymi problemami obliczeniowymi:

Relacje z innymi klasami

Znane są następujące relacje, które wprowadzają do gry klasy L , NL i P  :

Możemy również zdefiniować klasy AC i AC klas I w sposób analogiczny do NC i NC i oprócz tego, że arity z bramek logicznych jest nieograniczona. W rzeczywistości, tak jak dla wszystkich i , mamy: AC = NC.

Ruzzo wykazał, że NC jest dokładnie tą klasą problemów decyzyjnych, o których decyduje naprzemienna maszyna Turinga w przestrzeni log n z pewną liczbą zmian (log n ) O (1) , to znaczy NC = STA (log n , *, ( log n ) O (1) ) gdzie STA (s ( n ), t ( n ), a ( n )) to klasa problemów decyzyjnych rozstrzyganych przez naprzemienną maszynę Turinga w przestrzeni s ( n ), czas t ( n ) i przemian a ( n ).

Nie wiemy, czy NC jest równe P, czy nie. Jak określają Arora i Barak, nie wiemy, jak oddzielić NC 1 od hierarchii wielomianów PH .

Otwarty problem upadku

Ważnym pytaniem w teorii złożoności jest to, czy inkluzje w hierarchii NC są ścisłe, czy nie. Papadimitriou zauważył, że jeśli NC i = NC i +1 dla jakiegoś i , to NC i = NC j dla wszystkich j  ≥  i , a zatem NC i = NC . Ta obserwacja nazywana jest załamaniem hierarchii NC, ponieważ tylko jedna równość w łańcuchu inkluzji

oznacza, że ​​cała hierarchia NC załamuje się na poziomie i . Są więc dwie możliwości:

Naukowcy myślą że w zasadzie inkluzje są ścisłe (1), ale nie ma dowodów.

Twierdzenie Barringtona

Barrington wykazał, że niejednorodna klasa NC odpowiada problemom rozstrzygniętym przez powiązane programy zdefiniowane w następujący sposób.

Link zewnętrzny

(en) Klasa NC w Complexity Zoo

Uwagi i odniesienia

  1. (w) „  W stronę teorii złożoności synchronicznych obliczeń równoległych.  » , Edukacja matematyczna , t.  27,Dziewiętnaście osiemdziesiąt jeden( czytaj online )
  2. (w) Stephen A. Cook , "  A taksonomia problemów z szybkimi algorytmami równoległymi  " , Information and Control , Vol.  64, n o  1,1 st styczeń 1985, s.  2–22 ( ISSN  0019-9958 , DOI  10.1016 / S0019-9958 (85) 80041-3 , czytaj online )
  3. (w) Nicholas Pippenger , „  jest jednoczesnym ograniczeniem zasobów  ” , 20. doroczne sympozjum na temat podstaw informatyki (SFCs 1979) ,1979, s.  307-311 ( ISSN  0272-5428 , DOI  10,1109 / SFCS.1979.29 , czytać online )
  4. (en) Sanjeev Arora i Boaz Barak , Złożoność obliczeniowa: nowoczesne podejście , Cambridge University Press ,2009( ISBN  0-521-42426-7 ) 6.7.1.
  5. (w) „  Kurs - Czytanie 2: Złożoność niektórych problemów  ” [PDF] .
  6. Samuel R. Buss , „  The Boolean formula value problem is in ALOGTIME  ” , na www.math.ucsd.edu ,Styczeń 1987(dostęp 5 maja 2017 )
  7. (w) „  Complexity Zoo: N - Complexity Zoo  ” , na complexityzoo.uwaterloo.ca (dostęp: 29 października 2018 )
  8. (in) „  Boolean Functions and Computation Models - Springer  ” na link.springer.com (dostęp 9 czerwca 2016 ) .
  9. (w) Walter L. Ruzzo , „  Jedna jednolita złożoność systemu  ” , Journal of Computer and System Sciences , vol.  22 N O  3,1 st czerwiec 1981, s.  365–383 ( DOI  10.1016 / 0022-0000 (81) 90038-6 , czytaj online , dostęp: 30 października 2017 ).
  10. (w) Dexter C. Kozen , Theory of Computation , Springer Publishing Company, Incorporated,2010( ISBN  1849965714 i 9781849965712 , czytaj online ).
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">