Algorytmika - wykªad 9
dr Anna Sasak-Oko«
Uniwersytet Marii Curie-Skªodowskiej w Lublinie
09.12.2019
Denicja
Jezeli w grae G (spójnym) istnieje zamkni¦ta droga prosta zawieraj¡ca wszystkie kraw¦dzie grafu, to tak¡ drog¦ nazywamy cyklem Eulera, a graf - grafem eulerowskim albo grafem Eulera.
Denicja
Je»eli w grae G istnieje droga prosta (nie koniecznie zamkni¦ta, zawieraj¡ca wszystkie kraw¦dzie grafu G, to tak¡ drog¦ nazywamy drog¡ Eulera, za± graf - grafem póªeulerowskim
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
W królewcu, na rzece Pregole s¡ dwie wyspy A i B poª¡czone ze sob¡, a tak»e z brzegami C i D za pomoc¡ 7 mostów. Nale»y wyruszy¢ z dowolnej cz¦±ci l¡dowej misata: A,b,c lub D, przej±¢
przez ka»dy z mostów dokªadnie jeden raz i powróci¢ do opunktu wyj±ciowego (bez przepªywania przez rzek¦).
Problem rozwi¡zany w 1736 przez szwajcarskiego matematyka Leonharda Eulera (1707-1783). zbudowaª on graf przedstawiony powy»ej przyporz¡dkowuj¡c obszarom l¡du wierzchoªki, a mostom kraw¦dzie. Nale»aªo teraz odpowiedzie¢ na pytanie: czy tak
otrzymany graf ma drog¦ zamkni¦t¡, która zawiera wszystkie
Lemat
Je»eli dla ka»dego wierzchoªka grafu G, deg(v)>2, dla v ∈ V , wówczas graf zawiera cykl.
Twierdzenie Eulera
Graf spójny ma cykl Eulera wwtedy gdy ka»dy wierzchoªek ma stopie« parzysty.
warunek dostateczny ← je»eli G ma wszystkie wierzchoªki stopnia parzystego, to ma cykl Eulera.
Tw. Eulera o drodze Eulera
Graf spójny maj¡cy dokªadnie dwa wierzchoªki stopnia
nieparzystego ma drog¦ Eulera. (która ma pocz¡tek i koniec w tych wierzchoªkach)
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Tw. Eulera dla grafów skierowanych
Graf skierowany jest grafem Eulera wwtedy, gdy dla dowolnego wierzchoªka v grafu, stopie« wej±ciowy jest równy stopniowi wyjsciowemu.
indeg(v) = outdeg(v)
Algorytm - faza I O(|E|)
Sprawd¹, czy dany graf posiada cykl lub ±cie»k¦ Eulera.
A. dla grafu nieskierowanego
start - dowolny wierzchoªek v0 o niezerowej liczbie s¡siadów dla v0 uruchom przej±cie DFS odwied¹ wszystkie wierzchoªki, do których istniej¡ w grae ±cie»ki z wierzchoªka startowego i.e. wyznacz spójn¡ skªadow¡.
w trakcie DFS zliczaj s¡siadów ka»dego wierzchoªka, zwiekszaj¡c licznik countN gdy liczba jest nieparzysta sprawd¹ czy po DFS istniej¡ nieodwiedzone wierzchoªki G maj¡ce s¡siadów. Je»eli tak G nie jest spójny (lub s¡
wierzchoªki bez przylegaj¡cych kraw¦dzi) zako«cz z wynikiem negatywnym
je»eli countN==0 jest cykl Eulera, countN==2 jest ±ciezka Eulera, w przeciwnym razie zako«cz z wynikiem negatywnym
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
B. dla grafu skierowanego przej±cie DFS które zlicza informacje o stopniach wej±ciowych i wyjsciowych wierzchoªków oraz werykuje spójno±¢ G
Je»eli G jest spójny to:
istnieje cykl Eulera je»eli wszystkie wierzchoªki posiadaj¡ równe stopnie wchodz¡ce i wychodz¡ce
istnieje sciezka Eulaera:
jeden wierzchoªek ma indeg(v)-outdeg(v)=1, oraz jeden wierzchoªek ma outeg(v)-indeg(v)=1, dla pozostaªych stopnie wejsciowe i wyj±ciowe s¡ równe
Alg. - faza II - Algorytm Fleury'ego
Mostem (bridge) nazywamy kraw¦d¹ grafu, której usuni¦cie zwieksza liczb¦ spójnych skªadowych.
Algorytm R.Tarjana - wyszukiwanie mostów w grae nieskierowanym (¢w.)
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Wybierz dowolny wierzchoªek startowy w grae o niezerowym stopniu.
Wybierz kraw¦d¹, która nie jest mostem (przej±cie przez most oznacza brak mo»liwo±ci powrotu do tego wierzchoªka, zatem je±li zostaªy w nim nieodwiedzone kraw¦dzie, to tych kraw¦dzi ju» by±my nie odwiedzili i cykl Eulera nie zostaªby znaleziony), chyba »e nie mamy innego wyboru, tzn. pozostaªa nam jedynie kraw¦d¹-most.
Zapami¦taj t¦ kraw¦d¹ na li±cie lub na stosie.
Przejd» wybran¡ kraw¦dzi¡ do kolejnego wierzchoªka grafu.
Przebyt¡ kraw¦d¹ usu« z grafu.
Powtórz procedur¦ wzgledem nowego wierzchoªka, a» zostan¡
przebyte wszystkie kraw¦dzie.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Alg. - faza II - Algorytm Hierholzera - 1873
Zauwa»yª on, »e cykl Eulera jest sum¡ cykli prostych o rozª¡cznych kraw¦dziach (takich, które nie przechodz¡ przez wspólne
kraw¦dzie).
Wybierz wierzchoªek w grae o niezerowym stopniu wychodz¡cym.
Od tego wierzchoªka znajd¹ cykl i zapamietaj na li±cie.
Wszystkie kraw¦dzie znalezionego cyklu usu« z grafu.
Maj¡c pierwszy cykl, w p¦tli przejd¹ jego kolejne wierzchoªki.
Dopóki dany wierzchoªek posiada kraw¦dzie wychodz¡ce, znajduj kolejny cykl, który zawiera ten wierzchoªek.
Kraw¦dzie nowego cyklu usu« z grafu, a sam cykl doª¡cz do listy dwukierunkowej w miejscu bie»¡cego wierzchoªka w ten sposób cykl zostaje wydªu»ony.
Procedur¦ powtarzaj do wyczerpania kraw¦dzi grafu.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Problem Chi«skiego Listonosza - Mei Ku Kwan 1962
Listonosz wychodz¡c z poczty musi obej±¢ wszystkie ulice w swoim rejonie i powróci¢ do budynku przechodz¡c jak najkrótsz¡ drog¦.
= w grae spójnym znale¹¢ drog¦ zamkni¦t¡ z min. liczb¡ kraw¦dzi (sum¡ wag), która zawiera ka»d¡ kraw¦d¹ co najmniej raz.
graf Eulerowski = cykl Eulera
graf póªeulerowski = droga Eulera + najkrótsza droga powrotna
inne grafy - problem trudny obliczeniowo, graf nalezy
uzupeªni¢ kopiami kraw¦dzi tak, aby uzyskac graf Eulerowski, przy zachowaniu min. kosztu cyklu - dorysowane kraw¦dzie wyznacza si¦ np. alg. wyznaczania maksymalnego przepªywu i najkrótszych dróg lub najkrótszych ±cie»ek i wyznaczania skojarzenia
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Ci¡g de Bruijna
Ci¡g de Bruijna rz¦du n to cykliczne ustawienie 2n bitów, takie »e ka»dy ci¡g n bitów wyst¦puje w tym cyklu dokªadnie jeden raz jako kolejnych n bitów.
np.0011 - ci¡g de Bruijna rz¦du 2 (np. 01 wyst¦puje tylko raz na pozycjach 2,3)
00010111 - ci¡g de Bruijna rz¦du 3
zastosowanie: szybkie generowanie ci¡gów binarnych dªugo±ci n, kryptograa, w neurobiologicznych i psychologicznych
eksperymentach sprawdzaj¡cych odpowied¹ na dany bodziec, szczególnie przydatne s¡ przy wykonywaniu funkcjonalnego magnetycznego rezonansu j¡drowego
Aby otrzyma¢ ci¡g de Bruijna rz¦du n rozwa»my graf skierowany G=(V,E).
Wierzchoªki grafu V = {0, 1}n−1 to zbiór wszystkich ci¡gów bitów dªugo±ci n − 1.
Dwa wierzchoªki u, v ∈ V tworz¡ kraw¦d¹ (u, v) ∈ E wtedy i tylko wtedy, gdy ostatnich (n − 2) bitów u jest takie samo jak pierwsze n −2 bitów v.
Kraw¦d¹ ta jest etykietowana ostatnim bitem v
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
wasno±ci:
Graf G jest spójny i posiada cykl Eulera
Etykiety ka»dej drogi dªugo±ci (n-1) tworz¡ nazw¦ ostatniego wierzchoªKa tej drogi
cykl Eulera ma 2n kraw¦dzi i przechodzi przez ka»dy wierzchoªek dwa razy
Etykiety cyklu Eulera tworz¡ ci¡g de Bruijna rz¦du n (*)Spróbuj wyznaczy¢ ci¡g de Bruijna rz¦du 4 i udowodni¢
powy»sze wªasno±ci.
Denicja
Droga Hamiltona nazywamy drog¦, która przechodzi przez kazdy wierzchoªek grafu dokªadnie jeden raz.
Denicja
Cyklem Hamiltona nazywamy cykl przechodz¡cy przez wszystkie wiezchoªki grafu
Graf posiadaj¡cy cykl Hamiltona nazywamy grafem
hamiltonowskim, a graf posiadaj¡cy tylko drog¦ Hamiltona - grafem póªhamiltonowskim.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
warunek konieczny istnienia cyklu Hamiltona Twierdzenie
Je»eli graf o n wierzchoªkach jest hamiltonowski, to posiada co najmniej n kraw¦dzi.
warunki wystarczaj¡ce istnienia cyklu Hamiltona Twierdzenie
Ka»dy graf peªny Knjest grafem Hamiltona.
Twierdzenie Ore 1950
Niech graf G=<V,E> b¦dzie grafem spójnym i niech |V|=n > 3 (tzn. G ma co najmniej 3 wierzchoªki). Je»eli deg(u) + deg(w) > n dla ka»dej pary wierzchoªków u, w ∈ V , które nie s¡ poª¡czone kraw¦dzi¡, to G jest grafem hamiltonowskim==
Twierdzenie Dirac 1952
Je»eli w grae prostym i spójnym G=<V,E> o n wierzchoªkach (n > 3) oraz stopie« kazdego wierzchoªka u ∈ V speªnia warunek deg (u) > 12n, to G jest grafem hamiltonowskim
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Je»eli w grae prostym i spójnym G o n wierzchoªkach jest co najmniej 12(n −1)(n − 2) + 2 kraw¦dzi, to graf G jest grafem hamiltonowskim.
cykl i droga Hamiltona w grafach dwudzielnych warunek konieczny
Twierdzenie
Niech G = (V1∪ V2, E ) b¦dzie grafem dwudzielnym:
Je±li G ma cykl Hamiltona, to |V1| = |V2| Jesli G ma droge Hamiltona, to ||V1| − |V2|| 6 1
Denicja
Dwa cykle s¡ rozª¡czne kraw¦dziowo, gdy ka»da kraw¦d¹ nale»y tylko do jednego cyklu w grae.
Twierdzenie
Graf peªny Kn zawiera [n−21] rozª¡cznych kraw¦dziowo cykli Hamiltona
w grae K5 mamy [5−12 ] =2 cykli w grae K4 mamy [4−12 ] = [112] =1 cykli
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Twierdzenie
Graf peªny Kn zawiera (n−21)! ró»nych cykli Hamiltona.
W grae K4 mamy (4−1)!2 =3 ró»ne cykle Hamiltona
W grae K5 mamy (5−1)!2 =12 cykli Hamiltona
W grae K20 mamy 19!2 =1017 ró»nych cykli Hamiltona
Algorytm dokªadny
problem NP-zupeªny
prosty algorytm rekurencyjny znajdowania wszystkich cykli i scie»ek Hamiltona posiada zªoózno±¢ O(n!)
startuj¡c z v0 przegl¡daj wierzchoªki zgodnie z alg DFS przetwarzany wierzchoªek umie±¢ na stosie
je»eli stos zawiera n wierzchoªków jest ±cie»ka Hamiltona, sprawd¹ czy jest cyklem, usu« ostatni wierchoªek ze stosu i wyjd¹ na wyzszy poziom rekurencji aby rozwa»a¢ inne ±cie»ki jezeli stos nie zawiera n wierzchoªków rekurencyjnie wywoªaj DFS dla wszystkich nieodwiedzonych s¡siadów, wierzchoªek usu« ze stosu i skasuj informacj¦ o jego odwiedzeniu, po czym wyjd¹ na wy»szy poziom rekurencji
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Problem Komiwoja»era
Komiwoja»er ma odwiedzi¢ kilka miast (ka»de dokªadnie raz) i powróci¢ do miasta, z którego wyruszyª przebywaj¡c ª¡cznie najkrótsz¡ (najta«sz¡) drog¦. znane s¡ odlegªo±ci (koszty) przejazdu miedzy ka»d¡ par¡ miast. Nale»y wyznaczy¢
komiwoja»erowi tras¦ przejazdu tak, aby mógª odiwedzi¢ ka»de miato dokªadnie jeden raz i caªkowita droga byªa mozliwie najkrótsza/najta«sza.
teoretycznie n-wierzchoªkowa siec peªna/ graf peªny, w którym nale»y znale¹¢ cykl Hamiltona
Teoretycznie problem komiwoja»era mo»na rozwi¡za¢ poprzez wyznaczenie 12(n −1)! cykli Hamiltona i wybranie tego, który ma najmniejsz¡ sum¦ wag. Ale dysponuj¡c komputerem sprawdzaj¡cym milion permutacji na sekund¦, dla n=20, czas oblicze« to okoªo 29330 lat.
Problem Komiwoja»era jest NP-zupeªny
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Do rozwi¡zania problemu mo»na wybra¢ jedn¡ z dwóch typów metod:
dokªadna np. metoda podziaªu i ogranicze«, która
wygeneruje dokªadne rozwi¡zanie ale w czasie wykªadniczym (generowanie kolejnych mo»liwych rozwi¡za« w formie drzewa, badaj¡c jego gaª¦zie rozwi¡zania nie speªniaj¡ce oszacowa«
rozwi¡zania optymalnego s¡ odrzucane)
przybli»ona (aproksymacyjna) generuje rozwi¡zanie bliskie optymalnemu ale dziaªa w czasie wielomianowym (szereg heurystyk)
Optymalizacja naturalna. Heurystyki przeszukiwa«
Heurystyka (gr. znale¹¢, odkry¢) to praktyczna, oparta na do±wiadczeniu reguªa post¦powania, która mo»e znacznie skróci¢
lub upro±ci¢ proces rozwi¡zywania rozwazanego problemu, gdy metoda rozwi¡zania nie jest znana lub jest zawiªa i czasochªonna.
Dla zada« z wieloma potencjalnymi rozwi¡zaniami, wa»ne jest wczesne odrzucenie nieobiecuj¡cyh kierunków poszukiwania → oszcz¦dno±¢ kosztów obliczeniowych, szybsze uzyskanie rozwi¡zania.
Metody heurystyczne pozwalaj¡ na znalezienie w akceptowalnym czasie przynajmniej przybli»onego rozwi¡zania porblemu, cho¢ nie gwarantuj¡ tego we wsystkich przpadkach.
Skuteczno±ci kroków heurystycznuch nie mo»na w peªni udowodni¢
teoretycznie, mo»na jedynie pokaza¢ do±wiadczalnie ich trafno±¢.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Algorytm NN
NN nearest neighbour algorytm zachªanny
W ka»dym kroku komiwoja»er wybiera najta«sz¡ dost¦pn¡ drog¦
Algorytm szybko generuje efektywnie krótk¡ tras¦. Dla N miast rozªo»onych losowo na pªaszczy¹nie ±rednio znajduje ±cie»k¦ o 25%
dro»sz¡ od optymalnej. Jednak»e istnieje szereg specycznych ustwie« miast, przy których ten algorytm zwraca najgorsz¡ ±cie»k¦.
Algorytmy mrówkowe, 1992 Marco Dorigo
Mrówki poruszaj¡ si¦ z mrowiska do ustalonego punktu (np.
miejsca z pozywieniem)
Wracaj¡c ka»da z nich przebywa dokªadnie t¦ sam¡ drog¦ w przeciwnym kierunku.
Ka»da z mrówek napotykaj¡c na swojej drodze rozgaª¦zienie dokonuje losowego wyboru drogi (na pocz¡tku
prawdopodobie«stwo wyboru ka»dej drogi jest takie samo) Mrówki przechodz¡c tras¦ pozostawiaj¡ za sob¡ pewn¡ ilo±¢
feromonu → w efekcie, z upªywem czasu krótsze drogi pokryte s¡ wi¦ksz¡ ilo±ci¡ feromonu.
Kolejne mrówki dokonuj¡ wyboru dróg losowo, ale z uwzglednieniem ilo±ci pozostawionego feromonu
W efekcie ko«cowym mrówki wybieraj¡ najkrótsz¡ z dróg.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Pojedyncza mrówka generuje swoj¡ ±cie»k¦ niezale»nie od swoich towarzyszek
Dla ka»dej mrówki generowane jest losowo miasto, z którego ma rozpocz¡¢ w¦drówk¦
Aby nie wraca¢ do ju» odwiedzonych wierzchoªków mrówka jest wyposa»ona w pami¦¢, w której przechowuje list¦
odwiedzonych wierzchoªków
WE: Graf peªny G=<N,E>, gdzie N={1, 2, ..., n} zbiór
wierzchoªków, E zbiór kraw¦dzi, dij dªugo±¢ kraw¦dzi (i, j) ∈ E.
W ka»dej iteracji t (1 6 t 6 tmax) algorytmu, k-ta mrówka (k=1,...,m) przechodzi przez graf buduj¡c cykl dªugo±ci n.
Je»eli w iteracji t k-ta mrówka znajduje si¦ w wierzchoªki i, prawdopodobie«stwo wyboru kraw¦dzi do wierzchoªka j okre±la wzór:
pijk(t) = Σ (τij(t))α(ηij)β
I ∈Nki
((τij(t))α(ηij)β)
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
pijk(t) = Σ (τij(t))α(ηij)β
I ∈Nk i
((τij(t))α(ηij)β)
gdzie:
τij(t) ilo±¢ feromonu w kraw¦dzi (i,j)
ηij warto±¢ heurystyczna okre±laj¡ca atrakcyjno±¢ wyboru kraw¦dzi (i,j) np d1ij
Nik lista nieodwiedzonych wierzchoªków s¡siednich do i
α, β parametry okreslaj¡ce odpowednio wpªyw pozostawionego feromonu i odlegªo±ci mi¦dzy miastami i oraz j na wyliczone prawdopodobie«stwo
Po przej±ciu grafu przez k-t¡ mrówk¦ ustalana jest ilo±¢ feromonu
∆τijk(t)jaki pozostawi ona na ka»dej kraw¦dzi (i,j) cyklu.
∆τijk(t) = LkQ(t)
gdzie Q jest tzw. wspóªczynnikiem dawki feromonu, a Lk(t) dªugo±ci znalezionej drogi.
Aby zapewni¢ zpominanie przez algorytm dªu»szych cykli uwzgl¦dnia si¦ zjawisko parowania feromonu. W efekcie po zko«czeniu iteracji (czyli pzej±ciu m mrówek) ustalana jest ostateczna ilo±¢ feromonu na poszczególnych kraw¦dziach, która b¦dzie wykorystana w nastepnej iteracji:
τij(t +1) = γτij(t) + ∆τij(t)
gdzie ∆τij(t) = Σmk=1∆τij(t), a γ odpowiada za wyparowanie feromonu
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
for t ← 1 to tmax do
for ka»da mrówka k=1,...,m do wybierz dowolne miasto
for ka»de nieodwiedzone miasto i do
wybierz miasto j z listy Nik zgodnie z pijk(t) for ka»da kraw¦d¹ (i,j) do
wyznacz przyrost ∆τijk(t)na drodze Tk(t) for ka»da kraw¦d¹ (i,j) do
przelicz ilo±¢ feromonu τij(t +1) = γτij(t) + ∆τij(t)
Hiperkostka
denicja
Graf prosty, którego wierzchoªkami s¡ wszystkie k-elementowe ci¡gi binarne i w którym kraw¦dzie ª¡cz¡ tylko te spo±ród ci¡gów, które ró»ni¡ si¦ dokªadnie jednym elementem, nazywamy k-kostk¡
(hiperkostk¡) i oznaczamy Hk
Hiperkostaka H1 skªada si¦ z dwóch wierzhoªków poª¡czonych kraw¦dzi¡
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Hiperkostk¦ H2 buduje si¦ z dwóch kostek H1. W pierwszej kostce dopisuje si¦ 0 na pocz¡tek etykiety ka»dego wierzchoªka, w drugiej
1. Nast¦pnie nale»y poª¡czy¢ kraw¦dziami odpowiadaj¡ce sobie wierzchoªki z obu kopii (0x z 1x). Analogicznie powstaj¡ kostki wy»szych stopni (Hk z dwóch kostek Hk−1)
Kod Graya
W rezultacie hiperkostka to graf Hk = (V , E ), gdzie V = {0, 1}k zawiera wszystkie ci¡gi bitów dªugo±ci k, a dwa wierzchoªki u, v ∈ V s¡ poª¡czone kraw¦dzi¡ wwtedy, gdy ró»ni¡ si¦ dokªadnie jednym bitem.
Lemat
Ka»da hiperkostka Hk zawiera drog¦ Hamiltona, zaczynaj¡c¡ si¦ w wierzchoªku 0k i ko«cz¡c¡ si¦ w wierzchoªku 10k−1.
(*) Dowód indukcyjny
Cykl Hamiltona w Hk tworzy tzw. KOD GRAYA. Jest to ci¡g wszystkich k-elementowych ci¡gów bitów, ka»dy wyst¦puje raz, ka»de dwa kolejne ró»ni¡ si¦ jednym bitem oraz ostatni ró»ni si¦
jednym bitem od pierwszego.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Problem rozgªaszania
Graf G=(V,E) mo»e przedstawia¢ sie¢ poª¡cze«.
WierzchoªKi s¡ agentami, a kraw¦dzie to ª¡cza, którymi agenci mog¡ si¦ komunikowa¢.
Wyobra¹my sobie, »e jeden agent posiada wiadomo±¢, któr¡ chce przekaza¢ wszystkim agentom w sieci. Co wi¦cej komunikacja odbywa si¦ synchronicznie w taktach. W ka»dym takcie ka»dy agent mo»e przekaza¢ wiadomo±¢ jednemu swojemu s¡siadowi.problem mo»na efektywnie rozwi¡za¢ je»eli graf jest hiperkostk¡.
przykªad dla H
3wierzchoªek 0=000 jest ¹ródªem wiadomo±ci
1 takt przekazuje j¡ do wierzchoªka 1 001. (zauwa» teraz znaj¡ j¡ wierzchoªki <2 H1)
2 takt 000 przekazuje wiadomo±¢ do 010(2), 001(1) do 011(3) (teraz znaj¡ j¡ wierzchoªKi <4 H2)
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
3 takt - 000 do 100(4), 001(1) do 101(5), 010(2) do 110(6), 011(3) do 111(7).
Tak wi¦c po trzech taktach wszystkie wierzchoªki H3 znaj¡
wiadomo±¢.
Protokóª: wiadomo±¢ ma wierzchoªek 0=0k.
Dla i=1 do k wykonuj: ka»dy wierzchoªek x < 2i −1 przekazuje do wierzchoªka x + 2i −1.
zbieranie wiadomo±ci
Chcemy do jednego wierzchoªka zebra¢ informacje od wszystkich wierzchoªków. Informacje nale»y przesyªa¢ w odwrotnym
kierunku, dodatkowo zakªadamy »e informacje mog¡ by¢ ª¡czone w pakiety i wierzchoªek mo»e w jednym takcie przesªa¢ caªy pakiet zawieraj¡cy kilka informacji.
Protokóª zbierania informacji w Hk
Dla ka»dego i=1 do k wykonuj:
ka»dy wierzchoªek postaci x = 0i −1σ, gdzie σ ∈ {0, 1}k−i przesyªa swój pakiet do wierzchoªka 0i −10σ
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
plotkowanie
Na pocz¡tku ka»dy wierzchoªek ma jak¡± wiadomo±¢ i chce j¡
rozesªa¢ do wszystkich innych wierzchoªków w grae.
Znaj¡c protokoªy do zbierania i rozsyªania wiadomo±ci, mo»emy zaprojektowa¢ protokóª plotkowania, który najpierw zbiera wszystkie informacje do jednego w¦zªa, a nastepnie rozsyªa je do wszystkich w¦zªów.
Badania podgrafów peªnych odnosz¡ si¦ do lat 1935 i odniesienia teorii Ramseya do grafów. Poj¦cie kliki pojawia si¦ dopiero w 1949, kiedy to podgrafy peªne zostaªy u»yte w sieciach socjalnych do modelowania klik ludzi którzy si¦ nawzajem znaj¡.
Uwaga: teoria Ramseya teoria zbiorów sko«czonych,zajmuje poszukiwaniem regularno±ci w przypadkowych nieuporz¡dkowanych obiektach, szuka odp. na pytania typu: ile elementów danej struktury musi zawiera¢ zbiór, aby zachodziªa okre±lona wªasno±¢.
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Denicja
Klik¡ nazywamy podgraf, w którym ka»de dwa wierzchoªki s¡
poª¡czone kraw¦dzi¡.
Denicja
Klik¦ nazywamy maksymaln¡ gdy nie da si¦ do niej doda¢
wierzchoªKa tak, aby razem z ni¡ równie» tworzyª klik¦.
Denicja
Klik¦ nazywamy najwi¦ksz¡ (najliczniejsz¡), je±li nie ma w grae kliki o wi¦kszej liczbie wierzchoªków.
Liczb¦ wierzchoªków najwi¦kszej kliki oznaczamy ω(G).
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Graf którego liczba chromatyczna jest równa rozmiarowi najwi¦kszej kliki χ(G) = ω(G), nazywamy GRAFEM DOSKONAYM.
Przykªadowe klasy:
grafy dwudzielne,grafy kraw¦dziowe,grafy odcinkowe,
Stwierdzenie, czy w grae istnieje klika o zadanym rozmiarze (problem kliki), jest jednym z klasycznych problemów NP-zupeªnych.
NP-zupeªno±¢ tego problemu wynika ªatwo z NP-zupeªno±ci problemu zbioru niezale»nego, poniewa» w grae istnieje klika o rozmiarze k wtedy i tylko wtedy, gdy w dopeªnieniu grafu istnieje zbiór niezale»ny o rozmiarze k.
Uwaga:Zbiór niezale»ny w grae G=(V,E) zbiór wierzchoªków V0 ⊆ V pomi¦dzy którymi nie ma »adnej kraw¦dzi.
Powstaªo wiele algorytmów wyszukuj¡cych kliki, np. Alg.
Brona-Kerboscha (niestety dziaªaj¡cy w czasie wykªadniczym), oraz takich które dziaªaj¡ w czasie wielomianowym ale tylko dla danej klasy grafów (np. doskonaªych)
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Alg. Brona-Kerboscha
Alg. rekurencyjny, WE trzy zbiory P,R,X P zbiór wierzchoªków do rozwa»enia == G
R zbiór wierzchoªków, które s¡ cz¦±ciowym wynikiem znajdowania kliki == 6 0
X zbiór wierzchoªków pomini¦tych == 6 0
ALG_BK(P,R,X):
Je±li P i X s¡ puste, to zbiór R zawiera maksymaln¡ klik¦ KONIEC Dla ka»dego wierzchoªka v ∈ P twórz zbiory:
N zbiór wszystkich s¡siadów wierzchoªka v R' R + v
P' P ∩ N (z P' zostan¡ usuni¦te wierzchoªki, które nie s¡
s¡siadami v)
X' X ∩ N (z X' zostan¡ usuni¦te wierzchoªki, które nie s¡
s¡siadami v)
Wywoªaj rekurencyjnie ALG_BK(P',R',X') P=P-v
X=X+v
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Ulepszenie == mniej wywoªa« rekurencyjnych:
Przed wej±ciem do p¦tli rozwijaj¡cej zbiór P utwórz sum¦ zbiorów P i X i znajd¹ w niej taki wierzchoªek u, który posiada najwi¦cej s¡siadów w zbiorze P.
Nast¦pnie zamiast iterowa¢ przez wierzchoªki w P iterujemy przez kolejne wierzchoªki ró»nicy zbiorów P i N(u), gdzie N(u) oznacza zbiór s¡siadów wierzchoªka u, który nazywamy piwotem.
Zbiór P N(u) zawiera mniej wierzchoªków, zatem liczba wywoªa«
rekurencyjnych spadnie. (*) dla przykªadu z obrazka z 52 na 12
dr Anna Sasak-Oko« Uniwersytet Marii Curie-Skªodowskiej w Lublinie
Co nale»y wiedzie¢?
denicje drogi i cyklu Eulera, wªasno±ci grafu Eulerowskiego algorytm Fleuryego i algorytm Hierholzera
charakterystyka problemu Chi«skiego Listonosza zasada tworzenia ci¡gu de Bruijna
denicja drogi i cyklu Hamiltona, wªasno±ci grafu Hamiltonowskiego
algorytm dokªadny znajdowania cykli i ±cie»ek Hamiltona charakterystyka problemu komiwoja»era, zasada dziaªania algorytmu mrówkowego dla cyklu Hamiltona
hiperkostka - denicja i zastosowania - kod Graya, problem rozgªaszania, zbierania i plotkowania
klika - denicja, wªasno±ci, zasada dziaªania alg.
Brona-Kerboscha