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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

В теорії складності обчислень класом NC (від англ. Nick’s Class) називають множину задач розв'язності, що розв'язуються за полілогарифмічний час на паралельному комп'ютері з поліноміальним числом процесорів. Іншими словами, задача належить до класу NC, якщо існують константи і такі, що її можна розв'язати за час при використанні паралельних процесорів. Стівен Кук[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 — це множина задач розв'язності, розв'язуваних розподіленими булевими схемами з поліноміальною кількістю вентилів (з числом входів не більше двох) і глибиною , або розв'язуваних за час паралельним комп'ютером з поліноміальним числом процесорів. Очевидно,

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

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

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

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

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

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

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

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

Теорема Баррінгтона[ред. | ред. код]

Розгалужена програма з змінними, шириною і довжиною складається з послідовності інструкцій довжини . Кожна інструкція — це трійка , де  — це індекс змінної, яку потрібно перевірити , а і  — це функції перестановки із в . Число називаються станами розгалуженої програми. Програма починається в стані 1, і кожна інструкція змінює стан на або , залежно від того, дорівнює -та змінна 0 чи 1.

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

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

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

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

Доказ теореми Баррінгтона[ред. | ред. код]

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

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

Визначення: РП називається такою, що -обчислює булеву функцію або , якщо при вона дає результат — тотожну перестановку, а при її результат — -перестановка. Оскільки наша схема C описує якусь булеву функцію і тільки її, можемо взаємно замінювати ці терміни.

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

Лема 1. Якщо є РП, що -обчислює , то існує і РП, що -обчислює (тобто, рівна при , і рівна при ).

Доведення: оскільки і  — цикли, а будь-які два цикли є спряженими, то існує така перестановка , що = . Тоді домножимо на перестановки і з першої інструкції РП зліва (щоб отримати перестановки і ), а перестановки з останньої інструкції домножимо на справа (отримаємо і ). Якщо до наших дій (без обмеження загальності) дорівнював , то тепер результат буде , а якщо дорівнював , то результат дорівнює . Так, ми отримали РП, що -обчислює , такої ж довжини (кількість інструкцій не змінилася).

Примітка: якщо домножити вивід РП на справа, то очевидним чином отримаємо РП, що -обчислює функцію .

Лема 2. Якщо є дві РП: що -обчислює і -обчислює з довжинами і , де і  — 5-циклічні перестановки, то існує РП з 5-циклічною перестановкою така, що РП -обчислює , і її розмір не перевищує + .

Доведення: викладемо «в ряд» інструкції чотирьох РП: , , , (будуємо зворотні за лемою 1). Якщо одна або обидві функції видають 0, то результат великої програми : наприклад, при . Якщо обидві функції видають 1, то . Тут , що істинне, оскільки ці перестановки 5-циклічні (через нерозв'язність групи симетрії ). Довжина нової РП обчислюється за визначенням.

Доведення теореми

Доводитимемо за індукцією. Припустимо, що ми маємо схему C зі входами і що для всіх підсхем D і 5-циклічних перестановок існує РП, що -обчислює D. Покажемо, що для всіх 5-перестановок існує РП, що -обчислює C.

  • Якщо схема C видає , то РП має одну інструкцію: перевірити значення (0 або 1), і віддати або (відповідно).
  • Якщо схема C видає A для якоїсь іншої схеми A, за приміткою до леми 1 створимо РП, що -обчислює A.
  • Якщо схема C видає AB для схем A і B, створимо потрібну РП за лемою 2.

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

Примітки[ред. | ред. код]

  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.

Посилання[ред. | ред. код]