03.12.2019 Views

Antanas-Škėma-Balta-Drobulė

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

OILERIO GRAFAI

1



Grafas yra figūra, sudaryta iš taškų (vadinamų

viršūn÷mis) ir atkarpų (vadinamų briaunomis).

Briauna nebūtinai turi būti tiesi linija (gali būti lenkta,

banguota ir t.t.), tačiau ji visada jungia dvi viršūnes. Kai

briauna jungia viršūnę su ja pačia (tai irgi leidžiama), ji

vadinama kilpa.

2



1 pavyzdys . Šis grafas turi 5 viršūnes (A, B, C, D ir E) ir 7

briaunas, kurias žym÷sime a, b, c, d, e, f ir g.

Pastabos: pirma, briaunų e ir f susikirtimo taškas n÷ra viršūn÷

(galima įsivaizduoti, kad jos prasilenkia, pvz., viena yra

aukščiau už kitą). Be to, n÷ra jokių apribojimų, draudžiančių

kelioms briaunoms jungti tas pačias dvi viršūnes, - tai

matome viršūnių D ir C atveju.

A

a

B

e

b

f

d

C

E

g

D

c

3



2 pavyzdys. Tai - grafas, turintis 8 viršūnes (A, B, C, D, E, F,

G ir H) ir 11 nepažym÷tų briaunų (nebūtina kaip nors žym÷ti

briaunas). Briauną galima nusakyti tiesiog nurodant dvi

viršūnes, kurios ją jungia. Pavyzdžiui, mes galime kalb÷ti

apie briauną AH arba briauną BD ir t.t. Beje, šis grafas turi

kilpą - tai briauna GG.

C

B

D

H

A

G

E

F

4



3 pavyzdys. Tai - grafas, turintis 4 viršūnes ir neturintis n÷

vienos briaunos. Nors ir visai neįdomus, grafas be briaunų

yra leistinas.

A

B

C

D

5



4 pavyzdys. Šis grafas turi 8 viršūnes ir 9 briaunas.

Šis grafas sudarytas iš dviejų atskirų nesujungtų dalių.

Tokie grafai vadinami nejungiaisiais, o atskiri jo „gabalai"

- grafo komponent÷mis.

A

B

C

G

D E F H

6



5pavyzdys. Čia grafas turi 4 viršūnes (A, B, K ir D) ir 7

briaunas (AK, AK, AB, AD, AD, KB ir DB}.

D

A

B

K

7



5 pavyzdys išryškina vieną labai svarbų bruožą: grafą

galima nubraižyti įvairiausiais būdais, tačiau svarbu

ne jo išvaizda, o tik tai, kokios viršūn÷s su kuriomis

yra sujungtos.

Taigi, grafas yra sąsajų struktūra: jis pasako, kad yra

objektų grup÷ (viršūn÷s) ir kad šie objektai yra

tarpusavyje susiję (arba nesusiję). Kaip šie objektai yra

tarpusavyje susiję, nurodo briaunos. Tai ir yra visa

informacija, kurią suteikia grafas - nei daugiau, nei

mažiau.

8



6 pavyzdys. Paskutinę krepšinio sezono savaitę (kai

varžybos karščiausios) Lietuvos miestų krepšinio

čempionato tvarkaraštis yra toks:

• Pirmadienis: Vilnius - Šiauliai, Panev÷žys - Alytus,

Klaip÷da - Kaunas.

• Antradienis: Vilnius - Šiauliai.

• Trečiadienis: Panev÷žys - Kaunas, Alytus - Klaip÷da.

• Ketvirtadienis: Vilnius - Kaunas, Panev÷žys - Šiauliai,

Alytus - Klaip÷da.

• Penktadienis: Alytus - Šiauliai, Klaip÷da - Vilnius.

• Šeštadienis: Alytus - Vilnius, Panev÷žys - Klaip÷da,

Šiauliai - Kaunas.

9



Visa informacija, kas su kuo žaidžia, yra sąsajos

(kiekvienos rungtyn÷s sieja dvi skirtingas komandas) ir gali

būti patogiai pavaizduota šiuo grafu.

Vilnius

Kaunas

Panev÷žys

Klaip÷da

Šiauliai

Alytus

10



Kiekviena matematikos šaka turi savitą terminiją, ir tai

ypač būdinga grafų teorijai. Apibr÷šime keletą būtinų

sąvokų ir sutartinių žym÷jimų.

• Dvi viršūn÷s vadinamos gretimomis, jei jas jungia

bent viena briauna.

A

B

F

C

E

D

11



Šiame grafe viršūn÷s A ir B yra gretimos, o viršūn÷s C ir D

- ne. Viršūn÷ E yra gretima pati sau, nes ji turi kilpą.

Viršūn÷s laipsnis yra briaunų, išeinančių iš tos viršūn÷s,

skaičius (kilpos „įnašas" į laipsnį lygus dviem).

Grafe, parodytame paskutiniame pavyzdyje, viršūn÷s A

laipsnis lygus 4 (trumpai deg(A) = 4), viršūn÷s B laipsnis

lygus 3 (deg(B) = 3). deg(C) = 3, deg(D)= 2, deg(E) = 4

(kilpos d÷ka), ir deg(F) = O (viršūn÷, kurios laipsnis yra

O, vadinama izoliuota).

12



Grafo keliu vadinama gretimų viršūnių seka. Kelyje ta

pati viršūn÷ gali būti kelis kartus, tačiau ta pati

briauna gali pasitaikyti kelyje tik vieną kartą.

13



Kelias vadinamas ciklu, jei jis prasideda ir baigiasi ta

pačia viršūne.

Grafas yra jungusis, jei bet kurias dvi viršūnes galima

sujungti keliu. Iš esm÷s tai reiškia, kad galima nukeliauti

iš vienos viršūn÷s į bet kurią kitą grafo briaunomis.

Priešingu atveju jis vadinamas nejungiuoju grafu.

Nejungusis grafas yra sudarytas iš jungiųjų dalių,

vadinamų grafo komponent÷mis.

14



A

B

D

C

E

F

G

a)

15



A

B

A

B

D

E

C

F

D

E

C

F

G

b)

G

c)

16



Kartais jungtajame grafe yra tokia briauna, kurią

ištrynus, grafas tampa nejungusis. Tokia briauna vadinama

tiltu (“sudeginęs tiltą, nebegal÷si grįžti”).

Jei kelią sudaro visos jungiojo grafo briaunos

(lygiai po vieną kartą), jis vadinamas Oilerio keliu.

Oilerio kelias, kuris prasideda ir baigiasi toje

pačioje viršūn÷je, vadinamas Oilerio ciklu.

17



Pirmoji Oilerio teorema

Jei grafas turi nelyginio laipsnio viršūnę, tai jis

neturi Oilerio ciklų.

Jei jungtojo grafo visos viršūn÷s yra lyginių

laipsnių, tai jis turi bent vieną Oilerio ciklą (paprastai

daugiau kaip vieną).

Beje, nejungusis grafas negali tur÷ti Oilerio ciklų, net

jei visos jo viršūn÷s yra lyginių laipsnių

Pvz.:

18



Antroji Oilerio teorema

Jei grafas turi daugiau kaip dvi nelyginio laipsnio

viršūnes, tai jis neturi n÷ vieno Oilerio kelio.

Jei jungusis grafas turi lygiai dvi nelyginio laipsnio

viršūnes, tai jis turi bent vieną Oilerio kelią (paprastai

daugiau). Kiekvienas toks kelias prasideda vienoje

nelyginio laipsnio viršūn÷je ir baigiasi kitoje.

19



A

B

E

A

B

D

C

D

C

a)

b)

E

A

B

D

C

c)

F

20



Iš Oilerio teoremos žinome, kad:

a) pav. parodyto grafo apeiti negalima (jis neturi nei

Oilerio ciklo, nei Oilerio kelio);

b) pav. grafą galima apeiti tik tada, jei prad÷sime

viršūn÷je D ir baigsime viršūn÷je C arba atvirkščiai (jis

turi Oilerio kelią, bet neturi Oilerio ciklo);

c) pav. grafą galima apeiti taip, kad pradžia ir pabaiga

būtų toje pačioje vietoje (jis turi Oilerio ciklą).

21



Pirmojoje ir Antrojoje Oilerio teoremose kai ko

trūksta.

KO?????????????????????????????????????

22



Teoremos apima atvejus, kai grafas neturi nelyginio

laipsnio viršūnių (Pirmoji teorema), kai turi dvi nelyginio

laipsnio viršūnes (Antroji teorema) ir daugiau kaip dvi

nelyginio laipsnio viršūnes (Antroji teorema). Oileris

nustat÷, kad grafas negali tur÷ti lygiai vienos nelyginio

laipsnio viršūn÷s.

Oileris pasteb÷jo, kad visų grafo viršūnių laipsnių

bendra suma yra lygi dvigubam grafo briaunų skaičiui. Iš

tikrųjų, briauna XY priskaičiuojama į laipsnių sumą du

kartus: vieną kartą - į viršūn÷s X laipsnį ir vieną kartą - į

viršūn÷s Y laipsnį. Iš Oilerio teiginio išplaukia, jog visų

grafo viršūnių laipsnių suma yra lyginis skaičius, o tai

reiškia, kad joks grafas negali tur÷ti vienintel÷s nelyginio

laipsnio viršūn÷s.

23



Trečioji Oilerio teorema

• Visų grafo viršūnių laipsnių suma yra lyginis

skaičius (lygus dvigubam briaunų skaičiui).

• Bet kurio grafo nelyginio laipsnio viršūnių

skaičius yra lyginis.

Oilerio teoremos yra labai patogios -jos nurodo

lengvą būdą (vos pažvelgus į viršūnių laipsnius)

nustatyti, ar grafas turi Oilerio ciklą arba Oilerio kelią.

Deja, jos nepadeda rasti konkretaus Oilerio ciklo ar kelio

(kai jų yra).

24



Flerio algoritmai

25



Flerio algoritmas Oilerio ciklui rasti

1. Nustatyti ar grafas yra jungusis ir ar visų viršūnių

laipsniai yra lyginiai.

2. Prad÷ti nuo bet kurios viršūn÷s.

3. Keliaujama briauna, jei:

a) Ji n÷ra nekeliautos dalies tiltas arba

b) N÷ra kito pasirinkimo.

4. Sunumeruoti briaunas per÷jimo eil÷s tvarka.

5. Jei nebegalima toliau keliauti, tai algoritmas

baigiamas.

Jei jungusis grafas turi lygiai dvi nelyginio laipsnio

viršūnes, tai jis negali tur÷ti Oilerio ciklo, tačiau turi

Oilerio kelią.

26



Flerio algoritmas Oilerio keliui rasti

1. Įsitikinti ar grafas jungusis ir ar yra tik dvi

nelyginio laipsnio viršūn÷s.

2. Prad÷ti nuo bet kurios nelyginio laipsnio viršūn÷s.

3. Keliauti briauna, jei

a) ji n÷ra nekeliautos dalies tiltas arba

b) n÷ra kito pasirinkimo.

4. Numeruoti briaunas jų per÷jimo eil÷s tvarka.

5. Algoritmas baigiamas, kai nebegalima daugiau

keliauti.

27



Flerio algoritmai nurodo būdą, kaip rasti efektyvų visų grafo

briaunų ap÷jimo kelią, kai grafas neturi nelyginio laipsnio

viršūnių arba turi dvi.

Kitais atvejais prie grafo prijungiamos papildomos briaunos

(kurios vadinamos fiktyviomis) taip, kad nelyginio laipsnio

viršūn÷s taptų lyginio laipsnio viršūn÷mis. Tokia grafo

perdarymo procedūra, kai viršūnių laipsnių nelyginumas

pašalinamas, prijungiant papildomas briaunas, vadinama

grafo oilerizavimu.

Atliekant grafo oilerizavimą, reikia steb÷ti, kad prijungiamos

briaunos būtų tik esančių grafo briaunų dublikatai.

Matematin÷s struktūros naudojimas aprašant realaus

gyvenimo uždavinius, yra vadinamas pradinio uždavinio

matematiniu modeliu.

28



Apsukrus ledų pardav÷jas. Miesto ledų pardav÷jas turi

apeiti nedidelio rajono gatves, parodytas a) pav.,

prad÷damas ir baigdamas kelionę prie ledų kiosko,

esančio Minijos ir Akmenos gatvių kampe (taškas P a)

pav.). Karšta vasaros diena, bet kaip tyčia sugedo

šaldytuvas ledų vežim÷lyje, tod÷l pardav÷jui ypač rūpi

kuo greičiau atlikti savo darbą.

Šio uždavinio optimizavimui, reikia pritaikyti Oilerio

ciklus, t.y. pirmiausia turi nedidelį rajoną pavaizduoti

grafu. Pardavin÷jant ledus, užtenka vieną kartą eiti gatve,

tod÷l kiekvieną rajono gatvę galima pavaizduoti briauna,

o kiekvieną sankryžą - viršūne, kaip parodyta b) pav.

Dabar pradinis uždavinys tolygus optimalaus maršruto

grafo briaunomis radimui (a) pav.).

29



Pav. a)

30



Pav. b)

31



Pav. c)

32



Prekybos agento maršrutas. Prekybos agentas turi

aplankyti savo klientus, gyvenančius penkiuose

skirtinguose miestuose (A, B, C, D ir E). Šalia

kiekvienos parodyto grafo briaunos nurodytos kelion÷s

išlaidos (benzinas, draudimas, automobilio

susid÷v÷jimas ir t.t.) tarp bet kurių dviejų miestų.

Kelion÷ turi prasid÷ti ir baigtis mieste A, kuriame

gyvena prekybos agentas. Koks gal÷tų būti pigiausias

prekybos agento kelion÷s maršrutas (į visus miestus

nuvažiuojame lygiai po vieną kartą)?

33



E

A

B

Kur: AB=500

BC=305

CD=320

DE=302

AE=205

AC=200

AD=185

BE=340

BD=360

CE=165.

C

D

34



Tie skaičiai reiškia kelion÷s atitinkama briauna išlaidas - jie

lygiai taip pat gal÷tų reikšti atstumą, laiką, pakel÷s medžių

skaičių ir t.t. Apskritai, jei grafo briaunoms skirti kokie nors

skaičiai, juos vadinsime briaunų svoriais, o patį grafą

vadinsime svoriniu grafu. Taigi, grafas yra svorinis grafas;

briaunos AD svoris yra 185, briaunos BC - 305 ir t.t. Beje,

n÷ra reikalaujama, kad briaunų ilgiai būtų proporcingi jų

svoriams. Kaip ir įprastiniuose grafuose, svorinio grafo

briaunų ilgis ir pavidalas yra visiškai nesvarbu.

Jei briaunų svoriai reikštų ne išlaidas, o kitus kintamuosius

(pavyzdžiui, atstumą ar laiką), tai uždavinys irgi būtų

atitinkamai pakeistas (rasti trumpiausią arba „greičiausią"

maršrutą). Kalb÷dami apie pigiausią, trumpiausią,

greičiausią ir t.t. maršrutą, vartojama bendra sąvoka

optimalus maršrutas.

35



Uždavinio formulavimas bendru atveju. Duotas svorinis

grafas. Reikia rasti optimalų maršrutą, kuris prasideda ir

baigiasi nurodytoje viršūn÷je ir eina per kiekvieną viršūnę

lygiai vieną kartą.

Ciklas, kuris prasideda kurioje nors grafo viršūn÷je ir,

patekęs į kiekvieną kitą grafo viršūnę lygiai vieną kartą, v÷l

grįžta į pradinę viršūnę, vadinamas Hamiltono ciklu.

36



Skirtumas tarp Oilerio ciklo ir Hamiltono ciklo gali

pasirodyti visai nedidelis (tereikia žodį „briauna"

pakeisti žodžiu „viršūn÷"). Tačiau matematiniu požiūriu

skirtumas yra nepaprastai didelis. Pavyzdžiui, du grafai.

1 pav. 2 pav.

37



Grafas 1 pav. Oilerio ciklo neturi (per daug nelyginio

laipsnio viršūnių), tačiau jis turi daugybę Hamiltono ciklų

(A, B, D, C, E, F, G, A IR A, D, C, E, B, G, F, A ir t.t.).

2 pav. grafe yra Oilerio ciklas, nes visos viršūn÷s yra

lyginio laipsnio, tačiau n÷ra Hamiltono ciklų.

N÷ra universalaus būdo atsakyti į klausimą, ar grafas

turi Hamiltono ciklų.

38



Dirako teorema: Tarkime, kad jungusis grafas turi ne

mažiau kaip tris viršūnes. Jei kiekviena grafo viršūn÷ yra

gretima bent pusei viršūnių, tai grafas turi Hamiltono

ciklą.

PVZ.: Šis grafas turi šešias trečiojo laipsnio viršūnes. Pagal

Dirako teoremą, jis turi Hamiltono ciklą.

39



Apibr÷žimas. Grafai, kurių kiekviena viršūn÷ yra gretima

visoms likusioms viršūn÷ms, vadinami pilnaisiais grafais.

Pilnieji grafai turi daugybę Hamiltono ciklų.

Formul÷ pilnojo grafo Hamiltono ciklų skaičiui rasti:

Pilnasis N-viršūnių grafas turi (N-1)! Hamiltono ciklų.

Pusę jų pakartoja kitą pusę atvirkščia tvarka.

Pilnojo svorinio grafo optimalaus Hamiltono ciklo radimo

uždavinys daug kur taikomas, ir vadinamas keliaujančio

pirklio uždaviniu (KPU).

40



• Siuntinių paskirstymas. Pašto tarnautojas turi

siuntinius pristatyti į nurodytas vietas. Tarnautojo

tikslas yra išvežioti siuntinius į paskirties vietas ir

grįžti į pradinį tašką (pašto sand÷lį), sugaištant kuo

mažiau laiko. Aišku, kad tai - KPU pavyzdys.

Vidutiniškai per dieną pašto mašina užsuka į 100-200

vietų, taigi turime KPU tiek viršūnių turinčiam grafui.

41



• Elektroninių mikroschemų gamyba. Gaminant

integralinę mikroschemą, specialioje plokšt÷je reikia

išgręžti dešimtis tūkstančių plonų skylučių. Tai daroma

sukiojant plokštę po stacionariu lazerio spinduliu. Darbo

našumo sumetimais eil÷s tvarka, kuria gręžiamos

skylut÷s, turi būti tokia, kad visa gręžimo procedūra būtų

atlikta per trumpiausią laiką. Tai yra KPU pavyzdys,

kuriame grafo viršūn÷s yra skylut÷s mikroschemoje, o

viršūnes X ir Y jungiančios briaunos svoris yra trukm÷,

per kurią plokšt÷ patraukiama iš gręžimo vietos X į

gręžimo vietą Y.

42



Staklių darbo grafikas. Daugelyje pramon÷s šakų

naudojamos stakl÷s, atliekančios įvairias operacijas

(operacijos bus grafo viršūn÷s). Atlikus darbą X, stakl÷s

turi būti paruoštos naujam darbui. Trukm÷, reikalinga

stakl÷ms po operacijos X pertvarkyti operacijai Y (arba

atvirkščiai), yra viršūnes X ir Y jungiančios briaunos

svoris. Reikia sudaryti staklių darbo grafiką, pagal kurį

visos operacijos būtų cikliškai atliekamos per trumpiausią

laiką.

43



• Reikalai mieste. Tur÷dami daug reikalų mieste,

norime organizuoti kelionę taip, kad nueitume į visas

reikalingas vietas optimaliu maršrutu ir grįžtume namo - tai

v÷l KPU pavyzdys.

Taigi tarkime, kad turime realų uždavinį, ir, atidžiau

pažiūr÷jus, paaišk÷ja, kad tai KPU. Kaip rasti optimalų

Hamiltono ciklą?

Prad÷kime nuo natūralaus bandymų ir klaidų metodo, kurį

mokslininkai dažnai vadina j÷gos algoritmu.

44



KPU sprendimo j÷gos algoritmas

• Surašomi visi svorinio grafo Hamiltono ciklai.

• Sudedami kiekvieno Hamiltono ciklo visų briaunų

svoriai (jų suma vadinama ciklo svoriu).

• Iš visų ciklų išrenkamas mažiausio svorio ciklas –

jis yra uždavinio sprendinys.

Pritaikykime j÷gos algoritmą prekybos agento KPU

sprendimui:

45



46



Taigi, prekybos agento optimalus maršrutas aprašomas

Hamiltono ciklu A, D, B, C, E, A (arba atvirkščiu ciklu

A, E, C, B, D, A). Optimalios išlaidos yra 1220 Lt.

47



Algoritmai

Efektyvūs (geri)

Flerio algoritmai

Neefektyvūs (blogi)

J÷gos algoritmas

KPU efektyvūs sprendimo algoritmai:

• Artimiausio kaimyno algoritmas;

• Pigiausiosios jungties algoritmas.

48



Artimiausiojo kaimyno algoritmas

Artimiausiojo kaimyno algoritmą beveik visiškai

apibūdina jo pavadinimas.

Artimiausiojo kaimyno algoritmas:

• Kelionę prad÷ti iš namų.

• Kad ir kuriame mieste esama, kitą dar neaplankytą

miestą rinkis tą, į kurį nuvykti pigiausia (t.y. artimiausią

kaimyną). Jei tokių artimiausių miestų (iki kurių

atstumai vienodi) yra keli, rinkis bet kurį. Taip elgtis, kol

bus aplankyti visi miestai.

• Iš paskutinio miesto grįžti namo.

49



Pavyzdys. Pritaikykime artimiausiojo kaimyno

algoritmą mūsų pirmajam KPU. Prekybos agentas tur÷tų

keliauti taip: jis pradeda iš taško A (namai). Iš A

pigiausia (trumpiausia) kelion÷ yra į D, tod÷l jis vyksta

ten. Iš D pigiausiai galima nuvykti (išskyrus A) į E. Iš E

pigiausia kelion÷ - į C. Iš C pigiausiai pasiekiamas kitas

miestas yra B (prekybos agentas neketina grįžti nei į E,

nei į A). Miestas B yra paskutinis iš visų aplankytinų

miestų, tod÷l jis grįžta atgal į A. Taigi, artimiausiojo

kaimyno algoritmas duoda Hamiltono ciklą A, D, E, C,

B, A, kurio išlaidos (svoris) - 1457 Lt.

Palyginę šį algoritmą (ir juo gautą atsakymą) su j÷gos

algoritmu (ir jo atsakymu), pasteb÷sime du dalykus:

50



Hamiltono ciklas, gautas artimiausiojo kaimyno

algoritmu, yra brangesnis už optimalų sprendinį (1457 Lt

vietoje 1220 Lt). Žinodami optimalaus sprendinio kainą

(1220 Lt), galime apskaičiuoti santykinę paklaidą: (1457

- 1220)/l220 = 237/1220 =0,194, kuri rodo, kad rastasis

sprendinys skiriasi nuo optimalaus sprendinio apie

19,4%.

51



KARTOTINIS ARTIMIAUSIO KAIMYNO

ALGORITMAS

1 žingsnis. Pasirinkti bet kokią viršūnę ir taikyti

artimiausio kaimyno algoritmą su pradiniu tašku

pasirinktoje viršūn÷je.

2 žingsnis. Pakartoti 1 žingsnį su visomis grafo

viršūn÷mis.

3 žingsnis. Iš visų 2 žingsnyje gautų Hamiltono ciklų

išrinkti geriausią (mažiausios kainos ar mažiausio svorio)

sprendinį.

4 žingsnis. Perrašyti 3 žingsnyje gautą sprendinį,

pradiniu tašku imant namų viršūnę.

52



Pavyzdys.: Pigiausia grafo briauna, yra 165 Lt vert÷s

briauna EC. Patogumo d÷lei ją pažymime raudonai. Kita

pigiausia briauna yra 185 Lt vert÷s briauna DA. Taip pat

ją pažymime raudonai. Dabar pigiausia briauna yra AC -

jos svoris 200 Lt. Ji taip pat tinka, ją pažymime raudonai.

A

A

E

B

E

B

D

C

D

C

53



Pigiausia briauna iš nepažym÷tų yra EA - 205 Lt, tačiau

jos negalime imti - ji uždarytų mažą ciklą E, A, C. E, o

tai neleistina! Kad neužmirštume, jog briauna EA jau

patikrinta ir atmesta, ištrinkime arba išbraukime ją.

Dabar pigiausia briauna iš likusių yra ED, tačiau ji taip

pat netinka, nes sukuria ciklą E, D, A, C, E. Briauną

ED ištriname ir bandome BC - tai pigiausia briauna,

kurios vert÷ yra 305 Lt. Jei pasirinktume BC ir

pažym÷tume ją raudonai, iš viršūn÷s C išeitų trys

skirtingos briaunos, o taip Hamiltono cikle būti negali.

Tad BC taip pat netinka.

54



Toliau bandome 320 Lt vert÷s briauną DC, tačiau ir jos

tenka atsisakyti, nes ji uždaro ciklą D, C, A, D. Toliau

bandome briauną EB, kuri tinka -ją pažymime

raudonai. Paskutin÷ pasirenkama briauna BD. kuri ir

užbaigia Hamiltono ciklą. Dabar galime parašyti

sprendinį, imdami bet kurią pradinę viršūnę. Prekybos

agentui reikalingas Hamiltono ciklas yra A, D, B, E, C,

A (arba A. C, E, B, D, A), kainuojantis 1250 Lt.

55



Pigiausiosios jungties algoritmas

1 žingsnis. Pirmiausia imti mažiausio svorio briauną

(jei tokių yra daugiau nei viena, rinkis bet kurią).

Pažym÷ti šią briauną.

2 žingsnis. Imti kitą pigiausią nepažym÷tą briauną ir

pažym÷ti ją, išskyrus atvejus, kai

a) ji uždaro mažesnį ciklą;

b) ji yra trečia pažym÷ta briauna, išeinanti iš

vienos viršūn÷s.

Jei tokių briaunų yra daugiau nei viena, rinktis bet

kurią.

3, 4, ... žingsniai. Kartoti 2 žingsnį, kol susidarys

visas Hamiltono ciklas.

56



Medžiai

1



Dažnai susiduriama su tokiomis problemomis:

Optimaliai suprojektuoti telefonų tinklą,

Optimaliai suprojektuoti kompiuterių tinklą,

Nutiesti geležinkelį ir pan.

Tokio tipo uždaviniai yra vadinami minimalaus tinklo

uždaviniais.

2



Reikia rasti pradinio grafo pografį, kuris tenkintų šias

sąlygas:

1. Jis turi būti jungusis. (Tai akivaizdu, nes kiekviena

viršūn÷ turi junktis su kita).

2. Jame neturi būti ciklų. (Turi būti neįmanoma apeiti

sprendinio pografio ar jo dalies ir surgįžti į pradinę

viršūnę).

3



Apibr÷ž

÷žimas.

Jungusis grafas, neturintis ciklų, vadinamas

medžiu.

4



Apibr÷ž

÷žimas.

Grafas yra jungusis, jei bet kurias dvi

viršūnes galima sujungti keliu (iš esm÷s tai reiškia, kad

galima nukeliauti iš vienos viršūn÷s į bet kurią kitą) grafo

briaunomis.

Apibr÷ž

÷žimas.

Grafas, kuriame n÷ra ciklų, vadinamas

acikliniu arba mišku.

5



Medžiai yra paprasčiausia grafų k1as÷. Juos tenkina

daugelis savybių, tačiau jos ne visada tinka bendru grafų

atveju. Taikant medžiams daugumą įrodymų ir

pamąstymų, jie iš tikrųjų yra daug paprastesni nei atrodo.

Medžiai yra pati populiariausia grafų klas÷, kuri yra

taikoma programavime įvairiausioms situacijoms

realizuoti.

6



Medžių savyb÷s s (1)

Jei grafas yra medis, tai bent dvi jo viršūn÷s jungia vienas

ir tik vienas kelias. Atvirkščiai, grafas, kurio bet kurias dvi

viršūnes jungia tik vienas kelias, yra medis.

7



Medžių savyb÷s s (2)

Visos medžio briaunos yra tiltai. Atvirkščiai, jungusis

grafas, kurio briaunos – tiltai, yra medis.

8



Medžių savyb÷s s (3)

N viršūnių medis turi N-1 briauną.

Pastaba. 3 savyb÷ turi ir atvirkščią teiginį, tačiau ne

visada galima teigti, kad grafas, kurio briaunų skaičius yra

vienetu mažesnis už viršūnių skaičių, yra medis.

Svarbu , kad būtų jungusis grafas.

9



Medžių savyb÷s s (4)

Jungusis N viršūnių ir N-1 briaunos grafas yra medis.

10



Apibr÷ž

÷žimas.

G yra bet koks jungusis grafas. Tada G turi

bent vieną ( dažniausiai daugiau nei vieną) jungiantįjį

medį. Grafo G pografis vadinamas grafo G jungiančiuoju

medžiu, jei:

a) jo viršūn÷s sutampa su grafo G viršūn÷mis;

b) jo briaunos yra grafo G briaunos;

c) jis yra medis.

11



12



G yra jungusis svorinis grafas. Tarp visų grafo G

jungiančiųjų medžių yra vienas ( gali būti keli), kurio

bendrasis svoris yra mažiausias.

Toks medis vadinamas grafo G minimaliuoju

jungiančiuoju medžiu.

13



A

B

A

B

A

B

1

1

1

1

1

1

2

C

2

D

C

D

C

D

14



Uždaviniai, kuriuos pavadinome minimalaus tinklo

uždaviniais, naudojant grafų teorijos terminus

vadinami minimaliojo jungiančiojo (MJM)

uždaviniais.

15



Kruskalo algoritmas

1 žingsnis. Rasti pigiausią grafo briauną (jei tokių yra ne

viena, pasirinkti bet kurią). Pažym÷ti tą briauną.

2 žingsnis. Rasti grafe pigiausią dar nepažym÷tą briauną,

kurią pažym÷jus, nesusi darytų ciklo (negali būti ciklų). Jei

tokių yra ne viena, pasirinkti bet kurią. Ją pažym÷ti.

3,4 ir t.t. Žingsniai. Kartoti 2 žingsnį tol, kol bus

panaudotos visos grafo viršūn÷s. Pažym÷tos briaunos ir

sudaro minimalųjį jungiantįjį medį.

16



Išvada. Kruskalo algoritmu visada gaunamas pigiausias

jungiantysis medis.

Grafo jungiantysis medis gali būti vadinamas tinklu.

Tinklo viršūn÷s vadinamos mazgais.

Trumpiausias iš visų tinklų, jungiančių taškų aibę,

vadinamas trumpiausiuoju tinklu.

Bet kuris tinklo mazgas, kuriame trys atšakos susieina

120 0 kampu, vadinamas tinklo Šteinerio tašku.

17



Trumpiausio tinklo, jungiančio tris taškus radimo

algoritmas

1. Jei vienas iš trikampio ABC kampų yra 120 0 arba

didesnis, tai trumpiausias tinklas sutampa su

minimaliuoju jungiančiuoju medžiu. Rasti tokį tinklą

labai paprasta, nes reikia paimti dvi trumpesnes

trikampio kraštines.

2. Jei visi trikampio kampai mažesni už 120 0 , tai

trumpiausiasis tinklas ir minimalusis jungiantysis medis

nesutampa. Trumpiausiąjį tinklą galima gauti tik

suradus Šteinerio mazgo tašką S ir sujungus S su

visomis viršūn÷mis A,B ir C.

18



Toričelio procedūra (Šteinerio taško trikampio viduje

radimas)

Tarkime, kad trikampio ABC visi kampai mažesni už 120 0 ir

kad kraštin÷ BC yra ilgiausia.

1 žingsnis. Sudaryti lygiakraštį trikampį BCX (BC ilgiausia

trikampio kraštin÷).

2 žingsnis. Aplink lygiakraštį trikampį BCX apibr÷žti

apskritimą.

3 žingsnis. Tašką X sujungti su tašku A. Taškas, kuriame

atkarpa XA kerta apskritimą, yra ieškomasis Šteinerio taškas

S.

19



A

B

C

A

B

C

X

20



A

B

C

X

21



A

S

B

X

22



A

S

B

C

X

23



Medžio tipo tinklai, kurių visi vidiniai mazgai yra Šteinerio

taškai, vadinami Šteinerio medžiais.

Išvada. Trumpiausias tinklas, jungiantis mazgus, yra arba

Minimalus jungiantysis medis (n÷ra vidinių mazgų),

arba

Šteinerio medis (yra vidinių mazgų).

24



Orientuotieji grafai ir kritiniai

keliai

1



Matematinė tvarkaraščių sudarymo teorija

ARBA

Kaip efektyviau organizuoti veiklą?

Tvarkaraščių sudarymo pagrindiniai elementai:

Vykdytojai;

Užduotys;

Vykdymo trukmės;

Nuoseklumo sąryšiai.

2



Vykdytojai

Vykdytojas gali būti:

Robotas;

Kompiuteris;

Žmogus;

Bet koks daiktas.

Vykdytojai žymimi V 1 , V 2 , ..., V n .

Vykdytojų aibė gali būti tiek baigtinė, tiek begalinė.

Tvarkaraščių sudarymas pradedamas, kai n>2.

3



Užduotys

Užduotis- tai nedalomas veiklos vienetas, kuris negali būti

padalintas į mažesnius vienetus.

Tvarkaraščių sudarymo uždaviniuose visada vieną užduotį atlieka

vienas vykdytojas.

Užduotys žymimos A, B, C, ..., KT, TT ir pan.

Užduotis gali būti:

Neparengta;

Parengta;

Vykdoma;

Įvykdyta.

4



Vykdymo trukmė

Kiekvienai užduočiai yra skirtas laikas, kuris vadinamas užduoties

vykdymo trukme.

Vykdymo trukmė- tai nepertraukiamas laiko intervalas, per kurį

vienas vykdytojas atlieką vieną užduotį.

Užduoties trukmė –tai laiko intervalas be trūkių bei pauzių.

Užduoties trukmė – tai teigiamas skaičius.

Užduoties trukmė žymima po užduoties pavadinimo skliausteliuose.

PVZ.: A(10) – tai reiškia, kad užduoties A vykdymas trunka 10 laiko

vienetų, nepriklausomai nuo vykdytojo.

5



Nuoseklumo sąryšiai

Nuoseklumo sąryšiai – tai apribojimai užduočių vykdymo tvarkai.

Nuoseklumas žymimas taip X→Y.

Tai reiškia, kad užduotis X turi būti įvykdyta prieš užduotį Y

arba

užduotis Y negali būti pradėta vykdyti tol, kol neįvykdyta užduotis X.

Tvarkaraščių sudarymo uždaviniuose naudojama daug nuoseklumo

sąryšių, kurie komplikuoja tvarkaraščio sudarymą.

Jei dvi užduotys nepriklauso nei vienam nuoseklumo sąryšiui, tai

tokios užduotys vadinamos nepriklausomomis.

6



Nuoseklumo sąryšių savybės

1. Tranzityvumas, t.y. jei X →Y ir Y →Z, tai turi būti teisinga, kad

X →Z.

2. Nuoseklumo sąryšis negali sudaryti ciklo.

7



Grafas, kurio briaunos turi kryptį, vadinamas orientuotu grafu arba

orgrafu.

Orgrafai aprašo sąryšius tarp objektų, tačiau šie sąryšiai neprivalo

būti abipusiai.

Orgrafo briauna vadinama lanku.

Jei X ir Y yra orgrafo gretimos viršūnės, tai sakoma:

kad X eina prieš Y, jei lanko rodylė nukreipta į Y;

kad X eina po Y, jei lanko rodyklė nukreipta į X.

Orgrafo viršūnės laipsnis susideda iš:

įeičių laipsnio;

išeičių laipsnio.

8



Kelias iš viršūnės X į viršūnę Y orgrafe yra kryptinių lankų seka, kuri

prasideda viršūnėje X ir pasibaigia viršūnėje Y.

Orgrafai taikomi tokio tipo situacijoms aprašyti:

Pervežimai. Viršūnės reiškia miestus arba mieste esančias vietas, o

lankai gali reikšti kelius arba gatves bei kryptį keliuose bei gatvėse.

Komunikacijos. Viršūnės reiškia informacijos centrus, o lankai –

galimas informacijos perdavimo kryptis.

Tiekimo sistemos. Viršūnės reiškia žaliavos centrus, o lankai –

žaliavos tekėjimo kryptis.

Komandų grandinė. Viršūnės reiškia žmones, o lankai – pavaldumą.

Asimetriniai sąryšiai. Asimetriniai sąryšiai – tai sąryšiai, kurie ne

visada yra abipusiai arba apgręžiami.

9



Tvarkaraščių sudarymo pagrindinės priemonės

1. Pradžia –tai fiktyvi užduotis, kurios trukmė lygi nuliui.

2. Pabaiga –tai fiktyvi užduotis, kurios trukmė lygi nuliui.

3. Prioritetų sąrašas. Prioritetų sąrašas – tai užduotys, surašytos tam

tikra jų atlikimo tvarka.

Pastaba. M užduočių projekto galimų prioritetų sąrašų skaičius yra

lygus: M!=1⋅2 ⋅3 ⋅… ⋅M.

10



Pagrindinės taisyklės, pagal kurias, remiantis prioritetų sąrašu,

skiriamos užduotys vykdytojams. Galimos trys skirtingos

situacijos:

1. Visi vykdytojai užimti.

Reikia laukti, kol atsiras laisvų vykdytojų.

2. Vienas vykdytojas yra laisvas.

Peržiūrėti prioritetų sąrašą nuo pradžios, ieškant pirmos

parengtos užduoties, ir ją radus, skirti tam vykdytojui.

Užduotis parengta, jei visos užduotys, kurios orgrafe

nukreiptos į ją, yra užbaigtos.

Jei tokių užduočių nėra, tai vykdytojas turi laukti.

11



3. Daugiau kaip vienas vykdytojas yra laisvas.

Šiuo atveju pirma parengta užduotis, esanti prioritetų

sąraše, skiriama pirmam laisvam vykdytojui, antra

parengta užduotis skiriama antram laisvam vykdytojui ir

t.t. Jei laisvų vykdytojų yra daugiau negu parengtų

užduočių, tai kai kurie vėliau atsilaisvinę vykdytojai turi

laukti.

12



Kritinių kelių algoritmas

Sudaromas prioritetų sąrašas atsižvelgiant į kritinių kelių laikus, t.y.

sudaromas prioritetų sąrašas, į kurį pirmąja rašoma užduotis, kurios

kritinis kelias ilgiausias, antrąja- užduotis, kurios kritinis kelias yra

antras pagal ilgį ir t.t.

Toks prioritetų sąrašas vadinamas kritinių kelių sąrašu.

Tvarkaraščio sudarymo procesas, kuris paremtas tokiu sąrašu,

vadinamas kritinių kelių algoritmu.

13



Užduotys turi būti išdėstytos jų vykdymo trukmių mažėjimo tvarka.

Toks sąrašas vadinamas mažėjančių trukmių sąrašu.

Mažėjančių trukmių sąrašo pagrindu tvarkaraščio sudarymo procesas

vadinamas mažėjančių trukmių algoritmu.

Visų kelių, einančių iš viršūnės X į viršūnę PABAIGA vykdymo

trukmių suma yra vadinama kelio suma.

Didžiausią sumą turintis kelias yra vadinamas viršūnės X kritiniu

keliu.

Kritinio kelio visų užduočių vykdymo trukmių suma yra vadinama

projekto kritiniu laiku.

14



Pavyzdžiai

Sudaryti tvarkaraštį, kai yra du vykdytojai V 1 ir V 2 , keturios užduotys

A, B, C, D, užduočių trukmė A(4), B(5), C(7), D(3) bei nuoseklumo

sąryšis A →C.

Galimi įvairūs tvarkaraščiai:

1)

Laikas

0 1 2 3 4 5 6 7 8 9 10 11 12 13

V 1 A(4) D(3) Prastova

V 2 B(5) C(7)

Tai blogas tvarkaraštis, nes visos trumpalaikės užduotys buvo

paskirtos pirmam vykdytojui, o visos ilgalaikės užduotys -antram

vykdytojui. Darbo trukmė šiame tvarkaraštyje 12.

15



2) Tvarkaraštis, kuriame pažeistas sąryšis A →C

Laikas

0 1 2 3 4 5 6 7 8 9 10 11 12 13

V 1 A(4) B(5)

Prastova

V 2 D(3) C(7)

Užduotis C negali būti pradėta po trijų laiko vienetų. Darbo trukmė

šiame tvarkaraštyje 10.

16



3)

Laikas

0 1 2 3 4 5 6 7 8 9 10 11 12 13

V 1 A(4) B(5)

Prastova

V 2

D(3)

Prastova

C(7)

Darbo trukmė šiame tvarkaraštyje 11.

17



4)

Laikas

0 1 2 3 4 5 6 7 8 9 10 11 12 13

V 1 A(4) C(7)

V 2 B(5) D(3) Prastova

Darbo trukmė šiame tvarkaraštyje 11.

3 ir 4 tvarkaraščiai yra optimalūs.

18



K

Karkasinio namo statybą sudaro 15 užduočių, kurios turi tam tikrą

trukmę bei nuoseklumo sąryšius. Sudaryti orgrafą.

Užduotis

Vykdymo Nuoseklumo sąryšiai

trukmė

Pamatų surinkimas PS (7) PS→GT

Grindų surinkimas GS(5) GS→GT

Sienų surinkimas SS(6) GT→ST

Stogo surinkimas KS(8) SS→ST

Grindų tvirtinimas GT(5) KS→KT

Vidinių sienų tvirtinimas ST(7) ST→KT

Stogo tvirtinimas KT(5) GT→VT

Vandentiekio tiesimas VT(4) ST→EI

Elektros įrengimas EI(4) EI→AS

Apšildymo sistemos įrengimas AS(3) KT→AS

Katininės įrengimas KI(4) EI→KI

Kanalizacijos įrengimas KO(1) VT→KO

Vidinės apdailos darbai VA(6) KI→KO

Sandarinimas SK(3) AS→SV

Komunikacijų įrengimas SV(2) KI→SV

KO→VA

KI→SK

19



PS(7)

GS(5) GT(5) VT(4) KO(1) VA(6)

SS(6)

ST(7) EI(4) KI(4) SK(3)

KS(8)

KT(5) AS(3) SV(2)

20



Sudaryti orgrafą, jei:

Viršūnės Įeičių Išeičių Bendrasis

laipsniai laipsniai laipsnis

A 2 2 4

B 1 1 2

C 1 3 4

D 3 0 3

E 1 2 3

21



1) Kruskalo algoritmas taikomas, norint rasti:

Minimalųjį jungiantį medį

2) Grafas yra figūra, sudaryta iš:

Briaunų ir viršūnių

3) Oilerio kelią sudaro:

Grafo briaunos lygiai po vieną kartą.

4) Koks grafas neturi Oilerio ciklų:

Nerandom tikslaus atsakymo žymėsiu ,kad c) orientuotas grafas

5) Šteinerio taškų vadinamas:

Bet kuris tinklo mazgas, kuriame trys atšakos suseina 120 laipsniu kampu

6) Dvi viršūnės vadinamos gretimomis, jei:

Jas jungia bent viena briauna

7) Briauna vadinama tiltu, jeigu:

Ją pašalinus grafas tampa nejungusis

8) Flerio algoritmas naudojamas:

Oilerio keliui arba ciklui rasti

9) Grafas turi Hamiltono ciklą, jei:

Jo kiekviena viršūnė yra gretima bent pusei grafo viršūnių

10) Briauna vadinama fiktyvia, jei:??

Jeigų tokią briauna papildomas grafas, atliekant grafo oilerizavimą.

11) Jei grafas turi nelyginio laipsnio viršūnę, tai:

Jis neturi Oilerio ciklų

12) Viršūnė laipsnis, tai:

Išeinančių briaunų skaičius

13) Pigiausios jungties algoritmas taikomas, norint rasti:

Hamiltono ciklą?

14) Svorinis grafas, tai toks grafas kurio:

Briaunos turi svorius

15) Orientuoti grafai aprašo sąryšius tarp objektų, kurie turi būti:

Nebūtinai abipusiai


16) Toričelio procedūra taikoma, norint rasti:

Šteinerio tašką

17) Grafo keliu vadinama:

Gretimų viršūnių seka

18) Kelias vadinamas ciklu, jei jis:

Prasideda ir baigiasi toje pačioje viršūnėje

19) Oilerio ciklas, tai:

Kelias, kuris prasideda ir baigiasi toje pačioje viršūnėje

20) Grafo oilerizavimas, tai procesas, kai:

Grafas papildomas fiktyviomis briaunomis

21) Grafo jungiantysis medis, tai:

Pografis, jungiantis visas pradinio grafo viršūnes

22) Kilpa, tai toks grafo elementas, kuri yra:

Briauna, jungianti viršūnę su ja pačia

23) nerasta

24) Viršūnė vadinama izoliuota, jei:

Viršūnės laipsnis lygus nuliui

25) Hamiltono ciklas – tai ciklas, kuris:

Prasideda kurioje nors grafo viršūnėje ir patekęs į kiekvieną kitą grafo viršūnę lygiai vieną kartą,

sugrįžta į pradinę viršunę

26) Medžiu vadinamas:

Jungus grafas, neturintis ciklų

27) N viršūnių medis turi:

N-1 briauną

28) Grafą galima paversti svoriniu grafu, jei jis:

????

29) Nejungusis grafas, tai toks grafas, kurį sudaro:

Kelios jungios dalys, kurios vadinamos grafo komponentėmis


30) Grafas vadinamas jungiuoju, jei:

Bet kurias dvi viršūnes galima sujungti keliu

31) Missin

32) Orientuotas grafas, tai toks grafas:

Kuris turi lankus ir viršūnes

33) Jei grafas yra medis, tai:

Bent dvi jo viršūnės jungia vienintelis kelias

34) Orientuotas grafas turi viršūnes, kurių laipnsiai skirstomi į:

Įėjimo ir išėjimo

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!