30

Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź
Page 2: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Page 3: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Spis treści

Oznaczenia 1

Wstęp 3

I. Podstawy 7

1. Indukcja i rekurencja 91.1. Zasada indukcji matematycznej . . . . . . . . . . . . . 9

1.2. Zbiory częściowo uporządkowane . . . . . . . . . . . 11

1.3. Rekurencja . . . . . . . . . . . . . . . . . . . . . . . . 15

1.4. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 23

2. Rozmieszczenia i permutacje 272.1. Funkcje i rozmieszczenia . . . . . . . . . . . . . . . . 27

2.2. Permutacje . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3. Liczby Stirlinga pierwszego rodzaju . . . . . . . . . . 38

2.4. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 41

3. Kombinacje 443.1. Współczynnik dwumianowy . . . . . . . . . . . . . . 44

3.2. Generowanie podzbiorów . . . . . . . . . . . . . . . . 48

3.3. Zbiory z powtórzeniami . . . . . . . . . . . . . . . . . 50

3.4. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 52

Poleć książkęKup książkę

Page 4: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

iv Spis treści

4. Podziały 544.1. Podziały zbioru . . . . . . . . . . . . . . . . . . . . . 54

4.2. Zasada szufladkowa Dirichleta . . . . . . . . . . . . . 55

4.3. Zasada włączania-wyłączania . . . . . . . . . . . . . . 58

4.4. Liczby Stirlinga drugiego rodzaju . . . . . . . . . . . . 63

4.5. Podziały liczb . . . . . . . . . . . . . . . . . . . . . . 67

4.6. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 69

5. Funkcje tworzące 725.1. Szeregi formalne . . . . . . . . . . . . . . . . . . . . 72

5.2. Rozwiązywanie rekurencji . . . . . . . . . . . . . . . 75

5.3. Zastosowania funkcji tworzących . . . . . . . . . . . . 77

5.4. Sploty . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.5. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 82

II. Grafy 83

6. Elementy teorii grafów 856.1. Podstawowe pojęcia . . . . . . . . . . . . . . . . . . . 85

6.2. Macierze grafów . . . . . . . . . . . . . . . . . . . . . 91

6.3. Izomorfizm, podstawowe własności i typy grafów . . . 102

6.4. Kolorowanie i wielomiany . . . . . . . . . . . . . . . 111

6.5. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 115

7. Cykle, drzewa, pokrycia 1207.1. Grafy Eulera i Hamiltona, turnieje . . . . . . . . . . . 120

7.2. Spójność . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3. Drzewa . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.4. Skojarzenia . . . . . . . . . . . . . . . . . . . . . . . 140

7.5. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 144

Poleć książkęKup książkę

Page 5: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Spis treści v

8. Wybrane algorytmy grafowe 1488.1. Algorytmy przeszukiwania . . . . . . . . . . . . . . . 148

8.2. Minimalne drzewa spinające i minimalne drogi . . . . 152

8.3. Przepływy w sieciach . . . . . . . . . . . . . . . . . . 157

8.4. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 164

III. Ogólne struktury kombinatoryczne 167

9. Ciała i przestrzenie wektorowe 1699.1. Ciała skończone . . . . . . . . . . . . . . . . . . . . . 169

9.2. Skończone przestrzenie wektorowe . . . . . . . . . . . 171

9.3. Skończone geometrie rzutowe i afiniczne . . . . . . . . 175

9.4. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 179

10. Matroidy 18110.1. Podstawy . . . . . . . . . . . . . . . . . . . . . . . . 181

10.2. Transwersale . . . . . . . . . . . . . . . . . . . . . . . 189

10.3. Matroidy dualne . . . . . . . . . . . . . . . . . . . . . 192

10.4. Wielomiany Tutte’a . . . . . . . . . . . . . . . . . . . 196

10.5. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 200

11. Systemy i algorytmy zachłanne 20311.1. Systemy zachłanne . . . . . . . . . . . . . . . . . . . 203

11.2. Algorytmy zachłanne . . . . . . . . . . . . . . . . . . 207

11.3. Zadania . . . . . . . . . . . . . . . . . . . . . . . . . 212

Rozwiązania, odpowiedzi i wskazówki 215Rozdział 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Rozdział 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

Rozdział 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Poleć książkęKup książkę

Page 6: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

vi Spis treści

Rozdział 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Rozdział 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Rozdział 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

Rozdział 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

Rozdział 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

Rozdział 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Rozdział 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

Rozdział 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

Dodatki 259

A. Podstawowe pojęcia 261A.1. Notacja . . . . . . . . . . . . . . . . . . . . . . . . . 261

A.2. Zbiory . . . . . . . . . . . . . . . . . . . . . . . . . . 262

A.3. Algebra . . . . . . . . . . . . . . . . . . . . . . . . . 263

A.4. Rozwinięcie funkcji w szereg potęgowy . . . . . . . . 265

A.5. Prawdopodobieństwo . . . . . . . . . . . . . . . . . . 266

B. Sławni matematycy 267

Literatura 283

Skorowidz 285

Poleć książkęKup książkę

Page 7: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

152 8. Wybrane algorytmy grafowe

8.2. Minimalne drzewa spinające i minimalne drogi

NiechG = (V,E) będzie grafem nieskierowanym bez pętli o nwierz-chołkach. Na zbiorze krawędziE określamy funkcję o wartościach nie-ujemnych, w : E → R+. Wartość w (e) nazywamy wagą krawędzi e.Jeśli e = {u, v}, to piszemy po prostu w (u, v). Graf G z określonąfunkcją w nazywa się grafem ważonym.

Minimalnym drzewem spinającym spójnego grafuG nazywamy drze-Minimalnedrzewospinające

wo spinające T takie, że jego waga

w (T ) =∑e∈T

w (e) (8.2.1)

jest najmniejsza. Gdy G nie jest spójny, to analogicznie minimalnymlasem spinającym T grafuG nazywamy las spinający TG taki, że wagaw (G) określona wzorem (8.2.1) jest najmniejsza.

Minimalną drogą łączącą wierzchołki u oraz v w grafie G, u = v,Drogaminimalna nazywamy drogę P (u, v) taką, że jej waga

w (P (u, v)) =∑

e∈P (u,v)w (e) (8.2.2)

jest najmniejsza. Gdy wierzchołki u oraz v nie są połączone drogą (na-leżą do różnych składowych grafu G), to przyjmujemy P (u, v) =∞.

Dla sieci komunikacyjnych lub przepływowych wagi mogą reprezento-wać pewne wielkości fizyczne, takie jak koszt, odległość, efektywność,pojemność lub niezawodność, przypisane odpowiednim krawędziom.Prosty graf ważony może reprezentować jego macierz wagW = [wij ],gdziewij jest wagą krawędzi eij między wierzchołkiem vi oraz wierz-chołkiem vj . Wagom nieistniejących krawędzi nadaje się w zależnościod zastosowań wartość∞ lub 0.

Omówimy dalej dwa algorytmy służące do rozwiązywania problemuminimalnego drzewa spinającego. Są nimi algorytm Kruskala i al-gorytm Prima. Oba algorytmy są przykładami zachłannych algoryt-

Poleć książkęKup książkę

Page 8: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

8.2. Minimalne drzewa spinające i minimalne drogi 153

mów optymalizacyjnych, które zostaną przedstawione bardziej ogólniew rozdziale 11. W każdym kroku takiego algorytmu musimy dokonaćjednego z wielu możliwych wyborów. Stosując strategię zachłanną,dokonujemy wyboru, który jest w danej chwili najlepszy.

Algorytm Kruskala37 wyznaczający minimalne drzewo spinające maAlgorytmKruskala następującą postać. NiechG będzie grafem o n wierzchołkach. Wtedy

następujący algorytm daje rozwiązanie problemu minimalnego drzewalub lasu spinającego:

Algorytm 8.2.1

1. Sortujemy krawędzie niemalejąco według wag.2. Wybieramy krawędź e1 o najmniejszej wadze.3. Dodajemy krawędzie e2, e3, . . . , en−1, wybierając za każdym ra-

zem nową krawędź o najmniejszej możliwej wadze, która nie two-rzy cyklu z dotychczas wybranymi krawędziami ei.

Podgraf T grafuG, którego krawędziami są e1, e2, . . . , en−1, jest szu-kanym drzewem spinającym. Jeśli G jest grafem niespójnym, to algo-rytm Kruskala wyznacza minimalny las.

Metodą wyznaczania minimalnego drzewa spinającego grafu, któraAlgorytmPrima nie wymaga ani sortowania, ani sprawdzania istnienia cykli w każdym

kroku, jest algorytm Prima57, zwany też algorytmem najbliższego są-siada. Dla grafu spójnego przebiega on w następujący sposób.

Algorytm 8.2.2

1. Niech T = ∅.2. Wybieramy dowolny wierzchołek początkowy v1 ∈ T i dołącza-

my go do T .3. Wybieramy dowolną krawędź incydentną z v1 o najniższej wadze

i drugi koniec tej krawędzi dołączamy do zbioru T .4. Kolejno dla i = 2, . . . , n − 1 wybieramy dowolną krawędź ei

incydentną z dowolnym wierzchołkiem ze zbioru T o najniższejwadze taką, że jej drugi koniec nie należy do T , i dołączamy tenkoniec do zbioru T .

5. Algorytm kończy się, gdy T = V .

Powyższa procedura wyznacza minimalne drzewo spinające zawiera-jące krawędzie e1, e2, . . . , en−1. Najgorszy przypadek dla powyższe-go algorytmu pojawia się, gdy graf G jest grafem pełnym. W takiej

Poleć książkęKup książkę

Page 9: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

154 8. Wybrane algorytmy grafowe

sytuacji w każdym kroku algorytmu musimy przeprowadzić maksy-malną liczbę porównań, aby znaleźć najbliższy sąsiedni wierzchołek.Jeśli G jest grafem niespójnym, to dla wyznaczenia minimalnego lasunależy algorytm Prima zastosować dla każdej składowej oddzielnie.

Algorytm zachłanny generujący minimalne drzewo spinające za-wdzięczamy J. B. Kruskalowi (1956). Algorytm wyznaczający mini-malne drzewo spinające metodą najbliższego sąsiada został odkrytyw 1930 roku przez czeskiego matematyka V. Jarnıka32, a następnieponownie odkryty w 1957 roku przez R. C. Prima oraz niezależniew 1959 roku przez holenderskiego informatyka E. Dijkstrę11.

Przykład 8.2.1Na rysunku 8.4 przedstawiony jest grafG = K5 z wagami krawędzi. Oznacz-my eij = (vi, vj). Krawędzie porządkujemy według rosnących wag:

e15, e35, e13, e23, e12, e25, e24, e45, e34, e14 .

Zgodnie z algorytmem Kruskala wybieramy kolejne krawędzie, które nietworzą cykli z poprzednio wybranymi. Są to krawędzie e15, e35, e23, e45 . Wa-ga tego drzewa wynosiw (T ) = 2+3+5+7 = 17 i jest to minimalne drzewospinające.

2 7

79 4

73 7

5

8

v1

v2

v3v4

v5

2

73 5

v1

v2

v3v4

v5

Rysunek 8.4. Graf do przykładu 8.2.1 i jego minimalne drzewo spinające

Poleć książkęKup książkę

Page 10: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

8.2. Minimalne drzewa spinające i minimalne drogi 155

Stosując algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawędź o najmniejszej wadze do pozostałych wierzchołków toe23. Od zbioru wierzchołków {v2, v3} do pozostałych prowadzi krawędź e35,od zbioru {v2, v3, v5} do pozostałych prowadzi krawędź e15, a w końcu wy-bieramy krawędź e45. Dostaliśmy to samo drzewo co otrzymane za pomocąalgorytmu Kruskala.

Drzewa minimalne mogą być różne w zależności od użytego algo-rytmu, sposobu posortowania przy algorytmie Kruskala (gdy waginiektórych krawędzi są identyczne), wierzchołka startowego i kolej-nych wyborów przy algorytmie Prima. Niemniej wagi tak otrzymanychdrzew minimalnych są oczywiście takie same.

Długością ważoną drogi (u0, u1, . . . , un)w grafieG (V,E) o nieujem-nych wagach krawędzi (łuków) e ∈ E jest suma wag krawędzi tej dro-gi. Do znajdowania najkrótszej drogi ważonej z ustalonego wierzchoł-ka u w grafie G (V,E) o nieujemnych wagach krawędzi e ∈ E służyalgorytm opracowany przez E. Dijkstrę.

Algorytm ten znajduje w grafie wszystkie najkrótsze drogi pomiędzyAlgorytmDijkstry wyróżnionym wierzchołkiem u a wszystkimi pozostałymi, dodatkowo

wyliczając długość każdej z tych dróg. Algorytm Dijkstry jest równieżprzykładem algorytmu zachłannego (zobacz na przykład [7], [13]).Sformułujemy go dla grafów nieskierowanych.

Algorytm 8.2.3Tworzymy dwa zbiory wierzchołków Q i S. W trakcie algorytmu bę-dziemy tworzyć funkcję d (v) ­ 0 określoną na V i funkcję p (v) okre-śloną na V \ u o wartościach w V . Wierzchołek u jest jedynym wierz-chołkiem początkowym.

1. Niech Q = V , S = ∅.2. Dla każdego v ∈ V \u przyjmujemy d (v) =∞ oraz d (u) = 0.3. Funkcja p (v) jest niezdefiniowana dla wszystkich v ∈ V .4. Powtarzamy poniższe kroki algorytmu, aż Q = ∅.

(a) Wybieramy wQwierzchołek o najmniejszym d (v), usuwa-my go z Q i dodajemy do S.

(b) Dla każdego t ∈ Γ (v) ∩Q, jeśli d (t) > d (v) + w (v, t),to d (t) = d (v) + w (v, t).

(c) Określamy p (t) = v.

W wyniku działania tego algorytmu ciąg wierzchołków v, v1 = p (v),v2 = p (v1) , . . . , u = p (vm) jest najkrótszą drogą z wierzchołka v dopoczątkowego wierzchołka u.

Poleć książkęKup książkę

Page 11: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

156 8. Wybrane algorytmy grafowe

Uwaga. Dla wybrania z Q wierzchołka v o najmniejszym d (v) naj-lepiej przyjąć, że Q jest uporządkowany tak jak przy przeszukiwaniugrafu metodą BFS (algorytm 8.1.1).

Przykład 8.2.2Dla grafu pokazanego na rysunku 8.5 najkrótszą drogą ważoną od v1 do v5jest ciąg (v1, v2, v8, v7, v9, v4, v6, v5). Ważona długość tej drogi jest równa12, a długość nieważona jest równa 7. Długość zaś najkrótszej drogi nieważo-nej jest równa 4, a taką drogą jest na przykład ciąg v1, v2, v3, v4, v5. Długośćważona tej drogi wynosi 28.

Aby zastosować algorytm Dijkstry, ustalamy najpierw algorytmem BFS zbiór(kolejkę) Q (wiersz pierwszy) i nadajemy wartości z kroku 2 w algorytmie(wiersz drugi).

W kolejnych krokach algorytmu, idąc z kolejnych wierzchołków v z kolejkiQ, wierzchołki t ∈ V + (v) grafu otrzymują wartości d (t).

v1 v2 v8 v3 v7 v4 v9 v6 v50 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

v1 0 3 7 ∞ ∞ ∞ ∞ ∞ ∞v2 0 3 4 12 8 ∞ ∞ ∞ ∞v8 0 3 4 12 6 ∞ ∞ ∞ ∞v3 0 3 4 12 6 20 16 ∞ ∞v7 0 3 4 12 6 20 8 11 ∞v9 0 3 4 12 6 9 8 11 ∞v4 0 3 4 12 6 9 8 10 17v6 0 3 4 12 6 7 6 10 12

v1 v3 v2 v8 v9 v7 v4 v6

Wartości p (v) dla v ∈ V \ v1 są podane w ostatnim wierszu.

3

7

1 5

2

11

2

84

25

9 8

5

v1

v2 v3 v4

v5

v6v7v8

v9

Rysunek 8.5. Graf do przykładu 8.2.2

Poleć książkęKup książkę

Page 12: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

11. Systemy i algorytmy zachłanne

11.1. Systemy zachłanne

Około 1980 roku J. Korte35 i L. Lovasz42 wprowadzili greedoidy, bę-dące dalszym uogólnieniem matroidów, jako narzędzie do opisywaniai badania algorytmów zachłannych∗.

NiechE będzie zbiorem skończonym. Systemem zachłannym (greedo-idem) nazywamy parę M = (E,F) taką, że niepusta rodzina F pod-zbiorów zbioru E spełnia następujące postulaty:

(g1) ∅ ∈ F ,(g2) jeśli F1, F2 ∈ F , |F1| < |F2|, to istnieje e ∈ F2 \ F1 taki, że

F1 ∪ e ∈ F .

Zbiory należące do F nazywa się wykonalnymi (ang. feasible). Rodzi-Zbiorywykonalnei osiągalne

nę F nazywa się osiągalną (ang. accesible), gdy spełniony jest waru-nek (g1) oraz

(a1) jeśli F ∈ F \ ∅, to istnieje e ∈ F takie, że F \ e ∈ F .

Parę (E,F), gdzie F jest rodziną osiągalną, nazywamy systememosiągalnym. Greedoidy są systemami osiągalnymi. Łatwo też zauwa-żyć, że każdy matroid jest systemem zachłannym, gdzie zbiorami wy-konalnymi są zbiory niezależne matroidu.

Bazą systemu zachłannego nazywa się każdy maksymalny zbiór wy-Bazakonalny. Z postulatu (g2) wynika, że każda baza ma tę samą liczbęelementów.

Rzędem ρ(F ) zbioru F ⊆ E nazywa się liczbę elementów maksy-Rządmalnego zbioru wykonalnego F ⊆ A. Zbiór F ∈ F jest wykonalny

∗B. Korte, L Lovasz, R. Schrader, Greedoids, Springer-Verlag, Berlin 1991. Patrzrównież B. Korte, J. Vygen, Combinatorial Optimization, Theory and Algorithms,Springer-Verlag, Berlin 2012.

Poleć książkęKup książkę

Page 13: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

204 11. Systemy i algorytmy zachłanne

wtedy i tylko wtedy, gdy ρ (F ) = |F |. Każdy maksymalny wykonalnypodzbiór F zbioru A ma tę samą liczbę elementów ρ (A).

Przykład 11.1.1Niech G = (V,E) będzie grafem nieskierowanym z wyróżnionym wierz-chołkiem r ∈ V . Zbiory F krawędzi drzew (niekoniecznie spinających) za-wierających wierzchołek r tworzą rodzinęF taką, że (E,F) jest greedoidem.

Przykład 11.1.2Niech T = (V,E, r) będzie drzewem o ustalonym korzeniu r. Określmyrodzinę F jako rodzinę zbiorów krawędzi poddrzew drzewa T o tym samymkorzeniu r. Jeśli F ∈ F oraz F = ∅, to usuwając krawędź e incydentnąz wierzchołkiem stopnia 1, otrzymujemy znowu poddrzewo o korzeniu r lubzbiór pusty. Jedyną bazą takiego greedoidu jest E (patrz zadanie 11.1).

Niech T będzie drzewem przedstawionym na rysunku 11.1. WówczasA ∈ Ftylko wtedy, gdy zajdzie jeden z przypadków:

a) {a, b} ⊆ A,

b) a ∈ A, A ⊆ E \ {b, e},

c) b ∈ A, A ⊆ E \ {a, c, d},

d) a = ∅.

r

a b

c d e

Rysunek 11.1. Drzewo T z korzeniem r

Wtedy też:

ρ (A) =

{|A|, jeśli A ∈ F ,0, jeśli A /∈ F .

W matroidzie każdy podzbiór bazy jest zbiorem niezależnym. Jeśli więc je-dyną bazą jest cały zbiór E, to każdy zbiór A ⊆ E jest niezależny, czyli jestto matroid wolny. Tutaj nie każdy podzbiórE należy doF . Oznacza to (patrzzadanie 11.1), że tak skonstruowana para (E,F) jest greedoidem, ale nie jestmatroidem.

Poleć książkęKup książkę

Page 14: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

11.1. Systemy zachłanne 205

Wróćmy do warunków (s1) – (s3) z twierdzenia 10.1.5 na str. 184i zastąpmy warunek (s4) warunkiem (s′4):

(s1) A ⊆ σ (A),(s2) jeśli A ⊆ B, to σ (A) ⊆ σ (B),(s3) σ (σ (A)) = σ (A),(s′4) jeśli f /∈ σ (A), f ∈ σ (A ∪ e), f = e to e /∈ σ (A ∪ f).

Parę (E, σ) spełniającą warunki (s1) – (s′4) nazywamy antymatro-Antymatroididem. Antymatroid jest greedoidem, choć nie jest matroidem.

Przykład 11.1.3Niech σ (A) będzie minimalnym poddrzewem drzewa z przykładu 11.1.2,zawierającym krawędzie zbioruA. Wtedy σ (A) spełnia warunki (s1) – (s′4),czyli greedoid z tego przykładu jest antymatroidem.

Wprowadźmy trzy własności greedoidów o rodzinie wykonalnej F .

(v0) Własność przedziałowa: jeśli F,G,H ∈ F , F ⊆ G ⊆ H orazdla każdego e /∈ H zachodzi F ∪ e ∈ F , H ∪ e ∈ F , to wtedyG ∪ e ∈ F .

(vG) Własność przedziałowa bez ograniczenia górnego: jeśli F,G ∈F , F ⊆ G oraz dla każdego e /∈ G zachodzi F ∪ e ∈ F , towtedy G ∪ e ∈ F .

(vD) Własność przedziałowa bez ograniczenia dolnego: jeśli G,H ∈G, F ⊆ H oraz H ∪ e ∈ F , to wtedy G ∪ e ∈ F .

Uzasadnieniem wprowadzenia tych pojęć są następujące trzy własno-ści.

Własność 11.1.1Greedoid mający własność przedziałową jest greedoidem, dla które-go suma dwóch dowolnych zbiorów wykonalnych jest wykonalna, o ilezawiera inny zbiór wykonalny.

Własność 11.1.2Greedoid mający własność przedziałową bez ograniczenia górnegojest antymatroidem.

Własność 11.1.3Greedoid mający własność przedziałową bez ograniczenia dolnegojest matroidem.

Poleć książkęKup książkę

Page 15: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

206 11. Systemy i algorytmy zachłanne

Przykład 11.1.4Niech G = (V,E) będzie grafem prostym z wyróżnionym wierzchołkiemr ∈ V . Niech F będzie rodziną zbiorów wierzchołków F takich, że r ∈ Foraz F tworzy spójny podgraf grafu G. Wtedy (V,F) jest antymatroidem.Ten greedoid jest zwany greedoidem przeszukiwań wierzchołków (ang. ver-tex search greedoid).

Zauważmy, że greedoid z przykładu 11.1.3 można uważać za szczególnyprzypadek tak określonego greedoidu. Wystarczy do drzewa T z przykła-du 11.1.3 dołączyć wierzchołek r0 i dodać krawędź {r0, r}, otrzymując drze-wo T0, a następnie utworzyć graf krawędziowyG = L (T0) z wierzchołkiemr = L ({r0, r}).

Przykład 11.1.5Niech G = (V,E) będzie digrafem prostym z wyróżnionym wierzchołkiemr ∈ V . NiechF będzie rodziną łuków poddrzew skierowanych zawierającychłuki skierowane zgodnie z drogami prowadzącymi od r do wierzchołków koń-cowych. (E,F) jest greedoidem przedziałowym, ale nie jest ani matroidem,ani antymatroidem. Ten greedoid jest zwany greedoidem przeszukiwań łu-ków (ang. line search greedoid).

Zauważmy, że również tutaj greedoid z przykładu 11.1.3 można uważać zaszczególny przypadek tak określonego greedoidu. Wystarczy, że w drzewieT z przykładu 11.1.3 zorientujemy krawędzie tak, aby łuki były skierowanezgodnie z drogami prowadzącymi od r do wierzchołków końcowych.

Greedoid można też określić za pomocą poniżej zdefiniowanego języ-ka zachłannego.

Niech E∗ będzie zbiorem słów nad alfabetem E, to znaczy zbioremciągów o elementach (literach) z E. Konkatenacją αβ słów α =x1 . . . xi oraz β = y1 . . . yj jest słowo x1 . . . xiy1 . . . yj . Nośnikiemα słowa α jest zbiór różnych liter słowa α. Słowo jest proste, gdy każ-da litera występuje w słowie co najwyżej jeden raz.

Językiem nazywamy skończoną i niepustą rodzinę L ⊆ E∗. Język jestprosty, gdy wszystkie jego słowa są proste. Nośnikiem L językaL jest:

L = {α : α ∈ L}. (11.1.1)

Językiem zachłannym nad skończonym zbiorem E jest para (E,L),Językzachłanny gdzie L jest językiem prostym takim, że:

(l1) jeśli α = βγ i α ∈ L, to β ∈ L,(l2) jeśli α, β ∈ L oraz |α| > |β|, to α zawiera literę x taką, że

βx ∈ L.

Poleć książkęKup książkę

Page 16: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

11.2. Algorytmy zachłanne 207

Warunek (l1) jest warunkiem (lewej) dziedziczności. Warunek (l2) jestaksjomatem wymiany.

Twierdzenie 11.1.1Systemy zachłanne i języki zachłanne są równoważne w następującymsensie.

(i) Jeśli (E,L) jest językiem zachłannym, to(E, L

)jest systemem

zachłannym.(ii) Jeśli (E,F) jest systemem zachłannym, to

L (F) = {x1 . . . xk ∈ E∗ : {x1, . . . , xi} ∈ F dla 1 ¬ i ¬ k}

jest językiem zachłannym.(iii) L

(L)= L oraz L (F) = F .

Przykład 11.1.6Niech zbiorem liter będą krawędzie drzewa z przykładu 11.1.2. Określ-my słowa języka L jako ciągi symboli α = (x1, . . . , xk) takie, że zbiór{x1, . . . , xk} jest drzewem o korzeniu r oraz jeśli α = βγ, γ = (y1, . . . , yl),to również {y1, . . . , yl} jest drzewem o korzeniu r. Spełnione są więc warun-ki (l1) oraz (l2).

11.2. Algorytmy zachłanne

Niech E będzie zbiorem skończonym oraz w : E → R+. Wartośćfunkcji w (e) nazywa się wagą elementu e. Niech S będzie pewną ro-dziną podzbiorów zbioru E. Liczbę:

w(A) =∑e∈A

w(e)

nazywa się wagą zbioru A. Rozważmy problem znalezienia zbioruAlgorytmzachłanny A ∈ S o największej wadze. W tym celu sformułujemy następujący

algorytm, zwany zachłannym.

Algorytm 11.2.1

1. Sortujemy elementy e ∈ E według nierosnących wag w ciąge1 ­ e2 ­ · · · ­ en (lub według niemalejących wage1 ¬ e2 ¬ · · · ¬ en ).

2. Zaczynając od A = ∅, dla i = 1, . . . , n, jeżeli A ∪ ei ∈ S , toA← A ∪ ei .

Poleć książkęKup książkę

Page 17: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

208 11. Systemy i algorytmy zachłanne

Otrzymany w ten sposób zbiór A jest wynikiem działania algorytmuzachłannego.

Algorytm zachłanny nie musi być optymalny, to znaczy zbiór A ∈ Sznaleziony za pomocą algorytmu zachłannego nie musi mieć najwięk-szej (najmniejszej) wagi.

Przykład 11.2.1Niech:

A =

7 5 13 4 32 3 1

.Suma trzech elementów macierzyAwybranych algorytmem 11.2.1 takich, żez każdej kolumny może być tylko jeden element, jest największa i jest równa15. Jeśli natomiast wybrane elementy nie mogą być z tych samych kolumni wierszy, to suma takich trzech elementów nie jest największa. Algorytmzachłanny daje sumę 12, natomiast największa suma jest równa 13.

Bardziej ogólne przykłady pozostawimy jako zadania 11.2 i 11.3.

R. Rado59 i J. Edmonds14 udowodnili poniższy wynik.

Twierdzenie 11.2.1JeżeliM = (E, I) jest matroidem, to zbiórA wyznaczony przez algo-rytm zachłanny jest zbiorem niezależnym o największej (najmniejszej)wadze. Jeżeli (E, I) nie jest matroidem, to istnieje waga w : E → R+taka, że A nie jest zbiorem o największej (najmniejszej) wadze.

Za pomocą algorytmu zachłannego i z wykorzystaniem twierdze-nia 11.2.1 można wyznaczyć minimalne drzewo spinające grafu spój-nego.

Jeżeli matroid jest grafowy, to algorytm Kruskala wyboru maksymal-nego (minimalnego) drzewa spinającego w grafie G jest algorytmemzachłannym w matroidzie M (G). Algorytm Prima nie jest zaś algo-rytmem zachłannym w matroidzieM (G), gdyż w sformułowaniu tegoalgorytmu występują wierzchołki grafu. Jest on jednak algorytmem za-chłannym w pewnym greedoidzie związanym z grafemG. Zagadnienieto omówimy w dalszej części tego punktu.

Przykład 11.2.2W matroidzie Fano F3 o elementach {1, 2, . . . , 7} (zobacz rysunek 9.3 nastr. 176) określimy wagę elementu i wzorem w (i) =

(i2 mod 6

)+ 1. Po-

nieważ różne elementy mogą mieć tę samą wagę, to elementy matroidu mogąbyć uporządkowane rosnąco na różne sposoby, na przykład:

Poleć książkęKup książkę

Page 18: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

11.2. Algorytmy zachłanne 209

1. (6, 5, 7, 1, 3, 2, 4),

2. (6, 5, 1, 7, 3, 2, 4),

3. (6, 7, 1, 5, 3, 4, 2).

Wybieramy bazę o najmniejszej wadze. Przy pierwszym i drugim uporządko-waniu minimalną bazę tworzą trzy pierwsze elementy, czyli B1 = {5, 6, 7}orazB2 = {1, 5, 6}. Przy uporządkowaniu trzecim element 1 będący na trze-ciej pozycji należy do σ (6, 7), więc musi być pominięty i wzięty element 5.Stąd B3 = B1.

Algorytm Huffmana

Algorytm Huffmana31 jest metodą bezstratnej kompresji danych, opra-cowaną w 1952 roku. Mimo że nie jest zbyt efektywny, stosuje się goze względu na prostotę oraz brak ograniczeń patentowych. Jest przy-kładem algorytmu zachłannego.

Z symboli utworzony jest ciąg skończony (tekst) τ . Słowa kodoweo długości k bitów (znaków 0 i 1) każde wystarczają do zakodowa-nia 2k symboli. Na przykład powszechnie stosowany ośmiobitowy kodASCII wystarcza na zakodowanie 128 symboli. Nie jest jednak ko-nieczne, aby słowa kodowe były jednakowej długości.

Załóżmy, że każdemu symbolowi przypisujemy s ∈ S i przyporządko-wujemy wagęw (s). Niech b (s) będzie liczbą bitów słowa kodującegosymbol s. Kodowanie Huffmana polega na utworzeniu słów kodowycho niejednakowej długości w taki sposób, aby średnia ważona

W =∑ni=1 b (si)w (si)∑ni=1w (si)

(11.2.1)

była najmniejsza. Jeśli za wagę w (si) przyjmiemy prawdopodobień-stwo pi występowania symbolu si w ciągu τ , to L określone wzo-rem (11.2.2) jest wartością oczekiwaną długości słowa kodowego:

L =n∑i=1

b (si) p (si) , (11.2.2)

gdyż mianownik prawej strony wzoru (11.2.1) jest równy 1 (patrz do-datek A.5).

Algorytm Huffmana:

1. Tworzymy listę drzew binarnych, które w wierzchołkach prze-chowują pary: (si, pi). Na początku drzewa składają się wyłącz-nie z korzenia.

Poleć książkęKup książkę

Page 19: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

210 11. Systemy i algorytmy zachłanne

2. Jeśli na liście jest więcej niż jedno drzewo, powtarzamy: usuwa-my z listy dwa drzewa o najmniejszym prawdopodobieństwiezapisanym w korzeniu. Wstawiamy nowe drzewo, w któregokorzeniu jest suma prawdopodobieństw usuniętych drzew, na-tomiast one same stają się jego lewym i prawym poddrzewem.Korzeń drzewa nie przechowuje symbolu.

3. Drzewo, które pozostanie na liście, jest nazywane drzewem Huf-fmana – prawdopodobieństwo zapisane w korzeniu jest równe 1,natomiast w liściach drzewa zapisane są symbole.

Algorytm Huffmana nie określa, w jakiej kolejności wybierać drze-wa z listy, jeśli mają takie samo prawdopodobieństwo. Nie jest rów-nież określone, które z usuwanych drzew ma stać się lewym bądź pra-wym poddrzewem. Jednak bez względu na przyjęte rozwiązanie war-tość oczekiwana długości kodu pozostaje taka sama.

Na podstawie drzewa Huffmana tworzone są słowa kodowe według na-stępującego algorytmu:

1. Każdej lewej krawędzi drzewa przypisujemy 0, prawej 1 (możnaoczywiście odwrotnie).

2. Przechodzimy w głąb drzewa od korzenia do każdego liścia(symbolu): jeśli idziemy w prawo, dopisujemy do kodu bit o war-tości 1; jeśli idziemy w lewo, dopisujemy do kodu bit o warto-ści 0.

Długość słowa kodowego jest równa głębokości symbolu w drzewie.

Przykład 11.2.3Cztery symbole a, b, c, d występujące z prawdopodobieństwami:

a b c d0.1 0.2 0.3 0.4

Proces budowy drzewa kodowego przedstawiony jest na rysunku 11.2. Kodyznaków:

• a = 000,

• b = 001,

• c = 01,

• d = 1.

Wartość oczekiwana długości słowa kodowego wynosi:

3 · 0.1 + 3 · 0.2 + 2 · 0.3 + 1 · 0.4 = 1.9.

Poleć książkęKup książkę

Page 20: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

11.2. Algorytmy zachłanne 211

Cztery symbole – cztery drzewa składające się tylko z korzeni:

0.1 0.2 0.3 0.4a b c d

Łączymy korzenie z symbolami a oraz b:

a0.2b

0.3

0.1

0.3c

0.4d

Łączymy korzenie (a, b) oraz c:

0.1a

0.2b

0.3 0.3c

0.6 0.4d

Łączymy korzenie ((a, b) , c) oraz d:

0.1a

0.2b

0.3 0.3c

0.6 0.4d

1.0

Rysunek 11.2. Budowa drzewa kodowego w algorytmie Huffmana

Więcej o algorytmie Huffmana i algorytmach na nim opartych możnaznaleźć w książkach [6] i [8].

Pozostaje pytanie, kiedy algorytm zachłanny jest optymalny. Z twier-dzenia 11.2.1 wiadomo, że dla dowolnych funkcji wagi jest tak dla ma-troidów. Rząd matroidu jest funkcją submodularną. Mocniejszą wła-snością jest modularność funkcji. Funkcja c (A), A ⊆ E, jest modu-larna, gdy spełnia równość:

c (A ∪B) = c (A) + c (B)− c (A ∩B) .

Poleć książkęKup książkę

Page 21: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

212 11. Systemy i algorytmy zachłanne

Mocną własność wymiany sformułujemy następująco. Dla każdegoMocnawłasnośćwymiany

A ∈ F , maksymalnego B ∈ F , A ⊆ B, x ∈ E \ B, A ∪ x ∈ Fistnieje x ∈ B \A taki, że A ∪ y ∈ F oraz (B \ y) ∪ x ∈ F .

Własność 11.2.1Greedoid z przykładu 11.1.1 ma mocną własność wymiany.

O optymalności algorytmu zachłannego mówi poniższe twierdzenie.

Twierdzenie 11.2.2Niech (E,F) będzie greedoidem. Algorytm zachłanny znajduje zbiórF ⊆ F o maksymalnej wadze dla dowolnej modularnej funkcji w :F → R+ wtedy i tylko wtedy, gdy greedoid ma mocną własność wy-miany.

Waga zbioru krawędzi grafu nieskierowanego określona jako sumawag jego krawędzi jest funkcją modularną. Z twierdzenia 11.2.2 i wła-sności 11.2.1 wynika więc optymalność algorytmu Prima.

11.3. Zadania

11.1. Pokazać, że para (E,F) skonstruowana w przykładzie 11.1.2 jestgreedoidem.

11.2. Niech A będzie macierzą o n wierszach i m kolumnach o nie-ujemnych elementach. Uzasadnić, że suma m elementów macierzywybranych za pomocą algorytmu 11.2.1 takich, że z i-tej kolumny,1 ¬ i ¬ m, może być tylko jeden element, jest największa.

11.3. Niech A będzie macierzą kwadratową n× n o nieujemnych ele-mentach. Wybrane elementy muszą się znajdować w różnych wier-szach i różnych kolumnach. Uzasadnić, że algorytm zachłanny nie mu-si być optymalny.

11.4. Uzasadnić stwierdzenie z przykładu 11.1.3.

11.5. Zbudować drzewo kodowe Huffmana, gdy symbole a, b, c, d wy-stępują z prawdopodobieństwami:

a b c d

0.1 0.1 0.1 0.7 ,

i obliczyć wartość oczekiwaną L słowa kodowego.

Poleć książkęKup książkę

Page 22: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

11.3. Zadania 213

11.6. Zbudować drzewo kodowe Huffmana dla pięciu symboli i praw-dopodobieństw:

a b c d e

0.1 0.1 0.2 0.2 0.4 .

11.7. Zbudować drzewo kodowe Huffmana, gdy wszystkie z pięciusymboli mają to samo prawdopodobieństwo.

Poleć książkęKup książkę

Page 23: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Aaksjomat wymiany, 207alfabet, 206algorytm

rozwiązywania równania rekurencyjnego, 75

Dijkstry, 155Fleury’ego, 121Huffmana, 209Kruskala, 153, 208najbliższego sąsiada, 153najkrótszej drogi, 155Prima, 153, 208, 212przeszukiwania

w głąb, 150wszerz, 149

zachłanny, 154, 207antyłańcuch, 14antymatroid, 205atom kraty, 172, 173, 176, 178

Bbaza

cykli, 134greedoidu, 203matroidu, 181, 186systemu zachłannego, 203

bijekcja, 27, 30blok, 54, 57

Ccentroid, 138

centrum, 107, 138charakterystyka ciała

skończonego, 170ciało

binarne, 170Galois, 170skończone, 169wielomianów, 170

ciągarytmetyczny, 17geometryczny, 17rekurencyjny, 17zrównoważony, 80

cięciegrafu, 127, 131, 135minimalne, 131, 194

cięciwa grafu, 134cykl

Eulera, 120, 122, 144grafu, 86Hamiltona, 122matroidu, 182, 186permutacji, 33, 37prosty, 87

Ddendryt, 131diagram

Ferrersa, 68Hassego, 12

digraf, 88prosty, 88silnie spójny, 125

Skorowidz

długośćcyklu, 86

permutacji, 33, 37drogi, 86słowa kodowego, 210

dopełnieniealgebraiczne, 264grafu, 107, 144

dren, 157droga, 86

Eulera, 120, 144Hamiltona, 122minimalna, 152prosta, 86

drogikrawędziowo rozłączne, 128wierzchołkowo rozłączne, 128

drzewo, 87, 112, 115, 129binarne, 16, 136Huffmana, 210przeszukiwań, 149puste, 16, 136spinające, 131, 135, 186

minimalne, 152dziedzina funkcji, 27

Eelement

maksymalny, 12minimalny, 12najmniejszy, 12największy, 12

elementy porównywalne, 12

Poleć książkęKup książkę

Page 24: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Ffundamentalny zbiór

cięć, 135cykli, 134

funkcja, 27, 28, 57charakterystyczna, 263

chromatyczna, 114modularna, 211na, 27, 66rozpięcia, 184różnowartościowa, 27, 29rzędu, 184submodularna, 184, 211tworząca, 72

rząd, 196wykładnicza, 72

wymierna, 265

Ggałąź drzewa, 134generator Fibonacciego, 23generowanie

podzbiorów, 49podziałów zbioru, 55

geometriaafiniczna, 178, 185rzutowa, 175, 185, 197

graf, 85acykliczny, 87, 129, 157bichromatyczny, 112dualny, 194dwudzielny, 105, 106, 112,

114, 123, 142, 162regularny, 163

eulerowski, 120, 125, 144hamiltonowski, 122, 144krawędziowy, 114kubiczny, 105k-kolorowalny, 111nieskierowany, 86, 152niezorientowany, 86orientowalny, 125pełny, 104, 112, 123, 132,

137, 144dwudzielny, 106, 144

Petersena, 105, 107, 112, 118

planarny, 108, 109, 113, 194

płaski, 108półeulerowski, 120, 144półhamiltonowski, 144prosty, 86, 114, 137regularny, 105silnie spójny, 87skierowany, 88, 122, 125spójny, 87, 101, 106, 120,

122, 127, 129, 137krawędziowo, 127ważony, 152zorientowany, 88, 122, 125

greedoid, 203, 205przeszukiwań

łuków, 206wierzchołków, 206

grupa, 31abelowa, 32, 169, 199addytywna, 169multiplikatywna, 169permutacji, 33przemienna, 169skończona, 169

gwiazda, 87

HH-przepływ, 199

Iiloczyn

kartezjański, 262zbiorów, 262

indeks chromatyczny, 113, 118indykator, 263iniekcja, 27inwersja permutacji, 35, 42izomorfizm

ciał skończonych, 170drzew, 136grafów, 102

Jjęzyk, 206

prosty, 206zachłanny, 206, 207

Kklasa abstrakcji, 55, 263klika grafu, 107kobaza, 193kocykl, 131, 193kod

Graya, 48, 122Huffmana, 209Prufera, 132, 145, 243

kodrzewo, 131kombinacje, 44kongruencja, 262konkatenacja, 206kopętla, 193korzeń, 16, 87krata, 14, 178

podprzestrzeni, 172rozdzielna, 14zupełna, 14

krawędzierównoległe, 86sąsiednie, 89wielokrotne, 86

krawędź, 86, 98, 106, 109, 113, 136, 140

kresdolny, 14górny, 14

krok indukcyjny, 9, 11krotność elementu, 50kwantyfikator

ogólny, 261szczegółowy, 261

Llas, 129

spinający, 131, 186minimalny, 152

lemat o uściskach dłoni, 90liczba

µ, 191chromatyczna, 111, 118cyklomatyczna, 131nieporządków, 62

liczbyBella, 66, 82Catalana, 80, 136

286 Skorowidz

Poleć książkęKup książkę

Page 25: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Fibonacciego, 20, 25, 46, 75, 79, 100

uogólnione, 23harmoniczne, 10, 17, 40Lucasa, 25Stirlinga

cykliczne, 39drugiego rodzaju, 63,

71, 147nieoznakowane, 39pierwszego rodzaju, 38,

45, 52podzbiorowe, 63

liczność zbioru, 51liść, 87, 89, 138

Łłańcuch, 14

koniec, 14nienasycony, 159początek, 14

łuk, 88, 125łuki wielokrotne, 88

Mmacierz, 264

cykli, 94, 117, 135, 136fundamentalna, 135

incydencji, 190grafu, 91, 104, 116grafu skierowanego, 93

sąsiedztwa, 97, 98, 116, 117, 125

stopni, 101transponowana, 96wag, 152

Matlab, 91matroid, 181

baz, 181bicykliczny, 188binarny, 184, 186, 187cykli, 182, 194dualny, 192Fano, 186, 193grafowy, 186, 194jednorodny, 184, 197macierzowy, 185

ograniczenie, 186reprezentowalny, 184rozpięć, 183ściągnięcie, 186transwersalny, 192trywialny, 184wolny, 184z funkcją rzędu, 182zbiorów niezależnych, 182

Maxima, 234metryka, 107minor

grafu, 108matroidu, 187

moc zbioru skończonego, 27most, 121, 127, 129multigraf, 86

skierowany, 88multizbiór, 50

Nnastępnik

lewy, 136prawy, 136

nieporządek, 62nierówność

Bernoulliego, 24Weierstrassa, 24

niezależność liniowa, 263niezawodność, 199niezmiennik

izomorfizmu, 197Tutte’a-Grothendiecka, 198

nośnikjęzyka, 206słowa, 206

Oobraz zbioru, 27obszar grafu, 109obwód grafu, 87Octave, 91odległość, 263odległość między

wierzchołkami, 107, 138ograniczenie

matroidu, 186

ograniczenie zbiorudolne, 14górne, 14

orientacja grafu, 125

Ppermanent macierzy, 35, 140permutacja, 30

bez punktów stałych, 62cykliczna, 33element neutralny, 33identycznościowa, 32nieparzysta, 35odwrotna, 33parzysta, 35transpozycja, 35zapis znormalizowany, 38

pętla, 89, 96grafu, 86, 88, 98matroidu, 182

pętle wielokrotne, 86, 88pierścień skończony, 169płaszczyzna

afiniczna, 178Fano, 176, 186rzutowa, 176, 177

podgraf, 91podłoga, 18podmacierz, 264podstawa indukcji, 9podział

liczby, 67sprzężony, 68

zbioru, 54pokrycie

krawędziowe grafu, 141wierzchołkowe grafu, 141

porządekczęściowy, 11, 24leksykograficzny, 50liniowy, 12

potęgakrocząca, 28przyrastająca, 28, 30, 51,

52, 64, 78ubywająca, 28, 29, 31, 38,

44, 64

287Skorowidz

Poleć książkęKup książkę

Page 26: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

problem kojarzenia małżeństw, 143, 190

promieńdrzewa, 139grafu, 107zbieżności, 265

przeciwdziedzina funkcji, 27przeciwobraz zbioru, 27, 57przekrój, 158

minimalny, 158normalny, 158

przepływ, 157przepustowość, 158przestrzeń

liniowa, 171metryczna, 107, 263

pseudolas, 188

Qq-analog, 175

trójkąta Pascala, 180

Rreguła

sumowania po górnym indeksie, 53

sumowania równoległego, 53

rekurencja, 15relacja, 11, 27

antysymetryczna, 11przechodnia, 11przystawania, 262równoważności, 54, 178symetryczna, 54zwrotna, 11

rodzinabaz, 181cykli, 182, 183osiągalna, 203zbiorów niezależnych, 182,

183rozdrobnienie podziału, 55rozkład permutacji na cykle,

33, 39, 42rozpięcie zbioru, 183równanie charakterystyczne, 21

równanie rekurencyjne, 17, 75liniowe, 19

jednorodne, 19o stałych

współczynnikach, 19rzędu k, 19

różnicasymetryczna, 88, 186, 262zbiorów, 262

rządcięcia, 135cykliczności, 131, 134geometrii rzutowej, 176grafu, 131grupy, 169, 199grupy skończonej, 199macierzy, 191, 264

cykli, 136matroidu, 182permutacji, 34, 42zbioru, 182, 203

SScilab, 91sieć, 158

przepływowa, 157silnia, 15, 31, 39, 43, 174

dolna, 28, 29, 31, 38, 44, 62, 64

górna, 28, 30, 51, 52, 64, 78skierowanie grafu, 125składowa

silnie spójna, 91spójna, 91

skojarzenie, 140doskonałe, 140maksymalne, 140, 162pełne, 140

słowokodowe, 209proste, 206

splot, 73Fibonacciego, 79

spójnośćkrawędziowa, 127wierzchołkowa, 127

stopień wierzchołka, 89, 90, 112, 137, 138

wejściowy, 90, 94, 122wyjściowy, 89, 94, 122

strumień, 157maksymalny, 158

sufit, 18suma

prosta matroidów, 187zbiorów, 262

surjekcja, 27symbol

Gaussa, 174Newtona, 44, 174

systemosiągalny, 203zachłanny, 203, 207

szeregformalny, 72odwrotny, 74potęgowy, 265, 266

Śściana grafu, 109ściągnięcie

krawędzi, 108, 114matroidu, 186

ściek, 157średnia

teoretyczna, 266ważona, 209, 266

średnicadrzewa, 139grafu, 107

Ttekst, 209tożsamość

Cassiniego, 21Cauchy’ego, 47

transwersala, 189częściowa, 189

trójkąt Pascala, 46turniej, 125twierdzenie

Brooksa, 112Cauchy’ego, 38

288 Skorowidz

Poleć książkęKup książkę

Page 27: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Cayleya, 132Diraca, 124Eulera, 109Fermata, 53Forda-Fulkersona, 128, 159Gallaia, 141Halla, 143, 190Koniga, 114, 142Kuratowskiego, 108Landaua, 126Maclaurina, 265, 266Mengera, 128, 164Meyniela, 126o czterech barwach, 113o kojarzeniu małżeństw,

142Orego, 124Redeiego, 125Rado, 192Rado-Edmondsa, 208Robbinsa, 126Thomassena, 126Vizinga, 112, 113

typ permutacji, 33, 37, 38, 42

Uujście, 157, 162ułamki proste, 265usunięcie

krawędzi, 108, 114wierzchołka, 108

Wwaga

elementu, 207krawędzi, 152symbolu, 209wierzchołka, 138zbioru, 207

warstwa, 178, 263warstwy funkcji, 57

wartość oczekiwana, 209, 266warunek

brzegowy, 19początkowy, 11

wejście, 157, 158wektor, 263wielomian

chromatyczny, 114, 118, 198, 200

nierozkładalny, 170, 179przepływowy, 200Tutte’a, 196

wierzchołek, 86, 98, 105, 109, 111, 136, 140

centralny, 138, 147centroidalny, 138, 147incydentny z krawędzią, 89izolowany, 89, 92końcowy, 89rozcinający, 127wiszący, 138

wierzchołkiincydentne, 88, 89sąsiednie, 89, 137

własnośćprzedziałowa, 205Steinitza, 181wymiany, 181

mocna, 212współczynnik

dwumianowy, 44, 77wielomianowy, 47

wyjście, 158wymiar

geometrii rzutowej, 176warstwy, 178

wysokość drzewa, 87wyznacznik, 36, 264wzór

Cayleya, 147, 244dwumianowy, 44

Newtona, 44Robbinsa, 31Stirlinga, 31

Zzasada

indukcji matematycznej, 9, 11

maksimum, 13minimum, 13szufladkowa Dirichleta, 55

uogólniona, 58włączania-wyłączania, 59

zbiórczęściowo uporządkowany,

11domknięty, 183krawędzi, 86, 114, 186łuków, 88niezależny, 182, 203permutacji, 31, 33rozdzielający

graf spójny, 127wierzchołki, 128

rozspajającygraf spójny, 127wierzchołki, 128

wewnętrznie stabilny, 140wierzchołków, 86, 114wykonalny, 203z powtórzeniami, 50złoty podział, 22

złożeniepermutacji, 32, 35transpozycji, 36

zmienna losowa, 266znak permutacji, 35, 37

Źźródło, 157, 162

289Skorowidz

Poleć książkęKup książkę

Page 28: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź

Poleć książkęKup książkę

Page 30: Księgarnia internetowaSą algorytm Prima, zaczynamy od dowolnego wierzchołka, na przy-kład od v2. Krawęź o najmniejszej wadze do pozostałych wierzchołków to e23.Odzbioruwierzchołków{v2,v3}dopozostałychprowadzikrawęź