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

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

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

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Harjoitus 3 ( )

Malliratkaisut Demot

Harjoitus 3 ( )

Demo 1: Simplex-menetelmä

Mat Lineaarinen ohjelmointi

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Mat Lineaarinen ohjelmointi

Insinöörimatematiikka D

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Lineaarinen optimointitehtävä

73125 MATEMAATTINEN OPTIMOINTITEORIA 2

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

Luento 7: Kokonaislukuoptimointi

Piiri K 1 K 2 K 3 K 4 R R

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

Demo 1: Branch & Bound

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

Harjoitus 6 ( )

Malliratkaisut Demot

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

Johdatus verkkoteoriaan luento Netspace

2.5. Matriisin avaruudet ja tunnusluvut

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

Luento 7: Kokonaislukuoptimointi

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

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

Käänteismatriisin ominaisuuksia

Talousmatematiikan perusteet: Luento 9. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Transponointi Matriisitulo

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

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ä

Matematiikka B2 - TUDI

Lineaarinen optimointitehtävä

Malliratkaisut Demo 4

Ennakkotehtävän ratkaisu

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

Malliratkaisut Demot

802118P Lineaarialgebra I (4 op)

Malliratkaisut Demo 4

Luento 4: Lineaarisen tehtävän duaali

Matematiikka B2 - Avoin yliopisto

Lineaariset yhtälöryhmät ja matriisit

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!

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi

Talousmatematiikan perusteet: Luento 10. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Matriisitulo Determinantti

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

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

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Malliratkaisut Demot

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.

Johdatus verkkoteoriaan 4. luento

Determinantti 1 / 30

Käänteismatriisi 1 / 14

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

Harjoitus 6 ( )

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Mat Investointiteoria Laskuharjoitus 4/2008, Ratkaisut

2 Konveksisuus ja ratkaisun olemassaolo

Mat Lineaarinen ohjelmointi

Malliratkaisut Demot

1 Rajoitettu optimointi I

7 Vapaus. 7.1 Vapauden määritelmä

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

1 Matriisit ja lineaariset yhtälöryhmät

12. Hessen matriisi. Ääriarvoteoriaa

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/81

Matriisit ja optimointi kauppatieteilijöille P

Vektoreiden virittämä aliavaruus

5 DIFFERENTIAALIYHTÄLÖRYHMÄT

2.8. Kannanvaihto R n :ssä

Matriisit ja optimointi kauppatieteilijöille P

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

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

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut

Mat Lineaarinen ohjelmointi

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

Kokonaislukuoptimointi

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

Gaussin ja Jordanin eliminointimenetelmä

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Talousmatematiikan perusteet: Luento 9

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

1.1. Määritelmiä ja nimityksiä

1 Määrittelyjä ja aputuloksia

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Johdatus tekoälyn taustalla olevaan matematiikkaan

Transkriptio:

8 4. 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 co(s) = { R n A ' b ' } Z n,, 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 S Z n +, joka oli muotoiltu IP:nä P = { R n A b} Z n +,, 0, voidaan ratkaista (jatkuvamuuttujaisena) LP:nä co(s) = { R n + A b}. Tähän ratkaisemiseen voidaan käyttää esimerkiksi simple-algoritmia. Tämä havainto on kuitenkin vain periaatteellinen: edellä mainitun konveksin verhon monitahokasmuodon co(s) = { R n A ' b ' } löytäminen on laskennallisesti hyvin työläs.

9 Ratkaisun olemassaolon kannalta kokonaislukuprobleemalla IP on kolme vaihtoehtoa: käypiä ratkaisuja ei ole, kohdefunktio saa rajoittamattoman suuria arvoja ("ma z = ") tai löytyy äärellinen (mahdollisesti useampikin) optimikohta co(s):n kärkipisteistä. (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 P = { R n + A b} Z n "unohdetaan" muuttujien kokonaislukuvaatimukset pois, saadaan relaksoitu tehtävä, IP:n LP-relaksaatio P = { R n + A 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. 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. Tällöin voidaan todistaa: Jos P on rajoitettu, niin sen kärkipisteet ovat kokonaislukupisteitä täsmälleen silloin kun A on totaalisesti unimodulaarinen matriisi ja b on kokonaislukuvektori. 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 (esim. assignment ). 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ä. Edellisten tulosten todistukset perustuuvat oleellisesti Cramerin sääntöön sovellettuna yhtälöryhmään B B = b, missä B on kärkipisteen eli kantaratkaisun määrittelevä eisingulaarinen kantamatriisi (ks. Matemaattinen optimointiteoria 1).

10 5. Verkon virtausprobleemat Verkkoihin ja graafeihin liittyvät optimointitehtävät tarjoavat monia kokonaislukuoptimoinnin malleja. Niiden parista löytyy myös suurin osa totaalista unimodulaarisuutta hyödyntävistä kokonaislukumalleista. Verkko (network) koostuu solmuista (node, verte) ja niitä yhdistävistä kaarista (arc, edge). Kaareen liittyy aina suunta, josta syystä sitä sanotaan myös nuoleksi. Verkon rakenne voidaan antaa parilla (V,E), missä V on solmujen joukko ja E on solmuparien avulla ilmaistujen kaarien multijoukko. Multijoukko eroaa tavallisesta joukon käsitteestä siten, että alkio voi esiintyä siinä monta kertaa, alkion multiplisiteetin mukaisesti. Esimerkki 1. Viiden solmun verkko, jossa V={1,2,3,4,5} ja E = {(1,3), (1,4), (1,4), (3,2),(2,5),(5,2),(5,5),(5,1)}. Tässä (i,j) tarkoittaa kaarta solmusta i solmuun j. Siis kaari (1,4) esiintyy kahteen kertaan eli solmusta 1 solmuun 4 menee kaksi rinnakkaista kaarta, kaaren (1,4) multiplisiteetti on 2. Kaarella (i,j) on suunta i:stä j:hin eli (2,5) ja (5,2) ovat eri kaaria, vastakkaissuuntaisia. Verkon rakenne voidaan määrittää myös vierussolmumatriisilla A = (a ij ), missä a ij = solmusta i solmuun j menevien kaarien lukumäärä. Siis a ij = 0, jos kaarta ei ole, a ij = 1, jos kaaria on yksi, ja a ij = k, jos rinnakkaisia kaaria solmusta i solmuun j on k. Mikä on edellisen esimerkin vieruspistematriisi? Verkkoon liitetään virtaus (flow), joka kulkee solmusta toiseen kaaria pitkin kaaren suuntaan. Virtausta voi syntyä solmussa, jolloin solmu on lähdesolmu tai sitä voi upota solmuun, jolloin solmu on kohdesolmu. Lähdesolmun j tarjonta (supply) on annetulla välillä [s j1,s j2 ] joka voi olla yksi pistekin (s j1 =s j2 ) tai mitä hyvänsä: [0, ). Samoin kohdesolmun j kysyntä (demand) on annetulla välillä [d j1,d j2 ], joka sekin voi olla määrätty täsmälliseksi arvoksi (d j1 =d j2 ) tai olla määrittelemätön: [0, ). Jos solmu ei ole kumpaakaan edellä mainittua tyyppiä, sitä voidaan sanoa kauttakulkusolmuksi. (Solmu ei voi olla samanaikaisesti lähde- ja kohdesolmu, mutta voi olla samalla lähde- ja kauttakulkusolmu tai kohde- ja kauttakulkusolmu.) Virtausta ei synny eikä häviä verkossa muuten kuin lähde- ja kohdesolmuissa, ja virtauksen säilymislaki vaatii kussakin solmussa, että tuleva virtaus = lähtevä virtaus (jolloin tulevaan virtaukseen luetaan mahdollinen lähdesolmun tuotto ja lähtevään virtaukseen mahdollinen kohdesolmun kulutus). Kaaren (i,j) kannalta virtauksella voi olla ala - ja yläraja, joka ilmaistaan välinä [l ij,u ij ]. Tämä väli voi olla myös yksi piste, jolloin se pakottaa virtauksen kaarella luvuksi l ij = u ij tai virtaus voi olla vapaa: [0, ). Virtaus, joka toteuttaa virtauksen säilymislain ja kaarien rajoitukset, on käypä virtaus. Sen arvot ij kullakin kaarella (i,j) kertovat virtausongelman käyvän ratkaisun. Kun kaariin (i,j) liitetään vielä virtauskustannus c ij, saadaan verkon minimikustannusvirtausmalli (Minimal Cost Network Flow Model), jossa haetaan virtausta, joka minimoi kokonaiskustannukset. Hyvin moni optimoinnin ja

11 operaatiotutkimuksen ongelma voidaan pukea verkon minimikustannusvirtausmalliksi. Esimerkki 2. Klassinen kuljetusongelma (transportation problem) on virtausongelma luontevimmillaan. Kuljetuskustannukset minimoiva verkkomalli saadaan kun tehtaat otetaan lähdesolmuiksi ja asiakkaat kohdesolmuiksi. Esimerkki 3. Sijoitteluprobleema eli Assignment Problem Verkkomallissa voidaan nyt virtaavaksi suureeksi valita vaikka työntekijät, jotka menevät ("virtaavat") siihen työhön, johon heidät valitaan. Verkon rakenne ja siihen liittyvä virtaus voidaan kuvata lineaarisina yhtälöinä ja epäyhtälöinä, jolloin virtauksiin liittyvät optimointitehtävät muotoutuvat matemaattisen optimoinnin malleiksi lineaarisin rajoitusehdoin. Erityisesti minimikustannusvirtausmalli on silloin lineaarisen optimoinnin tehtävä ja kokonaislukuoptimointiin kuuluva, jos virtauksen ainoa sallittu muoto on kokonaisluku. Verkon (V,E) algebrallisen mallin muuttujat ovat kaarien virtaukset ij, (i,j) sekä lähdesolmujen i tarjontamuuttujat i ja kohdesolmujen j kysyntämuuttujat j. Jokaista verkon solmua i V kohti saadaan virtauksen säilymislain johdosta säilymisyhtälö, jossa tuleva virtaus + solmussa syntyvä virtaus (jos lähdesolmu) - lähtevä virtaus - solmussa kulutettava virtaus (jos kohdesolmu) = 0. Koska mikään solmu ei voi olla samalla lähde- ja kohdesolmu, on siis säilymisyhtälössä solmusta lähtevien ja sinne tulevien kaarien virtausmuuttujat ja joko tarjontamuuttuja tai kysyntämuuttuja (mutta ei molempia). Säilymisyhtälöiden tyypit ovat siis seuraavat: Lähdesolmun i yhtälö ji ( j, i) ij j) + i = 0 Kohdesolmun j yhtälö ij j) ji ( j, i) j = 0 Kauttakulkusolmun k yhtälö ik k ) ki ( k, i) = 0 Virtausmuuttujille ij on lisäksi mahdolliset ala- ja ylärajat: Kaaren (i,j) virtauksen rajat l ij ij u ij Lisäksi lähdesolmun s tarjonnalle on tarjontarajat ja kohdesolmulle j kysyntärajat:

12 Lähdesolmun i tarjonnan rajat s i1 s s i2 Kohdesolmun j kysynnän rajat d j1 j d j2 Koska virtaus oletetaan aina ei-negatiiviseksi (virtauksen suuntaan), niin edellä olevat rajat ovat virheettömässä datassa ei-negatiivisia. Jos rajoja ei ole erikseen annettu, niiden oletusarvona on alaraja 0 ja yläraja. Edellä mainitut säilymisyhtälöt ja rajat toteuttavat virtaukset ij muodostavat verkon virtausongelman käyvän ratkaisun. Optimivirtausmalliin liittyy vielä lineaarinen kohdefunktio. Kuhunkin kaareen (i,j) liittyy luku c(i,j), joka on luonteeltaan kustannus (minimointitehtävät) tai hyöty (maksimointitehtävät). Kohdefunktio f() = c ij ij j) Minimikustannusvirtausmallissa kohdefunktio ilmoittaa yhteenlasketut virtauskustannukset jota minimoidaan. Muuttujavektori sisältää kaikki virtaukset ij yhdessä pystyvektorissa siten, että toinen indeksi kulkee nopeammin kuin ensimmäinen (sanakirjajärjestys 11, 12, 13,, 21, 22, ). Kun muuttujat ryhmitellään säilymisyhtälöissä siten, että samaan kaareen liittyvät muuttujat ovat samalla kohdalla, tulevat yhtälöryhmän kerroinmatriisissa sarakkeet (pystyrivit) kertomaan, mihin solmuun kaari on tulossa (+1) ja mistä solmusta lähdössä (-1). Koska jokaisella kaarella on täsmälleen yksi alku- ja loppusolmu, on siis jokaisella sarakkeella täsmälleen yksi 1 ja -1. Vaakarivit taas vastaavat solmuja, ja niillä voi olla pelkästään 1:siä, pelkästään (-1):siä tai yleisimmin molempia vaihtelevin lukumäärin siitä riippuen, kuinka moni kaari solmuun tulee ja siitä lähtee. Kyseisen yhtälöryhmän kerroinmatriisi on verkon solmu-kaari-matriisi eli (ns. täysi) insidenssimatriisi. Minimikustannusvirtausmalli on siis matriisimuodossa min f() = c T A + s - d = 0 l u s 1 s s 2 d 1 d d 2 Tässä A on verkon insidenssimatriisi (kokoa mn, kun verkossa on m solmua ja n kaarta), s on tarjontavektori, m1-vektori, jossa on solmujen tuotannot, d on kysyntävektori, m1-vektori, jossa on solmujen kysynnät, on virtausvektori, n1- vektori, jossa on kaarien virtaukset ja c on kustannusvektori, n1-vektori, jossa on

13 kaarien kustannukset. Kyseessä on siis lineaarisen optimoinnin probleema, muuttujina vektorit, s ja d (joiden komponenteista osa voi olla vakioitakin). Huomattakoon, että tässä mallissa s ja d eivät ole suoraan kaariin liittyviä virtauksia eikä niihin siitä syystä liity kustannuskertoimia. Jos niihin halutaan liittää kustannuksia, lisätään malliin niitä varten tarpeelliset solmut ja kaaret. Minimikustannusvirtausmalli sopii hyvin moneen tilanteeseen, varsinkin jos "virtaava" suure valitaan sopivasti. Esimerkki 4. Tieverkosta on haettava lyhin reitti kahden paikan välille. Miten mallintaisit probleemaa minimikustannusvirtauksella? Edellä määritelty insidenssimatriisi A on totaalisesti unimodulaarinen, joten mikäli kysyntä ja tarjonta ovat kokonaislukuja, niin optimivirtaus on automaattisesti kokonaislukuarvoista.