300 likes | 442 Views
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.
E N D
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 • 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ą.
15 B C A 10 5 5 0 10 15 Minimalus jungiantysis medis 5,10 10,63 8,54
15 B C A 10 5 5 0 10 15 Minimalus jungiantysis medis Minimalaus jungiančiojo medžio ilgis: + = 5,10 8,54 13,64 5,10 10,63 8,54
15 B C A 10 5 5 0 10 15 Minimalus jungiantysis medis Minimalaus jungiančiojo medžio ilgis: + = 5,10 8,54 13,64 5,10 10,63 8,54
15 B C A 10 5 5 0 10 15 Toričelio procedūra Šteinerio taškas 5,10 10,63 8,54
B C A Toričelio procedūra Optimizuoto tinklo ilgis: 13,43 Minimalaus jungiančiojo medžio ilgis: Šteinerio taškas 13,64 13,64 - 13,43 = 0,21 1,54 %
15 B C A 10 5 5 0 10 15 Toričelio procedūra Optimizuoto tinklo ilgis: 13,43 [2,10] Minimalaus jungiančiojo medžio ilgis: 13,64 13,64 - 13,43 = 0,21 1,54 % [1,5] [9,2]
B C A Toričelio procedūra [2,10] [1,5] [9,2] TriangleSteinerCoordinates([ , , ]); [2.128778272, 5.697540350]
B C A Trikampio tinkamumas
B C A Trikampio tinkamumas [2,10] 52,50° 99,25° 28,25° [1,5] [9,2] CheckTriangle([ , , ]); true
A B D C Toričelio procedūra keturkampiams Šteinerio taškai
A B D C Toričelio procedūra keturkampiams Šteinerio taškai
A B D C Toričelio procedūra keturkampiams PSC([…]);
A B D C Keturkampio tinkamumas X2 X1 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.
15 A D B C 10 5 5 0 10 15 Formos su trečio laipsnio viršūnėmis Tinklo ilgis: 12.70 [2,10] [2.5,7] [9,4] [1,5]
A B C D Formos su trečio laipsnio viršūnėmis Tinklo ilgis: 12.70 Naujas tinklo ilgis: 12.61 [2,10] Realizuotos procedūros: VSC(); [2.5,7] CheckForm3(); ConvertToPolygon(); [9,4] [1,5] ]); VSC([ , , ,
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 14 y 2 15 Minimalaus jungiančiojo medžio ilgis: 1135,34 16 6 8 300 Antro laipsnio viršūnė 2 sudaro trikampį, tinkamą optimizavimui. Įvedamas Šteinerio taškas, turintis numerį 16. 1 7 5 200 10 11 9 4 13 100 12 3 0 100 200 300 0 x
SteinerTree1 algoritmas 14 y 2 15 17 Minimalaus jungiančiojo medžio ilgis: 1135,34 16 6 8 300 Trečio laipsnio viršūnė 6 sudaro formą tinkamą optimizavimui. Panaudojama procedūra VSC. Įvedamas Šteinerio taškas, turintis numerį 17. 1 7 5 200 10 11 9 4 13 100 12 3 0 100 200 300 0 x
SteinerTree1 algoritmas 14 y 2 15 17 Minimalaus jungiančiojo medžio ilgis: 1135,34 16 6 8 300 Trečio laipsnio viršūnė 11 sudaro formą tinkamą optimizavimui. Panaudojama procedūra VSC. Įvedamas Šteinerio taškas, turintis numerį 18. 1 7 5 200 10 11 9 18 4 13 100 12 3 0 100 200 300 0 x
SteinerTree1 algoritmas 14 y 2 15 17 Minimalaus jungiančiojo medžio ilgis: 1135,34 16 6 8 300 Trečio laipsnio viršūnė 13 sudaro formą tinkamą optimizavimui. Panaudojama procedūra VSC. Įvedamas Šteinerio taškas, turintis numerį 19. 1 7 5 200 10 11 9 18 19 4 13 100 12 3 0 100 200 300 0 x
SteinerTree1 algoritmas 14 y 2 15 17 Minimalaus jungiančiojo medžio ilgis: 1135,34 16 6 8 300 Gauto tinklo ilgis: 1119,14 1 7 1135,34 - 1119,14 = 16,2 5 200 10 11 9 1,43 % 18 19 4 Algoritmo vykdymo laikas 0,359 sekundės. 13 100 12 3 0 100 200 300 0 x
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