Inhoud voor vandaag Geheeltallige lineaire programmeringproblemen en hun toepaingen Inleiding geheeltallig lineaire programmering Modellen: Toewijzing Depot locatie Inkoop met kwantum korting Marjan van den Akker Univeritair Docent bij Algoritmic Sytem (Informatica) Cutting tock Uitleg kolomgeneratie Toepaen op cutting tock Andere toepaingen 2 Knapzak probleem Knapzak probleem (2) Knapzak met volume 15 Wat neem je mee? x 1 = 1 al item 1 wordt meegenomen, 0 ander, x 2, max z= 8 x 1 + 12 x 2 + 7 x 3 + 15 x 4 + 12 x 5 Item 1:agenda 2:boek 3:brood 4:GSM 5:water Nut Volume 8 4 12 8 7 5 15 2 12 6 ubject to 4 x 1 + 8 x 2 + 5 x 3 + 2 x 4 + 6 x 5 15 x 1, x 2, x 3, x 4, x 5 Є {0,1} 3 4
Geheeltallig lineaire programmering Voorbeelden toepaingen ILP: Min c T x.t. Ax b x 0 x geheeltallig (of binair) Uitbreiding van LP: Goed nieuw: veel meer mogelijkheden bij het modelleren Slecht nieuw: oploen i veel moeilijker Logitiek: Ontwerp van ditributie netwerk Tranportplanning Seriegrootte bepaling in productie Dientrooter Telecommunicatie: frequency aignment Plannen van vliegtuigen aan gate Samentelling van releae van oftware 5 6 Traveling Saleman Problem (TSP) Gegeven zijn N teden en hun onderlinge aftanden. Vind de kortte route waarbij je elke tad precie één keer bezoekt. N 2 5 10 15 N! 2 120 3628800 1307674368000 25 15511210043330985984000000 7 8
Combinatoriche optimaliering Vind de toegelaten oploing met minimale koten/maximale opbrengt. Aantal mogelijke oploingen i eindig maar heel heel erg groot. NP-latig!!!! P: op te loen in polynomiaal aantal tapje NP: alleen oploing checken op feaibility polynomiaal, verder niet bewijbaar beter dan alle oploingen proberen. (niet-determinitich polynomiaal) P v NP i een van de $ 1 million Millenium Prize problem http://www.claymath.org/millennium/p_v_np Modelleren Wat worden de variabelen? Hint: wat heb je nodig om de oploing te repreenteren? Voer variabelen in voor ieder ding dat je te weten wilt komen. Wat i je doeltelling? Wat wil je minimalieren/maximalieren Druk dit uit in de variabelen Wat zijn de beperkingen? Ook uitdrukken in de variabelen. 9 10 Toewijzingprobleem Depot locatie n taken moeten worden uitgevoerd door n peronen. Iedere peroon maximaal 1 taak c ij : koten al peroon i taak j uitvoert Wat i de toewijzing met minimale koten? Mogelijke locatie DC: Woerden, Amerfoort, Den Boch, (m) Klanten: A dam, Utrecht, R dam, Eindhoven, Groningen, 11 12 Maatricht, (n)
Depot locatie Uitbreiding depot locatie Gegeven: Alle aftanden d ij Vraag klanten: D j Capaciteit DC: C i Afhandelingkoten per truckload: H i Vate koten DC: F i Tranport koten: 60 cent per truck per kilometer Elke klant krijgt zijn goederen van één ditributiecentrum Welke depot worden geopend en hoe wordt tranport naar de klanten uitgevoerd? 13 14 Inkoopprobleem Cutting tock (1 dimenionaal) Computer-fabrikant wil 600 hard-dik inkopen. Aanbod: Bechikbaar: genoeg taven van lengte L (bijv. 1 meter). A B C Vate koten 15000 0 10000 Prij per tuk 240 325 265 Drempel 200 150 250 Prij met korting 200 225 190 Aantal bechikbaar 500 700 800 Gevraagd: k verchillende maten b 1 t/m b k ; van maat b i zijn m i tuk beteld. Opdracht: nij de gewente tukken uit zo min mogelijk complete taven. Gevraagd: hoe zo goedkoop mogelijk inkopen 15 16
Gegeven betelling ILP-formulering Lengte b i 19 cm 27 cm 31 cm Aantal m i 32 24 23 n verchillende nijpatronen Gebruik variabelen x 1 t/m x n ; x i geeft aan hoeveel taven je volgen nijpatroon j vernijdt. 35 cm 42 cm 48 cm 13 16 22 Noteer nijpatroon j al (a 1,j,a 2,j,,a k,j ); du 1 taaf vernijden op die manier levert a 1,j tuk van b 1 cm op, a 2,j tuk van b 2 cm, enz. 60 cm 8 Lengte taaf L: 1 meter 17 18 ILP-formulering (2) Bezwaren + remedie min x 1 +x 2 + +x n onder de voorwaarden a 1,1 x 1 +a 1,2 x 2 + +a 1,n x n m 1 a k1 x 1 +a k2 x 2 + +a kn x n m k x 1 0,, x n 0 x 1 geheeltallig,, x n geheeltallig (b 1 cm) (b k cm) Bezwaar: Een geheeltallig LP van enige omvang i niet (nel) oplobaar. Remedie: Laat de geheeltalligheideien weg en lo de LPrelaxatie op al benadering. Bezwaar: Het i niet vertandig om alle mogelijke nijpatronen te bepalen; je gaat er lecht een klein aantal gebruiken. Remedie: Bepaal alleen nijpatronen die je mogelijk gaat gebruiken. Dit kan door gebruik te maken van Kolomgeneratie. 19 20
Idee achter kolomgeneratie voor LP Baikenni 1. Begin met een kleine verzameling nijpatronen. 2. Lo voor die nijpatronen de LP-relaxatie op. 3. Ga na of de oploing verbeterd kan worden door een nieuw nijpatroon te gebruiken. 4. Zo nee optimale oploing gevonden. 5. Zo ja, voeg dit nijpatroon toe en ga naar tap 2. Indien gereduceerde koten (z 1 -c 1 ) 0, (z 2 -c 2 ) 0,, (z n -c n ) 0, dan i de huidige oploing optimaal. In dit voorbeeld z j = π 1 a 1,j + π 2 a 2,j + + π k a k,j π 1 duale multiplier bij de beperking voor b 1 cm, enz. De π waarden zijn bekend! C j =1 21 22 Logich gevolg Slimmere uitwerking Wanneer je alle (z j -c j ) waarden hebt, dan zoek je een variabele x j met z j -c j >0. Indien deze niet betaat, dan optimum gevonden. Al zo n x j wel betaat, dan kun je een betere oploing bereiken door x j te verhogen (in de `Alle (z j -c j ) waarden 0 komt overeen met `de grootte van de (z j -c j ) waarden i 0. Lo een maximalieringprobleem op: wat zijn de waarden (a 1,j,a 2,j,,a kj ) horend bij een geldig nijpatroon waarvoor geldt dat ze (z j -c j ) maximalieren? Omdat c j altijd 1 i kan je z j maximalieren huidige oploing geldt x j =0). 23 24
Pricing probleem Samenvatting: Oploing optimaal? Gebruik a i in plaat van a ij Maximalieer z j = π 1 a 1 + π 2 a 2 + + π k a k Lo `beperkte LP probleem op. Dit geeft de optimale oploing; de duale multiplier. onder de voorwaarde Lo weer het reulterende Knapzak op. (a 1,a 2,,a k ) vormt een geldig nijpatroon. Dit geeft een nieuw nijpatroon met (z j -c j )>0 of N.B. (a 1,a 2,,a k ) zijn nu variabelen! bewij optimaliteit. Voeg dit toe, enz. 25 26 Wat heb je hieraan? Gate aignment op Schiphol Deze oploing kan worden gebruikt om een goede benadering te vinden door bijv. Alle fractionele x j variabelen naar boven afronden (geeft toegelaten oploing). Het ILP-probleem oploen met alleen de nijpatronen die je nu hebt gevonden. 27 28
Wat i het probleem? Kotenfunctie We hebben een verzameling vluchten: Aankomt- en vertrektijd Type vliegtuig Herkomt en betemming Eventuele voorkeuren van de maatchappij Grondafhandelaar En we hebben een verzameling gate: Mogelijke regio' (Schengen/EU/Non-EU) Mogelijke vliegtuigtype (grootte) Mogelijke grondafhandelaren Gezocht: een optimale planning Robuute oploingen Variantie: (tuentijden) 2 Of oortgelijke functie Eventueel correctie voor: Vluchten zelfde maatchappij Vluchten zelfde grondafhandelaar Betrouwbaarheid maatchappij 29 30 Twee faen aanpak ILP-model fae 1 Gateplannen: verzameling vluchten op een gate 1. Zoek voor elke groep van `gelijke gate een even groot aantal gateplannen. 2. Koppel de gateplannen aan fyieke gate. Model min.t. x c x a i x i x geeft electie van plan aan c : koten van plan a i =1 al vlucht i in plan = 1 overige beperkingen {0,1} 31 32
Rekenreultaten Meer weten Een dagje Schiphol: Looptijd LP: 70-234 econden Looptijd ILP: 5-333 econden Mater curuen van het Landelijk Netwerk Mathematiche Belikunde (LNMB) Mater Applied Computing Science 33 34