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