P-повнота та паралельні обчислення


23

Я нещодавно читав про алгоритми перевірки подібності і читав, що проблема є P-завершеною . Крім того, наслідком цього є те, що ця проблема, або будь-яка проблема, повна P, навряд чи матиме ефективні паралельні алгоритми.

У чому полягає інтуїція цього останнього твердження?


Це стосується NC (див. Відповіді), який є жахливим способом формалізації "ефективно паралелізувати".
Рафаель

Відповіді:


17

Будь-яка -повна проблема, навряд чи матиме ефективний паралельний алгоритм. Чому?P

Існування -повний проблем є найбільш важливою ознакою того, що . Тоді питання полягає в тому, чому ця гіпотеза стосується паралельних обчислень? Почнемо з ресурсів, що використовуються в обчисленні. Для послідовних обчислень: час і простір; для паралельних обчислень: час та обладнання (кількість процесорів). Чи є відношення? Так! Послідовний простір ↔ паралельний час; Послідовний час ↔ паралельне обладнання. Відповідність між послідовним простором та паралельним часом, здається, не залежить від прийнятої моделі паралельних обчислень; це призводить до наступного, так званого, паралельного обчислювальної тези, що є недоведеним.P(PPOLYLOGSPACE)P

(Чандра та Стокмейєр) Кожне обчислення ТМ з просторовою складністю можна моделювати в паралельній обчислювальній моделі в часі та кожному обчисленні паралельна обчислювальна модель з часовою складністю може бути змодельована ТМ з просторовою складністю .T ( n ) = O ( S ( n ) O ( 1 ) ) T ( n ) S ( n ) = O ( T ( n ) O ( 1 ) )S(n)T(n)=O(S(n)O(1))T(n)S(n)=O(T(n)O(1))

Клас задач, що розв'язуються послідовно в поліноміальному просторі - а набір задач, що розв'язуються в поліномійному часі - Оскільки вважається, що є набагато більшим класом проблем, ніж , теза кількісно визначає ефективне вдосконалення, що можливе завдяки паралелізму. Наслідком цієї тези є те, що PRAM може вирішити неповні задачі в поліномічний час ... На жаль, ні! Паралельна обчислювальна теза означає, що ми можемо реально мати справу з проблемамиP P S P A C E P N P P S P A C EPSPACEPPSPACEPNPPSPACE… Але для цього потрібна експоненціальна кількість процесорів! Працює компроміс часу та простору: Експоненціальний час на послідовній обчислювальній моделі перетворюється на експоненціальну кількість процесорів на паралельній обчислювальній моделі, тоді як поліноміальний простір на послідовній обчислювальній моделі перетворюється в поліноміальний час на паралельній обчислювальна модель.

Цей компроміс буде легше зрозуміти , якщо ми намагаємося обмежити як паралельне час і паралельні апаратним: якщо паралельна обчислювальна модель має поліноміальний число процесорів, то клас задач , що вирішується в паралельному поліноміальний час . Якщо ми обмежимо кількість процесорів поліномом, ми можемо поліпшити продуктивність послідовної машини, але не більше, ніж множинний коефіцієнт. Таким чином, ми можемо зменшити ступінь полінома, що представляє часову складність, але ми не в змозі використовувати паралелізм для зменшення експоненціальних витрат до поліноміальних витрат.P

Завдання , які вирішуються паралельно з поліноміальної тимчасової складністю є тими проблемами , які стосуються . Поліноміальне обмеження на кількість процесорів призводить до паралельної обчислювальної моделі, еквівалентної TM. Є два важливих практичних міркування: яка поліноміальна кількість процесорів є прийнятною / доступною? На практиці поліноміальне число процесорів має бути лінійним або близьким. Який підполіномічний час досяжний? З'ясувалося, що майже всі сильно паралельні можливі задачі можуть досягти полілогіармічного паралельного часу. Паралельно часова складність, яка є логарифмічною у вхідній довжині, являє собою ефективне паралельне обчислення. Паралельний алгоритм вважається ефективним, якщо, враховуючи поліноміальну кількість процесорів, його часова складність є полілогіармічною.P

Враховуючи задачу де і є константами, теза паралельного обчислення передбачає наявність паралельного алгоритму для зі складністю часу де - константа. Порівняння між послідовним і паралельним часом дозволяє класифікувати як задачу, яка є дуже паралельною (з часової точки зору).k h R O ( ( l o g n ) k )RTIME_SPACETM(nk,(logn)h)khRO((logn)k) RkR

З паралельної обчислювальної тези випливає, що - клас задач, які є дуже паралельними. не містить проблем, повних щодо скорочення простору журналу; це означає . Здається, щоП О Л Й Л О Г С П А С Е П О Л Й Л О Г С П А С Е ПPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACEP

  1. POLYLOGSPACEP
  2. PPOLYLOGSPACE

P P - ( P P O L Y L O G S P A C E )PPOLYLOGSPACE містить проблеми, які можна вирішити в поліноміальний час, використовуючи полілогіармічний простір. -повні проблеми, ймовірно, належать до .PP(PPOLYLOGSPACE)

O ( ( l o g n ) k ) ) O ( f ( n ) ) f n N C ( P P O L Y L O G S P A C E )NC (клас Ніка - так його називають на честь Ніколаса Піппенгера, перший виявив і охарактеризував це в 1979 році) - це клас проблем, який можна вирішити в полілогіармічний час (тобто з часовою складністю з поліномним числом процесорів (тобто, обмежених для деякої поліноміальної функції де - розмір проблеми). Паралельна обчислювальна теза передбачає .O((logn)k))O(f(n))fnNC(PPOLYLOGSPACE)

Однак, на жаль, за визначенням включає також безліч проблем, які не є ефективно паралельними. Найвідоміший приклад - паралельний бінарний пошук . Проблема в тому, що ця проблема має складну полілогоарифмічну часову складність навіть для = 1. Будь-який послідовний алгоритм, що вимагає у найбільш логарифмічний час у гіршому випадку, знаходиться в незалежно від його паралельної можливості!p N CNCpNC

Тепер ми можемо нарешті пояснити, чому -повні проблеми є найважчими паралелізованими проблемами. Враховуючи -повне завдання , малоймовірним є існування ефективного паралельного алгоритму: якщо такий паралельний алгоритм існував би із складністю у часі , теза про паралельне обчислення означатиме існування послідовний алгоритм із складністю простору для тієї ж задачі. Так є -повний проблема в свою чергу , означатиме , що кожна проблема в може бути вирішена в полі-лог простору: . Як ви вже знаєте, ми натомість віримо в цеP Q O ( ( l o g n ) k ) O ( ( l o g n ) k ) Q P P ( P P O L Y L O G S P A C E ) = P ( P P O L Y L O G S P A C E )PPQO((logn)k)O((logn)k)QPP(PPOLYLOGSPACE)=P(PPOLYLOGSPACE)P , хоча ми ще не в змозі цього довести.

Одне остаточне спостереження щодо вимоги поліноміального процесора. Ну, це теоретичне твердження. На практиці: потреба в процесорі, що зростає швидше, ніж розмір проблеми, може бути не дуже корисною.


10

Оскільки "ефективна паралель" потрапляє всередину ("Клас Ніка" проблем, що вирішуються в полілогіармічний час з поліноміальним числом процесорів), і поширена думка, що . Отже, не вважається, що будь- яка проблема має ефективний паралельний алгоритм (оскільки це означає, що ).NCN CP P - c o m p l e t e P = N CNCPP-completeP=NC

Звичайно, все це залежить від того, що , як ви знаєте, це відкрита проблема, що не знаходиться на першому рівні , тобто ми не знаємо, чи .P N C N C 1PNCPPNCNC1P

Більше того, ми навіть не знаємо, чи не зможете ви вирішити проблеми в в , тобто постійній глибині (= постійний паралельний час) булевих ланцюгах з воротами.A C 0 [ 6 ]PAC0[6]mod6

Для отримання додаткової інформації подивіться наступну книгу:

Реймонд Грінлау, Х. Джеймс Гувер, Вальтер Л. Руццо, " Обмеження паралельних обчислень: Теорія повноти P ", 1995.


NC також включає безліч проблем, які не є ефективно паралельними. Детальну інформацію див. У моїй відповіді.
Массімо Кафаро

Ви можете прямо сказати, що "Якщо будь-яка проблема в то ". N C N C = PP-completeNCNC=P
Олексій десять Брінк

1
@unforgiven, існують різні думки щодо того, який клас правильно фіксує алгоритми "ефективних паралельних", тому я використав клас, який вважається верхньою межею. Я думаю, що P vs. NC є типовою причиною, чому люди думають, що проблеми, пов'язані з P-завершенням, не мають ефективних паралельних алгоритмів, хоча є цікаві деталі, як зазначено у вашій відповіді. Я додав посилання на свою відповідь.
Каве

1
@Kaveh, я згоден з тобою. Більшість людей думає про це саме в цих умовах. Ось чому я хотів запропонувати дещо іншу точку зору, виходячи з тези про паралельні обчислення. Наведене вами посилання є чудовим і фактично є найкращим поводженням з теми, яку я коли-небудь читав.
Массімо Кафаро

6

Відповідь Каве охоплює звичайне визначення "паралелізму", яке є НК. Питання про те, чи P NC є одним із найскладніших питань в теорії складності (і в чомусь так само актуально, як і питання P NP).<<<

Інтуїція, що стоїть за цим, полягає в тому, що деякі проблеми в P, як лінійне програмування або порядок DFS, відчувають, що вони мають багато залежностей, які змушують довгий "критичний шлях", який неможливо паралелізувати. Це вже не доказ, ніж недетермінізм, який здається дуже потужним, але це основна ідея.

Редагувати: Щоб уточнити коментарі, суть цієї відповіді полягає в тому, щоб сказати, чому (деякі) люди не вважають, що P і NC однакові. Так само, як і P і NP, ніхто не знає, як довести, чи різні вони різні, але є щось про важкі проблеми, які змушують (деякі) комп'ютерних працівників вважати, що вони є.

Ще одна сторона полягає в тому, що NC - це "полілогічний час на багаточленових процесорах", що вимагає дуже драматичного прискорення, але дає багато процесорів. Таким чином, це може не відповідати практичному поняттю паралелізації.

Зокрема, якщо ви вважаєте, що P NP, то ви почнете оглядатись на евристику та алгоритми наближення відразу на проблеми, повні NP. З іншого боку, навіть якщо ви думаєте, що NC менший за P, ви можете отримати нетривіальні прискорення з-за паралелізму, доступного на сучасних комп’ютерах.<


Інтуїція, яку ви даєте, не є правильною, той факт, що не можна перетворити певний алгоритм в ефективний паралельний, не означає, що проблему неможливо вирішити в ефективний паралельний час. Можна сказати щось подібне, щоб сказати, головним чином, це не в тому що ви повинні перевірити багато чисел і, здається , більшість з них не пов'язані, але це помилково, як ми знаємо, і первинність є в . ПPP
Каве

Але пункт Луї слід розглядати як інтуїцію, і це не зовсім помилково. Що все ж проблематично, це те, що P-повнота DFS дуже крихка - вам потрібна лексикографія DFS, а також вона є в RNC і т. Д.
Суреш,

@ Суреш: Так. Я маю на увазі, я поняття не маю, як довести цей лекс. замовлення DFS неможливо імітувати детерміновано набагато краще, ніж просто робити це, але люди не "відчувають" так, як це можливо без випадковості. (Якщо це має значення, моя "релігія" полягає в тому, що багато випадковості має певну силу.)
Луї,

@Kaveh: Цей "критичний шлях" (також його називають "робоча глибина") - не особливість алгоритму, а проблема; тому важко показати. Це найдовша послідовність «робочих пиріжків», які досліджуються послідовно (за будь-яким алгоритмом).
Рафаель

@Raphael, зважаючи на мову, немає відомих причин, чому алгоритм, що розв’язує його, повинен слідувати певній послідовності кроків, якщо ви могли б показати, що це означатиме нижню межу, якої у нас немає. І це одна з причин того, чому довести нижню межу так складно, що ви не можете припустити нічого про те, як виглядатиме обчислення алгоритму, що вирішує проблему. Це моя думка.
Каве

3

Будьте дуже уважні до того, хто використовує "ефективні паралельні алгоритми", щоб мати на увазі, що саме.

Старіші відповіді пояснюють перспективу теорії складності. Там "ефективний" зазвичай означає щось невиразне, як "час виконання в час з процесорами". Зверніть увагу, що кількість процесорів може залежати від розміру входу!O ( g ( n ) )O(f(n))O(g(n))

Зокрема, часто називається клас NC - це

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

Це не має нічого спільного з тим, чи існують паралельні алгоритми для цих проблем, які ефективніші з практичної точки зору¹:

  • Якщо у вас є алгоритм NC, ви не отримаєте інформації про те, як вирішити проблему (ефективно) на будь-якій машині з фіксованою кількістю процесорів.
  • Просто те, що не існує алгоритму NC для проблеми, не означає, що немає "справжнього"; тільки тому, що ми не можемо розділити проблему на поліноміально багато дуже маленьких шматочків, це не означає, що ми не можемо розбити її на постійно багато досить дрібних, як росте .n

    Наприклад, на багатьох процесорах, що мають спільну пам’ять, парсинг CYK можна проводити паралельно з асимптотично оптимальним прискоренням (див. Мою магістерську дисертацію , незважаючи на те, що без контекстного розбору P є повним.

Опис ефективності на машинах з кінцево багатьма процесорами корисним чином вимагає більш точного аналізу, ніж оскільки прискорення швидкості обмежено кінцевою постійною кількістю процесорів². Ви рідко зустрічаєте це в теорії складності. Тому, якщо ви хочете дізнатися про паралельні алгоритми, які використовуються в реальному світі, я б радив заглянути в іншому місці.O()


  1. Нехай функція виконання паралельного алгоритму. Ви можете назвати алгоритм "ефективним", якщо , або якщо для функція виконання хорошого послідовного алгоритму. Я пропоную це більш суворим способом у своїй магістерській роботі , спираючись на цитовану в них літературу. T 1 ( n ) / T p ( n ) p T 1 ( n ) T ( n ) TTp:NR0T1(n)/Tp(n)pT1(n)T(n)T

  2. Це не завжди так; Ієрархія пам’яті та обладнання можуть принаймні збільшувати прискорення, хоча б іноді. Однак буде ще одна константа.


0

Припустимо, завтра хтось виявив доказ того, що P = NC. Якими були б наслідки для досліджень інформатики та практичних застосувань у цьому випадку?

Це питання було позначене як таке, що повторює це питання, тому дозвольте мені просто припустити, що це дійсно дублікат, і надайте одну можливу відповідь.

Ми знаємо, що NC! = PSPACE, отже, доказ того, що P = NC також доведеться P! = PSPACE. Це може не здатися великою справою, але це один із наслідків для досліджень інформатики.

Чому ми знаємо NC! = PSPACE? Добре, що ми знаємо NC k ⊆ DSPACE (O (log k )), тому можемо просто використовувати теорему просторової ієрархії.


Що стосується практичних застосувань, програми навколо лінійного (і опуклого) програмування можуть бути настільки спокусливими, що власні паралельні архітектури разом з компіляторами для ефективного перекладу формувань лінійного програмування до цього обладнання можуть бути розроблені та продані.

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