1 / 22

PROBLEM STEINERJEVEGA DREVESA

PROBLEM STEINERJEVEGA DREVESA. Računalništvo 3, 1. 6. 2010. Problem Steinerjevega drevesa. Problem Steinerjevega drevesa je problem minimilizacije Začetki obravnavanja tega problema segajo v 17. stoletju Pierre Fermat; problem je znan kot Geometrijski Fermatov problem

phuc
Download Presentation

PROBLEM STEINERJEVEGA DREVESA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROBLEM STEINERJEVEGA DREVESA Računalništvo 3, 1. 6. 2010

  2. Problem Steinerjevega drevesa • Problem Steinerjevega drevesa je problem minimilizacije • Začetki obravnavanja tega problema segajo v 17. stoletju Pierre Fermat; problem je znan kot Geometrijski Fermatov problem • Najdi točko p v trikotniku, tako da bo vsota razdalj med p in oglišči minimalna.

  3. Problem Steinerjevega drevesa • Kasneje s posplošitvijo Simpsonov problem • Najdi točko p v ravnini, tako da bo vsota razdalj med p in n podanimi točkami minimalna. • Leta 1934 Jarnik in Kossler predstavita podoben problem • Najdi najkrajše drevo, ki poveže n točk v ravnini.

  4. Problem Steinerjevega drevesa • Courant in Robbins s kombinacijo Fermatovega in Jarnik/Kossler-jevega problema predstavita Steinerjev problem • Problem je poimenovan po velikem švicarskem matematiku Jakob Steiner [1796-1863] • Problem Steinerjevega drevesa ima veliko načinov uporabe, kot je učinkovita organizacija električnih omrežij, načrtovanje večkratno usmerjenih sistemov, planiranje instalacije omrežij...

  5. Problem Steinerjevega drevesa Če nam mreža predstavlja graf G (tako, da so vozlišča tam, kjer se sekajo navpične in vodoravne črte). Podmnožico T v V(G) nam predstavljajo modro označena vozlišča. Naša naloga je povezati te točke tako, da bo cena najmanjša.

  6. Problem Steinerjevega drevesa Rešitev, ki je prikazana na sliki, smo dobili z dodajanjem vmesnih točk iz V(G). Tem dodanim točkam rečemo Steinerjeve točke. Steinerjeve točke in vozlišča iz množice T (terminali), nam predstavljajo Steinerjevo drevo S.

  7. Problem Steinerjevega drevesa Definicija problema Steinerjevega drevesa Vhodni podatki: Podan imamo neusmerjen graf G, teža in množico točk Naloga: Najdi Steinerjevo drevo Sza T v G, katerega teža c(E(S))je minimalna.

  8. Problem Steinerjevega drevesa • Poznamo dva posebna primera Steinerjevega drevesa • - vpeto drevo • - najkrajša pot med dvema vozliščema • Za oba primera poznamo algoritem polinomske časovne zahtevnosti, medtem ko je splošni poblem NP-težak

  9. Problem Steinerjevega drevesa Poznamo še izpeljanke problema • problem Evklidskega Steinerjevega drevesa (tudi problem Geometrijskega Steinerjevega drevesa) • problem Manhattanovega Steinerjevega drevesa • iščeta v mreži minimalno skupno dolžino povezav podanih točk • od osnovnega Steinerjevega problema se razlikuje v tem, da je dovoljena uporaba le ravnih povezav • med seboj se pa razlikujeta po tem, da je v problemu Manhattenovega dovoljena uporaba le vodoravnih in navpičnih povezave • problem Manhattenovega Steinerjevega drevesa je zelo pomemben za načrtovanje elektronskih komponent (VLSI vezja), ki morajo biti povezane samo vodoravno in navpično

  10. Dreyfus-Wagner algoritem • Dreyfus-Wagner algoritem s pomočjo dinamičnega programiranja izračuna optimalno Steinerjevo drevo za vse podmnožice T, začenši z množico z dvema elementoma • Algoritem reši problem Steinerjevega drevesa eksaktno vendar v splošnem za to potrebuje eksponentno količino časa.

  11. Dreyfus-Wagner algoritem • Algoritem uporablja naslednji rekurzivni formuli • Lema:Naj bo (G, c, T) problem Steinerjevega drevesa. Za vsak in definiramo: • Potem imamo za vse , in :

  12. Dreyfus-Wagner algoritem Za vse možne množice U‘, ki so podmnožice v U, tako da U‘ ni trivialna podmnožica v U. Za vsako podmnožico izračunamo minimalno dolžino poti od elementov iz U‘ in elementa x in prištejemo minimalno dolžino poti elemenot U\U‘ in elementa x. Element x priključimo s pomočjo podmnožice, ki nam da najmanšjo vrednost. Element x mora imeti že po definicji več kot 2 povezavi z elementi iz U.

  13. Dreyfus-Wagner algoritem Vrednost poti je enaka minimumu od (minimuma seštevka c(E(U)) in najkrajše razdalje med elementom iz U in elementom x) in od (minimuma seštevka razdalje med x in y, ki ni element U in vrednost , ki smo jo že spoznali.

  14. Dreyfus-Wagner algoritem • Vhodni podatki: Neusmerjeni graf G, teže in množico . • Izhodni podatki: Dolžina p(T) za optimalno Steinerjevo drevo za množico T v G. 1. If|T| ≤ 1 then set p(T) := 0 and stop. Izračunaj razdalja(G,c)(x,y) za vsak set p({x,y}) := razdalja(G,c)(x,y) za vsak 2. Fork:=2 to |T| - 1 do For vsak z |U|=k in vsak do: Set For vsak z |U|=k in vsak do: Set

  15. Dreyfus-Wagner algoritem • Dreyfus-Wagner algoritem pravilno določi dolžino za optimalno Steinerjevo drevo v času O(3tn + 2tn2 + n3), kjer je n=|V(G)| in t=|T|. • Dokaz: Pravilnost sledi iz leme. • Prvi del algoritma je sestavljen z reševanjem vseh parov najkrajše poti, ki je rešljiv v O(mn + n2log(n)). • Prva rekurzija v drugem delu zahteva časovno zahtevnost O(3tn), ker je potrebno preveriti 3t možnosti razdelitve T v U', U\U' in T\U. Druga rekurija v drugem delu pa zahteva O(2tn2) časa.

  16. Dreyfus-Wagner algoritem • Algoritem nam izračuna ceno za optimalno Steinerjevo drevo za vse podmnožice T. Algoritem nam poda točno rešitev s pomočjo dinamičnega programiranja. • Algoritem nam vrne kot rešitev najcenejšo pot, vendar nam ne vrne Steinerjevega drevesa, to lahko dosežemo z nadgradnjo algoritma.

  17. Problem Steinerjevega drevesa Ker se ne moremo nadejati na algoritem, ki bo problem rešil v točnem polinomskem času se upremo na aproksimacijske algoritme, ki znajo aproksimirati problem optimalnega Steinerjevega drevesa za T v G z minimalnim vpetim drevesom v podgrafu metričnega zaprtja (graf dopolnimo do polnega, povezave med vozlišči, ki ne obstajajo, dobijo vrednost najcenejše povezave med njimi) z G za T. Izrek: Naj bo G povezan graf z težo c:E(G)→R+ in naj bo (G’, c’) metrično zaprtje (graf dopolnimo, do polnega grafa). Naj bo T≤V(G). Če je S optimalno Steinerjevo drevo za T v G, in M minimalno vpeto drevo v G’[T] (glede na c’), potem velja c’(E(M)) ≤2c(E(S)).

  18. Kou-Markowsky-Berman algoritem • Vhodni podatki: Neusmerjeni graf G, teže c: E(G) → R+ in množico T≤V(G). • Izhodni podatki: Steinerjevo drevo S. 1.) Izračunamo metrično zaprtje (G’, c’) in najkrajšo pot Pst za vse s, t Є T. 2.) Najdemo najmanjše vpeto drevo M v G’[T] (glede na c’). set E(S) := U{x, y}ЄE(M)E(Pxy) in V(S) := UeЄE(S)e 3.) Dokler obstaja cikel C v S izvajaj: izbriši katerokoli povezavo iz cikla eЄE(C) iz S

  19. Problem Steinerjevega drevesa Poznamo še druge aproksimacijske algoritme, ki so še bolj natančni. Algoritem, ki je zalo učinkovi za izračun optimalnega Steinerjevega drevesa in je zelo učinkovit posebaj za izračun problema Manhattanovega Steinererjevega drevesa je razvil Warme, Winter in Zachariasen [1999]. Problem Steinerjevega drevesa ima veliko načinov uporabe, kot je učinkovita organizacija električnih omrežij, načrtovanje večkratno usmerjenih sistemov, planiranje instalacije omrežij...

  20. Problem Steinerjevega drevesa Zgled: imamo graf G predstavljen z mrežo in 4 točke iz T (kot kaže spodnja slika).

  21. Problem Steinerjevega drevesa Vpeto drevo preko točk iz T. Skupna cena je enaka 3x3=9

  22. Problem Steinerjevega drevesa Rešitev Steinerjeva drevesa s pomočjo Steinerjevih točk, nam da skupno ceno povezav enako 7.

More Related