Siedem cudów informatyki czyli o algorytmach zdumiewajacych

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

Grafy co o ich rysowaniu wiedzą przedszkolaki i co z tego wynika dla matematyków

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

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

Matematyczne Podstawy Informatyki

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

Algorytmy w teorii liczb

Sortowanie topologiczne skierowanych grafów acyklicznych

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

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

Ilustracja S1 S2. S3 ściana zewnętrzna

Graf. Definicja marca / 1

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

Suma dwóch grafów. Zespolenie dwóch grafów

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Znajdowanie maksymalnych skojarzeń przy pomocy eliminacji Gaussa

Matematyczne Podstawy Informatyki

Digraf. 13 maja 2017

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

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

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

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n

Algorytmy aproksymacyjne i parametryzowane

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

E ' E G nazywamy krawędziowym zbiorem

TEORIA GRAFÓW I SIECI

Algorytmy i Struktury Danych.

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

Algorytmiczna teoria grafów

Znajdowanie skojarzeń na maszynie równoległej

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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

Teoria grafów - Teoria rewersali - Teoria śladów

Wykłady z Matematyki Dyskretnej

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

Grafy i Zastosowania. 5: Drzewa Rozpinające. c Marcin Sydow. Drzewa rozpinające. Cykle i rozcięcia fundamentalne. Zastosowania

Lista 0. Kamil Matuszewski 1 marca 2016

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Matematyczne Podstawy Informatyki

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

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

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

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

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Wojciech Guzicki. Konferencja SEM(Kolory matematyki) Sielpia, 26 października 2018 r.

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Cała prawda o powierzchniach

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

Programowanie dynamiczne i algorytmy zachłanne

Elementy teorii grafów Elementy teorii grafów

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń

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

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Opracowanie prof. J. Domsta 1

5. Rozwiązywanie układów równań liniowych

Zaawansowane algorytmy i struktury danych

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

TEORETYCZNE PODSTAWY INFORMATYKI

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

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

Grafy. Graf ( graf ogólny) to para G( V, E), gdzie:

Wprowadzenie do grafiki maszynowej. Wprowadzenie do algorytmów obcinania i okienkowania

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

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

Problemy Decyzyjne dla Systemów Nieskończonych

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Matematyka dyskretna

TEORIA GRAFÓW I SIECI

Porządek symetryczny: right(x)

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie

Wykład 10 Grafy, algorytmy grafowe

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

Rzut oka na współczesną matematykę spotkanie 10: Zagadnienie czterech barw i teoria grafów, cz. 2

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

Algorytmy i Struktury Danych.

Wykład 7. Algorytmy grafowe

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Rzut oka na współczesną matematykę spotkanie 9-10: Zagadnienie czterech barw i teoria grafów

Analiza algorytmów zadania podstawowe

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Sztuczna Inteligencja i Systemy Doradcze

Algorytmy i Struktury Danych.

1 Wykład ósmy wstęp do teorii minorów pół wykładu

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Transkrypt:

Siedem cudów informatyki czyli o algorytmach zdumiewajacych Łukasz Kowalik kowalik@mimuw.edu.pl Instytut Informatyki Uniwersytet Warszawski Łukasz Kowalik, Siedem cudów informatyki p. 1/25

Problem 1: mnożenie 8 5 3 1 7 2 2 3 5 4 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 7 2 2 3 5 4 8 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 2 8 5 3 1 6 2 2 3 5 4 4 8 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 2 8 5 3 1 6 2 2 3 5 4 6 4 8 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 6 2 2 3 5 4 3 4 1 2 6 4 8 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 6 2 2 3 5 4 3 4 1 2 6 4 8 4 2 6 5 8 1 0 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 6 2 2 3 5 4 3 4 1 2 6 4 8 4 2 6 5 8 1 0 2 5 5 9 4 8 6 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 6 2 2 3 5 4 3 4 1 2 6 4 8 4 2 6 5 8 1 0 2 5 5 9 4 8 6 1 7 0 6 3 2 4 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 6 2 2 3 5 4 3 4 1 2 6 4 8 4 2 6 5 8 1 0 2 5 5 9 4 8 6 + 1 7 0 6 3 2 4 2 0 0 8 3 4 3 3 4 8 Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Problem 1: mnożenie 8 5 3 1 6 2 2 3 5 4 3 4 1 2 6 4 8 4 2 6 5 8 1 0 2 5 5 9 4 8 6 + 1 7 0 6 3 2 4 2 0 0 8 3 4 3 3 4 8 liczba n-cyfrowa liczba m-cyfrowa Wykonuje się m (n + 1) mnożeń oraz (m 1) (n 1) dodawań. Łukasz Kowalik, Siedem cudów informatyki p. 2/25

Czas działania algorytmu Wniosek: Szkolny algorytm mnożenia liczby n-cyfrowej przez liczbę m-cyfrowa działa w czasie O(mn). Łukasz Kowalik, Siedem cudów informatyki p. 3/25

Czas działania algorytmu Wniosek: Szkolny algorytm mnożenia liczby n-cyfrowej przez liczbę m-cyfrowa działa w czasie O(mn). Pytanie: Czy można lepiej? Tzn. szybciej? Łukasz Kowalik, Siedem cudów informatyki p. 3/25

Trochę arytmetyki... Niech a, b będa liczbami 2n-cyfrowymi. Przedstawimy liczby a i b w następujacej postaci: a = 10 n a 1 + a 2, b = 10 n b 1 + b 2, gdzie a 1, a 2, b 1, b 2 maja po n cyfr. Wtedy: ab = (10 n a 1 + a 2 ) (10 n b 1 + b 2 ) = 10 2n a 1 b 1 + 10 n (a 1 b 2 + a 2 b 1 ) + a 2 b 2. Mnożenie przez 10 k zajmuje czas O(k). Mamy też 3 operacje dodawania i 4 operacje mnożenia. Łukasz Kowalik, Siedem cudów informatyki p. 4/25

Dziel i zwyciężaj: próba 1 a, b maja n = 2 k cyfr. if a i b maja po 1 cyfrze then return a b else a 1 a div 10 n/2 ; a 2 a mod 10 n/2 b 1 b div 10 n/2 ; b 2 a mod 10 n/2 X ILOCZYN (a 1, b 1 ); Y ILOCZYN (a 2, b 1 ) Z ILOCZYN (a 1, b 2 ); V ILOCZYN (a 2, b 2 ) return 10 2n X + 10 n (Y + Z) + V. procedure ILOCZYN(a,b) Łukasz Kowalik, Siedem cudów informatyki p. 5/25

Więcej arytmetyki... Wtedy: a = 10 n a 1 + a 2, b = 10 n b 1 + b 2, 10 2n a 1 b 1 +10 n a 1 b 1 +10 n (a 1 a 2 ) (b 2 b 1 )+ +10 n a 2 b 2 +a 2 b 2 = Łukasz Kowalik, Siedem cudów informatyki p. 6/25

Więcej arytmetyki... Wtedy: a = 10 n a 1 + a 2, b = 10 n b 1 + b 2, 10 2n a 1 b 1 +10 n a 1 b 1 +10 n (a 1 a 2 ) (b 2 b 1 )+ +10 n a 2 b 2 +a 2 b 2 = 10 2n a 1 b 1 +10 n a 1 b 1 + 10 n a 1 b 2 10 n a 1 b 1 10 n a 2 b 2 + 10 n a 2 b 1 +10 n a 2 b 2 + a 2 b 2 = Łukasz Kowalik, Siedem cudów informatyki p. 6/25

Więcej arytmetyki... Wtedy: a = 10 n a 1 + a 2, b = 10 n b 1 + b 2, 10 2n a 1 b 1 +10 n a 1 b 1 +10 n (a 1 a 2 ) (b 2 b 1 )+ +10 n a 2 b 2 +a 2 b 2 = 10 2n a 1 b 1 +10 n a 1 b 1 + 10 n a 1 b 2 10 n a 1 b 1 10 n a 2 b 2 + 10 n a 2 b 1 +10 n a 2 b 2 + a 2 b 2 = = 10 2n a 1 b 1 + 10 n a 1 b 2 + 10 n a 2 b 1 + a 2 b 2 = ab. Łukasz Kowalik, Siedem cudów informatyki p. 6/25

Więcej arytmetyki... Wtedy: a = 10 n a 1 + a 2, b = 10 n b 1 + b 2, 10 2n a 1 b 1 +10 n a 1 b 1 +10 n (a 1 a 2 ) (b 2 b 1 )+ +10 n a 2 b 2 +a 2 b 2 = 10 2n a 1 b 1 +10 n a 1 b 1 + 10 n a 1 b 2 10 n a 1 b 1 10 n a 2 b 2 + 10 n a 2 b 1 +10 n a 2 b 2 + a 2 b 2 = = 10 2n a 1 b 1 + 10 n a 1 b 2 + 10 n a 2 b 1 + a 2 b 2 = ab. 3 mnożenia Łukasz Kowalik, Siedem cudów informatyki p. 6/25

Więcej arytmetyki... Wtedy: a = 10 n a 1 + a 2, b = 10 n b 1 + b 2, 10 2n a 1 b 1 +10 n a 1 b 1 +10 n (a 1 a 2 ) (b 2 b 1 )+ +10 n a 2 b 2 +a 2 b 2 = 10 2n a 1 b 1 +10 n a 1 b 1 + 10 n a 1 b 2 10 n a 1 b 1 10 n a 2 b 2 + 10 n a 2 b 1 +10 n a 2 b 2 + a 2 b 2 = = 10 2n a 1 b 1 + 10 n a 1 b 2 + 10 n a 2 b 1 + a 2 b 2 = ab. 3 mnożenia, 6 dodawań/odejmowań Łukasz Kowalik, Siedem cudów informatyki p. 6/25

Dziel i zwyciężaj: próba 2 a, b maja n = 2 k cyfr. if a i b maja po 1 cyfrze then return a b else a 1 a div 10 n/2 ; a 2 a mod 10 n/2 b 1 b div 10 n/2 ; b 2 a mod 10 n/2 X ILOCZYN (a 1, b 1 ) Y ILOCZYN (a 1 a 2, b 2 b 1 ) Z ILOCZYN (a 2, b 2 ) return 10 2n X + 10 n X + 10 n Y + 10 n Z + Z. procedure ILOCZYN(a,b) Łukasz Kowalik, Siedem cudów informatyki p. 7/25

Dziel i zwyciężaj: próba 2 Wniosek: Nowy algorytm mnoży dwie liczby n-cyfrowe w czasie O(n log 2 3 ) = O(n 1,585 ). Przypomnijmy: Algorytm szkolny robi to w czasie O(n 2 ). Łukasz Kowalik, Siedem cudów informatyki p. 8/25

Dziel i zwyciężaj: próba 2 Wniosek: Nowy algorytm mnoży dwie liczby n-cyfrowe w czasie O(n log 2 3 ) = O(n 1,585 ). Przypomnijmy: Algorytm szkolny robi to w czasie O(n 2 ). Twierdzenie Można uzyskać czas O(n log n log log n). Łukasz Kowalik, Siedem cudów informatyki p. 8/25

Dziel i zwyciężaj: próba 2 Wniosek: Nowy algorytm mnoży dwie liczby n-cyfrowe w czasie O(n log 2 3 ) = O(n 1,585 ). Przypomnijmy: Algorytm szkolny robi to w czasie O(n 2 ). Twierdzenie Można uzyskać czas O(n log n log log n). Uwaga. Stosujac podobne tricki można mnożyć macierze n n w czasie lepszym niż O(n 3 ) np. algorytm Strassena O(n log 2 7 ) = O(n 2,81 ). Łukasz Kowalik, Siedem cudów informatyki p. 8/25

Skierowany cykl Eulera Dane: Graf skierowany G. Problem: Znaleźć cykl, który zawiera każda krawędź dokładnie raz. Łukasz Kowalik, Siedem cudów informatyki p. 9/25

Skierowany cykl Eulera Dane: Graf skierowany G. Problem: Znaleźć cykl, który zawiera każda krawędź dokładnie raz. Łukasz Kowalik, Siedem cudów informatyki p. 9/25

Skierowany cykl Eulera Fakt: Taki cykl istnieje wtedy i tylko wtedy gdy: (1) do każdego wierzchołka wchodzi tyle samo krawędzi co z niego wychodzi, (2) po zignorowaniu kierunków krawędzi istnieje ścieżka łacz aca dowolne dwa wierzchołki (spójność). Łukasz Kowalik, Siedem cudów informatyki p. 10/25

Algorytm 1. wybierz dowolny wierzchołek. Oznaczmy go przez v. v Łukasz Kowalik, Siedem cudów informatyki p. 11/25

Algorytm 2. Odwróć krawędzie. v Łukasz Kowalik, Siedem cudów informatyki p. 12/25

Algorytm 2. Odwróć krawędzie. v Łukasz Kowalik, Siedem cudów informatyki p. 12/25

Algorytm 3. Wyjdź z v i znajdź ścieżki do innych wierzchołków ale tak, żeby nigdy nie wchodzić do już odwiedzonego wierzchołka. Krawędzie tych ścieżek pomalujemy na zielono. v Łukasz Kowalik, Siedem cudów informatyki p. 13/25

Algorytm 4. Ponownie odwróć krawędzie. v Łukasz Kowalik, Siedem cudów informatyki p. 14/25

Algorytm 4. Ponownie odwróć krawędzie. v Łukasz Kowalik, Siedem cudów informatyki p. 14/25

Algorytm 5. Znajdź cykl: wyjdź z v i idź na oślep, wybierajac zielona krawędź tylko gdy nie ma innego wyjścia. v Łukasz Kowalik, Siedem cudów informatyki p. 15/25

Algorytm 5. Znajdź cykl: wyjdź z v i idź na oślep, wybierajac zielona krawędź tylko gdy nie ma innego wyjścia. v Łukasz Kowalik, Siedem cudów informatyki p. 15/25

Operacja ściagania krawędzi Łukasz Kowalik, Siedem cudów informatyki p. 16/25

Minory Graf H jest minorem G, gdy możemy otrzymać H poprzez usuwanie wierzchołków i krawędzi, ściaganie krawędzi. Łukasz Kowalik, Siedem cudów informatyki p. 17/25

Minory Mówimy też, że G zawiera H jako minor oraz G zawiera podgraf ściągalny do H. Fakt 1 Rodzina grafów planarnych jest zamknięta ze względu na branie minorów. Łukasz Kowalik, Siedem cudów informatyki p. 18/25

Twierdzenie Kuratowskiego Twierdzenie (Kuratowski) Graf jest planarny wtedy i tylko wtedy gdy nie zawiera K 5 ani K 3,3 jako minora. K 5 K 3,3 Łukasz Kowalik, Siedem cudów informatyki p. 19/25

Pytanie Erdősa Pytanie (Erdős 1930) Czy tw. Kuratowskiego można uogólnić na inne powierzchnie? Dla pewnych powierzchni (np. tzw. płaszczyzna rzutowa) udało się znaleźć takie zbiory. Ale np. dla torusa jak dotad nie. Pytanie (Erdős 1930). Czy dla każdej powierzchni istnieje skończony zbiór zabronionych minorów? Łukasz Kowalik, Siedem cudów informatyki p. 20/25

Grafowe Twierdzenie o Minorach Twierdzenie (Robertson, Seymour 1981-1985) Każdy nieskończony zbiór grafów skończonych zawiera takie dwa grafy, że jeden jest minorem drugiego. Łukasz Kowalik, Siedem cudów informatyki p. 21/25

Wniosek z GTM Wniosek. Dowolna własność grafowa P G zamknięta na branie minorów może być wyrażona przez skończony zbiór zabronionych minorów. Tymczasem... Dla dowolnej powierzchni S zbiór grafów, które można narysować na S bez przecięć krawędzi jest zamknięty na branie minorów. Łukasz Kowalik, Siedem cudów informatyki p. 22/25

GTM i algorytmy Twierdzenie (Robertson & Seymour). Dla każdego ustalonego grafu H istnieje algorytm, który dla dowolnego n-wierzchołkowego grafu G sprawdzi w czasie O(n 3 ) czy H jest minorem G. Łukasz Kowalik, Siedem cudów informatyki p. 23/25

Rysowanie grafów na torusie Wniosek: Istnieje algorytm o złożoności O(n 3 ), który sprawdzi, czy dany graf można narysować na torusie. Łukasz Kowalik, Siedem cudów informatyki p. 24/25

Inny problem Czy dany graf G można umieścić w przestrzeni 3D tak żeby każdy jego cykl był węzłem prostym? Oto przykłady węzłów, które nie sa proste (nie da się ich rozplatać aby dostać okrag). Łukasz Kowalik, Siedem cudów informatyki p. 25/25

Inny problem Czy dany graf G można umieścić w przestrzeni 3D tak żeby każdy jego cykl był węzłem prostym? Takie grafy sa zamknięte na branie minorów. Wniosek: Dla naszego problemu istnieje algorytm o czasie O(n 3 ). Ale... Nie znamy takiego algorytmu! Co więcej, nie znamy ŻADNEGO algorytmu, który rozwiazuje ten problem. Łukasz Kowalik, Siedem cudów informatyki p. 25/25