z n zer i k − 1 jedynek, czyli n+k−1
1 2n = (2n)! . Spełniają one
Matematyka dyskretna (L) - cheatsheet k−1 . 4 Wzór włączeń i wyłączeń Cn = n+1 n (n+1)!n!
Autor: Tomasz Woszczyński, strona nr 1 Dwumian Newtona n mod d = r wtw, gdy 0 ≤ r < d ∧ n n
(−1)k−1 zależność Cn = 2n 2n
n − n+1 .
S P P T
n
n i n−i ∃(k ∈ Z) n = kd + r Ai = Ai
Dla n ∈ N mamy (x + y)n =
P
1 Wariacje i x y . Przystawanie modulo i=1 k=1 I⊆{1,...,n} i∈I Liczby Catalana posiadają różne
5 Rekurencja, zależności rekurencyjne interpretacje kombinatoryczne, takie
i=0 a ≡n b wtw, gdy a mod n = b mod n
Liczba wariacji z powtórzeniami
jak liczba poprawnych rozmieszczeń
Dla zbiorów A, B o odpowiednio m, n Inna tożsamość (jaka?)
Własności funkcji modulo Liczby Fibonacciego nawiasów, liczba dróg w układzie
elementach liczba funkcji ze zbioru A nk m k n m−k
= m n−k 1. a + b ≡n a mod n + b mod n Niech F0 = 0, F1 = 1, wtedy Fn = Fn−1 + współrzędnych w I ćwiartce, liczba
w B wynosi nm , czyli |{f : A → B} = nm |. Zasada szufladkowa Dirichleta 2. a · b ≡n (a mod n) · (b mod n) Fn−2 dla n > 1. drzew binarnych, liczba podziałów
Liczba wariacji bez powtórzeń Niech k, s ∈ N+ . Jeśli wrzucimy k kulek Podzielność Własności liczb Fibonacciego wielokąta wypukłego na trójkąty.
Dla zbiorów A, B o odpowiednio do s szuflad (Dirichleta), a kulek jest Niech n, d ∈ Z i d , 0. Wtedy: Każde dwie kolejne liczby Fibonacciego Funkcje tworzące (OGF)
m, n elementach liczba funkcji więcej niż szuflad (k > s), to w którejś 1. d|n wtw, gdy ∃(k ∈ Z) n = kd są względnie pierwsze. Dla ciągu han i można utworzyć funkcję
różnowartościowych ze zbioru A w szufladzie będą przynajmniej dwie kulki. 2. d|n wtw, gdy n mod d = 0 gcd(Fm , Fn ) = Fgcd(m,n) ∞
ai xi = a0 +a1 x+a2 x2 +. . . = A(x), która
P
n! .
B wynosi n(n − 1) . . . (n − m + 1) = (n−m)! Innymi słowy, dla skończonych zbiorów 3. d|n wtw, gdy n ≡d 0 Szereg harmoniczna
A, B, jeśli |A| > |B|, to nie istnieje funkcja 4. d|n ∧ d|n to d|(n + n ) i=0
Liczba podzbiorów różnowartościowa z A w B. Dla k > s · i 1 2 1 2 Hn = Hn−1 + n1 jest funkcją tworzącą tego ciągu. Poniżej
kulek oraz s szuflad będzie w jakiejś Największy wspólny dzielnik (NWD, gcd) kilka typowych funkcji tworzących dla
Zbiór A o n elementach ma Niech a, b ∈ N, wtedy Podział płaszczyzny na obszary
|{B : B ⊆ A} = 2n | podzbiorów. szufladzie i + 1 kulek. ciągów:
Liczba rozwiązań x1 + x2 + . . . + xk = n gcd(a, b) = max{d ∈ N : d|a ∧ d|b} (
1 dla n = 0
1 dla ciągu h1i, czyli n dla hni.
1. 1−x
Para podzbiorów (inaczej stars and bars) 1−x
Własności NWD pn = 1 dla ciągu h2n i.
Dla U będącego n-elementowym można Liczba rozwiązań takiego równania, pn−1 + n dla n ≥ 1 2. 1−2x
wyznaczyć dwa jego podzbiory A, B interpretowana również jako liczba Dla a > b względnie pierwszych (a ⊥ b) i
0 ≤ m < n: 3. 1 2 dla ciągu h1, 2, 3, . . .i.
takie, że A ⊆ B na |{(A, B) : A ⊆ B ⊆ U }| = przedstawień liczby natrualnej n w Liczba nieporządków n-elementowych (1−x)
gcd(an − bn , am − bm ) = agcd(m,n) −
|{f : U → {0, 1, 2}}| = 3n sposobów. postaci k liczb naturalnych (róznych n (−1)i 4. 1 dla ciągu h1, 0, 1, 0, . . .i.
bgcd(m,n) . 1−x2
P
Liczba permutacji 1. dn = n! ·
od zera), wynosi n−1 i!
k−1 . Przedstawienia Algorytm Euklidesa i=0
Zbiór U o n elementach można różniące się kolejnością składników Przesunięcie wyrazów w prawo o k
Dla a ≥ b > 0 korzystamy z własności: 2. dn+1 = n(dn + dn+1 ) dla d0 = 1, d1 = 0. miejsc
spermutować na n! sposobów. uważamy za różne! gcd(a, b) = gcd(b, a mod b) oraz Operator przesunięcia E Aby z ciągu ha0 , a1 , a2 , . . .i o OGF
Sufit, podłoga, część ułamkowa 2 Asymptotyka Mamy ciąg han i = ha0 , a1 , . . . , an , . . .i.
gcd(a, 0) = a. A(x) otrzymać ciąg h0, . . . , 0, a0 , a1 , . . .i,
Niech x ∈ R, n ∈ Z, wtedy: Niech f , g : N → R ≥ 0, wtedy Wtedy E han i = han+1 i = ha1 , . . . , an , . . .i.
1. bxc = n ⇔ n ≤ x < n + 1 możemy mówić o takich funkcjach gcd(a, b): w którym pierwsze k wyrazów jest 0,
2. dxe = n ⇔ n − 1 < x ≤ n while b != 0: Złożenie operatora przesunięcia należy pomnożyć funkcję tworzącą przez
asymptotycznych:
3. {x} = x − bxc Notacja dużego O
c = a mod b E2 han i = E (E han i) = ha2 , . . . , an , . . .i xk , więc mamy xk A(x).
a = b
Własności sufitu i podłogi Mamy f (n) = O(g(n)) wtw, gdy b = c Operatory działające na ciągi Przesunięcie wyrazów w lewo o k miejsc
Niech x ∈ R, n ∈ Z, wtedy: ∃(c > 0) ∃(n0 ∈ N) ∀(n ≥ n0 ) f (n) < cg(n). return a 1. han i + hbn i = han + bn i = ha0 + b0 , . . .i Aby z takiego ciągu jak wyżej otrzymać
1. bx + nc = n + bxc, ponieważ Ponadto dla C, a, α, β ∈ R zachodzą takie Rozszerzony algorytm Euklidesa 2. c han i = hcan i = hca0 , ca1 , . . .i ciąg hak , ak+1 , . . .i, należy wykonać takie
bxc + n ≤ x + n < bxc + n + 1. własności: Co anihiluje dane ciągi? działanie:
Dla a ≥ b > 0:
Ponadto mamy: 1. ∀(α, β) α ≤ β ⇒ nα = O(nβ ),
∃(x, y ∈ Z) xa + yb = gcd(a, b) 1. hαi
D =⇒ E E − 1. A(x)− a0 x0 +a1 x1 +...+ak−1 xk−1
2. dx + ne = n + dxe .
3. b−xc = − dxe
C
2. ∀(α > 1) n = O(a ), n 2. αai =⇒ E − a. xk
gcd(a, b):
3. ∀(α > 0) (ln n)C = O(nα ). Przerwy pomiędzy wyrazami
D E
Podzbiory k-elementowe x = 1, y = 0, r = 0, s = 1 3. αai + βbi =⇒ (E − a)(E − b).
Przydatna może okazać się reguła while b != 0: Funkcją tworzącą takiego ciągu
Niech |U | = {1, 2, . . . , n} oraz Pnk = de l’Hospitala, więc gdy f (n) i n n
* +
∞
c = a mod b αk aik =⇒
P Q
4. (E − ak ). ai x i =
P
{A ⊆ U : |A| = k}. Wtedy (n−k)! n! = k! Pnk , g(n) dążą do nieskończoności, to q = a div b ha0 , 0, a1 , 0, a2 , 0, . . .i jest
a = b k=0 k=0 i=0
f (n) f 0 (n) 2
n! n
czyli Pnk = (n−k)!k! = k . 5. D αi + β =⇒ E (E − 1) . a0 + a1 x2 + a2 x4 + . . . = A(x2 ). Dla
lim g(n) = lim g 0 (n) . b = c
n→∞ n→∞
Symbol Newtona Notacja małego o r’ = r 6. (αi + β)a =⇒ (E − a)2 .
i ciągu o wyrazach co 3 miejsca byłoby to
A(x3 ), dla 4 to A(x4 ), dla n więc A(xn ).
n ∈ nN takich, że 0 ≤ k ≤ n zachodzi:
D E
Dla k, f (n)
f (n) = o(g(n)) wtw, gdy lim g(n) = 0.
s’ = s 7. (αi + β)ai + γbi =⇒ (E − a)2 (E − b).
1. nk = n−k n→∞ r = x - q * r *
n−1
+ Co drugi wyraz ciągu (pochodne)
s = y - q * s
2. nk + k+1
n
= n+1
Notacja duże Omega (Ω) 8.
P
αk i k ai =⇒ (E − a)n . Funkcją tworzącą ha0 , 0, a2 , 0, a4 , 0, . . .i
k+1 x = r’ A(x)+A(−x)
f (n) = Ω(g(n)) wtw, gdy y = s’ k=0 jest , dla h0, a1 , 0, a3 , . . .i mamy
Tożsamość absorpcyjna ∃(c > 0)∃(n0 ∈ N)∀(n ≥ n0 )f (n) ≥ cg(n). 2
Dodatkowe własności anihilatorów A(x)−A(−x)
Dla k ≥ 1 zachodzi nk = nk n−1 .
k−1 . Notacja Theta (Θ) return a, x, y 2
Jeśli EA anihiluje hai i, to ten sam
Tożsamość Cauchy’ego f (n) = Θ(g(n)) wtw, gdy f (n) = Ω(g(n)) ∧ Liczby względnie pierwsze anihilator anihiluje również ciąg c han i Funkcją tworzącą takiego ciągu
r f (n) = O(g(n)). Niech a, b ∈ Z, wtedy te liczby są dla dowolnej stałej c. h0, a1 , 2a2 , 3a3 , 4a4 , . . . , iai , . . .i jest
m+n P m n Jeśli EA anihiluje hai i i EB anihiluje hbi i,
r = i r−i Notacja małe Omega (ω) względnie pierwsze, gdy gcd(a, b) = 1. pochodna funkcji A(x) przesunięta
i=0 f (n) to EA EB anihiluje hai i ± hbi i.
f (n) = ω(g(n)) wtw, gdy lim = g(n) = ∞. Coś o liczbach pierwszych Liczby Catalana o jedno miejsce w prawo, a więc xA0 (x).
Tożsamość Pascala n→∞
n+1 n n 1. Jeśli 2n − 1 jest liczbą pierwszą, to n Wykorzystanie całek w OGF
3 Arytmetyka modularna Cn oznacza n-tą liczbę Catalana, wyraża
k+1 = k + k+1 jest liczbą pierwszą. Aby
D a odnaleźć funkcję tworzącą ciągu
Funkcja modulo n
Kulki i szufladki 2. Jeśli an −1 jest liczbą pierwszą, to a = 2.
P
się przez Cn = Ci−1 Cn−i dla C0 = 0. a a
E
n kulek do k szuflad można wrzucić na Niech n, d ∈ Z ji d k, 0. Wtedy: 3. Jeśli 2n + 1 jest liczbą pierwszą, to n i=1
0, 11 , 22 , . . . , ii , . . . należy scałkować
tyle sposobów, ile jest ciągów złożonych n mod d = n − dn · d. jest potęgą liczby 2. Można je również przedstawić wzorami funkcję tworzącą A(x) i przesunąć ją w
Matematyka dyskretna (L) - cheatsheet Stopień wierzchołka podgraf spójny H 0 , którego podgrafem do zbioru B. Podział wierzchołków nie Algorytmy na znajdowanie MST
Autor: Tomasz Woszczyński, strona nr 2 Stopień wierzchołka u oznaczany przez właściwym jest H. zawsze jest jednoznaczny! Graf G jest Algorytm Kruskala polega na
deg(u) to liczba krawędzi incydentnych Drzewo i las dwudzielny wtw, gdy nie zawiera cyklu dodawaniu kolejnych krawędzi w taki
R1 A(x)−a ∞ a do u. Każda pętla incydentna do u Graf G = (V , E) jest acykliczny, jeśli o nieparzystej długości. sposób, aby nie stworzyły one żadnego
lewo: 0
dx =
P i i
x i x . dokłada się do stopnia u liczbą 2. nie zawiera żadnego cyklu. Las Lemat o zamkniętej marszrucie cyklu.
0 i=0
Lemat o uściskach dłoni jest acyklicznym grafem, a drzewo Każda zamknięta marszruta o
Inne funkcje tworzące acyklicznym grafem spójnym. Drzewa nieparzystej długości zawiera cykl
KRUSKAL:
x(1+x) Niech G = (V , E) P
będzie nieskierowanym sort(E) wzgledem wagi
są spójnymi składowymi lasu, a więc las
D E
1. n2 odpowiada OGF . grafem. Wtedy deg(v) = 2 |E|. o nieparzystej długości. T = {}
(1−x)3 składa się z drzew.
D E 2 v∈V
Drzewo jest najmniejszym grafem Graf o minimalnym stopniu k for i in [1, m]:
2. n3 odpowiada OGF x x +4x+1 4 . Lemat o uściskach dłoni dla grafu spójnym, a więc jeśli chcemy zbudować Niech G będzie grafem prostym, w if (T + {e(i)} nie tworzy
(1−x)
skierowanego którym każdy wierzchołek ma stopień zadnego cyklu):
3. n+k graf spójny G na zbiorze wierzchołków
D E
odpowiada OGF 1 .
k (1−x)n+1 Niech G = (V , E) przynajmniej k. Wówczas G zawiera T = T + {e(i)}
P będzie skierowanym V , to G musi być drzewem. ścieżkę o długości k. Jeśli k ≥ 2, to G
Liczba podziałów liczby n grafem. Wtedy degin (v) = degout (v). Liść Algorytm Prima polega na dobieraniu
∞ v∈V zawiera cykl o długości przynajmniej
1. Dowolne składniki:
Q 1 Liść to wierzchołek o stopniu 1. Dowolne k + 1. najlżejszych krawędzi do grafu T .
1−xi Reprezentacje grafów drzewo o n ≥ 2 wierzchołkach zawiera
i=1 Algorytmy przeszukiwania grafów
∞ Graf można reprezentować za pomocą przynajmniej 2 liście. PRIM:
(1 + xi ) Przeszukiwanie grafu w głąb
Q
2. Różne składniki: list sąsiadów, macierzy sąsiedztwa lub Most T = {}
i=1 macierzy incydencji. Most to krawędź, której usunięcie U = {1} (dowolny wierzcholek G)
∞ DFS(u): while (U != V):
3. Nieparzyste składniki:
Q
(1 + x 2i−1 ) Izomorfizm grafów zwiększa liczbę spójnych składowych u.visited = true
Dwa grafy nieskierowane proste G = grafu, ponadto żaden most nie leży na
e = najlzejsza krawedz (u, v),
i=1 for each neighbour v of u: taka ze u jest z U,
m−1Q 1 (V , E) i H = (V 0 , E 0 ) są izomorficzne wtw, cyklu. if not v.visited
a v jest z V-U
4. Składniki mniejsze od m: i gdy istnieje bijekcja f : V → V 0 taka, że Charakteryzacja drzewa DFS(v)
T = T + {(u, v)}
1−x
i=1
∞ ∀(u, v ∈ V ) {u, v} ∈ E ⇔ {f (u), f (v)} ∈ E 0 . Niech G = (V , E) będzie
Przeszukiwanie grafu wszerz
U = U + {v}
5. Różne potęgi 2:
Q
(1 + x ) 2 i n-wierzchołkowym grafem
Marszruta, ścieżka, droga, cykl nieskierowanym (n ≥ 1). Wtedy Algorytm Boruvki polega na
i=1
1. Marszruta o długości k to ciąg wszystkie następujące stwierdzenia BFS(v): dodawaniu najlżejszych krawędzi do
Rekursja uniwersalna hv0 , v1 , . . . , vk i taki, że queue Q = {}
Niech a, b, c będą dodatnimi stałymi, ∀(0 są równoważne: T , łączeniu ich w superwierzchołki i
≤ i < k) {vi , vi+1 } ∈ E. 1. G jest spójny i acykliczny (G jest Q.enqueue(v) wykonywaniu algorytmu od początku.
rozwiązaniem równania rekurencyjnego 2. Droga to marszruta, w której żadna v.visited = true
drzewem).
( krawędź nie występuje dwukrotnie. 2. G jest spójny i ma n − 1 krawędzi. BORUVKA:
b dla n = 1 while (Q != empty):
T (n) =
aT ( nc ) + bn dla n > 1 3. Ścieżka to marszruta, w której żaden 3. G jest acykliczny i ma n − 1 krawędzi. u = Q.dequeue ()
T = V
wierzchołek nie występuje dwukrotnie. 4. Dla każdego u, v ∈ V w G jest tylko for each neighbour w of u: while (T != MST):
4. Cykl to marszruta, w której pierwszy jedna u − v-ścieżka. if not w.visited: wybierz najmniejsza krawedz
dla n będących potęgą liczby c jest z najmniejsza waga i dodaj
wierzchołek jest taki sam jak ostatni, 5. G jest spójny i każda krawędź jest Q.enqueue(w)
a poza tym, żaden wierzchołek nie mostem. w.visited = true ja do zbioru E’
O(n) dla a < c
występuje dwukrotnie. 6. G nie ma cykli, ale dołożenie
O(n log n) dla a = c
gdy jest wiecej niz jedna
T (n) = u − v-marszruta to marszruta taka, że jakiejkolwiek krawędzi tworzy cykl.
log a
Czas działania DFS oraz BFS to O(V + E). spojna skladowa , polacz
O n c dla a > c
v0 = u i vk = v, analogicznie definiujemy Liczba liści w dowolnym drzewie wszystkie wierzcholki w
u − v-drogę i u − v-ścieżkę. Drzewo rozpinające superwierzcholki i wykonaj
Niech t oznacza liczbę wierzchołków
6 Teoria grafów Marszruta/droga jest zamknięta, gdy stopnia ii w drzewie, wtedy Niech G = (V , E) będzie grafem spójnym. algorytm od poczatku
Graf nieskierowany v 0 = vk . Zamknięta ścieżka to cykl. n
Drzewo rozpinające grafu G to podgraf
Graf nieskierowany to para zbiorów Graf spójny
P T = (V , E 0 ), który jest drzewem. T Wszystkie powyżej przedstawione
t1 = (i − 2)ti + 2 oznacza liczbę liści algorytmy działają w czasie
(V , E), gdzie E = {{u, v} : u, v ∈ V }. V to Nieskierowany graf G = (V , E) jest i=3 zawiera wszystkie wierzchołki grafu G.
zbiór wierzchołków, E to zbiór krawędzi. spójny, jeśli z każdego wierzchołka da w drzewie. Nie zależy ona od t2 , gdyż Las rozpinający O(|E| · log |V |).
Algorytm Reverse-delete polega na
"Patologie"w grafach się dojść do innego, tzn. dla każdego "przedłużenie"liścia kolejną krawędzią Niech G = (V , E) będzie grafem usuwaniu kolejnych krawędzi aby
Pętla to krawędź postaci {v, v}, a wierzchołka u, v ∈ V istnieje u − nie zmienia liczby liści w drzewie. niekoniecznie spójnym. Las rozpinający otrzymać MST .
krawędzie równoległe to dwie lub więcej v-ścieżka. Wierzchołek centralny, promień grafu grafu G to podgraf F = (V , E 0 ), który
krawędzi łączących te same wierzchołki Dopełnienie grafu Niech d(u, v) oznacza odległość jest lasem, którego liczba spójnych KRUSKAL(edges [] E):
u, v (dla u , v). Dopełnienie grafu G oznaczamy przez wierzchołków u, v, czyli długość składowych jest taka sama jak liczba sort(E) malejaco wzgledem wagi
Graf prosty G, a definiujemy je jako graf G = (V , E 0 ) najkrótszej ścieżki łączącej je. Dla spójnych składowych grafu G. i = 0
Graf G = (V , E) jest prosty, jeśli nie 0 wtw, gdy {u, v} < E. każdego wierzchołka v definiujemy Minimalne drzewo rozpinające (MST)
zawiera pętli ani krawędzi równoległych. taki, że {u, v} ∈ E r(v) = max{d(v, u) : u ∈ V (G)}. while i < size(E):
Podgraf Niech G = (V , E) będzie grafem spójnym edge = E[i]
Graf skierowany Wierzchołek w, dla którego r(w) = o nieujemnych wagach na krawędziach,
Graf nieskierowany to para zbiorów Podgrafem grafu G = (V , E) jest dowolny
0 , E 0 ) taki, że V 0 ⊆ V i E 0 ⊆ E. min{r(v) : v ∈ V (G)} nazywamy a graf T = (V , E 0 ) jego drzewem
usun E[i]
if graf nie jest spojny:
(V , E), gdzie E = {(u, v) : u, v ∈ V }. V to graf H = (V wierzchołkiem centralnym grafu G, rozpinającym. E[i] = edge
zbiór wierzchołków, E to zbiór krawędzi Podgraf jest właściwy, jeśli G , H. a liczbę r(G) = r(w) promieniem grafu G. Wagę definiuje funkcja c : E → i = i + 1
skierowanych lub łuków. Spójna składowa Graf dwudzielny R+ . Wtedy
P wagą drzewa rozpinającego
Krawędź incydentna Spójna składowa grafu G to dowolny Graf G = (V , E) jest dwudzielny wtw, gdy c(T ) = c(e). Minimalnym drzewem return edges [] E
Krawędź e jest incydentna do podgraf spójny H = (V 0 , E 0 ) grafu G, istnieje podział zbioru V na zbiory A i B e∈E 0
wierzchołka u, jeśli jeden z końców który jest maksymalny ze względu na taki, że dla każdej krawędzi e ∈ E jeden rozpinającym (MST) grafu G jest drzewo Złożoność czasowa tego algorytmu to
e to u. zawieranie, tzn. taki, że nie istnieje koniec e należy do zbioru A, a drugi rozpinające T o minimalnej wadze. O(E log V (log log V )3 ).
Matematyka dyskretna (L) - cheatsheet Waga ścieżki, najlżejsza ścieżka jest taki sam jak końcowy), która zawiera Obliczanie najmniejszego wagowo cyklu sposób, by żadne dwie krawędzie się nie
Autor: Tomasz Woszczyński, strona nr 3 Waga ścieżki P to suma wag krawędzi każdą krawędź e ∈ E. Hamiltona przecinały.
leżących na P . Najlższejsza/najkrótsza Warunki istnienia drogi/cyklu Eulera Odległości między krawędziami Rysunek grafu
Skojarzenie (matching) (względem c : E → R+ ) ścieżka z s do t to Spójny graf G posiada drogę Eulera zapisane są jako funkcja wagi Łamana (linia wielokątna, linia łamana)
Niech G = (V , E) będzie grafem spójnym. ta, która ma najmniejszą wagę. wtw, gdy zawiera 0 lub 2 wierzchołki c : E → R ≥ 0. Zakładamy, że skrót to ciąg skończenie wielu odcinków, z
Skojarzenie grafu G to dowolny pozdbiór Niech S ⊆ V , a s będzie ustalonym o stopniu nieparzystym. Spójny graf G zawsze się opłaca, czyli ∀u, v, w ∈ V : których każdy zaczyna się tam, gdzie
krawędzi M ⊆ E taki, że żadne dwie wierzchołkiem z V . Ścieżka P z s do v jest posiada cykl Eulera wtw, gdy wszystkie c(u, v) ≤ c(u, w) + c(w, v). Niech OP T kończy poprzedni; poza tym żadne dwa
krawędzie z M nie mają wspólnego prawie S-owa/osiągalna bezpośrednio jego wierzchołki mają stopień parzysty. oznacza sumaryczną długość optymalnej odcinki nie mają punktów wspólnych.
końca. z S, jeśli wszystkie wierzchołki na P W grafie skierowanym warunkiem trasy. Wtedy c(MST (G)) ≤ OP T . Rysunek grafu G = (V , E)
Największe skojarzenie oprócz v są w S. na istnienie cyklu Eulera jest taka Algorytm na obliczenie najmniejszego na płaszczyźnie to funkcja
Skojarzenie największe grafu G to d(v) to waga najkrótszej ścieżki z s do v. sama liczba krawędzi wychodzących i wagowo cyklu Hamiltona jest różnowartościowa f taka, że
skojarzenie o maksymalnej liczbie t(v) to waga najkrótszej prawie S-owej wchodzących dla każdego wierzchołka. następujący: odwzorowuje każdy wierzchołek v ∈ V
krawędzi. ścieżki z s do v, a gdy taka ścieżka nie 1. Oblicz MST (G). na punkt f (v) płaszczyzny oraz każdą
Wierzchołki skojarzone, wolne istnieje, to t(v) = ∞. Aby spójny graf skierowany miał drogę 2. Podwój MST (G) otrzymując T 2 . krawędź (u, v) na łamaną łączącą f (u) z
Niech G = (V , E) będzie grafem Algorytm Dijkstry Eulera, muszą zachodzić: 3. Znajdź cykl Eulera CE podwojonego f (v).
spójnym, a M jakimś skojarzeniem Algorytm Dijkstry służy do znajdowania 1. dla dokładnie jednego wierzchołka jest MST (G), czyli T 2 . Mówimy, że rysunek nie ma przecięć,
w G. Wierzchołek v ∈ V jest skojarzony wagi najkrótszych ścieżek. degin (v) = degout (v) + 1, 4. Skróć CE do cyklu Hamiltona. jeśli dla dowolnych dwóch krawędzi
w M, jeśli jest końcem jakiejś 2. dla dokładnie jednego wierzchołka jest Tak obliczona trasa ma wagę ≤ 2OP T . e, e0 , f (e) ∩ f (e0 ) może zawierać jedynie
krawędzi z M. Wierzchołek v ∈ V DIJKSTRA: degin (v) + 1 = degout (v), obrazy wspólnych końców e i e0 .
jest wolny/nieskojarzony, jeśli żadna Algorytm Christofidesa (najmniejszy
S = {s} 3. dla każdego innego niż dwa powyższe wagowo cykl Hamiltona) Graf G jest planarny, jeśli posiada
krawędź z M nie jest z nim incydentna. d(s) = 0 rysunek bez przecięć.
wierzchołki jest degin (v) = degout (v). 1. Oblicz MST (G).
Ścieżka alternująca 2. Oblicz najmniejsze wagowo Graf płaski
for each neighbour v of s:
Ścieżka P w grafie G jest alternująca Ścieżka i cykl Hamiltona skojarzenie pełne M na podgrafie Konkretny rysunek bez przecięć grafu G
t(v) = c(s, v)
(względem M) jeśli krawędzie na P na for other vertices: Niech G = (V , E) będzie grafem spójnym zawierającym wierzchołki V − , które nazywamy grafem płaskim.
przemian należą i nie należą do M. while (S != V): nieskierowanym. Ścieżka Hamiltona mają stopień nieparzysty w MST (G). Ściana takiego grafu to spójny
Ścieżka powiększająca u = argmin{t(u): u not in S} grafu G to ścieżka (wierzchołki się 3. Znajdź cykl Eulera CE multigrafu obszar płaszczyzny po usunięciu
S = S + {u} linii reprezentujących krawędzie.
Ścieżka P w grafie G jest powiększająca nie powtarzają), która zawiera każdy MST (G) + M.
update all t(v):
wierzchołek v ∈ V . Cykl Hamiltona 4. Skróć CE do cyklu Hamiltona. Innymi słowy, ściana to zbiór punktów
(względem M), jeśli jest alternująca for each neighbour v płaszczyzny, które da się połączyć
względem M i jej końce są nieskojarzone grafu G to cykl (wierzchołki się nie Tak otrzymana trasa ma wagę ≤ 32 OP T .
(not in S) of vertex u:
powtarzają), który zawiera każdy Kolorowanie grafu krzywą nieprzecinającą żadnej krawędzi.
(w M). t(v) = min{t(v),
wierzchołek v ∈ V . Granica ściany zawiera krawędzie
Skojarzenie doskonałe/pełne d(u)+c(u,v)} Niech graf G = (V , E) będzie styczne z tą ścianą. Długość granicy
Skojarzenie doskonałe/pełne grafu Pokrycie wierzchołkowe Warunki istnienia drogi/cyklu Hamiltona grafem prostym. Kolorowaniem ściany to długość zamkniętej marszruty
G to skojarzenie, w którym każdy Sprawdzenie, czy graf G = (V , E) wierzchołkowym grafu G nazywamy przechodzącej przez wszystkie
wierzchołek z V jest skojarzony. Niech G = (V , E) będzie grafem. Pokrycie zawiera ścieżkę lub cykl Hamiltona jest funkcję f : V → Kolory taką, że krawędzie granicy tej ściany. Niech
Cykl alternujący
wierzchołkowe G to dowolny pozdbiór problemem trudnym obliczeniowo - jest ∀(u, v) ∈ E : f (u) , f (v). Liczba fi oznacza długość granicy i-tej ściany
V 0 ⊆ V taki, że każda krawędź z E ma to problem NP-trudny. chromatyczna grafu G (oznaczana grafu planarnego G = (V , E), a l liczbę
Cykl C w grafie G jest alternujący przynajmniej jeden z końców w V 0 .
względem M jeśli krawędzie na C na Warunki konieczne na istnienie cyklu χ(G)) to najmniejsza liczba kolorów, jaką l
ścian G. Wtedy
P
przemian należą i nie należą do M. Najmniejsze pokrycie wierzchołkowe Hamiltona można pokolorować graf G. fi = 2 |E|.
Najmniejsze pokrycie wierzchołkowe i=1
Twierdzenie Berge’a grafu G to to spośród pokryć Jeśli graf G = (A ∪ B, E) jest dwudzielny, Własności liczby chromatycznej Twierdzenie Jordana
Skojarzenie M grafu G jest największe wierzchołkowych G, które zawiera to warunkiem koniecznym na istnienie Przez ω(G) oznaczamy wielkość
wtw, gdy G nie zawiera ścieżki najmniej wierzchołków. cyklu Hamiltona jest |A| = |B|. Zamknięta nieprzecinająca się łamana
największej kliki zawartej w G. Wtedy C o skończonej liczbie odcinków dzieli
powiększającej względem M. Jeśli graf G = (V , E) zawiera cykl χ(G) ≥ ω(G). ∆(G) to największy stopień płaszczyznę na dokładnie dwie ściany, z
Pokrycie wierzchołkowe a skojarzenie Hamiltona, to dla dowolnego zbioru S ⊆ wierzchołka w G. Wtedy χ(G) ≤ ∆(G) + 1.
Sąsiedztwo wierzchołków Niech G = (V , E) będzie grafem. Niech których każda ma C jako granicę.
Niech G = (V , E) będzie grafem a W ⊆ V M będzie jakimś skojarzeniem G, a V , graf G − S (powstały po usunięciu Twierdzenie Brooksa Graf dualny
podzbiorem wierzchołków. Sąsiedztwo W jakimś pokryciem wierzchołkowym. wierzchołków z S wraz z incedyntnymi
Jeśli G nie jest kliką ani nieparzystym Niech G = (V , E) będzie grafem
W oznaczane jako N (W ) definiujemy Wtedy |M| ≤ |W |. krawędziami) zawiera co najmniej |S| planarnym. Graf dualny G∗ dla grafu
spójnych składowych. cyklem, to χ(G) ≤ ∆(G).
jako zbiór Twierdzenie Koeniga płaskiego G tworzy się następująco: dla
Algorytm sekwencyjny kolorowania
{v ∈ V : ∃(w ∈ W ) {v, w} ∈ E}. Niech G = (V , E) będzie grafem Twierdzenie Diraca grafu każdej ściany (włącznie ze ścianą
Warunek Halla dwudzielnym, Mmax największym Jeśli graf G = (V , E) jest grafem prostym Niech Kolory = {1, 2, 3, . . . } i G = (V , E). zewnętrzną) grafu G dodajemy
Niech graf G = (A ∪ B, E) będzie grafem skojarzeniem G, a Wmin najmniejszym o co najmniej trzech wierzchołkach i Wtedy algorytmem sekwencyjnym jest: wierzchołek. Jeśli dwie ściany mają
dwudzielnym. pokryciem wierzchołkowym. Wtedy minimalnym stopniu wierzchołka δ(G) ≥ 1. Ustaw wierzchołki z V w pewien ciąg. wspólną krawędź e, łączymy wierzchołki
Dla każdego A0 ⊆ A zachodzi N (A0 ) ≥ |Mmax | = |Wmin |. |V | 2. Dla każdego wierzchołka v w utworzone w poprzednim kroku
2 , to G zawiera cykl Hamiltona. odpowiednie dla sąsiadujących ścian
A0 oraz dla każdego B0 ⊆ B zachodzi Droga i cykl Eulera kolejności dyktowanej przez ciąg
krawędzią przecinającą tylko krawędź
Niech G = (V , E) będzie grafem Twierdzenie Ore’a (albo Orego) wykonaj: przypisz wierzchołkowi v
N (B0 ) ≥ B0 . spójnym nieskierowanym, niekoniecznie Jeśli graf G = (V , E) jest grafem prostym najmniejszą liczbę naturalną spośród
e. Graf dualny nie jest wyznaczony
Skojarzenie doskonałe w grafie prostym. Droga Eulera grafu G to o co najmniej trzech wierzchołkach takich, które nie są przypisane żadnemu jednoznacznie (zależy od rysunku G).
dwudzielnym droga (krawędzie się nie powtarzają, i takim, że dla każdych dwóch sąsiadowi v. Wzór Eulera
Graf dwudzielny G zwiera skojarzenie wierzchołki mogą), która zawiera każdą wierzchołków u i v niepołączonych Graf planarny Niech G będzie spójnym grafem
doskonałe wtw, gdy spełniony jest w nim krawędź e ∈ E. Cykl Eulera grafu G to krawędzią zachodzi deg(u)+deg(v) ≥ |V |, Graf G jest planarny, gdy da się planarnym (niekoniecznie prostym)
warunek Halla. droga zamknięta (wierzchołek startowy to G zawiera cykl Hamiltona. go narysować na płaszczyźnie w taki o n wierzchołkach, m krawędziach i
Matematyka dyskretna (L) - cheatsheet minimum z dwóch minimów: Zastosowania przepływów
Autor: Tomasz Woszczyński, strona nr 4 min{c(e) − f (e)} po wszystkich
krawędziach w przód ścieżki oraz
f ścianach. Wówczas n − m + f = 2. min{f (e)} po wszystkich krawędziach
Dla niespójnego grafu o k spójnych wstecznych.
składowych jest to wzór n − m + f = k − 1. Zastosowanie ścieżki powiększającej
Liczba krawędzi grafu planarnego
Weźmy ścieżkę powiększającą P taką
Niech G będzie prostym grafem jak powyżej dla przepływu f o luzie .
planarnym o n ≥ 3 wierzchołkach. Zastosować P do przepływu f oznacza
Wówczas liczba krawędzi m tego grafu 0
nie przekracza 3n − 6. Jeśli dodatkowo, funkcję f taką, że:
G nie zawiera żadnego trójkąta, to 1. dla e ∈ E \ P : f 0 (e) = f (e),
m ≤ 2n − 4. 2. dla e ∈ P w przód: f 0 (e) = f (e) + ,
Grafy homeomorficzne 3. dla e ∈ P wstecznej: f 0 (e) = f (e) − .
Grafy G i H są homeomorficzne, gdy
jeden można przekształcić do drugiego Lemat: f 0 jest przepływem takim, że
za pomocą skończonej liczby operacji f 0 = f 0 + .
następujących dwóch typów:
1. zamian krawędzi na ścieżkę o długości Algorytm Forda-Fulkersona
2, tj. w ten sposób dodajemy również Niech D = (V , E) będzie digrafem
jeden nowy wierzchołek, spójnym, c : E → R ≥ 0, s, t ∈ V oraz
2. zamiana ścieżki P = (u, v, w) takiej, ∀e ∈ E : f (e) ← 0. Wtedy algorytm jest
że v ma stopień 2 na krawędź (u, w), taki:
jednocześnie usuwając v. Dopóki istnieje ścieżka powiększająca P
Twierdzenie Kuratowskiego dla f , wykonaj:
Graf G jest planarny wtedy i tylko 1. zastosuj P do f , otrzymując f 0 ,
wtedy, gdy nie zawiera podgrafu 2. f ← f 0 . Są to między innymi znajdowanie
homeomorficznego z K3,3 lub K5 . największego skojarzenia w grafach
Algorytm znajdowania ścieżki
Twierdzenie Heawooda powiększającej dwudzielnych, jak i znajdowanie
Każdy graf planarny jest 5-kolorowalny. największego b-skojarzenia w grafach
1. R ← {s}. dwudzielnych.
Sieć, przepływ w sieci 2. Dopóki można, wykonuj:
Sieć to graf skierowany (digraf) 2.1. Jeśli istnieje krawędź e = (u, v) : u ∈
D = (V , E) z dwoma wyróżnionymi R, v < R, f (e) < c(e), to dodaj v do R.
wierzchołkami s, t ∈ V zwanymi źródłem 2.2. Jeśli istnieje krawędź e = (v, u) : u ∈
i ujściem i funkcją przepustowości
c : E → R ≥ 0 na krawędziach. Niech R, v < R, f (e) > 0, to dodaj v do R.
f : E → R, dlaPv ∈ V definujemy Jeżeli R zawiera t, to znaczy, że
istnieje ścieżka powiększająca P dla f .
f + (v) = f (v, w) oraz
e=(v,w):e∈E,w∈V Przepustowość przekroju
f − (v) =
P
f (w, v). [S, T ] to s − t przekrój, jeśli s ∈ S, t ∈
e=(w,v):e∈E,w∈V T , S ∪ T = V , S ∩ T = ∅. Przepustowość
Funkcja f jest przepływem, jeśli przekroju:
spełnia warunki przepustowości c([S, T ]) =
P
c(e).
∀e ∈ E : 0 ≤ f (e) ≤ c(e) oraz jeśli e=(u,v)∈E: u∈S,v∈T
spełnia warunek zachowania przepływu:
∀v ∈ V {s, t} : f + (v) = f − (v). Wartość Lemat: +
Niech U P⊂ V . Wtedy
przepływu f , oznaczana jako |f | to f (U ) − f (U ) =
− f + (v) − f − (v).
− + v∈V
f (t) − f (t).
Dla dowolnego s − t przekroju [S, T ]
Ścieżka powiększająca zachodzi |f | ≤ c([S, T ]).
Ścieżka powiększająca P dla Maksymalny przepływ, minimalne cięcie
przepływu f to ścieżka postaci (s =
Twierdzenie: przepływ f obliczony
v0 , e1 , v1 , e2 , v2 , . . . , ek , vk , ek+1 , t = vk+1 ) przez algorytm Forda-Fulkersona ma
taka, że: wartość równą przepustowości pewnego
∀0 ≤ i ≤ k : ei+1 ∈ E ∧ (ei+1 = s − t przekroju. Zatem jest maksymalny.
(vi , vi+1 ) ∨ ei+1 = (vi+1 , vi ),
∀0 ≤ i ≤ k : ei+1 = (vi , vi+1 ) =⇒ f (ei+1 ) < Przepływ całkowitoliczbowy: jeśli
c(ei+1 ) (krawędź w przód), przepustowość każdej krawędzi w Niech b : V ∈ N . Wtedy M ⊆ E jest
∀0 ≤ i ≤ k : ei+1 = (vi+1 , vi ) =⇒ f (ei+1 ) > sieci jest liczbą całkowitą, to istnieje b-skojarzeniem, jeśli ∀v ∈ V : degM (v) ≤
0 (krawędź w tył). przepływ f maksymalny, który jest b(v) (liczba krawędzi z M incydentna do
Luz ścieżki powiększającej P to całkowitoliczbowy. v nie przekracza b(v)).