Клас складності 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 видає A B для схем A і B, створимо потрібну РП за лемою 2.
Розмір кінцевої розгалуженої програми не перевершує , де — глибина схеми. Якщо у схеми логарифмічна глибина, то в РП поліноміальна довжина.
Примітки
ред.- ↑ Towards a complexity theory of synchronous parallel computation. D L'Enseignement mathematique 27 (англ.). Архів оригіналу за 10 Березня 2022. Процитовано 10 Березня 2022.
- ↑ 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.
- ↑ 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.
- ↑ Arora & Barak (2009) p.120
- ↑ а б в Arora & Barak (2009) p.118
- ↑ Papadimitriou (1994) Theorem 16.1
- ↑ а б Clote & Kranakis (2002) p.437
- ↑ Clote & Kranakis (2002) p.12
- ↑ 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.
- ↑ а б Clote & Kranakis (2002) p.50
- ↑ 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.