8. Ensimmäisen käyvän kantaratkaisun haku

Samankaltaiset tiedostot
4. Kokonaislukutehtävän ja LP:n yhteyksiä

Luento 4: Lineaarisen tehtävän duaali

Jälki- ja herkkyysanalyysi. Tutkitaan eri kertoimien ja vakioiden arvoissa tapahtuvien muutosten vaikutusta optimiratkaisuun

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Demo 1: Simplex-menetelmä

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Piiri K 1 K 2 K 3 K 4 R R

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Johdatus verkkoteoriaan luento Netspace

Mat Lineaarinen ohjelmointi

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

Lineaarinen optimointitehtävä

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Mat Lineaarinen ohjelmointi

MS-C2105 Optimoinnin perusteet Malliratkaisut 4

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

3 Simplex-menetelmä. c T x = min! Ax = b (x R n ) (3.1) x 0. Tarvittaessa sarakkeiden järjestystä voidaan vaihtaa, joten voidaan oletetaan, että

Ovatko seuraavat väittämät oikein vai väärin? Perustele vastauksesi.

Luento 3: Simplex-menetelmä

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Talousmatematiikan perusteet: Luento 11. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö

Luento 7: Kokonaislukuoptimointi

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

73125 MATEMAATTINEN OPTIMOINTITEORIA 2

Malliratkaisut Demot

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Luento 7: Kokonaislukuoptimointi

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita.

Talousmatematiikan perusteet: Luento 15. Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta

Mat Lineaarinen ohjelmointi

Ennakkotehtävän ratkaisu

1 Johdanto LP tehtävän luonteen tarkastelua Johdanto herkkyysanalyysiin Optimiarvon funktio ja marginaalihinta

12. Hessen matriisi. Ääriarvoteoriaa

Talousmatematiikan perusteet: Luento 14. Rajoitettu optimointi Lagrangen menetelmä: yksi yhtälörajoitus Lagrangen menetelmä: monta yhtälörajoitusta

Mat Lineaarinen ohjelmointi

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

2 Konveksisuus ja ratkaisun olemassaolo

Harjoitus 6 ( )

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Harjoitus 6 ( )

Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli.

Harjoitus 8: Excel - Optimointi

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä

Harjoitus 3 ( )

Gaussin ja Jordanin eliminointimenetelmä

Insinöörimatematiikka D

Harjoitus 3 ( )

Malliratkaisut Demot

KKT: log p i v 1 + v 2 x i = 0, i = 1,...,n.

Malliratkaisut Demot

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista

Malliratkaisut Demot

1 Matriisit ja lineaariset yhtälöryhmät

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Mat Lineaarinen ohjelmointi

b 1. b m ) + ( 2b Ax) + (b b)

Kokonaislukuoptimointi

Luento 2: Optimointitehtävän graafinen ratkaiseminen. LP-malli.

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

Matematiikka B2 - TUDI

Keskeiset tulokset heikko duaalisuus (duaaliaukko, 6.2.1) vahva duaalisuus (6.2.4) satulapisteominaisuus (6.2.5) yhteys KKT ehtoihin (6.2.

Aki Taanila LINEAARINEN OPTIMOINTI

Käänteismatriisi 1 / 14

Operatioanalyysi 2011, Harjoitus 3, viikko 39

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

2.5. Matriisin avaruudet ja tunnusluvut

Lineaarinen yhtälöryhmä

1. Lineaarinen optimointi

Malliratkaisut Demot

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.

OPERAATIOANALYYSI ORMS.1020

Kimppu-suodatus-menetelmä

802118P Lineaarialgebra I (4 op)

Matematiikka B2 - Avoin yliopisto

Malliratkaisut Demot

Käänteismatriisin ominaisuuksia

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Osakesalkun optimointi

Johdatus verkkoteoriaan 4. luento

Lineaarinen optimointitehtävä

Demo 1: Branch & Bound

Matriisit ja optimointi kauppatieteilijöille P

Luento 6: Monitavoiteoptimointi

Kaksirivisen matriisin determinantille käytämme myös merkintää. a 11 a 12 a 21 a 22. = a 11a 22 a 12 a 21. (5.1) kaksirivine

1 Rajoitettu optimointi I

Monitavoiteoptimointi

Luento 9: Yhtälörajoitukset optimoinnissa

Determinantit. Kaksirivinen determinantti. Aiheet. Kaksirivinen determinantti. Kaksirivinen determinantti. Kolmirivinen determinantti

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

Malliratkaisut Demot

Harjoitus 1 ( )

Transkriptio:

38 8. Ensimmäisen käyvän kantaratkaisun haku Edellä kuvattu simplex-algoritmi tarvitsee alkuratkaisuksi käyvän kantaratkaisun eli käyvän joukon kärkipisteen. Sellaisen voi konstruoida seuraavilla tavoilla: 1. Jos oikea puoli b 0 ja kerroinmatriisi A sisältää kaikki yksikkömatriisin sarakkeet, niin kanta B saadaan niistä. Tällainen tilanne on mm. silloin, kun tehtävä on alunperin standardimuotoinen epäyhtälöprobleema, joka pelivaramuuttujilla muutetaan yhtälömuotoon. 2. Jos yhtälöön Ax = b ( 0) lisätään jokaiselle riville vasemmalle puolelle keinomuuttujat x n+1,,x n+m (artificial variables), ja ne varustetaan kohdefunktiossa kertoimella M>0 ("suuri luku"), niin kyseessä on M-tekniikka. Silloin probleema on muotoa min z M = c 1 x 1 + +c n x n +Mx n+1 + +Mx n+m a 11 x 1 + +a 1n x n +x n+1 =b 1 a m1 x 1 + +a mn x n +x n+m =b m x 1,, x n, x n+1,, x n+m 0.

39 Ilmeisesti minimointi pitää huolen siitä, että keinomuuttujien arvot tulevat jossain vaiheessa nollaksi, jos alkuperäisellä tehtävällä on käypiä ratkaisuja. Tehtävän kerroinmatriisi sisältää yksikkömatriisin, joten simplex-algoritmi pääsee alkuun. Jos sitten jossain vaiheessa keinomuuttujia vastaavat sarakkeet ovat poistuneet kannasta B, niin ne voidaan poistaa probleemasta ja jatkaa vain alkuperäisillä muuttujilla. Jos optimiratkaisu sisältää keinomuuttujia positiiviarvoisina, alkuperäisen probleeman käypä joukko on tyhjä. 3. Samantapainen menettely on kaksivaihetekniikka, jossa ensimmäinen vaihe on kuten M-tekniikassa, mutta kohdefunktiona on pelkästään keinomuuttujien summa x n+1 + +x n+m, jota minimoidaan. Minimiarvoksi tulee nolla, jos alkuperäisellä probleemalla on käypiä ratkaisuja. Kun keinomuuttujia vastaavat sarakkeet ovat poistuneet kannasta, keinomuuttujat poistetaan probleemasta ja kohdefunktioksi vaihdetaan alkuperäinen kohdefunktio ja jatketaan löydetystä kannasta vaiheena kaksi. Jos optimi löytyy ennen kuin keinomuuttujat ovat tulleet nollaksi, niin alkuperäisen tehtävän käypä joukko on tyhjä. M-tekniikka ja kaksivaihetekniikka antavat aina lopulta käyvän kantaratkaisun tai kertovat käyvän joukon tyhjyydestä. Edellinen ottaa jo iteroinnin alusta huomioon alkuperäisenkin kohdefunktion pienentämisen, mutta oikean kokoisen M:n asettaminen voi olla vaikeaa. Kaksivaihetekniikka etenee nopeammin kohti käypyyttä eikä ota lainkaan huomioon alkuperäistä kohdefunktiota aluksi.

40 9. Duaalisuus ja varjohinnat Jokaisella lineaarisen optimoinnin tehtävällä on olemassa duaaliprobleema. Jos primaaliprobleema on standardi yhtälöprobleema P min z = c T x Ax = b x 0, niin sen duaaliprobleema on D max w = b T u A T u c (u etumerkiltään vapaa) Jokaiselle lineaarisen optimoinnin probleemalle voidaan määritellä duaaliprobleema. Maksimointi vaihtuu minimoinniksi ja päinvastoin. Kohdefunktion kerroinvektori ja oikea puoli vaihtavat paikkaa. Kerroinmatriisi transponoituu ja kutakin primaalin rajoitusehtoa vastaa duaalin muuttuja ja päinvastoin. Rajoitusehtojen tyypit ja muuttujien etumerkkiehdot vastaavat toisiaan oheisen taulukon mukaisesti: Maksimointi Minimointi raj muuttuja 0 raj muuttuja 0 raj = muuttuja vapaa muuttuja 0 raj muuttuja 0 raj muuttuja vapaa raj = Todetaan, että jos primaali on maksimointitehtävä, niin duaalissa minimoidaan, ja päinvastoin. Samoin nähdään, että primaalin rajoitusehtoa vastaa duaalin muuttuja ja rajoitusehdon tyyppi (epäyhtälö tai yhtälö) määrää duaalin muuttujan etumerkkiehdon Vastaavasti primaalin muuttujan etumerkkiehto määrää duaalin rajoitusehdon tyypin.

41 Näistä voidaan osoittaa, että duaalin duaali on primaali. Esimerkki Primaali: max z = 2x 1-3x 2 +5x 3 7x 1 +2x 2-4x 3 = 2 -x 1-4x 2 +2x 3 3 3x 1 +8x 2-5x 3 4 -x 1 +x 3 1 x 1 0, x 3 0 Duaali: min w = 2u 1 +3u 2 +4u 3 +u 4 7u 1 - u 2 +3u 3 -u 4 2 2u 1-4u 2 +8u 3 = -3-4u 1 +2u 2-5u 3 +u 4 5 u 2 0, u 3 0, u 4 0 Duaalitehtävän pääasiallinen käyttö on tarjota ala- tai ylärajoja lineaarisen optimoinnin probleeman kohdefunktiolle: Jos x on primaalin P ja u duaalin D käypä ratkaisu, niin w = b T u = (Ax) T u = x T A T u x T c = z eli aina on w z. Erityisesti on siis w z min ja w max z. Näin mikä hyvänsä duaalitehtävän käypä ratkaisu antaa alarajan minimointitehtävän kohdefunktiolle ja mikä hyvänsä käypä primaalitehtävän ratkaisu antaa ylärajan maksimointitehtävän kohdefunktiolle.

42 Jos joillakin x *, u * on voimassa w = z eli c T x * = b T u *, niin kyseessä ovat optimikohdat: c T x * = b T u * c T x kaikilla x & b T u * = c T x * b T u kaikilla u. Siis optimikohdassa pätee optimiarvojen yhtäsuuruus: w max = z min Tästä seuraa silloin: Jos duaalitehtävän ratkaisu on max w =, niin primaalin käypä joukko on tyhjä. Jos primaalin ratkaisu on min z = -, niin duaalin käypä joukko on tyhjä. Duaalitehtävän ratkaisu tulee simplex-algoritmissa ikään kuin kaupan päälle. Duaalitehtävän optimiratkaisu u * on laskettavissa primaalin optimaalisesta kannasta B seuraavasti: u * = (B -1 ) T c B. Tämä nähdään (tarkka todistus sivuutetaan) siitä, että optimissa z min = c B T x B * = c B T B -1 b = (B -1 b) T c B = b T ( B -1 ) T c B = b T u *.

43 Varjohinnat Jos tarkastellaan standardia epäyhtälötehtävää max z = c T x Ax b x 0 jossa oikea puoli b on parametrina, niin kohdefunktion optimiarvo on silloin b:n funktio: z max (b) = c B T x B = c B T B -1 b. Tästä nähdään (tarkka todistus sivuutetaan) silloin, että duaalitehtävän optimiratkaisut u j * ovat z max :n osittaisderivaattoja oikean puolen lukujen b j suhteen: z max = u * j. b j Lukuja u j * sanotaan tästä syystä varjohinnoiksi (shadow prices). Jos epäyhtälörajoitus j kuvaa jotakin resurssia, niin rajoituksen toteutuminen yhtälönä merkitsee, että resurssi on käytetty loppuun. Silloin resurssin lisääminen yhden yksikön verran lisää optimiratkaisussa katetuottoa varjohinnan verran. Jos siis resurssia saadaan hankittua hintaan, joka on alle varjohinnan, se kannattaa.

44 10. Kokonaislukutehtävän ja LP:n yhteyksiä Minkowskin esityslauseen avulla voidaan osoittaa, että jos P on rationaalinen monitahokas ja S sen sisällä olevien kokonaislukupisteiden joukko, niin co(s) on rationaalinen monitahokas. Tällöin siis luvun 2 tehtävällä (2) on suppein eli paras mahdollinen IP-formulaatio x co(s) = {x n A x b } x n, x 0, missä A ja b ovat monitahokkaan co(s) määrittelevät matriisit. Koska kokonaislukupistejoukon S konveksin verhon kärkipisteet ovat kokonaislukupisteitä, antaa tämän ratkaisu tavallisena lineaarisen optimoinnin tehtävänä (ilman kokonaislukuvaatimuksia) automaattisesti IP:n ratkaisun. Siis kokonaislukuprobleema x S n +, joka oli muotoiltu IP:nä x P = {x n Ax b} x n +, x 0, voidaan ratkaista (jatkuvamuuttujaisena) LP:nä x co(s) = {x n + Ax b}.

45 Tähän ratkaisemiseen voidaan käyttää esimerkiksi simplex-algoritmia. Tämä havainto on kuitenkin vain periaatteellinen: edellä mainitun konveksin verhon monitahokasmuodon co(s) = {x n A x b } löytäminen on laskennallisesti hyvin työläs. Ratkaisun olemassaolon kannalta kokonaislukuprobleemalla IP on kolme vaihtoehtoa: käypiä ratkaisuja ei ole, kohdefunktio saa rajoittamattoman suuria arvoja ("max z = ") tai löytyy äärellinen (mahdollisesti useampikin) optimikohta co(s):n kärkipisteistä. (Kaikkien optimikohtien ei tarvitse olla kärkipisteitä, jos optimaalisten kärkipisteiden konveksissa verhossa on kokonaislukuratkaisuja.) (Tässä edellytetään, että IP:n muotoilussa oleva monitahokas on rationaalinen. Irrationaalidatan tapauksessa voi käydä niin, että sup z ei ole saavutettavissa käyvässä joukossa.) Jos kokonaislukutehtävästä IP x P = {x n + Ax b} x n "unohdetaan" muuttujien kokonaislukuvaatimukset pois, saadaan relaksoitu tehtävä, IP:n LP-relaksaatio x P = {x n + Ax b}. Jos merkitään näiden optimiarvoja z * IP ja z * LP, niin aina pätee z * IP z * LP. Mikäli P = co(s), niin edellä pätee yhtäsuuruus eli tilanne on kokonaislukuoptimoinnin kannalta ihanteellinen, koska LP-relaksaatio ratkaisee IP:n.

46 Eräissä tapauksissa tilanne P = co(s) nähdään matriisin A kertoimista. Matriisi A on totaalisesti unimodulaarinen, jos sen jokainen alideterminantti on 0, 1 tai -1. Heti nähdään, että A:n alkioina voi olla vain lukuja 0, 1 ja -1 (1-rivisinä determinantteina). Ehto on siis varsin rajoittava, mutta kuitenkin moni erityisesti binäärioptimointiin kuuluva probleema on sitä muotoa. Totaalinen unimodulaarisuus säilyy transponoinnissa, rivin tai sarakkeen poistossa, rivien tai sarakkeiden paikan vaihdossa ja rivien tai sarakkeiden monistamisessa. Samoin jos A on totaalisesti unimodulaarinen, niin myös [A I] ja rref(a) ovat sitä. Tällöin voidaan todistaa (Hoffman-Kruskal, 1956): Rajoitetun monitahokkaan P = {x n + Ax b} kärkipisteet ovat kokonaislukupisteitä kaikilla kokonaislukuvektoreilla b täsmälleen silloin, kun A on totaalisesti unimodulaarinen matriisi. Todistus perustuu oleellisesti Cramerin sääntöön sovellettuna yhtälöryhmään Bx B = b, missä B on kärkipisteen eli kantaratkaisun määrittelevä ei-singulaarinen kantamatriisi. Esimerkki. Kuljetusongelma eli Transportation Problem Eräs varhainen sovellus lineaarisessa optimoinnissa oli kuljetusten optimointi. Perusmallissa on yksi tuote, jota valmistetaan useassa eri paikassa ja jota on kuljetettava eri asiakkaille. Yritys valmistaa samaa tuotetta m:ssä tehtaassa O 1,, O m, joista tuotteet on toimitettava n:lle asiakkaalle D 1,, D n. Valmistusmäärät ovat s i, i=1,,m kussakin tehtaassa i, ja asiakkaiden tilaukset ovat d j, j=1,,n kullakin asiakkaalla j. Kuljetuskustannukset tehtaalta i asiakkaalle j ovat c ij kuljetettavaa yksikköä kohti. Muuttujina ovat kuljetusmäärät x ij tehtaalta i asiakkaalle j.

47 Kuljetuskustannukset minimoiva kuljetussuunnitelma saadaan lineaarisen optimoinnin mallista min z = m n i= 1 j= 1 cx ij ij m xij = d j ( j = 1,, n) i= 1 n xij = si ( i = 1,, m) j= 1 x 0 ( i = 1,, m; j = 1,, n) ij Kuljetusongelma voidaan esittää oheisena verkkona (kaikkia nuolia ei ole tässä merkitty näkyviin. s1 O1 D1 d1 si Oi Dj dj sm Om Dn dn Kuljetusmallin tulee ratkaisua varten olla tasapainossa eli kokonaistarjonnan on oltava sama kuin kokonaiskysynnän. Jokainen kuljetusongelma voidaan tarvittaessa tasapainottaa ottamalla käyttöön keinotekoiset dummy tehtaat (jos tuotanto pienempi kuin kysyntä) tai dummy asiakkaat (jos kysyntä pienempi kuin tuotanto). Voidaan osoittaa, että kuljetusongelman kerroinmatriisi on totaalisesti unimodulaarinen.