Spis treści - Matematyka dyskretna

Transkrypt

Spis treści - Matematyka dyskretna
Spis treści
Przedmowa
XI
Wprowadzenie
XIII
0.1
Czym jest matematyka dyskretna? . . . . . . . . . . . . . . . XIII
0.2
Podstawowa literatura . . . . . . . . . . . . . . . . . . . . . . XIV
1
2
3
Rekurencja
1.1
Wieże Hanoi . . . . . . . . . . . . . . . . . .
1.2
Notacja asymptotyczna . . . . . . . . . . . .
1.3
Liczby trójkątne . . . . . . . . . . . . . . . .
1.4
Liczby Fibonacciego . . . . . . . . . . . . .
1.5
Równanie charakterystyczne . . . . . . . . .
1.6
Rekurencja liniowa niejednorodna . . . . . .
1.7
Ruina gracza . . . . . . . . . . . . . . . . .
1.8
Szybkie mnożenie i rekurencje „dziel i rządź”
Ćwiczenia . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
1
1
7
10
11
19
23
27
34
42
.
.
.
.
.
.
.
.
.
.
47
48
51
55
57
58
62
65
65
67
71
Elementy rachunku prawdopodobieństwa
3.1
Prawdopodobieństwo dyskretne . . . . . . . . . . . . . . . .
3.2
Paradoks urodzin . . . . . . . . . . . . . . . . . . . . . . . .
3.3
Zasada włączania i wyłączania . . . . . . . . . . . . . . . . .
73
74
79
84
Kombinatoryka
2.1
Permutacje . . . . . . . . . .
2.2
Silnia . . . . . . . . . . . . .
2.3
Wariacje . . . . . . . . . . .
2.4
Permutacje z powtórzeniami
2.5
Kombinacje . . . . . . . . .
2.6
Współczynniki dwumianowe .
2.7
Współczynniki wielomianowe
2.8
Zasada szufladkowa . . . . .
2.9
Układanie domina . . . . . .
Ćwiczenia . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VIII
Spis treści
3.4
Szaliki kibiców Korony Kielce . .
3.5
Problem sadowienia gości . . . .
3.6
Prawdopodobieństwo warunkowe
3.7
Twierdzenie Bayesa . . . . . . .
Ćwiczenia . . . . . . . . . . . . . . . . .
4
5
6
. . .
. . .
. .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
87
91
94
95
98
Więcej kombinatoryki
4.1
Grupa permutacji . . . . . . . . . . . . . . . . . . . . . . .
4.2
Liczby Stirlinga . . . . . . . . . . . . . . . . . . . . . . . .
4.3
Liczby Bella . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4
Triangulacja wielokąta i liczby Catalana . . . . . . . . . . .
4.5
Partycje liczb . . . . . . . . . . . . . . . . . . . . . . . . .
4.6
Kompendium najczęstszych problemów kombinatorycznych
Ćwiczenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
101
101
103
107
110
113
121
122
Grafy
5.1
Spacer Eulera . . . . . . . . . . .
5.2
Grafy Hamiltona . . . . . . . . . .
5.3
Kalejdoskop grafów . . . . . . . .
5.4
Izomorfizm grafów . . . . . . . . .
5.5
Grafy planarne . . . . . . . . . .
5.6
Ile jest grafów? . . . . . . . . . .
5.7
Przeszukiwanie grafów . . . . . . .
5.8
Grafy z wagami . . . . . . . . . .
5.9
Jeszcze o wieżach Hanoi . . . . .
5.10 Drzewo Steinera . . . . . . . . . .
5.11 „Mały świat” . . . . . . . . . . . .
5.12 Kolorowanie wierzchołkowe grafów
5.13 Kolorowanie krawędziowe grafów .
5.14 Liczby Ramseya . . . . . . . . . .
5.15 Kojarzenie małżeństw . . . . . . .
5.16 Drzewa etykietowane . . . . . . .
5.17 Notacja polska . . . . . . . . . . .
5.18 Sieci zdarzeń . . . . . . . . . . . .
5.19 Przepływy w sieciach . . . . . . .
Ćwiczenia . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
125
127
139
142
144
146
151
152
155
164
166
173
176
185
188
189
192
197
199
202
208
.
.
.
.
.
.
213
. 213
. 215
. 218
. 223
. 224
. 230
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Algorytmy
6.1
Czym jest algorytm . . . . . . . . . . . . . . .
6.2
Automaty skończone . . . . . . . . . . . . . .
6.3
Maszyna Turinga . . . . . . . . . . . . . . . .
6.4
Problem 196 . . . . . . . . . . . . . . . . . . .
6.5
Lodziarz z Pińczowa i algorytm genetyczny . .
6.6
Klasyfikacja złożoności problemów decyzyjnych
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Spis treści
IX
Ćwiczenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7
Wskazówki i odpowiedzi do
7.1
Rozdział 1 . . . . . . .
7.2
Rozdział 2 . . . . . . .
7.3
Rozdział 3 . . . . . . .
7.4
Rozdział 4 . . . . . . .
7.5
Rozdział 5 . . . . . . .
7.6
Rozdział 6 . . . . . . .
ćwiczeń
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
239
. 239
. 249
. 254
. 261
. 266
. 272
Bibliografia
273
Skorowidz
277
Przedmowa
Niniejsza książka, przeznaczona dla studentów informatyki oraz wykładowców i prowadzących ćwiczenia, przedstawia najważniejsze i najpotrzebniejsze zagadnienia matematyki dyskretnej, koncentrując się na rekurencji, zaawansowanej
kombinatoryce i klasycznym rachunku prawdopodobieństwa, grafach i algorytmach na grafach oraz sieciach, a także na wybranych elementach teorii algorytmów i ich złożoności. Ambicją autora jest ukazanie istoty tłumaczonego problemu w powiązaniu z elementarnym przeprowadzeniem początkującego studenta,
po dzisiejszej szkole średniej zazwyczaj dość słabo obytego z technikami matematycznymi, poprzez szczegóły rachunkowe. Preferowaną metodą dydaktyczną
jest, w miarę możliwości, ścieżka od szczegółu do ogółu: najpierw ukazywany
i rozwiązywany jest pewien typowy problem z danego działu, a następnie przedstawiana jest ogólna teoria z definicjami, twierdzeniami, wnioskami, przykładami i uogólnieniami. W ten sposób wykładana abstrakcja znajduje wcześniejsze
ugruntowanie w bardziej intuicyjnym przykładzie „z życia”, co powinno ułatwić
zrozumienie i docenienie praktycznego znaczenia wykładanego materiału. Niemniej, niektóre problemy, których wykład nie unika, łatwe nie są i należy przez
nie mozolnie przebrnąć z kartką i ołówkiem w zaciszu domowym. Zgodnie z maksymą „uczyć bawiąc” wiele zagadnień ma charakter rekreacyjny, co rekompensuje
włożony trud w wymagających i może mniej atrakcyjnych, choć ważnych, częściach wykładu. Przy całym ukierunkowaniu na przystępność, wykład dotyczy
matematyki i jej konkretnych zastosowań, zatem w jego śledzeniu niezbędna jest
stosowna koncentracja i doza samozaparcia.
Wykład przeznaczony jest dla studentów pierwszego roku informatyki, wobec czego wymagana wiedza matematyczna niezbędna do jego śledzenia nie wykracza w zasadzie poza podstawowy program szkoły średniej. Warto jednak zawczasu przypomnieć sobie ten materiał z podręczników szkolnych, w szczególności jego część dyskretną: podstawy logiki, teorii mnogości, kombinatoryki i rachunku prawdopodobieństwa. Materiał zahacza też nieco o zazwyczaj biegnące
równolegle lub z wyprzedzeniem standardowe wykłady algebry i analizy matematycznej, w szczególności używa elementarnej znajomości funkcji, układów
równań liniowych, macierzy, ciągów i szeregów, obliczania granic, a także pewnych elementów rachunku różniczkowego i całkowego, jak rozwinięcie Taylora,
całka gaussowska itp.
XII
Przedmowa
Zadaniem wykładu, oprócz przekazu stosownej porcji wiedzy, aparatu pojęciowego i typowych technik analizowania problemów matematyki dyskretnej, jest
również nauczenie logicznego myślenia, „kombinowania”, sprytu matematycznego.
Dlatego też na końcu każdego rozdziału podane są niekoniecznie łatwe problemy,
mające na celu wciągnięcie studenta w tę pasjonującą matematykę. Wiele z tych
zadań wymaga pomysłu, a ich rozwiązywanie częstokroć stawia na równi studenta i profesora, z tą jedyną różnicą, że profesor miał już okazję dłużej myśleć
nad podobnymi zagadnieniami w swojej karierze! Wskazówki bądź rozwiązania
trudniejszych zadań zawarte są na końcu książki.
I jeszcze jedno. Studenci, pamiętajcie:
Pytania nie są niedyskretne, odpowiedzi czasem tak.
Oscar Wilde
Książka jest pisemną wersją wykładów Matematyka dyskretna, wygłoszonych przez autora dla studentów pierwszego roku informatyki na Wydziale
Matematyczno-Przyrodniczym Uniwersytetu Jana Kochanowskiego w Kielcach
w latach 2005–2014.
Autor pragnie podziękować dr. Przemysławowi Kościkowi oraz studentom
informatyki Uniwersytetu Jana Kochanowskiego w Kielcach za uwagi i korektę
tekstu.
166
Rozdział 5. Grafy
Rysunek 5.32: Przykładowe euklidesowe drzewo Steinera. Ciemne punkty oznaczają oryginalne
wierzchołki grafu (studzienki naftowe), a jaśniejsze punkty wierzchołki dodane (trójniki)
ścieżki między skrajnymi wierzchołkami grafu Hanoi. W tym celu można zastosować np. algorytm 5.6, ale ponieważ złożoność tego algorytmu rośnie z kwadratem
liczby wierzchołków, czyli w naszym przypadku jak Θ(9n ), procedura jest dużo
wolniejsza niż złożoność Θ(2n ) optymalnego algorytmu Hanoi 1.1. Widzimy tu
więc namacalnie praktyczną rolę posiadania algorytmu optymalnego dla danego
problemu. Nie zawsze jednak jesteśmy w takiej komfortowej sytuacji.
Uogólnienie problemu Wież Hanoi na przypadek czterech prętów (tzw. łamigłówka Reve’a, zob. zad. 5.13) prowadzi do grafu w naturalny sposób reprezentowalnego w trzech wymiarach przestrzennych. Okazuje się, że nie jest to tzw.
piramida Sierpińskiego (uogólnienie trójkąta Sierpińskiego na trzy wymiary), ale
dużo bardziej skomplikowany obiekt. Graf zawiera bowiem znacznie więcej połączeń między stanami niż piramida Sierpińskiego i ten fakt czyni jego analizę
dramatycznie bardziej skomplikowanym zadaniem. Dla dużych n problem znalezienia najkrótszej ścieżki z narożnika do narożnika dla tego grafu jest trudny.
Możemy go oczywiście rozwiązać, stosując np. algorytm Dijkstry, ale dla dużego
n jest to bardzo czasochłonne. Istnieje nieudowodniona hipoteza o optymalnym
algorytmie dla łamigłówki Reve’a, sprawdzona komputerowo do n ∼ 30 [42].
5.10
Drzewo Steinera
Rozważmy następujący problem nafciarza z Teksasu: n studzienek pompujących
ropę naftową należy połączyć rurami w taki sposób, aby ich sumaryczna długość była jak najmniejsza. Rury możemy prowadzić dowolnie, co więcej, możemy je łączyć/rozgałęziać trójnikami. Koszt jednostki długości wszystkich rur
jest jednakowy. Zagadnienie jest istotnie różne od opisanego wcześniej problemu
znajdowania minimalnego drzewa spinającego, ponieważ łączenie rur powoduje
powstawanie dodatkowych wierzchołków, których położenie jest optymalizowane.
Ilustracja przedstawiona jest na rys. 5.32. Ciemne punkty oznaczają oryginalne
wierzchołki grafu, odpowiadające położeniom studzienek naftowych, a jaśniejsze
punkty oznaczają wierzchołki dodane, czyli połączenia rur za pomocą trójników.
5.10. Drzewo Steinera
167
Zagadnienie nosi nazwę problemu drzewa Steinera20 . Sformułowanie matematyczne jest następujące:
Def. 5.34 (euklidesowe drzewo Steinera). Niech waga krawędzi będzie równa
odległości euklidesowej wierzchołków. Mamy n oryginalnych wierzchołków o ustalonych położeniach na płaszczyźnie. W jaki sposób rozmieścić pomocnicze wierzchołki, zwane wierzchołkami Steinera, i jak dobrać krawędzie, aby znaleźć minimalne drzewo spinające grafu zawierającego wierzchołki ustalone i pomocnicze.
Rozważa się też uogólnienia problemu na inne metryki oraz na przypadek trójwymiarowy. Problem znalezienia minimalnego drzewa Steinera jest trudny21 (patrz
rozdz. 6.6). Ze względu na jego duże znaczenie praktyczne w zagadnieniach optymalizacyjnych jest przedmiotem intensywnych badań algorytmicznych.
Rozważmy na początek najprostszą sytuację, gdy mamy tylko trzy oryginalne wierzchołki grafu. Problem sprowadza się więc do znalezienia punktu na
płaszczyźnie, dla którego suma odległości od trzech wierzchołków trójkąta jest
minimalna. To geometryczne zagadnienie zostało postawione przez Fermata i
rozwiązane w 1640 r. przez Torricelliego22 oraz niezależnie przez innych współczesnych mu matematyków. Szukany punkt Torricelliego jest wierzchołkiem Steinera
dla przypadku grafu o trzech oryginalnych wierzchołkach.
Zamiast przytaczać skądinąd eleganckie geometryczne rozważania siedemnastowiecznych matematyków, w celu rozwiązania problemu Fermata posłużymy
się prawami mechaniki i skonstruujemy komputer analogowy, który w zadziwiająco prosty sposób znajdzie optymalne rozwiązanie. Komputer analogowy to urządzenie, które wykonuje obliczenia nie poprzez działania na liczbach, ale dzięki
zastosowaniu w sprytny sposób elementów mechanicznych, elektronicznych itp.
Oto nasz komputer rozwiązujący problem Fermata (podobną maszynkę zaproponowali Pick23 i Pólya24 , zob. [43]):
Alg. 5.9 (komputer analogowy dla problemu Fermata).
1. Wywierć wiertarką w stole trzy otwory w miejscach odpowiadającym wierzchołkom trójkąta.
2. Przewlecz przez otwory trzy kawałki nici i zwiąż je w jednym punkcie nad
stołem (wygodniej jest przewlec jeden kawałek nici przez otwory 1 i 2, i dowiązać doń kawałek przechodzący przez otwór 3).
3. Pod stołem przywiąż do każdej nici ciężarek o takiej samej wadze tak, aby
mógł luźno zwisać.
Jakob Steiner (1796–1863), szwajcarski matematyk.
Należy do klasy złożoności NP.
22 Evangelista Torricelli (1608–1647), włoski fizyk i matematyk, skonstruował barometr rtęciowy.
23 Georg Alexander Pick (1859-1942), austriacki matematyk.
24 George Pólya (1887-1985), węgierski matematyk, istotnie przyczynił się do rozwoju teorii
liczb, kombinatoryki i rachunku prawdopodobieństwa.
20
21
168
Rozdział 5. Grafy
Rysunek 5.33: Możliwe sytuacje dla rozwiązania problemu Fermata: punkt Torricelliego (jasny
kolor) jest w innym położeniu niż wierzchołki trójkąta (lewa strona) lub pokrywa się z położeniem jednego z wierzchołków trójkąta
4. Układ ustawi się w położeniu równowagi. Punkt związania nici jest punktem
Torricelliego!
Dlaczego to działa? Z mechaniki wiemy, że układ dąży do stanu równowagi,
w którym energia potencjalna jest jak najmniejsza. Dla jednego ciała wielkość
ta równa się iloczynowi jego masy i wysokości ponad ustalonym poziomem (np.
podłogi). Dla kilku ciał energia potencjalna się dodaje. W naszym przypadku
wynosi więc
mh1 + mh2 + mh3 = m(h1 + h2 + h3 ),
gdzie m jest masą każdego ciężarka, a hi odległością i-tego ciężarka od podłogi.
Tak więc suma odległości od podłogi, h1 +h2 +h3 , osiąga w równowadze minimalną wartość. Wówczas sumaryczna długość nici pod stołem jest jak największa,
a tym samym na stole jak najmniejsza. A o to właśnie chodzi w znajdowaniu
drzewa Steinera!
Przy wykonywaniu algorytmu 5.9, w zależności od tego jak ulokowane są
wierzchołki trójkąta, możliwe są dwie sytuacje: położenie punktu Torricelliego
będzie inne niż położenia wierzchołków trójkąta lub będzie się pokrywać z którymś z nich (rys. 5.33). Posłużmy się teraz dalej prawami mechaniki i dorysujmy
siły działające na punkt związania nici. Ponieważ punkt ten jest w spoczynku,
siły nań działające muszą się równoważyć. Wartość każdej z tych sił jest taka
sama, gdyż równa się ciężarowi uwiązanego do nici ciężarka, a wszystkie ciężarki
są jednakowe. Aby doszło do zrównoważenia trzech sił o jednakowej wartości,
kąt między nimi musi wynosić 120o25 . Warunek ten nosi nazwę warunku kąta.
Zauważmy też, że aby mogła zajść sytuacja z lewej strony rys. 5.34, wszystkie
kąty rozważanego trójkąta muszą być mniejsze od 120o. Jeśli tak nie jest (prawa
strona rys. 5.34), wówczas punkt Torricelliego pokrywa się z tym wierzchołkiem
trójkąta, w którym kąt jest większy od 120o .
Wyprowadziliśmy więc następujące twierdzenie dla problemu Fermata:
Dla nieobeznanych ze szkolną fizyką, siły dodajemy jak wektory. Aby suma trzech wektorów o równej długości wyniosła zero, kąt między nimi musi wynosić 120 o .
25
5.10. Drzewo Steinera
169
Rysunek 5.34: To samo, co na rys. 5.33, z dorysowanymi siłami. W sytuacji z lewej strony
kąty między siłami wynoszą 120o . Na rysunku po prawej stronie mniejsza wartość trzeciej siły
wynika z oddziaływania nici z otworem w stole
Tw. 5.12 (warunek kąta dla problemu Fermata). Jeśli wszystkie katy trójkąta są mniejsze niż 120o, wówczas punkt Torricelliego jest w takim położeniu, że
odcinki łączące go z wierzchołkami trójkąta tworzą kąty 120 o. Jeśli jeden z kątów
trójkąta jest większy niż 120o , wtedy punkt Torricelliego pokrywa się z wierzchołkiem tego kąta.
Teraz przejdźmy do ogólnego problemu Steinera o n oryginalnych wierzchołkach. Dodatkową komplikacją w stosunku do przeanalizowanego przypadku z n = 3 jest możliwość różnych topologii połączeń. Zilustrowane jest to na
rys. 5.35. Dwa górne rysunki pokazują optymalne rozwiązania dla dwóch topologii, gdzie krawędzie się nie krzyżują. Liczby na rysunkach wskazują długość
uzyskanego drzewa Steinera. W dolnej części rysunku ukazana jest sytuacja topologii, gdzie krawędzie się krzyżują. W tym przypadku optymalne rozwiązanie
(proces dochodzenia do niego jest schematycznie zaznaczony strzałkami od lewej
do prawej strony) uzyskane jest dla przekrywających się wierzchołków Steinera.
Natomiast najlepszym rozwiązaniem dla rozważanego przykładu jest topologia
z górnej prawej części rysunku. Tak więc mamy tu de facto dwa problemy: znaleźć wszystkie topologie, oraz dla każdej topologii znaleźć optymalne położenia
wierzchołków Steinera.
Podamy teraz użyteczne fakty dotyczące problemu Steinera o n oryginalnych
wierzchołkach. Dla prostoty zliczania traktujemy pokrywające się wierzchołki
Steinera jako oddzielne wierzchołki połączone krawędzią o długości 0. Zauważmy też, że wierzchołki oryginalne są liśćmi drzewa Steinera oraz że wierzchołki
Steinera mają stopień 3.
Tw. 5.13. Drzewo Steinera o n oryginalnych wierzchołkach ma n − 2 wierzchołków Steinera, 2n − 3 krawędzi oraz tn = (2n − 5)!! możliwych topologii.
170
Rozdział 5. Grafy
Dowód: Dowód jest indukcyjny. Teza zachodzi dla n = 3, co widzimy z lewej
części rys. 5.33. Następnie zakładamy, że twierdzenie zachodzi dla n − 1 oryginalnych wierzchołków. W kroku indukcyjnym dodajemy parę wierzchołek oryginalny – wierzchołek Steinera, połączone krawędzią. W oczywisty sposób liczba
wierzchołków Steinera wzrasta o 1, a liczba krawędzi o 2, bo jedna krawędź została przecięta. To dowodzi dwóch pierwszych części twierdzenia, pozostaje wzór
na liczbę topologii. Nowy wierzchołek Steinera możemy umieścić na dowolnej
z 2n − 5 krawędzi (zob. rys. 5.36 i 5.37). Tak wiec tn = (2n − 5)tn−1 i liczba
topologii wynosi (2n − 5) · (2n − 7) . . . 3 · 1.
Możemy teraz przystąpić do konstrukcji komputera analogowego dla ogólnego problemu drzewa Steinera. W porównaniu z algorytmem 5.9 dla n = 3
mamy tu dwie różnice: musimy rozważyć różne topologie, ponadto nie możemy
wiązać nici na stałe, bo uniemożliwiłoby to zmianę odległości między punktami
Steinera. Postępowanie jest następujące:
Alg. 5.10 (komputer analogowy dla problemu Steinera).
1. Przygotuj n jednakowych ciężarków.
2. Wywierć wiertarką w stole otwory w miejscach odpowiadającym oryginalnym
wierzchołkom grafu.
3. Przewlecz przez dowolne dwa otwory nić, pod stołem przywiąż do obu końców
ciężarki.
2.36877
2.26519
2.40672
Rysunek 5.35: Różne topologie połączeń dla problemu Steinera o czterech oryginalnych wierzchołkach. Liczby ukazują otrzymaną długość drzewa Steinera dla danej topologii
5.10. Drzewo Steinera
171
Rysunek 5.36: Ilustracja kroku indukcyjnego przy zliczaniu topologii dla n = 4. Nowy wierzchołek Steinera można umieścić na każdej krawędzi grafu o n = 3, tj. na (2n − 5)!! = 3 sposoby
4. Do nici na stole przywiąż za pomocą pętelki kolejną nić (zob. lewa strona
rys. 5.38) w taki sposób, aby mogła się luźno przesuwać. Jej koniec wpuść
do niezajętego otworu i pod stołem przywiąż ciężarek (zamiast pętelek można
też użyć spinaczy jako haczyków).
5. Powtórz poprzedni krok n − 3 razy, tak aby przez każdy otwór przechodziła
jedna nić.
6. Dzięki działaniu sił grawitacji na ciężarki układ ustawi się w położeniu równowagi. Zanotuj sumaryczną długość drzewa Steinera L.
Rysunek 5.37: To samo, co na rys. 5.36 dla n = 5, dającego 5!! = 15 topologii. Grafy w każdym
wierszu utworzone są poprzez dodanie wierzchołka Steinera na krawędziach jednego z grafów
z rys. 5.36
172
Rozdział 5. Grafy
2.76486
2.35878
Rysunek 5.38: Sposób wiązania nici dla wybranej topologii (lewa strona) oraz wynik rachunku
wykonanego przez komputer analogowy (prawa strona). Liczba na rysunku podaje sumaryczną długość drzewa. Górna część: topologia z drugiego wiersza i drugiej kolumny rys. 5.36,
dolna część: topologia z drugiego wiersza i pierwszej kolumny rys. 5.36, dająca rozwiązanie
optymalne
7. Powtórz kroki 3-6 dla każdej z (2n − 5)!! topologii (to jest uciążliwa część
tego algorytmu!).
8. Przypadek z najmniejszą wartością L jest optymalnym rozwiązaniem problemu Steinera. Punkty połączenia nici ustawione są w wierzchołkach Steinera.
Przykład działania algorytmu dla n = 5 przedstawiony jest na rys. 5.38. W górnej części rysunku rozważona jest topologia z drugiego wiersza i drugiej kolumny
rys. 5.36. Po lewej stronie pokazany jest sposób powiązania nici z pętelkami
umożliwiającymi zmianę wzajemnych odległości między punktami Steinera. Po
uruchomieniu komputera układ ustawi się w położeniu równowagi, jak w prawej
górnej części rysunku. W rozważanej topologii dwa wierzchołki Steinera przekrywają się. Liczba na rysunku wskazuje sumaryczną długość drzewa Steinera.
Przypadek topologii z górnej części rysunku nie jest optymalny. Dla topologii
z drugiego wiersza i pierwszej kolumny rys. 5.36 ta długość jest krótsza, co ukazane jest w dolnej części rys. 5.38. Sprawdziwszy 15 topologii, przekonujemy się,
że to rozwiązanie jest istotnie optymalne. Można ogólnie pokazać, że jeśli dwa
punkty Steinera pokrywają się, to rozwiązanie z tą topologią nie jest optymalne.
5.11. „Mały świat”
173
Ze względu na konieczność rozważania wielu topologii, nasz komputer analogowy nie jest zbyt praktyczny w zastosowaniu dla większych wartości n niż,
powiedzmy, 6. Jest jednak bardzo użyteczny dla przeprowadzenia ogólnych rozważań. Na rys. 5.38 widzimy, że nici wokół wierzchołków Steinera nieprzekrywających się z innymi wierzchołkami tworzą kąty 120o. Wynika to z zasad mechaniki,
przy czym dyskusja jest analogiczna jak w przypadku z rys. 5.34. Mamy więc
następujące uogólnienie Tw. 5.12:
Tw. 5.14 (warunek kąta dla problemu Steinera). W drzewie Steinera
krawędzie wychodzące z wierzchołków Steinera nieprzekrywających się z innymi
wierzchołkami tworzą kąty 120o . Jeśli punkt Steinera pokrywa się z wierzchołkiem
oryginalnym, to kąt między wychodzącymi zeń krawędziami jest większy od 120 o .
Jako ciekawostkę wspomnimy inny komputer analogowy stosowany do rozwiązywania problemu Steinera, który używa baniek mydlanych [44]! Wykorzystane jest tu zjawisko napięcia powierzchniowego. Urządzenie składa się z dwóch
identycznych równoległych przeźroczystych płyt (np. z pleksi), w których w miejscach odpowiadających oryginalnym wierzchołkom grafu przewiercone są otwory,
a w nich umocowane są (prostopadle do płyt) pręty. Całość urządzenia zanurza
się w roztworze mydła. Po wyciągnięciu między prętami naciągnięte są błony mydlane. Miejsca styku błon z płaszczyzną płyty układają się w krawędzie grafu.
Widzimy, że tworzą się również wierzchołki Steinera, odpowiadające połączeniom błon mydlanych. Napięcie powierzchniowe działa analogicznie do nici z ciężarkami z opisanego wyżej mechanicznego komputera analogowego. Dąży ono
do zminimalizowania całkowitej powierzchni błony mydlanej, co przy ustalonej
odległości między płytami jest równoważne minimalizacji długości powstałego
drzewa. Podobnie jak dla nici w wersji mechanicznej, równowaga sił prowadzi
do połączenia błon pod kątem 120o w izolowanych wierzchołkach Steinera oraz
do kątów większych niż 120o , jeśli wierzchołek pokrywa się z prętem. Komputer
mydlany wybiera topologię połączeń przy każdej próbie na chybił trafił, więc nie
sprawujemy nad tym kontroli, ale przynajmniej nie musimy żmudnie wiązać nici
jak w komputerze mechanicznym!
5.11
„Mały świat”
Koncepcje teorii grafów można z powodzeniem stosować do badania sieci społecznych [45]. W roku 1967 Stanley Milgram26 przeprowadził następujący eksperyment: spośród mieszkańców miast Boston, Wichita i Omaha zarekrutowano
uczestników będących osobami „startowymi” i „końcowymi” doświadczenia. Do
osób startowych wysłano pakiety informacyjne, wyjaśniające celowość projektu,
Stanley Milgram (1933–1984), amerykański psycholog i socjolog, znany z doświadczeń
dotyczących „posłuszeństwa autorytetowi” oraz „Małego świata”.
26
174
Rozdział 5. Grafy
120
100
80
60
40
20
1
2
3
4
5
6
7
8
9
10
n
Rysunek 5.39: Wyniki niedawnego doświadczenia „Małego świata” z pracy [46], gdzie uczestnicy
kontaktowali się za pomocą poczty elektronicznej. Na osi poziomej liczba kroków, na pionowej
liczba wiadomości, które osiągnęły cel. Najwięcej wiadomości dotarło już po n = 4 krokach,
a dla 95% wiadomości wystarczyło 6 lub mniej kroków
a także niezbędne podstawowe informacje personalne o osobie końcowej, do której osoba startowa miała dotrzeć za pomocą łańcucha korespondencji. Zadanie
polegało na wysłaniu załączonej karty pocztowej do dobrze znanej osoby (zdefiniowanej, jako osoba, z którą jest się „na ty” 27 ), wybranej zgodnie z intuicją, że
zbliży nas do osoby-celu. Kolejne osoby w łańcuchu były instruowane, aby postępować tak samo, przesyłając pakiet dalej. W rezultacie osoba końcowa, jeśli
łańcuch nie pękł po drodze, otrzymywała od osoby, z którą jest „na ty”, przesyłkę wraz z listą osób pośrednich. Wyniki jednego z serii doświadczeń Milgrama
były następujące: na 296 przesyłek 232 nie doszły do celu, co jest dość typową
przypadłością badań socjologicznych. Natomiast spośród 64, które doszły (22%),
znamienny był jeden fakt. Średnia (dokładniej mediana) liczby przesyłań wyniosła zaledwie 5.5. Inne doświadczenia, wielokrotnie powtarzane także przez
innych badaczy, potwierdziły ten fakt. Zatem, aby dotrzeć do innej osoby poprzez łańcuch znajomości, wystarczy średnio 5-6 połączeń, co nazwano również
„sześcioma stopniami oddalenia” (ang. six-degree separation): średnio, do prawie
każdej osoby na świecie (prezydent Barrack Obama, Doda, Tomasz Adamek, kasjerka w Tesco) można dotrzeć za pomocą zaledwie ok. sześciu „znajomościowych”
kroków!
W języku teorii grafów sformułowalibyśmy problem następująco.
Hipoteza 5.1 (sześć stopni oddalenia). Utwórzmy graf, którego wierzchołkami są ludzie, a krawędź łączy dwa wierzchołki wtedy i tylko wtedy, gdy te osoby
są „na ty”. Dla prawie wszystkich losowo wybranych par wierzchołków tego grafu
istnieje łącząca je droga o średniej długości ok. 6.
W Stanach Zjednoczonych jest to pokaźny krąg znajomych, bo w większości środowisk
wszyscy z wszystkimi prawie natychmiast przechodzą „na ty”!
27
5.11. „Mały świat”
175
Doświadczenia Milgrama były realizacją wcześniejszych pomysłów sięgających roku 1929, kiedy Frigyes Karinthy28 opublikował opowiadanie „Łańcuchy”,
zawierające omawiane koncepcje sześciu stopni oddalenia i kurczącego się świata. Obecnie, w dobie internetu i globalnej wioski, doświadczenia nad sieciami
społecznymi są intensywnie kontynuowane i poszerzane. Nie trzeba już wydawać
pieniędzy na znaczki! Rysunek 5.39 pokazuje wynik takiego eksperymentu [46],
gdzie 24000 ochotników próbowało skontaktować się za pomocą poczty elektronicznej z 18 wybranymi osobami-celami. Dla 384 osób, którym kontakt się udał,
wystarczyło zaledwie kilka kroków, ze średnią długością 4.01. Wyniki zdają się
więc potwierdzać wnioski Milgrama. Bolączką tego typu doświadczeń jest jednak
bardzo wysoki wskaźnik przerwania łańcucha, np. ktoś myśli, że to spam, nie
ma czasu, z zasady nie wypełnia ankiet itp. W doświadczeniu z rys. 5.39 prawdopodobieństwo przerwania w każdym kroku wynosi aż 60%. W związku z tym
jest bardzo mała szansa, aby długie łańcuchy wiadomości nie zostały przerwane.
W eksperymencie [46] zaledwie ok. 1.6% zainicjowanych łańcuchów wiadomości
osiągnęło swój cel, podczas gdy w doświadczeniu Milgrama było to „aż” 22%.
Ten efekt jest podstawą uzasadnionej krytyki hipotezy 5.1 w podanym sformułowaniu. Prawdą jest, że dla tych wiadomości, które osiągnęły cel, wystarczyło
kilka kroków, natomiast ich liczba wydaje się istotnie zależeć od prawdopodobieństwa przerwania łańcucha. Dokładniejsza analiza hipotezy wymagałaby więc
dużej próbki danych i większej sumienności uczestników.
Bardzo ciekawym aspektem doświadczeń dotyczących „Małego świata” jest
istota działania algorytmu znajdującego połączenie. Jest on oparty na „kolektywnej inteligencji” społeczeństwa. Ludzie, mający tylko lokalną wiedzę o swoich bezpośrednich znajomych, są w stanie przekazać w kilku krokach informację
praktycznie do każdego mieszkańca Ziemi.
W społeczności matematyków odpowiednikiem sześciu stopni oddalenia jest
tzw. liczba Erdősa29 . Znany z ekscentrycznego zachowania Erdős współpracował
z setkami matematyków, częstokroć w zamian za „wikt i opierunek”. W hołdzie koledzy zdefiniowali liczbę Erdősa E w następujący sposób: sam Erdős ma
E = 0, współautorzy jego publikacji E = 1, współautorzy współautorów niebędący współautorami Erdősa E = 2 itd. Indukcyjnie, dany matematyk posiada
E = k, jeśli ma wspólne publikacje z kimś o E = k − 1, a nie ma publikacji
z nikim o E ≤ k − 2.
Rysunek 5.40 pokazuje, ilu znamy matematyków o danej liczbie Erdősa.
Średnia tego rozkładu wynosi 4.65, a mediana 5, w całkowitej zgodności z hipotezą „sześciu stopni oddalenia”. Dane zostały skrupulatnie zebrane przy wykorzystaniu elektronicznych baz danych publikacji matematycznych, więc nie są obarczone problemem przerwania łańcucha komunikacji w oryginalnym eksperymencie Milgrama czy jego e-mailowej wersji. Według http://www.oakland.edu/enp/
Frigyes Karinthy (1887-1938), węgierski pisarz i poeta.
Paul Erdős (1913-1996), węgierski matematyk. Opublikował aż 1525 prac z kombinatoryki,
teorii grafów, teorii mnogości, analizy matematycznej i rachunku prawdopodobieństwa.
28
29
176
Rozdział 5. Grafy
105
� �
�
�
10
4
�
�
N�E�
�
1000
�
�
�
100
�
�
10
1
�
�
0
2
4
6
8
10
12
E
Rysunek 5.40: Rozkład liczby Erdősa E: N (E) jest liczbą matematyków posiadających daną
wartość E (dane z http://www.oakland.edu/enp/)
ok. 268000 matematyków ma liczbę Erdősa, 50000 opublikowało prace współautorskie, ale nie mają liczby Erdősa, ponadto 84000 opublikowało jedynie prace
jednoautorskie.
5.12
Kolorowanie wierzchołkowe grafów
Wyobraźmy sobie następujący problem praktyczny: musimy ułożyć podział godzin dla studentów pierwszego roku informatyki na Uniwersytecie Jana Kochanowskiego w Kielcach. Studenci wybierają po kilka z oferowanych przedmiotów:
1) zagadnienia kolorowania grafów, 2) podstawy sztucznej inteligencji, 3) wprowadzenie do sieci społecznych, 4) ochrona drzew i lasów, 5) pracownia gier komputerowych, 6) historia buntu maszyn, 7) geografia Jawy, 8) lektorat c++, 9) aerobik w wodzie. Załóżmy, że zajęcia odbywają się w przedziałach czasowych
8:00-9:00, 9:00-10:00 itd. Pytanie jest następujące: Jaka jest najmniejsza liczba
przedziałów czasowych, aby móc ułożyć podział godzin w taki sposób, by wszyscy
studenci mogli uczestniczyć w zajęciach, na które się zapisali?
Niech owe dziewięć oferowanych przedmiotów stanowi wierzchołki grafu G.
Z definicji, dwa wierzchołki są połączone krawędzią (są sąsiednie), jeśli istnieje
student, który wybrał obydwa odpowiadające im przedmioty. W tej sytuacji
zajęcia z tych przedmiotów nie mogą odbywać się jednocześnie, zatem krawędź
oznacza relację „niemożliwej jednoczesności”. Przeglądamy zgłoszenia studentów
i sporządzamy odpowiedni graf. Powiedzmy, że wygląda on w następujący sposób:

Podobne dokumenty