INHOUD MODULE voor WISKUNDE D voor het vwo



Vergelijkbare documenten
8. Complexiteit van algoritmen:

Minimaal opspannende bomen

TW2020 Optimalisering

Uitwerking tentamen Analyse van Algoritmen, 29 januari

In dit gedeelte worden drie problemen genoemd die kunnen voorkomen in netwerken.

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Tentamen combinatorische optimalisatie Tijd:

TW2020 Optimalisering

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

TW2020 Optimalisering

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

TW2020 Optimalisering

1 Complexiteit. of benadering en snel

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Heuristieken en benaderingsalgoritmen. Algoritmiek

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

Hoofdstuk 17: Approximation Algorithms

Tiende college algoritmiek. 14 april Gretige algoritmen

Benaderingsalgoritmen

Tiende college algoritmiek. 26 april Gretige algoritmen

Elke gelijkenis met bestaande gebeurtenissen en/of personen berust op louter toeval.

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

WISKUNDE B -DAG = 2. maar en hoe nu verder? 29 november 2002

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

Twaalfde college complexiteit. 11 mei Overzicht, MST

Rekenen aan wortels Werkblad =

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

9. Strategieën en oplossingsmethoden

Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten

Hebzucht loont niet altijd

Examen Datastructuren en Algoritmen II

D-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?

Hoofdstuk 13: Integer Lineair Programmeren

(On)Doenlijke problemen

Fundamentele Informatica

1 Vervangingsstrategie auto

2WO12: Optimalisering in Netwerken

Uitwerkingen Sum of Us

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Activiteit 9. Modderstad Minimaal Opspannende Bomen. Samenvatting. Kerndoelen. Leeftijd. Vaardigheden. Materialen

l e x e voor alle e E

Tweede college complexiteit. 12 februari Wiskundige achtergrond

TW2020 Optimalisering

Twaalfde college algoritmiek. 12 mei Branch & Bound

Local search. Han Hoogeveen. 21 november, 2011

Minimum Spanning Tree

Lege polygonen in een graaf.

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

TW2020 Optimalisering

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Netwerkstroming. Algoritmiek

Local search. Han Hoogeveen CGN A februari, 2009

TW2020 Optimalisering

Elfde college algoritmiek. 29 april Algoritme van Dijkstra, Branch & Bound

vandaag is Annie twee jaar jonger dan Ben en Cees samen

inhoudsopgave januari 2005 handleiding algebra 2

TW2020 Optimalisering

Elfde college complexiteit. 23 april NP-volledigheid III

Minimum Opspannende Bomen. Algoritmiek

TU/e 2DD50: Wiskunde 2 (1)

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur

1. Orthogonale Hyperbolen

De statespace van Small World Networks

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde II op donderdag 6 juli 2017, uur.

Het leek ons wel een interessante opdracht, een uitdaging en een leuke aanvulling bij het hoofdstuk.

Examen Datastructuren en Algoritmen II

2 beslissen in netwerken. Wiskunde D. Keuzevak beslissen onderdeel: beslissen in netwerken. versie 4 vrijdag 16 november 2007

Toeristen stad Dominerende verzamelingen

Hoofdstuk!7!Kortste!paden!

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.

Hoofdstuk 2: Grafieken en formules

ALGORITMIEK. Keuzemodule Wiskunde B/D. Mark de Berg TU Eindhoven

Lesbrief GeoGebra. 1. Even kennismaken met GeoGebra (GG)

Examen Datastructuren en Algoritmen II

Netwerkstroming. Algoritmiek

Opgave 1 - Uitwerking

44 De stelling van Pythagoras

Combinatoriek groep 1 & 2: Recursie

Optimalisering en Complexiteit, College 2. Han Hoogeveen, Utrecht University

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Twaalfde college algoritmiek. 11/12 mei Branch & Bound

TW2020 Optimalisering

Vergelijkingen en hun oplossingen

Wortels met getallen en letters. 2 Voorbeeldenen met de (vierkants)wortel (Tweedemachts wortel)

Examen Discrete Wiskunde donderdag 12 april, 2018

Optimalisering/Besliskunde 1. College 1 6 september, 2012

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

TW2020 Optimalisering

In Katern 2 hebben we de volgende rekenregel bewezen, als onderdeel van rekenregel 4:

Begrenzing van het aantal iteraties in het max-flow algoritme

Optimalisering/Besliskunde 1. College 1 3 september, 2014

3. Structuren in de taal

Cabri-werkblad. Driehoeken, rechthoeken en vierkanten. 1. Eerst twee macro's

Puzzels en wiskunde. Inleiding. Algoritme. Sudoku. 22 Puzzels en wiskunde

3. Elke lijn van een graaf draagt twee bij tot de som van alle graden.

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Transcriptie:

INHOUD MODULE voor WISKUNDE D voor het vwo DISCRETE WISKUNDE Hoofdstuk 1 Minimaal opspannende bomen blz 2 Hoofdstuk 2 Kortste pad (nog toe te voegen) blz 14 Hoofdstuk 3 TSP-probleem blz 15 3.1 Inleiding blz 15 3.2 Heuristieken blz 25 3.3 Nieuwe ontwikkelingen & toepassingen (applets) blz 34 1

HOOFDSTUK 1 Minimaal opspannende bomen Een aantal boorplatforms moet onderling en met de kust A worden verbonden via een zo goedkoop mogelijk pijpleidingennet. De kosten (in kosteneenheden) van elke mogelijke pijpleiding zijn bekend, zoals weergegeven in figuur 1. Figuur 1: kosten van mogelijke pijpleidingen We gaan nu bekijken hoe hoog de kosten zijn van verschillende leidingennetten. Deze gaan we optimaliseren, zodat er netten ontstaan die met een minimaal aantal leidingen, de boorplatforms onderling en met de kust verbinden. Bovendien moeten de kosten van die leidingen ook minimaal zijn. In dit geval is het minimale aantal leidingen 6 (bedenk zelf waarom!). In de figuren 2 en 3 zijn twee mogelijke leidingennetten getekend met dat minimale aantal verbindingen, waarbij alle platforms onderling en met de kust verbonden zijn. Figuur 2 Figuur 3 De kosten bedragen respectievelijk 41 en 32 kosteneenheden. De vraag is of er misschien een toegestaan leidingennet bestaat met nog minder kosten. Oefening 1. Zoek in de hierboven beschreven situatie een mogelijk leidingennet op met een waarde van 24 kosteneenheden. 2. Probeer na te gaan of er een mogelijke leidingennet is met een waarde van minder dan 24 kosteenheden. In deze oefening hebben we een leidingennet gevonden met minimale kosten. Dit netwerk noemen we optimaal. 2

Een paar begrippen Voordat we twee efficiënte oplossingsmethoden van het probleem van de boorplatforms zullen bespreken zijn een paar begrippen van belang. We bekijken in dit gedeelte grafen (netwerken) die samenhangend zijn, dat wil zeggen dat ieder punt verbonden is met elk ander punt via de verbindingslijnen en punten van de graaf. Figuur 4: onsamenhangende graaf Figuur 5: samenhangende graaf Als een graaf een of meer cykels heeft dan wil dit zeggen dat je rondjes kunt lopen in de graaf. Definitie 1: Een pad tussen twee punten is een verzameling van verschillende verbindingslijnen die deze twee punten met elkaar verbinden. Definitie 2: Een pad.dat begint en eindigt in hetzelfde punt wordt een cykel genoemd. Definitie 3: Een opspannende boom van een samenhangende graaf is een deelgraaf die alle punten van de graaf bevat en een boom is. Definitie 4: Een boom is een samenhangende graaf die geen cykels bevat. Van onderstaande graaf (figuur 6) is een aantal opspannende bomen te maken. In de figuren 7 en 8 zie je er twee. Figuur 6: een voorbeeld 3

Figuur 7: een opspannende boom Figuur 8: een opspannende boom Oefening Teken van onderstaande graaf drie verschillende opspannende bomen. Zoals je gezien hebt in het voorbeeld van de boorplatforms wordt er aan verbindingslijnen soms een waarde gegeven. In het leidingennet van de platforms werden zo de kosten aangegeven. Maar zo kan ook het aantal kilometers tussen twee plaatsen, of de tijd die het kost om van de ene plaats naar de ander plaats te gaan genoteerd worden. In plaats van waarde wordt ook wel het woord gewicht gebruikt. Een graaf voorzien van gewichten wordt een gewogen graaf genoemd of een netwerk. De verbindingslijnen worden ook wel takken of wegen genoemd. Net als bij het boorplatformprobleem zijn we geïnteresseerd in het totale gewicht van een opspannende boom van een netwerk. Denk maar aan het voorbeeld uit de inleiding. 4

Oefening Gegeven is de gewogen graaf hieronder. 1. Teken twee opspannende bomen, één met totaal gewicht 16 en één met totaal gewicht 26. 2. Kun je een opspannende boom tekenen met een totaal gewicht kleiner dan 16? Vaak is het vinden van een opspannende boom waarvan het totale gewicht minimaal (zo klein mogelijk) is van belang, bijvoorbeeld om een zo goedkoop mogelijk netwerk aan te leggen. Een dergelijke boom heet een minimaal opspannende boom. De netwerken die we tot nu toe bekeken hebben, zijn redelijk eenvoudig. Een minimaal opspannende boom is met een beetje geluk nog wel te vinden. Je kunt je voorstellen dat voor ingewikkelde situaties het handig zou kunnen zijn om een soort recept ter beschikking te hebben. Er zijn diverse algoritmes (een algoritme is een soort recept van hoe je iets moet doen) die ons in staat stellen minimaal opspannende bomen te vinden. We bespreken het algoritme van Kruskal en het algoritme van Prim. Het algoritme van Kruskal Hoe dit algoritme werkt, zullen we aan de hand van de graaf uit de laatste oefening bekijken, (zie figuur 9). Stap 1 Zoek een verbindingslijn met het kleinste gewicht. Dit is in dit voorbeeld de lijn van A naar B (zie figuur 10a) Figuur 9 5

Stap 2 Voeg nu toe een lijn met het laagste gewicht zonder dat er een cykel ontstaat. Dit is hier bijvoorbeeld de lijn van E naar D (zie figuur 10b) Stap 3 Herhaal stap 2 totdat geen nieuwe lijn meer gekozen kan worden. Zie de figuren 10c en 10d. Figuur 10a Figuur 10b Figuur 10c Deze minimaal opspannende boom heeft een waarde (gewicht) van 13. Figuur 10d Het algoritme van Prim Ook nu gebruiken we weer de graaf uit de laatste oefening om uit te leggen hoe dit algoritme werkt (zie figuur 11). Stap 1 Kies een willekeurig punt van de graaf, bijvoorbeeld C. Neem nu een met dit punt verbonden lijn waarvan het gewicht zo laag mogelijk is. Dit is de lijn van C naar E (zie figuur 12a) Stap 2 Zoek onder alle verbindingslijnen tussen een niet verbonden punt en een inmiddels wel verbonden punt, de lijn met het laagste gewicht. Dit is bijvoorbeeld de lijn van A naar E (zie figuur 12b) Figuur 11 Stap 3 Herhaal stap 2 totdat een opspannende boom is ontstaan. Zie de figuren 12c en 12d. 6

Figuur 12a Figuur 12b Figuur 12c Figuur 12d Extra: nog een algoritme Bij dit algoritme verwijder je steeds de langste tak, maar zorg er wel voor dat de graaf samenhangend blijft. Oefening Pas dit algoritme toe op de graaf in figuur 11. Dit derde algoritme is overigens ook toe te passen bij een gerichte graaf, waarbij de verbindingslijnen niet alleen een gewicht hebben, maar ook een richting, aangegeven met een pijl. De algoritmes van Prim en Kruskal kunnen alleen toegepast worden op een ongerichte graaf (een graaf waarbij de verbindingslijnen geen richting hebben). Beschouw de volgende gerichte graaf. (figuur 13) De minimaal opspannende boom is in figuur 14 weergegeven (controleer dit!). 7

Figuur 13: een gerichte graaf Figuur 14: de bijbehorende minimaal opspannende boom Het algoritme van Prim met tabellen Tot nu toe hebben we voorbeelden gezien van eenvoudige netwerken, maar een netwerk kan ook uit erg veel wegen bestaan. Ga je een dergelijk netwerk tekenen dan lopen er vaak erg veel wegen door elkaar heen. De tekening is dan erg onoverzichtelijk. In het volgende voorbeeld zie je hoe je met behulp van tabellen een minimaal opspannende boom kunt bepalen. We gebruiken het algoritme van Prim. De verbindingen zetten we in een tabel. 8

A B C D E A - 6 4 9 2 B 6-5 9 6 C 4 5-11 4 D 9 9 11-7 E 2 6 4 7 - Tabel 1: een voorbeeld Je kunt uit de tabel aflezen, dat er bijvoorbeeld tussen punt D en E een verbinding is met een gewicht van 7 eenheden. Het algoritme van Prim pas je in een tabel als volgt toe: Stap 1 Neem een willekeurig beginpunt bijvoorbeeld punt B. Teken punt B, het begin van de minimaal opspannende boom. Stap 2 Verwijder rij B uit de tabel en zoek de kleinste waarde op in kolom B. (zie de tabellen 2 en 3) A B C D E A - 6 4 9 2 B 6-5 9 6 C 4 5-11 4 D 9 9 11-7 E 2 6 4 7 - A B C D E A - 6 4 9 2 C 4 5-11 4 D 9 9 11-7 E 2 6 4 7 - Tabel 2: Verwijder rij B Tabel 3: Zoek de kleinste waarde in kolom B Stap 3 De kleinste waarde in kolom B is 5. Voeg punt C toe aan de boom en teken BC. Stap 4 Verwijder rij C uit de tabel. Zoek de kleinste waarde op die in kolom B of in kolom C voorkomt. (zie de tabellen 4 en 5) A B C D E A - 6 4 9 2 C 4 5-11 4 D 9 9 11-7 E 2 6 4 7 - Tabel 4: Verwijder rij C 9

A B C D E A - 6 4 9 2 D 9 9 11-7 E 2 6 4 7 - Tabel 5: Zoek de kleinste waarde in kolom B of C Stap 5 De kleinste waarde is 4 en komt twee keer voor. Kies een van de twee mogelijkheden, bijvoorbeeld punt A. Voeg punt A toe aan de boom en teken AC. Stap 6 Verwijder rij A. Zoek de kleinste waarde die voorkomt in een van de kolommen A, B of C. A B C D E A - 6 4 9 2 D 9 9 11-7 E 2 6 4 7 - A B C D E D 9 9 11-7 E 2 6 4 7 - Tabel 6: Verwijder rij A Tabel 7: Zoek de kleinste waarde in kolom A,B of C Stap 7 De kleinste waarde is 2. Voeg punt E toe en teken AE. Haal rij E uit de tabel. Stap 8 De kleinste waarde is 7 en zit in kolom E. Voeg ED toe aan de boom. A B C D E D 9 9 11-7 E 2 6 4 7 - A B C D E D 9 9 11-7 Tabel 8: Verwijder rij E Tabel 9: Zoek de kleinste waarde in kolom A,B,C of E De onderstaande opspannende boom is het resultaat. Figuur 11: de gevonden minimaal opspannende boom 10

Opgaven Voor het oplossen van de opgaven mag het algoritme van Prim of Kruskal worden gebruikt. 1 Bepaal van de onderstaande graaf de lengte van de minimaal opspannende boom. 2 Bepaal van onderstaande graaf de lengte van de minimaal opspannende boom. 3 Bepaal van onderstaande graaf de lengte van de minimaal opspannende boom. 11

4 Bepaal van beide grafen de lengte van de minimaal opspannende boom. a b 5 Een aantal boorplatforms moet onderling en met de kust worden verbonden via een zo goedkoop mogelijk pijpleidingennet. De kosten (in kosteneenheden) van elke mogelijke leiding zijn bekend. Bepaal een optimaal leidingennet met minimale kosten. 12

6 In één van de zes wijken (A, B, C, D, E en F) van een stad moet een dokterspost komen. In onderstaande tabel staan tussen haakjes steeds twee getallen. Het eerste getal is de afstand (in km) tussen de centra van twee wijken. Het tweede getal geeft de gemiddelde tijd (in minuten) aan die nodig is om van het centrum van de ene wijk naar het centrum van de andere wijk te komen. Een liggend streepje geeft aan dat er geen rechtstreekse weg is tussen de twee wijken. B C D E F A (7,1;3,5) - - (7,3;3,3) (6,8;2,9) B (6,6;3,3) (6,5;2,8) (5,8;2,7) - C (6,1;2,9) (6,2;3,6) - D (7,0;3,5) - E (6,5;3,1) Er zijn twee gegevens waar naar gekeken kan worden, namelijk de afstand en de tijd. In de wijk die het meest centraal gelegen is, komt de dokterspost. a Bepaal door een minimaal opspannende boom te tekenen, de meest centrale wijk(en) wanneer men let op afstand. b Bepaal door een minimaal opspannende boom te tekenen, de meest centrale wijk(en) wanneer men let op tijd. 7 EXTRA: Bepaal van de onderstaande gerichte grafen de minimaal opspannende boom. a b 13

8 In het netwerk hiernaast zijn afstanden in kilometers aangegeven. Bepaal de lengte van de minimaal opspannende boom van dit netwerk. 9 In de volgende tabel zie je de afstanden (in mijlen) tussen zes plaatsen in Ierland. a a. Bepaal een minimaal opspannende boom tussen deze plaatsen en bereken de bijbehorende lengte. b Bepaal een maximaal opspannende boom tussen deze plaatsen en bereken de bijbehorende lengte. Athlone Dublin Galway Limerick Sligo Wexford Athlone - 78 56 73 71 114 Dublin 78-132 121 135 96 Galway 56 132-64 85 154 Limerick 73 121 64-144 116 Sligo 71 135 85 144-185 Wexford 114 96 154 116 185 - HOOFDSTUK 2 KORTSTE PAD NOG TOE TE VOEGEN Zodra dit onderdeel af (wordt gemaakt door medewerkers van de Universiteit Delft), zal de rest aangepast worden aan de eerste twee hoofdstukken, maar globaal ziet het er als volgt uit: 14

HOOFDSTUK 3 HET HANDELSREIZIGERSPROBLEEM (Traveling Salesman Problem) Paragraaf 1 - Inleiding TSP-probleemstelling - Verschil aangeven met algoritmen van Kruskal & Dijkstra - Voorbeelden; - Uitgangspunten; - Moeilijkheden; - Eigen heuristiek ontwerpen (moet gedaan zijn voordat gekeken wordt naar andere heuristieken). Eventueel eigen heuristiek (laten) programmeren. Geef voorbeelden waarmee eigen heuristiek goed/slecht werkt INLEIDING 1. Met de Ier William Rowan Hamilton (1805-1865) & het spel Reis om de wereld (1856) is het TSPgebeuren gestart. Het begin van het meer serieuze onderzoek naar het TSP-probleem dateert uit de jaren dertig van de vorige eeuw en er vindt nog steeds onderzoek naar plaats. 2. Probleembeschrijving: Vind de kortste route tussen punten (plaatsen), waarbij alle punten precies 1 keer moeten worden bezocht en teruggekeerd moet worden naar het vertrekpunt. 3. Dankzij sterk verbeterde wiskundetechnieken en sterk verbeterde computerapparatuur is men nu in staat het TSP-probleem voor duizenden steden op te lossen. Geef hiervan een ontwikkeling in de tijd. Zie onder andere hiervoor: http://www.tsp.gatech.edu/index.html. 4. Bekijk eens tsp kunst en geef een verklaring hoe dit soort tekeningen tot stand komt. Zie: http://www.oberlin.edu/math/faculty/bosch/tspart-page.html of google op tsp art. VERSCHIL MET KRUSKAL & DIJKSTRA Nog te doen. VOORBEELDEN a) Handelsreiziger woont in NY en moet alle plaatsen in de V.S. met tenminste 500 inwoners via de kortst mogelijke weg bezoeken. Er zijn 13.509 steden. Oplossing is bekend. Zie hieronder: Maar wat klopt eigenlijk niet aan het plaatje? (of aan de vraagstelling?) 15

b) Routes van bezorgfirma s (van o.a. TNT). c) Gaatjes ponsen in rechthoekig stuk materiaal. Zie hieronder. 16

d) Hieronder zie je de weg die een paard in het schaakspel aflegt, waarbij alle 64 velden bezocht worden en weer teruggekeerd wordt op het beginveld. Het zijn niet dezelfde route s! Vraag: Hoe zou je dit paardenprobleem kunnen formuleren binnen het handelsreizigersprobleem? Wat zijn dan de wegen en de gewichten die daar aan hangen? UITGANGSPUNTEN Tenzij anders wordt aangegeven, wordt bij ons TSP-probleem uitgegaan van a) het feit dat alle onderlinge afstanden tussen punten bekend zijn, dwz er is sprake van een volledige graaf. Twee vragen hierbij: 1. Bereken het aantal lijnen in een volledige graaf met n punten. 2. In de meeste gevallen zijn niet alle afstanden gegeven, hoe kun je er dan toch een volledige graaf van maken, zodanig dat deze toegevoegde afstanden later niet in je oplossing voor kunnen komen? b) een symmetrische graaf; geef een omschrijving hiervan c) het feit dat de afstanden voldoen aan de driehoeksongelijkheid; geef een omschrijving hiervan. A number of handbooks for traveling salesman appeared in the late 1800s and early 1900s, many containing hints on how to plan tours. The image below in the title page of a book written by Herbert N. Cason that was published in 1927 by the B. C. Forbes Publishing Company. 17

In wiskundige taal, dus formeel, kan het TSP-probleem als volgt worden beschreven: Definieer de variabele x i,j (met i,j = 1,,n) als: x i,j = 1 als de weg van i naar j wordt opgenomen in de route & x i,j = 0 anders en c i,j is het gewicht van weg x i,j. Minimaliseer nu n n c i, j xi, j i= 1 j= 1 onder de voorwaarden: n i= 1 n j= 1 x 1 met j = 1,,n i, j = x i j i S j S, = 1 met i = 1,,n x, j S 1 i S { 1,2,..., n}, S {}, S {1,2,..., n} Beschrijf de betekenis van elke bovenstaande wiskundige regel in je eigen woorden. Bereken het totale aantal beperkende voorwaarden in bovenstaand model. MOEILIJKHEDEN Het TSP-probleem is makkelijk te omschrijven. Iedereen kan het bevatten. Alleen is dit probleem heel lastig optimaal op te lossen. Het probleem is natuurlijk het vinden van die kortste route: oftewel, probeer een algoritme (rekenregel) te vinden waarmee je, gegeven een zeker TSP-probleem, binnen afzienbare tijd een kortste route kunt vinden of een route kunt vinden die in de buurt van die kortste route komt. Je eerste opwelling is natuurlijk met brute (computer)kracht alle mogelijke routes berekenen en vervolgens daaruit de kortste route bepalen. Om in te zien dat dit niet zo n slimme manier is, moet je een tabel maken met 3 kolommen, in de 1 e kolom het # (aantal) plaatsen, in de 2 e kolom het # mogelijkheden de plaatsen te ordenen (dwz het aantal routes) en in de 3 e kolom de tijd die het kost al die route s te berekenen. (seconden, dagen, jaren, eeuwen). Hierbij heb je een formule nodig om het aantal verschillende routes te berekenen bij n plaatsen. Leid eerst deze formule af. Ga er van uit dat er 1 miljard routes per seconde berekend kunnen worden. Neem voor het aantal plaatsen n=5, 10, 20, 25, 50, 100. Trek daaruit je conclusie. 18

Inleiding. De complexiteit van een algoritme kunnen we beschrijven door te kijken (in het slechtste geval) naar het aantal elementaire handelingen en/of berekeningen (optellen, aftrekken, delen, vermenigvuldigen en vergelijken) dat nodig is om van input naar gewenste output te komen. Daarbij gaat het niet om het precieze aantal handelingen maar om de orde van grootte van het aantal handelingen. Die orde van grootte geven we aan met de hoofdletter O. We spreken daarom ook wel van de grote-o-notatie. Wanneer we van een probleem zeggen dat het in de klasse O(n) ligt dan betekent dat, dat er een lineair verband is tussen de omvang van het probleem en de hoeveelheid tijd die daar voor nodig is. We onderscheiden verschillende klassen van problemen al naar gelang de relatie tussen omvang en tijd: O(1) : tijd is onafhankelijk van de probleemgrootte (bijv. het opvragen van een element uit een matrix O(log n) : logaritmisch O(n) : lineair (bijv. het opzoeken van een element in een ongesorteerde rij) O(n 2 ) : kwadratisch (i.h.a. polynomiaal als de exponent 2 en geheel) O(2 n ) : exponentieel Problemen die tot de eerste vier klassen behoren noemen we (gemakshalve) gemakkelijk. Voor dergelijke problemen zijn redelijke algoritmen ( die oplossingen binnen relatief korte tijd genereren) mogelijk. Zodra de relatie tussen omvang van het probleem en de benodigde 19

rekentijd niet meer in de bovenstaande eerste 4 klassen vallen, noemen we het probleem moeilijk. De complexiteitstheorie behandelt vragen over de efficiëntie van algoritmen. Gegeven een probleem met parameter n. Als n groot wordt, hoe gedraagt het algoritme zich dan? Groeit de rekentijd als een polynoom of groeit de rekentijd nog sneller? In deze theorie probeert men problemen te classificeren als polynomiaal oplosbaar of vermoedelijk niet polynomiaal oplosbaar. Een probleem dat door een polynomiaal algoritme gegarandeerd optimaal wordt opgelost, wordt een polynomiaal oplosbaar probleem genoemd. Helaas is niet ieder probleem polynomiaal oplosbaar; er bestaan veel optimaliseringsproblemen waarvoor geen polynomiale algoritmen bekend zijn. Als van een probleem niet bekend is dat het polynomiaal oplosbaar is, moet gebruik gemaakt worden van heuristieken om een zo goed mogelijke oplossing te vinden. Beschrijf als voorbeeld de toename van het aantal handelingen bij de TOREN VAN HANOI als het aantal schijven verdubbelt. (Bereken dus eerst het aantal handelingen dat nodig is om de n schijven te verplaatsen onder de geldende voorwaarden). In het algemeen geldt dat het asymptotisch gedrag (hoe snel verandert de rekentijd met de grootte van het probleem) bepaalt of een probleem uitvoerbaar is of niet. NP-problemen In het algemeen geldt dat de tijd die nodig is om een probleem op te lossen een functie is van de grootte n van het probleem. Bij een probleem dat in polynomiale tijd uitvoerbaar is, een zogenaamd P-probleem, hoort een functie waarbij n (grootte) het grondtal is, b.v. f(n) = n of f(n) = n + n 2. (orde O(n 2 )) Bij een probleem waarvan het best bekende oplossingsalgoritme een oplossing genereert die niet in polynomiale tijd te berekenen is (een NP moeilijk - probleem ), hoort een functie waarbij n in de macht staat of met faculteiten geschreven wordt, b.v. f(n) = n + 4 2n of f(n) = (n 3 n)! Het TSP-probleem behoort tot de klasse van de zogenaamde NP - moeilijke - problemen (Niet-deterministische Polynomiale problemen). Momenteel is voor geen enkel NP- moeilijk - probleem een algoritme bekend met een polynomiale uitvoeringstijd op een computer. Het zijn dus moeilijke onhandelbare problemen die echter wel veel voorkomen. Een van de kortste vermoedens in de wiskunde is de veronderstelling P = NP, dwz zijn alle problemen uit de NP klasse te herleiden tot problemen uit de P klasse? Men vermoedt dat deze uitspraak niet waar is, maar noch de juistheid noch de weerlegging van deze veronderstelling is tot op dit moment bewezen. Er staat 1 miljoen dollar voor je klaar om een oplossing voor dit probleem te geven. Voorbeelden van NP moeilijke - problemen zijn: Het berekenen van de beste zet bij schaken als je n zetten vooruit denkt; Een lesrooster maken; Het bepalen van de kortste route, als je een aantal plaatsen moet bezoeken. Het ontbinden van een getal in zijn priemfactoren. 20

De oplossing Toch willen we voor de NP moeilijke - problemen een oplossing hebben. Dit kan, maar dan moeten we met iets minder tevreden zijn. We moeten dan tevreden zijn met een goede oplossing en niet met de beste oplossing. In veel gevallen kan er namelijk een vuistregel, of een andere truc bedacht worden die een goed antwoord geeft. We spreken in zo'n geval van een heuristische in plaats van een exacte oplossingsmethode. Bij schaken wordt maar een aantal zetten vooruit bedacht en worden standaardregels gebruikt. Bij lesroosters wordt een rooster gemaakt waar iedereen mee kan leven, ondanks dat het dan nog tussenuren en lange dagen bevat. Bij het vinden van de kortste weg, waarbij een aantal plaatsen bezocht moet worden, worden de eisen iets verzwakt en wordt gezocht naar een acceptabele korte weg. Wel is het altijd mogelijk zo n heuristische oplossing binnen polynomiale tijd te controleren op correctheid. Terug nu naar het TSP-probleem. Er zijn methoden ontwikkeld die binnen redelijke tijd vrij grote handelsreizigersproblemen (bijna) optimaal kunnen oplossen. Tot nu toe heeft niemand een algoritme gevonden dat in het algemeen (dwz bij elk willekeurig probleem) altijd de optimale oplossing vindt. Dit betekent dat er keuzes gemaakt moeten worden en dat je binnen de tijd die je krijgt een zo goed mogelijke oplossing moet zien te vinden. Een heuristiek is een methode die een redelijk goede oplossing (een benadering van de exacte oplossing) vindt binnen een aanvaardbare hoeveelheid rekentijd. Bij het ontwerpen van een heuristiek moet altijd een afweging gemaakt worden tussen de rekentijd en de kwaliteit van de berekende oplossing. Je weet van te voren dat je heuristiek altijd een oplossing vindt die op zijn hoogst gelijk is aan de minimale oplossing, maar meestal boven deze minimale waarde zal liggen. De kunst is dus een toelaatbare oplossing te vinden met een zo laag mogelijke bovengrens. Eigenschappen van een goede heuristiek zijn: Een goede oplossing vinden in een geringe rekentijd (dus een polynomiaal algoritme) Voldoende robuust zijn, d.w.z. een kleine verandering in de gegevens heeft niet al te grote gevolgen voor de al gevonden oplossing. Opgave 1 21

Opgave 2 Een TSP-probleem wordt vaak in de vorm van een n bij n afstandenmatrix gegeven. Zie hieronder. Merk op dat deze matrix symmetrisch is. TSP: Bereken in beide gevallen de kortste route. I II 1 2 3 4 5 6 7 1-2 3 2 5 5 3 2-1 1 4 3 1 3-2 4 2 2 4-3 2 2 5-5 3 6-3 7-1 2 3 4 5 6 7 8 1-1 2 4 3 4 1 7 2-2 3 5 6 2 5 3-2 7 7 4 7 4-2 1 4 8 5-4 8 12 6-7 6 7-9 8 - Opgave 3 22

Opgave 4 Met behulp van een machine kunnen verschillende producten worden gemaakt. In onderstaande tabel is de omschakeltijd gegeven die nodig is om met behulp van de machine om te schakelen van de productie van het ene naar het andere product. Uit de tabel kan bijvoorbeeld worden opgemaakt dat het 10 minuten duurt om de machine om te schakelen van product A naar product B. Wat is de minimale omschakeltijd die nodig is om alle producten te maken en terug te keren tot de beginsituatie? A B C D E A 0 10 15 16 20 B 5 0 8 12 20 C 12 13 0 11 12 D 9 11 7 0 11 E 15 18 3 12 0 Opgave 5 Einde Nee Als het gewicht van twee takken tussen twee knopen niet gelijk is, verwijder dan de tak met het grootste gewicht. Kies een willekeurige knoop k0 en zet P=(k0) Kies een knoop k1 en voeg die aan het pad toe (voor of na knoop k0) en hernummer P=(k0,k1) Is er nog een knoop die niet in het pad P(k0..kt) zit? Ja Neem een knoop k die niet in het pad P zit Begin Bepaal voor welke ki er een tak (k,ki) en (k(i-1), k) is en voeg k toe aan het pad P Nee Is (k,k0) of (kt,k) een tak Ja Voeg k aan het begin of einde van P toe. Van welk probleem wordt hierboven een algoritme beschreven? Opgave 6 In de volgende opgave is een tramnet gegeven, waarin van punt A naar punt B alle tramstations precies 1 keer gepasseerd moeten worden en station Y eerder aan de beurt moet komen dan station X. Alvorens aan de klus te beginnen en te kijken hoever je kunt komen, is het misschien handig eerst een strategie op te zetten om dit probleem op te lossen. Hiermee zou je je veel tijd kunnen besparen. Succes ermee. 23

24

Opgave 7 Ontwerp een eigen heuristiek voor je probleem. Deze eigen heuristiek moet ontworpen zijn voordat je aan de standaardheuristieken begint. Ga ook na in welke gevallen je heuristiek goed werkt en in welke gevallen je heuristiek slecht werkt. Mogelijke problemen kunnen zijn: - kortste route vanuit je hotel naar 10 bezienswaardigheden in een grote stad - kortste route vanuit je provinciehoofdstad naar de andere provinciehoofdsteden - kortste fietsroute vanuit je woonplaats naar 10 andere plaatsen in de buurt - kortste route vanuit de ingang naar 10 attracties op het attractiepark - kortste route vanuit Amsterdam naar 10 Europese hoofdsteden Paragraaf 2 Nieuwe heuristieken: heuristiek gebaseerd op dubbele Kruskal, gevolgd door uitsluitingen: Bekijk het volgende voorbeeld en beschrijf aan de hand van dit voorbeeld de heuristiek gebaseerd op Kruskal. Wat kun je nu zeggen over de onder- en bovengrens van het TSPprobleem op deze manier? minimaal opspannende boom verdubbel de minimaal opspannende boom 25

Er wordt van de volgende route uitgegaan: 3212456765423. Geef bij elke stap de nieuwe route met zijn lengte aan. NB: Bij deze heuristiek wordt afgeweken van een belangrijk uitgangsprobleem van ons TSPprobleem. Welk uitgangspunt? Wat zou een voordeel kunnen zijn van deze heuristiek? naaste buur heuristiek 1. kies een willekeurig beginpunt 2. kies als volgend punt het dichtst bijzijnde nog niet verbonden punt 3. als alle punten verbonden zijn, ga dan terug naar het beginpunt Het is in het algemeen een onbevredigende heuristiek, omdat - kortzichtigheden in het begin voor lange laatste verbindingen kunnen zorgen - de robuustheid van dit algoritme in het geding komt, vanwege het feit dat de lengte van een route heel erg van het beginpunt kan afhangen. 26

Opgave 8 Pas dubbele Kruskal en naaste buur heuristiek toe op de volgende opgave. Kun je zelf een kortere rondrit vinden? a) b) De zijden AE, AC, BC, BE en CF zijn vanwege de overzichtelijkheid niet getekend en hebben alle de lengte 10. 27

Invoegingsheuristieken: maak een route door aan een gedeeltelijke route, waarin nog niet alle punten in zitten, steeds een punt toe te voegen. Twee typen hiervan zijn: Grootste hoek heuristiek: 1. construeer eerst de kleinste convexe opspanning van punten, zodanig dat elk punt op of binnen de opspanning ligt. (zoek uit wat convex betekent!) En waarom wordt gekozen voor een convexe opspanning? 2. voeg dat punt toe, waarbij de hoek tussen 2 dichtbij aanliggende punten zo groot mogelijk is. Waarom niet de kleinste hoek? 3. stop als alle punten in de route zitten. Kleinste invoegings heuristiek: 1. construeer eerst de kleinste convexe opspanning van punten, zodanig dat elk punt op of binnen de opspanning ligt. 2. voeg dat punt toe waarvoor de kleinste afstand tot de voorgaande subtour het grootst is, waardoor de grote lijnen van de rondreis al vastgelegd worden. 3. stop als alle punten in de route zitten. Een variant op deze laatste heuristiek is de volgende: 1. kies een willekeurig beginpunt 2. kies vervolgens het dichtstbijzijnde punt dat bij een van de gekozen punten ligt en vervang de al gekozen weg door 2 nieuwe verbindingen die het nieuwe punt in de route opnemen. 3. stop als alle punten in de route zitten. Opgave 9 Pas twee van de vier bovenstaande heuristieken toe op je eigen probleem. Verwisselingsalgoritmen Deze heuristieken gaan uit van een al bestaande volledige route (die gevonden kan zijn met de naaste buur heurstiek) en proberen die stapsgewijs te verbeteren. Dit gaat meestal via het verwisselen van verbindingen. 28

De 2-opt(ing) heuristiek. (De 2-keuze heuristiek.) Deze heuristiek verwijdert uit een gegeven rondreis twee verbindingen en koppelt de overgebleven gedeelten tot een nieuwe rondreis door twee nieuwe verbindingen aan te brengen. Uiteraard is het doel op deze manier een kortere rondreis te construeren. Merk hierbij op dat er al een rondreis moet zijn en dat deze heuristiek vooral gebruikt wordt om rondreizen te verbeteren. Zie onderstaand figuur. Slechts op 1 manier kan met 2 andere verbindingen de rondreis hersteld worden. Merk daarbij op dat op 1 stuk de richting wordt omgedraaid. Zie het rechtergedeelte van bovenstaand figuur. Uit de aanname dat de afstanden tussen de punten symmetrisch zijn, volgt dat de lengte van de nieuwe rondreis kleiner is dan die van de oude rondreis als: t 2 t 3 + t 4 t 1 < t 4 t 3 + t 2 t 1 Deze heuristiek werkt in grote lijnen als volgt : 1. maak een willekeurige rondreis 2. kies 2 niet-opeenvolgende verbindingen (waarom niet-opeenvolgend?) in de huidige rondreis; hoeveel mogelijkheden zijn er om deze 2 verbindingen te kiezen? Bereken vervolgens het aantal modificaties (wat zijn modificaties?) dat uitgevoerd moet worden in de volgende stappen. 3. vervang deze 2 verbindingen door 2 andere verbindingen, zoals in bovenstaand figuur, onder de voorwaarde dat de som van deze 2 nieuwe verbindingen korter is als in de oude situatie. 4. herhaal stap 3 net zo lang tot voor alle paren verbindingen geldt dat verwisseling geen verbetering meer oplevert. De route is dan 2-optimaal. Maak nu een tekening met de punten t 1 tot en met t 6 waarin de 3-opt heuristiek duidelijk wordt gemaakt. Dit is een uitbreiding van de 2-opt heuristiek, waarbij 3 verbindingen (waarvan elk 2-tal niet opeenvolgend is) worden vervangen. Geef daarbij ook de 29

noodzakelijke voorwaarde voor het wijzigen van de verbindingen. In de praktijk zijn oplossingen gevonden met de 3-keuze heuristiek beter dan die gevonden met de 2-keuze heuristiek. Daarentegen worden oplossingen gevonden met de 4-keuze heuristiek nauwelijks verbeterd. Verreweg de beste verwisselingsheuristiek is die van Lin en Kernighan (1973), waarbij in elke verwisselingsstap de heuristiek niet een vast aantal maar een wisselend aantal verbindingen vervangt. Er is dan sprake van een k-opt heuristiek. Binnen deze heuristiek wordt gecontroleerd of het vervangen van k verbindingen een kortere tour oplevert. Indien dit niet het geval is wordt de waarde van k met 1 opgehoogd en start het hele proces opnieuw. Dit gaat door tot aan zekere stopvoorwaarden is voldaan. Dit verwisselingsalgoritme geeft verbluffend goede resultaten, maar is redelijk ingewikkeld. In het algemeen is de kracht van een verwisselingsheuristiek dat deze herhaald kan worden toegepast op verschillende startoplossingen, waardoor een keuze tussen verschillende goede oplossingen mogelijk wordt. Opgave 10 Pas de 3-keuze heuristiek toe op onderstaande rondrit, verwijder daartoe de lijnen {1, 6}, {2, 3} en {4, 5). Teken vervolgens alle mogelijke nieuwe rondritten als bovenstaande lijnen verwijderd worden. (Er zijn er 4). 1 2 6 3 5 4 30

Opgave 11 Pas de 2-opt heuristiek toe op de volgende graaf, neem als beginrondreis 1234561: 1 2 3 4 5 6 1 2 2 2 2 2 2 2 2 1 2 3 2 2 2 4 2 1 5 2 6 Opgave 12 Een fabriek gebruikt een machine voor 5 verschillende produktieprocessen A, B, C, D en E. De 5 processen worden volgens een vaste cyclus afgewerkt en aan het einde van de cyclus wordt de machine weer in de beginsituatie terug gezet. Aan het omschakelen van het ene proces naar het andere proces zijn kosten verbonden die afhankelijk zijn van de processen waartussen omgeschakeld wordt. De kostenmatrix staat hieronder. Pas de de 2-opt heuristiek toe om voor dit taakvolgordeprobleem een optimale cyclus te vinden of te benaderen. A B C D E A 12 6 17 13 B 6 9 14 C 10 7 D 18 E Opgave 13 Gegeven is een voorbeeld van het handelsreizigersprobleem (TSP) van n = 12 steden in een gedeelte van het platte vlak, namelijk in [0, 1] X [0, 1]. De afstand tussen steden is de Euclidische afstand. De coördinaten van de steden zijn: 1. (0.304617, 0.496552) 2. (0.189654, 0.899769) 3. (0.193431, 0.821629) 4. (0.682223, 0.644910) 5. (0.302764, 0.817974) 6. (0.541674, 0.660228) 7. (0.150873, 0.341971) 8. (0.697898, 0.289726) 9. (0.378373, 0.341194) 10. (0.860012, 0.534079) 11. (0.853655, 0.727113) 12. (0.593563, 0.309290) 31

De bijborende (symmetrische) afstandstabel c = (cij) is : - 0.42-0.34 0.08-0.41 0.55 0.52-0.32 0.14 0.11 0.42-0.29 0.43 0.38 0.14 0.29-0.22 0.56 0.48 0.61 0.50 0.50-0.44 0.79 0.73 0.36 0.66 0.40 0.55-0.17 0.59 0.51 0.43 0.48 0.36 0.23 0.32-0.56 0.76 0.73 0.21 0.63 0.34 0.73 0.29 0.52-0.60 0.69 0.67 0.19 0.56 0.32 0.80 0.46 0.61 0.19-0.34 0.72 0.65 0.35 0.59 0.35 0.44 0.11 0.22 0.35 0.49 - (NB: alleen voor i > j zijn de afstanden cij in de tabel opgenomen). De naaste buur heuristiek, te beginnen in stad 10 geeft de toegelaten rondreis 10 11 4 6 5 3 2 1 9 12 8 7 10 met lengte 3.1977. Probeer deze rondreis met een of meer van de bekende heuristieken te verbeteren. Opgave 14 Gegeven is onderstaande tabel. Er zijn 6 personen en 6 opdrachten. Elke persoon kan slechts 1 opdracht doen. In de tabel staan de opbrengsten voor mogelijke koppelingen van personen aan taken vermeld. persoon/taak 1 2 3 4 5 6 1 26 27 28 31 32 36 2 18 19 21 24 25 35 3 13 14 15 16 23 34 4 5 7 9 12 22 33 5 3 4 8 11 20 30 6 1 2 6 10 17 29 Bedenk voor dit toewijzingsprobleem een heuristiek die stapsgewijs persoon voor persoon aan een opdracht toewijst. Pas deze heuristiek toe met als personenvolgorde 1 t/m 6 voor het toewijzen van personen. Daarna in de andere volgorde van 6 t/m 1. Vergelijk nu beide oplossingen. 32

Opgave 15 In een bepaald gebied liggen de dorpen i = 1,,n. De bedoeling is om in p van deze dorpen een huisartsenpost in te richten, waarbij p een gegeven waarde heeft. Voor elk dorp worden de inwoners van dat dorp aan eenzelfde huisartsenpost toegewezen. De toewijzingskosten bedragen a ij als de inwoners van dorp i worden toegewezen aan een in dorp j te vestigen huisartsenpost. Aangenomen wordt dat elke post voldoende capaciteit krijgt. a) Bedenk een heuristiek. (Tip: begin met het dorp t waarvoor a 1t + + a nt minimaal is en wijs elk dorp toe aan de huisartsenpost in stad t. Voeg daarna stapsgewijs elke keer een huisartsenpost toe.) b) Bedenk een verwisselingsheuristiek om een gegeven toegelaten oplossing te verbeteren. c) Pas de heuristieken, die je bedacht hebt, toe op het volgende getallenvoorbeeld met n = 7 en p =3. i/j 1 2 3 4 5 6 7 1 750 1806 4644 2353 2222 4962 3744 2 6402 690 10902 7158 9090 10262 6534 3 3022 1454 798 5214 7374 4654 4382 4 3750 7440 8910 750 3500 9440 6990 5 3505 3799 7587 2079 599 8127 6159 6 3175 739 3861 5096 7151 907 2573 7 2130 1496 872 1966 2018 1816 678 33

Paragraaf 3 Een van de laatste nieuwe ontwikkelingen op dit gebied is gebaseerd op het gedrag van mierenkolonies. Beschrijf deze heuristiek in eigen woorden. Maak daarbij gebruik van het internet en kijk wat je daarover kunt vinden. De eerste experimenten op dit gebied zijn gedaan met apen. Beschrijf deze experimenten. Probeer vooral voor een leek duidelijk te maken hoe het gedrag van mieren om te zetten is naar een wiskundig model. 34

Opgave 16 JAVA-applets over TSP-heuristieken Ga naar http://www-e.uni-magdeburg.de/mertens/tsp/tsp.html en lees de hoofdstukken 1, 2 en 3 door. Probeer de verschillende applets uit: je ziet stap voor stap hoe de beschreven heuristieken werken. Maak vervolgens de onderstaande opdrachten. 1. In hoofdstuk 1 staat de formule Teken in een assenstelsel twee punten, geef ze coördinaten (x 1,y 1 ) en (x 2,y 2 ) en verklaar aan de hand van je plaatje de bovenstaande formule. 2. Als je om alle punten heen een elastiekje spant, en dat loslaat, dan verbindt dat elastiekje precies de buitenste punten. Die punten vormen samen de zogenaamde convex hull (in het Nederlands convexe schil). In hoofdstuk 2 staat daarover: For Euclidean problems, a good starting tour is the tour that follows the convex hull of all nodes. This is a reasonable choice since the sequence of nodes from the convex hull tour is respected in any optimal tour. Teken met potlood een regelmatige vijfhoek en teken vervolgens met pen op iedere hoek een punt. Label de punten v 1 tot en met v 5. Gum de vijfhoek uit, en teken precies in het midden van je plaatje nog een punt met label v 6. Teken nu als volgt een handelsroute: begin in punt v 1 ; ga naar punt v 2 ; ga naar punt v 6 ; ga niet naar v 3 ; maak de route af. In deze route wordt de volgorde van de punten in de convexe schil niet aangehouden; het eerste punt in de schil dat na v 2 wordt aangedaan is immers niet v 3. Volgens het citaat van hierboven kan deze route dus geen optimale route zijn. Laat met behulp van de 2-optheuristiek zien, hoe uit de door jou getekende route de optimale route is te verkrijgen. 3. In hoofdstuk 2 wordt gesproken over twee verschillende invoegings-heuristieken, namelijk de Cheapest Insertion en de Farthest Insertion. Je bent al eerder heuristieken tegengekomen die sterk op deze heuristieken lijken. Welke Nederlandse namen hadden deze heuristieken? Cheapest Insertion lijkt op de Farthest Insertion lijkt op de heuristiek heuristiek 35

4. Leg het verschil uit tussen de Cheapest Insertion -heuristiek en de daarop lijkende heuristiek die je bij opdracht 3 hebt ingevuld. 5. Soms kom je het Engelse woord greedy tegen. Geef eens een mooie Nederlandse omschrijving van dat woord. Leg vervolgens de betekenis van greedy - algoritmen uit. 6. In hoofdstuk 3 staat: There is only one way to reconnect the paths that yield a different tour. Laat zien dat dat inderdaad het geval is. Ofwel: als je 2 verbindingen in je route hebt gekozen die je wilt vervangen, dan kan dat maar op één manier. 7. Ga naar de applet in hoofdstuk 3 en voer de onderstaande stappen uit: a) Ga uit van een plaatje van 10 punten. b) Stel de starting tour in op random. c) Klik op run en zie hoe via de 2-opt heuristiek de applet de optimale route berekent. d) Controleer door op solve te drukken of de in stap c) gevonden route ook de optimale route is. e) Als dat het geval is, klik dan op new en herhaal stappen c) en d). f) Als dat niet het geval is, klik dan op reset en stel de starting tour in op n.n. (nearest neighbour) g) Klik op weer run en zie hoe via de 2-opt heuristiek de applet de optimale route berekent, dit maal uitgaande van een via de naaste buur-heuristiek gevonden route. h) Controleer door op solve te drukken of de in stap g) gevonden route nu wél de optimale route is. i) Herhaal stappen a) tot en met h). Blijkbaar maakt het uit op welke manier je je starting tour kiest. Verklaar waarom dat logisch is. EINDE 36