De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Didactisch materiaal bij de cursus Academiejaar 2011-2012 Tel: 09/264.33.85 Fax: 09/264.42.95.

Verwante presentaties


Presentatie over: "Didactisch materiaal bij de cursus Academiejaar 2011-2012 Tel: 09/264.33.85 Fax: 09/264.42.95."— Transcript van de presentatie:

1 Didactisch materiaal bij de cursus Academiejaar Tel: 09/ Fax: 09/ Prof. dr. ir. W. Philips Optimalisatietechnieken Telecommunicatie en Informatieverwerking UNIVERSITEIT GENT

2 © W. Philips, Universiteit Gent, versie: 19/3/ a. 2 Copyright notice This powerpoint presentation was developed as an educational aid to the renewed course “Optimisation Techniques” (Optimalisatietechnieken), taught at the University of Gent, Belgium as of This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed: 1.If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, 1998” in a font size of at least 10 point on each slide; 2.You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file); 3. If you modify the presentation, you should clearly state so in the presentation; 4.You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation; 5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author. In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it). “Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes,... Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use. Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer. If you use this presentation, I would appreciate being notified of this by . I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures. Prof. dr. ir. W. Philips Department of Telecommunications and Information ProcessingFax: University of GentTel: St.-Pietersnieuwstraat 41, B9000 Gent, Belgium

3 Opspannende bomen Inleiding: te bestuderen problemen

4 © W. Philips, Universiteit Gent, versie: 19/3/ a. 4 mogelijke leidingen 1. Zoek een opspannende boom mogelijke oplossing Het optimaal net is een willekeurige opspannende boom Probleem: Een aantal boorplatformen moeten onderling en met de kust worden verbonden via een pijpleidingennet; men wenst zo weinig mogelijk verbindingen te leggen Opspannend: all knopen moeten aanwezig zijn Zo weinig mogelijk verbindingen  Boom Geconnecteerd: minstens één pad tussen elk paar knopen

5 © W. Philips, Universiteit Gent, versie: 19/3/ a. 5 Opmerking Voor een geconnecteerde graaf met n knopen bestaat een opspannende boom altijd heeft een opspannende boom n- 1 takken mogelijke leidingen minimaal opspannend bos Voor een niet-geconnecteerde graaf met k componenten bestaat er geen opspannende boom, maar kan men zoeken naar een opspannend bos met zo weinig mogelijk bomen dat bos heeft dan n-k takken (bewijs zelf)

6 © W. Philips, Universiteit Gent, versie: 19/3/ a. 6 Toepassing: is graaf geconnecteerd? Probleem: In een dorpje spreken sommige mensen met elkaar en andere niet; Als meneer A een roddel vertelt tegen zijn buren, zal die roddel zich dan over het hele dorp verspreiden? Modellering: construeer een graaf met als knopen de inwoners; twee knopen zijn verbonden als ze communiceren Oplossing: antwoord is “ja”  de graaf is geconnecteerd  de graaf heeft een opspannende boom Praktisch: gebruik een algoritme dat indien mogelijk een opspannende boom construeert en zoniet een minimaal opspannend bos en onderzoek of het resultaat een boom is of een bos (dit kan door aantal takken te tellen!)

7 © W. Philips, Universiteit Gent, versie: 19/3/ a. 7 mogelijke leidingen (met kost) Zoek optimale opspannende graaf Men kent de kost van elke mogelijke leiding optimaal leidingennet Resultaat: het optimaal net is de opspannende graaf met kleinste kost Probleem: Een aantal boorplatformen moeten onderling en met de kust worden verbonden via een zo goedkoop mogelijk pijpleidingennet

8 © W. Philips, Universiteit Gent, versie: 19/3/ a. 8 optimale graaf = boom … Zoek optimale opspannende boom Graafformulering vorig probleem: verbind alle knopen onderling maar met de goedkoopste verzameling takken  zoek een minimum-kost opspannende graaf Als alle takkosten positief zijn is dit probleem equivalent met “zoek een minimum-kost opspannende boom” Zoniet is de optimale oplossing niet noodzakelijk boom! optimale graaf  boom

9 © W. Philips, Universiteit Gent, versie: 19/3/ a Het Steinerprobleem Men mag (maar moet niet) eventueel ook verbindingen via gegeven routers (optionele knopen) leggen Oplossing: het optimaal netwerk is een boom (bij positieve kosten) Probleem: Een aantal computers (verplichte knopen) moet worden verbonden door een zo goedkoop mogelijk netwerk (takken) computer mogelijke verbinding router (optioneel) optimaal netwerk De rekentijd nodig om een optimale oplossing te zoeken neemt zeer snel toe met de probleemgrootte; het Steiner algoritme zoekt veel sneller een suboptimale oplossing

10 © W. Philips, Universiteit Gent, versie: 19/3/ a. 10 Samenvatting Te bestuderen problemen: 1. Zoek een opspannende boom of een opspannend bos met zo weinig mogelijk bomen  het boom- en het bosalgoritme 2. Zoek een minimumkost opspannende boom (of graaf)  de algoritmen van Prim en Kruskal 3. Zoek een Steiner-boom  het algoritme van Steiner (dit levert echter maar een sub-optimale oplossing!)

11 Opspannende bomen Constructie opspannende boom

12 © W. Philips, Universiteit Gent, versie: 19/3/ a. 12 Constructie van opspannende boom... Gegeven een graaf G, zoek een opspannende boom B Het resultaat is de gezochte boom of een bos als de graaf niet geconnecteerd is (bewijs is triviaal) Probleem: hoe circuitvorming detecteren? Opmerking: Dit is een gulzig (greedy) algoritme: iedere tak wordt maar één maal onderzocht Principiële oplossing: construeer een maximale subgraaf B zonder circuits die alle knopen omvat 1. start met een B die alle knopen bevat maar geen takken voeg T toe aan B tenzij hierdoor een circuit wordt gevormd 3. ga naar 2 tenzij alle takken reeds onderzocht zijn 2. kies een nog niet-onderzochte tak T die geen lus is

13 © W. Philips, Universiteit Gent, versie: 19/3/ a. 13 Voorzieningen voor circuitdetectie K : nog niet “bezochte” knopen Boom B 1 Boom B 2 Na herkleuring Herkleuring nodig (= Samen- voeging bomen) Boom B 1 Boom B 2 (nu leeg!) Besluit: we kunnen circuitvorming de- tecteren d.m.v. enkel lokale informatie (de kleur van de takuiteinden)

14 © W. Philips, Universiteit Gent, versie: 19/3/ a. 14 Bosalgoritme met circuitdetectie... Schematische samenvatting van het algoritme Nieuwe boomtak Verbinding bomen Koorde Nieuwe boom (nieuwe kleur) Context Vervangen door (Tak niet opnemen) of alle takken Besluit: het kleuren van knopen vergemakkelijkt circuitdetectie de kleuring moet wel consistent worden gehouden (alle knopen van een boom in dezelfde kleur)

15 © W. Philips, Universiteit Gent, versie: 19/3/ a Bosalgoritme met circuitdetectie... Datastructuren 1. Initialisatie: K bevat alle knopen; voor alle knopen a : i ( a ) = 0 (kleur=wit) K 1, K 2,… zijn leeg; B is leeg n= 1 Opmerking: de takken van de bomen worden dus in 1 lijst B bijgehouden, maar de knopen in verschillende lijsten K 1, K 2,… De lijsten K 1, K 2,… houden de knopen van de bomen bij De lijst B houdt de gevonden boomtakken bij De lijst K houdt de “nog niet bezochte” knopen bij Voor iedere knoop a: i ( a ) =j als a  K j of i ( a ) = 0 als a  K n is de index van de eerste nog vrije lijst

16 © W. Philips, Universiteit Gent, versie: 19/3/ a Bosalgoritme met circuitdetectie 2.a. Circuitdetectie: Als i ( a ) =i ( b )  0 dan kan T geen boomtak zijn Zoniet, voeg T toe aan de lijst B 2.b. Aanpassing hulplijsten: Als i ( a ) =i ( b ) = 0 : Als i ( a ) =i ( b )  0 : Als i ( a ) = 0 en i ( b ) =j  0 : Als i ( a ) =j  0 en i ( b ) = 0 : Als i(a)=k  0 en i ( b ) =l  0 : creatie: a en b uit K naar K n ; stel n=n+ 1 circuit: doe niets uitbreiding: a uit K naar K j uitbreiding: b uit K naar K j samenvoeging: verplaats alle knopen van K k naar K l (of omgekeerd) 2.c. Indien nodig, pas de knoopindices i ( a ) en i ( b ) aan 3. Ga naar 2 tenzij alle takken onderzocht zijn 2. Kies een willekeurige nog niet-onderzochte tak T= ( a,b )

17 © W. Philips, Universiteit Gent, versie: 19/3/ a. 17 Efficiëntere stopvoorwaarde Men moet dus doorgaan tot alle takken onderzocht zijn … tenzij: (a) er maar één lijst K j niet leeg is (  er is maar 1 boom!) (b) én K leeg is (  alle knopen werden al bezocht)  het gevonden bos is dan immers een opspannende boom! Opmerking: men mag niet stoppen vooraleer alle takken onderzocht zijn, zelfs al zijn alle knopen al gekleurd Nu is K leeg, maar we mogen niet stoppen Correct stoppen We kunnen dus “Ga naar 2 tenzij alle takken onderzocht zijn” vervangen door “Ga naar 2 tenzij (a) en (b) voldaan zijn of alle takken onderzocht zijn”  sneller algoritme Nog steeds nodig om het algoritme te doen stoppen in het geval dat er geen opspannende boom bestaat!

18 © W. Philips, Universiteit Gent, versie: 19/3/ a. 18 Complexiteit Complexiteit voor een graaf met m takken en n knopen Stap 2 wordt maximaal m maal uitgevoerd Elke keer dat stap 2 wordt uitgevoerd moeten we 1. bepalen tot welke lijsten a en b behoren; omdat we voor elke knoop de lijstindex bijhouden is dit triviaal 2.individuele knopen x verplaatsen (triviaal met gelinkte lijsten) en indices i ( x ) aanpassen Soms moeten we bomen samenvoegen: 1. lijsten K i en K j samenvoegen (triviaal met gelinkte lijsten) 2. de knopen van K i of K j een nieuwe index geven: dit vraagt in totaal nooit meer dan n /2 log 2 n operaties als we steeds de indices van de knopen in de kleinste lijst aanpassen Besluit: complexiteit: c m+ n /2 log 2 n  O ( m ) als m>>n

19 © W. Philips, Universiteit Gent, versie: 19/3/ a. 19 Kernpunten 1. de filosofie van het algoritme begrijpen: “takken een voor een toevoegen tenzij er circuits gevormd worden” 2. het algoritme waar nodig aanpassen om een redelijk efficiënte implementatie mogelijk te maken: “uiteinden kleuren om circuitdetectie mogelijk te maken’’ 3. algoritme nauwkeurig definiëren: datastructuren definiëren, pseudocode neerschrijven en nagaan of het algoritme in alle omstandigheden werkt (b.v., bij niet- geconnecteerde grafen, als er lussen zijn, … )

20 © W. Philips, Universiteit Gent, versie: 19/3/ a. 20 Vragen… 1. verander de implementatie van het algoritme voor het zoeken van een opspannende boom zodat “herkleuringen” veel sneller kunnen; tip: gebruik “pointers” i.p.v. getallen i(x) om de knopen “te kleuren”; wat is nu het voornaamste nadeel? 2. We zouden de gelinkte lijsten K 1, K 2, … ook kunnen vervangen door arrays; wat zouden de voor- en nadelen zijn? 3. geef een algoritme dat, gegeven een bepaalde tak T in een graaf G, een opspannende boom vindt voor de component van G waartoe T behoort; mogelijke opl.: cfr. Prim (zie verder)

21 © W. Philips, Universiteit Gent, versie: 19/3/ a. 21 Optimale opspannende boom Gegeven een graaf G, zoek een opspannende boom B (of een bos als er geen boom bestaat) waarvoor de som van de takkosten minimaal is Opmerkingen: er kunnen meerdere “even optimale” opspannende bomen zijn Voorbeeld: aanleggen van een computernetwerk ook bij negatieve takkosten kan men zoeken naar een optimale boom, maar natuurlijk is die optimale boom dan niet noodzakelijk gelijk aan de optimale graaf men kan ook zoeken naar een duurste opspannende boom of graaf

22 © W. Philips, Universiteit Gent, versie: 19/3/ a. 22 Constructie van de optimale boom... Stel we kennen een deelboom Q k van de (of een) optimale boom Beschouw alle takken die een knoop van Q k verbinden met een knoop niet in Q k (dit is de snede bepaald door de knopen van Q k ) Eigenschap: de (of een) optimale boom bevat T deel Q k van optimale boom B QkQk Kies hieruit de (of een) tak T met minimale kost  we kunnen Q k uitbreiden tot een groter deel Q k +1 =Q k +T snede bepaald door Q k T, een beste tak uit die snede T

23 © W. Philips, Universiteit Gent, versie: 19/3/ a. 23 Bewijs uit het ongerijmde Beschouw de (of een) optimale boom B die Q k omvat In deze boom is er een uniek pad P van a naar b (opspannend!) QkQk T Er bestaat een tak T’ op dit pad die tot de snede behoort Vervang tak T’ door T in de boom  nieuwe boom B’  B’ is niet slechter dan de optimale boom B en dus optimaal b P T’ a Stel dat er geen optimale boom bestaat die naast Q k ook T bevat ….  er bestaat er wel een (tegenstrijdigheid)

24 © W. Philips, Universiteit Gent, versie: 19/3/ a. 24 Herformulering Als je een deel Q k van een optimale boom kent en je de goedkoopste tak T kiest uit de snede bepaalt door de knopen van Q k  Dan is Q k +T een groter deel van een optimale boom

25 © W. Philips, Universiteit Gent, versie: 19/3/ a Constructie optimale boom Bosalgoritme (Kruskal): doet een bos groeien B 1  B 2   is een groeiend bos B 1 bestaat uit een goedkoopste tak en de uiteinden ervan Beide algoritmen zijn varianten van het algoritme voor het construeren van een (niet optimale) opspannende boom Ze kiezen de takken echter in een welbepaalde (i.p.v. een willekeurige) volgorde om een optimale boom te krijgen Boomalgoritme (Prim): doet 1 boom groeien B 1  B 2   is een groeiende boom B 1 bevat één willekeurig gekozen knoop, maar geen takken Principe: “kweek” een reeks bossen of bomen B 1  B 2   B

26 © W. Philips, Universiteit Gent, versie: 19/3/ a. 26 Prim-algoritme: principe Principe: beschouw de snede S geassocieerd aan het reeds gevonden deel van de optimale boom zoek in die snede de goedkoopste tak en breidt de boom ermee uit Kleine wijziging: we zoeken in de verzameling M van takken die aan de boom grenzen i.p.v. in de snede S in M bevinden zich alle snedetakken, maar soms ook koorden telkens we de goedkoopste tak kiezen in M gaan we na of die tak geen koorde vormt; indien ja dan verwijderen we de kandidaattak en kiezen opnieuw onder de overblijvende takken

27 © W. Philips, Universiteit Gent, versie: 19/3/ a. 27  Indien T en B k geen circuit vormen, dan is T een beste tak uit de snede bepaald door B k Voorbeeld: Prim Optimale kost: =30 We mogen hier stoppen als we alle knopen “bezocht” hebben! Waarom? Prim gebruikt het algoritme voor de constructie van een opspannende boom, maar kiest een welbepaalde (nog niet- onderzochte) tak T, n.l. een T die verbonden is met reeds gevonden takken  groeit 1 boom B k en die een zo laag mogelijke kost heeft 1 B 1 : boom bestaande uit 1 willekeurig gekozen knoop en geen takken  B k +T een groter deel van een optimale boom!

28 © W. Philips, Universiteit Gent, versie: 19/3/ a. 28 Prim-algoritme 2.a. Circuitdetectie (is T een snedetak?): Als i ( a ) =i ( b ) = 1 (circuit): verwijder T uit M en ga naar 2 Als i ( a ) = 1 en i ( b ) = 0 : verplaats T van M naar B; zet i ( b ) = 1 2.b. Voeg alle takken uit b die nog niet in M zitten toe aan M ; hou hierbij M gesorteerd 2. Kies de eerste tak T= ( a,b ) uit M (is deze met laagste kost!) 3. Ga naar 2 tenzij M leeg is Datastructuren: 1. Initialisatie: kies een startknoop q B leeg, i ( q ) = 1 en i ( a ) = 0 voor alle andere knopen M bevat alle takken naar q, gesorteerd volgens kost B houdt de gevonden takken bij van de groeiende boom M bevat alle nog niet onderzochte takken verbonden met de groeiende boom, gesorteerd volgens kost voor elke knoop a : i ( a ) = 1 als a tot de groeiende boom behoort

29 © W. Philips, Universiteit Gent, versie: 19/3/ a. 29 Opmerkingen Op het eerste zicht lijkt het Prim-algoritme niet erg meer op het algoritme voor een opspannende (i.p.v. optimale) boom Dit is gezichtsbedrog: door de volgorde waarin de takken worden gekozen vallen vele stappen van het originele algoritme weg ook de meeste lijsten worden hierdoor overbodig en de stopvoorwaarde wordt hierdoor ook eenvoudiger De belangrijkste nieuwigheden zijn het kiezen van de goedkoopste tak verbonden met de boom het bijhouden van een gesorteerde lijst M Het zojuist besproken algoritme is maar een basisversie; kleine aanpassingen zijn nodig in de praktijk (b.v. wat als M leeg is na stap 1)

30 Opspannende bomen Het algoritme van Kruskal

31 © W. Philips, Universiteit Gent, versie: 19/3/ a. 31 Kruskal start met de globaal goedkoopste tak Kruskal kiest steeds een (nog niet-onderzochte) tak T met de globaal laagst mogelijke kost; indien T geen circuit vormt dan behoort T tot een optimale boom (zie verder) Optimale kost: 30 Na samenvoeging Boom B 1 (Leeg!) Boom B 2 “Echte” Boom B 1 “Echte” Boom B 2 Stop als we n- 1=7 takken gevonden hebben! Waarom mag dat? Voorbeeld: Kruskal

32 © W. Philips, Universiteit Gent, versie: 19/3/ a. 32 Kruskal: geldigheid Kruskal kiest steeds een (nog niet-onderzochte) tak T=(a,b) met de globaal laagst mogelijke kost Indien T geen circuit vormt dan zijn er twee mogelijkheden: T is een uitbreiding van bepaalde boom Q k van het reeds gevonden bos of verbindt Q k met een andere boom Q l  T is een tak in de snede bepaald door Q k zoniet  T is een tak in de snede bepaald door b.v. a  In beide gevallen is T een tak in de snede bepaald door een deelboom van een optimale boom Bovendien is T een goedkoopste tak in die snede want de snede bevat enkel nog niet gekozen takken en T is de goedkoopste nog niet gekozen tak!

33 © W. Philips, Universiteit Gent, versie: 19/3/ a. 33 Kruskal-algoritme Dit is een gewijzigde versie van het algoritme voor een (niet- optimale) opspannende boom: 1. Initialisatie 1’. Sortering: sorteer de takken van G volgens stijgende kost 2. Kies de goedkoopste nog niet-onderzochte tak T=(a,b) 2.a. circuitdetectie 2.b. Aanpassing hulplijsten 2.c. Aanpassing knoopindices 3. Ga naar 2 tenzij alle takken onderzocht zijn of tot K leeg is en slechts één B j niet leeg is Complexiteit voor een graaf met m takken en n knopen Stap 1’: m log 2 m operaties;Stappen 2: cm+ n / 2 log 2 n  O(m log 2 m) als m>>n

34 © W. Philips, Universiteit Gent, versie: 19/3/ a. 34 Vergelijking Prim–Kruskal Prim kiest uit de nog niet onderzochte takken die verbonden zijn met de reeds gevonden boom deze met laagste kost Kruskal kiest uit alle nog niet onderzochte takken deze met laagste kost Voordelen Prim: geen initiële sortering nodig geen boomgroepeeroperaties nodig (er is maar 1 boom) Nadelen Prim: het “correct houden” van de lijst M van “kiesbare” takken is vrij complex: men moet M gesorteerd houden en ook opletten dat elke tak slechts eenmaal opgenomen wordt in M De optimale bomen van Prim en Kruskal zijn niet noodzakelijk gelijk, maar ze hebben wel dezelfde kost (zie voorbeeld)

35 © W. Philips, Universiteit Gent, versie: 19/3/ a. 35 Algemene opmerkingen We zochten naar een opspannende graaf met minimale kost en we veronderstelden alle kosten positief  de oplossing was een boom (omdat koorden nodeloze kosten veroorzaken) Als men ook negatieve kosten toelaat is de optimale oplossing niet noodzakelijk een boom (koorden kunnen nu kost drukken) de vorige algoritmen produceren in dit geval niet de gevraagde optimale graaf maar wel een oplossing voor een ander probleem: “zoek de goedkoopste opspannende boom” Verwante problemen: zoek de opspannende graaf of de opspannende boom met maximale kost oplossing: vervang alle gewichten w door -w en zoek de boom met minimale kost

36 © W. Philips, Universiteit Gent, versie: 19/3/ a. 36 Vragen 1. Voor het kostcriterium: kost van graaf=som van takkosten Wanneer is de minimum-kost graaf zeker een boom? Wanneer is de maximum-kost graaf zeker een boom? Beschouw telkens de gevallen waarin er enkel positieve, enkel negatieve of gemengde takkosten aanwezig zijn; 2. Pas Prim of Kruskal aan om een minimum-kost opspannende graaf op te sporen (ook al is die geen boom) 3. Geef een voorbeeld van een graaf met negatieve takkosten waarvoor de minimum-kost opspannende graaf geen boom is 4. Pas Prim aan zodat M steeds toch enkel snedetakken bevat

37 Zelfstudie: het Steineralgoritme

38 © W. Philips, Universiteit Gent, versie: 19/3/ a Het Steinerprobleem… Gebruik hierbij eventueel verbindingen via de andere knopen Probleem: verbindt een aantal knopen in een graaf met elkaar met minimale totale verbindingskost computer mogelijke verbinding router (optioneel) optimaal netwerk Steinerboom 2 5 Optimale opspannende boom

39 © W. Philips, Universiteit Gent, versie: 19/3/ a. 39 … Het Steiner-probleem Het Steiner-probleem is “NP-compleet”: de rekentijd van alle bekende algoritmen neemt zo snel toe (= sneller dan polynomiaal) met de probleemgrootte (b.v. aantal knopen en takken in de graaf) dat enkel kleine problemen kunnen worden opgelost Het Steiner-algoritme zoekt een goede maar niet noodzakelijk optimale oplossing voor het Steiner probleem en heeft een rekentijd die slechts polynomiaal toeneemt met de probleemgrootte zodat ook grotere problemen kunnen worden opgelost

40 © W. Philips, Universiteit Gent, versie: 19/3/ a. 40 Het Steiner-algoritme... Stap 1: vorm een nieuwe graaf G’ de knopen van G’ zijn de te verbinden knopen de graaf G’ is volledig geconnecteerd de takken ( a,b ) van G’ hebben als kost de kost van het “kortste” (goedkoopste) pad in G tussen a en b a b kortste pad tussen a en b Stap 2: zoek de optimale opspannende boom B ( G’ ) in G’ B(G’): optimale opspannende boom G’ kortste pad tussen a en c c

41 © W. Philips, Universiteit Gent, versie: 19/3/ a Het Steiner-algoritme... Stap 3: vervang elke tak ( a,b ) van de boom B ( G’ ) door het kortste pad tussen a en b in G B(G’) G’ G’’ Stap 4: zoek de optimale opspannende boom B ( G’’ ) in G’’ B ( G’’ ) =G’’ (toevallig!) de resulterende graaf G’’ is een subgraaf van G maar is in het algemeen geen boom Opmerking: in dit voorbeeld is stap 4 toevallig overbodig

42 © W. Philips, Universiteit Gent, versie: 19/3/ a Het Steiner-algoritme Stap 5: beschouw achtereenvolgens elke knoop a met graad 1 in B ( G’’ ), d.w.z. elke knoop waaruit maar 1 tak van B ( G’’ ) vertrekt indien a een optionele knoop is, verwijder de tak naar a De resulterende kost K is niet optimaal, maar er geldt met k het aantal knopen met graad 1 in de (onbekende) optimale steinerboom (en altijd k  2 ) Complexiteit: orde pm 2 om p van m knopen te verbinden B ( G’’ ) a eindresultaat

43 © W. Philips, Universiteit Gent, versie: 19/3/ a. 43 Interpretatie Stap 1 zoekt eigenlijk de goedkoopste paden om paren van knopen te verbinden Stap 2 elimineert redundante paden De overblijvende paden vormen in stap 3 samen een graaf die alle gevraagde knopen verbindt, maar die waarschijnlijk redelijk goedkoop is wegens de manier waarop hij geconstrueerd werd, maar die misschien geen boom is en dus overbodige takken bevat Stap 4 elimineert eventuele overbodige takken Stap 5 elimineert eventuele overbodige knopen en de eraan verbonden takken

44 © W. Philips, Universiteit Gent, versie: 19/3/ a. 44 Opmerking De slides die in de les niet aan bod kwamen zijn bedoeld voor zelfstudie, tenzij expliciet aangegeven wordt dat ze niet moeten gekend zijn

45 © W. Philips, Universiteit Gent, versie: 19/3/ a. 45 Literatuur Evans, blzn , Cook, blzn Peterson software: grafen tekenen, analyseren Prim en Kruskal (optimale bomen) Dijkstra (optimale paden)...

46 Uitbreidingen Niet te kennen

47 © W. Philips, Universiteit Gent, versie: 19/3/ a. 47 Veralgemeend opspanningsprobleem... Optimale chip-layout: een aantal modules moeten samen op een chip worden geplaatst; men heeft maar 1 laag om de verbindingen te realiseren; de modules die het meest communiceren moeten zo dicht mogelijk bij elkaar komen Verwachte trafiek Graafrepresentatie: de modules zijn de knopen van een volledig geconn. graaf; takken verbinden communicerende modules BA CD E Volledig geconnecteerde, niet-planaire graaf

48 © W. Philips, Universiteit Gent, versie: 19/3/ a Veralgemeend opspanningsprobleem Oplossing: zoek een planaire subgraaf die alle knopen omvat en waarvan de som van de takkosten maximaal is De duale graaf is de (topologie van) de gevraagde layout De planariteit garandeert een layout die met 1 laag verbindingen kan worden gerealiseerd layout planaire subgraaf B A C D E Mogelijke, maar niet optimale oplossing


Download ppt "Didactisch materiaal bij de cursus Academiejaar 2011-2012 Tel: 09/264.33.85 Fax: 09/264.42.95."

Verwante presentaties


Ads door Google