Pojcie grafu. { {v 1, v 2 }, {v 2, v 3 }, {v 3, v 4 }, {v 4, v 1 },{v 2, v 4 } } )

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

Download "Pojcie grafu. { {v 1, v 2 }, {v 2, v 3 }, {v 3, v 4 }, {v 4, v 1 },{v 2, v 4 } } )"

Transkrypt

1 1 Pojcie grafu Def. Graf prosty G=(V,E) jest uporzdkowan par dwóch elementów: zbioru wierzchołków V oraz zbioru krawdzi E V V. Krawd pomidzy wierzchołkami u oraz v oznaczamy {u,v}. Graf prosty nie zawiera krawdzi postaci {u,u} oraz pomidzy kad par wierzchołków istnieje co najwyej jedna krawd. Def. Wierzchołki u i v s ssiednie, gdy {u,v} E(G). Wierzchołek u oraz krawd e s incydentne, gdy u e. Przykład: v 1 v 4 v 2 G = ( { v 1, v 2, v 3, v 4 }, v 3 { {v 1, v 2 }, {v 2, v 3 }, {v 3, v 4 }, {v 4, v 1 },{v 2, v 4 } } ) Uwaga. Rysunek grafu jest reprezentacj zbioru wierzchołków oraz sposobu ich połczenia, wic jego własnoci metryczne nie s istotne.

2 2 Multigrafy oraz grafy skierowane Def. Multigraf to graf, w którym pomidzy dowoln par wierzchołków moe wystpi wicej ni jedna krawd oraz dopuszczalne s ptle, tzn. krawdzie postaci {v,v}, gdzie v V(G). Def. Graf nazywamy digrafem (grafem skierowanym), gdy krawd łczca u oraz v jest uporzdkowan par postaci (u,v). Przykład: u v u v w G = ( {u, v, w, x}, {{u,v}, {w,v}, {w,w}, {w,x}, {w,x}, {w,x}, {x,v}, {x,v}} ) x w D = ( {u, v, w, x}, {(u,v), (w,v), (v,x), (x,w)} ) x

3 3 Stopie wierzchołka Def. Stopie wierzchołka v jest oznaczany symbolem deg(v) i jest to ilo wierzchołków ssiednich z v. Dla danego grafu G definiujemy parametry: δ = min { deg(v) : v V(G) } = max { deg(v) : v V(G) } Lemat o uciskach dłoni. Niech G bdzie grafem prostym. Wówczas deg(v 1 ) deg(v n ) = 2m. Dowód: (indukcja ze wzgldu na liczb krawdzi grafu) 1. Jeli m =, to równo jest prawdziwa. 2. Zakładamy, e lemat zachodzi dla pewnego m. 3. Udowodnimy równanie dla m + 1. Niech e E(G) bdzie dowoln krawdzi. Z załoenia indukcyjnego wiadomo, e deg(v 1 ) deg(v n ) = 2m(G e), gdzie deg(v i ) jest stopniem v i w grafie G e. Dla grafu G suma stopni wierzchołków jest o 2 wiksza ni dla G e oraz m(g) = m(g e) + 1, co oznacza, e równanie zachodzi dla grafu G o m + 1 krawdziach.

4 4 Twierdzenie Havla Tw. Ilo wierzchołków nieparzystego stopnia w grafie prostym jest parzysta. Dowód: Z lematu o uciskach dłoni wiadomo, e deg(v 1 ) deg(v k ) + deg(u 1 ) deg(u l ) = 2m, gdzie v i jest wierzchołkiem o nieparzystym stopni, natomiast u i parzystym. Wiadomo, e suma liczb parzystych deg(u 1 ) deg(u l ) jest liczb parzyst, wic suma deg(v 1 ) deg(v k ) ma równie parzyst warto, co jest spełnione tylko wtedy, gdy ilo składników jest parzysta (k jest parzyste). Def. Cigiem stopniowym grafu nazywamy uporzdkowany nierosnco cig stopni jego wierzchołków. Def. Cig stopniowy jest graficzny, gdy jest on cigiem stopni pewnego grafu. Tw. Havla Cig stopniowy (k,d 1,...,d l ) jest graficzny wtedy i tylko wtedy, gdy po posortowaniu cig (d 1 1,d 2 1,..., d k 1,d k+1,d k+2,...,d l ) jest graficzny.

5 5 Cigi graficzne Algorytm sprawdzajcy, czy cig stopni jest graficzny: 1. Jeli d 1 =... = d l =, to cig jest graficzny 2. Jeli d 1 <, to cig nie jest graficzny 3. Uporzdkuj cig nierosnco wg stopni 4. Usu z cigu pierwsz (najwiksz) liczb d 1 i odejmij 1 od kolejnych d 1 liczb cigu 5. Wró do punktu 1 Przykład: Sprawdzi, czy podany cig jest graficzny: ( 4, 3, 3, 2, 2 ) ( 2, 2, 1, 1 ) ( 1,, 1 ) ( 1, 1, ) (, ) Odpowied: podany cig stopniowy jest graficzny.

6 6 Cigi graficzne Przykład Cig (6,5,4,4,3,3,2) nie jest graficzny, poniewa suma stopni odpowiedniego grafu wynosiłaby 27, co nie jest moliwe na podstawie lematu o uciskach dłoni. Cig stopni (3,3,2,2,2) jest graficzny, poniewa jest on cigiem grafów prostych G 1 i G 2 pokazanych poniej. G 1 = G 2 =

7 7 Przykłady grafów Graf pusty N n =({v 1,...,v n }, ). Graf pełny K n =({v 1,...,v n },{{v i,v j }: i,j=1,...,n, i j}). Graf r-regularny jest grafem, dla którego zachodzi równo r = δ = (tzn. stopie kadego wierzchołka jest równy r). Wówczas m=(r n)/2. Graf 3-regularny nazywamy grafem kubicznym. Zdefiniowany wczeniej graf pełny o n wierzchołkach jest (n 1)-regularny. Graf K 4 Graf kubiczny (graf Petersena)

8 8 Operacje sumy i zespolenia Def. (suma grafów) G 1 G 2 = ( V(G 1 ) V(G 2 ), E(G 1 ) E(G 2 ) ) Def. (zespolenie grafów) G 1 + G 2 = ( V(G 1 ) V(G 2 ), E(G 1 ) E(G 2 ) {{v 1,v 2 }:v 1 V(G 1 ),v 2 V(G 2 )}) Tw. Jeli G = G 1 +G 2, to n(g) = n(g 1 ) + n(g 2 ), m(g) = m(g 1 ) + m(g 2 ) + n(g 1 ) n(g 2 ). Przykład Zespolenie grafów K 2 i N 3 + =

9 9 Dopełnienie grafu Def. Jeli G jest grafem prostym, to jego dopełnieniem jest graf G, o tym samym zbiorze wierzchołków oraz dwa wierzchołki s ssiednie w G wtedy i tylko wtedy, gdy nie s ssiednie w G. Uwaga Przykładowe zalenoci: G = G, K K G n = r, s r = N = G n K, r n r 1 K gdzie G r oznacza dowolny graf r regularny., s, G = G =

10 1 Graf krawdziowy Def. Graf krawdziowy L(G) grafu G to graf, którego wierzchołki odpowiadaj krawdziom G. Dwa wierzchołki s ssiednie w L(G) wtedy i tylko wtedy, gdy odpowiadajce im krawdzie s ssiednie w G. Uwaga Jeli G jest grafem r-regularnym, to L(G) jest 2(r 1)-regularny. Przykład G = L(G) =

11 11 Pojcie podgrafu Def. Podgrafem grafu G nazywamy dowolny graf H taki, e V(H) V(G) oraz E(H) E(G). Uwaga Podgraf mona otrzyma usuwajc pewn liczb krawdzi i (lub) wierzchołków z grafu G. Jeli e E(G), to przez G e rozumiemy podgraf powstały przez usunicie krawdzi e z grafu G. Jeli F E(G) to G F jest grafem utworzonym z G w wyniku usunicia krawdzi nalecych do zbioru F. Analogicznie, jeli v, S s odpowiednio wierzchołkiem oraz zbiorem wierzchołków grafu G, to G v oraz G S definiujemy jako grafy powstałe poprzez usunicie odpowiednio v lub S z grafu G. Def. Podgraf pełny dowolnego grafu G nazywamy klik. Rozmiar najwikszej kliki oznaczamy przez ω(g).

12 12 Podgraf indukowany Def. Podgraf indukowany G[S] grafu G, gdzie S V(G), definiujemy nastpujco: G[S] = ( S, {{u,v} : u,v S, {u,v} E(G)} ). Przykład (podgraf indukowany) v 1 v 1 v 6 G = v 5 v2 v 3 v 6 G[{v 1, v 3, v 4, v 6 }] = v 3 v 4 v 1 v 4 Podgraf G, który nie jest podgrafem indukowanym: v 6 v 2 v 4 v 3

13 13 Drogi i cykle Def. Marszruta to taki cig krawdzi grafu G, e dwie kolejne krawdzie tego cigu s ssiednie w G lub s identyczne. Łacuch jest marszrut, w której adna krawd nie wystpuje dwukrotnie. Droga to marszruta w której kady wierzchołek wystpuje co najwyej raz. Cykl to droga, której wierzchołek pocztkowy jest równy kocowemu. Przykład G = v 1 v marszruta: v 6 v2 1, v 6, v 3, v 6, v 4, v 5 v 5 v 4 v 3 łacuch: v 6, v 1, v 2, v 3, v 6, v 4 droga: v 1, v 2, v 3, v 6, v 4, v 5 cykl: v 1, v 2, v 3, v 6, v 1

14 14 Drogi i cykle Tw. Jeli δ = 2, to graf G zawiera cykl. Dowód: (a) Mamy m n, gdy z lematu o uciskach dłoni wiadomo, e 2m = deg(v 1 ) deg(v n ) nδ = 2n. (b) Udowodnimy indukcyjnie wzgldem n, e jeli m n, to G zawiera cykl. - Jeli n = 2, to G zawiera cykl. - Zakładamy, e twierdzenie zachodzi dla wszystkich grafów, których rzd nie przekracza n. - Rozwamy n + 1 wierzchołkowy graf G oraz niech e = {u,v} bdzie jego dowoln krawdzi. Jeli G e jest spójny, to istnieje cieka z u do v w G e wic ta cieka w połczeniu z e tworzy cykl w G. Jeli G e nie jest spójny to oznaczmy G e = G 1 G 2. Gdyby zachodziło m(g 1 ) n(g 1 ) 1 oraz m(g 2 ) n(g 2 ) 1, to m(g) = m(g 1 ) + m(g 2 ) + 1 n(g 1 ) + n(g 2 ) 1 = n(g) 1, co daje sprzeczno z załoeniem. Std mona przyj, e m(g 1 ) n(g 1 ) i z załoenia indukcyjnego G 1 (wic równie G) zawiera cykl. (c) Z (a) oraz (b) wynika teza.

15 15 Grafy dwudzielne Graf dwudzielny G = (V 1 V 2, E), gdzie G[V 1 ] oraz G[V 2 ] s grafami pustymi (istnieje podział V na podzbiory V 1 i V 2 takie, e kada krawd grafu łczy wierzchołki z rónych zbiorów V i ). Szczególnym przypadkiem s pełne grafy dwudzielne K a,b = N a + N b. W takim przypadku zachodz wzory. m(k a,b ) = a b, n(k a,b ) = a + b. V 1 V 2 K 2,3 = Graf dwudzielny (2-regularny)

16 16 Grafy dwudzielne Tw. Graf G jest dwudzielny wtedy i tylko wtedy, gdy kady cykl w G ma parzyst długo. Dowód: Załómy, e G=(V 1 V 2,E) jest dwudzielny oraz v 1,...,v k jest dowolnym jego cyklem. Bez straty ogólnoci mona załoy, e v 1 V 1. Std, e v 1 i v 2 s ssiednie wynika, e v 2 V 2. Ogólnie, v 2p V 2 oraz v 2p+1 V 1, co oznacza, e wierzchołek v k V 2 poniewa jest ssiedni z v 1. Załómy, e kady cykl w G ma parzyst długo. Definiujemy podział V nastpujco: A v = {w V : d(v,w) jest parzyste}, B v = V\A v, gdzie d(v,w) jest długoci najkrótszej cieki łczcej v z w. Wierzchołki w A v s parami niessiednie, gdy sytuacja x, y A v oraz {x,y} E oznacza, e w G wystpuje nieparzysty cykl o długoci d(v,x) + d(v,y) + 1, sprzeczno. Podobnie mona uzasadnie krawd pomidzy elementami B v implikuje istnienie nieparzystego cyklu w G.

17 17 Przykłady grafów Cykl C n = ( {v 1,...,v n }, {{v 1,v 2 },...,{v n-1,v n }, {v n,v 1 }} ) C 3 = C 4 = C 5 = Koło W n = ( {v 1,...,v n }, {{v 1,v 2 },...,{v n-1,v n }, {v n,v 1 }} ) W n = C n 1 + N 1 W 4 = W 5 = W 6 =

18 18 Hiperkostki hiperkostka Q n jest grafem, którego wierzchołki odpowiadaj wszystkim cigom zero-jedynkowym długoci n. Dwa wierzchołki s ssiednie, o ile odpowiadajce im cigi róni si na jednej pozycji Q 1 Q 23

19 19 Spójno krawdziowa Def. Graf jest spójny, gdy pomidzy kad par wierzchołków istnieje droga. Zbiór rozspajajcy grafu to zbiór krawdzi, których usunicie rozspaja graf. Rozcicie to zbiór rozspajajcy, którego aden właciwy podzbiór nie rozspaja grafu. Spójno krawdziowa jest moc najmniejszego rozcicia (oznaczenie: λ(g)). Składowa spójnoci grafu G jest podgrafem H takim, e G = H G, dla pewnego G. Krawd e nazywamy mostem, gdy {e} jest rozciciem. Przykład Zbiór rozspajajcy e Rozcicie Most Składowe spójnoci grafu G e

20 2 Spójno wierzchołkowa Def. Zbiór separujcy grafu to zbiór wierzchołków, których usunicie rozspaja graf. Separator to zbiór separujcy, którego aden właciwy podzbiór nie rozspaja grafu. Spójno wierzchołkowa jest moc najmniejszego separatora (oznaczenie: χ(g)). Wierzchołek v nazywamy przegubem, gdy {v} jest separatorem. Przykład Zbiór separujcy v Separator Przegub Składowe spójnoci grafu G v

21 21 Spójno grafu Tw. Jeli graf G posiada k składowych spójnoci, to n k m. Dowód: Dowodzimy twierdzenie indukcyjnie wzgldem k. 1) Niech k = 1. Graf ma minimaln ilo krawdzi wówczas, gdy usunicie dowolnej z nich rozspaja graf. Wybierzmy dowolny wierzchołek bdcy liciem i usumy go z grafu wraz z incydentn krawdzi. W wyniku tej operacji liczba krawdzi i wierzchołków malej o 1. Po pewnej liczbie kroków otrzymujemy graf K 2. 2) Zakładamy, e twierdzenie zachodzi dla pewnego k. 3) Dowodzimy dla k + 1. Dodajemy do grafu krawd e tak, aby łczyła dwie składowe spójnoci. Wówczas korzystajc z załoenia indukcyjnego otrzymujemy: n(g+e) (k 1) m(g+e). Po uwzgldnieniu, e n(g+e) = n(g) oraz m(g+e) = m(g) + 1 otrzymujemy tez.

22 22 Spójno grafu Tw. Jeli graf G posiada k składowych spójnoci, to m (n k)(n k + 1)/2. Dowód: Rozwamy n-wierzchołkowy graf G, o najwikszej moliwej liczbie krawdzi, który posiada k składowych spójnoci G 1,...,G k takich, e V(G i+1 ) V(G i ). Załómy, e wierzchołek u naley do najliczniejszej składowej spójnoci, natomiast v naley do składowej G 2. Zauwamy, e jeli V(G 2 ) > 1, to przeniesienie wierzchołka v z G 2 do G 1 nie zmieni liczby składowych spójnoci, liczba krawdzi natomiast wzronie, co daje sprzeczno. Std V(G i ) = 1 dla i > 1. Std, m(g) = m(k n k ) = (n k)(n k + 1)/2, co koczy dowód. Wniosek Dowolny n-wierzchołkowy graf posiadajcy wicej ni (n 2)(n 1)/2 krawdzi jest spójny.

23 23 Sprawdzanie spójnoci grafu Procedure Spójny(G) begin S := { v }; (* gdzie v jest dowolnym wierzchołkiem grafu G *) while istnieje nieoznaczony wierzchołek v S do begin S := S N(v); oznacz wierzchołek v; end; if S = V(G) then return graf G jest spójny ; else return graf G nie jest spójny ; end Przykład Oznaczenia: oznaczone elementy S; nieoznaczone elementy S; biecy wierzchołek v; Odp: graf G jest spójny

24 24 Drzewa Drzewo graf spójny, który nie zawiera podgrafu bdcego cyklem. Dla tej klasy grafów zachodzi m = n 1. Wierzchołek o stopniu równym 1 nazywamy liciem. - cieki: P n = ({v 1,...,v n },{{v 1,v 2 },...,{v n-1,v n }}) - gwiazdy: K 1,n 1 = ({v 1,...,v n },{{v 1,v 2 },...,{v 1,v n }}) = N 1 + N n-1 - kometa graf powstały poprzez połczenie pewnego wierzchołka gwiazdy z liciem nalecym do cieki - gsienica graf, w którym mona wyróni takciek, e kady li w grafie jest ssiedni z pewnym wierzchołkiem cieki - dwugwiazda wszystkie wierzchołki, z wyjtkiem dwóch maj stopie równy 1 - drzewo binarne drzewo, w którym stopie kadego wierzchołka jest równy co najwyej 3

25 25 Drzewa Tw. Niech T bdzie drzewem o n wierzchołkach. Wówczas nastpujce warunki s równowane: (1) T jest drzewem; (2) T nie zawiera cykli i ma n 1 krawdzi; (3) T jest grafem spójnym i ma n 1 krawdzi; (4) T jest grafem spójnym i kada krawd jest mostem; (5) kade dwa wierzchołki T s połczone dokładnie jedn drog; (6) T nie zawiera cyklu, ale po dodaniu dowolnej krawdzi otrzymany graf ma dokładnie jeden cykl. Dowód: Wykaemy twierdzenie indukcyjnie wzgldem n. Jeli n = 1, to twierdzenie jest prawdziwe. Załómy, e jest prawdziwe równie dla wszystkich drzew T, których rzd jest mniejszy ni n. Nastpnie wykaemy równowano warunków dla drzewa T o n wierzchołkach.

26 26 Drzewa Dowód (cd.): (1) (2) [T jest drzewem T nie zawiera cykli i ma n 1 krawdzi] T jest drzewem, wic nie zawiera cykli. Po usuniciu dowolnej krawdzi e otrzymujemy T e = T 1 T 2. Z załoenia indukcyjnego mamy m(t i ) = n(t i ) 1, i = 1,2. Std m(t) = n(t 1 ) 1 + n(t 2 ) = n(t) 1. (2) (3) [T nie zawiera cykli i ma n 1 krawdzi T jest grafem spójnym i ma n 1 krawdzi] Załómy, e T nie jest grafem spójnym. Wtedy T = T 1 T 2. To oznacza, e m(t) = m(t 1 ) + m(t 2 ) = n(t 1 ) + n(t 2 ) 2, na mocy załoenia indukcyjnego. Std m(t) = n(t) 2. Ale z warunku (2) wynika, e m(t) = n(t) 1, co daje sprzeczno.

27 27 Drzewa Dowód (cd.): (3) (4) [T jest grafem spójnym i ma n 1 krawdzi T jest grafem spójnym i kada krawd jest mostem] Graf T e nie jest spójny, gdy podalimy wczeniej twierdzenie mówice, i dla grafu o k składowych spójnoci zachodzi n k m. W przypadku grafu T e mamy k = 1 oraz m = n 2. (4) (5) [T jest grafem spójnym i kada krawd jest mostem kade dwa wierzchołki T s połczone dokładnie jedn drog] Gdyby pomidzy pewn par wierzchołków istniały dwie drogi, to tworzyłyby one cykl. Usunicie dowolnej krawdzi z tego cyklu nie spowoduje rozspojenia grafu, co przeczy załoeniu, i kada krawd jest mostem.

28 28 Drzewa Dowód (cd.): (5) (6) [kade dwa wierzchołki T s połczone dokładnie jedn drog T nie zawiera cyklu, ale po dodaniu dowolnej krawdzi otrzymany graf ma dokładnie jeden cykl] Załómy, e graf T zawiera cykl. Wówczas pewne dwa wierzchołki, nalece do tego cyklu, s połczone dwiema rónymi drogami. Sprzeczno. Po operacji dodania krawdzi graf T + {u,v} zawiera cykl, poniewa wierzchołki u oraz v s połczone w grafie T drog. (6) (1) [T nie zawiera cyklu, ale po dodaniu dowolnej krawdzi otrzymany graf ma dokładnie jeden cykl T jest drzewem] Wystarczy wykaza, e graf T jest spójny. Gdyby tak nie było, to T graf T + {u,v} nie zawiera cyklu, gdzie T = T 1 T 2 oraz u V(T 1 ), v V(T 2 ). Sprzeczno.

29 29 k-drzewa Def. (k-drzewo) k-drzewem jest graf pełny K k. Jeli G jest k-drzewem o n wierzchołkach, to (n+1)-wierzchołkowe k-drzewo powstaje z G poprzez dodanie wierzchołka ssiedniego do wszystkich wierzchołków pewnej kliki w o k wierzchołkach w G. Czciowe k-drzewo to dowolny podgraf k-drzewa. Uwaga Kade drzewo jest 1- drzewem Przykład 2-drzewo 3-drzewo

30 3 Macierz ssiedztwa Macierz ssiedztwa jest struktur danych słuc do reprezentacji grafów w pamici komputera. Dla danego grafu G okrelamy kwadratow tablic M o wymiarach n n tak, e M[ i, j] =, 1, gdy { v gdy { v i i, v, v j j } E( G) } E( G) Przykład Przykład: ssiedztwo wierzchołka v 6 v 6 v 5 Wierzchołek v 6 jest ssiedni z: v 1 G = M = v 4 v2 v 3 v 1, v 3 i v

31 31 Macierz ssiedztwa Zalety: sprawdzenie, czy {v i,v j } E(G), dodanie oraz usunicie krawdzi to operacje dokonywane w stałym czasie struktura danych łatwa w implementacji Wady: przechowywanie macierzy wymaga O(n 2 ) pamici przejrzenie zbioru krawdzi dokonywane w czasie O(n 2 ) zamiast O(m)

32 32 Lista ssiedztwa Lista ssiedztwa jest struktur danych, w której wystpuje n- elementowy wektor N zwany nagłówkiem taki, e N[i] jest wskanikiem na list zawierajc ssiadów wierzchołka v i. Przykład: lista ssiadów wierzchołka v 6 Przykład v v 1 v v 6 v2 v G = N = v v v 3 5 v v 4 v v v v v v v 4 Wierzchołek v 6 jest ssiedni z: v 1, v 3 oraz v 4

33 33 Lista ssiedztwa Zalety: przejrzenie zbioru krawdzi dokonywane w czasie O(m) oszczdno pamici wymagana pami rzdu O(m) Wady: sprawdzenie, czy {v i,v j } E(G) wymaga czasu proporcjonalnego do min{deg(v i ), deg(v j )} usunicie krawdzi {u,v} wymaga czasu proporcjonalnego do max{ deg(u), deg(v) }

34 34 Izomorfizm grafów Def. Niech bd dane dwa grafy G 1 i G 2 o tej samej liczbie wierzchołków. Powysze grafy s izomorficzne o ile istnieje bijekcja f:v(g 1 ) V(G 2 ) taka, e wierzchołki u i v s ssiednie w grafie G 1 wtedy i tylko wtedy, gdy wierzchołki f(u) i f(v) s ssiednie w G 2. Tw. Jeli grafy G 1 i G 2 s izomorficzne, to 1. V(G 1 ) = V(G 2 ) 2. E(G 1 ) = E(G 2 ) 3. Cigi stopniowe tych grafów s sobie równe Przykład Nastpujce trzy grafy s izomorficzne:

35 35 Izomorfizm grafów Uwaga. Warunki podane w powyszym twierdzeniu nie s wystarczajce do tego, aby dwa grafy były izomorficzne. Dla poniszych dwóch grafów G 1, G 2 mamy 1. V(G 1 ) = V(G 2 ) 2. E(G 1 ) = E(G 2 ) 3. Cigi stopniowe tych grafów s sobie równe, lecz nie s one izomorficzne. G 1 = G 2 = Uwaga Nie wiadomo, czy istnieje wielomianowy algorytm, stwierdzajcy, czy podane na wejciu dwa grafy s izomorficzne.

36 36 Izomorfizm grafów Przykład Sze postaci grafu Petersena

37 37 Szukanie najkrótszych dróg z jednym ródłem

38 38 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 s Wyjcie: dla kadego wierzchołka v algorytm znajduje d[v], długo najkrótszej drogi z wierzchołka s do v. Przez długo drogi rozumiemy sum wag krawdzi nalecych do drogi. Uwaga: Algorytm mona łatwo zmodyfikowa tak, aby oprócz długoci drogi wyznaczał krawdzie do niej nalece oraz tak, aby działał w przypadku grafów skierowanych.

39 39 Pseudokod Uwaga S jest pomocniczym zbiorem wierzchołków (nazywany zbiorem pewnoci). O wierzchołku v nalecym do S wiadomo, e jego etykieta d[v] jest równa długoci najkrótszej drogi z s do v. Procedure Dijkstra(G, s) begin S := ; d[s] = ; d[ v] = + dla v s; for i := 1 to n do begin znajd v V\S, posiadajcy minimaln etykiet d[ v]; S := S {v}; for kady ssiad u V\S do begin d[ u] := min{d[ u], d[ v] + w({u,v}) }; end end end

40 4 Przykład s Procedure Dijkstra(G, s) begin S := ; d[s] = ; d[ v] = + dla v s; for i := 1 to n do begin znajd v V\S, o minimalnym d[ v]; S := S {v}; for kady ssiad u V\S do begin d[ u] := min{d[ u], d[ v] + w({u,v}) }; end end end Szukamy długoci najkrótszej drogi z s do t. Elementy zbioru S oznaczamy kolorem czerwonym. Odpowied: najkrótsza droga z s do t ma długo t 5 11

41 41 Uwagi o implementacji operacje znajd v V\S, o minimalnym d[ v]; S := S {v}; s wykonywane O(n) razy operacja d[ u] := min{d[ u], d[ v] + w({u,v}) }; jest wykonywana O(m) razy do wydajnej implementacji wykorzystujemy kopiec binarny o tej własnoci, e klucz zapamitany w danym wle jest mniejszy od kluczy jego synów elementami kopca s wierzchołki V\S, a klucze to liczby d[v] w ogólnym przypadku czas budowy kopca to O(nlogn), lecz w algorytmie Dijkstry (wykorzystujc fakt, e inicjalnie wszystkie klucze, z wyjtkiem d[s] s identyczne) czas ten jest liniowy wyszukiwanie wierzchołka w zbiorze V\S o minimalnym kluczu, dziki własnoci kopca, moe by wykonana w czasie stałym usunicie elementu o minimalnym kluczu (czyli instrukcja S := S {v}; ) wymaga czasu O(log( V\S )) = O(logn) operacja d[ u] := min{d[ u], d[ v] + w({u,v}) }; wymaga czasu O(log( V\S )) ostatecznie, czas działania algorytmu Dijkstry to O((n+m)logn)

42 42 Algorytm Bellmana-Forda Wejcie: obciony spójny digraf G. Dozwolone ujemne wagi na krawdziach. Algorytm stwierdza czy istnieje cykl o ujemnej sumie wag. Jeli taki cykl istnieje, to algorytm zwraca informacj o błdzie Jeli powyszego cyklu nie ma, to algorytm znajduje długoci najkrótszych dróg ze ródła s do wszystkich pozostałych wierzchołków grafu

43 43 Szkic algorytmu algorytm szuka długoci najkrótszych dróg z wyrónionego wierzchołka s do wszystkich pozostałych wierzchołków grafu długo znalezionej drogi z s do v jest zapamitana jako d[v] inicjalnie d[s] = oraz d[v] = + dla s v główna ptla algorytmu jest wykonywana n 1 razy kady przebieg głównej ptli polega na wykonaniu relaksacji kadej krawdzi relaksacja krawdzi (u,v) jest zmniejszeniem oszacowania d[v] jeli warto dotychczas zapamitana jest wiksza ni d[u] + w((u,v)), gdzie w((u,v)) to waga krawdzi (u,v) po zakoczeniu oblicze w głównej ptli algorytmu nastpuje sprawdzenie czy w digrafie istnieje cykl o ujemnej sumie wag, co jest realizowane poprzez sprawdzenie czy mona dokona relaksacji dowolnej krawdzi jeli relaksacja jest moliwa, to graf zawiera cykl o ujemnej sumie wag, co oznacza, e najkrótszych dróg nie mona obliczy jeli relaksacja nie jest moliwa, to zapamitane wartoci d[v] s szukanymi długociami najkrótszych dróg z s

44 44 Pseudokod procedure Bellman-Ford( G, w, s ) begin d[s] = ; for each v V(G)\{s} do d[v] = + ; for i := 1 to n 1 do for each (u,v) E(G) do if d[u] + w((u,v)) < d[v] then d[v] := d[u] + w((u,v)); for each (u,v) E(G) do if d[u] + w((u,v)) < d[v] then return false; return true; end

45 45 Przykład Rys. 1: Sytuacja po inicjalizacji Rys. 2: Sytuacja po wykonaniu ptli dla i = Rys. 3: Sytuacja po wykonaniu ptli dla i = Rys. 4: Sytuacja po wykonaniu ptli dla i = Rys. 5: Sytuacja po wykonaniu ptli dla i = Rys. 6: Sytuacja po wykonaniu ptli dla i = 5

46 46 Poprawno Tw Jeli digraf G nie posiada ujemnych cykli osigalnych ze ródła s, to po zakoczeniu algorytmu Bellmana-Forda d[v] jest równe długoci najkrótszej cieki z s do v dla kadego wierzchołka v osigalnego z s. Dowód: niech s=v,...,v k =v bdzie najkrótsz ciek z s do v mamy k < V(G) dowodzimy indukcyjnie, e d[v i ] jest równe długoci najkrótszej cieki z s do v i po i-tym przebiegu drugiej ptli for jeli i=, to własno wynika z faktu, e w fazie inicjalizacji algorytmu podstawiamy d[s]= i równo ta nie ulega zmianie podczas działania algorytmu niech i >. Po dokonaniu relaksacji krawdzi (v i-1,v i ) w i-tym przebiegu ptli liczba d[v i ] przyjmuje warto najkrótszej cieki z s do v i.

47 47 Poprawno Tw. Jeli digraf G zawiera cykl o ujemnej wadze osigalny z s, to algorytm Bellmana-Forda zwraca warto false. Dowód: niech v,...,v k =v bdzie cyklem o ujemnej sumie wag, tzn. i= 1 1, )) < Gdyby algorytm zwrócił warto true, to dla kadego wierzchołka cyklu mamy d[v i ] d[v i-1 ] + w((v i-1,v i )). Sumujc nierównoci parami otrzymujemy k i= 1 Wartoci pierwszych dwóch sum w powyszym wyraeniu s sobie równe wic co prowadzi do sprzecznoci. i k d[ v ] k i= 1 w(( v i v i k i= 1 w(( d[ v i 1 ] + k i= 1 v i 1, v i )) w(( v i 1, v )) i

48 48 Obliczanie najkrótszych cieek pomidzy wszystkimi parami wierzchołków

49 49 Obliczanie najkrótszych cieek metod mnoenia macierzy problem: szukamy długoci najkrótszych cieek pomidzy wszystkimi parami wierzchołków wykorzystanie metody programowania dynamicznego zwizek z problemem mnoenia macierzy pewne optymalizacje

50 5 Rekurencyjna definicja rozwizania Lemat Jeli v,..., v l jest najkrótsz ciek łczc v z v l, to podcieka v s,...,v t, gdzie s t l jest najkrótszym połczeniem pomidzy wierzchołkami v s i v t. m d ij Oznaczenie: - długo najkrótszej cieki z i do j zawierajcej co najwyej m krawdzi. Wówczas: d m ij = min( d m 1 ij,min{ d m 1 ik + w kj : k = 1,..., n}) i i = j j dla m < n oraz + d ij = i i = j j

51 51 Algorytm Wejcie: macierz D m współczynników d ij oraz macierz W opisujca wagi w ij Wyjcie: macierz D m+1 m+1 współczynników m d ij procedure SearchShortestPaths( D m, W ) begin for i := 1 to n do for j := 1 to n do begin m+ d 1 m ij = dij ; for k := 1 to n do m+ 1 ij end return D m+1 ; end m+ 1 ij m ik d = min( d, d + w kj );

52 52 Przykład = W = D = D = D = D

53 53 Zwizek z mnoeniem macierzy procedure SearchShortestPaths( D m, W ) begin for i := 1 to n do for j := 1 to n do begin m+ 1 d ij = +; for k := 1 to n do m+ 1 ij end return D m+1 ; end m+ 1 ij m ik d = min( d, d + w kj ); procedure MatrixMultiplication( A, B ) begin for i := 1 to n do for j := 1 to n do begin c ij := ; for k := 1 to n do c ij := c ij + a ik b kj ; end return C; end Std notacja: D m+1 = D m W

54 54 Optymalizacje Uwagi: (n 1)-krotne wykonanie mnoenia wg. schematu D n 1 = (... (((D W) W) W)... ) W powoduje, e czas działania algorytmu wynosi O(n 4 ) Z punktu widzenia kocowego rozwizania istotna jest tylko macierz D n 1 Zwikszenie wydajnoci algorytmu uzyskuje si poprzez rezygnacj z obliczania wikszoci macierzy porednich D k Sposób postpowania: log( n zamierzamy obliczy macierz o numerze k = 2 1), która stanowi poprawne rozwizanie, gdy D k = D n 1 dla kadego k > n 1 wykonujemy k razy podnoszenie macierzy do kwadratu obliczajc tylko macierze o indeksach bdcych potgami 2: D 1 = W, D 2 = D 1 D 1, D 4 = D 2 D 2,..., D czas działania takiego algorytmu to O(n 3 logn) k 2 = D k 1 2 D k 1 2

55 55 Algorytm Johnsona algorytm znajduje najkrótsze cieki pomidzy wszystkimi parami wierzchołków algorytmy Dijkstry oraz Bellmana-Forda s wykorzystywane jako podprogramy asymptotyczny czas działania to O(n 2 logn + nm), gdzie n i m to odpowiednio liczba wierzchołków oraz krawdzi grafu

56 56 Zmiana funkcji wagowej Uwaga Algorytm wywołuje algorytm Dijkstry dla kadego wierzchołka. Graf wejciowy moe zawiera krawdzie o ujemnych wagach. Aby algorytm działał poprawnie modyfikowana jest funkcja wagowa w. Nowa funkcja wagowa w musi spełnia ponisze własnoci: 1. cieka P jest najkrótszym połczeniem pomidzy wierzchołkami u,v przy funkcji wagowej w wtedy i tylko wtedy, gdy P jest najkrótsz ciek pomidzy u i v z funkcj wagow w 2. w (e) dla kadej krawdzi e Def. w ((u,v)) = w((u,v)) + h(u) h(v) Lemat Jeli P jest ciek złoon z v,...,v k, to w (P) = w(p)+h(v ) h(v k ) k k Dowód: w (' P) = w (' vi 1, vi ) = ( w( vi 1, vi ) + h( vi 1) h( vi )) = 1k 1 = w( vi 1, vi ) + h( v) h( vk ) = w( P) + h( v) h( vk ) 1

57 57 Zmiana funkcji wagowej Lemat cieka P zawierajca wierzchołki v,...,v k, jest najkrótsz drog z v do v k, przy funkcji wagowej w wtedy i tylko wtedy, gdy P jest najkrótsz ciek z v do v k, przy f-cji wagowej w. Dowód: () (implikacj przeciwn dowodzi si analogicznie) Dowodzimy implikacj metod nie wprost. Załómy, e istnieje inna cieka P taka, e w (P ) < w (P). Korzystajc z poprzedniego lematu w(p )+h(v ) h(v k ) = w (P ) < w (P) = w(p)+h(v ) h(v k ). To oznacza, e w(p ) < w(p) i prowadzi do sprzecznoci. Lemat Graf G ma ujemny cykl przy funkcji wagowej w wtedy i tylko wtedy, gdy ma ujemny cykl przy funkcji w. Dowód: Niech C bdzie dowolnym cyklem w G zawierajcym wierzchołki v,...,v k =v. Wówczas: w (C) = w(c) + h(v ) h(v k ) = w (C), co koczy dowód.

58 58 Konstrukcja funkcji h Uwaga Celem jest dobranie takiej funkcji h, aby w (e) dla kadej krawdzi e. W tym celu tworzymy nowy graf G powstały z G poprzez dodanie wierzchołka s, z którego wychodzi łuk o wadze do kadego innego wierzchołka grafu G. Uwagi: G nie ma cykli o ujemnych wagach G nie ma cykli o ujemnych wagach definiujemy, dla kadego wierzchołka v h(v) = d(v) długo najkrótszej cieki z s do v Własno: h(v) h(u) + w((u,v)) dla wszystkich krawdzi (u,v) Definiujemy: w ((u,v)) = w((u,v)) + h(u) h(v) s

59 59 Przykład b 1 c a d f 2 e s Rys. 1: Utworzenie grafu G poprzez dodanie wierzchołka s. Rys. 2: Wyznaczenie długoci najkrótszych cieek z s do pozostałych wierzchołków za pomoc alg. Bellmana-Forda. Rys. 3: Utworzenie funkcji wagowej w dla grafu G wg wzoru: w ((u,v)) = w((u,v)) + d(u) d(v).

60 6 Algorytm Johnsona procedure Johnson( G ) begin wyznacz graf G ; if Bellamn-Ford( G, w, s ) = false then return false; else begin for each v V(G ) do h(v) := d(v); /* obliczone w algorytmie Bellmana-Forda */ for each (u,v) E(G ) do w ((u,v)) := w((u,v)) + h(u) h(v); for each v V(G) do Dijkstra( G, w, v ); for each u V(G) do d[u,v] := [dł. najkr. cieki z v do u w G ] + h(v) h(u); end end

61 61 Przykład c.d Wyznaczylimy wczenie funkcj pomocnicz h: a b c d e f s h Skonstruujemy jeden wiersz tablicy wyjciowej, mianowicie d[a,*], co odpowiada wykonaniu jednego obiegu odpowiedniej ptli alg. Johnsona: wierzchołek a kolor czerwony niebieskie etykiety najkrótsza droga z wierzchołka a obliczone wartoci dla grafu G : a a b 8 c 8 po przekształceniu odwrotnym wynik dla G: a a b 8 c 7 d 8 d 5 e 8 e 3 f 8 f 5 s

62 62 Grafy hamiltonowskie, problem komiwojaera algorytm optymalny

63 63 Grafy hamiltonowskie Def. Cykl (droga) Hamiltona jest to cykl (droga), w którym kady wierzchołek grafu wystpuje dokładnie raz. Graf jest hamiltonowski (półhamiltonowski), o ile posiada cykl (drog) Hamiltona. Przykład Graf hamiltonowski Graf półhamiltonowski Graf nie jest ani hamiltonowski ani półhamiltonowski

64 64 Grafy hamiltonowskie Tw. (Ore, 196) Jeli G jest grafem prostym o n 3 wierzchołkach i deg(u) + deg(v) n dla kadej pary niessiednich wierzchołków u i v, to graf G jest hamiltonowski. Dowód: Załómy, e istnieje graf G o podanych załoeniach ale nie jest hamiltonowski. Moemy załoy, e G posiada drog Hamiltona v 1 v 2... v n oraz {v 1,v n } E(G). Std wynika, e deg(v 1 ) + deg(v n ) n a to oznacza, e istnieje indeks i taki, e {v 1,v i } E(G) oraz {v i-1, v n } E(G), co pokazano na rysunku. To prowadzi do sprzecznoci, gdy v 1 v 2... v i-1 v n v n-1... v i v 1 jest cyklem Hamiltona. v 1 v 2 v 3 v i-1 v i v n-2 v n-1 v n

65 65 Grafy hamiltonowskie Wniosek (Dirac, 1952) Jeli G jest grafem prostym o n 3 wierzchołkach i deg(u) n/2 dla kadego wierzchołka v, to G jest hamiltonowski. Dowód: Wynika z poprzedniego twierdzenia, gdy deg(u) + deg(v) n dla kadej pary (równie niessiednich) wierzchołków. Uwaga Problem polegajcy na stwierdzeniu czy dany graf G jest hamiltonowski jest NP-zupełny. Oznacza to, e nie s znane efektywne (działajce w czasie wielomianowym) algorytmy rozwizujce ten problem. Nie jest równie znane twierdzenie podajce warunki konieczne i dostateczne na to, aby G był hamiltonowski.

66 66 Problem komiwojaera Dany jest zbiór miast. Komiwojaer chce odwiedzi wszystkie miasta (kade dokładnie raz) i powróci do punktu wyjcia. Problem polega na znalezieniu najkrótszej trasy o tej własnoci. Zdefiniujemy powyszy problem w jzyku teorii grafów. Niech bdzie dany graf pełny G. Zakładamy, e z kad krawdzi e i jest skojarzona jej waga (długo) oznaczana dalej przez w i. Rozwizaniem problemu komiwojaera jest taki cykl Hamiltona, którego suma wag krawdzi jest minimalna. Przykład Σ = 26 9

67 67 Problem komiwojaera Uwagi problem komiwojaera jest NP-trudny, co oznacza, e nie s znane algorytmy o wielomianowej złoonoci obliczeniowej rozwizujce ten problem (przypuszczalnie takie nie istniej) w praktyce jestemy zmuszeni posługiwa si wielomianowymi algorytmami przyblionymi, tzn. takimi, które szybko znajduj rozwizanie, które jest w przyblieniu równe optymalnemu Przykład Jednym z moliwych algorytmów dokładnych jest sprawdzenie wszystkich moliwych cykli Hamiltona i wybranie najkrótszego. Wad takiego podejcia jest to, e liczba cykli jest zbyt dua, gdy dla n-wierzchołkowego grafu wynosi (n!)/2. Std, jeli dysponujemy komputerem sprawdzajcym milion permutacji na sekund, to: n = 1 ilo cykli = (1!)/2 = czas oblicze = 1.8 s n = 2 ilo cykli = (2!)/ czas oblicze 4 tys. lat

68 68 Historia problemu komiwojaera George Dantzig, Ray Fulkerson i Selmer Johnson (1954) zaprezentowali optymalne rozwizanie problemu komiwojaera dla 49 amerykaskich miast.

69 69 Historia problemu komiwojaera Padberg i Rinaldi (1987) obliczyli optymalne rozwizanie dla 532 punktów

70 7 Historia problemu komiwojaera Rozwizanie obejmujce miast amerykaskich, uzyskane w 1998 roku.

71 71 Problem komiwojaera algorytm optymalny nie jest znany aden wielomianowy optymalny algorytm dla tego problemu i jest mało prawdopodobne, e taki algorytm w ogóle istnieje omówiony dalej algorytm polega na przeszukiwaniu całej przestrzeni rozwiza podczas oblicze na bieco uaktualniane jest dolne oszacowanie na długo optymalnej trasy, dziki czemu wiemy, których rozwiza czciowych na pewno nie da si rozszerzy na rozwizania optymalne i cz oblicze mona pomin rozwaamy przypadek nieco ogólniejszy, w którym dany jest na wejciu obciony graf skierowany

72 72 Drzewo przeszukiwa Def. Drzewo przeszukiwa definiujemy jako zakorzenione drzewo, którego kady wierzchołek odpowiada pewnemu podzbiorowi rozwiza. Podzbiory rozwiza odpowiadajce synom wzła wynikaj za sposobu podziału zbioru rozwiza ojca. Uwaga: Dla problemu komiwojaera przyjmujemy nastpujc posta drzewa przeszukiwa: kady wierzchołek odpowiada rozwizaniom problemu, które zawieraj pewne łuki i jednoczenie innych wybranych łuków nie zawieraj (np. pewnemu wierzchołkowi odpowiadaj optymalne trasy zawierajce łuki (a,b),(e,h) oraz nie zawierajce łuków (a,d),(d,e) i (b,e) ) Kady wzeł ma dwóch synów. Po wybraniu nowego łuku e, jeden z synów odpowiada rozwizaniom o ograniczeniach nałoonych w ojcu oraz zawierajcych e, natomiast drugi nie zawierajcych e.

73 73 Oszacowanie dolne Uwaga: Podczas realizacji algorytmu (tzn. podczas trawersowania drzewa przeszukiwa) pamitamy warto najlepszego znalezionego dotychczas rozwizania. Oznaczmy j przez min_sol. Uwaga: Z kadym wierzchołkiem v drzewa przeszukiwa jest zwizana zmienna LB. Jest to liczba, która stanowi oszacowanie dolne na warto kadego rozwizania nalecego do tego wierzchołka. Wówczas: jeli LB > min_sol, to wiemy, e nie warto przeszukiwa poddrzewa zakorzenionego w wierzchołku v, jeli LB = min_sol, to poddrzewo by moe zawiera rozwizania dorównujce dotychczasowemu najlepszemu. Jeli zadanie polega na wyznaczeniu dowolnego rozwizania optymalnego, to nie przeszukujemy poddrzewa zakorzenionego w wierzchołku v jeli LB < min_sol, to naley przeszukiwa poddrzewo zakorzenione w v (by moe nie całe).

74 74 Redukcja macierzy Lemat Jeli M jest macierz ssiedztwa grafu G, to: do dowolnego cyklu Hamiltona naley dokładnie jeden element z kadego wiersza M i dokładnie jeden z kadej kolumny jeli od wszystkich elementów w wybranym wierszu (kolumnie) odejmiemy stał d, to długo kadego cyklu Hamiltona jest o d mniejsza od długoci tego samego cyklu, lecz przed odjciem stałej jeli od wierszy i kolumn wielokrotnie odejmiemy stałe tak,aby kady wiersz i kolumna zawierały dokładnie jedno zero, to suma odjtych liczb stanowi dolne oszacowanie optymalnego rozwizania. Def. Proces odejmowania stałych od wierszy (kolumn) macierzy ssiedztwa nazywamy redukcj. Wniosek Jeli łuk (i,j) naley do optymalnej trasy komiwojaera znalezionej na podstawie zredukowanej macierzy ssiedztwa, to (i,j) naley rownie do optymalnej trasy w wyjciowym grafie.

75 75 Algorytm redukcji procedure Reduce( M ) begin r := ; for i := 1 to n do begin min_row := najmniejszy element w i-tym wierszu; if ( min_row > ) then begin odejmij min_row od kadego elementu w wierszu i; r := r + min_row; end end; for i := 1 to n do begin min_col := najmniejszy element w i-tej kolumnie; if ( min_col > ) then begin odejmij min_col od kadego elementu w wierszu i; r := r + min_col; end end; return r; end Zmienne: M macierz ssiedztwa rozmiaru n r suma odjtych wartoci od wierszy i kolumn (jak wynika z poprzedniego lematu, jest to dolne oszacowanie na długo cyklu w M)

76 76 Przykład redukcji M = a b c d e a b c d e a b c d e a b c d e r = = 8 Std, do wartoci LB potomków wzła dodamy 8 a b c d e a b c d e

77 77 Kryterium wyboru łuku procedurefindedge( M, r, c ) begin max := 1; for i := 1 to n do for j := 1 to n do if M[i,j] = then begin min_r := warto najmniejszego elementu w wierszu i z pominiciem M[i,j]; min_c := warto najmniejszego elementu w kolumnie j z pominiciem M[i,j]; if min_r + min_c > max then begin max := min_r + min_c; (r,c) := (i,j); end end; return max; end Zmienne: M macierz ssiedztwa n rozmiar M (r,c) łuk do podziału zbioru rozwiza Uwaga: Aby utworzy potomków w drzewie przeszukiwa, wybieramy taki łuk, który powoduje najwikszy wzrost dolnego oszacowania w prawym poddrzewie. Warto, o któr wzronie LB wyznaczamy w zmiennej max.

78 78 Wybór łuku - przykład min_r+min_c=5+3=8 2+=2 Zredukow. M += = a b c d e a b c d e =12 +1=1 3+5=8 do podziału zbioru rozwiza wybieramy łuk (c,d) lewy potomek odpowiada wszystkim rozwizaniom (cyklom) zawierajcym łuk (c,d) prawy potomek zawiera wszystkie rozwizania bez (c,d)

79 79 Tworzenie lewego syna 1. załómy, e wybrano łuk (c,d) w celu utworzenia potomków wierzchołka v, 2. lewy syn zawiera wówczas zbiór rozwiza o tych samych ograniczeniach, co w przypadku v oraz dodatkowo zawierajcych łuk (c,d), 3. oznacza to, e moemy zmniejszy rozmiar macierzy ssiedztwa o 1 poprzez usunicie c-tego wiersza i d-tej kolumny, 4. kolejne uproszczenie macierzy polega na zablokowaniu łuku (d,c) tzn. element macierzy na przeciciu d-tego wiersza i c-tej kolumny przyjmuje warto nieskoczono, 5. blokujemy równie łuk, który tworzy cykl wraz z łukami dodanymi poprzednio do rozwizania, 6. warto LB wyliczamy dodajc do wartoci LB ojca liczb r wyliczon w procedurze Reduce

80 8 Lewy syn - przykład Dla wzła wyjciowego v (tutaj korze drzewa) LB(v)= Zredukow. M = a b c d e a b c d e (usunicie wiersza c i kolumny d) a b d e a 17 b 6 5 c e 23 2 (zablokowanie łuku (d,c)) Warto oszacowania dolnego LB(v l ) dla lewego potomka wynosi zatem LB(v)+r = +8 a b d e a 17 b 6 5 c 5 27 e 23 2 (blokowanie łuków tworzcych cykl z dotychczas wybranymi ) a b d e a 17 b 6 5 c 5 27 e 23 2

81 81 Tworzenie prawego syna 1. załómy, e wybrano łuk (c,d) w celu utworzenia potomków wierzchołka v, 2. prawy syn zawiera wówczas zbiór rozwiza o tych samych ograniczeniach, co w przypadku v oraz dodatkowo nie zawierajcych łuku (c,d), 3. blokujemy wic łuk (c,d) poprzez wpisanie wartoci nieskoczono na przeciciu c-tego wiersza i d-tej kolumny w macierzy ssiedztwa 4. nie nastpuje zmniejszenie rzdu macierzy ssiedztwa w tym przypadku 5. warto LB wyliczamy dodajc do wartoci LB ojca liczb r wyliczon w procedurze Reduce oraz warto warto max wyliczon w procedurze FindEdge

82 82 Prawy syn - przykład Dla wzła wyjciowego r (tutaj korze drzewa) LB(r)= Zredukow. M = a b c d e a b c d (zablokowanie łuku (c,d)) e Warto oszacowania dolnego LB(r p ) dla prawego potomka wynosi zatem LB(r) + r + max = = 92 a b c d e a b c d e

83 83 Warunki koca rekurencji Przypadek 1: warto LB w wierzchołku v jest wiksza lub równa od najlepszego znalezionego dotychczas rozwizania. Wówczas drzewo zakorzenione w v nie jest przeszukiwane. Przypadek 2: M jest stopnia 2. Ma ona wówczas jedn z dwóch postaci: + + M = lub M =. + + Zatem bez wzgldu na posta macierzy nie ma wyboru co do tego jakie łuki naley włczy do kocowego rozwizania. Jeli kolumny odpowiadaj wierzchołkom w,x natomiast wiersze u,v to: jeli M[u,w] =, to do cyklu komiwojaera nale łuki (u,w), (v,x) jeli M[u,x] =, to do cyklu komiwojaera nale łuki (v,w), (u,x)

84 84 Algorytm procedure TraverseTree( M, C, LB ) begin r := Reduce( M ); if LB + r < min_sol then if C = n 2 then begin dołcz dwa łuki do C i uaktualnij min_sol oraz zapamitaj nowe rozwizanie jeli jest lepsze od dotychczasowych; end else begin max := FindEdge( M, c,d ); TraverseTree( M *, C {(c,d)}, LB + r ); if LB + r + max < min_sol then begin M[c,d] := +; TraverseTree(M,C, LB + r ); M[r,c] := ; end end; odtwórz macierz M do postaci sprzed redukcji; end Zmienne: M macierz ssiedztwa C krawdzie nalece do cyklu LB warto dolnego oszacowania dla danego wzła M * powstaje z M poprzez usunicie c-tego wiersza, d-tej kolumny i zablokowania łuku (d,c) i łuków tworzych cykle z C {(c,d)} min_sol inicjalnie równe +

85 85 Przykład M = a b c d e a b c d e LB= r = 35 max=34 LB=35 r = 35 max=5 LB=7 r = LB=35 r = max=41 c e c d e b min_sol =7 b c d e b (d,e) d a b d (b,a) e 5 d e LB+r+max = =75> min_sol=7 (a,c) > min_sol LB=69 r = 34 max=23 a b c d e a b > min_sol c 8 14 d e > min_sol M macierz wyjciowa (przed redukcj), natomiast we wszystkich potomkach pokazano macierze po redukcji

86 86 Złoono Czas działania procedury Reduce wynosi O(n 2 ) Czas działania procedury FindEdge wynosi O(n 3 ) Zapamitanie i odtworzenie macierzy to operacja rzdu O(n 2 ) Zapamitywanie nowego najlepszego rozwizania w czasie O(n) Oznacza to, e realizacja algorytmu TraverseTree w obrbie jednego wzła wymaga czasu O(n 3 ) Złoono całego algorytmu mona oszacowa zatem przez O(f(n)n 3 ), gdzie f(n) jest liczb wzłów drzewa poszukiwa odwiedzanych przez procedur TraverseTree. Liczba wykonanych oblicze zaley od konkretnych danych wejciowych i w pesymistycznym przypadku jest wykładnicza.

87 87 Heurystyki dla (symetrycznego) problemu komiwojaera Algorytm włczania Heurystyki lokalnych poszukiwa

88 88 Algorytm włczania Uwaga Rozwaamy problem komiwojaera dla obcionych grafów prostych Szkic algorytmu: wybierz dowolny wierzchołek v grafu jako pocztkowy wierzchołek cyklu załómy, e został wyznaczony fragment cyklu zawierajcy wierzchołki v,...,v k. W celu rozszerzenia takiego czciowego rozwizania na (k+1)- elementowy fragment cyklu wykonywane s dwa kroki: - krok wyboru: wybierz wierzchołek v sporód wierzchołków nie nalecych do cyklu - krok włczania: okrel miejsce w dotychczas utworzonym fragmencie cyklu, w które naley wstawi wierzchołek v

89 89 Kryteria wyboru Przykładowe kryteria stosowane podczas kroku wyboru to: wybór losowego wierzchołka sporód wierzchołków nie włczonych jeszcze do cyklu wierzchołek lecy najbliej dotychczas zdefiniowanego fragmentu cyklu dla kadego wierzchołka wyznaczy koszt jego włczenia do cyklu w najbardziej korzystnym dla niego miejscu i wybra wierzchołek o minimalnym koszcie wybór wierzchołka znajdujcego si najdalej od cyklu Uwagi: brak teoretycznych analiz porównujcych powysze podejcia testy komputerowe wskazuj, e włczanie najdalszego wierzchołka okazuje si by technik najskuteczniejsz w praktyce

90 9 Algorytm włczania 1) krok wyboru: w celu zwikszenia efektywnoci wykorzystujemy tablic d[1,...,n] tak, e d[i] jest najkrótsz drog z wierzchołka v i do fragmentu dotychczas utworzonego cyklu w kroku wyboru wybieramy wierzchołek v, któremu odpowiada najwiksza warto w tablicy d uaktualnienie tablicy d: dla kadego u, d[u] = min{d[u],w({u,v})} 2) krok włczania: obliczamy długo kadego z nastpujcych czciowych rozwiza: v v, v v, v, v 1, v, v,..., v..., v..., v wybieramy rozwizanie czciowe o najmniejszym koszcie 1 2 k, v k k

91 91 Pseudokod algorytmu procedure FSTP( G, n ); begin V(C) := {u}; E(C) := {{u,u}}; len := ; for each v u do d[v] := w({u,v}); while V(C) V(G) do begin v wierzchołek o najwikszej wartoci d sporód V(G)\V(C); min := +; for each {x,y} E(C) do if w({x,v}) + w({v,y}) w({x,y}) < min then begin min := w({x,v}) + w({v,y}) w({x,y}); {x,y } := {x,y}; end; for each z V(G)\V(C) do d[z] := min{d[z], w({v,z}); len := len + w({x,v}) + w({v,y }) w({x,y }); end end Zmienne: G obciony graf prosty n rzd grafu G u dowolny wierzchołek grafu G len długo znalezionego cyklu

92 92 Przykład M = a b c d e a b a c d e a a e d e len = 91 a b c d e 3) len = 91 d = [ 11 6 ] d len = 91 a 28 d 21 e 27 b len = 87 1) len = d = a a b c d [ ] 42 a 2) len = 84 d = [ ] b e c d e e a 28 d 31 b 27 e len = 128 a 11 b 31 d 21 e len = 15 4) len = 87 d = [ 6 ] a b c d e

93 93 Przykład c.d. M = a b c d e a b c d e a 28 d 21 e 27 b a 28 d 21 e 15 c a 28 d 6 c 15 e 44 c len = b len = b len = 87 a 28 d 21 e 27 b 4) len = 87 d = [ 6 ] a b c d e a 16 c 6 d 21 e Ostatecznie: len = b len = 81

94 94 Heurystyki lokalnych poszukiwa algorytmy r-optymalne

95 95 Algorytm 2-opt Załómy, e mamy pewien cykl komiwojaera C dla grafu G złoony z krawdzi e 1,...,e n wybieramy dwie krawdzie e i, e j, które nie s ssiednie oznaczmy e i ={u,v} oraz e j ={w,x} cykl C przekształcamy w cykl C w taki sposób, e C = (C\{e i,e j }) {{u,w}, {v,x}}, gdzie wierzchołki u,w nale do rónych składowych podgrafu C\{e i,e j } u v u v x w x w

96 96 Algorytm 2-opt przy oznaczeniach z poprzedniego slajdu moemy napisa, e koszt nowego cyklu C wynosi w(c ) = w(c) w({u,v}) w({w,x}) + w({u,w}) + w({v,x}) zatem, jeli w({u,v}) + w({w,x}) > w({u,w}) + w({v,x}), to nowe rozwizanie jest lepsze od dotychczasowego w celu wyznaczenia cyklu C algorytm szuka takiej pary krawdzi e i,e j, aby maksymalnie obniy koszt nowego biecego rozwizania jeli zmniejszenie wagi cyklu C nie jest moliwe, to C jest rozwizaniem 2-optymalnym i algorytm koczy działanie powysza procedura przekształcania biecego cyklu C jest powtarzana dopóki moliwa jest redukcja wagi cyklu dziki opisanej wczeniej wymianie krawdzi

97 97 Dana jest macierz ssiedztwa M oraz biecym cyklem jest C = {{a,b}, {b,c}, {c,d}, {d,e}, {e,a}}. Mamy w(c)=124. Szukamy biecego cyklu dla kolejnej iteracji algorytmu: Przykład M = a b c d e a b c d e a a a a a e b e b e b e b e b d c w(c ) = 147 d c w(c ) = 154 d w(c ) = 81 c d c w(c ) = 15 d c w(c ) = 119 Zatem biecy cykl dla kolejnej iteracji zawiera kraw. {a,b},{b,e},{d,e},{c,d},{a,c}.

98 98 Algorytm 3-opt algorytm 3-optymalny jest uogólnieniem algorytmu 2-optymalnego w danej iteracji usuwane s trzy krawdzie x,y,z z cyklu C nastpnie do cyklu dodawane s trzy krawdzie e 1, e 2, e 3 w taki sposób, aby graf C =(C\{x,y,z}) {e 1, e 2, e 3 } tworzył cykl istnieje wiele moliwoci wyboru krawdzi e 1, e 2, e 3 algorytm zmiany biecego cyklu mona opisa nastpujco: d := +; dla kadej moliwej trójki krawdzi x,y,z nalecej do C: dla wszystkich e 1, e 2, e 3 t.. (C\{x,y,z}) {e 1, e 2, e 3 } tworzy cykl: jeli w((c {x,y,z}) {e 1, e 2, e 3 }) < d to d := w((c\{x,y,z}) {e 1, e 2, e 3 }); jeli w(c) > d to utwórz nowy biecy cykl C; (*) algorytm koczy działanie, gdy warunek (*) jest fałszywy jeli w-k (*) jest spełniony, to podane kroki s powtarzane dla nowego cyklu

99 99 8 moliwoci uzupełnienia zbioru C\{x,y,z} do cyklu x z y

100 1 Algorytm r-opt w kadej iteracji usuwamy r łuków (ich zbiór oznaczmy przez A) z biecego cyklu C do zbioru dróg C A dodajemy r łuków (zbiór dodanych łuków oznaczmy przez B w kadej iteracji badamy wszystkie dopuszczalne zbiory A i B i wybieramy takie rozwizanie, e w((c\a) B) jest minimalne przez dopuszczalne zbiory rozumiemy takie, e (C\A) B jest cyklem Uwaga Rozwizanie r-opt jest równie rozwizaniem (r 1)-optymalnym.

101 11 Efektywno liczba moliwych wyborów krawdzi A wynosi O( n!/( r!( n r)!)) 1 zbiór C\A mona uzupełni do cyklu na O(2 r ( r 1)!) sposobów złoono całego algorytmu wynosi zatem r 1 n O( p( n)2 ( r 1)! ) r Uwagi: w praktyce algorytm 3-opt okazuje si duo lepszy ni 2-opt, jednak algorytm 4-opt nie jest znaczco lepszy ni 3-opt wynik kocowy zaley od wyboru cyklu pocztkowego nie jest prawd, e lepszy cykl pocztkowy prowadzi do znalezienia lepszego rozwizania, jednak testy komputerowe wskazuj, e warto wybiera jako punkt startowy dla algorytmu cykl o moliwie małej wadze

102 12 Drzewa spinajce podstawowe definicje minimalne drzewa spinajce: algorytm Prima algorytm Kruskala

103 13 Drzewa spinajce Def. Niech G bdzie grafem spójnym o n wierzchołkach. Drzewo spinajce grafu G to dowolny jego n-wierzchołkowy acykliczny podgraf. Jeli G jest niespójny, to powyszy podgraf nazywamy lasem spinajcym. Def. Liczba cyklomatyczna grafu G to liczba krawdzi, których usunicie z G prowadzi do utworzenia drzewa (lasu) spinajcego i jest oznaczana symbolem γ(g). Przykłady γ(t) =, T drzewo, γ(l) =, L las, γ(u) = 1, U graf jednocykliczny, γ(k n ) = n (n 1)/2 n + 1, γ(w n ) = n 1.

104 14 Drzewa spinajce Tw. Dla dowolnego grafu G o k składowych spójnoci zachodzi γ(g) = m n + k. Dowód: Rozwamy najpierw przypadek, gdy G jest spójny. Wiadomo, e n wierzchołkowe drzewo ma n 1 krawdzi. Aby w grafie G znale podgraf bdcy drzewem spinajcym, usuwamy wszystkie krawdzie, z wyjtkiem tych n 1, co oznacza, e musimy usun m n + 1 krawdzi. Załómy teraz, e G nie jest spójny. Wówczas G = G 1... G k, dla pewnego k > 1. Moemy załoy, e kady podgraf G i jest spójny. Udowodnilimy powyej, e γ(g i ) = m i n i + 1, dla kadego i = 1,...,k, gdzie n i = V(G i ), m i = E(G i ). Dodajc równania stronami otrzymujemy: γ(g 1 ) γ(g k ) = (m m k ) (n n k ) + k = m n + k, co koczy dowód, gdy γ(g) = γ(g 1 ) γ(g k ).

105 15 Baza cykli Def Niech T bdzie lasem spinajcym grafu G. Fundamentalny zbiór cykli (baza cykli) jest to zbiór γ(g) rónych cykli grafu G taki, e kady cykl do niego nalecy powstał przez dodanie pewnej krawdzi ze zbioru E(G)\E(T). Przykład Dwa fundamentalne zbiory cykli pewnego grafu, uzyskane za pomoc rónych drzew spinajcych T 1 i T 2. G T 1 baza cykli dla T 1 T 2 baza cykli dla T 2

106 16 Minimalne drzewa spinajce Niech bdzie dany graf G. Zakładamy, e z kad krawdzi e i E(G) jest skojarzona pewna liczba nieujemna, bdca wag tej krawdzi. Rozwaamy problem szukania drzewa spinajcego którego suma wag krawdzi jest minimalna. Przykładem rozwizania dla tego problem jest algorytm Prima o złoonoci O(n 2 ). Procedure Prim( G, s ) begin T = ( { v i,v j }, {{v i,v j }} ), gdzie {v i,v j } jest krawdzi o najmniejszej wadze; while n(t) < n(g) do begin znajd najkrótsz krawd {u,v} tak, e u V(T) oraz v V(T); T := T {u,v}; end end

107 17 Minimalne drzewa spinajce Procedure Prim( G, s ) begin T = ( { v i,v j }, {{v i,v j }} ), gdzie {v i,v j } jest krawdzi o najmniejszej wadze; while n(t) < n(g) do begin znajd najkrótsz krawd {u,v} tak, e u V(T) oraz v V(T); T := T {u,v}; end end

108 18 Minimalne drzewa spinajce Algorytm Kruskala jest drugim przykładem efektywnego szukania minimalnego drzewa spinajcego. Złoono tego algorytmu to O(m log(m)). Procedure Kruskal( G, s ) begin posortuj krawdzie e 1,..., e m niemalejco wg wag; T = ; i := 1; j := ; repeat if e i nie tworzy cyklu w T then begin T := T {e i }; j := j + 1; end; i := i + 1; until j = n 1 end

Szukanie najkrótszych dróg z jednym ródłem

Szukanie 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ółowo

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

1) 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ółowo

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych.

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych. 206 Skojarzenia Najliczniejsze skojarzenia: grafy proste dwudzielne, dowolne grafy proste. Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych. 207 Definicje Def Zbiór

Bardziej szczegółowo

Wstp. Warto przepływu to

Wstp. 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ółowo

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. 1. Definicja problemu Wejcie: Graf spójny niezorientowany G =

Bardziej szczegółowo

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting. Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.. Oznaczenia i załoenia Oznaczenia G = - graf skierowany z funkcj wagi s wierzchołek ródłowy t wierzchołek

Bardziej szczegółowo

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

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

Bardziej szczegółowo

Kolorowanie wierzchołków

Kolorowanie wierzchołków 240 Kolorowanie wierzchołków Def. Niech G bdzie grafem prostym. Przez kolorowanie wierzchołków rozumiemy takie etykietowanie elementów V(G) liczbami naturalnymi, e ssiednie wierzchołki otrzymuj róne liczby

Bardziej szczegółowo

Temat: Algorytmy aproksymacyjne (przyblione) cz. I. Majc do rozwizania trudny obliczeniowo problem, moemy wybra jedno z dwóch nastpujcych podej:

Temat: Algorytmy aproksymacyjne (przyblione) cz. I. Majc do rozwizania trudny obliczeniowo problem, moemy wybra jedno z dwóch nastpujcych podej: Temat: Algorytmy aproksymacyjne (przyblione) cz. I. 1. Algorytmy aproksymacyjne Majc do rozwizania trudny obliczeniowo problem, moemy wybra jedno z dwóch nastpujcych podej: Zastosowa technik algorytmów

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

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Oznaczenia G = V, E - graf bez wag, gdzie V - zbiór wierzchołków, E- zbiór krawdzi V = n - liczba wierzchołków grafu G E = m

Bardziej szczegółowo

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający

Bardziej szczegółowo

oraz spełnia warunki: (*) dla wszystkich wierzchołków

oraz spełnia warunki: (*) dla wszystkich wierzchołków Temat: Problem najtaszego przepływu. Definicja problemu, przykład zastosowania. Algorytm Kleina. Algorytm Busackera Gowena. 1. Definicja problemu najtaszego przepływu Wejcie: Graf zorientowany G =

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

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

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

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

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. WYKŁAD : Teoria NP-zupełnoci. Problem decyzyjny naley do klasy P (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM. (przynaleno ta jest zachowana równie dla

Bardziej szczegółowo

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili

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

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

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. 1. Para najmniej odległych punktów WP: Dany jest n - elementowy zbiór punktów

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

Kolorowanie wierzchołków grafu

Kolorowanie wierzchołków grafu Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,...,

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /15 Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 14/15 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

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

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

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Podstawowe pojęcia i klasy grafów Wykład 1 Grafy nieskierowane Definicja Graf nieskierowany (graf) G = (V,E) jest to uporządkowana para składająca się z niepustego skończonego zbioru wierzchołków V oraz

Bardziej szczegółowo

E ' E G nazywamy krawędziowym zbiorem

E ' E G nazywamy krawędziowym zbiorem Niech G będzie grafem spójnym. Wierzchołek x nazywamy rozcinającym, jeśli G\{x} jest niespójny. Niech G będzie grafem spójnym. V ' V G nazywamy zbiorem rozcinającym jeśli G\V' jest niespójny Niech G będzie

Bardziej szczegółowo

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Algorytmy 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ółowo

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

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? DROGI i CYKLE EULERA w grafach Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? Czy można narysować podaną figurę nie odrywając ołówka od papieru

Bardziej szczegółowo

Temat: Algorytmy zachłanne

Temat: Algorytmy zachłanne Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymaln moliwo w nadziei, e doprowadzi

Bardziej szczegółowo

Gramatyki regularne i automaty skoczone

Gramatyki regularne i automaty skoczone Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja

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

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

Grafy. Graf ( graf ogólny) to para G( V, E), gdzie: Graf ( graf ogólny) to para G( V, E), gdzie: V jest zbiorem wierzchołków, ( czasami zwanymi węzłami lub punktami grafu) E jest rodziną ( być może powtarzających się) krawędzi, czyli jedno- i dwu- elementowych

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2012 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

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

6. Wstępne pojęcia teorii grafów 6. Wstępne pojęcia teorii grafów Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 6. Wstępne pojęcia teorii grafów zima 2016/2017

Bardziej szczegółowo

Temat: Algorytmy aproksymacyjne dla wybranych NP-trudnych problemów grafowych

Temat: Algorytmy aproksymacyjne dla wybranych NP-trudnych problemów grafowych Temat: Algorytmy aproksymacyjne dla wybranych NP-trudnych problemów grafowych 1. Problem komiwojaera Wejcie: Graf G = pełny, zorientowany z dodatnimi wagami; w - funkcja wag grafu Wyjcie: Najtaszy

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

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

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

c 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ółowo

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

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

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

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

Grafy 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ółowo

6.2. Baza i wymiar. V nazywamy baz-

6.2. Baza i wymiar. V nazywamy baz- 62 Baza i wymiar V nazywamy baz- Definicja 66 Niech V bdzie przestrzeni, liniow, nad cia/em F Podzbiór B przestrzeni V, je2eli: () B jest liniowo niezale2ny, (2) B jest generuj,cy, tzn lin(b) =V Przyk/ady:

Bardziej szczegółowo

Wykłady z Matematyki Dyskretnej

Wykłady z Matematyki Dyskretnej Wykłady z Matematyki Dyskretnej dla kierunku Informatyka dr Instytut Informatyki Politechnika Krakowska Wykłady na bazie materiałów: dra hab. Andrzeja Karafiata dr hab. Joanny Kołodziej, prof. PK Grafy

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

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty. !"! " #$%& '()#$$ &%$! #$ %$ &%$& &$&! %&'" )$$! *$$&%$! +,- +-.! $ Celem wiczenia jest zapoznanie studenta ze strukturami: lista, stos, drzewo oraz ich implementacja w jzyku ANSI C. Zrozumienie działania

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

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

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

Suma dwóch grafów. Zespolenie dwóch grafów Suma dwóch grafów G 1 = ((G 1 ), E(G 1 )) G 2 = ((G 2 ), E(G 2 )) (G 1 ) i (G 2 ) rozłączne Suma G 1 G 2 graf ze zbiorem wierzchołków (G 1 ) (G 2 ) i rodziną krawędzi E(G 1 ) E(G 2 ) G 1 G 2 G 1 G 2 Zespolenie

Bardziej szczegółowo

Opracowanie prof. J. Domsta 1

Opracowanie prof. J. Domsta 1 Opracowanie prof. J. Domsta 1 Algorytm FLEURY'ego: Twierdzenie 6.5 G-graf eulerowski. Wtedy cykl Eulera otrzymujemy nastepująco: a) Start w dowolnym wierzchołku b) Krawędzie w dowolnej kolejności po przebyciu

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

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

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

Złożoność obliczeniowa klasycznych problemów grafowych Złożoność obliczeniowa klasycznych problemów grafowych Oznaczenia: G graf, V liczba wierzchołków, E liczba krawędzi 1. Spójność grafu Graf jest spójny jeżeli istnieje ścieżka łącząca każdą parę jego wierzchołków.

Bardziej szczegółowo

Rys1 Rys 2 1. metoda analityczna. Rys 3 Oznaczamy prdy i spadki napi jak na powyszym rysunku. Moemy zapisa: (dla wzłów A i B)

Rys1 Rys 2 1. metoda analityczna. Rys 3 Oznaczamy prdy i spadki napi jak na powyszym rysunku. Moemy zapisa: (dla wzłów A i B) Zadanie Obliczy warto prdu I oraz napicie U na rezystancji nieliniowej R(I), której charakterystyka napiciowo-prdowa jest wyraona wzorem a) U=0.5I. Dane: E=0V R =Ω R =Ω Rys Rys. metoda analityczna Rys

Bardziej szczegółowo

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

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

Metodydowodzenia twierdzeń

Metodydowodzenia 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ółowo

Matematyka dyskretna - 5.Grafy.

Matematyka dyskretna - 5.Grafy. Matematyka dyskretna - 5.Grafy. W tym rozdziale zajmiemy się grafami. Są to wykresy zawierające rozmaite informacje, przedstawiające połączenia pomiędzy różnymi swoimi elementami. Algorytmy na nich oparte

Bardziej szczegółowo

Minimalne drzewa rozpinaj ce

Minimalne 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ółowo

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DRZEWA i LASY Drzewem nazywamy graf spójny nie zawierający cykli elementarnych. Lasem nazywamy graf nie zawierający cykli elementarnych. Przykłady drzew i lasów takie krawędzie są wykluczone drzewo las

Bardziej szczegółowo

Projektowanie algorytmów rekurencyjnych

Projektowanie algorytmów rekurencyjnych C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i

Bardziej szczegółowo

Nieklasyczne modele kolorowania grafów

Nieklasyczne modele kolorowania grafów 65 Nieklasycze modele kolorowaia grafów 66 Kolorowaie sprawiedliwe Def. Jeli wierzchołki grafu G moa podzieli a k takich zbiorów iezaleych C,...,C k, e C i C j dla wszystkich i,j,...,k, to mówimy, e G

Bardziej szczegółowo

Teoria grafów i jej zastosowania. 1 / 126

Teoria 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ółowo

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:. Temat: Geometria obliczeniowa, cz I. Podstawowe algorytmy geometryczne. Problem sprawdzania przynalenoci punktu do wielokta. Problem otoczki wypukłej algorytmy Grahama, i Jarvisa. 1. Oznaczenia Punkty

Bardziej szczegółowo

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Zadania 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ółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

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

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1B/14 Drogi w grafach Marszruta (trasa) w grafie G z wierzchołka w do wierzchołka u to skończony ciąg krawędzi w postaci. W skrócie

Bardziej szczegółowo

Zad. 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. 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ół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

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 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

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

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy

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

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie ZADANIE DOMOWE www.akademia.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź (tylko jedna jest prawdziwa). Pytanie 1 Drogę nazywamy

Bardziej szczegółowo

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

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 1 Podstawy teorii grafów Reprezentacje grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów

Bardziej szczegółowo

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

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

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

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1 Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1 Wyznaczy wektor sił i przemieszcze wzłowych dla układu elementów przedstawionego na rysunku poniej (rysunek nie jest w skali!).

Bardziej szczegółowo

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

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Algorytmy z powracaniem

Algorytmy z powracaniem Algorytmy z powracaniem Materiały Grafem nazywamy zbiór G = (V, E), gdzie: V jest zbiorem wierzchołków (ang. vertex) E jest zbiorem krawędzi (E można też określić jako podzbiór zbioru nieuporządkowanych

Bardziej szczegółowo

Zagadnienie najkrótszej drogi w sieci

Zagadnienie najkrótszej drogi w sieci L L Zagadnienie najkrótszej drogi w sieci 1 Rozważmy sieć, gdzie graf jest grafem skierowanym (digrafem) a jest funkcją określoną na zbiorze łuków. Wartość tej funkcji na łuku!"$#%'&, którą oznaczać będziemy

Bardziej szczegółowo

Wykład 4. Droga i cykl Eulera i Hamiltona

Wykład 4. Droga i cykl Eulera i Hamiltona Wykład 4. i Hamiltona Wykład 4. i Hamiltona 1 / 35 Grafy Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką

Bardziej szczegółowo

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

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

Metody dowodzenia twierdze«

Metody 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ół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

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

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

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

Problemy optymalizacyjne - zastosowania

Problemy 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ółowo

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykł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. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie

Bardziej szczegółowo

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna (imi i nazwisko uczestnika) (nazwa szkoły) Arkusz zawiera 6 zada. Zadania

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

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

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

Lab. 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ół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