49
UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in raˇ cunalniˇ stvo DIPLOMSKO DELO Nataˇ sa Brodnjak Maribor, 2011

DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

UNIVERZA V MARIBORU

FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO

Oddelek za matematiko in racunalnistvo

DIPLOMSKO DELO

Natasa Brodnjak

Maribor, 2011

Page 2: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem
Page 3: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 4: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 5: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 6: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 7: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 8: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 9: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 10: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem
Page 11: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 12: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

2

je opisano v zadnjem delu naloge. Opisana je tudi povezava med hamiltonsko dopolnitvijo

grafa in pokrivanjem s potmi z maksimalnim pretokom.

Page 13: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 14: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 15: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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).

Page 16: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 17: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 18: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 19: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 20: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 21: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 22: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 23: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 24: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 25: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 26: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 27: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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 .

Page 28: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 29: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 30: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 31: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 32: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

3.2 Trte 22

v

v

a)

v

v

v

b)

P1P2

Q

P1

P2

Q

P1

P2

P1

P2

QQ

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

Page 33: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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:

Page 34: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 35: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 36: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 37: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 38: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 39: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 40: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 41: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 42: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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).

Page 43: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 44: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 45: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 46: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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.

Page 47: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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)|.

Page 48: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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

Page 49: DIPLOMSKO DELO - CORE · Ce imamo graf G, pri katerem lahko mno zico vozli s c razdelimo na dve podmno zici Ain B tako, da je vsaka povezava grafa Ginciden cna z enim vozli s cem

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).