Wykład 8 Drzewa

advertisement
Wykład 8
Drzewa
Definicja.
Drzewem nazywamy kaŜdy graf spójny nie zawierający cykli.
Graf niekoniecznie spójny, nie zawierający cykli (czyli graf, w którym kaŜda składowa jest drzewem)
nazywamy (niespodzianka!) lasem.
Definicja.
Wierzchołek stopnia 1 w drzewie nazywamy liściem.
Twierdzenie.
Następujące warunki są równowaŜne:
(1)
Graf G=(V,E) jest drzewem
(2)
Dla kaŜdych u,v∈V istnieje dokładnie jedna u-v droga w G i jest to droga prosta
(3)
G jest spójny i |V|=|E|+1
(4)
G jest acykliczny i |V|=|E|+1
(5)
G jest acykliczny i dla kaŜdych u,v∈V jeśli uv∉E to G+uv ma dokładnie jeden cykl
Dowód
(1)⇒(2) Weźmy dowolne wierzchołki u,v∈V. Jeśli istnieje u-v droga w G nie będąca drogą prostą to
G ma cykl (fragment drogi między dwoma wystąpieniami tego samego wierzchołka). Przypuśćmy, Ŝe
kaŜda u-v droga jest prosta i D=(d0,d1, ... ds) oraz P=(p0,p1, ... pr) są róŜnymi u-v drogami w G. Weźmy
najmniejsze k takie, Ŝe dk+1≠pk+1 i najmniejsze m>k takie, Ŝe dm∈V(P), czyli dm=pt dla pewnego t≤r.
Liczba k istnieje dlatego, Ŝe D≠P, a liczba m dlatego, Ŝe ds=pr=v. Ponadto s>k – inaczej droga D nie
byłaby prosta. Ciąg (dk,dk+1, ... dm=pt,pt-1, ... pk+1,pk=dk) jest cyklem w G, co przeczy acykliczności G.
(2)⇒(3) Spójność G jest oczywista. Graf spełniający (2) jest acykliczny a więc jest grafem trywialnym
lub posiada wierzchołek stopnia 1 (bo graf, w którym kaŜdy wierzchołek ma stopień co najmniej dwa
ma cykl). Warunek (3) udowodnimy przez indukcję ze względu na n=|V|. Dla n=1 i dla n=2 warunek
(3) jest oczywisty. RozwaŜmy graf G o n wierzchołkach, n>2. Graf G ma wierzchołek u stopnia 1. W
G-u kaŜde dwa wierzchołki łączy dokładnie jedna droga – ta sama, która łączyła je w G. Z załoŜenia
indukcyjnego |V(G-u)| = |E(G-u)|+1, czyli |V(G)|-1 = (|E(G)|-1)+1. Stąd |V| = |E|+1.
(3)⇒(4) Udowodnimy acykliczność G przez indukcję względem n=|V(G)|.Jeśli n=1 lub n=2 to nie ma
czego dowodzić. Przypuśćmy, Ŝe |V|=n>2. Wówczas G ma wierzchołek u stopnia 1, bo w przeciwnym
razie dla kaŜdego x∈V deg(x)≥2, czyli |E|=½Σdeg(x)≥½(2|V|)=|V|. RozwaŜmy graf G-u. PoniewaŜ u
nie jest wierzchołkiem wewnętrznym Ŝadnej drogi więc G-u jest spójny. Usunięcie u zmniejsza liczbę
wierzchołków i liczbę krawędzi o jeden, więc stwierdzamy, Ŝe graf G-u spełnia warunek (3), a więc z
załoŜenia indukcyjnego jest acykliczny. Dodanie do grafu acyklicznego wierzchołka stopnie 1 nie
powoduje pojawienia się cyklu, więc G jest acykliczny.
(4)⇒(5) Przypuśćmy, Ŝe G1,G2, ... ,Gk są składowymi G. KaŜda z nich jest drzewem, więc spełnia (3),
czyli |V(Gi)|=|E(Gi)|+1. Sumując te równości stronami otrzymujemy |V|=|E|+k. Na mocy (4) k=1 czyli
graf G jest spójny, a więc jest drzewem. Na mocy (2) kaŜde dwa nie sąsiadujące wierzchołki u i v w G
łączy dokładnie jedna droga. Droga ta wraz z krawędzią uv tworzy jedyny cykl w grafie G+uv, bo,
dzięki acykliczności G, kaŜdy cykl w G+uv zawiera krawędź uv.
(5)⇒(1) Musimy tylko wykazać spójność G. Weźmy dowolne u,v∈V. Jeśli uv∈E to koniec. Jeśli
uv∉E to w G+uv jest dokładnie jeden cykl. PoniewaŜ w G nie ma cykli, więc cykl ten zwiera krawędź
uv. Usuwając z niego uv otrzymujemy u-v drogę w G.
Wniosek
KaŜde nietrywialnie drzewo ma co najmniej dwa liście.
Dowód
Jeśli pewne nietrywialne drzewo T ma dokładnie jeden liść to
∑ deg(v ) ≥ 1 + 2(| V | −1)
= 1+2|E| >
v∈V
2|E|, wbrew twierdzeniu mówiącemu, Ŝe
∑ deg(v ) = 2 | E | . 
v∈V
Przypomnijmy, Ŝe podgraf H grafu G nazywamy podgrafem rozpinającym gdy V(H)=V(G).
Twierdzenie.
KaŜdy graf spójny ma podgraf rozpinający będący drzewem (tzw. drzewo rozpinające).
Dowód.
Jakie powinno być pierwsze zdanie w tym dowodzie Kochanie Ty Moje? Oczywiście: Weźmy dowolny
spójny graf G. Odtąd, dzieci, same wpisujcie w tabelkach odpowiedzi na pytania wujka Tomka.
Oznaczmy przez T maksymalny podgraf grafu A skąd wiesz, Ŝe taki podgraf T istnieje, Kochanie Ty
G będący drzewem.
Moje?
Jeśli V(T)≠V(G) to istnieje v∈V(T) sąsiadujący Dlaczego?
z pewnym u∈V(G)−V(T)
Wówczas graf T’ = (V(T)∪{u},E(T)∪{uv})
jest drzewem,
Dlaczego?
jest podgrafem G,
Dlaczego?
T’ jest właściwym podgrafem T sprzeczność.
Z czym?
Ćwiczenie. Przeprowadzić inny dowód tego twierdzenia zaczynając od zdania Weźmy maksymalny
acykliczny podgraf rozpinający w G.
Ćwiczenie. Przeprowadzić jeszcze inny dowód tego twierdzenia zaczynając od zdania Weźmy
minimalny spójny podgraf rozpinający w G.
Definicja.
Grafem waŜonym (siecią) nazywamy parę (G,k), gdzie G jest grafem a k jest funkcją, k:E(G)→R+,
zwaną funkcją kosztu lub wagą krawędzi.
Kosztem grafu nazywamy sumę kosztów jego krawędzi.
Problem. W spójnym grafie waŜonym znaleźć najtańsze drzewo rozpinające.
Rozwiązanie.
Algorytm Kruskala.
S=∅;
i=1;
while(istnieje krawędź e taka, Ŝe graf indukowany przez S∪{e} nie zawiera cyklu){
ei = najtańsza krawędź nie naleŜąca do S taka, Ŝe graf indukowany przez S∪{ei} nie zawiera
cyklu;
S=S∪{ei};
i=i+1;
}
return S;
Twierdzenie.
Niech S = { e1, e2, ... ,ek} oznacza zbiór krawędzi zwrócony przez powyŜszy algorytm Kruskala.
Wówczas GS=(V,S) jest najtańszym drzewem rozpinającym w (G,k).
Dowód.
Przeprowadzimy dowód niewprost.
GS jest drzewem rozpinającym w G.
Dlaczego?
Przypuśćmy, Ŝe istnieje drzewo rozpinające w
G, tańsze od GS.
Spośród wszystkich drzew rozpinających G
A dlaczego GT istnieje?
tańszych od GS wybieramy GT=(V,T), które
ma najwięcej krawędzi z S.
Dlaczego ten symbol ma sens, czyli dlaczego zbiór
Oznaczmy d=min{i:ei∈S ∧ ei∉T}
{i:ei∉T} ma element najmniejszy?
Graf GT+ed ma dokładnie jeden cykl C.
Dlaczego?
Istnieje krawędź f∈E(C)\S.
Dlaczego?
Graf indukowany przez {e1,e2, ... ,ed-1,f}
(czyli graf utworzony z tych krawędzi i ich
wierzchołków) nie zawiera cyklu.
k(f)≥k(ed)
Bo
Dlaczego? (odpowiedź na to pytanie to kluczowy
fragment tego dowodu)
a więc k(GT+ed-f)≤k(GT)<k(GS).
Dlaczego?
Koniec dowodu.
Dlaczego?
OBIECANKA. Dzieci, które samodzielnie przegryzą się przez ten dowód i udzielą poprawnych
odpowiedzi nie powinny mieć problemu z zaliczeniem przedmiotu MD. Pozostałe powinny. KaŜde
dziecko moŜe pokazać wujkowi swoje odpowiedzi i poprosić o ich ocenę.
Download