Клас складності NC

В теорії складності обчислень класом NC (від англ. Nick’s Class) називають множину задач розв'язності, що розв'язуються за полілогарифмічний час на паралельному комп'ютері з поліноміальним числом процесорів. Іншими словами, задача належить до класу NC, якщо існують константи k {\displaystyle k} і c {\displaystyle c} такі, що її можна розв'язати за час O ( log c n ) {\displaystyle O(\log ^{c}n)} при використанні O ( n k ) {\displaystyle O(n^{k})} паралельних процесорів. Стівен Кук[1][2] назвав його «класом Ніка» на честь Ніка Піппенжера[en], який широко дослідив[3] схеми з полілогарифмічною глибиною і поліноміальним розміром[4].

Так само, як клас P можна вважати класом податливих задач (теза Кобгема[en]), так і NC можна вважати класом задач, які можна ефективно розв'язати на паралельному комп'ютері.[5] NC — це підмножина P, тому що паралельні полілогарифмічні обчислення можна симулювати за допомогою послідовних поліноміальних обчислень. Невідомо, чи NP = P, але більшість учених вважає, що ні, з чого випливає, що найпевніше існують податливі задачі, які послідовні «від природи», і не можуть бути істотно прискореними за використання паралелізму. Так само, як клас NP-повних задач можна вважати класом «найпевніше непіддатливих» задач, так і клас P-повних задач[en], при зведенні до NC, можна вважати «найпевніше непаралелізовним» або «найпевніше послідовним від природи».

Паралельний комп'ютер у визначенні можна вважати паралельною машиною з довільним доступом (PRAM — від англ. parallel, random-access machine). Це паралельний комп'ютер із центральним пулом пам'яті, будь-який процесор якого може отримати доступ до будь-якого біта за сталий час. На визначення NC не впливає спосіб, за допомогою якого PRAM здійснює одночасний доступ декількох процесорів до одного біта.

NC можна визначити, як множину задач розв'язності, розв'язуваних розподіленою булевою схемою[en] з полілогарифмічною глибиною і поліноміальним числом вентилів.

Задачі в NC

NC включає багато задач, зокрема:

Часто алгоритми для цих задач придумувалися окремо і не могли бути наївною адаптацією відомих алгоритмів — метод Гауса і алгоритм Евкліда покладаються на те, що операції виконуються послідовно.

Ієрархія NC

NCi — це множина задач розв'язності, розв'язуваних розподіленими булевими схемами з поліноміальною кількістю вентилів (з числом входів не більше двох) і глибиною O ( log i n ) {\displaystyle O(\log ^{i}n)} , або розв'язуваних за час O ( log i n ) {\displaystyle O(\log ^{i}n)} паралельним комп'ютером з поліноміальним числом процесорів. Очевидно,

N C 1 N C 2 N C i N C , {\displaystyle {\mathsf {NC}}^{1}\subseteq {\mathsf {NC}}^{2}\subseteq \cdots \subseteq {\mathsf {NC}}^{i}\subseteq \cdots {\mathsf {NC}},}

що є NC-ієрархією.

Ми можемо пов'язати класи NC з класами пам'яті L, NL[6] і AC[7]:

N C 1 L N L A C 1 N C 2 P . {\displaystyle {\mathsf {NC}}^{1}\subseteq {\mathsf {L}}\subseteq {\mathsf {NL}}\subseteq {\mathsf {AC}}^{1}\subseteq {\mathsf {NC}}^{2}\subseteq {\mathsf {P}}.}

Класи NC і AC однаково визначені, за винятком необмеженості кількості входів у вентилів для класу AC. Для кожного i {\displaystyle i} виконується[5][7]:

N C i A C i N C i + 1 . {\displaystyle {\mathsf {NC}}^{i}\subseteq {\mathsf {AC}}^{i}\subseteq {\mathsf {NC}}^{i+1}.}

Наслідком цього є NC = AC.[8] Відомо, що обидва включення строгі для i = 0 {\displaystyle i=0} .[5] Схожим чином можемо отримати, що NC еквівалентний множині задач, що розв'язуються на змінній машині Тюрінга[en] з числом виборів на кожному кроці не більшим, ніж два, і з O(log n) пам'яті та ( log n ) O ( 1 ) {\displaystyle (\log n)^{O(1)}} альтераціями.[9]

Нерозв'язана задача: чи є NC власним?

Одне з великих відкритих питань теорії складності обчислень — чи є власним кожне вкладення NC-ієрархії. Як зауважив Пападімітріу, якщо для якогось i {\displaystyle i} виконується NCi = NCi+1, то NCi = NCj для всіх j i {\displaystyle j\geqslant i} , і, як наслідок, NCi = NC. Це спостереження називають згортанням NC-ієрархії, тому що навіть з однієї рівності в ланцюзі вкладень:

N C 1 N C 2 {\displaystyle {\mathsf {NC}}^{1}\subseteq {\mathsf {NC}}^{2}\subseteq \cdots }

випливає, що вся NC-ієрархія «згортається» до якогось рівня i {\displaystyle i} . Таким чином, можливі два варіанти:

  1. N C 1 N C i N C i + j N C {\displaystyle {\mathsf {NC}}^{1}\subset \cdots \subset {\mathsf {NC}}^{i}\subset \cdots \subset {\mathsf {NC}}^{i+j}\subset \cdots {\mathsf {NC}}}
  2. N C 1 N C i = = N C i + j = N C . {\displaystyle {\mathsf {NC}}^{1}\subset \cdots \subset {\mathsf {NC}}^{i}=\cdots ={\mathsf {NC}}^{i+j}=\cdots {\mathsf {NC}}.}

Поширена думка, що істинне саме (1), хоча поки не виявлено ніяких доказів щодо істинності того чи іншого твердження.

Теорема Баррінгтона

Розгалужена програма з n {\displaystyle n} змінними, шириною k {\displaystyle k} і довжиною m {\displaystyle m} складається з послідовності інструкцій довжини m {\displaystyle m} . Кожна інструкція — це трійка ( i , p , q ) {\displaystyle (i,p,q)} , де i {\displaystyle i}  — це індекс змінної, яку потрібно перевірити ( 1 i n ) {\displaystyle (1\leq i\leq n)} , а p {\displaystyle p} і q {\displaystyle q}  — це функції перестановки із { 1 , 2 , . . . , k } {\displaystyle \{1,2,...,k\}} в { 1 , 2 , . . . , k } {\displaystyle \{1,2,...,k\}} . Число 1 , 2 , . . . , k {\displaystyle 1,2,...,k} називаються станами розгалуженої програми. Програма починається в стані 1, і кожна інструкція ( i , p , q ) {\displaystyle (i,p,q)} змінює стан x {\displaystyle x} на p ( x ) {\displaystyle p(x)} або q ( x ) {\displaystyle q(x)} , залежно від того, дорівнює i {\displaystyle i} -та змінна 0 чи 1.

Сімейство розгалужених програм складається з розгалужених програм з n {\displaystyle n} змінними для кожного n {\displaystyle n} .

Легко показати, що будь-яку мову L {\displaystyle L} на { 0 , 1 } {\displaystyle \{0,1\}} можна розпізнати сімейством розгалужених програм з шириною 5 і експоненціальною довжиною, або сімейством з експоненціальною шириною і лінійною довжиною.

Кожну регулярну мову на { 0 , 1 } {\displaystyle \{0,1\}} можна розпізнати сімейством розгалужених програм зі сталою шириною і лінійним числом інструкцій (оскільки ДСА можна перетворити на розгалужену програму). BWBP позначає клас мов, що розпізнаються сімейством розгалужених програм з обмеженою шириною і поліноміальною довжиною (англ. BWBP — branching programs of bounded width and polynomial length)[10].

Теорема Баррінгтона[11] стверджує, що BWBP — це точно нерозподілений NC1. Доведення теореми використовує нерозв'язність групи симетрії S 5 {\displaystyle S_{5}} [10].

Доказ теореми Баррінгтона

Доведемо, що розгалужену програму (РП) зі сталою шириною і поліноміальним розміром можна перетворити на схему з NC1.

Від супротивного: нехай є схема C із NC1. Без обмеження загальності, вважатимемо, що в ній використовуються тільки вентилі І і НЕ.

Визначення: РП називається такою, що σ {\displaystyle \sigma } -обчислює булеву функцію f {\displaystyle f} або ( σ f ) {\displaystyle (\sigma -f)} , якщо при f = 0 {\displaystyle f=0} вона дає результат — тотожну перестановку, а при f = 1 {\displaystyle f=1} її результат — σ {\displaystyle \sigma } -перестановка. Оскільки наша схема C описує якусь булеву функцію f {\displaystyle f} і тільки її, можемо взаємно замінювати ці терміни.

Для доведення використаємо дві леми:

Лема 1. Якщо є РП, що σ {\displaystyle \sigma } -обчислює f {\displaystyle f} , то існує і РП, що σ 1 {\displaystyle \sigma ^{-1}} -обчислює f {\displaystyle f} (тобто, рівна i d {\displaystyle id} при f = 0 {\displaystyle f=0} , і рівна σ 1 {\displaystyle \sigma ^{-1}} при f = 1 {\displaystyle f=1} ).

Доведення: оскільки σ {\displaystyle \sigma } і σ 1 {\displaystyle \sigma ^{-1}}  — цикли, а будь-які два цикли є спряженими, то існує така перестановка π {\displaystyle \pi } , що σ 1 {\displaystyle \sigma ^{-1}} = π σ π 1 {\displaystyle \pi \sigma \pi ^{-1}} . Тоді домножимо на π {\displaystyle \pi } перестановки p 1 {\displaystyle p_{1}} і q 1 {\displaystyle q_{1}} з першої інструкції РП зліва (щоб отримати перестановки π p 1 {\displaystyle {\pi }p_{1}} і π q 1 {\displaystyle {\pi }q_{1}} ), а перестановки з останньої інструкції домножимо на π 1 {\displaystyle \pi ^{-1}} справа (отримаємо p n π 1 {\displaystyle p_{n}\pi ^{-1}} і q n π 1 {\displaystyle q_{n}\pi ^{-1}} ). Якщо до наших дій (без обмеження загальності) p 1 p 2 . . . p n {\displaystyle {p_{1}}{p_{2}}...{p_{n}}} дорівнював i d {\displaystyle id} , то тепер результат буде π i d π 1 = i d {\displaystyle {\pi }id{\pi }^{-1}=id} , а якщо дорівнював σ {\displaystyle \sigma } , то результат дорівнює π σ π 1 = σ 1 {\displaystyle \pi \sigma \pi ^{-1}=\sigma ^{-1}} . Так, ми отримали РП, що σ 1 {\displaystyle \sigma ^{-1}} -обчислює f {\displaystyle f} , такої ж довжини (кількість інструкцій не змінилася).

Примітка: якщо домножити вивід РП ( σ 1 f ) {\displaystyle (\sigma ^{-1}-f)} на σ {\displaystyle \sigma } справа, то очевидним чином отримаємо РП, що σ {\displaystyle \sigma } -обчислює функцію ¬ f {\displaystyle {\neg }f} .

Лема 2. Якщо є дві РП: що σ {\displaystyle \sigma } -обчислює f {\displaystyle f} і γ {\displaystyle \gamma } -обчислює t {\displaystyle t} з довжинами l 1 {\displaystyle l_{1}} і l 2 {\displaystyle l_{2}} , де σ {\displaystyle \sigma } і γ {\displaystyle \gamma }  — 5-циклічні перестановки, то існує РП з 5-циклічною перестановкою ε = γ σ γ 1 σ 1 {\displaystyle \varepsilon =\gamma \sigma \gamma ^{-1}\sigma ^{-1}} така, що РП ε {\displaystyle \varepsilon } -обчислює f t {\displaystyle f{\wedge }t} , і її розмір не перевищує 2 ( l 1 {\displaystyle 2(l_{1}} + l 2 ) {\displaystyle l_{2})} .

Доведення: викладемо «в ряд» інструкції чотирьох РП: ( γ t ) {\displaystyle (\gamma -t)} , ( σ f ) {\displaystyle (\sigma -f)} , ( γ 1 t ) {\displaystyle (\gamma ^{-1}-t)} , ( σ 1 f ) {\displaystyle (\sigma ^{-1}-f)} (будуємо зворотні за лемою 1). Якщо одна або обидві функції видають 0, то результат великої програми ε = i d {\displaystyle \varepsilon =id} : наприклад, при f = 0 , t = 1 , ε = i d σ i d σ 1 = i d {\displaystyle f=0,t=1,\varepsilon =id{\sigma }id{\sigma }^{-1}=id} . Якщо обидві функції видають 1, то ε = γ σ γ 1 σ 1 {\displaystyle \varepsilon =\gamma \sigma \gamma ^{-1}\sigma ^{-1}} . Тут γ σ γ 1 σ 1 i d <=> γ σ σ γ {\displaystyle \gamma \sigma \gamma ^{-1}\sigma ^{-1}\neq id<=>\gamma \sigma \neq \sigma \gamma } , що істинне, оскільки ці перестановки 5-циклічні (через нерозв'язність групи симетрії S 5 {\displaystyle S_{5}} ). Довжина нової РП обчислюється за визначенням.

{\displaystyle } Доведення теореми

Доводитимемо за індукцією. Припустимо, що ми маємо схему C зі входами x 1 , . . . , x n {\displaystyle x_{1},...,x_{n}} і що для всіх підсхем D і 5-циклічних перестановок σ {\displaystyle \sigma } існує РП, що σ {\displaystyle \sigma } -обчислює D. Покажемо, що для всіх 5-перестановок σ {\displaystyle \sigma } існує РП, що σ {\displaystyle \sigma } -обчислює C.

  • Якщо схема C видає x i {\displaystyle x_{i}} , то РП має одну інструкцію: перевірити значення x i {\displaystyle x_{i}} (0 або 1), і віддати i d {\displaystyle id} або σ {\displaystyle \sigma } (відповідно).
  • Якщо схема C видає ¬ {\displaystyle \neg } A для якоїсь іншої схеми A, за приміткою до леми 1 створимо РП, що σ {\displaystyle \sigma } -обчислює ¬ {\displaystyle \neg } A.
  • Якщо схема C видає A {\displaystyle \wedge } B для схем A і B, створимо потрібну РП за лемою 2.

Розмір кінцевої розгалуженої програми не перевершує 4 d {\displaystyle 4^{d}} , де d {\displaystyle d}  — глибина схеми. Якщо у схеми логарифмічна глибина, то в РП поліноміальна довжина.

Примітки

  1. Towards a complexity theory of synchronous parallel computation. D L'Enseignement mathematique 27 (англ.). Архів оригіналу за 10 Березня 2022. Процитовано 10 Березня 2022.
  2. Cook, Stephen A. (1 січня 1985). A taxonomy of problems with fast parallel algorithms. Information and Control. International Conference on Foundations of Computation Theory (англ.). 64 (1): 2—22. doi:10.1016/S0019-9958(85)80041-3. ISSN 0019-9958.
  3. Pippenger, Nicholas (1979). On simultaneous resource bounds. 20th Annual Symposium on Foundations of Computer Science (SFCS 1979) (English) : 307—311. doi:10.1109/SFCS.1979.29. ISSN 0272-5428.
  4. Arora & Barak (2009) p.120
  5. а б в Arora & Barak (2009) p.118
  6. Papadimitriou (1994) Theorem 16.1
  7. а б Clote & Kranakis (2002) p.437
  8. Clote & Kranakis (2002) p.12
  9. S. Bellantoni and I. Oitavem (2004). Separating NC along the delta axis. Theoretical Computer Science. 318 (1–2): 57—78. doi:10.1016/j.tcs.2003.10.021.
  10. а б Clote & Kranakis (2002) p.50
  11. Barrington, David A. (1989). Bounded-Width Polynomial-Size Branching Programs Recognize Exactly Those Languages in NC1 (PDF). J. Comput. Syst. Sci. 38 (1): 150—164. doi:10.1016/0022-0000(89)90037-8. ISSN 0022-0000. Zbl 0667.68059.

Посилання

  • Arora, Sanjeev; Barak, Boaz (2009). Computational complexity. A modern approach. Cambridge University Press. ISBN 978-0-521-42426-4. Zbl 1193.68112.
  • Clote, Peter; Kranakis, Evangelos (2002). Boolean functions and computation models. Texts in Theoretical Computer Science. An EATCS Series. Berlin: Springer-Verlag. ISBN 3-540-59436-1. Zbl 1016.94046.
  • Greenlaw, Raymond, James Hoover, and Walter Ruzzo. Limits To Parallel computation; P-Completeness Theory. [Архівовано 4 Червня 2013 у Wayback Machine.] Архивная копия від 4 червня 2013 на Wayback Machine ISBN 0-19-508591-4
  • Kozen, Dexter C. (1992). The design and analysis of algorithms. Lectures 28 — 34 and 36
  • Kozen, Dexter C. (2006). Theory of Computation. Texts in Computer Science. Springer-Verlag. ISBN 1-84628-297-7. Zbl 1102.68025. Lecture 12: Relation of NC to Time-Space Classes
  • Papadimitriou, Christos (1993). Section 15.3: The class NC. Computational Complexity (вид. 1st). Addison Wesley. с. 375–381. ISBN 0-201-53082-1.
  • Straubing, Howard (1994). Finite automata, formal logic, and circuit complexity. Progress in Theoretical Computer Science. Basel: Birkhäuser. ISBN 3-7643-3719-2. Zbl 0816.68086.
  • Vollmer, Heribert (1998). Introduction to circuit complexity. A uniform approach. Texts in Theoretical Computer Science. Berlin: Springer-Verlag. ISBN 3-540-64310-9. Zbl 0931.68055.
Freebase: /m/05jrf
  • п
  • о
  • р
Вважаються легкими
Припускаються складними
Вважаються складними
  • EXPTIME
  • NEXPTIME
  • EXPSPACE
  • 2-EXPTIME
  • PR
  • RE
  • Co-RE
  • RE-complete
  • Co-RE-complete
  • PH
Інше