De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


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

1 Didactisch materiaal bij de cursus Academiejaar 2010-2011 philips@telin.UGent.be http://telin.UGent.be/~philips/optimalisatie/ Tel: 09/264.33.85 Fax: 09/264.42.95 Prof. dr. ir. W. Philips Optimalisatietechnieken Telecommunicatie en Informatieverwerking UNIVERSITEIT GENT

2 © W. Philips, Universiteit Gent, 1998-2011 versie: 28/3/2011 05d. 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 1998. 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 email. 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. PhilipsE-mail: philips@telin.UGent.be Department of Telecommunications and Information ProcessingFax: 32-9-264.42.95 University of GentTel: 32-9-264.33.85 St.-Pietersnieuwstraat 41, B9000 Gent, Belgium

3 Opspannende bomen Inleiding: te bestuderen problemen

4 © W. Philips, Universiteit Gent, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 7 mogelijke leidingen (met kost) 56 7 4 8 33 310 12 11 2 7 6 9 2. 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, 1998-2011 versie: 28/3/2011 05d. 8 optimale graaf = boom 56 7 4 8 33 310 12 11 2 7 6 9 … 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 -7 310 -56 -4 8 33 12 11 2 7 6 9

9 © W. Philips, Universiteit Gent, 1998-2011 versie: 28/3/2011 05d. 9 2 5 6 3. 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) 7 1 1 1 5 3 2 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 15...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, 1998-2011 versie: 28/3/2011 05d. 16...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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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, 1998-2011 versie: 28/3/2011 05d. 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)


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

Verwante presentaties


Ads door Google