Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność



Podobne dokumenty
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące

a) 7 b) 19 c) 21 d) 34

Języki, automaty i obliczenia

Imię, nazwisko, nr indeksu

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Obliczenia inspirowane Naturą

Lista 6 Problemy NP-zupełne

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Zakładamy, że maszyna ma jeden stan akceptujacy.

Języki, automaty i obliczenia

Sortowanie topologiczne skierowanych grafów acyklicznych

Efektywność Procedur Obliczeniowych. wykład 5

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Graf. Definicja marca / 1

Algorytmika Problemów Trudnych

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Podstawowe własności grafów. Wykład 3. Własności grafów

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

1 Automaty niedeterministyczne

Hierarchia Chomsky ego Maszyna Turinga

10110 =

Algorytmiczna teoria grafów

Matematyczne Podstawy Informatyki

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Maszyna Turinga języki

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Języki, automaty i obliczenia

Matematyka dyskretna

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Digraf. 13 maja 2017

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Języki formalne i automaty Ćwiczenia 9

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Dopełnienie to można wyrazić w następujący sposób:

Rachunek podziałów i elementy teorii grafów będą stosowane w procedurach redukcji argumentów i dekompozycji funkcji boolowskich.

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Teoria obliczeń i złożoność obliczeniowa

Wstęp do programowania

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Problemy Decyzyjne dla Systemów Nieskończonych

Kolorowanie wierzchołków grafu

Struktura danych. Sposób uporządkowania informacji w komputerze.

Zasady analizy algorytmów

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

G. Wybrane elementy teorii grafów

3 Abstrakcyjne kompleksy symplicjalne.

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS

O ISTOTNYCH OGRANICZENIACH METODY

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Programowanie dynamiczne i algorytmy zachłanne

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Matematyczne Podstawy Informatyki

Zadanie 2. Obliczyć rangę dowolnego elementu zbioru uporządkowanego N 0 N 0, gdy porządek jest zdefiniowany następująco: (a, b) (c, d) (a c b d)

Analiza semantyczna. Gramatyka atrybutywna

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Topologia zbioru Cantora a obwody logiczne

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Złożoność obliczeniowa klasycznych problemów grafowych

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Algorytmiczna teoria grafów

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Matematyka dyskretna - 7.Drzewa

Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

Złożoność obliczeniowa wybranych problemów szeregowania zadań jednostkowych na równoległych procesorach

Złożoność obliczeniowa

Języki formalne i automaty Ćwiczenia 7

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytmy i struktury danych.

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Minimalne drzewa rozpinające

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

PROBLEMY NIEROZSTRZYGALNE

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow

Problemy NP-zupełne. Spis treści. Osoba prowadząca wykład i ćwiczenia: dr inż. Marek Sawerwain. Ostatnia zmiana: 15 styczeń Notatki.

TEORIA GRAFÓW I SIECI

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/ kuszner/arir/ Wykład 15 godzin, Projekt 15 godzin 2015 1 Definicje 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 B k = {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: 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 B 1 lub B 2. Wierzchołek typu B i musi mieć stopień wejściowy (indeg) równy i, natomiast stopień wyjściowy (outdeg) nie jest ograniczony. Zauważmy, że: wejścia i bramki mogą być jednocześnie wyjściami, układ kombinacyjny oblicza funkcję f : {0, 1} n {0, 1} m, 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

3 Rodziny układów kombinacyjnych 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 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). Definicja 1 Rodzinę układów kombinacyjnych {α n } nazywamy jednorodną, jeśli przekształcenie 1 n α 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

Definicja 3 Dla każdego k 1 klasą NC k nazywamy zbiór wszystkich języków rozpoznawanych przez jednorodną rodzinę {α n } o rozmiarze size(α n ) = n O(1) i głębokości depth(α n ) = O(log k n) Definicja 4 Klasą NC nazywamy zbiór NC = NC k k 1 Podobnie jak klasy języków definiujemy FNC k jako klasy funkcji z {0, 1} w {0, 1} obliczalnych przez układy o głębokości O(log k 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 ) = n O(1) i głębokości depth(α n ) = n O(1). Podobnie definiujemy FP jako klasę funkcji z {0, 1} w {0, 1} obliczalnych przez układy o głębokości n O(1). 6

4 Redukcje Redukcje typu wiele-do-jeden Definicja 6 Niech L, L będą językami, piszemy L m L, jeśli istnieje funkcja f taka, że x L wtedy i tylko wtedy, gdy f(x) L. Podobnie: L P m L, jeśli f FP L NCk m L, jeśli f FNC k L NC m L, jeśli f FNC Twierdzenie 1 Relacje m, P m, m NCk, L NC m,są przechodnie. Ćwiczenie 1 Udowodnij twierdzenie 1. Redukcje z wyrocznią 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 będą problemami optymalizacyjnymi. Zachodzi B NCk T B, wtedy i tylko wtedy, gdy istnieje jednorodna rodzina B wyroczni {α n }, która rozwiązuje B taka, że size(α n ) = n O(1) oraz depth(α n ) = O(log k n). Definicja 9 Niech B, B będą problemami optymalizacyjnymi. Zachodzi B NC T B, wtedy i tylko wtedy, gdy istnieje k, takie że B NCk T B. 5 Problemy P-trudne - czy NC P? Definicja 10 Problem optymalizacyjny B jest P-trudny, jeśli L NC T B dla wszystkich języków 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

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. 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 x 1, x 2,..., x n i wyróżnioną bramkę y; wyznaczyć wyjście wyróżnionej bramki. Twierdzenie 3 Problem CVP jest P -zupełny. 9

Redukcje przykład Pokażemy, że: T opnorcv P NC1 m LF MIS, gdzie 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 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. Redukcja Mając daną instancję α dla NORCV 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 NC 1 - ćwiczenie. 10

6 Problemy P -zupełne przykłady 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 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 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 Dany jest kod ᾱ planarnego układu kombinacyjnego α, ciąg wejściowy x 1,... x n oraz wybrane wyjście y. Stwierdzić, czy dla ciągu wejściowego x 1,... x n na wyjściu y jest TRUE. Kod w LtPC: A.1.7 11

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 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 = {u 1,... u m }, V = {v 1,... v p } S stwierdzić, czy < U >=< V >. Kod w LtPC: A.8.12 Przekrój podgrup 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 = {u 1,... u m }, V = {v 1,... v m } S stwierdzić, czy < U > < V >=< e >. Kod w LtPC: A.8.15 12

Przynależność do gramatyki bezkontekstowej Dla gramatyki bezkontekstowej G = (N, T, P, S) i słowa x T sprawdzić, czy x L(G). 7 Problemy otwarte przykłady Kolorowanie krawędziowe Dany jest graf nieskierowany G. Znaleźć + 1 kolorowanie krawędziowe G Kod w LtPC: B.9.3 Izomorfizm poddrzew Dane są dwa nieukorzenione drzewa T i T. Rozstrzygnąć, czy T jest izomorficzne z pewnym poddrzewem T Kod w LtPC: B.9.9 13