Prawdopodobnie jakikolwiek problem z P kompleksem nie ma wydajnego algorytmu równoległego. Czemu ?
Istnienie P -Complete problemów jest najważniejszą wskazówką, że (P∩POLYLOGSPACE)≠P . Pytanie brzmi zatem, dlaczego ta hipoteza jest istotna dla obliczeń równoległych? Zacznijmy od zasobów używanych w obliczeniach. W przypadku przetwarzania sekwencyjnego: czas i przestrzeń; dla obliczeń równoległych: czas i sprzęt (liczba procesorów). Czy istnieje związek? Tak! Przestrzeń sekwencyjna ↔ czas równoległy; Czas sekwencyjny ↔ sprzęt równoległy. Zależność między przestrzenią sekwencyjną a czasem równoległym wydaje się być niezależna od przyjętego modelu obliczeń równoległych; prowadzi to do następnej, tak zwanej tezy obliczeń równoległych, która nie jest udowodniona.
(Chandra i Stockmeyer) Każde obliczenie bazy TM o złożoności przestrzennej może być symulowane w równoległym modelu obliczeniowym w czasie i każde obliczenie równoległy model obliczeniowy o złożoności czasowej może być symulowany przez TM o złożoności przestrzennej .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))
Klasą problemów możliwych do rozwiązania sekwencyjnie w przestrzeni wielomianowej jest a zestaw problemów możliwych do rozwiązania w czasie wielomianowym to Ponieważ uważa się za znacznie większą klasę problemów niż , teza określa ilościowo efektywną poprawę możliwą dzięki równoległości. Konsekwencją tej tezy jest to, że PRAM może rozwiązać problemy związane z w czasie wielomianowym… Niestety nie! Teza obliczeń równoległych sugeruje, że faktycznie możemy poradzić sobie z problemami należącymi doP P S P A C E P N P P S P A C EPSPACEPPSPACEPNPPSPACE… Ale wymaga to wykładniczej liczby procesorów! Działa kompromis czasoprzestrzenny: wykładniczy czas w sekwencyjnym modelu obliczeniowym jest przekształcany w wykładniczą liczbę procesorów w równoległym modelu obliczeniowym, podczas gdy przestrzeń wielomianowa w sekwencyjnym modelu obliczeniowym jest przekształcana w czas wielomianowy równolegle model obliczeniowy.
Ten kompromis jest łatwiejszy do zrozumienia, jeśli staramy się ograniczyć zarówno czas równoległe i równoległe sprzętu: jeśli model obliczeń równoległych posiada szereg wielomian procesory, wtedy klasa problemy rozwiązywalne w równoległym czasie wielomian . Ograniczając liczbę procesorów do wielomianu, możemy poprawić wydajność maszyny sekwencyjnej, ale nie więcej niż czynnik wielomianowy. W ten sposób możemy zmniejszyć stopień wielomianu reprezentującego złożoność czasową, ale nie jesteśmy w stanie wykorzystać równoległości do zmniejszenia kosztów wykładniczych do kosztów wielomianowych.P
Problemy rozwiązane równolegle wielomianowej złożoności czasowej są problemy te należące do . Wielomianowe ograniczenie liczby procesorów prowadzi do równoległego modelu obliczeniowego równoważnego TM. Istnieją dwa ważne względy praktyczne: która wielomianowa liczba procesorów jest akceptowalna / niedroga? W praktyce wielomianowa liczba procesorów ma być liniowa lub bliska. Który czas subpolinomialny jest osiągalny? Okazało się, że prawie wszystkie możliwe równolegle możliwe problemy mogą osiągnąć równoległy czas polilogarytmiczny. Równolegle złożoność czasowa, która jest logarytmiczna w długości wejściowej, stanowi wydajne obliczenie równoległe. Algorytm równoległy jest uważany za wydajny, jeśli przy wielomianowej liczbie procesorów jego złożoność czasowa jest polilogarytmiczna.P
Biorąc pod uwagę problem gdzie i są stałymi, równoległa teza obliczeniowa implikuje istnienie równoległego algorytmu dla o złożoności czasowej gdzie jest stałą. Porównanie czasu sekwencyjnego i równoległego pozwala na sklasyfikowanie jako problemu wysoce równoległego (z perspektywy czasu).k h R O ( ( l o g n ) k ′ ) k ′ RR∈TIME_SPACETM(nk,(logn)h)khRO((logn)k′)k′R
Z tezy o obliczeniach równoległych wynika, że jest klasą problemów wysoce równoległych. nie zawiera kompletnych problemów związanych z redukcją przestrzeni na kłody; oznacza to . Wygląda na to żeP O L Y L O G S P A C E P O L Y L O G S P A C E ≠ PPOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACE≠P
- POLYLOGSPACE⊄P
- P⊄POLYLOGSPACE
P P - ( P ∩ P O L Y L O G S P A CP∩POLYLOGSPACE zawiera problemy, które można rozwiązać w czasie wielomianowym za pomocą przestrzeni polilogarytmicznej. Problemy z prawdopodobnie należą do .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 CNC (klasa Nicka - tak zwana na cześć Nicholasa Pippengera, pierwsza w 1979 roku, która ją zidentyfikowała i scharakteryzowała) to klasa problemów, które można rozwiązać w czasie polilogarytmicznym (tj. Ze złożonością czasową z wielomianową liczbą procesorów (tj. ograniczona przez dla niektórych funkcji wielomianu gdzie jest rozmiarem problemu) Teza obliczeń równoległych zakłada .O((logn)k))O(f(n))fnNC⊂(P∩POLYLOGSPACE)
Niestety, z definicji obejmuje również wiele problemów, których nie można skutecznie zrównoleglać. Najbardziej niesławnym przykładem jest równoległe wyszukiwanie binarne . Problem polega na tym, że ten problem ma złożoność polilogarytmiczną nawet dla = 1. Każdy algorytm sekwencyjny wymagający co najwyżej czasu logarytmicznego w najgorszym przypadku jest w niezależnie od jego równoległej wykonalności!pNCpNC
Teraz możemy wreszcie wyjaśnić, dlaczego problemy z uzupełnieniem są najtrudniejszymi problemami możliwymi do zrównoleglenia. Biorąc pod uwagę problem ukończony , bardzo mało prawdopodobne jest istnienie wydajnego algorytmu równoległego: jeśli taki równoległy algorytm istniałby ze złożonością czasową , to teza obliczeń równoległych sugeruje istnienie algorytm sekwencyjny o złożoności przestrzennej dla tego samego problemu. Ponieważ jest -Complete Problem ten z kolei oznacza, że każdy problem może być rozwiązany w przestrzeni poli-log: . Jak już wiesz, zamiast tego wierzymy w toP Q O ( ( l o g n ) k ) O ( ( l o g n ) k ′ ) Q P P ( P ∩ P O ⊂ PPPQO((logn)k)O((logn)k′)QPP( P ∩ P O L Y L O G(P∩POLYLOGSPACE)=P(P∩POLYLOGSPACE)⊂P , chociaż nie jesteśmy jeszcze w stanie tego udowodnić.
Ostatnia uwaga na temat wymagań procesora wielomianowego. To jest teoretyczne stwierdzenie. W praktyce: wymagania procesora, które rosną szybciej niż rozmiar problemu, mogą nie być naprawdę przydatne.