Яка велика версія NC?


21

O ( log c n ) O ( n k ) c k n c 2 n kNC фіксує ідею про ефективну паралелізацію, і одне її тлумачення - це проблеми, що вирішуються за часом використовуючи паралельні процесори для деяких констант , . Моє запитання, чи існує аналогічний клас складності, де час а кількість процесорів - . Як запит на заповнення:O(logcn)O(nk)cknc2nk

PNC означає як _ _ є E X PPEXP

Зокрема, мене цікавить модель, у якій у нас експоненціальна кількість комп’ютерів, розташованих у мережі з поліноміально обмеженим ступенем (скажімо, мережа не залежить від вводу / проблеми або щонайменше просто побудувати, чи будь-якого іншого розумного припущення про однаковість ). На кожному етапі:

  1. Кожен комп'ютер зчитує поліноміальну кількість повідомлень розміру поліномів, отриманих у попередньому кроці часу.
  2. Кожен комп'ютер виконує певні підрахунки в політи, які можуть залежати від цих повідомлень.
  3. Кожен комп’ютер передає повідомлення (з величиною довжини) кожному з своїх сусідів.

Як називається клас складності, що відповідає подібним моделям? Що можна прочитати про такі класи складності? Чи є якісь повні проблеми для такого класу?


пов'язане питання, я думаю: cstheory.stackexchange.com/q/2788/1037
Артем Казнатчеєв

Маємо , N C = A S p a c e T i m e ( O ( log n ) , ( log n ) O ( 1 ) ) , NCk=ASpaceTime(O(logn),(logn)k)NC=ASpaceTime(O(logn),(logn)O(1)) , E X P = T i m e ( 2 n O ( 1 ) ) . Тож відповідний клас N C k може бути чимось на зразок A S p a c e T i m e ( n O ( 1 ) , 2 O ( log nP=Time(nO(1))EXP=Time(2nO(1))NCkі тоді відповідним класомNC будеASpaceTime(n O ( 1 ) ,2 ( log n ) O ( 1 ) ). Це просто алгебраїчна маніпуляція, я не перевіряв, чи відповідає вона вашим вимогам, але я думаю, що вона задовольнить три умови, але не матиме експоненціально багато комп'ютерів. Я думаю, ви повинні відмовитися від цієї вимоги інакше (більше)ASpaceTime(nO(1),2O(logn)k)NCASpaceTime(nO(1),2(logn)O(1))
Kaveh

отриманий клас буде містити і аналогія не проводитиме , як N C P . EXPNCP
Каве

Я не розумію , де ви отримали а складність простору. Наскільки я знаю, N C дозволяє поліноміально багато воріт. Якщо ми хочемо йти по лінії вашого аналога, тоді ми повинні дивитися на N C як P T / W K ( l o g c n , n k ) / p o l y, а тоді клас складності, який я шукаю, - це щось як P T / W K ( n c , 2lognNCNCPT/WK(logcn,nk)/poly. Однак я сподівався, що є краща характеристика, що це. PT/WK(nc,2nk)/poly
Артем Казнатчеєв

Це є стандартним (хоча це не в зоопарку складності), перевірте, наприклад, Ruzzo, "Про складність єдиної схеми", 1981. Також я думаю, що вам слід працювати з однорідними класами, кожна функція має експоненціальне чергування розмірів / логічна глибина 2 ланцюгів (і це задовольнить три умови, якщо ми будемо використовувати обмежений вентилятор та глибини n ). І як я вже говорив, якщо експоненціально багато вузлів, то аналогія не дотримується. Також основна властивість паралельних обчислень є економія часу, наприклад , це є полі-часовий лаг в разі N C . Я думаю, що квазіполіномний час відповідав би полі-лог-часу. lognNC
Каве

Відповіді:


27

Я вважаю , що клас , який ви шукаєте . Припустимо, у вас є процесори e x p ( n k ) = 2 O ( n k ), що відповідають вимогам:PSPACEexp(nk)=2O(nk)

  1. Кожен комп'ютер зчитує поліноміальну кількість повідомлень розміру поліномів, отриманих у попередньому кроці часу.
  2. Кожен комп'ютер виконує певні підрахунки в політи, які можуть залежати від цих повідомлень.
  3. Кожен комп’ютер передає повідомлення (з величиною довжини) кожному з своїх сусідів.

Це можна змоделювати за допомогою схеми з шарами , де кожен шар має e x p ( n k ) "ворота", а кожен "ворота" робить поліномальний обчислення часу (задовольняючи частину 2) з поліномом вентилятор (задовольняє частину 1) і має поліноміальний вентилятор (задовольняє частину 3). poly(n)exp(nk)

Оскільки кожен затвор обчислює багаточленну функцію часу, кожен з них може бути замінений схемою розміру полінома (з AND / OR / NOT) звичайним способом. Зауважте, що поліноміальні вентилятори та вентилятори можуть бути 2, лише збільшуючи глибину на коефіцієнт . Залишилося рівномірне заглиблення p o l y ( n ) з глибиною e x p ( n k ) І / АБО / НЕ. Це точно чергуються поліноміальний час, яке точно Р С Р С Е .O(logn)poly(n)exp(nk)PSPACE


Райан, я не плачу, як ти ставиш експоненціальну кількість комп’ютерів у поліноміально багато шарів, мені здається, що глибина може бути експоненціальною, ти можеш пояснити це трохи більше, чому це можливо? Також мені здається, що тривіальна конструкція ланцюга CNF довільної заданої функції як вентилятор 2 схеми задовольнила би вимоги, я щось пропускаю?
Каве

1
@Kaveh: Я не розумію вашого першого питання. Щодо другого, хоча для будь-якої функції існує контур глибини-2 експоненціальної величини, NC (poly) вимагає, щоб ви могли генерувати схеми рівномірно, тому ви не можете створювати довільні схеми для кожного вхідного розміру.
Робін Котарі

@Robin, спасибі Напевно, я плутаю речі. (Я відчуваю, що глибина ланцюгів, що відповідають PSpace, повинна бути експоненціальною, також я думаю, що PSpace є EXP, як L є P, так що це те саме, коли L замінено NC на мене, дивно, я відчуваю, що клас ми догляд повинен бути між PSpace та EXP.) Я мушу трохи подумати, щоб зрозуміти, що тут відбувається.
Каве

@Kaveh, я призначив кількість шарів (тобто глибину) експоненціальною, тому глибина не може бути експоненціальною за визначенням. Існує експоненціально багато процесорів, тому вашій CNF знадобиться експоненціальний вентилятор, що порушує одну з умов. Глибина схем експоненціальної величини, що відповідають PSPACE, є многочлена. Причина це правда, і причина, що обидві аналогії є "дійсними" в певному сенсі ("PSPACE - це EXP, як L - P", а "PSPACE - EXP як NC - P"), тому що PSPACE = чергування полінома Час. Ми не знаємо, чи L = чергування логарифмічного часу (це NC1).
Райан Вільямс

Я думаю, що я краще розумію ситуацію, прочитавши ваші коментарі та Робін, дякую.
Каве

21

Як каже Райан, цей клас - PSPACE. Цей клас часто в літературі називають NC (poly). Ось пряма цитата з документа QIP = PSPACE :

Ми розглядаємо масштабований варіант NC, який є класом складності NC (poly), який складається з усіх функцій, обчислених поліноміально-просторовими однорідними сімействами булевих схем, що мають глибину полінома. (Позначення NC (2 poly ) також раніше використовувалося для цього класу [11].) Для проблем з рішенням відомо, що NC (poly) = PSPACE [10].

[10] А. Бородін. Про відношення часу та простору до розміру та глибини. Журнал обчислювальної техніки SIAM, 6: 733–744, 1977.

[11] А. Бородін, С. Кук, Н. Піппенгер. Паралельне обчислення для добре наділених кілець та обмежених простором імовірнісних машин. Інформація та контроль, 58: 113–136, 1983.

Один із способів побачити це - довести обидва включення безпосередньо. Щоб побачити, що NC (poly) знаходиться в PSPACE, зауважте, що ми можемо обчислити вихід кінцевих воріт рекурсивно, і нам буде потрібно лише стек розміру, рівний глибині ланцюга, який є многочленом. Щоб показати, що PSPACE знаходиться в NC (poly), зауважте, що QBF, який є повним PSPACE, може бути записаний у вигляді поліноміальної глибинної схеми з експоненціально багатьма воротами звичайним способом - існуючий кількісний коефіцієнт - це АБО ворота, кількісний кількісний показник є воротами І. Оскільки існує лише багаточленові квантори, то це поліноміальна схема глибини.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.