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

Podobne dokumenty
Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

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

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

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

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

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

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

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

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.

Matematyczne Podstawy Informatyki

Znajdowanie maksymalnych skojarzeń przy pomocy eliminacji Gaussa

Znajdowanie skojarzeń na maszynie równoległej

Lista 0. Kamil Matuszewski 1 marca 2016

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

Zadania z egzaminów z Algorytmiki

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

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

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

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

Algorytmika Problemów Trudnych

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

Matematyka dyskretna - 7.Drzewa

Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2

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

Matematyka dyskretna

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Opracowanie prof. J. Domsta 1

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

Algorytmy i Struktury Danych.

Maksymalne skojarzenia przy pomocy eliminacji Gaussa

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27

Ogólne wiadomości o grafach

Matematyczne Podstawy Informatyki

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

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

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

Zadania z egzaminów z Algorytmiki

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

Minimalne drzewa rozpinające

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

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

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

Algorytmy aproksymacyjne i parametryzowane

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

Algorytmy i Struktury Danych.

TEORETYCZNE PODSTAWY INFORMATYKI

Programowanie sieciowe. Tadeusz Trzaskalik

Algorytmiczna teoria grafów

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

Algorytmy aproksymacyjne dla problemów stochastycznych

Teoretyczne podstawy informatyki

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

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

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Omówienie zadań. Potyczki Algorytmiczne 2016

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

Tadeusz Pankowski

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

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

Wykłady z Matematyki Dyskretnej

Wykład 10 Grafy, algorytmy grafowe

Definicja pliku kratowego

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

E ' E G nazywamy krawędziowym zbiorem

Algorytmy i Struktury Danych.

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

1 Macierz odwrotna metoda operacji elementarnych

Algorytmy i Struktury Danych

Digraf. 13 maja 2017

Przecięcia odcinków. Wykład /07

Metody Programowania

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Programowanie obiektowe

Programowanie obiektowe

Wstęp do programowania

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

Wykład 7. Algorytmy grafowe

AiSD zadanie trzecie

Graf. Definicja marca / 1

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

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

Grafy i sieci w informatyce - opis przedmiotu

Algorytmy i struktury danych.

TEORIA GRAFÓW I SIECI - ROZDZIAŁIV. Drzewa. Drzewa

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Teoretyczne podstawy informatyki

Drzewa poszukiwań binarnych

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

6. Wstępne pojęcia teorii grafów

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Sprawozdanie do zadania numer 2

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

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

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

Sortowanie. Bartman Jacek Algorytmy i struktury

Kompletna dokumentacja kontenera C++ vector w -

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

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Algorytmy i struktury danych

Transkrypt:

Algorytmy dynamiczne Piotr Sankowski - p. 1/14

Dynamiczne: drzewa wyszukiwanie wzorca w tekście spójność grafu problemy algebraiczne (FFT i inne) domknięcie przechodnie oraz dynamiczne macierze najkrótsze ścieżki w grafach najkrótsze ścieżki w grafach planarnych algorytmy aproksymacyjne dla najkrótszych ścieżek w grafach i inne... - p. 2/14

Algorytmy dynamiczne W algorytmie dynamicznym utrzymujemy informacje o zmieniajacej się strukturze danych. Pojawiły się na ASD: kolejki priorytetowe, słowniki, struktura dla zbiorów rozłacznych (find-union). - p. 3/14

Zastosowania Przydatne w innych problemach i same w sobie: Stosowane w przypadkach gdy dane zmieniaja się z czasem. Np. rożne systemy administracyjne i kontrolne. Stosowane gdy chcemy coś zmienić i po tej zmianie poznać jej konsekwencje. Jeżeli konsekwencje będa niedobre to chcemy móc wycofać się z tej zmiany. Skutki małych zmian chcemy poznawać szybko. Np. gry. Stosowane jako procedury w innych programach. Np. obliczanie najmniejszego drzewa rozpinajacego. - p. 4/14

Algorytmy dynamiczne Chcemy wykonywać na strukturze zmiany: kolejki priorytetowe dodanie/usunięcie elementu najmniejszego, słownik dodanie/usunięcie elementu, find-union połaczenie dwóch zbiorów. oraz odpowiadać na zapytania: kolejki priorytetowe jaki jest element najmniejszy? słownik czy element jest w zbiorze? find-union czy dwa elementy należa do tego samego zbioru? - p. 5/14

Algorytmy dynamiczne Algorytm nazwiemy dynamicznym jeżeli będzie on realizował operacje zmiany i odpowiadał na zapytania szybciej niż policzenie wszystkiego od zera. kolejki priorytetowe szybciej niż znalezienie najmniejszego elementu w zbirze, słownik szybciej sprawdzenie czy element jest w zbiorze, find-union szybciej niż wyliczenie zbiorów. - p. 6/14

Algorytmy dynamiczne Algorytm nazywamy przyrostowym (incremental) jeżeli pozwala tylko na wstawianie elementów: słownik wstawianie elementów, graf wstawianie krawędzi. Algorytm jest ubytkowy (decremental) jeżeli możemy tylko możemy usuwać elementy: słownik usuwanie elementów, graf tylko usuwamy krawędzie. Algorytm jest w pełni dynamiczny jeżeli pozwala usuwać i dodawać elementy. - p. 7/14

Dla wielu problemów udało się pokazać efektywne algorytmy dynamiczne. Dla bardzo niewielu problemów pokazane zostały jakiekolwiek dolne granice. Zazwyczaj tylko logarytmiczne. Dla bardzo wielu problemów nie umiemy skonstruować algorytmów działajacych szybciej niż w czasie linowym. - p. 8/14

Dynamiczne drzewa Możliwe zmiany: link(u, v) jeżeli u i v sa w różnych drzewach to dodaj krawędź uv, cut(u, v) podziel drzewo zawierajace krawędź uv na dwa drzewa poprzez usunięcie krawędzi uv. Możliwe zapytania: connected(u, v) czy u i v sa w tym samym drzewie? lca(u, v) jaki jest najniższy przodek u i v w drzewie? Czas O(log n) Sleator i Tarjan (1981) (b. użyteczne). - p. 9/14

Wyszukiwanie wzorca w tekście Utrzymujemy dynamiczne tekst. Możemy: wstawiać znaki, usuwać znaki, przenosić dowolne bloki tekstu, pytać o wystapienia wzorca P. Czas O(log 2 n log log n log n) na zmiany oraz czas O(log n log log n + occ + P ) na zapytania, gdzie occ to liczba wystapień P jaka ma być zwrócona Alstrup, Brodal i Rauhe (2000). - p. 10/14

Dynamiczna spójność Utrzymujemy graf nieskierowany. Chcemy: dodawać krawędzie, usuwać krawędzie. Chcemy umieć odpowiadać na pytania: czy dwa wierzchołki sa połaczone, rozmiar składowej do której należy wierzchołek. Czas O(log 2 n) Holm, Lichtenberg i Thorup (1998). Czas O(log n(log log n) 3 ) Thorup (2000). - p. 11/14

Problemy algebraiczne Dana funkcja f : R k R l, chcemy: zmieniać jedna z wartości na wejściu, pytać o wartości na wyjściu. Przykłady problemów: mnożenie wielomianów w czasie O( n log n) Rief i Tate (1997). dyskretna transformata Fouriera w czasie O( n) Rief i Tate (1997). wyznacznik w czasie O(n 1.5 ) Sankowski (2004). - p. 12/14

Domknięcie przechodni Utrzymujemy skierowany graf. Możemy: dodawać i usuwać krawędzie, pytać, czy między wierzchołkami istnieje ścieżka. Zmiana Demetrescu i Italiano 00 O(n 2 ) O(1) Zapytanie Roditty i Zwick 02 O(m n) O( n) Roditty i Zwick 04 O(m + n log n) O(n) Sankowski 04 (pesym.) O(n 2 ) O(1) Sankowski 04 (pesym.) O(n 1.575 ) O(n 0.575 ) Sankowski 04 (pesym.) O(n 1.495 ) O(n 1.495 ) - p. 13/14

Najkrótsze ścieżki Utrzymujemy skierowany graf. Możemy: dodawać i usuwać krawędzie, jaka jest odległość między wierzchołkami. Zmiana Zapytanie Fakcharoemphol i Rao 02 O(n 4 5 log 13 5 n ) O(n 4 5 log 13 5 n ) Grafy planarne Demetrescu i Italiano 03 Õ(n 2 ) O(1) Sankowski 05 O(n 1.932 ) O(n 1.288 ) Grafy bez wag - p. 14/14