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

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

Kombinowanie o nieskończoności. 3. Jak policzyć nieskończone materiały do ćwiczeń

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

n=0 Dla zbioru Cantora prawdziwe są wersje lematu 3.6 oraz lematu 3.8 przy założeniu α = :

Twierdzenie Li-Yorke a Twierdzenie Szarkowskiego

Algorytmy i Struktury Danych, 2. ćwiczenia

Lista zadań - Relacje

Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI

Laboratorium nr 7 Sortowanie

22 Pochodna funkcji definicja

Porządek symetryczny: right(x)

zbiorów domkniętych i tak otrzymane zbiory domknięte ustawiamy w ciąg. Oznaczamy

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Finanse i Rachunkowość studia niestacjonarne Wprowadzenie do teorii ciągów liczbowych (treść wykładu z 21 grudnia 2014)

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)

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

1. Funkcje monotoniczne, wahanie funkcji.

Indukcja matematyczna

Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

Rozważmy funkcję f : X Y. Dla dowolnego zbioru A X określamy. Dla dowolnego zbioru B Y określamy jego przeciwobraz:

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Analiza algorytmów zadania podstawowe

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

Wykład 10. Stwierdzenie 1. X spełnia warunek Borela wtedy i tylko wtedy, gdy każda scentrowana rodzina zbiorów domkniętych ma niepusty przekrój.

(b) Suma skończonej ilości oraz przekrój przeliczalnej ilości zbiorów typu G α

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

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Matematyka dyskretna dla informatyków

Pochodna funkcji. Pochodna funkcji w punkcie. Różniczka funkcji i obliczenia przybliżone. Zastosowania pochodnych. Badanie funkcji.

Sortowanie w czasie liniowym

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

VIII. Zastosowanie rachunku różniczkowego do badania funkcji. 1. Twierdzenia o wartości średniej. Monotoniczność funkcji.

Jeszcze o algorytmach

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Algorytmy i Struktury Danych.

Ciągi liczbowe wykład 3

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

Zajęcia nr. 3 notatki

Zadania do samodzielnego rozwiązania

Matematyka ZLic - 2. Granica ciągu, granica funkcji. Ciągłość funkcji, własności funkcji ciągłych.

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Matematyka dyskretna - 7.Drzewa

Zadanie 1. Rozważ funkcję f(x, y) = (x + y)(x + 6)( y 3) określoną na zbiorze R 2.

Funkcja jest różnowartościowa w zbiorze A wtedy i tylko wtedy, gdy różnym argumentom funkcja ta przyporządkowuje różne wartości.

Funkcja wykładnicza kilka dopowiedzeń

MODELOWANIE RZECZYWISTOŚCI

Macierze. Rozdział Działania na macierzach

domykanie relacji, relacja równoważności, rozkłady zbiorów

E-learning - matematyka - poziom rozszerzony. Funkcja wykładnicza. Materiały merytoryczne do kursu

Ciąg monotoniczny. Autorzy: Katarzyna Korbel

Bukiety matematyczne dla gimnazjum

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Matematyczne Podstawy Informatyki

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

Przykład 1 W przypadku jednokrotnego rzutu kostką przestrzeń zdarzeń elementarnych

FUNKCJE I RÓWNANIA KWADRATOWE. Lekcja 78. Pojęcie i wykres funkcji kwadratowej str

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Wstęp do analizy matematycznej

3. Macierze i Układy Równań Liniowych

Ciągi komplementarne. Autor: Krzysztof Zamarski. Opiekun pracy: dr Jacek Dymel

Algorytmy i Struktury Danych, 2. ćwiczenia

System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100

Algorytm selekcji Hoare a. Łukasz Miemus

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

9. BADANIE PRZEBIEGU ZMIENNOŚCI FUNKCJI

1. Powtórka ze szkoły. Wykład: (4 godziny), ćwiczenia: , kolokwium nr 1:

Kolorowanie płaszczyzny, prostych i okręgów

PODSTAWY INFORMATYKI wykład 10.

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Rozdział 6. Ciągłość. 6.1 Granica funkcji

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

VIII Wojewódzki Konkurs Matematyczny "W Świecie Matematyki im. Prof. Włodzimierza Krysickiego Etap drugi - 3 marca 2016 r.

Sortowanie topologiczne skierowanych grafów acyklicznych

Zestaw zadań dotyczących liczb całkowitych

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

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

Wykład 5. Sortowanie w czasie liniowologarytmicznym

Wstęp do programowania

Rozwiązaniem jest zbiór (, ] (5, )

Geometrie Wszechświata. 3. Punkty w nieskończoności 4. Czy Wszechświat jest nieskończony? materiały do ćwiczeń

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

Podstawowe algorytmy i ich implementacje w C. Wykład 9

WYKŁAD Z ANALIZY MATEMATYCZNEJ I. dr. Elżbieta Kotlicka. Centrum Nauczania Matematyki i Fizyki

1 Logika (3h) 1.1 Funkcje logiczne. 1.2 Kwantyfikatory. 1. Udowodnij prawa logiczne: 5. (p q) (p q) 6. ((p q) r) (p (q r)) 3.

Szkice rozwiązań zadań z arkuszy maturalnych zamieszczonych w 47. numerze Świata Matematyki, który można nabyć w sklepie na

Podstawowe układy cyfrowe

Łatwy dowód poniższej własności pozostawiamy czytelnikowi.

Poprawność semantyczna

Krzysztof Gniłka. Twierdzenie o rekurencji uniwersalnej

Zapoznanie się z podstawowymi strukturami funktorów logicznych realizowanymi w technice RTL (Resistor Transistor Logic) oraz zasadą ich działania.

1. Logika, funkcje logiczne, preceptron.

Zadania z analizy matematycznej - sem. I Pochodne funkcji, przebieg zmienności funkcji

Transkrypt:

Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące Łukasz Kuszner pokój 209, WETI http://kaims.eti.pg.gda.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://kaims.eti.pg.gda.pl/ kuszner/arir/ Wykład 15 godzin, Projekt 15 godzin 2017 1 Sieci porównujące Sieć porównująca składa się tylko z przewodów i komparatorów. x x = min{x, y} y y = max{x, y} Zakładamy, że komparator działa w czasie O(1), to znaczy czas pomiędzy pojawieniem się danych na wejściu (na rysunku po lewej stronie), a pojawieniem się wyników na wyjściu (na rysunku po prawej stronie) jest stały. Przyjmujemy, że sieć ma n wejść a 1, a 2,..., a n i n wyjść b 1, b 2,..., b n, a graf sieci jest acykliczny. 1

Głębokość sieci Wejście sieci ma głębokość 0. Jeśli wejścia komparatora mają głębokość d x i d y, to wyjście ma głębokość max(d x, d y ) + 1. Głębokość sieci definiujemy jako największą głębokość wyjścia. Przykład a 1 a 1 a 2 a 2 a 3 a 3 a 4 Powyższa sieć porównująca ma głębokość 3. a 4 2 Zasada zero-jedynkowa Lemat 1 Jeśli sieć porównująca dla ciągu wejściowego a = (a 1, a 2,..., a n ) wyznacza ciąg wyjściowy b = (b 1, b 2,..., b n ), to dla dowolnej funkcji niemalejącej ta sama sieć z ciągiem wejściowym f(a) = (f(a 1 ), f(a 2 ),..., f(a n )) wyznacza ciąg wyjściowy f(b) = (f(b 1 ), f(b 2 ),..., f(b n )). Ćwiczenie 1 Przeprowadź pełny dowód lematu 1. Wskazówka 1: Rozważ pojedynczy komparator. Z monotoniczności f wynika, że max{f(x), f(y)} = f(max{x, y}) i min{f(x), f(y)} = f(min{x, y}) Wskazówka 2: Zastosuj indukcję na głębokość sieci. Wskazówka 3: zob. Cormen str. 718 2

Twierdzenie 2 (Zasada zero-jedynkowa) Jeśli sieć porównująca o n wejściach sortuje poprawnie wszystkie 2 n ciągi zer i jedynek, to sortuje poprawnie dowolne ciągi liczb. Dowód: Dowód nie wprost. Przypuśćmy, że sieć sortuje poprawnie wszystkie ciągi zer i jedynek, ale istnieje ciąg liczb a = (a 1, a 2,..., a n ), dla którego wynik nie jest posortowany poprawnie. Istnieją elementy a i, a j takie, że a i < a j oraz w ciągu wyjściowym a j występuje przed a i. Niech f(x) = 0, jeśli x a i i f(x) = 1, jeśli x > a i. Funkcja f jest niemalejąca. Z lematu 1 wnioskujemy, że jeśli na wejściu znajduje się ciąg f(a) = (f(a 1 ), f(a 2 ),..., f(a n )), to na wyjściu wartość f(a j ) = 1 znajduje się przed f(a i ) = 0, sprzeczność z założeniem o poprawnym sortowaniu ciągów zero-jedynkowych. 3 Sieci sortujące Sieć sortująca, to sieć porównująca, której ciąg wyjściowy jest niemalejący dla każdego ciągu wejściowego. Głębokość identyfikujemy z czasem potrzebnym na posortowanie wszystkich elementów. Ćwiczenie 2 Wykaż, że sieć sortująca o n wejściach ma głębokość co najmniej lg n. Przykład Rozpatrzmy rodzinę sieci opartych na algorytmie sortowania przez wstawianie. 3

Przykład a 1 a 2 b 1 b 2 a 3 a 4 b 3 b 4 a 5 a 6 a 7 b 5 b 6 b 7 Ćwiczenie 3 Jaka jest głębokość takiej sieci w zależności od liczby wejść? 4 Bitoniczne sieci sortujące Ciągiem bitonicznym nazywamy ciąg, który można przeciąć na dwie części: pierwszą niemalejącą i drugą nierosnącą lub pierwszą nierosnącą i drugą niemalejącą. Zero-jedynkowe ciągi bitoniczne mają postać 0 i 1 j 0 k albo 1 i 0 j 1 k. Elementem półczyszczącym (Half-Cleaner[n]), a 1 b 1 dla n parzystych nazywamy a 2 b 2 sieć porównującą o głębokości 1 złożoną a 3 a 4 b 3 b 4 z n/2 komparatorów, a 5 b 5 z których każdy łączy wejście o numerze i z wejściem i + n/2, dla i = 1, 2,... n/2. a 6 a 7 a 8 b 6 b 7 b 8 4

Sieć sortującą ciągi bitoniczne B[n] budujemy w następujący sposób. Dla n = 1 sieć jest pusta, dla n = 2 sieć składa się z jednego komparatora, natomiast dla n > 2 sieć wygląda w sposób następujący: B[n/2] Half-Cleaner[n] B[n/2] 5

Ćwiczenie 4 Narysuj sieć B[8]. Ćwiczenie 5 Jak skonstruować sieć bitoniczną, gdy n nie jest potęgą 2? Ćwiczenie 6 Uzasadnij, że jeśli każdy element jednego z dwóch zerojedynkowych ciągów bitonicznych jest nie większy niż każdy element drugiego ciągu, to jeden z ciągów składa się z samych 0, albo z samych 1. Ćwiczenie 7 Przeczytaj ze zrozumieniem pełen dowód poprawności działania sieci B[n], (Cormen str. 721) i odtwórz go nie zaglądając do książki. 5 Sieć sortująca o głębokości log 2 n Pokażemy teraz jak skonstruować sieć opartą na algorytmie mergesort. Do tego celu użyjemy pokazanych wcześniej sieci bitonicznych i sieci scalających. Konstrukcja sieci scalającej dwa posortowane ciągi w jeden opiera się na prostej obserwacji: jeśli w jednym z dwóch posortowanych ciągów odwrócimy porządek, to otrzymamy ciąg bitoniczny, a ciągi bitoniczne umiemy już sortować. 6

Poniższy rysunek przedstawia jak odwrócić porządek jednego z ciągów na wejściu sieci bitoniczej. Schemat sieci scalającej MERGER[n] B[n/2] B[n/2] 7

Mając już wszystkie potrzebne elementy możemy zbudować sieć sortującą SORTER[n] SORT ER[n/2] MERGER[n] SORT ER[n/2] Ćwiczenie 8 Narysuj sieć SORTER[8]. Ćwiczenie 9 Wykaż, że głębokość sieci SORTER[n] jest Θ(log 2 (n)). Ćwiczenie 10 Wykaż, że głębokość sieci SORTER[n] jest równa lg n(lg n + 1)/2. 8