ruslan andrejev tm-5/1
DESCRIPTION
VILNIAUS GEDIMINO TECHNIKOS UNIVERSITETAS FUNDAMENTINIŲ MOKSLŲ FAKULTETAS MATEMATINIO MODELIAVIMO KATEDRA. Ruslan Andrejev TM-5/1. MINIMALAUS TINKLO RADIMAS. Vadovas: doc. dr. E. Paliokas. U žduotis. Minimalaus tinklo radimas. Darbo tikslas. - PowerPoint PPT PresentationTRANSCRIPT
VILNIAUS GEDIMINO TECHNIKOS UNIVERSITETAS
FUNDAMENTINIŲ MOKSLŲ FAKULTETAS
MATEMATINIO MODELIAVIMO KATEDRA
Ruslan AndrejevTM-5/1
MINIMALAUS TINKLO RADIMAS
Vadovas: doc. dr. E. Paliokas
Užduotis
Minimalaus tinklo radimas.
Darbo tikslas
Sukonstruoti algoritmus, kurie optimizuotų minimalius tinklus plokštumoje, panaudojant papildomus vidinius taškus, vadinamus Šteinerio taškais.
Uždaviniai
Aptarti teorines žinias apimančias Šteinerio taškų radimą.
Rasti būdus teorinėms žinioms perteikti praktiškai Maple 12 paketo terpėje.
Sugalvoti bei realizuoti algoritmus, optimizuojančius minimalius tinklus.
Atlikti bandymus su atsitiktinai sugeneruotais pilnaisiais grafais bei atlikti rezultatų palyginimą.
Minimalus jungiantysis medis
B
C
A
0 5 10 15
5
10
15
5,10
10,638,54
Minimalus jungiantysis medis
B
C
A
0 5 10 15
5
10
15
5,10
10,638,54
5,10 + 8,54 = 13,64
Minimalaus jungiančiojo medžio ilgis:
Minimalus jungiantysis medis
B
C
A
0 5 10 15
5
10
15
5,10
10,638,54
5,10 + 8,54 = 13,64
Minimalaus jungiančiojo medžio ilgis:
Toričelio procedūra
B
C
A
Šteinerio taškas
0 5 10 15
5
10
15
5,10
10,638,54
Toričelio procedūra
B
C
A
Šteinerio taškas
Optimizuoto tinklo ilgis:13,43
Minimalaus jungiančiojo medžio ilgis:
13,64
13,64 - 13,43 = 0,21
1,54 %
Toričelio procedūra
B
C
A
Optimizuoto tinklo ilgis:13,43
Minimalaus jungiančiojo medžio ilgis:
13,64
13,64 - 13,43 = 0,21
1,54 %
0 5 10 15
5
10
15
[2,10]
[1,5][9,2]
Toričelio procedūra
B
C
A
[2,10]
[1,5][9,2]
TriangleSteinerCoordinates([ , , ]);
[2.128778272, 5.697540350]
Trikampio tinkamumas
B
C
A
Trikampio tinkamumas
B
C
A99,25°
52,50°
28,25°
[2,10]
[1,5]
CheckTriangle([ , , ]);
true
[9,2]
Toričelio procedūra keturkampiams
A
B
D
C
Šteinerio taškai
Toričelio procedūra keturkampiams
A
B
D
C
Šteinerio taškai
Toričelio procedūra keturkampiams
A
B
D
C
PSC([…]);
Keturkampio tinkamumas
A
B
D
C
X1X2
Tiesė X1X2 kerta keturkampio kraštinę AB, o kraštinės CD nekerta, todėl toks daugiakampis nėra tinkamas optimizavimui. Realizuota procedūra PSC tokiu atveju grąžins reikšmę false.
Formos su trečio laipsnio viršūnėmis
0 5 10 15
5
10
15
A
B
C
D
[2,10]
[9,4]
[1,5]
[2.5,7]
Tinklo ilgis: 12.70
Formos su trečio laipsnio viršūnėmis
A
B
C
D
[2,10]
[9,4]
[1,5]
[2.5,7]
Tinklo ilgis: 12.70
VSC([ , , ]);,
Naujas tinklo ilgis: 12.61
VSC();
Realizuotos procedūros:
CheckForm3();
ConvertToPolygon();
Realizuotos procedūros TriangleSteinerCoordinates CheckTriangle PSC VSC CheckForm3 ConvertToPolygon
Medis – tinklo vaizdavimas MinimalusMedis – minimalaus jungiančiojos medžio radimas Dar 8 papildomos dažnai naudojamos procedūros, reikalingos
algoritmų konstravimui.
Optimizuoto tinklo radimo problema
Nėra algoritmo, kuris garantuotų trumpiausio Šteinerio tinklo radimą.
Maple paketo terpėje algoritmus sukūrėme ir realizavome patys. Pasinaudojome Toričelio procedūra bei patobulintuoju jos variantu.
Uždavinio susiaurinimas
Optimizuosime pilnųjų grafų minimaliuosius jungiančiuosius medžius (praktiniuose taikymuose tokie grafai dažniausiai pasitaiko).
Nagrinėsime juos Dekarto koordinačių sistemoje, kurioje kraštinių svoriai reikš realius atstumus tarp viršūnių.
Optimizuosime grafus, turinčius iki 100 viršūnių.
Realizuoti algoritmai
Algoritmas SteinerTree1- paprasčiausias ir greičiausias.
Algoritmas SteinerTree1K – įvertina tinklo svorio vieneto kainą bei Šteinerio taško įvedimo kainą.
Algoritmas SteinerTree – 5 variacijos
Algoritmas SteinerTree2
SteinerTree1 algoritmas
6
2
8
1
14
1110
9
4
312
13
5
7
15
0 100 200 300
100
200
300
0
Minimalaus jungiančiojo medžio ilgis: 1135,34
Antro laipsnio viršūnė 2 sudaro trikampį, tinkamą optimizavimui. Įvedamas Šteinerio taškas, turintis numerį 16.
16
x
y
SteinerTree1 algoritmas
6
2
8
1
14
1110
9
4
312
13
5
7
15
0 100 200 300
100
200
300
0
Minimalaus jungiančiojo medžio ilgis: 1135,34
Trečio laipsnio viršūnė 6 sudaro formą tinkamą optimizavimui. Panaudojama procedūra VSC. Įvedamas Šteinerio taškas, turintis numerį 17.
16 17
x
y
SteinerTree1 algoritmas
6
2
8
1
14
1110
9
4
312
13
5
7
15
0 100 200 300
100
200
300
0
Minimalaus jungiančiojo medžio ilgis: 1135,34
Trečio laipsnio viršūnė 11 sudaro formą tinkamą optimizavimui. Panaudojama procedūra VSC. Įvedamas Šteinerio taškas, turintis numerį 18.
16 17
18
x
y
SteinerTree1 algoritmas
6
2
8
1
14
1110
9
4
312
13
5
7
15
0 100 200 300
100
200
300
0
Minimalaus jungiančiojo medžio ilgis: 1135,34
Trečio laipsnio viršūnė 13 sudaro formą tinkamą optimizavimui. Panaudojama procedūra VSC. Įvedamas Šteinerio taškas, turintis numerį 19.
16 17
1819
x
y
SteinerTree1 algoritmas
6
2
8
1
14
1110
9
4
312
13
5
7
15
0 100 200 300
100
200
300
0
Minimalaus jungiančiojo medžio ilgis: 1135,34
Gauto tinklo ilgis: 1119,14
16 17
1819
1135,34 - 1119,14 = 16,2
1,43 %
Algoritmo vykdymo laikas 0,359 sekundės.
x
y
Algoritmų vykdymo laikų palyginimas
Algoritmų vykdymo laikai
0,000
100,000
200,000
300,000
400,000
500,000
600,000
20 30 60 80
Viršūnių skaičius
Vy
kd
ym
o la
ika
s,[
s] SteinerTree( 1 variacijos
vykdymo laikas)
SteinerTree( 2 variacijosvykdymo laikas)
SteinerTree( 3 variacijosvykdymo laikas)
SteinerTree( 4 variacijosvykdymo laikas)
SteinerTree( 5 variacijosvykdymo laikas)
SteinerTree2 vykdymo laikas
Rezultatai
Sukonstravome automatizuotas Maple priemones, leidžiančias
optimizuoti minimalius jungiančiuosius medžius panaudojant
papildomus Šteinerio taškus.
Galimas praktinis panaudojimas Elektros linijų tinklų optimizavimas. Internetinių tinklų optimizavimas. Kompiuterinių tinklų optimizavimas. GSM tinklų optimizavimas. Dujotiekio tinklų optimizavimas.
Ačiū už dėmesį
Prašau klausti