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

Wielkość: px
Rozpocząć pokaz od strony:

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

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 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

Bardziej szczegółowo

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

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

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

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ą.

Bardziej szczegółowo

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

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)

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

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

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

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

Bardziej szczegółowo

Znajdowanie skojarzeń na maszynie równoległej

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

Bardziej szczegółowo

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

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,

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

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

Bardziej szczegółowo

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:

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ą.

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

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

Bardziej szczegółowo

Teoretyczne podstawy informatyki

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ą,

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

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

Bardziej szczegółowo

Lista 0. Kamil Matuszewski 1 marca 2016

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

Bardziej szczegółowo

Porządek symetryczny: right(x)

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)

Bardziej szczegółowo

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy Informatyki. Metody dostępu do danych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Drzewa poszukiwań binarnych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Teoretyczne podstawy informatyki

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Koszt zamortyzowany. Potencjał - Fundusz Ubezpieczeń Kosztów Algorytmicznych

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Algorytmy i Struktury Danych, 9. ćwiczenia

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Matematyka dyskretna - 7.Drzewa

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Digraf. 13 maja 2017

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,

Bardziej szczegółowo

Drzewa poszukiwań binarnych

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

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%)

Bardziej szczegółowo

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

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

Bardziej szczegółowo

Sortowanie bąbelkowe

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

Bardziej szczegółowo

Listy, kolejki, stosy

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ć:

Bardziej szczegółowo

Algorytmy i Struktury Danych

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

Bardziej szczegółowo

Wykład 8. Drzewa AVL i 2-3-4

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ść

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

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ą

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

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ą

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

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ą

Bardziej szczegółowo

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

Bardziej szczegółowo

7. Teoria drzew - spinanie i przeszukiwanie

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

Bardziej szczegółowo

Programowanie obiektowe

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ń

Bardziej szczegółowo

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 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,

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

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

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie obiektowe

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ń

Bardziej szczegółowo

Definicja pliku kratowego

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,

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 5

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ż

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

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

Bardziej szczegółowo

5c. Sieci i przepływy

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

Bardziej szczegółowo

Drzewa czerwono-czarne.

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

Bardziej szczegółowo

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ŚĆ. ,...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ą

Bardziej szczegółowo

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

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

Bardziej szczegółowo

Minimalne drzewa rozpinające

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

Bardziej szczegółowo

(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

(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)

Bardziej szczegółowo

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 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

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Graf. Definicja marca / 1

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

Bardziej szczegółowo

Łyżwy - omówienie zadania

Ł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

Bardziej szczegółowo

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.

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

Bardziej szczegółowo

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 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).

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

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:

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

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

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Bardziej szczegółowo

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

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

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

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

Bardziej szczegółowo

Teoria Informacji i Metody Kompresji Danych

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

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

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

Bardziej szczegółowo

Wykład 6. Drzewa poszukiwań binarnych (BST)

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

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

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

Bardziej szczegółowo

Matematyka dyskretna

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)),

Bardziej szczegółowo

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

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ł

Bardziej szczegółowo

Wykład 2. Drzewa poszukiwań binarnych (BST)

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

Bardziej szczegółowo

Algorytmika Problemów Trudnych

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.

Bardziej szczegółowo

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

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:

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

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

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

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

Bardziej szczegółowo

Drzewa podstawowe poj

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Algorytmy i Struktury Danych.

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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ę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

Bardziej szczegółowo

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

< 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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Lista liniowa dwukierunkowa

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

Bardziej szczegółowo

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

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;

Bardziej szczegółowo