View
2
Download
0
Category
Preview:
Citation preview
UNIVERZA V MARIBORU
FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO
Oddelek za matematiko in racunalnistvo
DIPLOMSKO DELO
Natasa Brodnjak
Maribor, 2011
UNIVERZA V MARIBORU
FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO
Oddelek za matematiko in racunalnitvo
Diplomsko delo
HAMILTONSKA DOPOLNITEVGRAFA
Mentor: Kandidatka:
doc. dr. Matjaz Kovse Natasa Brodnjak
Maribor, 2011
ZAHVALA
Zahvaljujem se mentorju dr. Matjazu Kovsetu za strokovno pomoc in vodenje pri
izdelavi diplomskega dela.
Iskreno se zahvaljujem starsema, ki sta mi studij omogocala in mi vsa ta leta stala
ob strani ter me spodbujala.
Hvala tudi tebi Ales, ki si mi ves cas stal ob strani in mi pomagal, ko sem pomoc
najbolj potrebovala.
Iskrena hvala vsem, ki ste kakorkoli pripomogli k mojemu uspehu.
UNIVERZA V MARIBORU
FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO
IZJAVA
Podpisana Natasa Brodnjak, rojena 2. november 1985, studentka Fakultete za na-
ravoslovje in matematiko Univerze v Mariboru, studijskega programa matematika-
racunalnistvo, izjavljam, da je diplomsko delo z naslovom
HAMILTONSKA DOPOLNITEV GRAFA
pri mentorju doc. dr. Matjaz Kovse avtorsko delo. V diplomskem delu so uporabljeni
viri in literatura korektno navedeni; teksti niso uporabljeni brez navedbe avtorjev.
Maribor, junij 2011
Natasa Brodnjak
Hamiltonska dopolnitev grafaprogram diplomskega dela
V diplomskem delu predstavite problem hamiltonske dopolnitve grafa. Poudarek naj
bo na algoritmu za izracun hamiltonske dopolnitve drevesa.
Osnovni viri:
1. D. S. Franzblau, A. Raychaudhuri, Optimal Hamiltonian completions and path
covers for trees, and a reduction to maximum flow, ANZIAM Journal 44 (2002)
193-204.
2. S. E. Goodman, S. T. Hedetniemi, On the Hamiltonian completion problem, v
Graphs and combinatorics (urednika A. Dold in B. Eckman), Lecture Notes in
Math. 406 (1974) 262-272.
doc. dr. Matjaz Kovse
BRODNJAK, N.: Hamiltonska dopolnitev grafa.
Diplomsko delo, Univerza v Mariboru, Fakulteta za naravoslovje in mate-
matiko, Oddelek za matematiko in racunalnitvo, 2011.
IZVLECEK
Diplomsko delo obravnava hamiltonsko dopolnitev grafa. Stevilo hamiltonske dopolnitve
grafa G je najmanjse stevilo povezav, ki jih moramo dodati grafu, da ta postane hamiltonski
graf.
V prvem poglavju predstavimo osnovne definicije iz teorije grafov in algoritmov, ki jih potre-
bujemo v nadaljevanju. Nato definiramo problem hamiltonske dopolnitve grafa ter soroden
problem pokrivanja vozlisc s potmi. V tretjem poglavju predstavimo algoritma za hamil-
tonsko dopolnitev dreves. V cetrtem poglavju opisemo resevanje hamiltonske dopolnitve
grafa za poljuben graf. Na koncu diplomskega dela opisemo sorodne probleme.
Kljucne besede: hamiltonski graf, hamiltonska dopolnitev grafa, pokrivanje s potmi,
dodeljevanje frekvenc
Math. Subj. Class. (2010): 05C45 eulerjevi in hamiltonski grafi,
05C85 algoritmi na grafih,
05C05 drevesa.
BRODNJAK, N.: Hamiltonian completion of a graph.
Graduation Thesis, University of Maribor, Faculty of Natural Scicences and
Mathematics, Department of Mathematics and Computer Science, 2011.
ABSTRACT
The thesis is about the Hamiltonian completion of a graph G. We define the Hamiltonian
completion number of a graph G, to be the minimum number of edges to be added to G in
order to make it Hamiltonian.
In the first chapter the basic definitions from graph theory and algorithms, necessary for our
purpose, are presented. Then the Hamiltonian completion problem and the similar problem
of a path cover are defined. The third chapter is about the algorithms for the Hamiltonian
completion for trees. In the fourth chapter the Hamiltonian completion problem for an
arbitrary graph is considered. The thesis ends with a description of the problems, similar
to the Hamiltonian completion problem.
Keywords: Hamiltonian graph, Hamiltonian completion of a graph, path cover
for a graph, frequency assignment
Math. Subj. Class. (2010): 05C45 Eulerian and Hamiltonian graphs,
05C85 Graph algorithms,
05C05 Trees.
Kazalo
Uvod 1
1 Osnovni pojmi in definicije 3
1.1 Teorija grafov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Hamiltonska dopolnitev grafa 11
3 Hamiltonska dopolnitev dreves 15
3.1 Enostaven algoritem kvadratne casovne zahtevnosti za drevesa . . . . . . . 15
3.2 Trte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Razsiritev algoritma na grafe z enim ciklom . . . . . . . . . . . . . . 23
3.2.2 Algoritem linearne casovne zahtevnosti za drevesa . . . . . . . . . . 24
4 Hamiltonska dopolnitev poljubnega grafa 29
5 Sorodni problemi 33
5.1 Radijske frekvence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Pokrivanje s potmi z maksimalnim pretokom . . . . . . . . . . . . . . . . . 34
Literatura 38
ix
Uvod
V vsakdanjem zivljenju se srecujemo s problemi, ki jih poskusamo resiti na razlicne nacine.
Primera taksnih problemov sta, kako priti iz enega mesta v drugo mesto po cestah in hkrati
narediti cim manj kilometrov, kako obhoditi vse hise v naselju, ne da bi sli vec kot enkrat
mimo iste hise. Ko vse te probleme resujemo, nevede uporabljamo teorijo grafov. Teorija
grafov je veja matematike, ki je tesno povezana z racunalnistvom in raziskuje znacilnosti
grafov. V nasih problemih se pojavljajo objekti (mesta, hise,...) kot vozlisca, ki so med
seboj povezana s povezavami (ceste, poti,...). Tema te diplomske naloge, je eden izmed
stevilnih problemov teorije grafov, ki vkljucujejo pojem hamiltonske dopolnitve grafa.
Diplomska naloga vsebuje pojme iz teorije grafov, zato so na primerih opredeljeni in razlozeni
pojmi, ki so pomembni za razumevanje nadaljnega besedila. Ker se v teoriji grafov preple-
tajo pojmi tako iz matematike kot iz racunalnistva, so vkljucene tudi definicije osnovnih
racunalniskih pojmov, kot so algoritmi in razlicne zahtevnosti algoritmov.
Ker je tema te diplomske naloge hamiltonska dopolnitev grafa, je v zacetku osrednjega
dela definiran problem hamiltonske dopolnitve grafa ter njej soroden problem pokrivanje s
potmi. Cilj te diplomske naloge je konstrukcija algoritma optimalne hamiltonske dopolnitve
grafa. Ker se zahtevnost algoritmov razlikuje glede na grafe, je problem razdeljen na dva
dela. Najprej je opisan algoritem za drevesa. Ceprav obstaja algoritem linearne casovne
zahtevnosti za resitev tega problema, je najprej opisan algoritem kvadratne casovne zah-
tevnosti, ki neposredno poisce stevilo potrebnih povezav za hamiltonsko dopolnitev grafa
za drevesa. Podan je tudi algoritem linearne casovne zahtevnosti za iskanje optimalnega
pokrivanja s potmi za drevesa. Algoritem razsirimo tudi na grafe z enim ciklom. Ce zelimo
dobiti resitev za poljubne grafe, poiscemo najprej ustrezno vpeto drevo, nato pa poiscemo
optimalno hamiltonsko dopolnitev za najdeno vpeto drevo. Ta algoritem je zal v splosnem
eksponentne casovne zahtevnosti.
Definirani in predstavljeni so tudi primeri sorodnih problemov. Problem dodeljevanja radij-
skih frekvenc, ki je zelo pomemben problem v telekomunikacijah, je povezan s problemom
hamiltonske dopolnitve grafa. Kaksen je ta problem in v cem se izraza njuna podobnost,
1
2
je opisano v zadnjem delu naloge. Opisana je tudi povezava med hamiltonsko dopolnitvijo
grafa in pokrivanjem s potmi z maksimalnim pretokom.
Poglavje 1
Osnovni pojmi in definicije
V tem poglavju so podani osnovni pojmi, ki jih potrebujemo pri naslednjih poglavjih. Ker
potrebujemo pojme iz teorije grafov in teorije algoritmov, so opisani osnovni pojmi iz obeh
podrocij.
1.1 Teorija grafov
Kadar govorimo o teoriji grafov, govorimo o nalogah, kjer se pojavljajo objekti, ki so med
seboj na nek nacin povezani. Za enostaven primer lahko vzamemo sobe v hisi, ki s prehodi
predstavljajo graf, kjer so sobe vozlisca grafa, prehodi med sobami pa povezave.
Slika 1.1: Sobe hise.
GrafG je neprazna mnozica elementov, ki jih imenujemo vozlisca in neurejenih parov vozlisc,
ki jih imenujemo povezave grafa. Mnozico vozlisc grafaG oznacimo z V(G), mnozico povezav
3
1.1 Teorija grafov 4
KUHINJA JEDILNICA
DNEVNA SOBA
HODNIK
OTROSKA SOBA
KOPALNICA
TOALETA
SPALNICA
Slika 1.2: Sobe hise in njihovi prehodi ponazorjeni z grafom.
grafa G pa oznacimo z E(G). Vsi grafi v tem diplomskem delu imajo koncni mnozici vozlisc
in povezav. Naj bo G′ graf z mnozico vozlisc V ′(G′) in mnozico povezav E′(G′). Ce
velja, da je V ′(G′) podmnozica mnozice V (G) in ce je vsaka povezava iz E′(G′) tudi v
E(G), potem graf G′ imenujemo podgraf grafa G. Naj bo G graf in U podgraf grafa
G, ki ni enak G. Z G − U oznacimo graf induciran z mnozico vozlisc V (G) \ U (iz G
odstranimo vsa vozlisca iz U in vse povezave, ki imajo vsaj eno krajisce v U). Ce je v
vozlisce grafa G, potem stevilo povezav, ki vsebujejo vozlisce v imenujemo stopnja vozlisca
v in jo oznacimo z deg(v). Vozliscem stopnje 0 pravimo izolirana vozlisca, vozliscem stopnje
1 pa listi. Ce sta u in v vozlisci grafa G in velja, da sta povezani s povezavo grafa G
potem recemo, da sta u in v sosedni, povezuje pa ju povezava e = uv. Pravimo, da je uv
incidencna z vozliscema u in v, vozlisci u in v pa sta krajisci povezave e. Ce je v grafu G
podano zaporedje k povezav oblike uv, vw,wx, ..., yz, potem to imenujemo sprehod dolzine
k. Ce so vse povezave sprehoda razlicne, potem sprehod imenujemo enostavni sprehod.
Ce so v enostavnem sprehodu vsa vozlisca razlicna, potem tak sprehod imenujemo pot. Ce
sprehod sklenemo, dobimo sklenjen sprehod ali obhod, ki je zaporedje povezav grafa G oblike
uv, vz, zx, ..., yu. Kadar so vse povezave v obhodu razlicne, potem tak obhod imenujemo
enostavni obhod. Ce so v enostavnem obhodu razlicna tudi vsa vozlisca, potem tak obhod
imenujemo cikel. Razdalja med vozliscema je enaka stevilu povezav, ki jih vsebuje pot med
tema dvema vozliscema z najmanjsim stevilom povezav.
Graf je povezan, ce obstaja pot med poljubnima dvema vozliscema in nepovezan, ce taksna
pot ne obstaja. Ce je graf nepovezan, potem je sestavljen iz nekaj povezanih podgrafov, ki
jih imenujemo komponente grafa. Povezavo grafa G imenujemo most, ce po njeni odstranitvi
graf ni vec povezan (slika 1.3).
Ce imamo graf G, pri katerem lahko mnozico vozlisc razdelimo na dve podmnozici A in B
tako, da je vsaka povezava grafa G incidencna z enim vozliscem mnozice A in enim vozliscem
mnozice B, potem taksnemu grafu recemo dvodelni graf (slika 1.4).
Povezan graf, pri katerem imata poljubna dva cikla skupno najvec eno vozlisce, se imenuje
1.1 Teorija grafov 5
a) u
v
w
z
x
y
b) u
v
w
z
x
y
Slika 1.3: a) Povezan graf, pri cemer je povezava uz most, b) graf po odstranitvipovezave uz razpade na dve komponenti.
Slika 1.4: Primera dvodelnih grafov.
kaktus. Graf K s k vozlisci, za katerega velja, da ima vsako vozlisce k − 1 sosednih vozlisc
imenujemo polni graf in ga oznacimo s Kk (slika 1.5).
Slika 1.5: Primera polnih grafov K5 in K7.
Grafu, ki ne vsebuje nobenega cikla pravimo gozd. Gozd, ki je tudi povezan imenujemo
drevo. Ker v drevesu ni ciklov, lahko iz enega vozlisca v drugega pridemo po natanko eni
poti, torej je vsak par vozlisc v drevesu povezan z natanko eno potjo. Ce odstranimo eno
povezavo v grafu, graf razpade na vec komponent grafa, to pomeni, da je vsaka povezava v
drevesu most (slika 1.6).
1.1 Teorija grafov 6
Slika 1.6: Primeri dreves.
Graf z oznacenimi vozlisci imenujemo oznacen graf, pri tem so oznake najpogosteje iz
mnozice naravnih stevil.
Naj bo G poljuben povezan graf. Podgraf grafa G, ki vsebuje vsa vozlisca grafa G in je
drevo, imenujemo vpeto drevo grafa G (slika 1.7). Laplaceova matrika grafa G se definira
na naslednji nacin L(G) = [li,j ],
li,j =
deg(vi) za i = j,
−1 za i 6= j in vi sosedna z vj ,
0 sicer.
a)
b)
1
2
3
4
56
1
2
3
4
561
1 1
2
2 2
3
3 3
4
4 4
5
5 5
6
66
Slika 1.7: a) Povezan graf G, b) vsa vpeta drevesa grafa G.
Stevilo vseh razlicnih oznacenih vpetih dreves grafa G oznacimo s t(G). Parameter t(G)
lahko izracunamo s pomocjo naslednjega izreka Kirchoffa.
1.1 Teorija grafov 7
Izrek 1.1 Naj bo G graf in λ1, λ2, ..., λn−1 nenicelne lastne vrednosti Laplaceove matrike
L(G). Potem velja t(G) = 1nλ1λ2...λn−1.
Iz tega izreka sledi Cayleyeva formula t(Kn) = nn−2.
S ponavljanjem naslednjega postopka na drevesu T: odstrani vsa vozlisca drevesa T stopnje
ena skupaj s povezavami, ki jih imajo za krajisca, dobimo na koncu eno vozlisce, ki ga
imenujemo center drevesa T ali dve vozlisci, ki ju imenujemo bicenter drevesa T.
Drevesa so lahko podana v hierarhicni strukturi v kateri je eno vozlisce izbrano za zacetno,
se nahaja na nivoju 0 in ga imenujemo koren drevesa. Vozlisca, ki so sosedna s korenom
drevesa, so na nivoju 1. Vsa vozlisca, ki so enako oddaljena od korena, so na istem nivoju.
Vsako vozlisce drevesa, ki ni list, je sosedno z vsaj enim vozliscem, ki se nahaja nivo
nizje v drevesu in ga imenujemo otrok. Vozlisce, ki je njegov sosed v enem nivoju visje,
imenujemo stars otroka. Edino vozlisce, ki nima starsa je koren drevesa. Potomec vozlisca
v je vozlisce, ki se nahaja nizje v drevesu kot vozlisce v in lezi na isti poti od korena drevesa
do nekega lista, kot vozlisce v. Taksno drevo imenujemo drevo s korenom. Drevo s korenom
je prikazano na sliki 1.8.
a
b
e
c d
f g h
i j k l
0. nivo
1. nivo
2. nivo
3. nivo
Slika 1.8: Hierarhicno drevo z nivoji.
Po drevesu moramo kdaj sistematicno iskati, zato potrebujemo metodo, ki nam to omogoca.
Ker iscemo vozlisce ali povezavo, potrebujemo metodo, ki bo obiskala vsa vozlisca in vse
povezave drevesa. Dve izmed teh metod sta metoda iskanja v globino in metoda iskanja v
sirino.
ISKANJE V GLOBINO: Imenovano tudi DFS iskanje (depth-first search)
Zacnemo v korenu drevesa a. Izberemo eno vozlisce, ki je otrok korena a, recimo vozlisce b.
Nato obiscemo vozlisce, ki je otrok vozlisca b in se ni bil obiskan. Vozlisca sproti stevilcimo
glede na vrstni red obiska. Ta postopek nadaljujemo dokler ne dosezemo vozlisca, recimo
1.1 Teorija grafov 8
vozlisca c, ki vec nima neobiskanega otroka. Nato se vrnemo korak nazaj do starsa vozlisca
c, do vozlisce b, ki lahko ima se neobiskane otroke in jih stevilcimo dalje. Slej kot prej se
moramo vrniti do vozlisca brez neobiskanega otroka, zato se vrnemo do starsa tega vozlisca
in nadaljujemo postopek dokler ne obiscemo vseh vozlisc drevesa. Postopek iskanja v globino
je prikazan na sliki 1.9.
a
b
c d
e f
g
h i
j k
l
a)
1
2
34
5 6
7
8 9
10 11
12
b)
Slika 1.9: Iskanje v globino. a) Graf G, b) vrstni red obiskovanja vozlisc.
ISKANJE V SIRINO: Imenovano tudi BFS iskanje (breadth-first search).
Iskanje v sirino se zacne v korenu drevesa a. Najprej obiscemo vse otroke vozlisca a. Potem
obiscemo otroke prvega obiskanega, nato se otroke drugega obiskanega vozlisca. Ta postopek
nadaljujemo, dokler ne obiscemo vseh vozlisc drevesa. Vozlisca sproti oznacujemo s stevili
kot je prikazano na sliki 1.10. Pri iskanju v sirino najprej obiscemo vsa vozlisca enega nivoja
preden se pomaknemo nivo nizje.
a
b
c d
e f
g
h i
j k
l
0
1 2
3 4 5 6 7
8 9 10 11
Slika 1.10: Iskanje v sirino.
1.2 Algoritmi 9
Primere grafov nam lahko predstavljajo tudi razlicna omrezja, elektricne povezave, vodo-
vodno omrezje. Ti grafi se od ostalih razlikujejo po tem, da je pri njih pomembna smer
prenosa ali pa smer pretoka. Tako dobimo graf, ki ima usmerjene povezave, ki jih imenu-
jemo loki. Digraf ali usmerjeni graf D je sestavljen iz mnozice vozlisc in seznama urejenih
parov vozlisc, ki se imenujejo usmerjene povezave. Mnozico vozlisc bomo oznacili tako kot
v primeru grafov z V (D), mnozico usmerjenih povezav pa z E(D). Naj bo D digraf in naj
bosta u in v vozlisci digrafa D. Ce med u in v obstaja usmerjena povezava recemo, da sta
vozlisci sosedni. Ce je ta povezava usmerjena od u k v, potem recemo, da gre povezava iz u
in gre v v. Vozlisci u in v sta krajisci te povezave. Ce je stevilo povezav, ki gredo v vozlisce
s enako 0, potem to vozlisce imenujemo izvor. Ce je stevilo povezav, ki gredo iz vozlisca t
enako 0, potem to vozlisce imenujemo ponor.
Utezeni graf imenujemo graf G v katerem je vsaki povezavi v grafu prirejeno realno stevilo
ali utez. Utezeni graf je lahko usmerjen ali neusmerjen. Naj bo G(V,E) usmerjen graf v
katerem ima vsaka povezava uv ∈ E nenegativno utez c(u, v). Ce uv ne pripada E lahko
predpostavimo, da je c(u, v) = 0. Pretok skozi usmerjen graf G, z izvorom s in ponorom
t oziroma usmerjeno omrezje N(G) je realna funkcija f : V × V → R z naslednjimi tremi
lastnostmi za vsa vozlisca u in v:
• f(u, v) ≤ c(u, v), pri cemer je f(u, v) mozen pretok od u do v,
• f(u, v) = −f(v, u),
•∑
w∈V f(u,w) = 0 za vsak u ∈ V (G) razen za u = s ali w = t.
Naj bo f∗ =∑
v∈V f(u, v) vrednost maksimalnega s− t pretoka v omrezju N(G). Problem
maksimalnega pretoka je najti najvecji mozen pretok od izvora s do ponora t skozi usmerjen
graf (tak, ki doseze vrednost f∗).
Povezan graf G je hamiltonski, ce obstaja cikel, ki vsebuje vsa vozlisca grafa G. Tak cikel
imenujemo hamiltonski cikel. Kadar pa obstaja pot, ki obisce vsa vozlisca grafa G natanko
enkrat, jo imenujemo hamiltonska pot. Hamiltonska pot in hamiltonski cikel sta prikazana
na sliki 1.11.
1.2 Algoritmi
Algoritem je seznam korakov, ki nas pripeljejo do resitve dolocenega problema. Pri algo-
ritmu je pomembno, da ima cim manjse zahteve po prostoru in casu, ki sta potrebna za
njegovo izvedbo. Pomemben kriterij za ucinkovitost tako predstavljata casovna in prostor-
ska zahtevnost. Casovna zahtevnost je podatek ali ocena o tem, koliko casa se bo program
1.2 Algoritmi 10
v1 v2
v3v4
v5 v6
v7v8
Slika 1.11: Hamiltonski cikel tvori zaporedje vozlisc v1, v2, v3, v4, v5, v6, v7, v8, v1, ha-miltonsko pot tvori zaporedje vozlisc v1, v2, v3, v4, v5, v6, v7, v8.
izvajal pri danih vhodnih podatkih, preden bo vrnil resitev. Obicajno jo merimo v stevilu
osnovnih operacij (sestevanje, odstevanje, mnozenje, deljenje), ki jih algoritem potrebuje, da
se izvede. Prostorska zahtevnost je kolicina informacij, ki jih moramo shraniti in uporabiti
za resitev problema.
Naj bosta f(x) in g(x) dve funkciji definirani na mnozici realnih stevil. Potem funkcija
veliki O definiramo na naslednji nacin: f(x) = O(g(x)), ce obstaja pozitivno realno stevilo
M in realno stevilo x0 tako, da velja |f(x)| ≤M |g(x)| za vse x > x0. Algoritem je linearne
casovne zahtevnosti oz. njegova casovna zahtevnost je O(n), ce se za dovolj velike vhodne
podatke n, n ∈ N, stevilo korakov veca linearno z velikostjo vhodnih podatkov oz. stevilo
operacij, ki jih mora racunalnik izvesti je kvecjemu Cn, kjer je C konstanta. Algoritem je
polinomske casovne zahtevnosti oz. njegova casovna zahtevnost je O(nk), ce se stevilo kora-
kov ne veca hitreje kot polinomska funkcija glede na vhodne podatke oz. je stevilo operacij,
ki jih mora racunalnik izvesti kvecjemu Cnk, kjer je C konstanta. Med algoritme poli-
nomske casovne zahtevnosti stejemo tudi algoritme kvadratne casovne zahtevnosti, O(n2).
Problemi za katere so znani samo algoritmi eksponentne casovne zahtevnosti, O(kn), pri
katerih se stevilo korakov veca z eksponentno hitrostjo, veljajo za zahtevne probleme.
Odlocitveni problem je problem, na katerega lahko odgovorimo pritrdilno ali ne. NP pro-
blem je tisti problem, za katerega velja, da lahko za poljubnega kandidata za njegovo resitev
v polinomskem casu odgovorimo pritrdilno ali je kandidat resitev problema. Problem A je
NP-poln, ce velja, da je A v razredu NP in ce se da vsak problem iz razreda NP prevesti
na problem A v polinomskem casu. Se vedno ni znano, ce za probleme, ki so v razredu
NP, obstajajo algoritmi polinomske casovne zahtevnosti, ki bi resili te probleme. Vsi do
sedaj znani algoritmi za probleme, ki so NP-polni, so eksponentne casovne zahtevnosti,
zato uvrstitev problema med NP-polne probleme velja za splosno sprejeti kriterij, ki kaze,
da imamo opravka z algoritemsko zahtevnim problemom.
Poglavje 2
Hamiltonska dopolnitev grafa
Hamiltonska dopolnitev grafa G = (V,E) je mnozica povezav, ki jih dodamo grafu G, da
postane graf G hamiltonski. Stevilo hamiltonske dopolnitve je minimalno stevilo povezav, ki
jih potrebujemo, da dobimo hamiltonsko dopolnitev grafa G. To stevilo oznacimo s hc(G).
Iz definicije sledi 0 ≤ hc(G) ≤ n, kjer je n stevilo vozlisc v grafu G.
Problem hamiltonske dopolnitve ima tudi sorodne probleme. Najbolj podoben koncept je
pokrivanje s potmi za graf G. Pokrivanje s potmi je mnozica poti, ki pokrije vsako vozlisce
grafa G natanko enkrat. Stevilo pokrivanja s potmi je minimalno stevilo poti v pokrivanju
s potmi. Oznacimo ga s pc(G).
Na sliki 2.1 b) sta prikazana zgleda pokrivanja s potmi za graf G.
V pokrivanju s potmi grafa G imamo mnozico k poti. Ce zelimo dobiti hamiltonsko dopolni-
tev grafa G, moramo poti med seboj povezati. Ce dodamo k−1 povezav, da povezemo poti
iz pokrivanja s potmi paroma med seboj, dobimo hamiltonsko pot. Ker zelimo hamiltonski
graf, moramo povezati se prvo in zadnje vozlisce hamiltonske poti, da dobimo hamiltonski
cikel. Iz tega sledi naslednja enakost:
pc(G) = hc(G) (2.1)
Zgled. Na sliki 2.1 b) je na prvem grafu prikazano pokrivanje s potmi, ki vsebuje stiri
poti. Ce jih povezemo med seboj s stirimi novimi povezavami, ki so oznacene s crtkano
crto, dobimo hamiltonski cikel. Na sliki 2.1 je pokrivanje s potmi, ki vsebuje tri poti. Ce
jih povezemo med seboj s tremi povezavami, ponovno dobimo hamiltonski cikel v novem
grafu.
11
12
a)
b) c)
Slika 2.1: Pokrivanje s potmi. a) Graf G. b) Z odebeljenimi povezavami so oznacenepoti v pokrivanju s potmi. c) Z odebeljenimi povezavami so oznacene poti v optimal-nem pokrivanju s potmi.
Po 2.1 je hamiltonska dopolnitev grafa enakovreden problem iskanju minimalnega pokriva-
nja s potmi, zato si bomo pomagali s prevodom problema iskanja minimalnega pokrivanja
s potmi na iskanje pokrivanja s potmi z najvec povezavami. To je pokrivanje s potmi, ki
vkljucuje maksimalno stevilo povezav v poljubnem pokrivanju s potmi za graf G. Stevilo
pokrivanja s potmi z najvec povezavami, kar oznacimo z mpc(G), je stevilo povezav v tem
pokrivanju. Stevilo povezav v poljubnem pokrivanju s potmi grafa G je enako razliki stevila
vozlisc v grafu G in stevila poti v pokrivanju. To velja tudi za optimalno pokrivanje s potmi
z najvec povezavami, torej velja mpc(G) = |V (G)| − pc(G). Ce to povezemo z enakostjo
2.1, dobimo naslednjo lemo.
Lema 2.1 Za poljuben graf G z |V (G)| vozlisci ima pokrivanje s potmi maksimalno stevilo
povezav, ce in samo ce ima minimalno stevilo poti. Poleg tega veljajo enakosti
mpc(G) = |V (G)| − pc(G) = |V (G)| − hc(G) (2.2)
Zgled. Na sliki 2.2 a) je prikazan graf G na 14 vozliscih. Graf vsebuje tri liste in en most
za katerega velja, da po njegovi odstranitvi graf razpade na komponenti pri katerih nobena
ni enostavna pot. Ce hocemo dobiti hamiltonsko dopolnitev grafa, potrebujemo najmanj
dve povezavi, da povezemo liste med seboj in eno povezavo, da povezemo komponento
13
grafa, po kateri smo prisli prek mosta, nazaj pa ne moremo brez dodane povezave. Torej
za hamiltonsko dopolnitev grafa potrebujemo najmanj tri nove povezave oziroma velja, da
za optimalno pokrivanje s potmi potrebujemo najmanj tri poti. Na sliki b) je prikazana
uporaba leme 2.1 za optimalno pokrivanje s potmi, ki vsebuje tri poti: mpc(G) = 14− 3 =
11. Pokrivanje s potmi res vsebuje 11 povezav. Slika c) prikazuje primera neoptimalnega
pokrivanja s stirimi potmi, mpc(G) = 14− 4 = 10. Pokrivanje res vsebuje 10 poti.
a) b)
c)
Slika 2.2: Slika leme 2.1.
Problem iskanja hamiltonske dopolnitve je bil prvic predstavljen v sedemdesetih letih prej-
snjega stoletja. Predstavili so ga Boesch, Chen in McHugh [1] ter Goodman in Hedetni-
emi [5]. Pred tem je bila zanimiva sorodna tema pokrivanje s potmi. Iskanje optimalne
hamiltonske dopolnitve in optimalnega pokrivanja s potmi spadata v razred NP-polnih pro-
blemov, saj je ze samo ugotavljanje ali je graf hamiltonski ali ne problem, ki spada v razred
NP-polnih problemov. Avtorji Boesch, Chen in McHugh [1], Goodman in Hedetniemi [5]
in Gallai ter Milgram [2] so neodvisno drug od drugega odkrili algoritme za izgradnjo op-
timalnega pokrivanja s potmi za drevesa, ki so izvedljivi v polinomski casovni zahtevnosti.
Kasneje je Kundu [11] podal algoritem za optimalno pokrivanje s potmi za drevesa line-
arne casovne zahtevnosti. Nato so Goodman, Hedetniemi in Slater [6] podali algoritem za
dolocanje stevila hamiltonske dopolnitve za grafe z enim ciklom, ki je izvedljiv v polinomski
casovni zahtevnosti. Nekaj let kasneje Karejan in Mosesjan [9] podata algoritem za digrafe
14
brez ciklov, ki je prav tako izvedljiv v polinomski casovni zahtevnosti. Korienko [10] je
podal algoritem linearne casovne zahtevnosti za dolocanje stevila hamiltonske dopolnitve
za kaktuse. Tudi Moran in Wolfstahl sta [12] posplosila presnje delo Pinterja in Wolfstahla
[13] in podala algoritem linearne casovne zahtevnosti za kaktuse.
Poglavje 3
Hamiltonska dopolnitev dreves
V tem poglavju podamo algoritem kvadratne casovne zahtevnosti za hamiltonsko dopolnitev
za drevesa. Podamo tudi algoritem za drevesa, ki resi problem v linearni casovni zahtevnosti.
Algoritem razsirimo na grafe z enim ciklom in na kaktuse.
3.1 Enostaven algoritem kvadratne casovne zah-
tevnosti za drevesa
V nadaljevanju predstavimo algoritem za iskanje stevila hamiltonske dopolnitve za poljubno
drevo. Podoben algoritem so razvili Boesch, Chen in McHugh [1].
Lema 3.1 Naj bo T drevo in naj bo v poljuben list drevesa T , ki je soseden vozliscu u
stopnje dva. Potem velja hc(T ) = hc(T − v).
Dokaz. Poglejmo si drevo T − v in naj G oznacuje optimalno hamiltonsko dopolnitev
drevesa T − v. Graf G torej vsebuje vsa vozlisca in vse povezave grafa T − v le, da ima
se hc(T − v) novo dodanih povezav. Ker je u list drevesa T − v, bo vsaj ena novo dodana
povezava v grafu G incidencna z vozliscem u. Naj bo ta povezava uw. S preusmeritvijo
povezave uw na vw v grafu T dobimo povezan hamiltonski graf G1 s hc(T −v) povezavami.
Od tod sledi hc(T ) ≤ hc(T − v).
Obratno naj velja, da je G1 hamiltonski graf, ki vsebuje vse povezave in vsa vozlisca grafa
T in ima dodanih hc(T ) novih povezav. Ker je v list grafa T , mora biti ena nova povezava
incidencna z vozliscem v. Recimo, da je povezava wv incidencna z v. V tem primeru
mora pripadajoci hamiltonski cikel v nekem vozliscu iti iz vozlisca w v vozlisce v do u. S
15
3.1 Enostaven algoritem kvadratne casovne zahtevnosti za drevesa 16
preusmeritvijo povezave wv na povezavo wu dobimo hamiltonski graf G s hc(T ) novimi
povezavami, zato velja hc(T − v) ≤ hc(T ).
Poglejmo si naslednjo lemo in njen dokaz.
Lema 3.2 Naj bosta u in v lista drevesa T in naj bosta oba sosedna vozliscu w stopnje
najmanj tri. Potem velja:
hc(T − {u, v, w}) = hc(T )− 1 (3.1)
Dokaz. Zlahka preverimo, da velja hc(K1) = hc(K2) = 1, torej enakost 3.1 velja, kadar
je T − {u, v, w} enak K1 ali K2. Pokazali bomo, da velja hc(T ) ≤ hc(T − {u, v, w}) + 1.
Predpostavimo, da T − {u, v, w} postane povezan hamiltonski graf, ce mu dodamo hc(T −{u, v, w}) novih povezav. Ker nov dobljen hamiltonski graf vsebuje vsaj eno novo povezavo,
recimo w1w2, jo lahko izbrisemo in dodamo dve novi povezavi w1u in vw2. Tako dobimo
nov povezan hamiltonski graf s hc(T − {u, v, w}) + 1 povezavami. Od tod sledi
hc(T ) ≤ hc(T − {u, v, w}) + 1. (3.2)
u v
w
a)
u v
w
b)
u v
w
c)
u v
w
d)
w1
w2
Slika 3.1: Dokaz enakosti 3.1.
Pokazati se moramo, da velja hc(T )−1 ≥ hc(T−{u, v, w}). Vemo, da sta u in v lista drevesa
T sosedna vozliscu w stopnje vecje ali enake tri. Predpostavimo, da T postane hamiltonski
graf, ce mu dodamo hc(T ) novih povezav. Pri odstranjevanju vozlisc u, v in w pridemo do
3.1 Enostaven algoritem kvadratne casovne zahtevnosti za drevesa 17
treh razlicnih situacij, ki so prikazane na sliki 3.1. S crtkastimi crtami so prikazane novo
dodane povezave hamiltonskega cikla, s pikcastimi rdecimi crtami pa so oznacene povezave,
ki nastanejo po odstranitvi vozlisc u, v, w. Na sliki 3.1 b) je prikazana situacija, ko sta uw
in wv povezavi v hamiltonskem ciklu. Ce odstranimo vozlicca u, v, w, nadomestimo dve
povezavi hamiltonskega cikla uw1 in vw2 z eno w1w2. Na sliki 3.1 c) je prikazana situacija,
ko je samo ena povezava uw v hamiltonskem ciklu. V tem primeru odstranimo tri povezave
hamiltonskega cikla in jih nadomestimo z najvec dvema novima povezavama. Na sliki 3.1
d) je prikazana situacija, kjer hamitonski cikel ne vsebuje nobene povezave med vozlisci
u, v in w. V tem primeru z odstranitvijo vozlisc u, v, w odstranimo najmanj stiri povezave
hamiltonskega cikla, ki jih nadomestimo z najvec tremi novimi povezavami. Iz vseh treh
primerov sledi hc(T )− 1 ≥ hc(T − {u, v, w}).
Definirajmo operacijo A, ki bo igrala pomembno vlogo v algoritmu za hamiltonsko dopol-
nitev drevesa.
Operacija A: Iz drevesa T odstranimo poljuben list u v drevesu T , ki je soseden vozliscu
v stopnje dva.
Za opis algoritma potrebujemo tudi naslednjo lemo.
Lema 3.3 Naj bo T drevo in naj bo T ∗ drevo, ki smo ga dobili iz drevesa T tako, da smo
na njem ponavljali operacijo A dokler se ta ni vec dala izvesti. Potem je T ∗ drevo bodisi
enako K2, bodisi vsebuje dva lista u in v, ki sta sosedna z vozliscem w stopnje najmanj tri
v drevesu T ∗.
Dokaz. Ce T vsebuje samo eno pot, potem nima vozlisc stopnje vecje ali enake tri in velja,
da je T ∗ = K2. Ce T vsebuje vsaj eno vozlisce stopnje najmanj tri, potem bo T ∗ vseboval
vsaj eno vozlisce stopnje najmanj tri. V tem primeru naj bo u1 list drevesa T ∗. Po definiciji
T ∗ mora biti u1 sosedno vozliscu u2 stopnje najmanj tri v T ∗. Ce je u2 sosedno z se enim
listom, potem smo trditev dokazali. Ce to ne velja, naj bo u3, u3 6= u1, soseden vozliscu u2.
Ce je u3 stopnje dva, potem naj bo u4 drugo vozlisce, ki je sosedno vozliscu u3. Po definiciji
drevesa T ∗ u4 ne more biti stopnje ena. Ce je u4 stopnje dva, potem lahko nadaljujemo z
naslednjim vozliscem u5, ki je sosedno z vozliscem u4. Ce tako nadaljujemo, slej kot prej
pridemo do vozlisca, recimo ui, ki je stopnje najmanj tri. Ce je to vozlisce ui sosedno z
dvema listoma, potem smo dokaz koncali, sicer nadaljujemo do naslednjega vozlisca uj , ki
ni list in je sosedno z ui.
S taksnim nadaljevanjem moramo slej kot prej priti do vozlisca v, ki je stopnje najmanj tri
in je sosedno listu drevesa T .
3.1 Enostaven algoritem kvadratne casovne zahtevnosti za drevesa 18
V nadaljevanju je opisana se operacija B, ki jo potrebujemo za algoritem.
Operacija B: Iz drevesa T odstrani vozlisca u, v, w, kjer sta u in v lista sosedna z w, ki je
stopnje najmanj tri v drevesu T .
Sedaj lahko zapisemo algoritem:
Algoritem A:
Korak 0 : Stevilo hamiltonske dopolnitve hc(T ) postavimo na 0 in pod graf G shranimo
trenuten graf T .
Korak 1 : Iz grafa G odstranjujemo vozlisca, ki so sosedna vozliscem stopnje 2. To pona-
vljamo tako dolgo, dokler ne odstranimo vseh taksnih vozlisc.
Korak 2 : Iz grafa G odstranjujemo vozlisca u, v in w, kjer velja, da sta u in v lista sosedna
vozliscu w stopnje najmanj tri. Vsakic ko to naredimo, povecamo hc(G) za ena.
Korak 3 : Iz grafa G odstranimo vsa izolirana vozlisca, ki smo jih dobili z izvajanjem 1. in
2. koraka. Povecamo hc(G) za ena za vsako tako odstranjeno izolirano vozlisce.
Korake od 1 do 3 ponavljamo, dokler imamo kaj za odstraniti iz grafa G.
Zgled. Na sliki 3.2 je prikazano delovanje algoritma A na enostavnem primeru. Na zacetku
je po algoritmu A hc(T ) = 0.
Na sliki 3.2 a) je drevo T . Operacije A ne moremo izvesti, saj drevo T ne vsebuje nobenega
lista, ki bi bil soseden z vozliscem stopnje dva, zato izvedemo opreacijo B na treh obkrozenih
vozliscih. Odstranimo tri vozlisca z obema povezavama, ki zadoscajo pogoju za operacijo
B. Ker smo izvedli opreacijo B, se hc(T ) poveca za 1. Dobimo drevo na sliki 3.2 b), ki ne
vsebuje nobenega lista, zato spet izvedemo operacijo B na treh obkrozenih vozliscih. Po
izvedbi operacije B nam sedaj po odstranitvi treh vozlisc ostane eno izolirano vozlisce, slika
3.2 c). Ker smo izvedli opreacijo B se hc(T ) poveca za 1. Odstranimo izolirano vozlisce,
slika 3.2 d), in povecamo hc(T ) za 1. Ker imamo list, ki je soseden z vozliscem stopnje dva,
ga skupaj s povezavo odstranimo. Po izvedbi operacije A se hc(T ) ne poveca, slika 3.2 e).
Izvedemo operacijo B na treh obkrozenih vozliscih, slika 3.2 f), in povecamo hc(T ) za 1.
Izvedemo operacijo A za obkrozen list. Pridemo do grafa K2 in povecamo hc(T ) za 1, slika
3.2 g).
Na koncu dobimo gozd sestavljen iz odstranjenih komponent grafa, slika 3.2 h). Ker se pri
odstranjevanju listov, ki so sosedni vozliscem stopnje dva hc(T ) ne spremeni, so te povezave
3.1 Enostaven algoritem kvadratne casovne zahtevnosti za drevesa 19
a) b)
d) e) f)
g)
hc(G)=1hc(G)=0
hc(G)=3
c)
hc(G)=2
hc(G)=3 hc(G)=4
hc(G)=4
h)
hc(G)=5
i)
Slika 3.2: Izvajanje algoritma A na enostavnem primeru drevesa.
oznacene s crtkanimi crtami. Opazimo, da dobimo 5 komponent, ki jih moramo povezati s
petimi povezavami, ki so na sliki 3.3 b) oznacene s crtkanimi crtami, da dobimo hamiltonov
cikel hc(T ) = 5.
Da ugotovimo casovno zahtevnost tega algoritma, se osredotocimo na del algoritma, ki se
ponavlja. Naj bo n = |V (T )|. V koraku 1 poiscemo vsa vozlisca, ki so sosedna vozliscem
stopnje dva in jih odstranimo, zato za korak 1 potrebujemo kvecjemu n operacij. V koraku
2 poiscemo vsa vozlisca, ki so sosedna vozliscem stopnje tri in jih odstranimo, zato za korak
2 potrebujemo kvecjemu n operacij. V koraku 3 iscemo in odstranjujemo izolirana vozlisca,
kar spet zahteva kvecjemu n operacij. Vse tri korake ponavljamo tako dolgo, dokler ne
odstranimo vseh vozlisc, torej korake od 1 do 3 ponovimo najvec n krat. Od tod dobimo
3.2 Trte 20
a) b)
Slika 3.3: Na sliki a) je prikazano drevo iz slike 3.2. Na sliki b) so prikazanekomponente drevesa, ki so nastale po izvedbi algoritma A.
n · (n+ n+ n) = n · 3n = 3n2 operacij. Torej vidimo, da je algoritem A kvadratne casovne
zahtevnosti, O(n2).
3.2 Trte
Glavna strategija za izpeljavo algoritma linearne casovne zahtevnosti za optimalno pokriva-
nje s potmi za drevesa ali gozdove je, da odstranjujemo poti posebnega tipa. Z maksimalno
potjo za katero velja, da je vsaj eno vozlisce list in da je vsaka povezava incidencna samo
z vozlisci stopnje 1 ali 2, imenujemo trta. Trta je lahko neprazna, lahko je sestavljena iz
samo enega lista ali celotnega grafa, ce je graf pot. Ce je vozlisce stopnje najmanj tri so-
sedno listom vsaj dveh trt, ga bomo imenovali center poti. Pot trte je pot, ki je povezana
komponenta gozda ali pot, ki jo sestavljata center poti in njemu dve sosedni trti.
a
bc
de
v
f g
h
Slika 3.4: Trte : Poti ab, cde, fg in h so trte grafa G. Vozlisce v povezuje trti ab incde, zato je center poti grafa G.
3.2 Trte 21
V naslednji lemi je opisana pomembnost poti trt za izpeljavo algoritma za optimalno po-
krivanje s potmi za drevesa ali gozdove.
Lema 3.4 Naj bo G poljuben graf s potjo trt P. Potem optimalno pokrivanje s potmi grafa
G vsebuje P .
Dokaz. Predpostavimo, da P ni samostojna komponenta (obstaja povezava med P in
ostalimi vozlisci grafa), saj je sicer rezultat trivialen, ker bi bila P v tem primeru edina pot
v optimalnem pokrivanju s potmi.
Naj bo v center poti P in naj bosta P1 in P2 dve trti, ki skupaj z vozliscem v sestavljata
P . Naj bo C mnozica poti, ki predstavlja optimalno pokrivanje poti za graf G. Naj bo pot
Q v mnozici C, ki poteka skozi vozlisce v.
Ker vsa vozlisca, ki lezijo na poti P1, lezijo na isti poti velja, da je P1 pot v C ali Q vsebuje
P1. Podobno velja za P2.
Najprej predpostavimo, da Q ni enaka P in Q vsebuje natanko eno izmed trt P1 in P2.
Recimo, da vsebuje trto P1. Ker smo prej ugotovili, da je trta P2 bodisi pot v C bodisi Q
vsebuje P2, vemo pa, da Q vsebuje samo P1, zato C vkljucuje P2. Ce zamenjamo povezavo,
ki je incidencna s trto v Q, ki ni P1, in vozliscem v s povezavo, ki je incidencna s trto
P2 in vozliscem v, ustvarimo pot trte P , kot na primeru slike 3.5. To lahko storimo, saj
zamenjava ohranja stevilo povezav in ne more ustvariti cikla. Ustvarili smo novo optimalno
pokrivanje s potmi, ki vkljucuje pot trt P , slika 3.5 a).
Ce pa Q ne vkljucuje niti P1 niti P2, sta P1 in P2 poti v C. Z zamenjavo para povezav, ki
sta incidencna z v in trtama v Q in para povezav, ki sta incidencna z v in P1 in P2 ustvarimo
novo optimalno pokrivanje s potmi, ki vkljucuje P, slika 3.5 b).
Zgled. Na sliki 3.5 je prikazan graf G. Na sliki 3.5 a) je prikazan primer, ko Q poteka
skozi v in vsebuje natanko eno izmed trt P1 in P2, Q vsebuje P1. Povezavo zv zamenjamo
s povezavo uv. S tem dobimo novo optimalno pokrivanje s potmi, ki vsebuje P , pot trte,
ki vsebuje trti P1 in P2. Na sliki 3.5 b) Q ne vsebuje nobene izmed poti trt P1 in P2, zato
zamenjamo dva para povezav: zv zamenjamo z uv in tv zamenjamo z wv. Spet dobimo
novo optimalno pokrivanje s potmi, ki vsebuje P.
Veliko grafov ne vkljucuje poti trt. Recimo cikli ne vsebujejo trt, za drevesa pa velja
naslednja lema.
Lema 3.5 Vsako drevo, razlicno od K1, vkljucuje vsaj eno pot trte.
3.2 Trte 22
v
v
a)
v
v
v
b)
P1P2
Q
P1
P2
Q
P1
P2
P1
P2
u w
z tu w
z t
u w
z tu w
z t
Slika 3.5: Dokaz leme 3.4.
Dokaz. Ce je drevo T pot, potem je celo drevo pot trte. Ce drevo T ni pot, potem
izberemo poljubno vozlisce u kot koren drevesa T in naj bo v potomec stopnje najmanj tri,
ki je najbolj oddaljen od u, lahko se zgodi, da je u = v. Potem morata biti poljubna dva
potomca vozlisca v lista trt tako, da velja, da je v center poti in s tem lezi na poti trt.
V splosnem velja, ce zbrisemo pot trte iz drevesa, ustvarimo gozd. Lema 3.5 zagotavlja, da
v poljubnem gozdu vsaka komponenta vkljucuje pot trte. Tako lahko iz leme 3.4 in leme
3.5 izpeljemo algoritem za kreiranje pokrivanja s potmi z najvec povezavami za drevesa.
Algoritem pokrivanje s potmi
Vhod gozd F
3.2 Trte 23
ponavljaj
Naj bo P poljubna pot trt v F;
dodaj P v mnozico pokrivanj s potmi;
Nadomesti F s F-P;
dokler F ni prazen
konec
Vhodni podatek algoritma pokrivanja s potmi je gozd F . Nato ponavljamo ves cas isti
postopek: P -ju priredimo poljubno pot trte, ki smo jo nasli v gozdu F , nato P dodamo v
seznam pokrivanja s potmi. Ker smo pot trte P ze dodali pokrivanju s potmi in se zelimo
izogniti, da bi se enkrat nasli isto pot trte, jo moramo odstraniti iz gozda P , zato odstranimo
pot trte P iz gozda F . To ponavljamo tako dolgo, dokler gozd ni prazen.
Opisali smo algoritem, ki iz podanega gozda F postopoma odstranjuje poti trt in jih dodaja
pokrivanju s potmi, dokler gozd ne ostane prazen. Lema 3.5 zagotavlja, da vsaka drevesna
komponenta, ki vsebuje vsaj eno vozlisce, vkljucuje pot trte, kot smo ze omenili zgoraj.
Omenili smo tudi, ce iz drevesa odstranimo pot trte, potem dobimo gozd. Vse to nam
zagotavlja, da se zanka slej kot prej zakljuci.
3.2.1 Razsiritev algoritma na grafe z enim ciklom
V tem razdelku razsirimo algoritem za konstrukcijo optimalnega pokrivanja s potmi na grafe
z enim ciklom. Naj bo G graf z enim ciklom. Ce veckrat zaporedoma odstranimo najdeno
pot trt, dobimo graf G, ki ne vsebuje nobene poti trt. V primeru, da dobimo graf G, ki ni
prazen, lahko sklepamo, da G vsebuje en cikel C z najvec eno trto pripeto na vsako vozlisce
cikla.
Ce velja, da G = C ali ima C natanko eno trto pripeto nase, je enostavno konstruirati
optimalno pokrivanje poti z eno potjo (|V (G)| − 1 povezavami). Ce ima C eno trto pripeto
na vsako vozlisce kot na primeru iz slike 3.6, moramo izbrisati vsaj eno povezavo iz C. Ce
obstaja vozlisce v, ki ni incidencno s trto, potem naj bosta P in Q dve trti, ki sta najblizje
vozliscu v. Ce naredimo zamenjavo podobno kot pri dokazu leme 3.4, lahko pokazemo, da
obstaja optimalno pokrivanje s potmi, ki vkljucuje pot, ki je sestavljena iz P , v in Q in
jo lahko odstranimo iz grafa G. V vsakem primeru je novo nastali graf drevo, katerega
pokrivanje s potmi znamo konstruirati iz prejsnjega razdelka.
Zgled. Na sliki 3.6 je prikazan primer konstrukcije optimalnega pokrivanja s potmi za graf
z enim ciklom. Razlikujemo tri razlicne primere:
3.2 Trte 24
a) b)
c)
v
P
Q
Slika 3.6: Konstrukcija optimalnega pokrivanja s potmi za grafe z enim ciklom.
a) Primer grafa, v katerem ima cikel C nase pripeto samo eno trto. V tem primeru zbrisemo
povezavo v ciklu, ki je incidencna z vozliscem, ki je incidencno s to trto.
b) Primer grafa, v katerem ima cikel C na vsako njegovo vozlisce pripeto eno trto. Izbrisemo
poljubno povezavo v ciklu in dobimo drevo, katerega problem znamo resiti.
c) Primer grafa, ko vozlisce v ni incidencno z nobeno trto. P in Q sta trti, ki sta najblizje
vozliscu v. Pot, ki vsebuje P , v in Q dodamo pokrivanju s potmi, kot prikazuje slika 3.6 c).
3.2.2 Algoritem linearne casovne zahtevnosti za drevesa
Pokrivanje s potmi in hamiltonska dopolnitev grafa sta enakovredna problema, a je algo-
ritem za pokrivanje s potmi enostavneje implementirati, zato bomo opisali algoritem za
optimalno pokrivanje s potmi. Osredotocili se bomo na algoritem za drevesa, ki se izvede
v linearni casovni zahtevnosti. Predpostavimo, da ima drevo T vozlisca podana v tabeli.
V tej tabeli so zapisana vsa vozlisca drevesa, zraven teh vozlisc pa so shranjene vse njihove
sosede. Izhod algoritma bo oznacevanje povezav z oznakama znotraj in zunaj. Ce je pove-
zava oznacena znotraj pomeni, da je v pokrivanju s potmi, sicer ne spada k pokrivanju s
potmi. Poti lahko uredimo v linearni casovni in prostorski zahtevnosti z iskanjem povezanih
3.2 Trte 25
komponent grafa samo z uporabo oznak znotraj in zunaj povezave, saj imamo vse povezave
shranjene v tabeli (kar pomeni linearno prostorsko zahtevnost, iskanje po tabeli pa linearno
casovno zahtevnost).
Najprej uporabimo iskanje v sirino, da oznacimo vozlisca drevesa T v taksnem vrstnem
redu kot so oddaljena od korena drevesa, ki je izbran poljubno. V algoritmu so vozlisca
obdelana v obratnem vrstnem redu od iskanja v sirino. Ce srecamo vozlisce stopnje tri ali
vec vemo, da je center poti.
Algoritem pokrivanje s potmi
Vhod:
Drevo T ;
Seznam kazalcev na vozlisca v obratnem vrstnem redu iskanja v sirino;
Kazalec Stars(v) iz vsakega vozlisca na njegovega starsa;
Inicializacija:
Oznacimo vse povezave z znotraj ;
deg(v):=stevilo povezav, ki so incidencne z v;
Za vsako vozlisce v iz seznama
Ce deg(v)≥ 3 potem
Naj bosta x,y poljubna otroka vozlisca v in povezavi vz,vy oznaceni z znotraj
Za vsak z 6= x, y in povezavo vz oznaceno z znotraj
Oznaci vz zunaj ;
deg(z):=deg(z)−1;
konec
deg(v):=2;
Sicer
Ne naredi nicesar.
Vrni se
konec(Za)
konec.
OPIS ALGORITMA:
Vhodni podatki algoritma so drevo T , katerega pokrivanje s potmi iscemo, seznam kazalcev
na vozlisca v obratnem vrstnem redu iskanja v sirino, saj nam omogocajo, da se pomikamo
3.2 Trte 26
od vozlisca do vozlisca. Ker algoritem deluje na povezave v obratnem vrstnem redu kot
iskanje v sirino, jih tako shranimo. Kazalci na vozlisca nam omogocajo pomikanje po
drevesu navzdol. Zadnji vhodni podatki, ki jih potrebujemo, pa so kazalci na starse iz
vsakega vozlisca, da se lahko pomikamo navzgor po drevesu.
Inicializacija: Oznacimo vse povezave znotraj. To pomeni, da spadajo k pokrivanju s potmi.
Povezave bomo odstranjevali tako, da jih bomo oznacevali z zunaj. Moramo si tudi shraniti
stopnjo vozlisca v, da bomo lahko izvajali primerjave.
Zanka: Za vsako vozlisce drevesa posebej se izvede naslednji postopek.
Preverimo, ce je stopnja vozlisca v vecja ali enaka tri. Ce je, potem nadaljujemo s postop-
kom. Ce je stopnja vozlisca v manjsa kot tri, se ta proces zakljuci in se vse skupaj ponovi
za naslednje vozlisce.
Pogojni stavek : Ce je stopnja vozlisca v vecja ali enaka tri potem izberemo poljubna dva
otroka x in y vozlisca v, za katera velja, da sta povezavi xv,yv znaceni z znotraj. Za vsa
ostala vozlisca z pa velja, da povezave zv ne lezijo v pokrivanju s potmi, saj nobena pot ne
vsebuje vozlisca stopnje vec kot dva, vozlisce v pa ze ima dva otroka, to sta x in y. Torej
smo vse ostale povezave oznacili z zunaj. Vozliscu v moramo se prirediti stopnjo dva, saj
ima natanko dva otroka. Ko se vse to izvrsi, se postopek ponovi za naslednje vozlisce.
Zgled. Delovanje algoritma prekrivanje s potmi je prikazano na sliki 3.7. Na sliki 3.7 a) je
prikazano drevo, kjer so vozlisca oznacena glede na iskanje v sirino. Na sliki 3.7 b) pridemo
do vozlisca 8, ugotovimo, da je stopnje vecje ali enake tri, zato dva otroka ostaneta, eno
povezavo pa izbrisemo (prikazano s crtkano crto). Na sliki 3.7 c) ima vozlisce 2 stopnjo
vecjo ali enako tri, zato izbrisemo dve povezavi, dva otroka vozlisca 2 pa ostaneta. Na sliki
3.7 d) dobimo optimalno pokrivanje s potmi.
Naslednji izrek opise korektnost ter casovno in prostorsko zahtevnost algoritma.
Izrek 3.6 Za poljuben gozd z n vozlisci algoritem pokrivanje s potmi poisce optimalno po-
krivanje s potmi z linearno casovno in prostorsko zahtevnostjo.
Dokaz. Pokazati moramo, da po izvedenem algoritmu pokrivanje s potmi, vozlisca iz T
skupaj s povezavami oznacenimi znotraj, oblikujejo optimalno pokrivanje s potmi.
Naj bo vozlisce x nizje v drevesu kot vozlisce v. Ce se je zanka v programu za vozlisce x
izvedla preden se je zacelo izvajanje zanke za vozlisce v, je stopnja vozlisca x tedaj, ko se
izvaja zanka za vozlisce v, 0,1 ali 2.
3.2 Trte 27
1
2 3
4 5 6 7 8
910 11 12 13 14
15 16
a)1
2 3
4 5 6 7 8
910 11 12 13 14
15 16
b)
1
2 3
4 5 6 7
910 11 12 13 14
15 16
c)1
2 3
4 5 6 7
910 11 12 13 14
15 16
d)
Slika 3.7: Algoritem pokrivanja s potmi drevesa T .
Naj T (v) predstavlja drevo, takoj po izvedbi zanke za vozlisce v, ki je sestavljeno iz korena
in vsemi povezavami oznacenimi z znotraj. Naj C(v) predstavlja povezane komponente, ki
so bile ustvarjene z oznacevanjem povezav znotraj. Da bi dokazali, da se zanka za vozlisce
v izvaja pravilno, potrebujemo naslednjo trditev.
Trditev 3.7 Po izvedbi algoritma pokrivanje s potmi je vsaka komponenta iz C(v) pot v
optimalnem pokrivanju.
Dokaz. Trditev bomo dokazali s pomocjo matematicne indukcije. Najprej predpostavimo,
da se je za vozlisce v proces prvic izvedel in je v list stopnje 0 ali 1. Torej velja, da je C(v)
prazen in T (v) = T . V nadaljevanju predpostavimo, da smo pravkar koncali z izvajanjem
procesa zanke za vozlisce x in bomo zaceli z izvajanjem zanke za vozlisce v. Predpostavimo,
da trditev drzi za C(x). Upostevajmo, da je vsako vozlisce, za katerega se ni bil izveden
proces, se vedno element T (x). To je res, ker iskanje v sirino zagotavlja, da je lahko vozlisce
izbrisano samo, ko je na njem ze bil izveden proces ali ko se za enega izmed njegovih starsev
proces izvede kasneje. Vozlisce v je torej v T (x).
Ce je deg(v)≤ 2, potem je C(v) = C(x), tako da lahko sklepamo, da deg(v)≥ 3. Vsi otroci
3.2 Trte 28
vozlisca v morajo biti v T (x) stopnje 1 ali 2 in lezijo na trti. Zato je v center poti za neko
pot P v T (x).
Ce v ni koren in se zanka za v zakljuci, C(v) vkljucuje P in prav tako vsebuje vse poti trt
v T (x)−P , katerih listi so potomci od v in niso v P . Lema 3.4 zagotavlja da so poti, ki jih
opisuje trditev, poti optimalnega pokrivanja. Ce je v koren, potem velja, da T (v) = P . V
tem primeru je po lemi 3.4 T (v) ∪ C(v) optimalno pokrivanje s potmi drevesa T .
Algoritem pokrivanje s potmi se izvede v linearni prostorski zahtevnosti, saj imamo vsa
vozlisca zapisana v tabeli, ki je velika kot stevilo vozlisc, n. Izvajanje algoritma potrebuje
priblizno toliko prostora, kot je velika tabela, torej O(n). Tudi njegova casovna zahtevnost
je linearna, saj vsako vozlisce obiscemo natanko enkrat in mu odstranimo odvecne povezave.
S tem je dokazan izrek 3.6.
Poglavje 4
Hamiltonska dopolnitev poljubnega
grafa
V tem poglavju obravnavamo iskanje hamiltonske dopolnitve poljubnega grafa.
Izrek 4.1 Naj bo G poljuben povezan graf. S S oznacimo mnozico vseh vpetih dreves grafa
G. Potem je graf G bodisi hamiltonski graf bodisi velja hc(G) = minTi∈S
hc(Ti).
Dokaz. Ocitno velja hc(G) ≤ minTi∈S
hc(Ti), saj se stevilo povezav, ki jih moramo dodati grafu
G, da dobimo hamiltonski cikel, ne zmanjsa (lahko se kvecjemu poveca), ce mu odstranimo
nekatere povezave, da dobimo vpeto drevo.
Da bi dokazali obratno neenakost, moramo pokazati, da ce je graf G s hc(G) dodanimi
novimi povezavami hamiltonski graf, potem obstaja vpeto drevo T grafa G za katerega
velja, da istih hc(G) novo dodanih povezav tvori hamiltonski cikel skozi vozlisca drevesa T .
Naj bo W hamiltonski cikel grafa G z novo dodanimi povezavami. Pobarvajmo z modro
barvo vsako povezavo grafa G iz cikla W in z rdeco barvo vsako novo dodano povezavo.
Odstranimo iz grafa vse neobarvane povezave, katerih odstranitev ne povzroci razpada grafa
G na dve ali vec komponent. Tako dobimo vpeto drevo T grafa G, ki vsebuje vse modre
povezave cikla W in od tod sledi hc(T ) ≤ hc(G).
T (G) naj bo mnozica vseh vpetih dreves grafa G. Definirajmo drevesni graf grafa G na
naslednji nacin. Dva elementa v T (G) sta sosedna, ce lahko pripadajoca vpeta drevesa
pretvorimo eno v drugo tako, da odstranimo natanko eno povezavo in jo nadomestimo z
drugo. Ce zelimo poiskati vsa vpeta drevesa grafa G, moramo vedeti koliko jih je. Pri
izracunu stevila vseh vpetih dreves si pomagamo z izrekom 1.1 za racunanje vpetih dreves.
29
30
V splosnem iz izreka 1.1 sledi, da je lahko stevilo vpetih dreves eksponentnega reda. Zato
iz izreka 4.1 ne moremo izpeljati algoritma, ki ne bi bil eksponentne casovne zahtevnosti.
Izrek 4.2 Naj bosta T ′ in T ′′ dve vpeti drevesi grafa G, ki sta sosedni v T (G). Potem velja
|hc(T ′)− hc(T ′′)| ≤ 1.
Dokaz. Ce sta T ′ in T ′′ sosedni v T (G), potem lahko T ′′ dobimo iz T ′ z odstranitvijo
ene povezave, recimo povezave e′ in dodamo novo povezavo, recimo povezavo e′′, drevesu
T ′ − e′. Naj bo hc(T ′) = k in naj bodo P1, P2, ..., Pk komponente drevesa T ′, nastale pri
izvedbi algoritma A (opisanega v podpoglavju 3.1) za drevo T ′. Recimo, da e′ ne lezi na
nobeni komponenti P1, P2, ..., Pk, ampak je most med dvema komponentama. V tem pri-
meru z odstranitvijo povezave e′ in dodajanjem nove povezave e′′ sledi v primeru, da e′′
povezuje dva lista komponent Pi in Pj , potem je hc(T ′′) + 1 = hc(T ′), v primeru, da e′′
ne povezuje dveh listov komponent, pa velja hc(T ′′) = hc(T ′). V teh primerih torej ve-
lja |hc(T ′) − hc(T ′′)| ≤ 1. V nadaljevanju predpostavimo, da povezava e′ lezi na eni od
komponent P1, P2, ..., Pk, recimo na komponenti P1. Potem z odstranitvijo e′ ustvarimo
k + 1 komponent, P11, P12, P2..., Pk. Dodajanje nove povezave e′′ drevesu T ′ − e′ ne more
povecati stevilo komponent v T ′′. Ce dodana povezava e′′ povezuje lista dveh izmed kom-
ponent P11, P12, ..., Pk, potem velja hc(T ′′) = hc(T ′). Ce dodana povezava ne povezuje
listov omenjenih komponent, potem velja hc(T ′′) = hc(T ′) + 1. Tudi v tem primeru velja
|hc(T ′)− hc(T ′′)| ≤ 1.
Posledica 4.3 Naj bo G povezan graf z natanko enim ciklom in naj bodo e1, e2, ..., ek po-
vezave edinega cikla v G in naj bodo Ti = G− ei za i=1,...,k vpeta drevesa grafa G. Potem
za 1 ≤ i, j ≤ k velja:
|hc(Ti)− hc(Tj)| ≤ 1 (4.1)
Dokaz. V primeru grafa G je njegov drevesni graf na mnozici {T1, T2, ..., Tk} polni graf s
k vozlisci in neenakost sledi.
Poglavje zakljucimo z algoritmom, ki izracuna priblizek za hc(G) za poljuben graf G v
kvadratni casovni zahtevnosti. V tem algoritmu oznacimo vsako povezavo uv grafa H tako,
da ji dolocimo tezo na podlagi izracuna d(uv) = deg(u) + deg(v)− 2, kjer je deg(u) stopnja
vozlisca u in deg(v) stopnja vozlisca v v H. Algoritem poisce dobro, a ne nujno optimalno,
vpeto drevo grafa G.
Algoritem B
31
Korak 0 : Naj bo H = G.
Korak 1 : Oznacimo vse povezave grafa H, tako kot je opisano predhodno.
Korak 2 : Odstranimo povezavo z najvecjo utezjo, ki ne povzroci razpad grafa H na kom-
ponente (ce je vec povezav z najvecjo utezjo, izberemo poljubno).
Korak 3 : Ponavljaj koraka 1 in 2 dokler H ni drevo. Potem izracunamo hc(H) kot priblizek
hc(G).
Zgled. Na sliki 4.1 a) je najprej prikazan graf G, katerega povezave smo utezili tako, da
smo sesteli stopnje krajisc povezav in odsteli 2. Na sliki 4.1 b) smo poiskali povezavo z
najvecjo utezjo in jo odstranili. Na novo smo izracunali utezi. Na sliki 4.1 c) smo izbrali
povezavo z najvecjo utezjo. Ker sta bili taksni povezavi dve, smo lahko izbrali poljubno
izmed njiju. To povezavo smo odstranili in na novo izracunali utezi.
2
5 3
56 4
234
2
4 2
43
22 3
1
1
32
22 3
a)G
b)
c) T
Slika 4.1: Algoritem B poisce optimalno vpeto drevo tako, da velja hc(G) = hc(T ).
Na sliki 4.2 a) je prikazan graf H, ki smo ga utezili tako kot graf na prejsnji sliki. Ker
ima na grafu sedem povezav enako utez, lahko odstranimo poljubno izmed njih (4.2 b) ).
Na sliki 4.2 c) smo odstranili povezavo, ki nam ne da optimalno vpetega drevesa, saj je
32
hc(H) = 3, kar lahko izracunamo po algoritmu pokrivanje s potmi za drevesa. Na sliki 4.2
d) smo odstranili drugo povezavo z utezjo 4 in tako dobili optimalno vpeto drevo, saj je
hc(H) = 2
2
2
4
4 42
2
4
44
1
2
3
32
2
4
44
4 3
1
2
3
32
1
3
3
2
c)1
2
3
21
1
34
3
d)
a) b)
Slika 4.2: Algoritem B za graf H, ki ne da nujno optimalnega drevesa T kot v primerud), da bi veljalo hc(T ) = hc(H)
Kot smo videli v zgornjem primeru, algoritem B ni optimalen, saj ne najde vedno najboljsega
vpetega drevesa T grafa G, za katerega bi veljalo, da je hc(T ) = hc(G).
Poglavje 5
Sorodni problemi
Hamiltonska dopolnitev ima veliko sorodnih problemov. Sorodna problema sta problem do-
deljevanja radijskih frekvenc in pokrivanje s potmi z maksimalnim pretokom, ki jih obrav-
navamo v tem poglavju.
5.1 Radijske frekvence
Problem hamiltonske dopolnitve je podoben problemu dodeljevanja radijskih frekvenc, ki
so pomemben problem v telekomunikacijah. Ta problem se je pojavil, ko so se pojavila
brezzicna omrezja in telefonija. Oddajniki, ki so si blizu, se med seboj motijo, zato jim
je potrebno dodeliti razlicne frekvence. Opisali bomo problem, ki ga je prestavil Hale [7].
Pogledali si bomo posebne primere radijskih frekvenc v majhnem geografskem obmocju z
dvema stopnjama motenj.
Imamo n oddajnikov x1,...,xn. Vsakemu oddajniku dodelimo celo stevilo f(xi), ki pred-
stavlja kanal ali frekvenco pripadajocega oddajnika. Par oddajnikov katerih oddaljenost
je najvec d0, komunicirata na stopnji 0 in jima mora biti dodeljena nova frekvenca, saj
potrebujejo vsi oddajniki, ki so v dolocenem radiju razlicne frekvence, da se med seboj ne
motijo. V nasem primeru bodo vsi pari oddajnikov lezali na razdalji manjsi ali enaki pol-
meru d0, tako da se bodo vsi pari med seboj motili (za graf bo veljalo, da mora biti polni
graf). Oddajnika, katerih razdalja je najvec d1 < d0, komunicirata na stopnji 1 in morata
biti prenesena na nezaporedni frekvenci, kot sta recimo 3 in 5 (in ne npr. 3 in 4). Razpon
prenosa je maksimalna vrednost |f(x) − f(y)| med vsemi pari oddajnikov x in y. Nas cilj
je izbrati taksno radijsko frekvenco, da imamo na koncu cim manjsi mozni razpon prenosa.
Problem lahko predstavimo z utezenim grafom. Definirajmo graf G, katerega vozlisca so
oddajniki. Povezavi xy dodelimo utez w(x, y) = 1, ce se oddajnika x in y medsebojno motita
33
5.2 Pokrivanje s potmi z maksimalnim pretokom 34
samo na stopnji 0 in w(x, y) = 2, ce se medsebojno motita na stopnji 1. Tako je w(x, y)
zmeraj spodnja meja |f(x) − f(y)|. Minimalna teza hamiltonske poti nam da minimalen
prenos radijske frekvence, kjer je prenos teza. Minimalna teza hamiltonskega cikla mora
zato vsebovati cim manj povezav z utezjo 2. Torej je iskanje razpona minimalnega prenosa
ekvivalentno iskanju hamiltonske dopolnitve podgrafa s povezavami, ki imajo utez 1.
Izracun hamiltonske dopolnitve s hc(G) povezavami poljubnega grafa G je zahteven pro-
blem, a po drugi strani je hc(G) enako minimalni vrednosti hc(T ) za neko vpeto drevo T .
Tako je iskanje hamiltonske dopolnitve zelo pomemben problem v radijskih frekvencah, saj
grafu, ki smo ga dobili z vstavljanjem utezi, kot je navedeno v prejsnjem odstavku, poiscemo
taksno vpeto drevo, ki vsebuje cimvec povezav z utezjo 1.
1
2
2
1
1
2
2
12 2
1
2
1
1
21
2
2
1
1
2
2
12 2
1
2
1
1
2
a) b)
Slika 5.1: Radijske frekvence
5.2 Pokrivanje s potmi z maksimalnim pretokom
V tem poglavju pokazemo, da iskanje optimalnega pokrivanja s potmi za drevesa (velja tudi
za iskanje optimalne hamiltonske dopolnitve za T) lahko razsirimo na iskanje maksimalnega
pretoka v posebej usmerjenem omrezju N(T ). Povsod, kjer bomo omenjali T naj velja, da
ima T vsaj eno povezavo. Konstrukcija deluje tudi za gozdove.
Naj bo T dvodelni graf. Ker je T dvodelni, lahko razdelimo vozlisca grafa T v dve neprazni
mnozici X in Y tako, da vse povezave vkljucujejo vozlisce iz X in vozlisce iz Y . Orientiramo
povezave od X do Y in jim damo kapaciteto 1. V nadaljevanju dodamo vozlisce s z lokom
orientiranim od s do vsakega vozlisca v mnozici X. Dodamo se vozlisce t z lokom orienti-
ranim od vsakega vozlisca v mnozici Y do vozlisca t, kot je prikazano na sliki 5.2. Novim
lokom dodelimo kapaciteto 2. V naslednjem izreku bomo pokazali, da lahko maksimalni
5.2 Pokrivanje s potmi z maksimalnim pretokom 35
pretok v omrezju N(T ) uporabimo, da izracunamo stevilo pokrivanja s potmi ali stevilo
hamiltonske dopolnitve drevesa T . Dokaz prikaze konstrukcijo optimalnega pokrivanja s
potmi s pomocjo iskanja maksimalnega celostevilskega pretoka v omrezju N(T ).
a
b
c
de
f
g
h
i
j
a)a
c
e
g
i
b
d
f
h
j
s t
X Y
2
2
2
2
2
111
1111
11
22
2
2
2
Slika 5.2: Pokrivanje s potmi z maksimalnim pretokom: a) Drevo T . b) OmrezjeN(T ) z dvema mnozicama X in Y ter dodanima vozliscema s in t z loki (prikazani scrtkastimi crtami).
Izrek 5.1 Naj bo f∗ vrednost maksimalnega s-t pretoka v omrezju N(T ), kjer je T drevo
z najmanj dvema vozliscema. Potem velja f∗ = mpc(T ), kjer je mpc(T ) stevilo povezav v
pokrivanju s potmi z najvecjim stevilom povezav drevesa T .
Dokaz. Naj bo f∗ poljuben maksimalen celostevilski s− t pretok od vozlisca s do vozlisca
t. Naj bo C podgraf grafa T sestavljen iz vseh vozlisc drevesa T in vseh povezav, ki imajo v
maksimalnem pretoku f∗ kapaciteto 1. Vsako vozlisce v X ali Y lahko ima v C stopnjo 0,1
ali 2, saj je lahko pretok v f∗ iz vsakega vozlisca v mnozici X in v vsako vozlisce v mnozici Y
najvec 2. Ker je T brez ciklov, mora biti C mnozica disjunktnih poti, ki pokrivajo vozlisca
v T in vkljucujejo f∗ povezav. Zato mpc(T ) ≥ f∗.
Naj bo PC(T ) pokrivanje s potmi z maksimalnim stevilom povezav grafa T . Ce je povezava
xy v PC(T ), kjer je x ∈ X in y ∈ Y , potem dolocimo kapaciteto 1 ustreznemu loku v
omrezju N(T ). Naj bo pretok v omrezju N(T ) za vsak lok sx, pri cemer je x ∈ X stopnje
0, 1 ali 2 v PC(T ), ker PC(T ) vsebuje samo vozlisca stopnje 0, 1 ali 2. Podobno dolocimo
pretok za vsak lok yt, pri cemer je y ∈ Y . Ker je vrednost pretoka enaka stevilu povezav v
PC(T ), ki je mpc(T ), je stevilo povezav v pokrivanju s potmi z najvec povezavami manjse
ali enako maksimalnemu pretoku od vozlisca s do vozlisca t. Zato velja mpc(T ) ≤ f∗.
Zgled. Na sliki 5.3 je prikazan izrek 5.1. Na sliki 5.3 a) je prikazan maksimalni pretok v
omrezju N(T ), kjer je T drevo iz slike 5.2. Vrednost maksimalnega s − t pretoka je 7. Na
5.2 Pokrivanje s potmi z maksimalnim pretokom 36
sliki 5.3 b) je prikazano optimalno pokrivanje s potmi, ki vsebuje tri poti in sedem povezav.
Iz slike 5.3 vidimo, da so loki maksimalnega pretoka iz mnozice X v mnozico Y povezave
optimalnega pokrivanja s potmi, ce jim odstranimo utezi in usmerjenost. Ker ima vsak lok
iz slike 5.3 a) kapaciteto 1, je stevilo povezav v optimalnem pokrivanju iz slike 5.3 b) enako
vsoti kapacitet lokov in s tem vrednosti maksimalnega pretoka.
a
c
e
g
i
b
d
f
h
j
s t
X Y
1
2
2
2
111
1
111
22
2
1
a
c
e
g
i
b
d
f
h
j
X Y
a) b)
Slika 5.3: Povezava med maksimalnim pretokom in optimalnim pokrivanjem s potmi
Iz izreka 5.1 sledi naslednja posledica.
Posledica 5.2 Ce je f∗ vrednost maksimalnega s − t pretoka v omrezju N(T ), potem je
stevilo pokrivanja s potmi v T enako |V (T )| − f∗.
Po izreku 5.1 nam posledica 5.2 nam da povezavo med maksimalnim pretokom in stevilom
hamiltonske dopolnitve grafa.
Konstrukcijo pretoka N(T ) lahko razsirimo na poljuben dvodelni graf G. A konstrukcija
mnozice C, ki je bila podana v izreku 5.1, iz maksimalnega pretoka v omrezju N(G) ne
prinese nujno pokrivanja s potmi. Lahko se zgodi, da konstrukcija da pokrivanje s potmi
in cikli. To je mnozica poti in ciklov z disjunktnimi vozlisci, ki pokrivajo vsa vozlisca grafa
G. Isti argument, ki smo ga uporabili pri izreku 5.1 nam da naslednji rezultat za dvodelne
grafe.
Lema 5.3 Naj bo G dvodelni graf z vsaj eno povezavo in naj bo f∗ vrednost maksimalnega
s − t pretoka v omrezju N(G). Potem je f∗ tudi maksimalno stevilo povezav v poljubnem
pokrivanju s potmi in cikli.
5.2 Pokrivanje s potmi z maksimalnim pretokom 37
Ce uporabimo podoben argument, ki smo ga uporabili za lemo 2.1, dobimo naslednjo lemo.
Lema 5.4 Maksimalno stevilo povezav v pokrivanju s potmi in cikli za poljuben graf G je
|V (G)| − k, kjer je k minimalno stevilo poti v poljubnem pokrivanju s potmi in cikli.
Ce kombiniramo ti dve lemi, dobimo zanimiv rezultat, ki nam da metodo za testiranje, ce
ima dvodelni graf pokrivanje vozlisc z disjunktnimi cikli.
Izrek 5.5 Naj bo f∗ vrednost maksimalnega s−t pretoka v omrezju N(G), kjer je G dvodelni
graf z najmanj dvema vozliscema. Potem ima G pokrivanje vozlisc z disjunktnimi cikli,
natanko tedaj, ce velja f∗ = |V (G)|.
Literatura
[1] F. T. Boesch, S. Chen, N. A. M. McHugh, On covering the point of a graph with
point disjoint paths, in Graphs and combinatorics, Lecture Notes in Math. 406, (1974)
201-212.
[2] R. Diestel, Graph theory, Springer, New York, (1997).
[3] L. R. Ford, D. R. Fulkerson, A simple algorithm for finding maximal network flows
and an application to the Hitchcock problem, Canadian J. Math. 9, (1957) 210-218.
[4] D. S. Franzblau, A. Raychaudhuri, Optimal Hamiltonian completions and path covers
for trees, and reduction to maximum flow, The ANZIAM Journal 2002, (1999) 193-203.
[5] S. E. Goodman, S. T. Hedetniemi, On the Hamiltonian completion problem, Lecture
Notes in Math. 406, (1974) 263-272.
[6] S. E. Goodman, S. T. Hedetniemi, P. S. Slater, Advances on the Hamiltonian comple-
tion problem, JACM 22, (1975) 352-360.
[7] W. W. Hale, Frequency assignment: Theory and applications, Proc. IEEE 68, (1987)
1497-1514.
[8] M. Juvan, P. Potocnik, Teorija grafov in kombinatorika, Drustvo matematikov, fizikov
in astronomov Slovenije, Ljubljana, (2000).
[9] Z. A. Karejan, K. M. Mosesjan, The Hamiltonian completion number of digraph, Akad.
Nauk Armyan. SSR Dokl. 70, (1980) 129-132.
[10] N. M. Korienko, The Hamiltonian completion of some classes of a graphs, Akad. Navuk
BSSR, (1982) 129-132.
[11] S. Kundu, A linear algorithm for the Hamiltonian completion number of a tree, Info
Proc. Letters 5, (1976) 55-57.
[12] S. Morgan, Y. Wolfstahl, Optimal covering of cacti by vertex-disjoint paths, Theoret.
Comp. Sci. 84, (1991) 179-197.
38
LITERATURA 39
[13] S. S. Pinter, Y. Wolfstahl, On mapping processes to processors in distributed system,
Internat. J. Parallel Prog. 16, (1987) 1-15.
[14] R. J. Wilson, J. J. Watkinson, Uvod v teorijo grafov, Drustvo matematikov,fizikov in
astronomov Slovenije, Ljubljana, (1997).
Recommended