Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees
|
|
- Tadeusz Kasprzak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Dynamiczne drzewa Marian M. Kędzierski 26 listopada 2009
2 Plan prezentacji Wstęp 1 Wstęp Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST 2 Euler-TourTrees Operacje na ET-drzewach Rozszerzenia 3 Dynamicznaspójność Zagadnienie Algorytm HLT 4 AlgorytmDinica Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). 5 Link-CutTrees
3 Problem dynamicznych drzew Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST Idea Chcemy reprezentować las ukorzenionych, rozłącznych drzew dowolnego stopnia. Jakich operacji oczekujemy? LINK(u,v) podepnijdrzewookorzeniuwvdowierzchołka u innego drzewa CUT(v) odetnijwierzchołekvwrazzjegopoddrzewemod jego ojca FINDROOT(v) podaj korzeń drzewa zawierającego v Jakiej złożoności oczekujemy? Czas: O(log n) na operację(być może zamortyzowany).
4 Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST Pierwsze podejście SPLIT i JOIN na drzewach BST Gdyby: Wystarczałyby nam drzewa binarne
5 Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST Pierwsze podejście SPLIT i JOIN na drzewach BST Gdyby: Wystarczałyby nam drzewa binarne Nie interesowała nas struktura drzewa, tylko zbiór jego wierzchołków
6 Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST Pierwsze podejście SPLIT i JOIN na drzewach BST Gdyby: Wystarczałyby nam drzewa binarne Nie interesowała nas struktura drzewa, tylko zbiór jego wierzchołków to moglibyśmy rozwiązać problem za pomocą lasu zrównoważonych drzew BST.
7 Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST Pierwsze podejście SPLIT i JOIN na drzewach BST Gdyby: Wystarczałyby nam drzewa binarne Nie interesowała nas struktura drzewa, tylko zbiór jego wierzchołków to moglibyśmy rozwiązać problem za pomocą lasu zrównoważonych drzew BST. Pewne drzewa zrównoważone(najłatwiej splay, ale da się także 2-3 drzewa) można wzbogacić o operacje: SPLIT wytnij z drzewa spójny fragment kluczy i podziel drzewo na dwa JOIN połącz dwa drzewa o kluczach z rozłącznych przedziałów
8 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim.
9 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim. Dokładniej: niech reprezentacją drzewa będzie zrównoważone drzewo BST zawierające wszystkie węzły tego cyklu Eulera.
10 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim. Dokładniej: niech reprezentacją drzewa będzie zrównoważone drzewo BST zawierające wszystkie węzły tego cyklu Eulera. Uwagi:
11 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim. Dokładniej: niech reprezentacją drzewa będzie zrównoważone drzewo BST zawierające wszystkie węzły tego cyklu Eulera. Uwagi: Trzeba rozgraniczyć pojęcie drzewa reprezentowanego od ET-drzewa
12 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim. Dokładniej: niech reprezentacją drzewa będzie zrównoważone drzewo BST zawierające wszystkie węzły tego cyklu Eulera. Uwagi: Trzeba rozgraniczyć pojęcie drzewa reprezentowanego od ET-drzewa Nie przechowujemy w ogóle jawnie drzewa reprezentowanego
13 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim. Dokładniej: niech reprezentacją drzewa będzie zrównoważone drzewo BST zawierające wszystkie węzły tego cyklu Eulera. Uwagi: Trzeba rozgraniczyć pojęcie drzewa reprezentowanego od ET-drzewa Nie przechowujemy w ogóle jawnie drzewa reprezentowanego WęzłydrzewaBSTniemająkluczy(!) nie wykonujemy wyszukiwań ale w zastosowaniach potrzebujemy statycznego indeksu {numer wierzchołka węzeł}
14 Drzewa ET Wstęp Operacje na ET-drzewach Rozszerzenia Pomysł Reprezentujmy dowolne drzewo przez cykl Eulera na nim. Dokładniej: niech reprezentacją drzewa będzie zrównoważone drzewo BST zawierające wszystkie węzły tego cyklu Eulera. Uwagi: Trzeba rozgraniczyć pojęcie drzewa reprezentowanego od ET-drzewa Nie przechowujemy w ogóle jawnie drzewa reprezentowanego WęzłydrzewaBSTniemająkluczy(!) nie wykonujemy wyszukiwań ale w zastosowaniach potrzebujemy statycznego indeksu {numer wierzchołka węzeł} Są dwie wersje ET-drzewa Pełny cykl Eulera Słowo nawiasowe
15 Drzewa ET operacje Operacje na ET-drzewach Rozszerzenia LINK(u,v) operacjesplitijoinnaet-drzewie CUT(v) podobnie REROOT(v) teżsameoperacjesplitijoin,alesprytniej ROOT(v) zejście lewą/prawą ścieżką w ET-drzewie (pierwszy lub ostatni wierzchołek cyklu)
16 Drzewa ET statystyki pozycyjne Operacje na ET-drzewach Rozszerzenia Jak rozszerzyć ET-drzewo o statystyki pozycyjne?
17 Drzewa ET statystyki pozycyjne Operacje na ET-drzewach Rozszerzenia Jak rozszerzyć ET-drzewo o statystyki pozycyjne? Liczba wierzchołków w poddrzewie drzewa reprezentowanego
18 Drzewa ET statystyki pozycyjne Operacje na ET-drzewach Rozszerzenia Jak rozszerzyć ET-drzewo o statystyki pozycyjne? Liczba wierzchołków w poddrzewie drzewa reprezentowanego Uogólnienie: Suma wag wierzchołków w poddrzewie
19 Drzewa ET statystyki pozycyjne Operacje na ET-drzewach Rozszerzenia Jak rozszerzyć ET-drzewo o statystyki pozycyjne? Liczba wierzchołków w poddrzewie drzewa reprezentowanego Uogólnienie: Suma wag wierzchołków w poddrzewie Wysokość poddrzewa
20 Drzewa ET statystyki pozycyjne Operacje na ET-drzewach Rozszerzenia Jak rozszerzyć ET-drzewo o statystyki pozycyjne? Liczba wierzchołków w poddrzewie drzewa reprezentowanego Uogólnienie: Suma wag wierzchołków w poddrzewie Wysokość poddrzewa Minima/Maksima na ścieżkach
21 Drzewa ET statystyki pozycyjne Operacje na ET-drzewach Rozszerzenia Jak rozszerzyć ET-drzewo o statystyki pozycyjne? Liczba wierzchołków w poddrzewie drzewa reprezentowanego Uogólnienie: Suma wag wierzchołków w poddrzewie Wysokość poddrzewa Minima/Maksima na ścieżkach Niestety,niebardzosiędaje...
22 Problem dynamicznej spójności Zagadnienie Algorytm HLT Chcemy utrzymywać strukturę grafu nieskierowanego pozwalającą wykonywać zapytania: ADD(u,v) dodajkrawędźu v DELETE(u,v) usuńkrawędźu v CONNECTED(u,v) sprawdź,czywierzchołkiuivsąw tej samej spójnej składowej CONNECTED() sprawdź, czy graf jest spójny
23 Problem dynamicznej spójności Zagadnienie Algorytm HLT Chcemy utrzymywać strukturę grafu nieskierowanego pozwalającą wykonywać zapytania: ADD(u,v) dodajkrawędźu v DELETE(u,v) usuńkrawędźu v CONNECTED(u,v) sprawdź,czywierzchołkiuivsąw tej samej spójnej składowej CONNECTED() sprawdź, czy graf jest spójny Chcielibyśmy, żeby koszty powyższych operacji wynosiły O(log n)
24 Pierwsze podejście Wstęp Zagadnienie Algorytm HLT Jeżeli nie wykonujemy operacji DELETE, to możemy użyć drzew Find-Union.
25 Pierwsze podejście Wstęp Zagadnienie Algorytm HLT Jeżeli nie wykonujemy operacji DELETE, to możemy użyć drzew Find-Union. Niestety operacja DELETE nie daje się sensownie przeprowadzić na tych drzewach wymagałaby właściwie przebudowania struktury od nowa.
26 Drugie podejście Wstęp Zagadnienie Algorytm HLT Możemy zamiast całych spójnych składowych przechowywać ich pewne drzewa rozpinające.
27 Drugie podejście Wstęp Zagadnienie Algorytm HLT Możemy zamiast całych spójnych składowych przechowywać ich pewne drzewa rozpinające. Jeżeli te drzewa są reprezentowane jako ET-drzewa, to:
28 Drugie podejście Wstęp Zagadnienie Algorytm HLT Możemy zamiast całych spójnych składowych przechowywać ich pewne drzewa rozpinające. Jeżeli te drzewa są reprezentowane jako ET-drzewa, to: OperacjęADDłatwowykonaćzapomocąLINK:czas O(log n)
29 Drugie podejście Wstęp Zagadnienie Algorytm HLT Możemy zamiast całych spójnych składowych przechowywać ich pewne drzewa rozpinające. Jeżeli te drzewa są reprezentowane jako ET-drzewa, to: OperacjęADDłatwowykonaćzapomocąLINK:czas O(log n) Niestety do operacji DELETE nie wystarczy CUT
30 Drugie podejście Wstęp Zagadnienie Algorytm HLT Możemy zamiast całych spójnych składowych przechowywać ich pewne drzewa rozpinające. Jeżeli te drzewa są reprezentowane jako ET-drzewa, to: OperacjęADDłatwowykonaćzapomocąLINK:czas O(log n) Niestety do operacji DELETE nie wystarczy CUT Ponieważ potrzebujemy sprawdzić, czy nie istnieje tzw. krawędź zastępcza Znalezienie krawędzi zastępczej to czas rzędu O(m)
31 Zagadnienie Algorytm HLT Właściwe rozwiązanie algorytm HLT Algorytm Holma, de Lichtenberga i Thorupa. Podzielmy krawędzie na poziomy.
32 Zagadnienie Algorytm HLT Właściwe rozwiązanie algorytm HLT Algorytm Holma, de Lichtenberga i Thorupa. Podzielmy krawędzie na poziomy. Każde bezowocne dotknięcie krawędzi zwiększy jej poziom. Poziomów będzie O(log n).
33 Zagadnienie Algorytm HLT Właściwe rozwiązanie algorytm HLT Algorytm Holma, de Lichtenberga i Thorupa. Podzielmy krawędzie na poziomy. Każde bezowocne dotknięcie krawędzi zwiększy jej poziom. Poziomów będzie O(log n). NiechG i grafzbudowanyzkrawędziopoziomach i.wtedy G =G 0 G 1 G 2...
34 Zagadnienie Algorytm HLT Właściwe rozwiązanie algorytm HLT Algorytm Holma, de Lichtenberga i Thorupa. Podzielmy krawędzie na poziomy. Każde bezowocne dotknięcie krawędzi zwiększy jej poziom. Poziomów będzie O(log n). NiechG i grafzbudowanyzkrawędziopoziomach i.wtedy G =G 0 G 1 G 2... NiechF lasrozpinającyg,zaśf i podgraffskładającysię zkrawędziopoziomach i.wtedy: F 0 F 1 F 2...
35 Zagadnienie Algorytm HLT Właściwe rozwiązanie algorytm HLT Algorytm Holma, de Lichtenberga i Thorupa. Podzielmy krawędzie na poziomy. Każde bezowocne dotknięcie krawędzi zwiększy jej poziom. Poziomów będzie O(log n). NiechG i grafzbudowanyzkrawędziopoziomach i.wtedy G =G 0 G 1 G 2... NiechF lasrozpinającyg,zaśf i podgraffskładającysię zkrawędziopoziomach i.wtedy: F 0 F 1 F 2... Ponadtożądamy,by: T n 2 i dladowolnegodrzewatnależącego dodowolnegolasuf i. Terminologia: Krawędzie z F nazywamy drzewowymi, pozostałe niedrzewowymi.
36 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn)
37 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn) AleobarczamyjądodatkowymkosztemO(log 2 n)
38 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn) AleobarczamyjądodatkowymkosztemO(log 2 n) To na poczet przyszłych O(log n) podniesień poziomu
39 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn) AleobarczamyjądodatkowymkosztemO(log 2 n) To na poczet przyszłych O(log n) podniesień poziomu CONNECTED(u,v) koszto(logn)
40 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn) AleobarczamyjądodatkowymkosztemO(log 2 n) To na poczet przyszłych O(log n) podniesień poziomu CONNECTED(u,v) koszto(logn) CONNECTED() koszt O(1) pamiętamy liczbę spójnych składowych
41 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn) AleobarczamyjądodatkowymkosztemO(log 2 n) To na poczet przyszłych O(log n) podniesień poziomu CONNECTED(u,v) koszto(logn) CONNECTED() koszt O(1) pamiętamy liczbę spójnych składowych DELETE(u, v)
42 Zagadnienie Algorytm HLT Poszczególne operacje na strukturze HLT ADD(u,v) koszto(logn) AleobarczamyjądodatkowymkosztemO(log 2 n) To na poczet przyszłych O(log n) podniesień poziomu CONNECTED(u,v) koszto(logn) CONNECTED() koszt O(1) pamiętamy liczbę spójnych składowych DELETE(u,v) najbardziejproblematyczna...
43 Zagadnienie Algorytm HLT Usunięcie krawędzi ze struktury HLT Najpierw sprawdzamy poziom krawędzi(przyda nam się tu dodatkowa kopia całego grafu, gdzie krawędzie będą etykietowane poziomami). Oznaczmy ten poziom jako l.
44 Zagadnienie Algorytm HLT Usunięcie krawędzi ze struktury HLT Najpierw sprawdzamy poziom krawędzi(przyda nam się tu dodatkowa kopia całego grafu, gdzie krawędzie będą etykietowane poziomami). Oznaczmy ten poziom jako l. Jeżeli krawędź była niedrzewowa, to wystarczy usunąć koszt wszystkiego O(log n)
45 Zagadnienie Algorytm HLT Usunięcie krawędzi ze struktury HLT Najpierw sprawdzamy poziom krawędzi(przyda nam się tu dodatkowa kopia całego grafu, gdzie krawędzie będą etykietowane poziomami). Oznaczmy ten poziom jako l. Jeżeli krawędź była niedrzewowa, to wystarczy usunąć koszt wszystkiego O(log n) Wpp. musimy:
46 Zagadnienie Algorytm HLT Usunięcie krawędzi ze struktury HLT Najpierw sprawdzamy poziom krawędzi(przyda nam się tu dodatkowa kopia całego grafu, gdzie krawędzie będą etykietowane poziomami). Oznaczmy ten poziom jako l. Jeżeli krawędź była niedrzewowa, to wystarczy usunąć koszt wszystkiego O(log n) Wpp. musimy: WykonaćCUTnawszystkichlasachF 0,F 1,...,F l czaso(log 2 n)
47 Zagadnienie Algorytm HLT Usunięcie krawędzi ze struktury HLT Najpierw sprawdzamy poziom krawędzi(przyda nam się tu dodatkowa kopia całego grafu, gdzie krawędzie będą etykietowane poziomami). Oznaczmy ten poziom jako l. Jeżeli krawędź była niedrzewowa, to wystarczy usunąć koszt wszystkiego O(log n) Wpp. musimy: WykonaćCUTnawszystkichlasachF 0,F 1,...,F l czaso(log 2 n) Znaleźć krawędź zastępczą
48 Zagadnienie Algorytm HLT Usunięcie krawędzi ze struktury HLT Najpierw sprawdzamy poziom krawędzi(przyda nam się tu dodatkowa kopia całego grafu, gdzie krawędzie będą etykietowane poziomami). Oznaczmy ten poziom jako l. Jeżeli krawędź była niedrzewowa, to wystarczy usunąć koszt wszystkiego O(log n) Wpp. musimy: WykonaćCUTnawszystkichlasachF 0,F 1,...,F l czaso(log 2 n) Znaleźć krawędź zastępczą KoszttejoperacjitoO(log 2 n).
49 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l
50 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie
51 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,...
52 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat.
53 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat. Jeżeli dana krawędź nie jest zastępcza to podnosimy jej poziom
54 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat. Jeżeli dana krawędź nie jest zastępcza to podnosimy jej poziom(możemy to zrobić teoretycznie dla wszystkich krawędzi w badanym podgrafie, bo jego rozmiar nie przekracza n 2 i+1 )
55 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat. Jeżeli dana krawędź nie jest zastępcza to podnosimy jej poziom(możemy to zrobić teoretycznie dla wszystkich krawędzi w badanym podgrafie, bo jego rozmiar nie przekracza n ) 2 i+1 Jeżeli dana krawędź jest zastępcza, to kończymy wyszukiwanie
56 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat. Jeżeli dana krawędź nie jest zastępcza to podnosimy jej poziom(możemy to zrobić teoretycznie dla wszystkich krawędzi w badanym podgrafie, bo jego rozmiar nie przekracza n ) 2 i+1 Jeżeli dana krawędź jest zastępcza, to kończymy wyszukiwanie Kiedy znajdziemy krawędź zastępczą, to:
57 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat. Jeżeli dana krawędź nie jest zastępcza to podnosimy jej poziom(możemy to zrobić teoretycznie dla wszystkich krawędzi w badanym podgrafie, bo jego rozmiar nie przekracza n ) 2 i+1 Jeżeli dana krawędź jest zastępcza, to kończymy wyszukiwanie Kiedy znajdziemy krawędź zastępczą, to: musimy ją dodać na jej poziomie i wszystkich niższych
58 Zagadnienie Algorytm HLT HLT szukanie krawędzi zastępczej w operacji DELETE Nie może istnieć krawędź zastępcza o wyższym poziomie niż l Musimy wybrać krawędź zastępczą o najwyższym poziomie Szukamywięcjejkolejnonapoziomachl,l 1,l 2,... Krawędź zastępczą szukamy przeglądając wszystkie krawędzie wpodgrafierozpinanymprzezmniejszedrzewot 1 zdwóchdrzew T 1,T 2 powstałychzrozpaduoryginalnegodrzewat. Jeżeli dana krawędź nie jest zastępcza to podnosimy jej poziom(możemy to zrobić teoretycznie dla wszystkich krawędzi w badanym podgrafie, bo jego rozmiar nie przekracza n ) 2 i+1 Jeżeli dana krawędź jest zastępcza, to kończymy wyszukiwanie Kiedy znajdziemy krawędź zastępczą, to: musimy ją dodać na jej poziomie i wszystkich niższych Stąd mamy O(log n) operacji LINK.
59 HLT podsumowanie Zagadnienie Algorytm HLT Koszt(zamortyzowany) poszczególnych operacji: ADD(u,v),DELETE(u,v):O(log 2 n) CONNECTED(u, v): O(log n) CONNECTED: O(1)
60 Przypomnienie Wstęp Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). W algorytmie Dinica szukamy ścieżki powiększające paczkami, składającymi się z maksymalnego zbioru najkrótszych ścieżek powiększających
61 Przypomnienie Wstęp Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). W algorytmie Dinica szukamy ścieżki powiększające paczkami, składającymi się z maksymalnego zbioru najkrótszych ścieżek powiększających każda paczka to jeden przepływ blokujący.
62 Przypomnienie Wstęp Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). W algorytmie Dinica szukamy ścieżki powiększające paczkami, składającymi się z maksymalnego zbioru najkrótszych ścieżek powiększających każda paczka to jeden przepływ blokujący. Odległość ujścia od źródła rośnie po każdym przepływie blokującym, więc musimy go szukać O(n) razy.
63 Przypomnienie Wstęp Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). W algorytmie Dinica szukamy ścieżki powiększające paczkami, składającymi się z maksymalnego zbioru najkrótszych ścieżek powiększających każda paczka to jeden przepływ blokujący. Odległość ujścia od źródła rośnie po każdym przepływie blokującym, więc musimy go szukać O(n) razy. Przepływu blokującego szukamy w tzw. sieci warstwowej przy użyciu pary operacji: ADVANCE RETREAT
64 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy
65 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy informacje o częściowych ścieżkach powiększających.
66 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy informacje o częściowych ścieżkach powiększających. Te ścieżki tworzą las!
67 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy informacje o częściowych ścieżkach powiększających. Te ścieżki tworzą las! Reprezentujmy więc ten las za pomocą ET-drzew.
68 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy informacje o częściowych ścieżkach powiększających. Te ścieżki tworzą las! Reprezentujmy więc ten las za pomocą ET-drzew. Operacje ADVANCE i RETREAT odpowiednio zmienią postać.
69 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy informacje o częściowych ścieżkach powiększających. Te ścieżki tworzą las! Reprezentujmy więc ten las za pomocą ET-drzew. Operacje ADVANCE i RETREAT odpowiednio zmienią postać. Ale żeby znaleźć przepływ blokujący w czasie O(m log n) musimy umieć wzbogacić drzewa o wagi na krawędziach/wierzchołkach i umieć wykonywać szybko(w czasie O(log n)) operacje: COST ADDCOST MIN
70 Przypomnienie idei przepływów blokujących Znajdowanie przepływu blokującego w czasie O(m log n). Jak znajdować przepływ blokujący szybciej? Jak znajdować przepływ blokujący szybciej? Wykorzystajmy informacje, które w podstawowej wersji algorytmu Dinica gubimy informacje o częściowych ścieżkach powiększających. Te ścieżki tworzą las! Reprezentujmy więc ten las za pomocą ET-drzew. Operacje ADVANCE i RETREAT odpowiednio zmienią postać. Ale żeby znaleźć przepływ blokujący w czasie O(m log n) musimy umieć wzbogacić drzewa o wagi na krawędziach/wierzchołkach i umieć wykonywać szybko(w czasie O(log n)) operacje: COST ADDCOST MIN niestety ET-drzewa na to nie pozwalają
71 Drzewa Link-Cut Alternatywna struktura dla drzew dynamicznych Jest trudniejsza,
72 Drzewa Link-Cut Alternatywna struktura dla drzew dynamicznych Jest trudniejsza, zamortyzowana,
73 Drzewa Link-Cut Alternatywna struktura dla drzew dynamicznych Jest trudniejsza, zamortyzowana, ale więcej da się nią zrobić!
74 Drzewa Link-Cut Alternatywna struktura dla drzew dynamicznych Jest trudniejsza, zamortyzowana, ale więcej da się nią zrobić! Idea Znów nie przechowujemy drzew jawnie w pamięci, tylko zamiast nich pamiętamy ich pewną dekompozycję na ścieżki. Tak jak w drzewach splay przy każdej operacji ściągamy do korzenia żądany wierzchołek, tak teraz będziemy zmieniać dekompozycję ścieżkową, aby żądany wierzchołek był na drugim końcu ścieżki zaczynającej się w korzeniu.
75 Drzewa Link-Cut Alternatywna struktura dla drzew dynamicznych Jest trudniejsza, zamortyzowana, ale więcej da się nią zrobić! Idea Znów nie przechowujemy drzew jawnie w pamięci, tylko zamiast nich pamiętamy ich pewną dekompozycję na ścieżki. Tak jak w drzewach splay przy każdej operacji ściągamy do korzenia żądany wierzchołek, tak teraz będziemy zmieniać dekompozycję ścieżkową, aby żądany wierzchołek był na drugim końcu ścieżki zaczynającej się w korzeniu. Czyni to operacja ACCESS Zmiana dekompozycji ścieżkowej ściślej oznacza zmianę tzw. preferowanych synów
76 Budowa drzewa Link-Cut Każdy wierzchołek reprezentowanego drzewa ma co najwyżej jednego preferowanego syna. Jest to ten syn, w którego poddrzewie znajduje się ostatnio dotknięty wierzchołek.
77 Budowa drzewa Link-Cut Każdy wierzchołek reprezentowanego drzewa ma co najwyżej jednego preferowanego syna. Jest to ten syn, w którego poddrzewie znajduje się ostatnio dotknięty wierzchołek. Preferowane krawędzie tworzą dekompozycję ścieżkową.
78 Budowa drzewa Link-Cut Każdy wierzchołek reprezentowanego drzewa ma co najwyżej jednego preferowanego syna. Jest to ten syn, w którego poddrzewie znajduje się ostatnio dotknięty wierzchołek. Preferowane krawędzie tworzą dekompozycję ścieżkową. Czym są ścieżki? Są to drzewa splay o kluczach będących głębokościami poszczególnych wierzchołków w reprezentowanym drzewie.
79 Budowa drzewa Link-Cut Każdy wierzchołek reprezentowanego drzewa ma co najwyżej jednego preferowanego syna. Jest to ten syn, w którego poddrzewie znajduje się ostatnio dotknięty wierzchołek. Preferowane krawędzie tworzą dekompozycję ścieżkową. Czym są ścieżki? Są to drzewa splay o kluczach będących głębokościami poszczególnych wierzchołków w reprezentowanym drzewie. Każdy korzeń drzewa splay ma wskaźnik do swojego ojca w reprezentowanym drzewie.
80 Budowa drzewa Link-Cut Każdy wierzchołek reprezentowanego drzewa ma co najwyżej jednego preferowanego syna. Jest to ten syn, w którego poddrzewie znajduje się ostatnio dotknięty wierzchołek. Preferowane krawędzie tworzą dekompozycję ścieżkową. Czym są ścieżki? Są to drzewa splay o kluczach będących głębokościami poszczególnych wierzchołków w reprezentowanym drzewie. Każdy korzeń drzewa splay ma wskaźnik do swojego ojca w reprezentowanym drzewie. Drzewo Link-Cut jest w pewnym sensie drzewem drzew typu splay.
81 Operacje na drzewach Link-Cut Działanie operacji ACCESS(v) Najpierw odcina wierzchołek od ścieżki poniżej niego
82 Operacje na drzewach Link-Cut Działanie operacji ACCESS(v) Najpierw odcina wierzchołek od ścieżki poniżej niego Potem przebiega po kolejnych ścieżkach od v do korzenia łączącjezesobą.
83 Operacje na drzewach Link-Cut Działanie operacji ACCESS(v) Najpierw odcina wierzchołek od ścieżki poniżej niego Potem przebiega po kolejnych ścieżkach od v do korzenia łączącjezesobą. Na końcu wykonuje splay(v).
84 Operacje na drzewach Link-Cut Działanie operacji ACCESS(v) Najpierw odcina wierzchołek od ścieżki poniżej niego Potem przebiega po kolejnych ścieżkach od v do korzenia łączącjezesobą. Na końcu wykonuje splay(v). Inne operacje ROOT(v) najpierw ACCESS(v), potem należy zejść lewą ścieżką głównego drzewa splay(tego w korzeniu)
85 Operacje na drzewach Link-Cut Działanie operacji ACCESS(v) Najpierw odcina wierzchołek od ścieżki poniżej niego Potem przebiega po kolejnych ścieżkach od v do korzenia łączącjezesobą. Na końcu wykonuje splay(v). Inne operacje ROOT(v) najpierw ACCESS(v), potem należy zejść lewą ścieżką głównego drzewa splay(tego w korzeniu) CUT(v) najpierwaccess(v),potemodcinamyvodjego lewego poddrzewa
86 Operacje na drzewach Link-Cut Działanie operacji ACCESS(v) Najpierw odcina wierzchołek od ścieżki poniżej niego Potem przebiega po kolejnych ścieżkach od v do korzenia łączącjezesobą. Na końcu wykonuje splay(v). Inne operacje ROOT(v) najpierw ACCESS(v), potem należy zejść lewą ścieżką głównego drzewa splay(tego w korzeniu) CUT(v) najpierwaccess(v),potemodcinamyvodjego lewego poddrzewa LINK(u,v) najpierwaccess(u)iaccess(v) i podpinamy jedno drzewo pod drugie
87 Wagi w wierzchołkach Żeby obsługiwać operacje COST, MIN oraz ADDCOST moglibyśmy przechowywać cost(v) oraz mincost(v)(minimalny COSTwpoddrzewiev)dlakażdegowierzchołkav.
88 Wagi w wierzchołkach Żeby obsługiwać operacje COST, MIN oraz ADDCOST moglibyśmy przechowywać cost(v) oraz mincost(v)(minimalny COSTwpoddrzewiev)dlakażdegowierzchołkav. AlewtedynieudanamsięzrobićADDCOSTszybko.
89 Wagi w wierzchołkach Żeby obsługiwać operacje COST, MIN oraz ADDCOST moglibyśmy przechowywać cost(v) oraz mincost(v)(minimalny COSTwpoddrzewiev)dlakażdegowierzchołkav. AlewtedynieudanamsięzrobićADDCOSTszybko. Zamiast tego przechowujmy dla każdego wierzchołka: cost =cost(v) cost(p(v)) min =cost(v) mincost(v) Dzięki temu po operacji ACCESS(v) mamy prawie gotowy wynik powyższych zapytań, a operacja ADDCOST wymaga tylko zmiany wartości w korzeniu.
90 Analiza złożoności drzew Link-Cut Analiza drzew Link-Cut jest podobna do analizy drzew splay i dosyć techniczna. Każda z operacji wykonuje się w zamortyzowanym czasie O(log n).
91 Bibliografia Wstęp Daniel D. Sleator, Robert Endre Tarjan, A Data Structure for Dynamic Trees, Bell Laboratories, Murray Hill, New Jersey 07974, theory.csail.mit.edu/classes/6.897/spring05/lec/lec05.pdf kowalik/teach/zsd/link-cut.pdf mucha/teaching/zsd2006/zsd12.pdf
Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14
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
Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany
, 1 2 3, czas zamortyzowany zajęcia 3. Wojciech Śmietanka, Tomasz Kulczyński, Błażej Osiński rozpinajace, 1 2 3 rozpinajace Mamy graf nieskierowany, ważony, wagi większe od 0. Chcemy wybrać taki podzbiór
Wysokość drzewa Głębokość węzła
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
Dynamiczne drzewa. Piotr Sankowski. - p. 1/27
Piotr Sankowski - p. 1/27 przypomnienie czas O(log 2 n), jak to zrobić w czasie O(log n), jak to zrobić w pesymistycznym czasie O(log n) (szkic). - p. 2/27 Operacje na dynamicznych drzewach: parent(v)
Wykład 2. Drzewa zbalansowane AVL i 2-3-4
Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania
Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy
WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo
Struktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest
Znajdowanie skojarzeń na maszynie równoległej
11 grudnia 2008 Spis treści 1 Skojarzenia w różnych klasach grafów Drzewa Grafy gęste Grafy regularne dwudzielne Claw-free graphs 2 Drzewa Skojarzenia w drzewach Fakt Wybierajac krawędź do skojarzenia
Wykład 8. Drzewo rozpinające (minimum spanning tree)
Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,
Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek
Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących
ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie
Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
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
Drzewa Las - graf, który nie zawiera cykli Drzewo - las spójny 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 Niech T graf o n wierzchołkach będący
ALGORYTMY I STRUKTURY DANYCH
LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,
Egzaminy i inne zadania. Semestr II.
Egzaminy i inne zadania. Semestr II. Poniższe zadania są wyborem zadań ze Wstępu do Informatyki z egzaminów jakie przeprowadziłem w ciągu ostatnich lat. Ponadto dołączyłem szereg zadań, które pojawiały
Lista 0. Kamil Matuszewski 1 marca 2016
Lista 0 Kamil Matuszewski marca 206 2 3 4 5 6 7 8 0 0 Zadanie 4 Udowodnić poprawność mnożenia po rosyjsku Zastanówmy się co robi nasz algorytm Mamy podane liczby n i m W każdym kroku liczbę n dzielimy
Porządek symetryczny: right(x)
Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)
Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.
Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4
Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.
Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące
Podstawy Informatyki. Metody dostępu do danych
Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie
Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne
Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może
Drzewa poszukiwań binarnych
1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich
Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.
Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego
Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1
Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
Koszt zamortyzowany. Potencjał - Fundusz Ubezpieczeń Kosztów Algorytmicznych
Koszt zamortyzowany Jeśli mamy ciąg operacji, to koszt zamortyzowany jednej z nich jest sumarycznym kosztem wykonania wszystkich operacji podzielonym przez liczbę operacji. Inaczej mówiąc jest to, dla
Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik
Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym
Algorytmy i Struktury Danych, 9. ćwiczenia
Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące
2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew
0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury
Matematyka dyskretna - 7.Drzewa
Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja
Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach
Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.
Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa
Digraf. 13 maja 2017
Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,
Drzewa poszukiwań binarnych
1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów
Akademickie Mistrzostwa Polski w Programowaniu Zespołowym
Akademickie Mistrzostwa Polski w Programowaniu Zespołowym Prezentacja rozwiązań zadań 30 października 2011 c h k f e j i a b d g Czy się zatrzyma? Autor zadania: Jakub Łącki Zgłoszenia: 104 z 914 (11%)
Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)
Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie
Sortowanie bąbelkowe
1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym
Listy, kolejki, stosy
Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu
Wykład 8. Drzewa AVL i 2-3-4
Wykład 8 Drzewa AVL i 2-3-4 1 Drzewa AVL Ø Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Ø Drzewa 2-3-4 Definicja drzewa 2-3-4 Operacje wstawiania i usuwania Złożoność
Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą
E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne
E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują
MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY
ERIAŁY DO WYKŁADU GRAFY Graf nieskierowany Grafem nieskierowanym nazywamy parę G = (V, E), gdzie V jest pewnym zbiorem skończonym (zwanym zbiorem wierzchołków grafu G), natomiast E jest zbiorem nieuporządkowanych
7. Teoria drzew - spinanie i przeszukiwanie
7. Teoria drzew - spinanie i przeszukiwanie Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny 7. wteoria Krakowie) drzew - spinanie i przeszukiwanie
Programowanie obiektowe
Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań
Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle
Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,
Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski
: idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski
Kompresja danych Streszczenie Studia Dzienne Wykład 10,
1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny
Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA
Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których
Programowanie obiektowe
Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2014 1 / 24 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań
Definicja pliku kratowego
Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,
Algorytmy i struktury danych. wykład 5
Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również
Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
5c. Sieci i przepływy
5c. Sieci i przepływy Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 5c. Sieci i przepływy zima 2016/2017 1 / 40 1 Definicje
Drzewa czerwono-czarne.
Binboy at Sphere http://binboy.sphere.p l Drzewa czerwono-czarne. Autor: Jacek Zacharek Wstęp. Pojęcie drzewa czerwono-czarnego (red-black tree) zapoczątkował Rudolf Bayer w książce z 1972 r. pt. Symmetric
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.
SPÓJNOŚĆ Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja równoważna: Graf jest spójny, gdy każde dwa wierzchołki są połączone ścieżką
Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.
Plan wykładu 2 BAZY DANYCH Wykład 4: Indeksy. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krętowska Wydział Informatyki PB Pojęcie
Minimalne drzewa rozpinające
KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam
(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
2. Wykład 2: algebry Boole a, kraty i drzewa. 2.1. Algebra Boole a. 1 Ważnym dla nas przykładem algebr są algebry Boole a, czyli algebry B = (B,,,, 0, 1) typu (2, 2, 1, 0, 0) spełniające własności: (1)
Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy
Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element
prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325
PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj
Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II
Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem
a) 7 b) 19 c) 21 d) 34
Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie
Graf. Definicja marca / 1
Graf 25 marca 2018 Graf Definicja 1 Graf ogólny to para G = (V, E), gdzie V jest zbiorem wierzchołków (węzłów, punktów grafu), E jest rodziną krawędzi, które mogą być wielokrotne, dokładniej jednoelementowych
Łyżwy - omówienie zadania
Komisja Regulaminowa XVI Olimpiady Informatycznej 1 UMK Toruń 12 luty 2009 1 Niniejsza prezentacja zawiera materiały dostarczone przez Komitet Główny Olimpiady Informatycznej. Treść zadania Wejście Wyjście
operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów
Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Drzewa: Drzewo (ang. tree) jest strukturą danych zbudowaną z elementów, które nazywamy węzłami (ang. node).
Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz
Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny
Bazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 15/15 PYTANIA NA EGZAMIN LICENCJACKI 84. B drzewa definicja, algorytm wyszukiwania w B drzewie. Zob. Elmasri:
Nierówność Krafta-McMillana, Kodowanie Huffmana
Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy
Modelowanie hierarchicznych struktur w relacyjnych bazach danych
Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego
BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza
BAZY DANYCH Microsoft Access OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa
Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych
Algorytmy i Struktury Danych Wykład IV Sortowania cd. Elementarne struktury danych 1 Co dziś? Dolna granica sortowań Mediany i statystyki pozycyjne Warstwa implementacji Warstwa abstrakcji #tablice #listy
Teoria Informacji i Metody Kompresji Danych
Teoria Informacji i Metody Kompresji Danych 1 Materiały wykładowe (fragmenty) 2 Robert Susmaga Instytut Informatyki ul. Piotrowo 2 Poznań kontakt mail owy Robert.Susmaga@CS.PUT.Poznan.PL kontakt osobisty
Drzewo binarne BST. LABORKA Piotr Ciskowski
Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego
Wykład 6. Drzewa poszukiwań binarnych (BST)
Wykład 6 Drzewa poszukiwań binarnych (BST) 1 O czym będziemy mówić Definicja Operacje na drzewach BST: Search Minimum, Maximum Predecessor, Successor Insert, Delete Struktura losowo budowanych drzew BST
Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski
Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny
Matematyka dyskretna
Matematyka dyskretna Wykład 13: Teoria Grafów Gniewomir Sarbicki Literatura R.J. Wilson Wprowadzenie do teorii grafów Definicja: Grafem (skończonym, nieskierowanym) G nazywamy parę zbiorów (V (G), E(G)),
Egzamin, AISDI, I termin, 18 czerwca 2015 r.
Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział
Wykład 2. Drzewa poszukiwań binarnych (BST)
Wykład 2 Drzewa poszukiwań binarnych (BST) 1 O czym będziemy mówić Definicja Operacje na drzewach BST: Search Minimum, Maximum Predecessor, Successor Insert, Delete Struktura losowo budowanych drzew BST
Algorytmika Problemów Trudnych
Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.
KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F
KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Twierdzenie 2.1 Niech G będzie grafem prostym
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Drzewa podstawowe poj
Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho
Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Teoria grafów podstawy Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Grafy zorientowane i niezorientowane Przykład 1 Dwa pociągi i jeden most problem wzajemnego wykluczania się Dwa
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 53
Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.
Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf
Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki
Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First
< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >
Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających
Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i
Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i A (symbol F i oznacza ilość argumentów funkcji F i ). W rozważanych przez nas algebrach
Lista liniowa dwukierunkowa
53 Lista liniowa dwukierunkowa Jest to lista złożona z elementów, z których każdy posiada, oprócz wskaźnika na element następny, również wskaźnik na element poprzedni. Zdefiniujmy element listy dwukierunkowej
EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew
1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;