• Nie Znaleziono Wyników

4 Ci¡gi Graya ±cie»ki Hamiltona w kostce n-wymiarowej

N/A
N/A
Protected

Academic year: 2021

Share "4 Ci¡gi Graya ±cie»ki Hamiltona w kostce n-wymiarowej"

Copied!
31
0
0

Pełen tekst

(1)

1 GRAFY ZWIZANE Z WIE›AMI HANOI I TRÓJKT SIERPI‹SKIEGO 1

Wprowadzenie do kombinatoryki algorytmicznej

Wersja wst¦pna

Wojciech Rytter & Bartosz Szreder

1 Grafy zwi¡zane z wie»ami Hanoi i trójk¡t Sierpi«skiego

Mamy sobie n kr¡»ków (ka»dy o innym rozmiarze) na trzech wie»ach. Pocz¡tkowo wszystkie le»¡ na jednej wie»y, w kolejno±ci od najwi¦kszego u doªu do najwi¦kszego u góry. Trzeba je przeªo»y¢ na jak¡± inn¡ wie»¦, ale nie mo»na stawia¢ wi¦kszego kr¡»ka na mniejszym.

Ustalmy przykªadowo, »e n = 3. Konguracja to trójka (a1, a2, a3), oznaczaj¡ca poªo»e- nie tych trzech kr¡»ków (ai ∈ {1, 2, 3} dla i = 1 . . . n). Niech pocz¡tkowa konguracja b¦dzie (1, 1, 1), a ko«cowa (3, 3, 3). Budujemy graf H3 = (V, E), gdzie V  zbiór konguracji, kra- w¦dzie nieskierowane to dozwolone ruchy. Wida¢, »e graf ma 3n wierzchoªków dla dowolnego n.

Problem: znale¹¢ najkrótsz¡ ±cie»k¦ z konguracji pocz¡tkowej do ko«cowej.

1.1 Zwi¡zek wie» Hanoi z trójk¡tem Pascala i trójk¡tem Sierpi«skiego Je±li nk ≡ 1 (mod 2), to wierzchoªek z trójk¡ta Pascala zostaje, w p.p. usuwamy go. Przy- datny fakt (tw. Lucasa): niech W (m) to zbiór pozycji zawieraj¡cych jedynk¦ w zapisie binarnym liczby m. Zachodzi

n k



≡ 1 (mod 2) ⇔ W (k) ⊆ W (n)

Pocz¡tkowe iteracje tworzenia trójk¡ta Sierpi«skiego.

333

133 233

123 213

223 323 313 113

221 112

321 121 212 312

311 131 232 322

111 211 231 331 332 132 122 222

Graf H3. Mo»na te» deniowa¢ rekurencyjnie Hn (dla dowolnego n > 2):

(2)

1 GRAFY ZWIZANE Z WIE›AMI HANOI I TRÓJKT SIERPI‹SKIEGO 2

Hn−1(3)

Hn−1(1) Hn−1(2)

1.1.1 dodatek: twierdzenie Lucasa

Twierdzenie 1. Niech p  liczba pierwsza, m = (mr, mr−1, . . . , m0) i k = (kr, kr−1, . . . , m0) liczby zapisane w systemie liczbowym o podstawie p. Zachodzi

m k



r

Y

i=0

mi ki



(mod p)

1.2 Najkrótsze ±cie»ki i cykle Hamiltona w grafach Hanoi Typy ruchów:

• α  przekªadam najmniejszy kr¡»ek na nast¦pny dr¡»ek (zgodnie z ruchem wskazówek zegara)

• β  przekªadam najmniejszy kr¡»ek na poprzedni dr¡»ek (przeciwnie do ruchu wskazówek zegara)

• γ  inny ruch (jest wyznaczony jednoznacznie) Najkrótsza ±cie»ka

• nparzyste: αγαγαγ . . .

• nnieparzyste: βγβγβγ . . .

Jak zapiszemy ci¡g przeªo»e« kolejnych kr¡»ków, to wyjd¡ pozycje najmniej znacz¡cego za- palonego bitu w reprezentacjach binarnych kolejnych liczb od 1 do 2n− 1.

‘cie»ka Hamiltona β2γα2γβ2γα2γ . . . Cykl Hamiltona

ci¡g ruchów: (δγ)3, gdzie δ = (β2γα2γ)k, gdzie k tak dobrane, »eby dªugo±¢ tej scie»ki byªa 3n−1 (licz¡c odwiedzane wierzchoªki). Budowanie cyklu Hamiltona nale»y zacz¡¢ od odpowied- niego wierzchoªka  nie od naro»nika, tylko od jednego z dwóch w¦zªów le»¡cych na kraw¦dzi ª¡cz¡cej dwa podgrafy Hn−1.

Uwaga Warto±¢ k w powy»szym wykªadniku nie musi by¢ caªkowita, np. dla przykªadowego H3 mamy z grubsza k ≈ 32, co przekªada si¦ na δ = β2γα2γβ2.

Dªuga ±cie»ka

Dla ka»dego 2n− 1 6 M 6 3n− 1 istnieje prosta ±cie»ka z konguracji 1+ do 3+ maj¡ca dokªadnie M konguracji (taka »e »adna konguracja si¦ nie powtarza).

Najkrótsza ±cie»ka z dowolnej konguracji

Dªugo±¢ najkrótszej ±cie»ki z konguracji (a1, a2, . . . an) do 3+ wynosi X

ai6=3

2i−1

(3)

1 GRAFY ZWIZANE Z WIE›AMI HANOI I TRÓJKT SIERPI‹SKIEGO 3

1.3 Algorytm wyznaczania nast¦pnego ruchu

Dla n-tego ruchu mo»emy znale¹¢ wie»¦ pocz¡tkow¡ i docelow¡, odpowiednio z nast¦puj¡cych wzorów:

pocz¡tkowa: (n&(n − 1)) mod 3 docelowa: ((n|(n − 1)) + 1) mod 3

Gdzie & i | to bitowe operatory AND i OR i przy zaªo»eniu, »e wszystkie kr¡»ki zaczynaj¡ na wie»y o numerze 0 i docelowo traaj¡ na wie»¦ o numerze 1 albo 2 w zale»no±ci od tego, czy liczba kr¡»ków jest parzysta czy nie.

1.4 Algorytm wyznaczania konguracji

Je±li chcemy si¦ dowiedzie¢ jaki jest ukªad kr¡»ków po n-tym ruchu, mo»emy zastosowa¢

nast¦puj¡cy algorytm. Zapisujemy n wierszy o dªugo±ciach kolejno 1 . . . n w taki sposób, »e wiersz o dªugo±ci n ma konstrukcj¦ 21 . . . 1

| {z }

n−1

, wiersz o dªugo±ci n − 1: 12 . . . 2

| {z }

n−2

itd., czyli kolejne wiersze na zmian¦:

• zaczynaj¡ si¦ dwójk¡ i s¡ dopeªniane jedynkami,

• zaczynaj¡ si¦ jedynk¡ i s¡ dopeªniane dwójkami.

Ponadto najdªu»szy wiersz zaczyna si¦ od dwójki i wiersze s¡ wyrównane do prawej strony.

Nast¦pnie zapisujemy liczb¦ n w postaci binarnej i usuwamy te wiersze, które odpowiadaj¡

bitowi zgaszonemu. Na ko«cu sumujemy warto±ci ( mod 3) pozostaªych wierszy w kolejnych kolumnach 1 . . . n i otrzymujemy ukªad kr¡»ków na wie»ach ponumerowanych kolejno 0, 1, 2.

Przykªad n = 23 = 101112

2 1

1 2 1

2 1 1 1

1 2 2 2 0

2 1 1 1 1 1

2 1 3 3 6 mod 3

2 1 0 0 0 ukªad

Drugi algorytm wyznaczania konguracji W algorytmi obliczania konguracji mamy:

a[1, 2, . . . , n] - konguracja n, wie»e 0, 1, 2, a[i] pozycja i-tego kr¡»ka Przenosimy wszystkie kr¡»ki z wie»y 0 na 2 optymalnie

bit[1, 2, . . . , n] - binarna reprezentacja m, bit[n] = najbardziej znaczacy bit Nast¦puj¡cy algorytm oblicza konguracj¦ po m ruchach

a[n] := 2bit[n];

x := a[n] − 1;

for i = n − 1 downto 1 do if bit[i + 1] = bit[i] then { x := −x; a[i] := a[i + 1]; } else a[i] := (a[i + 1] + x) mod 3

(4)

2 WI†CEJ NI› 3 WIE›E 4

2 Wi¦cej ni» 3 wie»e

Mamy n kr¡»ków i m > 4 wie»e. Algorytm Frame-Stewart:

1. Rekurencyjnie przenie± stos n − i najmniejszych kr¡»ków z pocz¡tkowej wie»y do tymcza- sowej wie»y T , u»ywaj¡c wszystkich m wie».

2. Przenie±¢ pozostaªy stos i najwi¦kszych kr¡»ków z pocz¡tkowej wie»y na docelow¡ wie»¦, u»ywaj¡c m − 1 wie» (wszystkich poza wie»¡ T ).

3. Rekurencyjnie przenie± stos n − i najmniejszych kr¡»ków z wie»y T na wie»¦ docelow¡, u»ywaj¡c wszystkich m wie».

Niech warto±¢ F S(n, m) oznacza minimaln¡ liczb¦ ruchów potrzebn¡ do przeniesienia wszyst- kich n kr¡»ków z wie»y pocz¡tkowej do wie»y ko«cowej, maj¡c do dyspozycji m wie». Korzystaj¡c z powy»szego algorytmu otrzymujemy wzór:

F S(n, m) =

( 2n− 1 dla m = 3

16p<nmin {2F S(n − p, m) + F S(p, m − 1)} dla m > 4

Problem z tym algorytmem jest taki, »e nie ma »adnego dowodu, »e dziaªa (ale wygl¡da, jakby dziaªa¢ miaª). Eksperymentalnie sprawdzono jego poprawno±¢ dla m = 4 i n 6 30.

W algorytmie Frame-Stewart obliczane jest minimalne p, dla którego opªaca si¦ wykona¢

operacj¦ przeniesienia najmniejszych n − p kr¡»ków na tymczasowy stos. Obliczanie jest wyko- nywane niejako naiwnie, poprzez szukanie minimum po kolejnych p = 1 . . . n − 1. W przypadku 4 wie» Hanoi odpowiednie p mo»na znale¹¢ bezpo±rednio.

Obserwacja 1. Dla n = 3 . . . 5 (czyli dla trzech kolejnych) mamy p = 2, dla n = 6 . . . 9 (czyli dla czterech kolejnych) mamy p = 3 itd. Warto±ci n dla pierwszych wyst¡pie« danej warto±ci p to odpowiednio 3, 6, 10, 15 . . . czyli ∆k = k+12  = k(k+1)2 dla kolejnych warto±ci k.

Twierdzenie 2. Dla n = ∆k= k+12 

zachodzi F S(n, 4) = (k − 1)2k+ 1.

Dowód. Dowód indukcyjny. Šatwo sprawdzi¢, »e zachodzi F (∆1, 4) = 1i F S(∆2, 4) = 5, zatem jest dobrze. We¹my jakie± F S(∆i, 4)dla i > 2. Z wcze±niejszej obserwacji wynika, »e dla liczby kr¡»ków n = ∆i, ∆i + 1, . . . , ∆i+ i = ∆i+1− 1zachodzi p = i. Zatem

F S(∆i, 4) = 2 · F S(∆i− i, 4) + F S(i, 3)

= 2 · F S(∆i−1, 4) + 2i− 1

= 2 · (i − 2)2i−1+ 1 + 2i− 1

= (i − 2)2i+ 2i+ 1

= (i − 1)2i+ 1

Wniosek 1. Dla problemu 4 wie» Hanoi z liczb¡ kr¡»ków n, górne ograniczenie na liczb¦ ruchów wynosi 2n.

Dolne ograniczenie na liczb¦ ruchów (z pracy Mario Szegedy)

Mario Szegedy udowodniª, »e dla 4 wie» minimalna liczba ruchów xn speªnia:

2

n

6 xn6 2c0·

n

dla pewnych staªych c, c0.

Dowód opiera si¦ na zaªo»eniu, »e pomi¦dzy konguracj¡ pocz¡tkow¡ a ko«cow¡ ka»dy kr¡-

»ek przemieszcza si¦ przynajmniej raz. Pierwsze przemieszczenie nazywamy aktywacj¡ kr¡»ka.

Dzi¦ki takiemu podej±ciu mo»na przeprowadzi¢ dowód indukcyjny po liczbie wie». Wsz¦dzie dalej zakªadamy, »e liczba kr¡»ków n > 2.

(5)

2 WI†CEJ NI› 3 WIE›E 5

2.1 Dla trzech wie»

We¹my dowoln¡ pocz¡tkow¡ konguracj¦ n kr¡»ków i sekwencj¦ ruchów S, po których ka»dy kr¡»ek jest aktywny (co nie znaczy, »e ka»dy kr¡»ek ruszyª si¦ tylko jeden raz). Powiedzmy,

»e najwi¦kszy kr¡»ek jest aktywowany w ruchu i-tym. W takim razie zarówno w ruchu (i − 1)- szym oraz (i + 1)-szym wszystkie pozostaªe kr¡»ki znajduj¡ si¦ na jednej wie»y. Podzielmy sekwencj¦ ruchów S na trzy cz¦±ci S = S1SiS2, gdzie Si oznacza ruch i-ty, S1 oznacza preks S, skªadaj¡cy si¦ z wszystkich ruchów wykonanych przed ruchem i-tym oraz S2 oznacza suks S, skªadaj¡cy si¦ z wszystkich ruchów wykonanych po ruchu i-tym.

W zale»no±ci od konguracji pocz¡tkowej, przedostatni co do wielko±ci kr¡»ek nie musi zosta¢

aktywowany przed ruchem i-tym  jego pierwszy ruch mo»e wyst¦powa¢ zarówno w S1 jak i S2. Bez straty ogólno±ci przyjmijmy, »e przedostatni co do wielko±ci kr¡»ek aktywowany jest gdzie±

w S2. Oznacza to, »e sekwencja ruchów S2 zawiera rozwi¡zanie dla problemu 3 wie» Hanoi dla n − 2 najmniejszych kr¡»ków, czyli |S2| > 2n−2 (2n−2− 1 ruchów to standardowe rozwi¡zanie problemu wie» Hanoi dla n − 2 kr¡»ków, a +1 poniewa» jeszcze ruszyli±my przedostatni co do wielko±ci kr¡»ek).

Z tego wynika, »e |S| > 2n−2+ 1poniewa» S zawiera przynajmniej jeden ruch wi¦cej, ni» S2

 jest to ruch i-ty. S1 mo»e by¢ puste.

Dolna granica dla problemu 4 wie»

Niech Hk0(n)b¦dzie minimaln¡ liczb¡ ruchów potrzebnych do aktywacji n kr¡»ków na k wie»ach, minimum bierzemy po wszystkich konguracjach. Wiemy »e dla 3 wie» zachodzi:

H30(n) = 2n−2+ 1

Fakt zachodzenia ( ∀ x ∈ A, y ∈ B x < y) zapisujemy jako A < B.

Stwierdzenie 1.

Je±li mamy na 4 wie»ach zbiór M1 skªadaj¡cy si¦ z m1 kr¡»ków i zbiór M2 skªadaj¡cy si¦ z m2

kr¡»ków, wszystkie kr¡»ki z M2 na tej samej wie»y, oraz M1 < M2 to aktywacja wszystkich z M2

wymaga min{H40(m1), 2m2−2} ruchów.

Dowód. Je±li w czasie aktywacji M2 wsystkie kr¡»ki z M1 staj¡ si¦ aktywne to musimy wykona¢

co najmniej H40(m1) ruchów, w przeciwnym przyp. jedne z kr¡»ków z M1 blokuje ci¡gle t¦ sam¡

wie»¦ dla M2 i do aktywacji M2 musimy wykona¢ co najmniej H30(M − 2) 6 2m2−2 ruchów.

Zacznijmy od oczywistego faktu rachunkowego.

Stwierdzenie 2.

Je±li funkcja f speªnia

k>1f (k) > 2 · min{f (k − 1), ∆}, f (1) = c0 > 0 to zachodzi

f (k) > min{2k· c0, ∆}

Twierdzenie 3. H40(n) > 2

n dla pewnej staªej c > 0 Dowód. Ustalmy n i niech α = 8 ·√

n. Niech

f (k) = H40(k · α), ∆ = 2

n−2

Udowodnimy, »e f, ∆ speªniaj¡ zaªo»enia Stwierdzenia 2.

Na jednej z wie» znajduje si¦ zbiór Y co najmniej α4 = 2 ·√

nspo±ród α najwi¦kszych kr¡»ków.

Poza tym mamy zbiór M1 skªadaj¡cy si¦ z (k − 1)α najmniejszych kr¡»ków. Niech M20 ∪ M200 = Y

gdzie M10 < M200 b¦dzie rozbiciem Y na dwie poªowy. Musimy uaktywni¢ M10 a nast¦pnie M100, za ka»dym razem zgodnie ze Stwierdzeniem 1 wykonujemy co najmniej min{f(k − 1), 2m2−2} ruchów. W sumie dwa razy tyle. Teraz teza wynika ze Stwierdzenia 2.

(6)

2 WI†CEJ NI› 3 WIE›E 6

2.2 Cykle Hamiltona w grae 4 wie»

Grafy dla 4 wie» s¡ skomplikowane i maj¡ du»¡ liczb¦ cykli Hamiltona.

14

44

34 24

21

11

31 41

32

22

12 42

23

33

43 13

Graf dla 2 kr¡»ków i 4 wie», graf ten ma 6 · 34= 486 cykli Hamiltona.

W ka»dym maªym K4 do cyklu Hamiltona mo»emy wybra¢ 3 lub 2 kraw¦dzie. Zacznijmy od przypadku, gdy w ka»dym K4 bierzemy po 2 kraw¦dzie (przykªad na rysunku 1). Jest a = 6 takich cykli (przykªadowy graf mo»emy odbi¢ symetrycznie lewo-prawo, dodatkowo na 3 sposoby mo»emy wybra¢, które kraw¦dzie wybierzemy z górnej K4). Teraz popatrzmy na dwie kraw¦dzie wychodz¡ce z wierzchoªka maªego K4 (np. 42-41-43). Mo»emy je ±ci¡gn¡¢ do kraw¦dzi 42-43, natomiast opuszczony wierzchoªek mo»emy odwiedzi¢ wybieraj¡c 3 kraw¦dzie w ±rodkowym K4

(mo»emy to zrobi¢ na b = 2 sposoby). W grae mo»emy ±ci¡gn¡¢ i = 0 . . . 4 kraw¦dzi, mo»emy je wybra¢ na 4i

sposobów. Zatem liczba cykli to

4

X

i=0

a ·4 i



· bi = a · (1 + b)4= 6 · 34= 486

Pozostaje pokaza¢, »e cykli nie ma wi¦cej. We¹my dowolny cykl (np. ten z rysunku 2) i rozwa»my K4, w którym wybrano 3 kraw¦dzie (np. ±rodkowe). Rozwa»my wierzchoªek 21, który nie ª¡czy K4 z reszt¡ grafu (zatem kraw¦dzie 21-24 i 21-23 nie s¡ wybrane). Teraz poka»emy,

»e kraw¦d¹ 24-23 musi by¢ wybrana do cyklu; z tego wynika, »e mo»emy dokona¢ na niej operacji odwrotnej do ±ci¡gni¦cia, zatem ka»dy cykl powstaje za pomoc¡ operacji ±ci¡gni¦cia kraw¦dzi.

Dla maªego K4 jeden z jego nie±rodkowych wierzchoªków nazwiemy typu A, je±li prowadzi do niego kraw¦d¹ cyklu, która ª¡czy K4 z reszt¡ grafu. Je±li 24-23 nie byªa wybrana, to wierz- choªki 24 i 23 musz¡ mie¢ po 2 wybrane kraw¦dzie w swoich K4, zatem wierzchoªki 34, 14, 43 i 13 s¡ typu A. Poniewa» 41 jest typu A, to albo 41-43 musi by¢ wybrana, albo 41-42-43 musz¡ by¢

wybrane. W obu przypadkach 42 nie mo»e by¢ wierzchoªkiem typu A. Analogicznie 32 nie mo»e by¢ typu A. Zatem lewy K4 ma co najwy»ej jeden wierzchoªek typu A, a to jest niemo»liwe.

(7)

2 WI†CEJ NI› 3 WIE›E 7

14

44

34 24

21

11

31 41

32

22

12 42

23

33

43 13

Rysunek 1: Przykªad cyklu Hamiltona pierwszego typu.

14

44

34 24

21

11

31 41

32

22

12 42

23

33

43 13

Rysunek 2: Cykl Hamiltona drugiego typu, który wchodz¡c do ka»dego K4 przechodzi go w caªo±ci.

(8)

2 WI†CEJ NI› 3 WIE›E 8

14

44

34 24

21

11

31 41

32

22

12 42

23

33

43 13

Rysunek 3: Przykªad innego cyklu Hamiltona.

14

44

34 24

21

11

31 41

32

22

12 42

23

33

43 13

Rysunek 4: Jeszcze inny cykl Hamiltona.

(9)

3 GENEROWANIE OBIEKTÓW KOMBINATORYCZNYCH (KOMBINACJE, PERMUTACJE. . . )9

3 Generowanie obiektów kombinatorycznych (kombinacje, per- mutacje. . . )

Niech K(n, k) podzbiór k-elementowy zbioru n-elementowego. Chcemy je generowa¢ np.

leksykogracznie, tzn. je±li zapiszemy wygenerowan¡ kombinacj¦ jako ci¡g binarny, gdzie bi = 0 oznacza nienale»enie elementu i-tego do kombinacji, a bi = 1 jego nale»enie, to generujemy wszystkie ci¡gi binarne n-elementowe o dokªadnie k zapalonych jedynkach.

Najmniejsza odlegªo±¢ Hamminga pomi¦dzy tak wygenerowanymi kombinacjami wynosi 2.

Je±li stworz¦ graf taki, »e ka»dy w¦zeª jest to»samy z jedn¡ kombinacj¡, a kraw¦dzie przebiegaj¡

mi¦dzy wierzchoªkami, mi¦dzy którymi dla ich ci¡gów odlegªo±¢ Hamminga wynosi 2, to w takim grae ±cie»ka Hamiltona wygeneruje wszystkie kombinacje. Powiedzmy, »e chcemy mie¢ jeszcze troch¦ ciekawszy graf, tzn. kraw¦dzie istniej¡ tylko pomi¦dzy tymi wierzchoªkami, »eby w ci¡gach je reprezentuj¡cych zamieniaªy si¦ tylko s¡siednie bity. Np. dla K(4, 2):

1100 1010

0110

1001

0101 0011

Jak wida¢ w takim grae nie ma cyklu Hamiltona, bo istniej¡ w¦zªy o stopniu 1. Mo»emy wi¦c szuka¢ ±cie»ki Hamiltona, ale okazuje si¦, »e ona te» istnieje tylko w niektórych grafach (poza szczególnymi przypadkami: k = 1 ∨ k = n − 1).

Lemat 1. Graf K(n, k) jest dwudzielny.

Dowód. Graf dwudzielny nie ma cykli o nieparzystej dªugo±ci. Aby wychodz¡c z jakiego± wierz- choªka v mo»na byªo do niego wróci¢, nale»y wykona¢ parzyst¡ liczb¦ zamian (czyli przej±¢

po kraw¦dziach), poniewa» ka»da zamiana zmienia o 2 odlegªo±¢ Hamminga.

Twierdzenie 4. Istnieje ±cie»ka Hamiltona w grae K(n, k) wtedy i tylko wtedy, gdy n jest parzyste i k jest nieparzyste (oprócz specjalnego przypadku k = 1 ∨ k = n − 1).

Dowód. Poni»szy dowód obejmuje konstrukcj¦ ±cie»ki Hamiltona dla grafów z podanej klasy, nie obejmuje pokazania, »e w grafach dla pozostaªych warto±ci n i k cykl Hamiltona nie istnieje.

Graf K(n, k) = G(V, E) jest dwudzielny V = V1∪ V2. Dla takich grafów |V1| − |V2| ∈ {−1, 1}. Niech K(n, k) = A(n, k) ∪ B(n, k) ∪ C(n, k) ∪ D(n, k) gdzie:

• A(n, k)indukowany przez 11(0 + 1), A(n, k) ≡ G(n − 2, k − 2)

• B(n, k)indukowany przez 00(0 + 1), B(n, k) ≡ G(n − 2, k)

• C(n, k)indukowany przez 10(0 + 1), C(n, k) ≡ G(n − 2, k − 1)

• D(n, k)indukowany przez 01(0 + 1), D(n, k) ≡ G(n − 2, k − 1)

Scie»ka Hamiltona ma posta¢ 1+0+ ∗→ 0+1+. Graf K(n, k) ma dwa wierzchoªki o stopniu 1, które b¦d¡ punktami pocz¡tkowymi/ko«cowymi ±cie»ki Hamiltona. Scie»ka Hamiltona ma posta¢

1+0+ ∗→ 0+1+.

Poniewa» podgrafy A i B s¡ izomorczne z mniejszymi grafami K, to przez indukcj¦ istnieje w nich ±cie»ka Hamiltona. Przej±cie z podgrafu A do B b¦dzie przebiega¢ przez ±cie»k¦ Hamiltona podgrafu C ∪ D. ‘cie»ka Hamiltona przebiegaj¡ca przez A ma posta¢ 1110+ i ko«czy si¦

na 110+1, czyli zaczynamy z wszystkimi jedynkami po lewej stronie, a ko«czymy z wszystkimi poza dwoma ostatnimi po prawej. W ten sposób mo»emy przej±¢ do podgrafu C∪D. Analogicznie wychodzimy z C ∪ D do B (rysunek 5).

(10)

3 GENEROWANIE OBIEKTÓW KOMBINATORYCZNYCH (KOMBINACJE, PERMUTACJE. . . )10

11 10+

11 0+1

10 10+1

01 01+0

00 1+0

00 01+

Cn, k∪ Dn, k A

B

Rysunek 5: Schemat ±cie»ki Hamiltona w grae K.

Grzebie« to drzewo o maksymalnym stopniu wierzchoªka co najwy»ej 3 z dodatkow¡ wªa- sno±ci¡  wszystkie wierzchoªki stopnia 3 le»¡ na jednej ±cie»ce (±cie»ka gªówna). Je±li v jest wierzchoªkiem na ±cie»ce gªównej, to z¦bem grzebienia nazywamy najdªu»sz¡ ±cie»k¦, która prze- cina ±cie»k¦ gªówn¡ tylko raz i dokªadnie w w¦¹le v. Je±li stopie« deg(v) < 3, to z¡b skªada si¦

z pojedynczego wierzchoªka v (jest trywialny), w przeciwnym przypadku ma przynajmniej dwa wierzchoªki.

Obserwacja 2. Podgrafy C(n, k) i D(n, k) s¡ rozpinane przez grzebienie.

Poniewa» w¦zªy z podgrafu C reprezentuj¡ ci¡gi 10w, a w¦zªy z podgrafu D reprezentuj¡ ci¡gu 01w dla odpowiednich w ∈ (0 + 1), to mo»emy zbudowa¢ graf z grzebieni rozpinaj¡cych C i D w taki sposób, »e istnieje kraw¦d¹ 10w ←→ 01w dla odpowiednich w i nie naruszy to wªasno±ci mówi¡cej o odlegªo±ci Hamminga równej 2 pomi¦dzy ci¡gami binarnymi reprezentowanymi przez s¡siaduj¡ce wierzchoªki.

100111 101011 110011

101101 110101 111001

101110 110110 111010 111100

011110 011101 011011 010111 001111

Rysunek 6: Przykªadowy grzebie« rozpinaj¡cy graf K(6, 4). W¦zªy ±cie»ki gªównej zaznaczone s¡ kolorem niebieskim.

(11)

4 CIGI GRAYA  ‘CIE›KI HAMILTONA W KOSTCE N-WYMIAROWEJ 11

Pozostaje zatem znalezienie ±cie»ki Hamiltona od 1010+1 do 0101+0 w grae zbudowanym ze sklejonych grzebieni rozpinaj¡cych podgrafy C i D. Wierzchoªki {01, 10}10+1i {01, 10}01+0 s¡ punktami ko«cowymi grzebieni dla (odpowiednio) C i D. Algorytm generowania ±cie»ki Ha- miltona zaczyna od pierwszego punktu ko«cowego grzebienia rozpinaj¡cego C i ko«czy na dru- gim punkcie ko«cowym grzebienia D. Przechodzenie odbywa si¦ nast¦puj¡co: w danym w¦¹le v b¦d¡cym na ±cie»ce gªównej grzebienia C zejd¹ w dóª z¦ba, przejd¹ do odpowiadaj¡cego z¦ba grzebienia dla D, przejd¹ w gór¦ z¦ba do ±cie»ki gªównej D, przemie±¢ si¦ do kolejnego w¦zªa na ±cie»ce gªównej itd. a» do wyl¡dowania na punkcie ko«cowym ±cie»ki gªównej grzebienia dla D. Poniewa» mamy zaªo»enie, »e

4 Ci¡gi Graya  ±cie»ki Hamiltona w kostce n-wymiarowej

Ci¡g Graya rz¦du n oznaczamy przez G(n)  lista wszystkich ci¡gów binarnych dªugo±ci n, ka»dy ci¡g wyst¦puje dokªadnie raz, odlegªo±¢ Hamminga mi¦dzy kolejnymi obiektami wynosi 1 (minimalna).

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Rysunek 7: Cykl Hamiltona w hiperkostce 4-wymiarowej. Dla czytelno±ci pomini¦to kraw¦dzie ª¡cz¡ce dwa sze±ciany (poza kraw¦dziami nale»¡cymi do cyklu).

Algorytm rekurencyjny:

G(0) = ∅; G(n) = 0 G(n − 1); 1 G(n − 1)R

Ten algorytm rekurencyjnie znajduje ±cie»ki Hamiltona w hiperkostkach coraz mniejszych wy- miarów.

Algorytm iteracyjny:

• co drugi krok (poczynaj¡c od pierwszego) zamieniamy ostatni bit,

• w pozostaªych krokach zmieniamy bit przed ostatni¡ (na prawo) jedynk¡.

Algorytm za pomoc¡ wzoru na k-ty element ci¡gu G(n) (konwertuj¡c liczby na zapisy binarne):

g(k) = k ⊕ k 2



(12)

5 GENERACJA KOMBINACJI POPRZEZ WYMIANY DWÓCH BITÓW 12

5 Generacja kombinacji poprzez wymiany dwóch bitów

Kolejne ci¡gi w kodzie Graya z k jedynkami daj¡ generacj¦ k-podzbiorów z minimalnymi zmia- nami.

G(n, k) = 0 G(n − 1, k); 1 G(n − 1, k − 1)R

Jak z tego zrobi¢ algorytm, w którym jedna iteracja jest w pami¦ci O(n) i czasie O(1)?

Opiszemy zupeªnie inny algorytm. Niech π b¦dzie ci¡giem zerojedynkowym reprezentuj¡cym k-kombinacje n elementów.

Wprowadzamy wektor aktywno±ci A[1..n]: A[i] = 1 gdy pozycja i aktywna. Oznaczmy przez last(A) ostatni¡ (najbardzej na prawo) pozycj¦ aktywn¡. Je±li takiej pozycji nie ma, to last(A) = ∅.

Niech operacja UaktywnijP o(k) oznacza uaktywnienie wszystkich pozycji wi¦kszych od k.

Algorytm Generyczny KombinacjePrzezZamiany;

π :=jakakolwiek kombinacja n po k;

U aktywnijP o(0);

repeat forever

wypisz kombinacj¦ π;

k := last(A); k = max{i : A[i] = 1}

if k = ∅ then STOP;

W ci¡gu π wymie« π[k] z przeciwnym bitem na jakiejkolwiek pozycji na prawo;

A[k] := 0;

U aktywnijP o(k);

Rozwa»amy inny algorytm, w którym wykonujemy jedn¡ zamian¦ bitów, a mi¦dzy zamienianymi pozycjami s¡ same zera. Chcemy mie¢ tak¡ sztywniejsz¡ wersj¦ poprzedniego algorytmu, w której pozycja na prawo od k, z któr¡ jest wymieniany bit jest jak najw¦»ej wyspecykowana.

Niech P ierwJed(k) oznacza pozycj¦ pierwszej jedynki w π na prawo od k, je±li na prawo nie ma jedynki to P ierwJed(k) = n + 1. ›¡damy, aby algorytm speªniaª ponadto nast¦puj¡cy niezmiennik:

Niezmiennik: Na prawo od k jest co najwy»ej jeden blok jedynek, algorytm zaczyna i ko«czy si¦ w sytuacji z jednym blokiem jedyenk.

Algorytm KombinacjePrzezZamiany;

π := [1k0n−k]; UaktywnijP o(0);

repeat forever

wypisz kombinacj¦ π;

k := last(A); k := last(A); {k = max{ i : A[i] = 1}

if k = ∅ then STOP;

if π[k] = 1 then

wymie« π[k] z bitem na pozycji P ierwJed[k] − 1 else wymie« π[k] z bitem na pozycji P ierwJed[k];

A[k] := 0; UaktywnijP o(k);

(13)

6 GENERACJE PREFIKSOWE 13

Poniewa» algorytm jest dosy¢ sztywny mo»na go zaimplementowa¢ tak by jedna iteracja byªa w czasie O(1) (pami¦¢ liniowa, wektor A).

6 Generacje preksowe

Oznaczmy przez shiftk operacj¦ cyklicznego przesuni¦cia k-tego preksu, polega ona na przesuni¦ciu elementu k-tego na pocz¡tek ci¡gu.

Opiszemy kilka algorytmow generacji  permutacji, kombinacji, permutacji multizbiorów, ci¡gów reprezentuj¡cych drzewa binarne. W tych algorytmach istotne b¦dzie jaki jest pierwszy obiekt (start), a czasami równie» jaki ostatni (finish).

Generacja permutacji

Oznaczmy permutacje przez π (tablica od 1 do n). W tym przypadku start = [1, 2, . . . , n].

Algorytm Permutacje;

π := [1, 2, . . . n];

k := n + 1;

repeat forever

if (k 6 n) AND (π[k] = k) then k := k − 1;

elsewypisz permutacj¦ π; k := n if k = 1 then STOP;

π := shif tk(π); Dla n = 4 algorytm wygeneruje:

1234 4123 3412 2341 3124 4312 2431 1243 2314 4231 1423 3142

2134 4213 3421 1342 3214 4321 1432 2143 1324 4132 2413 3241

Generacja kombinacji

Oznaczmy kombinacj¦ typu n, k równie» przez π (tablica od 1 do n). Jest to ci¡g zerojedynkowy maj¡cy k jedynek i n − k zer. W tym przypadku start = 10, f inish = 101.

Potrzebna nam funkcja pierwszego skoku w ci¡gu, oznaczmy j¡ przez P ozSkoku(π) = min{k : π[k] > π[k − 1]lub k = |π| + 1 } gdzie |π| oznacza dªugo±¢ ci¡gu. Na przykªad P ozSkoku([1, 1, 0, 0, 1, 0, 0]) = 5

Algorytm Kombinacje π := [1k0n−k];

repeat forever

wypisz kombinacj¦ π;

k := P ozSkoku(π); if k = n then STOP;

j := min{k + 1, n}; π := shif tj(π);

(14)

6 GENERACJE PREFIKSOWE 14

Dla k = 3, n = 6 algorytm wygeneruje:

111000 011100 101100 110100 011010 101010 010110 001110 100100 110010 011001 101001 010101 001101 100101 010011 001011 000111 100011 110001

Zauwa»my, »e w pierwszym wierszu mamy suks 0, w drugim suks 1. Je±li obetniemy ostatnie zero to otrzymamy ci¡g dla n = 5, k = 3; je±li obetniemy ostatnie 1 to otrzymamy ci¡g dla n = 5, k = 2, ale zaczynaj¡cy si¦ w generacji w drugiej kombinacji.

Inaczej mówi¡c w obu przypadkach mamy rekurencj¦, z tym »e w przypadku ci¡gów z suksem 1mamy rekurencyjny ci¡g, ale cyklicznie przesuni¦ty. Zauwa»my, »e w jednej iteracji zmieniamy co najwy»ej 4 bity. Mo»na jedn¡ iteracj¦ zaimplementowa¢ tak, by dziaªala w czasie O(1) i pami¦ci O(1).

Niech −→

A oznacza ci¡g, w który, pierwszy element staje si¦ ostatnim, tzn. przykªadowo:

A −→

A 0011 0101 0101 0110 0110 1001 1001 0011

Ten algorytm rekurencyjnie generuje ci¡g binarny wszystkich kombinacji wedªug schematu Rt, s= Rt, s−10;−−−−→

Rt−1, s1. Podobne do generacji koleksykogracznej (leksykogracznej patrz¡c od ko«ca ci¡gu)

colexk, t= colexk, t−10; colexk−1, t1

6.1 Generacja ci¡gów zrównowa»onych, korzystaj¡c z shift

Tak naprawd¦ generacja pewnych ksztaªtów drzew binarnych. B¦dzie to generacja analo- giczna w pewnym sensie do kodów Graya  w drzewach binarnych b¦dziemy zmienia¢ tylko staª¡

liczb¦ pointerów generuj¡c kolejny element ci¡gu. Drzewa zwykle zapisuje si¦ w postaci ci¡gu nawiasowego, tutaj zmieniamy ( na 1 i ) na 0.

Sposób reprezentacji drzewa za pomoc¡ takiego ci¡gu:

1

1 1

1 0 0

0 0

0

Przej±cie w porz¡dku preorder daje ci¡g 111000100  zawsze jest jedno zero wi¦cej. Zwykle b¦dziemy z tego zapisu odcina¢ pierwsz¡ cyfr¦ (jedynk¦  korze«) i ostatni¡ (zero  skrajnie lewy li±¢), nie trac¡c »adnej informacji. B¦dziemy generowa¢ ci¡gi o takiej wªasno±ci, »e dowolny preks ci¡gu ma co najwy»ej o jedno zero wi¦cej ni» jedynek.

(15)

6 GENERACJE PREFIKSOWE 15

Algorytm Ci¡gi zrównowa»one π := [01n−10n−1];

repeat forever wypisz ci¡g π;

k := P ozSkoku(π); if k = |π| + 1 then STOP;

if shiftk+1(π)poprawny then π := shiftk+1(π); else π := shiftk(π);

Dla n = 4 algorytm wygeneruje:

0111000 1011000 1101000

0110100 1010100 0101100 1001100 1100100

0110010 1010010 0101010 1001010 0101010 1001010 1100010 1110000

W kolejnych wierszach (pomijaj¡c ostatni) mamy suksy 1000, 100, 10.

1 011 1000 2 101 1000 3 110 1000 4 0110 100 5 1010 100 6 0101 100 7 1001 100 8 1100 100 9 01100 10 10 10100 10 11 01010 10 12 10010 10 13 11000 10 14 1110000

Zauwa»my »e w jednej iteracji zmieniamy O(1) bitów. Mo»na jedn¡ iteracj¦ zaimplementaowa¢

tak by dziaªala w czasie O(1) i pami¦ci O(1).

Algorytm generuje ksztaªty drzew binarnych, dla ka»dego drzewa binarnego doª¡czamy do ka»- dego li±cia dwóch synów  sztuczne dwa li±cie, oraz do ka»dego w¦zªa z jednym synem dodat- kowego sztucznego syna. Przechodzimy drzewo preorder i wypisujemy 1 gdy mamy oryginalny w¦zeª, oraz 0 gdy sztuczny. Pierwsz¡ jedynk¦ i ostatnie zero obcinamy. W ten sposób mamy odpowiednio±¢ mi¦dzy zrównowa»onymi ci¡gami i drzewami binarnymi. Operacja przesuni¦cia preskowego zmienia w drzewie O(1) pointerów typu ojciec ↔ syn.

Generacja anagramów  permutacje multizbiorów

Mamy alfabet skªadaj¡cy si¦ z m liter {1, 2, . . . , m}. Przypu±¢my, »e mamy fi kopii litery i dla 1 6 i 6 m. Taki zbiór liter nazywamy multizbiorem M . Anagramem dla M jest dowolny ci¡g (sªowo) zawieraj¡ce fi razy liter¦ i dla ka»dego i. Oznaczmy przz Anag(M) zbiór wszystkich ana- gramów Chcemy wygenerowa¢ wszystkie anagramy z Anag(M) poprzez cykicznie przesuwanie preksów.

(16)

7 GWIAZDOWE GENEROWANIE PERMUTACJI 16

Niech max(M) oznacza leksykogracznie maksymalny anagram, tzn.

max(M ) = mfm(m − 1)fm−1. . . 2f21f1

Na przykªad dla M = {1, 1, 2, 3, 3, 4, 4, 4} mamy max(M) = 4 4 4 3 3 2 1 1 Niech n b¦dzie dªugo±ci¡ anagramu.

Algorytm Anagramy π := shif tn(max(M ));

repeat forever

wypisz anagram π;

k := P ozSkoku(π); if k = |pi| + 1 then STOP;

if k = n lub π[k − 1] < π[k + 1]

then π := shiftk(π) else π := shiftk+1(π)

Przykªad:

przypu±¢my, »e M = {1, 1, 2, 2, 3}. Wtedy max(M) = 3 2 2 1 1 i algorytm wygeneruje nast¦puj¡cy ci¡g anagramów:

13221 31221 23121 12321 21321 32121

13212 31212 13122 11322 31122 23112 12312 21312 12132 21132 32112 23211

22311

12231 21231 22131

12213 21213 21213 12123 11223 21123 22113 32211 W kolejnych wierszach mamy suksy 21, 2, 3211, 311, 31, 3.

7 Gwiazdowe generowanie permutacji

Rozwa»amy tylko transpozycje pewnego elementu z pierwszym, graf takich transpozycji jest gwiazd¡.

Zaªó»my, »e numerujemy pozycje permutacji π od zera. Interesuje nas generacja ci¡gu pozycji, które wymieniamy kolejno z elem. na pozycji 0. Niech En b¦dzie ci¡giem dla wygenerowania wszytkich permutacji n-elementowych. Chcemy »eby En byª preksem En+1, czyli otrzymujemy niesko«czony ci¡g E.

Poni»ej wypisujemy ci¡g E5 generuj¡cy wszystkie permutacje zbioru 5-elementowego. Pozycje permutacji numerujemy od zera. W i-tym kroku zaminiamy π[E5[i]] z π[0].

1 2 1 2 1 3 2 1 2 1 2 3 1 2 1 2 1 3 2 1 2 1 2 4 3 1 3 1 3 2 1 3 1 3 1 2 3 1 3 1 3 2 1 3 1 3 1 4 1 2 1 2 1 3 2 1 2 1 2 3 1 2 1 2 1 3 2 1 2 1 2 4 3 1 3 1 3 2 1 3 1 3 1 2 3 1 3 1 3 2 1 3 1 3 1 4 1 2 1 2 1 3 2 1 2 1 2 3 1 2 1 2 1 3 2 1 2 1 2

Zauwa»my, »e drugi wiersz (wyrazy od 25-ego do 48-ego) jest kopi¡ pierwszego wiersza po prze- kodowaniu

1 → 3, 2 → 1, 3 → 2

Opiszemy jak gwiazdowo generowa¢ permutacje zbioru {1, 2, . . . , n}, ci¡g E wymienianych po- zycji w trakcie algorytmu jest generowany. Oznaczmy

ρ!(k) = max{j : k | j!}

(17)

8 GENERACJA CIGÓW LYNDONA I CIGÓW DE BRUIJNA 17

Na przykªad ρ!(12) = 3, ρ!(44) = 2, ρ!(13) = 1. Wykorzystamy tablic¦ (ci¡g kontrolny) B[1 . . . n], pocz¡tkowo b¦d¡cy identyczno±ci¡.

Algorytm Generacja gwiazdowa permutacji Pocz¡tkowo B[i] = i dla ka»dego i > 1;

wyj¡tkowo numerujemy pozycje π od zera;

π := [1, 2, . . . n]; wypisz(π); for i := 1 to n! − 1 do

k := ρ!(i);

wymie« π[0] z elementem π[B[k]];

wypisz(π); En[i] := B[k];

odwró¢ kolejno±¢ elementów B[1..k − 1]

8 Generacja ci¡gów Lyndona i ci¡gów de Bruijna

Dla uproszczenia rozwa»amy tylko teksty binarne.

Sªowem (ci¡giem) de Bruijna rz¦du n jest ci¡g binarny o dªugo±ci 2n, w którym (traktowanym jako ci¡g cykliczny) ka»dy ci¡g binarny dªugo±ci n wyst¦uje dokªadnie raz.

Sªowa Lyndona sa zwartymi reprezentacjami liniowymi sªów cyklicznych. Dla sªowa x niech y b¦dzie minimalnym cyklicznym przesuni¦ciem x. Wtedy pierwiastek pierwotny z sªowa y jest sªowem Lyndona. Sªowo jest ci¡giem Lyndona wtwg.mo»e powsta¢ w ten sposób.

(Pierwiastek pierwotny y to najkrótszy preks z sªowa y taki, »e y jest naturaln¡ pot¦g¡ z.) Denicja równowa»na, sªowo jest Lyndona je±li jest leksykogracznie najmniejsze ze swoich prze- suni¦¢ cyklicznych (równowa»nie, najmniejsze ze swoich suksów).

Dla danego n przez ext(x, n) oznaczmy rozszerzenie okresowe sªowa x do dªugo±ci n, oraz przez LastZero(x) oznaczamy najdªu»szy preks sªowa x ko«cz¡cy si¦ zerem. Na przykªad

ext(00111, 13) = 00111 00111 001, LastZero(0010111) = 0010.

Nast¦puj¡cy algorytm generuje wszytkie sªowa Lyndona o dªugo±ci co najwy»ej n Algorytm FM (Fredricksona-Maiorany)

Generacja slow Lyndona;

x := '0' ; wypisz x;

while x <> '1' do

x := LastZero(ext(x,n)) ;

zamien ostatni symbol x na jedynke;

wypisz x;

Niech

L0 < L1< L2< . . . Ls

b¦dzie leks. posortowan¡ sekwencj¡ wszystkich binarnych sªów Lyndona o dªugo±ci b¦d¡cej dzielnikiem n. Niech Ln oznacza konkatenacj¦

Ln = L0· L1· L2· L3. . . Ls

(18)

8 GENERACJA CIGÓW LYNDONA I CIGÓW DE BRUIJNA 18

Przykªad. Dla n = 4 algorym FM wygeneruje:

0 0001 001 0011 01 011 0111 1 L4 = 0 0001 0011 01 0111 1 Powiemy, »e Lk jest maªe gdy |Lk| < n, w pp. jest du»e.

Z poprawno±ci algorytmu FM (Fredricksona-Maiorany) wynikaj¡ wªasno±ci:

1. L0 = 0, L1 = 0n−11, Ls−1= 01n−1, Ls = 1;

2. je±li Lk= βα oraz α zawiera zero, to β jest preksem Lk+1

3. Je±li Lk jest maªe i k > 0 to

• Lk−1 jest du»e;

• Lk−1 ko«czy si¦ co najmniej n − |Lk|jedynkami;

• Lk−1 jest bezpo±rednio wygenerowane przed Lk w algorytmie FM.

Twierdzenie Fredricksona-Maiorany (przypadek szczególny-rozgrzewka)

Je±li n jest liczb¡ pierwsz¡ to Lnzawiera (cyklicznie) ka»de binarne sªowo x dªugo±ci n.

Dowod.

Przypadek 1: x ∈ 10. Wtedy x jest podsªowem Ls−1LsL0L1 = 1n0n.

Zaªó»my, zatem (do ko«ca dowodu) »e nie zachodzi przypadek 1. Sªowo x jest cyklicznie rów- nowa»ne pewnemu sªowu Lr (równemu minimalnemu cyklicznemu przesuni¦ciu x). Wtedy dla pewnych α, β

x = αβ, Lr = βα Ustalmy do ko«ca dowodu α, β.

Przypadek 2: (α zawiera zero.) Wtedy β jest preksem Lr+1, zatem x jest podslowem LrLr+1 którego preksem jest βαβ.

Przypadek 3: (α ∈ 1+.) Zaªó»my »e nie zachodzi przypadek 2. Wtedy β /∈ 0+. Istnieje zatem taki indeks k »e β jest preksem Lkale β nie jest preksem Lk−1. Niech γ b¦dzie preksem Lk−1 o dªugo±ci β. Zapiszmy Lk−1 = γ δ. Udowodnimy:

Fakt. δ ∈ 1+.

Dowód nie wprost.

Przypu±¢my, »e δ zawiera 0, wtedy zgodnie z algorytmem Fredricksona-Maiorany nast¦pne leksykogracznie sªowo Lyndona ma preks γ. Wiemy, »e β 6= γ. Natomiast nast¦pnym sªowem z denicji jest Lk, które ma preks β 6= γ, o tej samej dªugo±ci co γ. Sprzeczno±¢.

Z powy»szego faktu wynika »e δ = α, poniewa» s¡ to sªowa tej samej dªugo±ci skªadaj¡ce si¦ z samych jedynek. Zatem x jest podsªowem Lk−1Lk jako δβ, w konsekwencji x jest podsªowem caªego sªowa Ln(Koniec dowodu).

Twierdzenie Fredricksona-Maiorany (przypadek ogólny, dowolne n) Ln zawiera (jako sªowo cykliczne) ka»de binarne sªowo x dªugo±ci n.

Dowód

(19)

8 GENERACJA CIGÓW LYNDONA I CIGÓW DE BRUIJNA 19

Przypadek 1: x ∈ 10.

Dowód bez zmian (w stosunku do dowodu przypadku szczególnego).

Zaªó»my, zatem (do ko«ca dowodu) »e nie zachodzi przypadek 1.

W przypadkach 2-4 zakªadamy, »e sªowo x jest pierwotne. Zakªadamy równie» »e x nie jest równe »adnemu Lr. Wtedy x jest cyklicznie równowa»ne pewnemu sªowu Lr (równemu minimalnemu cyklicznemu przesuni¦ciu x). Wtedy dla pewnych niepustych α, β

x = αβ, Lr= βα

Niech Lk b¦dzie leksykograf. pierwszym du»ym sªowem o preksie β.

Przypadek 2: (α /∈ 1+.) Dowód bez zmian.

Przypadek 3: (α ∈ 1+, Lk−1 jest du»e) Dowód bez zmian.

Przypadek 4: (α ∈ 1+, Lk−1 jest maªe.) Rozwa»amy podprzypadki A-C:

(A) (|β| < |Lk−1|) Wtedy Lk−2 jest du»ym sªowem o preksie β co przeczy temu »e Lk jest najwcze±niejsze. Zatem przypadek niemo»liwy.

(B) (Lk−1 ko«czy si¦ co najmniej |α| jedynkami) i αβ = x jest podsªowem Lk−1Lk.

(C) (Lk−1 ko«czy si¦ mniej ni» |α| jedynkami) Z denicji operacji okresowego rozszerzania wynika, »e Lk−1 jest okresem β. Jednocze±nie Lk−2 (du»e sªowo) ko«czy si¦ co najmniej n − |Lk−1| ≥ |α|jedynkami (gdy» |beta| ≥ |Lk−1|oraz |α| = n − β|). Zatem αβ = x jest podsªowem Lk−2Lk−1Lk.

Przypadek 5: (sªowo x nie jest pierwotne)

Wtedy dla pewnych k > 1, r, α, β mamy: x = (αβ)k, Lr = βα.

Je±li α /∈ 1+ to poniewa» sªowo Lr jest maªe i rozszerzenie okresowe zostaje zaburzone dopiero w sotatnim α to Lr+1 jest du»e i ma preks (βα)k−1β jako preks. Zatem x jest podsªowem LrLr+1.

Je±li α ∈ 1+to Lr−1 ko«czy si¦ na α (ma dostatecznie du»o jedynek), a poniewa» (z rozszerzenia okresowego) Lr+1 ma preks (βα)k−1 to x jest podsªowem Lr−1LrLr+1.

(Koniec dowodu)

Kilka wzorów

Niech zapisy Lyn(n), P ierw(n) oznaczaj¡ liczb¦ binarnych sªów Lyndona oraz liczb¦ sªów pier- wotnych (nierozkªadalnych) dªugo±ci n. Niech µ b¦dzie funkcj¡ Mobiusa, speªnia ona wzór reku- rencyjny:

X

d | n

µ(d) = [n = 1].

Niech φ b¦dzie funkcj¡ Eulera (ile jest liczb mniejszych od n wzgl¦dnie pierwszych z n). Przyj- mujemy φ(1) = 1.

U»ytecznym narz¦dziem kombinatoryczznym jest formuªa Mobiusa:

∀ n f (n) = X

d | n

g(d) ⇒ ∀ n g(n) = X

d | n

µ(n/d) f (d)

Mamy te» wzory:

2n = X

d | n

P ierw(d), n = X

d | n

φ(d).

(20)

9 GRAFY SZACHOWE 20

Z formuªy inwersyjnej Mobiusa i powy»szego wzoru wynikaj¡ wzory:

P ierw(n) = X

d | n

µ(n/d) 2d; Lyn(n) = 1 n

X

d | n

µ(n/d) 2d

Je±li Ln = L0· L1 · L2· L3. . . Ls jest rozkªadem na sªowa Lyndona o dªugo±ci dziel¡cej n to oznaczmy ||Ln|| = s + 1.Inaczej mówi¡c ||Ln|| jest liczb¡ sªów dªugo±ci n cyklicznie nierówno- wa»nych (liczba naszyjników binarnych z dokªadno±ci¡ do obrotu). Korzystaj¡c z poprzenich wzorów mo»na udowodni¢, »e:

||Ln|| = 1 n

X

d | n

φ(n/d) 2d.

Na przykªad:

Lyn(6) = 9, Lyn(3) = 2, Lyn(2) = 1, Lyn(1) = 2

|L6| = Lyn(1) + Lyn(2) + Lyn(3) + Lyn(6) = 14.

|L6| = 1

6 (φ(1) 26+ φ(2) 23+ φ(3) 22+ φ(6) 21) = 1

6 (1 · 26+ 1 · 23+ 2 · 22+ 2 · 21).

Sªuszno±¢ tych wzorów mo»na prz±ledzi¢ na przykªadzie:

L6 = 0 000001 000011 000101 000111 001 001011 001101 001111 01 01010111 011 011111 1

9 Grafy szachowe

Rozwa»amy grafy pi¦ciu gur szachowych: S  skoczek, K  Król, H  hetman, W  Wie»a, G

 goniec Przez Fn,m oznaczmy graf gury F na szachownicy n × m, gdy n = m b¦dziemy pisa¢

Fn. Zajmiemy si¦ (mi¦dzy innymi) liczeniem nast¦puj¡cych parametrów dla grafów szachowych:

• γ(G) liczba dominacji grafu G, minimalna liczba gur które bij¡ wszystkie pola;

• α(G) liczba niezale»no±ci, maksymalna liczba gur które si¦ nawzajem nie bij¡;

• ω(G) liczba klikowa (rozmiar najliczniejszej kliki);

• χ(G) liczba chromatyczna grafu G.

Poza tym zajmiemy si¦ istnieniem cyklu (±cie»ki) Hamiltona.

Graf hetmana

Mamy 92 zbiory niezale»ne rozmiaru 8 w grae hetmana H8. Nie ma ogólnego wzoru na liczb¦

zbiorów niezale»nych w Hn, natomiast ogólnie zachodzi:

α(Hn) = n dla n > 5

Uzasadnienie: Poni»sze rysunki pokazuj¡, »e mo»emy dla n > 6 rozmie±ci¢ n hetmanów na- wzajem niezale»nych. Nast¦pnie zauwa»my, »e przek¡tne s¡ wolne, zatem mo»na rozszerzy¢

na szachownic¦ o boku o jeden wi¦kszym.

Wariacje problemu niebij¡cych si¦ hetmanów.

Na cylindrycznej szachownicy 8 × 8 o±miu niezale»nych hetmanów si¦ nie ustawi.

Niech HS b¦dzie skrzy»owaniem skoczka z hetmanem, wtedy na szachownicy 8 × 8 nie ma 8 niezale»nych gur HS, natomiast na szachownicy 10 × 10 mo»na ustawi¢ 10 takich niezale»nych (niebij¡cych si¦) gur HS.

(21)

9 GRAFY SZACHOWE 21

Rysunek 8: Schemat ustawienia n niezale»nych hetmanów dla szachownicy o boku 6k lub 6k + 4.

Rysunek 9: Schemat dla szachownicy o boku 6k + 2.

Zajmiemy si¦ teraz liczb¡ dominacji γ(n) = γ(Hn), dla maªych warto±ci mamy γ[2 . . . 13] = [1, 1, 2, 3, 3, . . .]

Niech diag(n) b¦dzie minimaln¡ liczb¡ hetmanów, które dominuj¡ szachownic¦ n × n i które s¡ tylko na gªównej przek¡tnej. Mówimy »e zbiór liczb naturalnych X jest jedno-parzysty, gdy elementy X s¡ tej samej parzysto±ci. X jest bez±rodkowy je±li

a, b∈X a 6= b ⇒ a + b 2 ∈ X/

Niech mid(n) b¦dzie moc¡ maksymalnego jednoparzystego i bez±rodkowego podzbioru [n]. Za- chodzi nast¦puj¡cy fakt:

diag(n) = n − mid(n)

Zauwa»my, »e γ(n) = diag(n) dla n 6 9, natomiast diag(10) > γ(n).

Nie potramy policzy¢ szybko warto±ci γ(n), natomiast mamy konstrukcj¦, która przybli»a do- brze warto±¢ γ.

1

2(n − 1) 6 γ(n) 6 2 3n



+ n mod 3

(22)

9 GRAFY SZACHOWE 22

Uzasadnienie.

• Górna granica: mo»emy zaªo»y¢, »e n podzielne przez 3. Dzielimy plansz¦ na 9 takich samych cz¦±ci, w lewej dolnej cz¦±ci umieszczamy n3 hetmanów nast¦puj¡co: jeden w dol- nym lewym rogu, pozostaªe na gªównej odwrotnej przek¡tnej przesuni¦tej o jeden w gór¦.

W prawej górnej cz¦±ci umieszczamy hetmany na gªównej odwrotej przek¡tnej.

• Dolna granica: argument kombinatoryczny, rachunki.

Liczba chromatyczna Wiadomo, »e 8 6 χ(H9) 6 9, tzn. istnieje kolorowanie za pomoc¡ 9 kolorów, patrz rysunek. Czy istnieje za pomoc¡ 8? Oczywi±cie 8 to dolna granica. Prawdopo- dobnie (ale nie wiadomo na pewno)

χ(Hn) ∈ {n, n + 1, n + 2}

6 3 7 3 1 5 9 4 9 1 5 8 4 7 3 2 5 4 9 7 3 2 6 8 2 7 3 4 6 1 5 9 3 6 2 5 7 9 4 1 7 5 1 9 2 3 8 6 1 9 4 7 8 6 2 3 8 3 6 2 9 4 1 5

Rysunek 10: Kolorowanie grafu hetmana na szachownicy 8 × 8 za pomoc¡ 9 kolorów.

Dwa niezale»ne hetmany Ustawiamy dwa hetmany losowo na szachownicy n × n. Niech pn oznacza prawdopododobie«stwo, »e si¦ nie atakuj¡. Wtedy lim pn = 13. A co z trzema hetmanami?

Graf skoczka

Mamy α(Sn, n) =n

2

. Natomiast nie ma sensownego wzoru na γ(Sn, n).

S

S S S S

S

S S S

S S S

Rysunek 11: γ(S8) = 12

Zajmiemy si¦ istnieniem i konstrukcj¡ cyklu Hamiltona w Sn, m.

Twierdzenie 5 (Schwenk). Zaªó»my m 6 n. Wtedy istnieje cykl Hamiltona na Sn, m wtedy i tylko wtedy gdy nie zachodzi »aden z nast¦puj¡cych warunków.

1. n 6 2 lub m 6 2;

(23)

10 RELOKACJA (PRZESUWANIE) NA GRAFIE - UOGÓLNIENIE GRY PI†TNASTKA23

2. n, m obie nieparzyste;

3. m = 3, n < 10;

4. m = 4.

Dowód. Je±li m 6 2, to szachownica nie jest do±¢ szeroka na istnienie cyklu  z niektórych wierzchoªków grafu skoczka wychodzi tylko jedna kraw¦d¹. Punkt (2) jest oczywisty  je±li obie wspóªrz¦dne szachownicy s¡ nieparzyste, to ª¡czne pole te» jest nieparzyste. A poniewa» graf skoczka jest dwudzielny (przeskoki pomi¦dzy czarnymi i biaªymi polami), to nie mo»e istnie¢

cykl o dªugo±ci nieparzystej.

Udowodnienie nieistnienia cyklu Hamiltona dla pozostaªych z wy»ej wymienionych przypad- ków jest nietrywialne.

Reszta dowodu jest konstruktywna  polega na konstrukcji cyklu w czasie liniowym je±li istnieje.

Jeden dowód Parberry'ego (ale tylko dla parzystych n, m) poprzez dzielenie na cztery (prawie)

¢wiartki. Drugi dowód z oryginalnej pracy Schwenka przez dodawania 4 kolumn lub czterech wierszy.

Mamy 9862 cykli na S6 oraz 13 267 364 410 532 cykli na S8.

Twierdzenie 6. Na szachownicy skoczka m × n b¦d¡cej torusem zawsze jest cykl Hamiltona.

Twierdzenie 7. Na szachownicy skoczka m×n (n kolumn) b¦d¡cej cylindrem (ostatnia kolumna s¡siaduje z pierwsz¡) jest cykl Hamiltona wtw. gdy nie zachodzi zaden z warunków:

1. m = 1 oraz n > 1

2. m ∈ {2, 4} oraz n parzyste Graf króla

Mamy

γ(Kn, n) = n + 2 3

 W szczególno±ci

γ(K7) = γ(K8) = γ(K9) = 0 Równie» ªatwo si¦ liczy α(Kn, n) i χ(Kn, n).

10 Relokacja (przesuwanie) na grae - uogólnienie gry Pi¦tnastka

Mamy plansz¦ n × n, oznaczamy j¡ przez Gn. Graf Gn jest gridem rz¦du n. W prawym dolnym rogu jest puste pole, pozotaªe zawieraj¡ liczby od 1 do n2− 1. Konguracja jest permutacj¡ π tych liczb. Z jednej konguracji mo»emy przej±¢ do innej przesuwaj¡c liczb¡ na s¡siednie wolne pole.

Twierdzenie 8. Z konguracji π mo»emy otrzyma¢ konguracj¦ identyczno±ciow¡ wtedy i tylko wtedy, gdy π ma znak dodatni (parzysta liczba transpozycji, permutacja parzysta). Je±li mo»na otrzyma¢, to wystarczy i czasami trzeba Θ(n3) ruchów.

S¡ dwa dowody tego faktu, oba konstruktywne. Jeden Aarona Archera, drugi Parberry'ego, z tym »e ten drugi sprowadza problem do n = 3 i wtedy korzysta z dowodu Aarona Archera.

R.M. Wilson uogólniª ten probem na dowolne grafy nieskierowane. W dowodzie Aarona Archera korzystamy z nast¦puj¡cego faktu kombinatorycznego.

Twierdzenie 9. Zbiór wszystkich permutacji cyklicznych postaci (k, k + 1, k + 2) generuje do- kªadnie zbiór wszystkich permutacji parystych zbioru [n].

(24)

10 RELOKACJA (PRZESUWANIE) NA GRAFIE - UOGÓLNIENIE GRY PI†TNASTKA24

10.1 notatki z wykªadu Marka Cygana

Twierdzenie 10 (Wilson). Je±li G jest prostym grafem dwuspójnym, ró»nym od cyklu oraz ró»nym od grafu Θ0:

to ka»d¡ permutacj¦ parzyst¡ da si¦ osi¡gn¡¢. Gdy graf jest niedwudzielny, to mo»na wszystkie permutacje.

Mamy graf G (ró»ny od cyklu i ró»ny od Θ0) etykietowany {1, . . . , n − 1} ∪ {∅}. Γ(x)  zbiór permutacji powstaªych z marszrut z x do x. Zbiór ten stanowi pewn¡ podgrup¦ grupy permutacji:

• ª¡czno±¢  zªo»enie marszrut (P1◦ P2) ◦ P3 = P1◦ (P2◦ P3),

• element odwrotny: marszruta odwrotna (zapuszczona do tyªu).

• element neutralny: pusta marszruta.

Poj¦cia

• G  graf dwuspójny. Niech β(G) = m − n + 1. Je±li β(G) = 1, to graf jest cyklem. Je±li β(G) = 2, to graf jest Θ-grafem. Dla β(G) > 3 krok indukcyjny.

• ‘ci¡gni¦cie (zwini¦cie ªa«cuchow kraw¦dzi w pojedyncze kraw¦dzie) grafu G w graf G0 (potencjalnie dostaniemy multigraf):

przed po

‘ci¡gni¦cie Θ-grafu to

‘ci¡gni¦cie grafu dla β = 3:

Lemat 2. Niech G0 ±ci¡gni¦ty dwuspójny graf o β(G) > 3. Istnieje kraw¦d¹ w G0, po usuni¦ciu której graf pozostaje dwuspójny oraz jest ró»ny od Θ0 po rozci¡gni¦ciu.

Grupa H dziaªaj¡ca na zbiorze X jest tranzytywna, je±li potra przeprowadzi¢ ka»dy element na ka»dy element. Grupa Γ(x) dziaªaj¡ca na V \{x} jest tranzytywna, je±li umiemy wstawi¢ ka»dy element V \{x} pojedynczo wsz¦dzie.

Twierdzenie 11. Γ(x) jest tranzytywna ⇔ gdy graf G jest dwuspójny.

(25)

10 RELOKACJA (PRZESUWANIE) NA GRAFIE - UOGÓLNIENIE GRY PI†TNASTKA25

Grupa H dziaªaj¡ca na zbiorze X jest 2-tranzytywna, je±li potra przeprowadzi¢ dowoln¡

par¦ ró»nych elementów z X na dowoln¡ par¦ ró»nych elementów z X.

Lemat 3. Rozwa»my zbiór X, |X| > 3; we¹my dowolne u, v ∈ X. Zbiór 3-cykli postaci (uvx) dla x ∈ X\{u, v} generuje alt(X)  permutacje parzyste.

Lemat 4. Niech Σ b¦dzie zbiorem 3-cykli na zbiorze X |X| > 3. Oznaczmy przez Σ grup¦

generowan¡ przez Σ. Nastepuj¡ce warunki s¡ równowa»ne:

1. Σ= alt(X)

2. Σ jest tranzytywna

Lemat 5. Niech H b¦dzie 2-tranzytywn¡ grup¡ permutacji (niekoniecznie wszystkich permutacji!

mo»e by¢ podzbiór permutacji, które stanowi¡ grup¦), która zawiera co najmniej jeden 3-cykl.

Wtedy alt(X) ⊆ H.

Z powrotem do kroku indukcyjnego twierdzenia pocz¡tkowego Mamy graf G, dwu- spójny, β(G) > 3. Z którego± lematu dostajemy ucho do usuni¦cia (ªa«cuch pomi¦dzy dwoma wierzchoªkami x, y ∈ V ), otrzymuj¡c graf H. Wiemy, »e graf H jest dwuspójny, β(H) > 2, H jest ró»ny od Θ0 (z zaªo»enia), zatem mo»emy skorzysta¢ z zaªo»enia indukcyjnego: mamy permutacje parzyste w H, czyli mamy 3-cykl.

Nasza para (y, z), gdzie z to dowolny wierzchoªek w H ró»ny od x i y. Bierzemy (a, b):

• bwsadzamy na z,

• je±li a jest na uchu, to kr¦cimy cyklem, a traa do y

• w p.p. a jest w G, to umiemy przeªo»y¢ (z, a) na (z, y), bo z zaªo»enia indukcyjnego H jest 2-tranzytywna

10.2 Algorytm rozwi¡zywania pi¦tnastki rozmiaru 3 × 3

Idea algorytmu opiera si¦ na zdeniowaniu 5 operacji, b¦d¡cych ci¡gami elementarnych ru- chów, jakie mo»na wykonywa¢ przesuwaj¡c s¡siedni element na puste pole. Z operacji tych zostanie zbudowane rozwi¡zanie postawionego problemu. Poni»szy diagram przedstawia jak po- szczególne operacje zmieniaj¡ stan ªamigªówki:

1. operacja A1 a b c d e f g h 0

a e f

d b c

g h 0

2. operacja B1 a b c d e f g h 0

a c b

d f e g h 0

3. operacja A2 a b c d e f g h 0

a b c g h f d e 0

4. operacja B2 a b c d e f g h 0

a b c e d f h g 0

5. operacja C a b c d e f g h 0

a c b d e f h g 0

(26)

10 RELOKACJA (PRZESUWANIE) NA GRAFIE - UOGÓLNIENIE GRY PI†TNASTKA26

Operacje A2 i B1 s¡ symetryczne do (odpowiedno) A1 i B1. Zauwa»my, »e za pomoc¡ operacji A1, B1, A2 i B2 mo»emy przesun¡¢ dowolny klocek z prawego górnego kwadratu 2 × 2 do lewego dolnego kwadratu 2 × 2 i odwrotnie. Jest tak, poniewa» zªo»enie operacji A1 i B1 powoduje cykliczne obracanie elementów w prawym górnym kwadracie 2 × 2, a zªo»enie operacji A2 i B2 powoduje analogiczny skutek w lewym dolnym kwadracie 2×2. W takim razie, dowolny element z prawego górnego kwadratu 2×2 mo»emy przenie±¢ w miejsce o wspóªrz¦dnych (2, 2) za pomoc¡

ci¡gu operacji A1 i B1. Analogicznie mo»emy robi¢ z lewym dolnym kwadratem 2×2 i operacjami A2 i B2. Algorytm skªada si¦ z nast¦puj¡cych kroków:

1. Przesuwamy klocek z numerem jeden w lewy górny róg i wracamy pustym miejscem w prawy dolny róg.

2. Mamy nast¦puj¡c¡ sytuacj¦: 1 b c d e f

g h 0 Korzystaj¡c z operacji A1, B1, A2 i B2 przerzu- camy elementy z prawego górnego kwadratu 2 × 2 do lewego dolnego kwadratu 2 × 2 i od- wrotnie, tak aby uzyska¢ w prawym górnym kwadracie 2×2 elementy ze zbioru {2, 3, 5, 6}, a w lewym dolnym kwadracie 2 × 2 elementy ze zbioru {4, 5, 7, 8}. Zauwa»my, »e w ta- kim ukªadzie elementów na pozycji o wspóªrz¦dnych (2, 2) musi znajdowa¢ si¦ element o warto±ci 5.

3. Zauwa»my, »e prawy górny kwadrat 2 × 2 mo»e mie¢ jedn¡ z sze±ciu postaci:

2 3

5 6 6 2

5 3 3 6

5 2 2 65 3 3 2

5 6 6 3

5 2

Trzy górne mo»liwo±ci wymagaj¡ parzystej liczby zamian elementów, a trzy dolne wyma- gaj¡ nieparzystej liczby zamian do osi¡gni¦cia porz¡dku (2, 3, 5, 6). Zauwa»my, »e mo»emy przechodzi¢ cyklicznie mi¦dzy trzema górnymi stanami stosuj¡c kilkakrotnie poni»sze ruchy (nazwijmy je operacj¡ D):

1 2 3 d 5 6 g h 0

1 2 3 d 5 6 g 0 h

1 2 3 d 0 6 g 5 h

⇓ 1 3 6

d 2 0 g 5 h

1 3 0 d 2 6 g 5 h

1 0 3 d 2 6 g 5 h

⇓ 1 3 6 d 0 2 g 5 h

1 3 6 d 5 2 g 0 h

1 3 6 d 5 2 g h 0

Analogicznie mo»na przechodzi¢ mi¦dzy dolnymi stanami. Symetryczna sytuacja ma miej- sce w lewym dolnym kwadracie 2 × 2. Zauwa»my, »e mamy cztery mo»liwe przypadku:

I. W prawym górnym kwadracie 2 × 2 jest parzysta permutacja i w lewym dolnym kwadracie 2 × 2 jest parzysta permutacja.

II. W prawym górnym kwadracie 2 × 2 jest parzysta permutacja i w lewym dolnym kwadracie 2 × 2 jest nieparzysta permutacja.

(27)

11 SKOJARZENIA I SYSTEMY RӛNYCH REPREZENTANTÓW 27

III. W prawym górnym kwadracie 2 × 2 jest nieparzysta permutacja i w lewym dolnym kwadracie 2 × 2 jest parzysta permutacja.

IV. W prawym górnym kwadracie 2 × 2 jest nieparzysta permutacja i w lewym dolnym kwadracie 2 × 2 jest nieparzysta permutacja.

W takim razie w przypadkach II i III ukªadanka nie ma rozwi¡zania, poniewa» permutacja dla caªego kwadratu 3 × 3 jest nieparzysta. W przypadku I mo»emy doprowadzi¢ prawy górny kwadrat 2 × 2 do porz¡dku (2, 3, 5, 6) za pomoc¡ operacji D i lewy dolny kwadrat do porz¡dku (4, 5, 7, 8) za pomoc¡ operacji symetrycznej do D. W przypadku IV stosu- jemy operacj¦ C, która zmienia parzysto±¢ permutacji w prawym górnym kwadracie 2 × 2 i w lewym dolnym kwadracie 2 × 2, daj¡c w efekcie przypadek I. Ostatecznie osi¡gamy ukªadank¦ uªo»on¡ w porz¡dku (1, 2, 3, 4, 5, 6, 7, 8).

11 Skojarzenia i systemy ró»nych reprezentantów

G = (V, E)  graf. M ⊆ V to skojarzenie, jesli »adne dwie kraw¦dzie w M nie maj¡ wspól- nego ko«ca. Zwykle szukamy najwi¦kszego skojarzenia. Skojarzenie, które pokrywa wszystkie wierzchoªki to skojarzenie doskonaªe.

11.1 System Ró»nych Reprezentantów

I = hS1, S2, . . . , Smi  rodzina, niepustych sko«czonych zbiorów. Niech I0 ⊆ I, oznaczmy przez SI0 podsystem hSi: i ∈ I0i. Przez SI0 ∪ SI00 oznaczmy podsystem hSi: i ∈ I0 ∪ I00i. Podsystem SI0 jest krytyczny gdy | Pi∈I0 Si| = |I0|. Czy istnieje taki wektor ha1, . . . , ami parami ró»nych elementów, »e ai ∈ Si dla i = 1, . . . , m?

Twierdzenie 12 (Hall). Rodzina zbiorów I posiada SRR gdy speªniony jest tzw. warunek Halla:

(∀I0⊆I)

X

i∈I0

Si

>

I0 . Fakt.

1. Je±li dwa podsystemy s¡ krytyczne to ich suma te».

2. Je±li system speªnia warunek Halla oraz krotno±¢ ka»edgo elementu jest 1, to wybieraj¡c dowolny element z ka»dego zbioru otrzymujemy SRR (system ró»nych reprezententów).

Dowód. Udowodnimy, »e je±li system hS1, S2, . . . Sni speªnia warunek Halla, oraz a ∈ S1 ∩ S2, to system speªnia warunek Halla po usuni¦ciu a z S1 lub a z S2. Przypu±¢my, »e tak nie jest.

Przykªadowo, niech

|S1− a, S3, S4, S5, S6| < 5, |S1− a, S3, S4, S7, S8| < 5 Wtedy podystemy hS3, S4, S5, S6i, hS3, S4, S7, S8i s¡ krytyczne oraz

S1− a ⊆ S3∪ S4∪ . . . ∪ S8

No ale na mocy wcze±niejszego faktu mamy, »e moc sumy podsystemów hS3, S4, S5, S6i, hS3, S4, S7, S8i jest mniejsza równa 6 (suma indeksów), nawet jak dodamy element a to |S1∪S2. . . S8| 6 6+1 = 7, co przeczy oryginalnemu zaªo»eniu o warunku Halla. Zatem system sprowadza si¦ do rodziny zbiorów, w której ka»dy element wyst¦puje tylko raz, a zatem system posiada SRR.

(28)

12 NAJLICZNIEJSZE SKOJARZENIE 28

Mo»na to rozumowanie wyrazi¢ algorytmem niewielomianowym:

Algorytm

Zakªadamy, »e zachodzi warunek Halla;

while istnieje element a nale»¡cy do dwóch ró»nych zbiorów do usu« a z jednego z tych dwóch zbiorów tak aby warunek Halla zachodzil (to jest zawsze mo»liwe)

Usu« z ka»dego zbioru wszystkie elementy poza jednym dowolnym elementem wypisz otrzymany system jako SRR dla wej±ciowego systemu.

11.2 Oszacowania na liczb¦ SRR

Zaªó»my, »e mini|Si| = t i speªniony jest warunek Halla.

Teza 1. I posiada

t! SRR gdy t 6 m

t!

(t−m)! SRR gdy t > m 11.3 Grafy regularne

G = (V, E) dwudzielny, regularny stopnia ∆ > 3. Chcemy znale¹¢ skojarzenie doskonaªe.

algorytm

• przypisz ka»dej kraw¦dzi w grae wag¦ 1

• while podgraf rozpi¦ty na kraw¦dziach z dodatnimi wagami nie jest lasem do

 C := dowolny cykl (elementarny)

 M1, M2  doskonaªe skojarzenia na C

 if waga M1 > waga M2then od wagi ka»dej kraw¦dzi z M1odejmij 1, do wagi ka»dej kraw¦dzi z M2 dodaj 1

 else symetrycznie odejmujemy z M2 i dodajemy do M1

Niezmiennik p¦tli: suma wag kraw¦dzi wychodz¡cych z wierzchoªka wynosi ∆.

12 Najliczniejsze skojarzenie

G = (V, E) graf prosty, spójny. M ⊂ E  skojarzenie, gdy »adne dwie kraw¦dzie nie maj¡

wspólnego ko«ca. Znale¹¢ M o najwi¦kszej liczno±ci. Wi¦kszo±¢ algorytmów znajduj¡cych naj- wi¦ksze skojarzenie dziaªa przez szukanie ±cie»ek powi¦kszaj¡cych  gdy taka nie istnieje, sko- jarzenie jest najwi¦ksze.

G = (W, K, E) graf dwudzielny, gdzie W to wiersze {1, 2, . . . , w}, K kolumny {1, 2, . . . , k}

(reprezentacja macierzowa). Zakªadamy bez straty ogólno±ci |W | > |K|. Budujemy drzewa rozpi- naj¡ce ukorzenione w wierszach. Silne drzewo rozpinaj¡ce to takie drzewo rozpinaj¡ce, w którym ka»da kolumna-li±¢ musi by¢ synem korzenia. Je±li T to silne drzewo rozpinaj¡ce, to niech Q(T ) oznacza zbiór kolumn-li±ci.

Nie ka»dy graf dwudzielny ma silne drzewo rozpinaj¡ce. Modykujemy graf G → Ga:

• Ga= (W ∪ {0}, K, Ea)

• Ea= E ∪ {(0, j) : j ∈ K}

Korzeniem silnego drzewa rozpinaj¡cego T b¦dzie zawsze zero. Kolumn¦ h nazwiemy kandyda- tem, gdy:

Cytaty

Powiązane dokumenty

Uzasadnij, »e wysoko±¢ w trójk¡cie prostok¡tnym wysoko±¢ poprowadzona z wierzchoªka przy k¡cie prostym ma dªugo±¢ b¦d¡c¡ ±redni¡ geometryczn¡ dªugo±ci odcinków

a je±li kto± si¦ zastanawiaª i nie ma pomysªu, albo miaª i »aden pomysª si¦ nie sprawdziª to mo»e przeczyta¢ wskazówk¦: ile mo»e by¢ najwi¦cej kraw¦dzi w grae

Istotn , nast pn wskazówk dla mene- d erów w tym modelu zarz dzania zespo- ami pracowników jest sprecyzowanie kluczowych dziedzin odpowiedzialno ci, wyznaczanie celów

Plik china.csv zawiera dane na temat ilo±ci godzin, które rodzice maªych dzieci (w wieku do 6 lat) w Chinach sp¦dzaj¡ w okre±lonym czasie na opiece nad nimi (zmienna child-care).

Plik zawiera dane dotycz¡ce pewnych zdarze« (w tym ilo±ci ludzi robi¡cych zakupy w pewnym miejscu) w dwa pi¡tki, jeden pi¡tek 13 i inny, poprzedni pi¡tek. Typ zdarzenia opisuje

Badaniom poddano pra ynki wzbogacone dodatkiem przeciwutleniaczy, a tak e próby bez dodatków (próba kontrolna). Ocen zmian oksydacyjnych przeprowadzono poprzez

Frydecka-Mazurczyk i Zgórska [9], w badaniach nad wpływem na wietlania bulw wiatłem fluorescencyjnym, wykazały intensywn akumulacj glikoalkaloidów w bulwach wielu

Nie stwierdzono korelacji mi dzy zawarto ci N-rozpuszczalnego, ilo ci peptydów rozpuszczalnych w 2- i 12-procentowym TCA oraz zawarto ci niskocz steczkowych form