Minimalne drzewo rozpinaj ce
|
|
- Iwona Szczepańska
- 4 lat temu
- Przeglądów:
Transkrypt
1 Minimalne drzewo rozpinaj ce Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania Programu Operacyjnego Kapitaª Ludzki 1 / 50
2 Problem Ustalmy spójny niezorientowany graf G = (V, E) z funkcj wagi w : E R +. Rozwa»my nast puj c interpretacj grafu G : wierzchoªki V = {1, 2,..., n} = miasta, kraw dzie = potencjalne bezpo±rednie drogowe poª czenia pomi dzy miastami, waga w(i, j) kraw dzi {i, j} E = koszt budowy poª czenia pomi dzy miastami i i j. 2 / 50
3 Problem Zagadnienie optymalizacyjne. Zbudowa tylko te drogi spo±ród opisanych przez graf G (czyli wybra podgraf G grafu G ) tak, by: 1 pomi dzy ka»d par miast (wierzchoªków) istniaªo drogowe poª czenie (niekoniecznie bezpo±rednie), 2 koszt budowy tej sieci dróg byª najni»szy spo±ród wszystkich rozwi za«speªniaj cych punkt 1. 3 / 50
4 Problem Šatwo zauwa»y,»e je»eli podgraf G speªnia te wªasno±ci, to 1 zawiera wszystkie wierzchoªki grafu G, 2 jest spójny, 3 nie zawiera cykli. W szczególno±ci 2 i 3 oznaczaj,»e G powinien by drzewem. Tzw. minimalnym drzewem rozpinaj cym, które za chwil zdeniujemy w sposób bardziej formalny. Problem ten pojawia si w wielu innych kontekstach informatycznych, cz sto znalezienie minimalnego drzewa rozpinaj cego jest pierwszym krokiem w rozwi zaniach innych problemów. Czasem stosuje si te» nazw minimalne drzewo spinaj ce. 4 / 50
5 Drzewo rozpinaj ce Niech G = (V, E) b dzie spójnym grafem niezorientowanym. Denicja Drzewo rozpinaj ce (ang. spanning tree) grafu G = drzewo T = (V, E ) takie,»e E E. Tzn. T jest drzewem zawieraj cym wszystkie wierzchoªki G, za± jego zbiór kraw dzi jest podzbiorem zbioru kraw dzi G. Drzewo rozpinaj ce powstaje z grafu G poprzez usuni cie kraw dzi nale» cych do cykli. Ka»de drzewo rozpinaj ce grafu G ma V 1 kraw dzi. 5 / 50
6 Drzewo rozpinaj ce przykªad Drzewo rozpinaj ce nie jest poj ciem jednoznacznym. Dla grafu G : Drzewem rozpinaj cym jest podgraf T : 6 / 50
7 Drzewo rozpinaj ce przykªad Drzewo rozpinaj ce nie jest poj ciem jednoznacznym. Dla grafu G : Drzewem rozpinaj cym jest podgraf T 2 : 7 / 50
8 Drzewo rozpinaj ce przykªad Drzewo rozpinaj ce nie jest poj ciem jednoznacznym. Dla grafu G : Drzewem rozpinaj cym jest podgraf T 3 : 8 / 50
9 Minimalne drzewo rozpinaj ce Niech G = (V, E) b dzie spójnym grafem niezorientowanym z wag w : E R +. Dla dowolnego drzewa rozpinaj cego T = (V, E ) grafu G deniujemy jego wag w(t ) = w(u, v). (u,v) E Denicja Minimalne drzewo rozpinaj ce (ang. minimal spanning tree MST) grafu G = drzewo rozpinaj ce T o minimalnej wadze w(t ) (spo±ród wszystkich drzew rozpinaj cych grafu G ). 9 / 50
10 Minimalne drzewo rozpinaj ce przykªad Dla grafu z wagami: przykªadowe wagi drzew rozpinaj cych: T : 1 w(t ) = / 50
11 Minimalne drzewo rozpinaj ce przykªad Dla grafu z wagami: przykªadowe wagi drzew rozpinaj cych: 2 T 2 : 15 8 w(t 2 ) = / 50
12 Minimalne drzewo rozpinaj ce przykªad Dla grafu z wagami: przykªadowe wagi drzew rozpinaj cych: 2 T 3 : 1 8 w(t 3 ) = / 50
13 Minimalne drzewo rozpinaj ce przykªad Dla grafu z wagami: minimalnym drzewem rozpinaj cym jest T 3 : w(t 3 ) = 33 ale nie jest to jedyne MST: T 4 : w(t 4 ) = / 50
14 Cel - poszukiwanie MST Rozwi zanie naiwne: Wygenerowa wszystkie drzewa rozpinaj ce i wybra te o najmniejszej wadze. Oczywista wada: Drzew rozpinaj cych jest na ogóª bardzo du»o. Ponadto, wcale nie jest to takie proste pod wzgl dem implementacyjnym. Cel: Opracowa efektywn metod znajdowania (jakiegokolwiek) MST. 14 / 50
15 Strategia Ogólna strategia zachªanna rozrastanie si podgrafu T o zbiorze kraw dzi A, który na ko«cu b dzie MST. Dane: Spójny graf niezorientowany G = (V, E) z funkcj wagow w : E R +. Cel: Znalezienie MST dla G. Podgraf T rozrasta si w wyniku dodawania kolejnych kraw dzi. W czasie algorytmu trzymamy zbiór A, który zawsze jest podzbiorem zbioru kraw dzi pewnego MST. W ka»dym kroku wyznaczamy kraw d¹, któr mo»na doda do A bez straty jego wªasno±ci (kraw d¹ bezpieczn dla A). 15 / 50
16 Strategia B dziemy zatem realizowa strategi opisan przez bardzo ogólny pseudokod: GenericMST(G, w) 1 begin 2 A := ; 3 while A nie tworzy drzewa rozpinaj cego do 4 begin 5 znajd¹ kraw d¹ {u, v} E\A bezpieczn dla A; 6 A := A { {u, v} } 7 end 8 end; Poprawno± ogólnie: Niezmiennik A jest podzbiorem zbioru kraw dzi pewnego MST jest zachowany w ka»dym kroku. Kraw d¹ bezpieczna w ka»dym kroku istnieje gwarantuje to niezmiennik. 16 / 50
17 Problem Gªówny problem Jak rozpoznawa bezpieczn kraw d¹? Omówimy dwa ró»ne rozwi zania tego problemu, tj. dwie ró»ne realizacje ogólnej strategii GenericMST: Algorytm Kruskala. Algorytm Prima. 17 / 50
18 Idea algorytmu Kruskala Nieformalny opis W ka»dym kroku rozrastaj cy si podgraf T = (V, A) grafu G jest lasem (tj. jego skªadowe s drzewami). Na pocz tku A =, tj. skªadowe T to jednowierzchoªkowe drzewa. Dodaj c bezpieczn kraw d¹ do A scalamy dwie skªadowe T w jedn. Na ko«cu T scali si w jedno drzewo. 18 / 50
19 Idea algorytmu Kruskala Nieformalny opis c.d. W poszukiwaniu kraw dzi bezpiecznych w kolejnych krokach przetwarzamy kraw dzie w kolejno±ci ich rosn cych (niemalej cych) wag. Kraw d¹ e jest bezpieczna, gdy dodanie jej do A nie spowoduje pojawienia si cyklu (jest to równowa»ne z tym,»e e ª czy dwie ró»ne dotychczasowe skªadowe w T ). Nale»y zatem umie rozpoznawa ró»ne skªadowe w grae T. Do tego wykorzystamy now struktur danych, tzw. struktur zbiorów rozª cznych. 19 / 50
20 Idea algorytmu Prima Nieformalny opis W odró»nieniu od algorytmu Kruskala, tu T zawsze stanowi jedno drzewo. Na pocz tku T ma 1 wierzchoªek (dowolnie wybrany z G ). W ka»dym kroku kraw d¹ bezpieczna to kraw d¹ o najmniejszej wadze spo±ród kraw dzi wystaj cych z T (tj. ª cz cych wierzchoªek z T z wierzchoªkiem spoza T ). Nale»y zatem umie efektywnie wybiera kraw dzie bezpieczne j.w. Do tego wykorzystamy odpowiedni kolejk priorytetow. 20 / 50
21 Struktury danych dla zbiorów rozª cznych W algorytmie Kruskala wykorzystamy nast puj c dynamiczn struktur danych. Kontekst: n ró»nych elementów pogrupowanych w pewn liczb zbiorów rozª cznych. Cel: zdeniowanie i zarz dzanie strukturami danych umo»liwiaj cymi operacje m.in.: ª czenia dwóch zbiorów, stwierdzania, do którego zbioru nale»y element x, stwierdzania, czy dwa elementy x, y nale» do tego samego zbioru. 21 / 50
22 Struktury danych dla zbiorów rozª cznych Zarz dzanie rodzin S = {S 1, S 2,..., S k } rozª cznych zbiorów dynamicznych. Pomysª: ka»dy zbiór S i identykujemy poprzez jego reprezentanta, czyli wyró»niony element x S i. Warunki nakªadane na reprezentanta: na ogóª nie ma znaczenia, który element jest reprezentantem, wa»ne jest, by zadaj c dwukrotnie pytanie o reprezentanta danego zbioru, otrzyma tak sam odpowied¹, o ile zbiór w tym czasie si nie zmieniaª, czasami ustala si na pocz tku pewn zasad wyboru reprezentanta (np. element z najmniejszym kluczem...). 22 / 50
23 Struktury danych dla zbiorów rozª cznych Podstawowe operacje: MakeSet(x) tworzy nowy jednoelementowy zbiór S = {x} (o reprezentancie x); x nie mo»e by elementem innego zbioru. Union(x, y) ª czy dwa rozª czne zbiory S x, S y zawieraj ce odpowiednio x i y w nowy zbiór S x S y. Jego reprezentantem mo»e by dowolny element S x S y, na ogóª reprezentant S x lub S y. FindSet(x) zwraca wska¹nik do reprezentanta (jedynego) zbioru zawieraj cego x. stwierdzanie, czy dwa elementy x, y nale» do tego samego zbioru: test FindSet(x) = FindSet(y). 23 / 50
24 Proste zastosowanie Przykªad zastosowania: rozpoznawanie spójnych skªadowych w grae (niezorientowanym) G = (V, E). ConnectedComponents(G) 1 begin 2 for ka»dy v V do 3 MakeSet(v); 4 for ka»da (u, v) E do 5 if FindSet(u) <> FindSet(v) then 6 Union(u, v); 7 end; Po wykonaniu podziaª wierzchoªków na zbiory rozª czne odpowiada podziaªowi na skªadowe spójno±ci. W podobnym kontek±cie wykorzystamy zbiory rozª czne w algorytmie Kruskala (który jest de facto pewn modykacj powy»szej procedury). 24 / 50
25 Proste zastosowanie SameComponent(u, v) 1 begin 2 if FindSet(u) = FindSet(v) then 3 return true 4 else return false 5 end; Wiemy: do wyznaczania skªadowych mo»na wykorzysta przegl danie grafu. Gdy do grafu kraw dzie s dodawane w czasie dziaªania algorytmu (czyli trzeba uaktualnia spójne skªadowe), to implementacja przy pomocy zbiorów rozª cznych mo»e by efektywniejsza. 25 / 50
26 Heurystyka W dalszej cz ±ci przeprowadzimy prost analiz heurystyczn. Przez heurystyk rozumiemy tu takie projektowanie operacji, by zmniejszy ich koszt zamortyzowany (niekoniecznie koszt pesymistyczny = zªo»ono± pesymistyczn ). Denicja Koszt zamortyzowany = koszt ±redni operacji P w ci gu n wykona«operacji P. Uwaga Sªowo heurystyka ma w informatyce równie» inne znaczenia. 26 / 50
27 Heurystyka Przykªad. Wykonujemy kolejno n sortowa«algorytmem sortowania b - belkowego P na tym samym zbiorze danych X. Wówczas tylko za pierwszym razem wykonywane s nietrywialne modykacje na X, st d tu koszt zamortyzowany jest znacznie ni»szy ni» koszt pesymistyczny algorytmu P. Oczywi±cie koszt zamortyzowany istotnie zale»y od kontekstu wykonywania danej operacji. 27 / 50
28 Implementacja listy Implementacja zbiorów rozª cznych w postaci list. Ka»dy zbiór przechowywany jako (dynamiczna) lista. Pierwszy skªadnik listy = reprezentant zbioru. Ka»dy skªadnik listy posiada pola: element zbioru, wska¹nik do nast pnego skªadnika listy, wska¹nik (prowadz cy wstecz) do reprezentanta. 28 / 50
29 Implementacja listy MakeSet(x) stworzenie nowej listy o jedynym skªadniku x. Zªo»ono± : O(1). FindSet(x) zwrócenie wska¹nika od x do reprezentanta zbioru. Zªo»ono± : O(1). Union(x, y) doª czenie listy L y z elementem y na koniec listy L x z elementem x. Reprezentantem nowego zbioru jest element b d cy wcze±niej reprezentantem zbioru zawieraj cego x. Trzeba uaktualni wska¹nik do reprezentanta we wszystkich skªadnikach znajduj cych si pierwotnie na li±cie L y. Zªo»ono± : O(s), gdzie s = L y (gdy mamy dost p do ostatniego elementu L x ). 29 / 50
30 Implementacja listy Usprawnienie: heurystyka ª czenia z wywa»aniem. Zawsze doª czamy krótsz list do dªu»szej. Trzeba przechowywa (np. w reprezentancie) i uaktualnia rozmiar listy. Asymptotyczna zªo»ono± pojedynczej operacji Union pozostaje taka sama, lecz koszt zamortyzowany jest mniejszy. Wykonanie ci gu m operacji MakeSet, Union i FindSet, spo±ród których n to MakeSet zajmuje przy wywa»aniu czas O(m + nlog n). Bez wywa»ania: O(m 2 ). 30 / 50
31 Implementacja drzewa z korzeniem Implementacja w postaci drzew z korzeniem. Ka»dy zbiór przechowywany jako drzewo z korzeniem. Korze«drzewa = reprezentant zbioru. Ka»dy wierzchoªek drzewa posiada pola: element zbioru, wska¹nik do ojca w drzewie (korze«wskazuje na siebie). Struktur drzewa mo»na tak»e zaimplementowa przy wykorzystaniu tablicy ojców indeksowanej elementami, które grupujemy w zbiory. 31 / 50
32 Implementacja drzewa z korzeniem Przykªad. Trzy zbiory rozª czne grupuj ce 10 elementów, reprezentowane poprzez drzewa: s jednoznacznie zakodowane przy pomocy tablicy ojców: i ojciec[i] / 50
33 Implementacja drzewa z korzeniem MakeSet(x) stworzenie nowego drzewa o jedynym wierzchoªku x. Zªo»ono± : O(1). FindSet(x) przej±cie po wska¹nikach od x do ojca itp. a» do korzenia. Zªo»ono± : O(h), gdzie h = wysoko± drzewa. Union(x, y) zmiana wska¹nika w korzeniu drzewa T x (zawieraj cego x) tak aby wskazywaª na korze«drzewa T y (zawieraj cego y). Zªo»ono± : O(1) (gdy mamy dost p do korzeni). 33 / 50
34 Implementacja drzewa z korzeniem Dwie heurystyki: 1 Š czenie wg wysoko±ci: drzewo o mniejszej wysoko±ci doª czamy do drzewa o wi kszej wysoko±ci (+ uaktualnienie wysoko±ci). 2 Kompresja drogi: stosowana przy operacji FindSet(x) polega na zmianie wska¹ników we wszystkich wierzchoªkach na drodze od x do korzenia tak, by wskazywaªy na korze«. 34 / 50
35 Implementacja drzewa z korzeniem Implementacja z uwzgl dnieniem heurystyk. Oznaczenia: h(x) = wysoko± wierzchoªka x ( N), ojciec(x) = ojciec wierzchoªka x (wska¹nik lub odwoªanie do tablicy ojców). MakeSet(x) 1 begin 2 ojciec(x) := x; 3 h(x) := 0 4 end; 35 / 50
36 Implementacja drzewa z korzeniem Implementacja z uwzgl dnieniem heurystyk ª czenie wg wysoko±ci: Link(x, y) 1 begin 2 if h(x) > h(y) then 3 ojciec(y) := x 4 else begin 5 ojciec(x) := y; 6 if h(x) = h(y) then 7 h(y) := h(y) end 9 end; Union(x, y) 1 begin 2 Link(FindSet(x), FindSet(y)) 3 end; 36 / 50
37 Implementacja drzewa z korzeniem Implementacja z uwzgl dnieniem heurystyk kompresja drogi: FindSet(x) 1 begin 2 if x <> ojciec(x) then 3 ojciec(x) := FindSet( ojciec(x) ); 4 return ojciec(x) 5 end; Uwaga Zauwa»my,»e po FindSet wysoko± drzewa mo»e ulec zmianie (zmniejszeniu). Mimo to, nie uaktualniamy warto±ci h dla»adnego wierzchoªka. Utrzymywanie poprawnych warto±ci wysoko±ci drzew byªoby niepotrzebnie kosztowne. Zatem warto±ci h nale»y tak naprawd interpretowa jako górne ograniczenia wysoko±ci drzew. 37 / 50
38 Implementacja drzewa z korzeniem Zaªó»my,»e wykonujemy ci g m operacji MakeSet, Union i FindSet, spo±ród których n to MakeSet. Twierdzenie (Hopcroft, Ullman) Zªo»ono± wykonania ci gu powy»szych operacji z uwzgl dnieniem heurystyk 1 i 2 wynosi O(m log n). log = logarytm iterowany. log jest funkcj bardzo wolno rosn c. log n 5 dla wszystkich 1 n Liczba atomów we wszech±wiecie < / 50
39 Poprawno± Zanim przedstawimy konkretny pseudokod, wprowadzimy kilka poj i faktów pozwalaj cych zrozumie, dlaczego idea algorytmu Kruskala przedstawiona wcze±niej zawsze daje poprawne rozwi zanie. Poj cia te wyst puj te» w innych kontekstach algorytmów grafowych. Bardziej szczegóªowy dowód poprawno±ci mo»na znale¹ np. w ksi»ce [1] ze spisu literatury do wykªadu (T. H. Cormen et al.). 39 / 50
40 Przekroje Denicje: Ka»dy podzbiór S V wyznacza przekrój (S, V \ S) grafu G = (V, E). Kraw d¹ {u, v} krzy»uje si z przekrojem (S, V \ S), je±li jeden z jej ko«ców nale»y do S, a drugi do V \ S. Przekrój (S, V \ S) uwzgl dnia zbiór kraw dzi A, je±li»adna kraw d¹ z A nie krzy»uje si z tym przekrojem. Kraw d¹ e E krzy»uj ca si z przekrojem jest kraw dzi lekk, je±li w(e) jest najmniejsza spo±ród wag wszystkich kraw dzi krzy»uj cych si z tym przekrojem. 40 / 50
41 Przekroje G = (V, E) spójny graf niezorientowany z funkcj wagow w : E R + Twierdzenie Niech E A podzbiór zbioru kraw dzi pewnego MST dla G, (S, V \ S) dowolny przekrój grafu G uwzgl dniaj cy A, {u, v} kraw d¹ lekka krzy»uj ca si z (S, V \ S). Wówczas kraw d¹ {u, v} jest bezpieczna dla A. 41 / 50
42 Przypomnienie idei algorytmu GenericMST(G, w) 1 begin 2 A := ; 3 while A nie tworzy drzewa rozpinaj cego do 4 begin 5 znajd¹ kraw d¹ {u, v} E\A bezpieczn dla A; 6 A := A { {u, v} } 7 end 8 end; Rozwa»my graf T = (V, A). W ka»dym kroku jest on acykliczny ka»da jego spójna skªadowa jest drzewem. na pocz tku A = T skªada si z V jednowierzchoªkowych drzew, poniewa» A { {u, v} } musi by acykliczny, ka»da bezpieczna kraw d¹ {u, v} dla A ª czy ró»ne skªadowe z T, w ka»dym kroku kolejne skªadowe T ª cz si (liczba drzew maleje), na ko«cu las T zawiera tylko 1 drzewo jest MST. 42 / 50
43 Przekroje Wniosek Niech E A podzbiór zbioru kraw dzi pewnego MST dla G, C = spójna skªadowa w lesie T = (V, A), {u, v} kraw d¹ o najmniejszej wadze spo±ród ª cz cych C z pewn inn skªadow w T. Wówczas kraw d¹ {u, v} jest bezpieczna dla A. Dowód. Przekrój (C, V \ C) uwzgl dnia A. {u, v} jest kraw dzi lekk krzy»uj c si z tym przekrojem. Na mocy twierdzenia {u, v} jest kraw dzi bezpieczn dla A. 43 / 50
44 Algorytm Podsumowanie: szczegóªowa wersja algorytmu GenericMST algorytm Kruskala (por. ConnectedComponents). MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; Zªo»ono± : O( E log E ) (przy najszybszych implementacjach zbiorów rozª cznych i sortowania, por. Tw. HopcroftUllman). 44 / 50
45 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; 45 / 50
46 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
47 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
48 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
49 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
50 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
51 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
52 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
53 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
54 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
55 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
56 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
57 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
58 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
59 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
60 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
61 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
62 Algorytm przebieg MST-Kruskal(G, w) 1 begin 2 A := ; 3 for ka»dy v V do 4 MakeSet(v); 5 posortuj E niemalej co wzgl dem wag w; 6 for ka»da {u, v} E, w kolejno±ci niemalej cych wag do 7 if FindSet(u) <> FindSet(v) then 8 begin 9 A := A { {u, v} }; 10 Union(u, v) 11 end 12 return A 13 end; / 50
63 Poprawno± Inna realizacja ogólnego algorytmu GenericMST algorytm Prima W przeciwie«stwie do algorytmu Kruskala, kraw dzie z A tworz zawsze pojedyncze drzewo. Pocz tkowo drzewo to skªada si z dowolnie wybranego wierzchoªka-korzenia r V ; nast pnie ro±nie do chwili, w której rozpina wszystkie wierzchoªki z V. Rozwa»any przekrój: (V (A), V \ V (A)) (V (A) := zbiór ko«ców kraw dzi z A). W ka»dym kroku dodajemy kraw d¹ lekk krzy»uj c si z tym przekrojem (tj. kraw d¹ o najmniejszej wadze spo±ród tych wystaj cych z A). Przekrój (V (A), V \ V (A)) uwzgl dnia A, zatem kraw d¹ ta jest bezpieczna dla A (patrz twierdzenie). 46 / 50
64 Implementacja Jak wyznacza kraw d¹ lekk krzy»uj c si z przekrojem (V (A), V \ V (A))? Wierzchoªki spoza rozrastaj cego si drzewa trzymamy w kolejce priorytetowej Q (por. poprzedni wykªad). Dla ka»dego v V kluczem klucz(v) (tzn. priorytetem wyznaczaj cym pozycj w kolejce Q) jest najmniejsza waga spo±ród wag kraw dzi ª cz cych v z wierzchoªkami drzewa. W zmiennej π[v] pami tamy ojca v w obliczanym drzewie. 47 / 50
65 Implementacja Podczas wykonywania algorytmu zbiór A jest pami tany niejawnie jako A = { {π[v], v} : v (V \ {r}) \ Q}. Po zako«czeniu algorytmu Q =, zbiorem kraw dzi MST w G jest wi c A = { {π[v], v} : v V \ {r}}. Przypomnijmy,»e symbolem Adj[u] oznaczamy zbiór s siadów wierzchoªka u. 48 / 50
66 Algorytm Inna realizacja ogólnego algorytmu algorytm Prima. MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; Zªo»ono± : O( E log V ) (gdy kolejka implementowana na kopcu). 49 / 50
67 MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; 15 2 r / 50
68 MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; 15 2 r / 50
69 MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; 15 2 r / 50
70 MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; 15 2 r / 50
71 MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; 15 2 r / 50
72 MST-Prim(G, w, r) 1 begin 2 Q := V; 3 for ka»dy u Q do klucz(u) := ; 4 klucz(r) := 0; 5 π[r] := ; 6 while Q <> do 7 begin 8 u := ExtractMin(Q); 9 for ka»dy v Adj[u] do 10 if (v Q) and (w(u, v) < klucz(v)) then 11 begin 12 π[v] := u; 13 klucz[v] := w(u, v) 14 end 15 end; 16 return π 17 end; 15 2 r / 50
Minimalne drzewo rozpinaj ce
Minimalne drzewo rozpinaj ce dr Andrzej Mróz (UMK w Toruniu) 013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie potencjaªu dydaktycznego
Bardziej szczegółowoMinimalne drzewa rozpinaj ce
y i y i drzewa Spis zagadnie«y i drzewa i lasy cykle fundamentalne i rozci cia fundamentalne wªasno±ci cykli i rozci minimalne drzewa algorytm algorytm Drzewo y i spójnego, nieskierowanego grafu prostego
Bardziej szczegółowoAlgorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2
Algorytmy grafowe 2 Andrzej Jastrz bski Akademia ETI Minimalne drzewo spinaj ce Drzewem nazywamy spójny graf nie posiadaj cy cyklu. Liczba wierzchoªków drzewa jest o jeden wi ksza od liczby jego kraw dzi.
Bardziej szczegółowoNajkrótsze drogi w grafach z wagami
Najkrótsze drogi w grafach z wagami Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania
Bardziej szczegółowoPodstawowe algorytmy grafowe i ich zastosowania
Podstawowe algorytmy grafowe i ich zastosowania Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany
Bardziej szczegółowoZadania z kolokwiów ze Wst pu do Informatyki. Semestr II.
Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Poni»sze zadania s wyborem zada«z kolokwiów ze Wst pu do Informatyki jakie przeprowadziªem w ci gu ostatnich lat. Marek Zawadowski Zadanie 1 Napisz
Bardziej szczegółowoWykł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ółowoPodstawowe algorytmy grafowe i ich zastosowania
Podstawowe algorytmy grafowe i ich zastosowania dr Andrzej Mróz (UMK w Toruniu) 2013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie
Bardziej szczegółowoNajkrótsze drogi w grafach z wagami
Najkrótsze drogi w grafach z wagami dr Andrzej Mróz (UMK w Toruniu) 013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie potencjaªu
Bardziej szczegółowoc Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie
2: Drogi i Cykle Spis Zagadnie«drogi i cykle spójno± w tym sªaba i silna k-spójno± (wierzchoªkowa i kraw dziowa) dekompozycja grafu na bloki odlegªo±ci w grae i poj cia pochodne grafy Eulera i Hamiltona
Bardziej szczegółowoZad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.
Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zadanko 1 (12p.) Na imprezie w Noc Kupaªy s 44 dziewczyny. Nosz one 11 ró»nych imion, a dla ka»dego imienia s dokªadnie 4 dziewczyny o tym imieniu przy czym ka»da
Bardziej szczegółowoDrzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009
Wprowadzenie Drzewa Gomory-Hu Jakub Š cki 14 pa¹dziernika 2009 Wprowadzenie 1 Wprowadzenie Podstawowe poj cia i fakty 2 Istnienie drzew Gomory-Hu 3 Algorytm budowy drzew 4 Problemy otwarte Wprowadzenie
Bardziej szczegółowoc Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach
12: w sieciach Spis zagadnie«sieci przepªywowe przepªywy w sieciach ±cie»ka powi kszaj ca tw. Forda-Fulkersona Znajdowanie maksymalnego przepªywu Zastosowania przepªywów Sieci przepªywowe Sie przepªywowa
Bardziej szczegółowoTeoria grafów i sieci 1 / 188
Teoria grafów i sieci / Drzewa z wagami Drzewem z wagami nazywamy drzewo z korzeniem, w którym do ka»dego li±cia przyporz dkowana jest liczba nieujemna, nazywana wag tego li±cia. / Drzewa z wagami Drzewem
Bardziej szczegółowoLab. 02: Algorytm Schrage
Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z
Bardziej szczegółowoNotatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.
Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne. IIUWr. II rok informatyki. Przygotowaª: Krzysztof Lory± 1 Schemat ogólny. Typowe zadanie rozwi zywane metod zachªann ma charakter optymalizacyjny.
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Cz ± druga Prowadz cy: dr Andrzej Mróz, Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika 1 / 82 Rekurencja Procedura (funkcja) rekurencyjna wywoªuje sam siebie.
Bardziej szczegółowoEgzaminy 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 si
Bardziej szczegółowoTeoria grafów i jej zastosowania. 1 / 126
Teoria grafów i jej zastosowania. 1 / 126 Mosty królewieckie W Królewcu, na rzece Pregole znajduj si dwie wyspy poª czone ze sob, a tak»e z brzegami za pomoc siedmiu mostów, tak jak pokazuje rysunek 2
Bardziej szczegółowoRelacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.
Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór
Bardziej szczegółowoAlgorytmy zwiazane z gramatykami bezkontekstowymi
Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk
Bardziej szczegółowo12: Znajdowanie najkrótszych ±cie»ek w grafach
12: Znajdowanie najkrótszych ±cie»ek w grafach Spis zagadnie«problem najkrótszych ±cie»ek z jednym ¹ródªem Rozwi zanie sznurkowe kraw dzi Wariant 1: Wariant 2: nieujemne kraw dzie (Dijkstra) Wariant 3:
Bardziej szczegółowoGrafy i Zastosowania. 5: Drzewa Rozpinaj ce. c Marcin Sydow. Drzewa rozpinaj ce. Cykle i rozci cia fundamentalne. Zastosowania
Grafy i Grafy i 5: Rozpinaj ce Spis zagadnie«grafy i i lasy cykle fundamentalne i wªasno±ci cykli i rozci przestrzenie cykli i rozci * : zastosowanie w sieciach elektrycznych minimalne * algorytm Kruskala*
Bardziej szczegółowoMetoda tablic semantycznych. 1 Metoda tablic semantycznych
1 Zarówno metoda tablic semantycznych, jak i rezolucji, to dosy sprawny algorytm do badania speªnialni±ci formuª, a wi c i tautologii. Chodzi w niej o wskazanie, je±li istnieje, modelu dla formuªy. Opiera
Bardziej szczegółowoPrzekroje Dedekinda 1
Przekroje Dedekinda 1 O liczbach wymiernych (tj. zbiorze Q) wiemy,»e: 1. zbiór Q jest uporz dkowany relacj mniejszo±ci < ; 2. zbiór liczb wymiernych jest g sty, tzn.: p, q Q : p < q w : p < w < q 3. 2
Bardziej szczegółowoTEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}.
Podstawowe denicje: TEORIA GRAFÓW Graf (nieskierowany) G = (V, E) struktura skªadaj ca si ze: zbioru wierzchoªków V = {,,..., v n } oraz zbioru kraw dzi E = {e 1, e 2,..., e m }. Z ka»d kraw dzi e skojarzona
Bardziej szczegółowoElementy teorii grafów, sposoby reprezentacji grafów w komputerze
Elementy teorii grafów, sposoby reprezentacji grafów w komputerze Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych
Bardziej szczegółowoListy i operacje pytania
Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik
Bardziej szczegółowoJAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1
J zyki formalne i operacje na j zykach J zyki formalne s abstrakcyjnie zbiorami sªów nad alfabetem sko«czonym Σ. J zyk formalny L to opis pewnego problemu decyzyjnego: sªowa to kody instancji (wej±cia)
Bardziej szczegółowoc Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie
7: Spis zagadnie«twierdzenie Kuratowskiego Wªasno±ci planarno±ci Twierdzenie Eulera Grafy na innych powierzchniach Poj cie dualno±ci geometrycznej i abstrakcyjnej Graf Planarny Graf planarny to taki graf,
Bardziej szczegółowoPodziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie
Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem
Bardziej szczegółowoMetodydowodzenia twierdzeń
1 Metodydowodzenia twierdzeń Przez zdanie rozumiemy dowolne stwierdzenie, które jest albo prawdziwe, albo faªszywe (nie mo»e by ono jednocze±nie prawdziwe i faªszywe). Tradycyjnie b dziemy u»ywali maªych
Bardziej szczegółowoGrafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska
Andrzej Jastrz bski Akademia ET I Graf Grafem nazywamy par G = (V, E), gdzie V to zbiór wierzchoªków, E zbiór kraw dzi taki,»e E {{u, v} : u, v V u v}. Wierzchoªki v, u V s s siaduj ce je±li s poª czone
Bardziej szczegółowoElementy teorii grafów, sposoby reprezentacji grafów w komputerze
Elementy teorii grafów, sposoby reprezentacji grafów w komputerze dr Andrzej Mróz (UMK w Toruniu) 2013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt
Bardziej szczegółowoGrafy i Zastosowania. 11: Twierdzenia Minimaksowe. c Marcin Sydow. Wst p: Tw. Halla. Dualno± Zbiory niezale»ne. Skojarzenia c.d.
11: Twierdzenia Minimaksowe Spis zagadnie«wst p: Kojarzenie Maª»e«stw i i twierdzenia minimaksowe i pokrycia (Tw. Gallai) w grafach (tw. Berge'a) w grafach dwudzielnych (tw. Königa, ) Pokrycia macierzy
Bardziej szczegółowoMosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw
Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw 3 kwietnia 2014 roku 1 / 106 Mosty królewieckie W Królewcu, na rzece Pregole znajduj si dwie wyspy poª czone ze sob, a tak»e z brzegami za
Bardziej szczegółowoAlgorytmy i Struktury Danych
Lista zada«. Nr 4. 9 kwietnia 2016 IIUWr. II rok informatyki. Algorytmy i Struktury Danych 1. (0pkt) Rozwi» wszystkie zadania dodatkowe. 2. (1pkt) Uªó» algorytm znajduj cy najta«sz drog przej±cia przez
Bardziej szczegółowoi, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017
i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_
Bardziej szczegółowoARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
Bardziej szczegółowoTeoria grafów i sieci 1 / 58
Teoria grafów i sieci 1 / 58 Literatura 1 B.Korte, J.Vygen, Combinatorial optimization 2 D.Jungnickel, Graphs, Networks and Algorithms 3 M.Sysªo, N.Deo Metody optymalizacji dyskretnej z przykªadami w Turbo
Bardziej szczegółowoBash i algorytmy. Elwira Wachowicz. 20 lutego
Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad
Bardziej szczegółowoWykªad 4. Funkcje wielu zmiennych.
Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 4. Funkcje wielu zmiennych. Zbiory na pªaszczy¹nie i w przestrzeni.
Bardziej szczegółowoARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
Bardziej szczegółowoEgzaminy 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 si
Bardziej szczegółowoO pewnym zadaniu olimpijskim
O pewnym zadaniu olimpijskim Michaª Seweryn, V LO w Krakowie opiekun pracy: dr Jacek Dymel Problem pocz tkowy Na drugim etapie LXII Olimpiady Matematycznej pojawiª si nast puj cy problem: Dla ka»dej liczby
Bardziej szczegółowoDrzewa 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ółowo10a: Wprowadzenie do grafów
10a: Wprowadzenie do grafów Spis zagadnie«zastosowania grafów denicja grafu (i skierowanego), prostego, multigrafu drogi i cykle, spójno± w tym sªaba i silna drzewo i las: denicja, charakteryzacje, wªasno±ci
Bardziej szczegółowoMetody dowodzenia twierdze«
Metody dowodzenia twierdze«1 Metoda indukcji matematycznej Je±li T (n) jest form zdaniow okre±lon w zbiorze liczb naturalnych, to prawdziwe jest zdanie (T (0) n N (T (n) T (n + 1))) n N T (n). 2 W przypadku
Bardziej szczegółowoMateriaªy do Repetytorium z matematyki
Materiaªy do Repetytorium z matematyki 0/0 Dziaªania na liczbach wymiernych i niewymiernych wiczenie Obliczy + 4 + 4 5. ( + ) ( 4 + 4 5). ( : ) ( : 4) 4 5 6. 7. { [ 7 4 ( 0 7) ] ( } : 5) : 0 75 ( 8) (
Bardziej szczegółowoc Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie
8: Kolorowanie Grafów Spis zagadnie«kolorowanie wierzchoªków Kolorowanie map Kolorowanie kraw dzi Wielomian chromatyczny Zastosowania Problem kolorowania grafów ma wiele odmian (np. kolorowanie wierzchoªków,
Bardziej szczegółowoRekurencyjne struktury danych
Andrzej Jastrz bski Akademia ETI Dynamiczny przydziaª pami ci Pami, która jest przydzielana na pocz tku dziaªania procesu to: pami programu czyli instrukcje programu pami statyczna zwi zana ze zmiennymi
Bardziej szczegółowoc Marcin Sydow Grafy i Zastosowania BFS DFS 4: Przeszukiwanie Grafów (BFS, DFS i zastosowania) DFS nieskierowane DFS skierowane Podsumowanie
4: Przeszukiwanie Grafów (, i zastosowania) Spis zagadnie«przeszukiwanie grafów (rola, schemat ogólny, zastosowania) realizacje (kolejka, stos, rekurencja) przeszukiwanie wszerz zastosowania przeszukiwanie
Bardziej szczegółowo1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,
XIII Warmi«sko-Mazurskie Zawody Matematyczne. Olsztyn 2015 Rozwi zania zada«dla szkóª ponadgimnazjalnych ZADANIE 1 Zakªadamy,»e a, b 0, 1 i a + b 1. Wykaza,»e z równo±ci wynika,»e a = -b 1 a + b 1 = 1
Bardziej szczegółowoANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15
ANALIZA NUMERYCZNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Metoda Eulera 3 1.1 zagadnienia brzegowe....................... 3 1.2 Zastosowanie ró»niczki...................... 4 1.3 Output do pliku
Bardziej szczegółowoSzukanie najkrótszych dróg z jednym ródłem
Szukanie najkrótszych dróg z jednym ródłem Algorytm Dijkstry Załoenia: dany jest spójny graf prosty G z wagami na krawdziach waga w(e) dla kadej krawdzi e jest nieujemna dany jest wyróniony wierzchołek
Bardziej szczegółowoX WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)
X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne) Zadanie 1 Obecnie u»ywane tablice rejestracyjne wydawane s od 1 maja 2000r. Numery rejestracyjne aut s tworzone ze zbioru
Bardziej szczegółowoZbiory i odwzorowania
Zbiory i odwzorowania 1 Sposoby okre±lania zbiorów 1) Zbiór wszystkich elementów postaci f(t), gdzie t przebiega zbiór T : {f(t); t T }. 2) Zbiór wszystkich elementów x zbioru X speªniaj cych warunek ϕ(x):
Bardziej szczegółowoAlgorytmiczna teoria grafów
18 maja 2013 Twierdzenie Halla o maª»e«stwach Problem Wyobra¹my sobie,»e mamy m dziewczyn i pewn liczb chªopców. Ka»da dziewczyna chce wyj± za m», przy czym ka»da z nich godzi si po±lubi tylko pewnych
Bardziej szczegółowo1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
Bardziej szczegółowoMaszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne
Maszyny Turinga Maszyna Turinga jest automatem ta±mowym, skª da si z ta±my (tablicy symboli) potencjalnie niesko«czonej w prawo, zakªadamy,»e w prawie wszystkich (tzn. wszystkich poza sko«czon liczb )
Bardziej szczegółowoProgramowanie wspóªbie»ne
1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast
Bardziej szczegółowoWykªad 4. Droga i cykl Eulera i Hamiltona
Wykªad 4. Droga i cykl Eulera i Hamiltona 1 / 92 Grafy Eulera Droga i cykl Eulera Niech G b dzie grafem spójnym. Denicja Je»eli w grae G istnieje zamkni ta droga prosta zawieraj ca wszystkie kraw dzie
Bardziej szczegółowoARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
Bardziej szczegółowoc Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie
Grafy i Grafy i 3: Spis zagadnie«grafy i drzewo i las: denicja, charakteryzacje, wªasno±ci kodowanie Prüfera i zliczanie drzew etykietowanych (tw. Cayleya) drzewa drzewa zliczanie drzew binarnych (tw.
Bardziej szczegółowoPodstawy matematyki dla informatyków
Podstawy matematyki dla informatyków Wykªad 6 10 listopada 2011 W poprzednim odcinku... Zbiory A i B s równoliczne (tej samej mocy ), gdy istnieje bijekcja f : A 1 1 B. Piszemy A B lub A = B. na Moc zbioru
Bardziej szczegółowoCiaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1
Ciaªa i wielomiany 1 Ciaªa i wielomiany 1 Denicja ciaªa Niech F b dzie zbiorem, i niech + (dodawanie) oraz (mno»enie) b d dziaªaniami na zbiorze F. Denicja. Zbiór F wraz z dziaªaniami + i nazywamy ciaªem,
Bardziej szczegółowoGrafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry.
6: ±cie»ki Spis zagadnie«problem najkrótszych ±cie»ek z jednym ¹ródªem Rozwi zanie sznurkowe kraw dzi Wariant 1: Wariant 2: nieujemne kraw dzie (Dijkstra) Wariant 3: dowolny graf () ±cie»ki dla wszystkich
Bardziej szczegółowoW poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji
W poprzednim odcinku... Podstawy matematyki dla informatyków Rodzina indeksowana {A t } t T podzbiorów D to taka funkcja A : T P(D),»e A(t) = A t, dla dowolnego t T. Wykªad 3 20 pa¹dziernika 2011 Produkt
Bardziej szczegółowoWST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14
WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 203/4 Spis tre±ci Kodowanie i dekodowanie 4. Kodowanie a szyfrowanie..................... 4.2 Podstawowe poj cia........................
Bardziej szczegółowoAlgorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI
Andrzej Jastrz bski Akademia ETI Wyszukiwanie wzorca Wyszukiwaniem wzorca nazywamy sprawdzenie, czy w podanym tekscie T znajduje si podci g P. Szukamy sªowa kot: Ala ma kota, kot ma ale. Algorytm naiwny
Bardziej szczegółowoA = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.
Logika i teoria mnogo±ci, konspekt wykªad 12 Teoria mocy, cz ± II Def. 12.1 Ka»demu zbiorowi X przyporz dkowujemy oznaczany symbolem X obiekt zwany liczb kardynaln (lub moc zbioru X) w taki sposób,»e ta
Bardziej szczegółowo1 Metody iteracyjne rozwi zywania równania f(x)=0
1 Metody iteracyjne rozwi zywania równania f()=0 1.1 Metoda bisekcji Zaªó»my,»e funkcja f jest ci gªa w [a 0, b 0 ]. Pierwiastek jest w przedziale [a 0, b 0 ] gdy f(a 0 )f(b 0 ) < 0. (1) Ustalmy f(a 0
Bardziej szczegółowoProgramowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,
Bardziej szczegółowoARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
Bardziej szczegółowoProgramowanie funkcyjne. Wykªad 13
Programowanie funkcyjne. Wykªad 13 Siªa wyrazu rachunku lambda Zdzisªaw Spªawski Zdzisªaw Spªawski: Programowanie funkcyjne. Wykªad 13, Siªa wyrazu rachunku lambda 1 Wst p Warto±ci logiczne Liczby naturalne
Bardziej szczegółowoXVII Warmi«sko-Mazurskie Zawody Matematyczne
1 XVII Warmi«sko-Mazurskie Zawody Matematyczne Kategoria: klasa VIII szkoªy podstawowej i III gimnazjum Olsztyn, 16 maja 2019r. Zad. 1. Udowodnij,»e dla dowolnych liczb rzeczywistych x, y, z speªniaj cych
Bardziej szczegółowoWykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.
Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Denicja Mówimy,»e funkcja
Bardziej szczegółowoKLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu
➏ Filozoa z elementami logiki Na podstawie wykªadów dra Mariusza Urba«skiego Sylogistyka Przypomnij sobie: stosunki mi dzy zakresami nazw KLASYCZNE ZDANIA KATEGORYCZNE Trzy znaczenia sªowa jest trzy rodzaje
Bardziej szczegółowoPrzykªady problemów optymalizacji kombinatorycznej
Przykªady problemów optymalizacji kombinatorycznej Problem Komiwoja»era (PK) Dane: n liczba miast, n Z +, c ji, i, j {1,..., n}, i j odlegªo± mi dzy miastem i a miastem j, c ji = c ij, c ji R +. Zadanie:
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Cz ± pierwsza Prowadz cy: dr Andrzej Mróz, Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika 1 / 65 Opis przedmiotu Zagadnienia, którymi si zajmiemy: metody
Bardziej szczegółowoWstp. Warto przepływu to
177 Maksymalny przepływ Załoenia: sie przepływow (np. przepływ cieczy, prdu, danych w sieci itp.) bdziemy modelowa za pomoc grafów skierowanych łuki grafu odpowiadaj kanałom wierzchołki to miejsca połcze
Bardziej szczegółowo1 Granice funkcji wielu zmiennych.
AM WNE 008/009. Odpowiedzi do zada«przygotowawczych do czwartego kolokwium. Granice funkcji wielu zmiennych. Zadanie. Zadanie. Pochodne. (a) 0, Granica nie istnieje, (c) Granica nie istnieje, (d) Granica
Bardziej szczegółowoPodstawowepojęciateorii grafów
7 Podstawowepojęciateorii grafów Wiele sytuacji z»ycia codziennego mo»e by w wygodny sposób opisanych gracznie za pomoc rysunków skªadaj cych si ze zbioru punktów i linii ª cz cych pewne pary tych punktów.
Bardziej szczegółowoStrategia czy intuicja?
Strategia czy intuicja czyli o grach niesko«czonych Instytut Matematyki Uniwersytetu Warszawskiego Grzegorzewice, 29 sierpnia 2009 Denicja gry Najprostszy przypadek: A - zbiór (na ogóª co najwy»ej przeliczalny),
Bardziej szczegółowoALGORYTMY SORTOWANIA DANYCH
ALGORYTMY SORTOWANIA DANYCH W zagadnieniu sortowania danych rozpatrywa b dziemy n liczb caªkowitych, b d cych pierwotnie w losowej kolejno±ci, które nale»y uporz dkowa nierosn co. Oczywi±cie sortowa mo»emy
Bardziej szczegółowoEkstremalnie fajne równania
Ekstremalnie fajne równania ELEMENTY RACHUNKU WARIACYJNEGO Zaczniemy od ogólnych uwag nt. rachunku wariacyjnego, który jest bardzo przydatnym narz dziem mog cym posªu»y do rozwi zywania wielu problemów
Bardziej szczegółowoARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
Bardziej szczegółowoPROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Bardziej szczegółowoWST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14
WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 2013/14 Spis tre±ci 1 Kodowanie i dekodowanie 4 1.1 Kodowanie a szyfrowanie..................... 4 1.2 Podstawowe poj cia........................
Bardziej szczegółowoWybrane poj cia i twierdzenia z wykªadu z teorii liczb
Wybrane poj cia i twierdzenia z wykªadu z teorii liczb 1. Podzielno± Przedmiotem bada«teorii liczb s wªasno±ci liczb caªkowitych. Zbiór liczb caªkowitych oznacza b dziemy symbolem Z. Zbiór liczb naturalnych
Bardziej szczegółowoIndeksowane rodziny zbiorów
Logika i teoria mnogo±ci, konspekt wykªad 7 Indeksowane rodziny zbiorów Niech X b dzie przestrzeni zbiorem, którego podzbiorami b d wszystkie rozpatrywane zbiory, R rodzin wszystkich podzbiorów X za± T
Bardziej szczegółowoWyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie
Zawarto± tego wykªadu: reguªa dziel i rz d¹ wyszukiwanie algorytm wyszukiwania binarnego statystyki 2. najmniejsza warto± w ci gu (algorytm turniejowy - idea) algorytm (wyszukiwanie k-tej statystyki j)
Bardziej szczegółowo1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza
165 1) Grafy eulerowskie własnoci algorytmy 2) Problem chiskiego listonosza 166 Grafy eulerowskie Def. Graf (multigraf, niekoniecznie spójny) jest grafem eulerowskim, jeli zawiera cykl zawierajcy wszystkie
Bardziej szczegółowoRozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a).
Rozwi zania zada«z egzaminu podstawowego z Analizy matematycznej 2.3A (24/5). Rozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a). Zadanie P/4. Metod operatorow rozwi
Bardziej szczegółowoistnienie elementu neutralnego dodawania (zera): 0 K a K a + 0 = a, istnienie elementu neutralnego mno»enia (jedynki): 1 K a K a 1 = a,
Ciaªo Denicja. Zbiór K z dziaªaniami dodawania + oraz mno»enia (których argumentami s dwa elementy z tego zbioru, a warto±ciami elementy z tego zbioru) nazywamy ciaªem, je±li zawiera co najmniej dwa elementy
Bardziej szczegółowoProblemy optymalizacyjne - zastosowania
Problemy optymalizacyjne - zastosowania www.qed.pl/ai/nai2003 PLAN WYKŁADU Zło ono obliczeniowa - przypomnienie Problemy NP-zupełne klika jest NP-trudna inne problemy NP-trudne Inne zadania optymalizacyjne
Bardziej szczegółowoZdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:
Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt: zdzedzej@mif.pg.gda.pl www.mif.pg.gda.pl/homepages/zdzedzej () 5 pa¹dziernika 2016 1 / 1 Literatura podstawowa R. Rudnicki, Wykªady z analizy
Bardziej szczegółowoModel obiektu w JavaScript
16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego
Bardziej szczegółowoProgramowanie i struktury danych 1 / 44
Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje
Bardziej szczegółowoWykªad 1. Wprowadzenie do teorii grafów
Wykªad 1. Wprowadzenie do teorii grafów 1 / 112 Literatura 1 W. Lipski; Kombinatoryka dla programistów. 2 T. Cormen, Ch. E. Leiserson, R. L. Rivest; Wprowadzenie do algorytmów. 3 K. A. Ross, Ch. R. B.
Bardziej szczegółowo