notatki

Transkrypt

notatki
Algorytmy Równoległe i Rozproszone
Część III - Układy kombinacyjne i
P-zupełność
Łukasz Kuszner
pokój 209, WETI
http://kaims.eti.pg.gda.pl/∼kuszner/
[email protected]
Oficjalna strona wykładu
http://kaims.eti.pg.gda.pl/∼kuszner/ARiR/
Wykład 15 godzin, Projekt 15 godzin
2017
1
Definicje
Notatki
Boolowskie układy kombinacyjne (o takich będziemy
mówić) są formalnym modelem dla układów logicznych. Układ reprezentujemy za pomocą digrafu, w którym krawędzie przenoszą jednokierunkowy sygnał logiczny, a wierzchołki obliczają elementarne funkcje logiczne.
1
Niech Bk = {f |f : {0, 1}k → {0, 1}} będzie zbiorem k
argumentowych funkcji logicznych.
Przez Boolowski układ kombinacyjny, lub w skrócie
układ kombinacyjny, rozumiemy etykietowany, skończony, acykliczny graf skierowany, w którym każdy z
wierzchołków jest:
Notatki
• wejściem, jeśli jego stopień wejściowy jest 0,
• wyjściem, jeśli jego stopień wyjściowy jest 0,
• bramką, jeśli jest funkcją typu B1 lub B2 .
Wierzchołek typu Bi musi mieć stopień wejściowy
(indeg) równy i, natomiast stopień wyjściowy (outdeg)
nie jest ograniczony.
Notatki
Zauważmy, że:
• wejścia i bramki mogą być jednocześnie wyjściami,
• układ
kombinacyjny
oblicza
funkcję
n
m
f : {0, 1} → {0, 1} , gdzie n jest liczbą
wejść, a m liczbą wyjść w układzie.
Interesującymi nas wielkościami będą rozmiar i głębokość układu.
Rozmiarem układu α, nazywamy liczbę jego wierzchołków size(α).
Głębokością układu α, nazywamy długość (liczbę krawędzi) najdłuższej ścieżki od wejścia do wyjścia w α i
oznaczamy depth(α).
2
2
Uwagi do przyjętych założeń
Dopuszczenie bramek o dowolnie dużej liczbie wyjść
może się wydawać nierealistyczne, jednak pokazano,
że ograniczenie liczby wyjść powoduje jedynie albo liniowy wzrost rozmiaru, albo głębokości układu.
Dopuszczenie bramek o nieograniczonym rozmiarze
wejścia może zmniejszyć głębokość układu o czynnik
log log size, ale za cenę wielomianowego zwiększenia
rozmiaru (wtedy za rozmiar przyjmuje się liczbę krawędzi w układzie) lub pozwala skonstruować układ o
głębokości 2 (korzystając z postaci kanonicznych) jednak za cenę wykładniczego wzrostu rozmiaru.
Z drugiej strony konwersja układu z bramkami o nieograniczonej liczbie wejść do układu w przedstawionym modelu może spowodować kwadratowy wzrost
rozmiaru i wzrost głębokości o czynnik proporcjonalny
do log size.
3
Notatki
3
Rodziny układów kombinacyjnych
Notatki
Pojedynczy układ oblicza nam funkcje logiczne o zadanym rozmiarze wejścia. Nie jest to sytuacja do jakiej
jesteśmy przyzwyczajeni myśląc o algorytmach i obliczeniach. Jeden algorytm powinien rozwiązywać problem bez względu na rozmiar wejścia. Również rozmiar
danych wyjściowych nie jest stały.
Tę sytuację modelujemy funkcją
fα : {0, 1}∗ → {0, 1}∗
i nieskończonym zbiorem układów {αn }, w którym
układ αn oblicza funkcję
fα : {0, 1}n → {0, 1}m(n) ,
gdzie m(n) jest największym rozmiarem wyjścia dla
danych o rozmiarze n.
Opis układów kombinacyjnych
Notatki
Jeśli nie ograniczymy sposobów definiowania rodzin
układów możemy definiować bardzo dziwne układy,
które np. rozwiązują problemy nierozwiązywalne. (zob.
LtPC str. 31).
Dlatego ograniczamy możliwość definiowania układów
do takich, które dają się szybko obliczyć.
4
Kodem standardowym αn dla układu α nazywamy ciąg
ze zbioru {0, 1}∗ zdefiniowany w sposób jednoznaczny dla danego układu αn w taki sposób, że różnym
układom odpowiadają różne kody standardowe. (zob.
LtPC str. 29).
Notatki
Definicja 1 Rodzinę układów kombinacyjnych {αn }
nazywamy jednorodną, jeśli przekształcenie 1n → αn
może być obliczone na deterministycznej maszynie Turinga o złożoności pamięciowej O(log size(αn )).
Przypadek, w którym funkcja m(n) = 1 jest użyteczny
dla definiowania języków formalnych.
Definicja 2 Niech {αn } oblicza funkcję
fα : {0, 1}∗ → {0, 1}
Językiem rozpoznawanym przez rodzinę układów αn
nazywamy zbiór
Lα = {x ∈ {0, 1}∗ | fα (x) = 1}.
5
Notatki
Definicja 3 Dla każdego k ­ 1 klasą NCk nazywamy
zbiór wszystkich języków rozpoznawanych przez jednorodną rodzinę {αn } o rozmiarze size(αn ) = nO(1) i głębokości depth(αn ) = O(logk n)
Notatki
Definicja 4 Klasą NC nazywamy zbiór
NC =
[
NCk
k­1
Podobnie jak klasy języków definiujemy FNCk jako
klasy funkcji z {0, 1}∗ w {0, 1}∗ obliczalnych przez
układy o rozmiarze nO(1) i głębokości O(logk n).
Celem powyższych definicji jest możliwość rozróżnienia problemów dla których możemy znaleźć „dobre,
równoległe” rozwiązanie i takich, dla których takiego
rozwiązania prawdopodobnie nie ma.
Definicja 5 Klasą P nazywamy zbiór wszystkich języków rozpoznawanych przez jednorodną rodzinę {αn }
o rozmiarze size(αn ) = nO(1) i głębokości depth(αn ) =
nO(1) .
Podobnie definiujemy FP jako klasę funkcji z {0, 1}∗
w {0, 1}∗ obliczalnych przez układy o rozmiarze nO(1)
i głębokości nO(1) .
6
Notatki
4
Notatki
Redukcje
Redukcje typu wiele-do-jeden
Definicja 6 Niech L, L0 będą językami, piszemy
L ¬m L0 , jeśli istnieje funkcja f taka, że x ∈ L wtedy
i tylko wtedy, gdy f (x) ∈ L0 . Podobnie:
• L ¬Pm L0 , jeśli f ∈ FP
k
L0 , jeśli f ∈ FNCk
• L ¬NC
m
0
• L ¬NC
m L , jeśli f ∈ FNC
k
NC
, L ¬NC
Twierdzenie 1 Relacje ¬m , ¬Pm , ¬m
m ,są
przechodnie.
Ćwiczenie 1
Udowodnij twierdzenie 1.
Redukcje z „wyrocznią”
Notatki
Definicja 7 Niech B będzie problemem optymalizacyjnym. Rodzinę układów kombinacyjnych αn nazywamy rodziną układów z B wyrocznią, jeśli αn jest układem wyposażonym dodatkowo w bramki typu wyrocznia
dla B, które potrafią udzielać odpowiedzi na instancję
problemu B. Jeśli bramka wyrocznia ma k wejść i l
wyjść, to jej rozmiar liczymy jako k + l, a głębokość
jako lg(k + l).
7
Definicja 8 Niech B, B 0 będą problemami optymalik
B 0 , wtedy i tylko wtezacyjnymi. Zachodzi B ¬NC
T
dy, gdy istnieje jednorodna rodzina B 0 wyroczni {αn },
która rozwiązuje B taka, że size(αn ) = nO(1) oraz
depth(αn ) = O(logk n).
Notatki
Definicja 9 Niech B, B 0 będą problemami optymalizacyjnymi. Zachodzi B ¬NC
B 0 , wtedy i tylko wtedy,
T
k
gdy istnieje k, takie że B ¬NC
B0.
T
5
Problemy
NC 6= P ?
P-trudne
-
czy
Definicja 10 Problem optymalizacyjny B jest
P-trudny, jeśli L ¬NC
B dla wszystkich języków
T
L ∈ P. Problem optymalizacyjnymi B jest FP-zupełny, jeśli B ∈ FP i B jest P-trudny.
W sposób analogiczny definiujemy języki P-trudne i
P-zupełne.
Ćwiczenie 2
Podaj odpowiednie definicje dla języków P-trudnych i
P-zupełnych.
8
Notatki
Definicja 11 Problem GMSP (ang. generic machine
simulation problem). Mając dane: opis maszyny Turinga M , oraz ciąg wejściowy t kodowany unarnie; stwierdzić, czy M akceptuje t.
Notatki
Twierdzenie 2 Problem symulacji maszyny Turinga
jest P-zupełny.
Dowód opiera się na dwóch faktach:
• symulacja maszyny Turinga jest problemem wielomianowym;
• jeśli potrafimy symulować działanie dowolnej
maszyny Turinga, to tym bardziej jednej szczególnej.
Nie jest to oczywiście żadna rewelacja, podobnym problemem zupełnym w teorii NP zupełności byłoby symulowanie niedeterministycznej maszyny RAM na maszynie deterministycznej.
Udało się jednak udowodnić P-zupełność innego problemu, co można porównać z dowodem NP-zupełności
problemu 3SAT .
Definicja 12 Problem CVP (ang. Circuit Value
Problem) Mając dane: kod α układu α, wejścia
x1 , x2 , . . . , xn i wyróżnioną bramkę y; wyznaczyć wyjście wyróżnionej bramki.
Twierdzenie 3 Problem CVP jest P -zupełny.
9
Notatki
Redukcje – przykład
Notatki
1
Pokażemy, że: T opN ORCV P ¬NC
LF M IS, gdzie
m
LF M IS jest problemem leksykograficznie pierwszego
maksymalnego zbioru niezależnego, a T opN ORCV P
jest podproblemem dla CV P (układ składa się wyłącznie z bramek typu NOR) z dodatkowym założeniem,
że bramki są ponumerowane w porządku topologicznym (bramka dołączona do wejścia każdej brzmki x
ma numer mniejszy niż x).
Problem LFMIS
Notatki
Dany jest graf nieskierowany G = (V, E) z identyfikatorami, oraz wyróżniony wierzchołek v ∈ V .
Stwierdzić, czy v należy do leksykograficznie pierwszego maksymalnego zbioru niezależnego (maksymalnej
kliki, ∆ + 1 pokolorowania wierzchołkowego).
Kod w LtPC: A.2.1, A.2.2, A.2.6.
Notatki
Redukcja
Mając daną instancję α dla N ORCV P konstruujemy
instancję dla LF M IS. Skonstruowany graf wygląda w
ten sam sposób, co graf układu z instancji α poza jedną modyfikacją: zawiera dodatkowy wierzchołek o numerze mniejszym niż wszystkie pozostałe wierzchołki,
który jest połączony z wszystkimi wierzchołkami odpowiadającymi tym wejściom, którym podano sygnał
0.
Wyróżniony wierzchołek y ma na wyjściu 1 dla instancji α wtedy i tylko wtedy, gdy odpowiadający mu
wierzchołek należy do MIS (ćwiczenie – indukcja na
numer bramki).
Pozostaje pokazać, że sama redukcja jest NC1 - ćwiczenie.
10
6
Problemy P -zupełne – przykłady
Notatki
Zachłanny zbiór dominujący
Dany jest graf nieskierowany G = (V, E) z identyfikatorami, oraz wyróżniony wierzchołek u.
Rozstrzygnąć, czy u należy do zbioru dominującego
znalezionego algorytmem zachłannym. Algorytm zachłanny dokłada do zbioru za każdym razem wierzchołek o największej liczbie nie zdominowanych sąsiadów
i najmniejszym identyfikatorze.
Kod w LtPC: A.2.14
Maksymalny przepływ
Notatki
Dany jest graf skierowany G = (V, E) z wagami na
krawędziach, oraz dwa wyróżnione wierzchołki: źródło
(ang. source) i odpływ (ang. sink).
Rozstrzygnąć, czy w G istnieje przepływ f .
Kod w LtPC: A.4.4
Otoczki wypukłe
Notatki
Dany jest skończony zbiór punktów na płaszczyźnie
S ⊂ R × R, liczba k i punkt p ∈ R × R.
Stwierdzić, czy p należy do zbiory powstałego z S po
usunięciu k otoczek wypukłych.
Kod w LtPC: A.9.5
Planarny układ kombinacyjny
Notatki
Dany jest kod ᾱ planarnego układu kombinacyjnego
α, ciąg wejściowy x1 , . . . xn oraz wybrane wyjście y.
Stwierdzić, czy dla ciągu wejściowego x1 , . . . xn na wyjściu y jest TRUE. Kod w LtPC: A.1.7
11
Notatki
Kot i mysz
Dany jest graf skierowany G = (V, E) wraz z trzema
wyróżnionymi wierzchołkami: c, m i g.
Problem: stwierdzić, czy mysz ma strategię wygrywającą w grze kot i mysz w grafie G.
Gra przebiega w następujący sposób: kot znajduje się
w wierzchołku c, a mysz w m. Gracze wykonują ruchy
na przemian, w kolejnej turze najpierw mysz a potem
kot. Ruch polega na przesunięciu się do sąsiedniego
wierzchołka, lub pozostaniu w miejscu. Kot nie może
znaleźć się w g. Kot wygrywa, jeśli znajdzie się w tym
samym wierzchołku, co mysz natomiast mysz wygrywa, jeśli dotrze do wyróżnionego wierzchołka g.
Kod w LtPC: A.11.2
Izomorfizm grup
Notatki
Dany jest zbiór skończony S oraz F , wolna grupa generowana przez S. Niech Ŝ = {s, s−1 | s ∈ S}, S ∗ zbiór
wszystkich skończonych słów nad Ŝ, a e słowem pustym.
Dla danych U = {u1 , . . . um }, V = {v1 , . . . vp } ⊆ S ∗
stwierdzić, czy < U >=< V >.
Kod w LtPC: A.8.12
Przekrój podgrup
Notatki
Dany jest zbiór skończony S oraz F , wolna grupa generowana przez S. Niech Ŝ = {s, s−1 | s ∈ S}, S ∗ zbiór
wszystkich skończonych słów nad Ŝ, a e słowem pustym.
Dla danych U = {u1 , . . . um }, V = {v1 , . . . vm } ⊆ S ∗
stwierdzić, czy < U > ∩ < V >=< e >.
Kod w LtPC: A.8.15
12
Przynależność do gramatyki bezkontekstowej
Notatki
Dla gramatyki bezkontekstowej G = (N, T, P, S) i słowa x ∈ T ∗ sprawdzić, czy x ∈ L(G).
7
Problemy otwarte – przykłady
Notatki
Kolorowanie krawędziowe
Dany jest graf nieskierowany G.
Znaleźć ∆ + 1 kolorowanie krawędziowe G
Kod w LtPC: B.9.3
Izomorfizm poddrzew
Notatki
Dane są dwa nieukorzenione drzewa T i T 0 .
Rozstrzygnąć, czy T jest izomorficzne z pewnym poddrzewem T 0
Kod w LtPC: B.9.9
13