Будь-яка -повна проблема, навряд чи матиме ефективний паралельний алгоритм. Чому?P
Існування -повний проблем є найбільш важливою ознакою того, що . Тоді питання полягає в тому, чому ця гіпотеза стосується паралельних обчислень? Почнемо з ресурсів, що використовуються в обчисленні. Для послідовних обчислень: час і простір; для паралельних обчислень: час та обладнання (кількість процесорів). Чи є відношення? Так! Послідовний простір ↔ паралельний час; Послідовний час ↔ паралельне обладнання. Відповідність між послідовним простором та паралельним часом, здається, не залежить від прийнятої моделі паралельних обчислень; це призводить до наступного, так званого, паралельного обчислювальної тези, що є недоведеним.P(P∩POLYLOGSPACE)≠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 ′ )R∈TIME_SPACETM(nk,(logn)h)khRO((logn)k′) Rk′R
З паралельної обчислювальної тези випливає, що - клас задач, які є дуже паралельними. не містить проблем, повних щодо скорочення простору журналу; це означає . Здається, щоП О Л Й Л О Г С П А С Е П О Л Й Л О Г С П А С Е ≠ ПPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACE≠P
- POLYLOGSPACE⊄P
- P⊄POLYLOGSPACE
P P - ( P ∩ P O L Y L O G S P A C E )P∩POLYLOGSPACE містить проблеми, які можна вирішити в поліноміальний час, використовуючи полілогіармічний простір. -повні проблеми, ймовірно, належать до .PP−(P∩POLYLOGSPACE)
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⊂(P∩POLYLOGSPACE)
Однак, на жаль, за визначенням включає також безліч проблем, які не є ефективно паралельними. Найвідоміший приклад - паралельний бінарний пошук . Проблема в тому, що ця проблема має складну полілогоарифмічну часову складність навіть для = 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(P∩POLYLOGSPACE)=P(P∩POLYLOGSPACE)⊂P , хоча ми ще не в змозі цього довести.
Одне остаточне спостереження щодо вимоги поліноміального процесора. Ну, це теоретичне твердження. На практиці: потреба в процесорі, що зростає швидше, ніж розмір проблеми, може бути не дуже корисною.