Beveiliging van museum Kempenland

Vergelijkbare documenten
Geldwisselprobleem van Frobenius

Dossier 4 VECTOREN. Dr. Luc Gheysens. bouwstenen van de lineaire algebra

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Ruimtewiskunde. college 3 Lijnen, vlakken en oppervlakken in de ruimte. Vandaag

Verbanden en functies

Uitwerkingen bij 1_1 Lineaire vergelijkingen

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

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

OnderbouwWiskundeDag 2012

Het opstellen van een lineaire formule.

Ter Leering ende Vermaeck

Examenvragen Hogere Wiskunde I

Opgave 1 - Uitwerking

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n.

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:

Lineaire Algebra (2DD12)

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.

ICT. Meetkunde met GeoGebra. 2.7 deel 1 blz 78

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014

Hoofdstuk 9 - Lineair Programmeren Twee variabelen

Practicum hoogtemeting 3 e klas havo/vwo

V Kegelsneden en Kwadratische Vormen in R. IV.0 Inleiding

1. Vectoren in R n. y-as

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Praktische toepassing van functies

Basiskennis lineaire algebra

Universiteit Utrecht Departement Informatica

K.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x.

Vergelijkingen en hun oplossingen

Eindopdracht Wiskunde en Cultuur 2-4: Geostationaire satellieten Door: Yoeri Groffen en Mohamed El Majoudi Datum: 20 juni 2011

Lineaire algebra I (wiskundigen)

3 Wat is een stelsel lineaire vergelijkingen?

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

1.1 Lineaire vergelijkingen [1]

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

Modulewijzer InfPbs00DT

Correcties en verbeteringen Wiskunde voor het Hoger Onderwijs, deel A.

Basisvaardigheden algebra. Willem van Ravenstein Den Haag

3 Cirkels, Hoeken en Bogen. Inversies.

Wanneer zijn veelvouden van proniks proniks?

Fractale dimensie. Eline Sommereyns 6wwIi nr.9

Machten, exponenten en logaritmen

Wiskunde voor relativiteitstheorie

De enveloppenparadox

Ijkingstoets industrieel ingenieur aangeboden door UGent en VUB op 30 juni 2014: algemene feedback

Hoofdstuk 1 LIJNEN IN. Klas 5N Wiskunde 6 perioden

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

Combinatoriek groep 1

Practicum algemeen. 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag

TU/e 2DD50: Wiskunde 2 (1)

Uitwerkingen Sum of Us

Uitwerkingen toets 12 juni 2010

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

10.0 Voorkennis. y = -4x + 8 is de vergelijking van een lijn. Hier wordt y uitgedrukt in x.

Hieronder zie je hoe dat gaat. Opgave 3. Tel het aantal routes in de volgende onvolledige roosters van linksboven naar rechtsonder.

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april Inleiding 2. 3 Data 3. 4 Aanpak 3

Ruimtewiskunde. college. Stelsels lineaire vergelijkingen. Vandaag UNIVERSITEIT TWENTE. Stelsels lineaire vergelijkingen.

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

Het metriek stelsel. Grootheden en eenheden.

Basiskennistoets wiskunde

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Tentamen Lineaire Algebra voor ST (2DS06) op , uur.

Uitwerkingen toets 9 juni 2012

Mengsel mix. Elieke van Sark en Liza Fredriks

1. Orthogonale Hyperbolen

opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.

Zomercursus Wiskunde. Module 4 Limieten en asymptoten van rationale functies (versie 22 augustus 2011)

Hoofdstuk 2: Grafieken en formules

Rekenen aan wortels Werkblad =

Vlakke meetkunde. Module Geijkte rechte Afstand tussen twee punten Midden van een lijnstuk

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

De grafiek van een lineair verband is altijd een rechte lijn.

8. Complexiteit van algoritmen:

3.2 Vectoren and matrices

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude

Hints en antwoorden bij de vragen van de cursus Lineaire Algebra en Meetkunde

Hoofdstuk 1 Spiegelen in lijn en in cirkel. Eigenschappen.

Chemische reacties. Henk Jonker en Tom Sniekers

Wiskunde voor relativiteitstheorie

Lineaire Algebra voor ST

5.0 Voorkennis. Er zijn verschillende manieren om gegevens op een grafische wijze weer te geven: 1. Staafdiagram:

Antwoordmodel - Vlakke figuren

Combinatoriek groep 2

vandaag is Annie twee jaar jonger dan Ben en Cees samen

Wiskunde 2 september 2008 versie Dit is een greep (combinatie) van 3 uit 32. De volgorde is niet van belang omdat de drie

Uitwerking 1 Uitwerkingen eerste deeltentamen Lineaire Algebra (WISB121) 3 november 2009

Wiskunde D Online uitwerking 4 VWO blok 7 les 2

Opgaven bij de cursus Relativiteitstheorie wiskunde voorkennis Najaar 2018 Docent: Dr. H. (Harm) van der Lek

extra oefening algoritmiek - antwoorden

5. Vergelijkingen Vergelijkingen met één variabele Oplossen van een lineaire vergelijking

WISKUNDE-ESTAFETTE RU 2006 Antwoorden

Hoe kun je de weerstand van voorwerpen vergelijken en bepalen?

Noordhoff Uitgevers bv

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

Transcriptie:

Beveiliging van museum Kempenland Irene Man 0721206 Richard Kuijstermans 0720436 31 maart 2011

Inhoudsopgave 1 Probleembeschrijving 3 1.1 Vereenvoudiging van het probleem............... 4 1.1.1 Geheeltallige punten beveiligen............. 4 1.1.2 Oneindig dunne muren.................. 4 1.2 Camera s............................. 5 1.2.1 3 typen camera s..................... 5 1.2.2 Plaatsing van Camera s................. 6 1.3 Doel................................ 7 1.4 Vertalen in wiskundige termen................. 7 1.4.1 Parameters........................ 7 1.4.2 Variabelen voor camera-verdelingen.......... 8 1.4.3 Kostenfunctie....................... 9 1.4.4 Oplossingsverzameling.................. 10 1.4.5 Optimalisatie....................... 11 2 Algoritme 12 2.1 Greedy algoritme I........................ 13 2.2 Greedy algoritme II....................... 16 3 Geheeltallige lineaire programmering 19 3.1 Randvoorwaarden........................ 20 3.2 Doelfunctie............................ 20 4 Oplossingsproces 21 4.1 Programmeren.......................... 21 4.1.1 Buitenmuren....................... 21 4.1.2 Camerapunten...................... 21 4.1.3 Te beveiligen punten................... 24 4.1.4 Verzameling C(q i ) bepalen............... 24 5 Wat nog te doen 26

Inleiding Ieder museum wil dat alle waardevolle spullen beveiligd wordt door camera s. Natuurlijk willen ze dit doen tegen minimale kosten. Hoe kun je dan nu de camera s zo hangen dat alles gezien wordt, maar tegen minimale kosten. Dit is wat wij voor museum Kempenland hebben onderzocht de afgelopen kwartiel. Ze willen namelijk dat al hun waardevolle schilderijen goed beveiligd worden. We zijn begonnen met het probleem om te schrijven naar wiskunde en van daaruit zijn we verder gaan werken. We hebben ook een twee algoritmen bedacht over het ophangen van de camera s, zodat het hele museum beveiligd wordt. Maar de vraag is dan of je dan de minimale kosten kunt bereiken. De plattegrond van het museum is bekend en we gaan dit in een Java programma implementeren zodat we weten door welke camera een punt in het museum beveiligd kan worden. Dit kunnen we later gebruiken bij het lineair programmeren. 2

Hoofdstuk 1 Probleembeschrijving We moeten dus camera s zo gaan hangen dat alles binnen het museum beveiligd wordt tegen minimale kosten. Er zijn drie soorten camera s die gehangen mogen worden op de geheeltallige coördinaten. Hieronder volgt de plattegrond van het museum. Figuur 1.1: Plattegrond van het museum Kempenland 3

1.1 Vereenvoudiging van het probleem 1.1.1 Geheeltallige punten beveiligen Het doel van dit project is het vinden van de goedkoopste camera-verdeling die het museum geheel beveiligt. Het geheel beveiligen is in deze context het beveiligen van alle geheeltallige punten. Verder hoeft elk punt maar één keer door een camera beveiligd te worden. Stel dat er op een bepaald geheeltallig punt een muur staat, dan hoeft dit punt maar beveiligd te worden aan één kant van de muur. Dit is natuurlijk niet realistisch. Maar om het probleem simpel te houden, is dit volgens de opdrachtgever voldoende. 1.1.2 Oneindig dunne muren Een andere vereenvoudiging van het probleem is het verwaarlozen van de dikte van de muren. De muren in dit model zijn als het ware oneindig dun, maar ze zijn niet doorzichtig. Dus een camera kan evenwijdig langs een muur kijken zonder last van de dikte van de muur te hebben. Figuur 1.2: Het verschillen tussen een muur met dikte (boven) en een oneindig dunne muur (onder). Op het punt dat omcirkeld werd, is een camera geplaatst. 4

1.2 Camera s 1.2.1 3 typen camera s Er zijn drie soorten camera s waaruit de directie mag kiezen: 1. 90 -camera: Deze camera kan alleen bevestigd worden waar de muren een hoek maken. De hoek waarin de camera bevestigd wordt moet kleiner of gelijk zijn aan 90. De aanschafkosten voor deze camera zijn 3000 euro. 2. 180 -camera: Deze camera kan zowel in hoeken van het gebouw als op rechte muren geplaatst worden. De hoek waarin de camera bevestigd wordt moet kleiner of gelijk zijn aan 180. De aanschafkosten voor deze camera zijn 5000 euro. 3. 360 -camera: Deze camera kan in alle hoeken van het gebouw alsmede aan uiteinden van muren bevestigd worden. De aanschafkosten voor deze camera zijn 8000 euro. Hoewel een 360 -camera geschikt is voor alle hoeken kleiner dan of gelijk aan180, en een 180 -camera goed is voor hoeken kleiner dan of gelijk zijn aan 180, is het niet verstandig om een 360 -camera te plaatsen in een hoek kleiner dan 180. Want het plaatsen van een 180 -camera is goedkoper en de beide soorten camera s beveiligen dezelfde punten. Dit leidt tot eenduidige keuzen van camera voor elke hoek. Als de hoek gelijk aan θ is, waarbij: 0 < θ 90, dan is alleen een 90 -camera geschikt. 90 < θ 180, dan is alleen een 180 -camera geschikt. 180 < θ 360, dan is alleen een 360 -camera geschikt. 5

1.2.2 Plaatsing van Camera s Verder mag een beveiligingscamera slechts geplaatst worden op geheeltallige punten die tegelijkertijd ook muren zijn. Als er meerdere hoeken op een punt zijn, mogen ook meerdere camera s gericht op verschillende richtingen opgehangen worden. Zie bijvoorbeeld het gekleurde punt in figuur 1.1, op ieder gekleurd deel mag één camera opgehangen worden. Figuur 1.3: Meerdere camera s op één punt: 180 -camera op geel, 180 - camera op rood en 90 -camera op blauw. 6

1.3 Doel Het doel is de camera s zo te plaatsen dat ieder geheeltallig coördinaat binnen het museum beveiligd is tegen minimale kosten. 1.4 Vertalen in wiskundige termen 1.4.1 Parameters Om het beveiligingsprobleem te analyseren, moeten eerst de relevante parameters die voortkomen uit het probleem gedefinieerd in wiskundige termen. Dit zijn bijvoorbeeld de aanschafkosten van de verschillende soorten camera s. Maar ook de verzamelingen van punten die beveiligd moeten worden die vastgelegd worden door de gegeven plattegrond. Hieronder is een lijst van parameters: Omschrijving Q ={q 1, q 2,..., q N }, punten die beveiligd moeten worden, #Q = N C 90 = {r 1,..., r k }, verzameling posities waar 90 -camera s opgehangen kunnen worden, #C 90 = k C 180 = {r k+1,..., r k+1 }, verzameling posities waar 180 -camera s opgehangen kunnen worden, #C 180 = l C 360 = {r k+l+1,..., r k+l+m }, verzameling posities waar 360 -camera s opgehangen kunnen worden, #C 360 = m K 90 = 3000, aanschafkosten van een 90 -camera K 180 = 5000, aanschafkosten van een 180 -camera K 360 = 8000, aanschafkosten van een 360 -camera C(q i ) = verzameling van camera-posities die het punt q i beveiligt Verklaring voor C(q j ) Voor het beveiligen van een bepaald punt q j Q, is de eerste stap het vinden van alle camera-posities die het punt q j kunnen zien. Dat zijn precies alle punten waaruit een rechte lijn tot q j getrokken kan worden zonder dat het eerst snijdt met een muur. Het symbool dat hiervoor gebruikt wordt is C(q j ), omdat het afhangt van q j. Deze verzameling is ook een parameter, omdat het vast ligt samen met de gegeven plattegrond. Welke camera nu uit deze verzameling uiteindelijk gekozen moet worden om de optimale camera-verdeling te construeren, moet nog nader bepaald worden en dat wordt behandeld later in het verslag. 7

1.4.2 Variabelen voor camera-verdelingen Behalve de parameters, zijn ook variabelen ingevoerd om de mogelijke cameraverdelingen te beschrijven. {x 1,..., x k }, {x k+1,..., x k+1 } en {x k+l+1,..., x k+l+m } vertegenwoordigen respectievelijk de elementen van C 90, C 18 en C 360, waarbij de 3 verzamelingen respectievelijk k, l en m elementen bevatten. Elke x i is dan een variabele die met waarden 0, 1 aangeeft of daar op de positie r i een camera wordt opgehangen of niet. De discrete waarde 1 is JA, en 0 NEE. { 1, Wel camera op ri x i = (1.1) 0, Geen camera op r i Hiermee kan een mogelijke camera-verdeling uitgedrukt worden in een rijtje enen en nullen, x = (x 1,..., x n ) T, waarbij n = k + l + m. 8

1.4.3 Kostenfunctie Nu de variabele voor een camera-verdeling gedefinieerd is, kan ook de aanschafkosten van iedere camera-verdeling bepaald worden. De kostenfunctie die aan ieder camera-verdeling zijn geassocieerde aanschafkosten toekent heeft de volgende formule: k(x) = k K 90 x i + i=1 k+l i=k+1 K 180 x i + k+l+m i=k+l+1 K 360 x i (1.2) Deze kostenfunctie rekent eigenlijk het inproduct uit van x met de kostenvector c = (c 1,..., c n ) T met: K 90, 1 i k c i = K 180, k + 1 i k + l K 360, k + l + 1 i k + l + m (1.3) Met de bovenstaande kostenvector wordt de kostenfunctie omgezet tot een inproduct: k(x) = = = k K 90 x i + i=1 k c i x i + i=1 n c i x i i=1 = (c, x) k+l i=k+1 k+l i=k+1 c i x i + K 180 x i + k+l+m i=k+l+1 k+l+m i=k+l+1 c i x i K 360 x i = c T x (1.4) 9

1.4.4 Oplossingsverzameling Er zijn heel veel camera-verdelingen (om precies te zijn: 2 n stuks), maar niet elke camera-verdeling is in staat om alle q j uit de verzameling Q te beveiligen. In dit probleem zijn alleen camera-verdelingen interessant die ieder punt uit Q beveiligt. De verzameling van al dit soort verdelingen is de oplossingsverzameling en het wordt aangegeven met het symbool: P. Een element uit de verzameling P moet alle punten uit Q overdekken. Vanuit het perspectief van de te beveiligen punten, kan deze voorwaarde opgesplitst worden in een lijst voorwaarden die ieder voortkomt uit één q j. Dat wil zeggen, neem een willekeurig q j Q, dan moet het ten minste één keer gezien worden door een camera uit C(q j ), wat leidt tot de volgende ongelijkheid: i:r i C(q j ) x i 1 (1.5) Bij elke q j Q hoort één ongelijkheid. Als het aantal elementen in Q gelijk is aan N, dan zijn er in totaal N voorwaarden en al deze voorwaarden resulteren samen de voorwaarde voor een camera-verdeling om bij de oplossingsverzameling P te kunnen horen. In wiskundige termen luidt deze cumulatieve voorwaarde als volgt: q j Q : i:r i C(q j ) x i 1 = x P (1.6) Bovendien kan deze voorwaarde in de matrix-vorm weergegeven worden: Ax b, waarbij de afmetingen van de matrix A, N n is: A = a T 1. a T N, b = 1., a j =. 1 Door de elementen uit a j op de juiste plaatsen gelijk aan 0 of 1 te kiezen, kan de ongelijkheid die behoort tot het element q j verwerkt worden in de vermenigvuldiging tussen de j de rij uit A met de kolomvector x. Als de camera-positie r i in de verzameling C(q j ), oftewel als de camera op r i het punt q j ziet, dan is a ji = 1, anders 0. a j1 a jn a ji = { 1, ri C(q j ) 0, r i / C(q j ) (1.7) 10

a T j x = = = = n a ji x i i=1 i:r i C(q j ) i:r i C(q j ) i:r i C(q j ) a ji x i + a ji x i i:r i / C(q j ) 1 x i + i:r i / C(q j ) 0 x i x i 1 (1.8) 1.4.5 Optimalisatie Nu alle benodigde parameters, variabelen en functies gedefinieerd zijn, kan ook de optimale oplossing in wiskundige termen uitgedrukt worden. Het doel van deze opdracht is om een optimale camera-verdeling uit deze verzameling te vinden die de laagste aanschafkosten met zich mee brengt. Met andere woorden, een camera-verdeling ˆx is optimaal als het aan de volgende 2 eisen voldoet: ˆx P x P : k(ˆx) k(x) 11

Hoofdstuk 2 Algoritme De eerste heuristische poging om een camera-verdeling te vinden die alle punten van Q beveiligt tegen lage kosten, was het toepassen van de zogenaamde Greedy algoritme. Twee simpele greedy algoritmen zijn ontwikkeld die intuïtief redelijk goede camera-verdeling opleveren. Aan de hand van stapsgewijze voorschriften worden de algoritmen behandeld. Bovendien wordt de onvolledigheid van de algoritmen bewezen door het voorzien van tegenvoorbeelden. 12

2.1 Greedy algoritme I Greedy algoritme I (GA-I) begint met een lege verzameling van cameraposities. Bij elke stap wordt de camera met de laagste aanschafkosten bepaald tussen de resterende camera s die nog niet in die verzameling zit en het meest extra punten dekt, deze wordt dan toegevoegd aan de oude verzameling. Dit herhaalt zich totdat alle punten die beveiligd moeten worden overdekt zijn door de camera s in de verzameling camera-positie. De precieze formulering gaat als volgt: Voorschrift Begintoestand: I = {1, 2,..., n} V = { }, verzameling indices van camera-positie s W = { }, verzameling punten beveiligd door camera s met indices in V 1. Bepaal c zodanig dat c = min k I\V c k. 2. Bepaal i zodanig dat k, c k = c : #D(r i ) #D(r k ), waarbij D(r k ) = {q j r k C(q j ) q j / W }. Als er meerdere i s zijn die aan deze voorwaarden voldoen, kies dan de ene met de kleinste x-coördinaat. Als i nog niet eenduidig is, kies dan van de overgebleven indices de ene met de kleinste y-coördinaat. 3. Voeg i toe aan V en voeg D(r i ) toe aan W. Herhaal deze 3 stappen totdat W = Q. 13

Tegenvoorbeeld In de eerste instantie lijkt het GA-I intuïtief goede oplossingen te bieden. Maar er zijn ook plattegronden waarbij GA-I niet de optimale oplossing kan vinden. De plattegrond in Figuur 2.1 is een voorbeeld waarbij de aanschafkosten niet geminimaliseerd worden. Figuur 2.1: Tegenvoorbeeld voor Greedy algoritme I In deze plattegrond gaat GA-I eerst alle mogelijke plaatsen van 90 -camera s vullen, omdat er telkens wat nieuwe punten bij komen. Maar de cruciale punten in het midden kunnen net niet gezien worden door deze camera s, waardoor er uiteindelijk toch een 180 -camera geplaatst moet worden in het midden(zie figuur 2.2). De totale aanschafkosten van deze camera-verdeling bedragen 3000 4 + 5000 = 17000, dit is echt niet minimaal. Neem bijvoorbeeld de camera-verdeling in figuur 2.3, deze camera-verdeling kost 3000 + 5000 = 8000, wat minder is dan de oplossing die GA-I biedt. 14

Figuur 2.2: GA-I toegepast op het tegenvoorbeeld in figuur 2.1. De rode punten op de plattegrond rechtsonder zijn de camera-posities van de resulterende camera-verdeling. Figuur 2.3: Een camera-verdeling voor plattegrond in figuur 2.1 die goedkoper is dan de oplossing van GA-I. 15

2.2 Greedy algoritme II Greedy algoritme II (GA-II) begint met een lege verzameling van cameraposities. Bij elke stap wordt de camera met de gemiddeld laagste aanschafkosten bepaald tussen de resterende camera s die nog niet in de verzameling zit en de meeste extra punten dekt, deze wordt dan toegevoegd aan de oude verzameling. Dit herhaalt totdat alle punten die beveiligd moeten worden gedekt zijn door de camera s in de resulterende verzameling wat de oplossing is die GA-II biedt. De precieze formulering gaat als volgt: Voorschrift Begintoestand: I = {1, 2,..., n} V = { }, verzameling indices van camera-positie s W = { }, verzameling punten beveiligd door camera s met indices in V c i =kosten van camera op positie r i 1. Bereken voor r i de verzameling D(r i ) met D(r i ) = {q j r i C(q j ) q j / W } 2. Noem E(r i ) = gemiddelde kosten voor camera-positie r i. Dit betekent E(r i ) = c i #D(r i ) 3. Herhaal stap 1 en stap 2 totdat voor alle r j Ga dan naar stap 4. 4. Bepaal i zodanig dat E(r i ) = min k I\V E(r k). Als er meerdere i s zijn die aan deze voorwaarden voldoen, kies dan de ene met de kleinste x-coördinaat. Als i nog niet eenduidig is, kies dan van de overgebleven indices de ene met de kleinste y-coördinaat. 5. Voeg i toe aan V en voeg D(r i ) toe aan W. Herhaal deze 5 stappen totdat W = Q. 16

Tegenvoorbeeld Ook bij dit algoritme is een tegenvoorbeeld te bedenken waar het algoritme niet de optimale oplossing geeft. Figuur 2.4: Tegenvoorbeeld voor Greedy algoritme II In deze plattegrond kiest GA-II als eerste camerapositie helemaal links- of rechtsonder. Er blijft dan bovenin nog een punt over die niet gezien wordt. Er komt daar dus ook nog een camera te hangen. De aanschafkosten voor deze camera-verdeling bedragen 3000 2 = 6000, maar dit is niet de optimale oplossing. In figuur 2.6 is een optimale oplossing te vinden. Als je daar een 180 -camera hangt wordt alles gezien en de aanschafkosten bedragen 5000. 17

Figuur 2.5: GA-II toegepast op het tegenvoorbeeld. De rode punten op de plattegrond rechtsonder is de resulterende camera-verdeling. Figuur 2.6: Een camera-verdeling voor plattegrond in figuur 2.4 die goedkoper is dan de oplossing van GA-II. 18

Hoofdstuk 3 Geheeltallige lineaire programmering In de jaren 40 was de optimalisering techniek lineair programmeren sterk ontwikkeld vanwege de brede scala van transport-, planning-, organisatie- en productieproblemen. Doorgaans werden de oplossingsmethoden geïmplementeerd in de computer die de berekening voerde. Omdat de doelfunctie en de randvoorwaarden van het probleem lineair waren, werd deze methode lineair programmering genoemd. In dit probleem gaat het om het plannen van camera-posities, waarbij de aanschafkosten geminimaliseerd moeten worden en het valt precies onder de context van lineair programmeren. Omdat de onbekende variabelen geheeltallig zijn, wordt het een geheeltallig lineair programmeringsprobleem (LIP). In dit hoofdstuk wordt een precieze formulering van de randvoorwaarden en de doelfunctie gegeven, die het probleem vastlegt. Hiermee kan de benodigde inputs bij een oplossingsprogramma ingevoerd worden dat de optimale oplossing zal vinden. 19

3.1 Randvoorwaarden In het vorige hoofdstuk waren de voorwaarden vastgelegd waar een cameraverdeling aan moet voldoen om bij de oplossingsverzameling te horen. Bij elk punt dat beveiligd moet worden hoort één voorwaarde. Kies een q j Q, dan moet er gelden: x i 1 i:r i C(q j ) In matrix-vorm, (zie vergelijking (1.7) voor de elementen in matrix A): a T 1. a T N x 1. x n 1. (3.1) 1 Verder moeten alle onbekende variabelen x i geheeltallig zijn om samen een zinnige oplossing te vormen. Immers, op elk camera-positie mag maar één camera opgehangen worden. 3.2 Doelfunctie De voorgaande randvoorwaarden beperken samen een gebied waar de optimale oplossing verschuilt en de doelfunctie specificeert waaraan de optimale oplossing moet voldoen. In dit geval is dat de kostenfunctie: k(x) = c T x die geminimaliseerd moet worden (zie vergelijking (1.3) voor de vector c). 20

Hoofdstuk 4 Oplossingsproces 4.1 Programmeren Om aan de paramters te komen waarmee wij het probleem oplossen. Moeten we eerst de gegevens die bepaald zijn door de gegeven plattegrond van het museum in de computer verwerken. Daarvoor zijn programma s in JAVA geschreven die de input van de text-file inleest. In de text-file zijn de beginen eindcoördinaten van de muren gegeven. Bijvoorbeeld: 0,15,9,0 is de muur die loopt van coördinaat (0,15) naar coördinaat (9,0). 4.1.1 Buitenmuren Het eerste wat we dan gaan doen is de buitenmuren bepalen. Dit doen we door te beginnen met een muur met de grootste x-coördinaat. Je weet zeker dat dit een buitenmuur is of anders aansluit op de buitenmuur. Het algoritme wat je dan steeds op elke muur gaat toepassen totdat je weer terug bent waar we begonnen zijn is: 1. Ga naar het eindpunt (x e, y e ) van de muur. Ga naar stap 2. 2. Kijk of er een muur is die aansluit op (x e, y e ). Als dit het geval is, ga naar stap 3, anders naar stap 4. 3. Ga naar stap 1 en herhaal totdat je weer terug bent bij (x e, y e ). 4. Dit betekent dat het geen buitenmuur is. Je gaat dan weer terug naar het beginpunt (x b, y b ) van deze muur. Ga naar stap 1 en zoek andere muur die aansluit op dit punt. 4.1.2 Camerapunten De camerapunten kunnen alleen maar op de muren geplaatst worden en je kunt dus in twee situaties belanden: 21

1. De camera bevindt zich op een hoek, ofwel een snijpunt tussen twee muren. 2. De camera bevindt zich op punt van muur. In het geval dat de camera zich op een snijpunt van twee muren bevindt zit je ook weer in een bepaald aantal situaties waarin zich het snijpunt kan bevinden: 1. Begin- of eindpunt van Muur 1 en begin- of eindpunt van Muur 2 2. Snijpunt is begin- of eindpunt van Muur 1 en deze ligt tussen beginen eindpunt van Muur 2 3. Snijpunt is begin- of eindpunt van Muur 2 en deze ligt tussen beginen eindpunt van Muur 1 Nu hebben we drie verschillende camera s die gebruikt kunnen worden. We moeten dan nog wel bepalen waar welke camera mag komen hangen. Dit betekent dat we de hoek moeten uitrekenen die het camerapunt maakt. Natuurlijk is het mogelijk om op een bepaald punt meerdere camera s op te hangen als het camerapunt een snijpunt van muren is. Dus we moeten elk camerapunt ook nog specificeren met een minimale- en maximale kijkrichting. Hoe we dit allemaal doen wordt hieronder weergegeven. Hoeken berekenen Als de camera een snijpunt van twee muren is kun je de hoek berekenen door middel van de Cosinusregel. Het snijpunt tussen de twee muren noemen we (x 3, y 3 ) en de andere coördinaten van de muren noemen we (x 1, y 1 ) van Muur 1 en (x 2, y 2 ) van Muur 2. We weten drie punten en kunnen daar dus een driehoek van vormen. Hieruit bepalen we dus de drie zijden van de driehoek en we moeten een hoek weten. Dan kun je gebruik maken van de Cosinusregel. De lengte van de drie zijden noemen we: A is de lengte tussen (x 1, y 1 ) en (x 3, y 3 ) B is de lengte tussen (x 3, y 3 ) en (x 2, y 2 ) C is de lengte tussen (x 2, y 2 ) en (x 1, y 1 ) De hoek tussen A en B noemen we γ. Dan geeft de cosinusregel: Hieruit kun je de hoek uithalen: C 2 = A 2 + B 2 2AB cos(γ) γ = arccos( C2 A 2 B 2 ) 2AB 22

Als de camera geen snijpunt van twee muren is heb je een paar gevallen: 1. De camera ligt op het uiteinde van een muur. Hier kan maar één camera hangen en dat is de 360 camera. 2. De camera ligt op een recht stuk van een muur. Hier kan dan een 180 camera hangen. Kijkrichting bepalen We gaan de minimale en maximale kijkrichting bepalen. Hierbij maken we gebruik van de arctangens. Omdat de arctangens een hoek geeft tussen de 90 en 90 moeten we dit in sommige gevallen nog wat corrigeren. Stel we zitten in de situatie als bij de vorige afbeelding. We berekenen de minimale kijkrichting dan als volgt: arctan( y 1 y 3 x 1 x 3 ) + 180 De maximale kijkrichting berekenen we als volgt: arctan( y 2 y 3 x 2 x 3 ) + 360 Er zijn natuurlijk nog veel meer mogelijkheden om een camerapunt te vormen zoals we al besproken hebben. Dit werkt vervolgens gewoon op dezelfde manier alleen het kan zijn dat je er andere getallen bij moet optellen. Dat is in het programma allemaal verwerkt, maar iets te groot om ze allemaal in het verslag te verwerken. 23

4.1.3 Te beveiligen punten We hebben natuurlijk ook de verzameling te beveiligen punten nodig. In dit geval is dat niet zo heel moeilijk, want de buitenmuren zijn bekend. Je kunt de linker buitenmuren zien als de kleinste coördinaten die beveiligd moeten worden en dat geldt ook voor de rechter kant, dit zijn de maximale coördinaten. Alle geheeltallige coördinaten daartussen moeten beveiligd worden. 4.1.4 Verzameling C(q i ) bepalen We hebben ook nog te bepalen welke camera een punt kan zien. Dit gaan we doen door te kijken of de lijn tussen het te beveiligen punt (x b, y b ) en het camerapunt (x c, y c ) geen snijpunt heeft met de muren. We gaan eerst een lijn bepalen tussen het te beveiligen punt en de camera. Dit doen we alleen in het geval waarbij de x-coördinaat van beide punten niet gelijk is. Je hebt anders te maken met een verticale lijn. We hebben te maken met de volgende structuur: y = a c x + b c Hiervoor geldt: a c = y b y c x b x c en b c = y c x c a c. Dit kunnen we ook doen voor elke muur met beginpunt (x bm, y bm ) en eindpunt (x em, y em ). Je krijgt dan: y = a m x + b m met a m = y bm y em x bm x em en b m = y em x em a m. Dan kunnen we nu het snijpunt tussen deze lijnen uitrekenen. Er geldt nu namelijk: Hieruit kun je x bepalen, namelijk: a m x + b m = a c x + b c x = b c b m a m a c Nu moeten we kijken of het snijpunt (x, y) zich op een muur bevindt. Dan kan dit punt niet door de camera worden gezien. Dit kunnen we bepalen door te kijken naar de coördinaten. Als geldt: min(b.x, c.x) < x < max(b.x, c.x) min(x bm, x em ) < x < max(x bm, x em ) dan kan de camera het punt niet zien. Als dit voor alle muren niet geldt dan kan de camera het punt zien. 24

Er zijn ook situaties waarbij je geen snijpunt kunt vinden. Je bevindt je dan namelijk in de situatie dat a m = a c. Dit betekent dat de camera het punt kan zien. In het geval dat x b = x c betekent dit dat de lijn tussen deze twee punten verticaal is. Als deze lijn een snijpunt met een muur heeft, betekent dit dat de x-coördinaat van het snijpunt gelijk is aan x b. We gaan dan de y-coördinaat van het snijpunt bepalen en kijken of deze waarde binnen het goede bereik ligt. De y-coördinaat van het snijpunt is makkelijk te vinden, want er geldt: Nu moeten we controleren of geldt: y = a m x + b m min(y b, y c ) < y < max(y b, y c ) min(x bm, x em ) < x c < max(x bm, x em ) Als dit het geval betekent dat de muur de verticale lijn snijdt en de camera het punt niet kan zien. Dus we weten nu de verzameling C(q i ) en vanuit hier kunnen we dit gebruiken voor het lineair programmeren. 25

Hoofdstuk 5 Wat nog te doen We gaan lineair programmeren in Aimms. Omdat dit geheeltallig lineair programmeren is hopen we dat dit de optimale oplossing geeft. Als er geen oplossing uit komt moeten we verder gaan met algoritmen bedenken zodat we dit kunnen gaan toepassen op onze plattegrond en op een andere manier aan de oplossing te komen. 26

Literatuurlijst D.G. Luenberger, Y. Ye. Linear and Nonlinear Programming, Springer, 2008 27