Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Samankaltaiset tiedostot
Lineaarinen optimointitehtävä

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

Kokonaislukuoptimointi

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

Esimerkkejä kokonaislukuoptimointiongelmista

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

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

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

Lineaarinen optimointitehtävä

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Kokonaislukuoptiomointi Leikkaustasomenetelmät

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

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

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

Mat Lineaarinen ohjelmointi

Lineaariset kongruenssiyhtälöryhmät

Malliratkaisut Demot

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

Luento 7: Kokonaislukuoptimointi

Malliratkaisut Demot

Harjoitus 6 ( )

Luento 7: Kokonaislukuoptimointi

Demo 1: Branch & Bound

Malliratkaisut Demot

Harjoitus 5 ( )

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ä

Harjoitus 6 ( )

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Harjoitus 5 ( )

Malliratkaisut Demot

Harjoitus 3 ( )

2.5. Matriisin avaruudet ja tunnusluvut

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

Harjoitus 3 ( )

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

Insinöörimatematiikka D

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

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

Demo 1: Simplex-menetelmä

Piiri K 1 K 2 K 3 K 4 R R

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.

Numeeriset menetelmät TIEA381. Luento 4. Kirsi Valjus. Jyväskylän yliopisto. Luento 4 () Numeeriset menetelmät / 44

Malliratkaisut Demot

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

Käänteismatriisin ominaisuuksia

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

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

MS-C1340 Lineaarialgebra ja

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Malliratkaisut Demot 6,

Mat Lineaarinen ohjelmointi

Johdatus verkkoteoriaan 4. luento

Johdatus verkkoteoriaan luento Netspace

Matematiikka B2 - Avoin yliopisto

Matriisilaskenta Luento 8: LU-hajotelma

Numeeriset menetelmät

802118P Lineaarialgebra I (4 op)

Insinöörimatematiikka D

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

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

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!

Matematiikka B2 - TUDI

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

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

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

Luento 4: Lineaarisen tehtävän duaali

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

Numeeriset menetelmät

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

Johdatus tekoälyn taustalla olevaan matematiikkaan

2.8. Kannanvaihto R n :ssä

Kombinatorinen optimointi

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

Malliratkaisut Demot

Insinöörimatematiikka D

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

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

Iteratiiviset ratkaisumenetelmät

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Numeeriset menetelmät

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

Kimppu-suodatus-menetelmä

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

TIEA382 Lineaarinen ja diskreetti optimointi

Mat Lineaarinen ohjelmointi

Harjoitus 1 ( )

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

2 Konveksisuus ja ratkaisun olemassaolo

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TEKNILLINEN TIEDEKUNTA, MATEMATIIKAN JAOS

Ominaisarvo-hajoitelma ja diagonalisointi

MS-C1340 Lineaarialgebra ja

Malliratkaisut Demot

Tehtävä 2. Osoita, että seuraavat luvut ovat algebrallisia etsimällä jokin kokonaislukukertoiminen yhtälö jonka ne toteuttavat.

Malliratkaisut Demot

Sekalukuoptimointi. Lehtonen, Matti Matemaattisen ohjelmoinnin seminaari, Tietojenkäsittelytieteen laitos Helsingin Yliopisto

1 Lukujen jaollisuudesta

Transkriptio:

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen Jos sallittuja kokonaislukuratkaisuja ei ole kovin paljon, ne voidaan käydä kaikki läpi yksitellen Käytännössä tämä ei kuitenkaan ole yleensä mahdollista Ei ole olemassa ratkaisumenetelmää, joka toimisi aina hyvin ja tehokkasti kaikille kokonaislukuoptimointitehtäville (vrt. simplex lineaarisille jatkuville tehtäville) 1

Yleinen ratkaisuperiaate: Muodostetaan vastaava jatkuva optimointitehtävä: x j N = x j 0 ja x j = 0 tai 1 = 0 x j 1 Ratkaistaan jatkuva tehtävä ja jatketaan sen optimoimista Lisätään tehtävään erityisrajoituksia, jotka pakottavat iteratiivisesti kokonaislukurajoitteet voimaan Erityisrajoitusten päätyypit: leikkaustaso (cutting plane) haarautuminen (branch-and-bound) 2

Täysin unimodulaarinen kerroinmatriisi Matriisi A on täysin unimodulaarinen, jos sen jokaisen neliöalimatriisin determinantti on 0, +1 tai 1 = Täysin unimodulaarisen matriisin alkioina voi olla vain 0, +1 tai 1 3

Yhtälörajoitteet matriisimuodossa: Ax = b Olkoon A = [B, N], missä B sisältää perusmuuttujien joukkoa B vastaavat sarakkeet ja N muut sarakkeet Olkoon x = [x B,x N ] = Ax = b Bx B + Nx N = b x B = B 1 b B 1 Nx N 4

= Perusmuoto: x B = B 1 b B 1 Nx N Vastaava perusratkaisu: x B = B 1 b x N = 0 5

Cramerin sääntö: B 1 = B / B, missä B on B:n liittomatriisi ja B on B:n determinatti Jos A on täysin unimodulaarinen ja kaikki b:n alkiot ovat kokonaislukuja = Kaikki B :n alkiot ovat joko 0, +1 tai 1 ja B on joko +1 tai 1 = Kaikki B 1 :n alkiot ovat joko 0, +1 tai 1 = Kaikki x B :n alkiot ovat kokonaislukuja = Kokonaislukuoptimointitehtävällä ja vastaavalla jatkuvalla tehtävällä on sama optimiratkaisu 6

Esimerkki: Kolmen henkilön ja kolmen työn kohdistusongelma Jokainen henkilö suorittaa yhden työn, ja jokaisen työn suorittaa yksi henkilö Kun henkilö i suorittaa työn j, siitä aiheutuu kustannus c ij Tavoite: Kohdista henkilöt töihin siten, että kokonaiskustannukset minimoituvat 7

x ij = 1, jos henkilö i suorittaa työn j 0, muuten min c 11 x 11 + c 12 x 12 + c 13 x 13 + c 21 x 21 + c 22 x 22 + c 23 x 23 + c 31 x 31 + c 32 x 32 + c 33 x 33 kun x 11 + x 12 + x 13 = 1 x 21 + x 22 + x 23 = 1 x 31 + x 32 + x 33 = 1 x 11 + x 21 + x 31 = 1 x 12 + x 22 + x 32 = 1 x 13 + x 23 + x 33 = 1 x 11, x 12, x 13, x 21, x 22, x 23, x 31, x 32, x 33 = 0 tai 1 8

= A = 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 Induktio = Matriisi A on täysin unimodulaarinen 9

Ratkaisun pyöristäminen Esimerkki: Kapsäkkiongelma max 5x 1 + 3x 2 + 4x 3 kun 3x 1 + 2x 2 + 4x 3 6 x 1, x 2, x 3 = 0 tai 1 Vastaavan jatkuvan tehtävän ratkaisu: (x 1, x 2, x 3 ) = (1,1,1/4) Kokonaislukuoptimointitehtävän ratkaisu: (x 1, x 2, x 3 ) = (1,1,0) = Tässä tapauksessa pyöristäminen toimii 10

Sijoitusongelma Olkoon m paikkaa, joihin voidaan perustaa tuotantolaitos, ja olkoon n asiakasta Asiakas j tarvitsee tuotetta määrän d j Paikkaan i perustettavasta tuotantolaitoksesta aiheutuu kiinteä kustannus f i Tuotantolaitoksen i kapasiteetti on M i Jos paikassa i valmistettu tuote kuljetetaan asiakkaalle j, siitä aiheutuu kustannus c ij Tavoite: Määrää ne paikat, joihin laitos perustetaan sekä tuotteen kuljetusmäärät asiakkaille siten, että kokonaiskustannukset minimoituvat 11

x ij = laitoksesta i asiakkaalle j kuljetettava määrä x i = 1, jos paikkaan i perustetaan laitos 0, jos paikkaan i ei perusteta laitosta min kun m n i=1 j=1 m i=1 n j=1 c ij x ij + x ij = d j x ij M i x i m i=1 f i x i j = 1,..., n i = 1,..., m x ij 0 i = 1,..., m, j = 1,..., n x i = 0 tai 1 i = 1,..., m 12

Esimerkki: Sijoitusongelma max 93x 11 + 70x 12 + 48x 13 + 68x 14 + 81x 15 + 45x 21 + 89x 22 + 97x 23 + 85x 24 + 96x 25 + 92x 31 + 93x 32 + 58x 33 + 37x 34 + 99x 35 + 55x 41 + 103x 42 + 55x 43 + 57x 44 + 38x 45 + 74x 51 + 60x 52 + 78x 53 + 54x 54 + 52x 55 kun x 11 + x 21 + x 31 + x 41 + x 51 = 1 x 12 + x 22 + x 32 + x 42 + x 52 = 1 x 13 + x 23 + x 33 + x 43 + x 53 = 1 x 14 + x 24 + x 34 + x 44 + x 54 = 1 x 15 + x 25 + x 35 + x 45 + x 55 = 1 x 11 + x 12 + x 13 + x 14 + x 15 = 2x 1 x 21 + x 22 + x 23 + x 24 + x 25 = 3x 2 x 31 + x 32 + x 33 + x 34 + x 35 = 2x 3 x 41 + x 42 + x 43 + x 44 + x 45 = 3x 4 x 51 + x 52 + x 53 + x 54 + x 55 = 2x 5 x ij N, x i = 0 tai 1 i = 1,...,5, j = 1,...,5 13

Vastaavan jatkuvan tehtävän ratkaisu: (x 1, x 2, x 3, x 4, x 5 ) = (1/2,1/3,1/2,1/3,1/2) Kokonaislukuoptimointitehtävän sallitut ratkaisut: (x 1, x 2, x 3, x 4, x 5 ) = (1,1,0,0,0) (x 1, x 2, x 3, x 4, x 5 ) = (1,0,0,1,0) (x 1, x 2, x 3, x 4, x 5 ) = (0,1,1,0,0) (x 1, x 2, x 3, x 4, x 5 ) = (0,1,0,0,1) (x 1, x 2, x 3, x 4, x 5 ) = (0,0,1,1,0) (x 1, x 2, x 3, x 4, x 5 ) = (0,0,0,1,1) = Tässä tapauksessa pyöristäminen ei toimi 14

Leikkaustasomenetelmä Ratkaistaan vastaava jatkuva tehtävä Jos ratkaisu on kokonaislukuratkaisu, lopetetaan Muuten lisätään tehtävään leikkaustasorajoite siten, että se pienentää sallittua aluetta, mutta säilyttää siinä kokonaislukupisteet Ratkaistaan saatu uusi tehtävä Näin jatketaan kunnes saadaan kokonaislukuratkaisu (tai kunnes ratkaisu osoittautuu rajoittamattomaksi) 15

Oletetaan, että jatkuva tehtävä on ratkaistu simplex-algoritmilla, jolloin ratkaisu on perusmuodossa x j + a jk x k = b j j B k/ B Pyöritys alaspäin: Olkoon y suurin kokonaisluku siten, että se on y Koska x j 0 kaikilla j = x j + k/ B a jk x k b j Koska x j kokonaisluku kaikilla j = x j + a jk x k b j k/ B 16

Vähennetään yhtälöt toisistaan: x j + = k/ B x j + k/ B a jk x k = b j a jk x k b j ( ajk a jk ) x k b j b j k/ B Merkitään f jk = a jk a jk ja f j = b j b j, jolloin 0 f jk < 1 ja 0 f j < 1 17

Saadaan leikkaustasorajoite k/ B f jk x k f j Tämä lisätään tehtävään muodossa missä s on puutemuuttuja k/ B f jk x k + s = f j Koska f j 0, perusratkaisu ei ole sallittu (paitsi jos f j = 0) = tarvitaan duaali-simplex-iteraatioita 18

Esimerkki: max x 2 kun 3x 1 + 2x 2 6 3x 1 + 2x 2 0 x 1, x 2 N Vastaava jatkuva tehtävä: max x 2 kun 3x 1 + 2x 2 6 3x 1 + 2x 2 0 x 1, x 2 0 19

Muunnetaan minimointitehtäväksi ja lisätään puutemuuttujat: min x 2 kun 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = 0 x 1, x 2, x 3, x 4 0 Aloitusperusmuodon simplex-taulukko: x 1 x 2 x 3 x 4 0 1 0 0 0 3 2 1 0 6 3 2 0 1 0 20

Simplex-iteraatiot: 0 1 0 0 0 3 2 1 0 6 3 2 0 1 0 3/2 0 0 1/2 0 6 0 1 1 6 3/2 1 0 1/2 0 0 0 1/4 1/4 3/2 1 0 1/6 1/6 1 0 1 1/4 1/4 3/2 21

Optimaalinen simplex-taulukko: x 1 x 2 x 3 x 4 0 0 1/4 1/4 3/2 1 0 1/6 1/6 1 0 1 1/4 1/4 3/2 Ratkaisu: (x 1, x 2, x 3, x 4 ) = (1,3/2,0,0) Objektifunktion arvo: 3/2 22

Ratkaisu ei ole kokonaislukuratkaisu, joten lisätään leikkaustasorajoite: Objektifunktioriviltä saadaan z + 1 4 x 3 + 1 4 x 4 = 3 2 = 1 4 x 3 + 1 4 x 4 1 2 Lisätään tämä simplex-taulukkoon muodossa 1 4 x 3 1 4 x 4 + s 1 = 1 2 23

= x 1 x 2 x 3 x 4 s 1 0 0 1/4 1/4 0 3/2 1 0 1/6 1/6 0 1 0 1 1/4 1/4 0 3/2 0 0 1/4 1/4 1 1/2 Taulukon perusratkaisu muunnetaan sallituksi duaali-simplex-algoritmilla 24

Yksi duaali-simplex-iteraatio: 0 0 1/4 1/4 0 3/2 1 0 1/6 1/6 0 1 0 1 1/4 1/4 0 3/2 0 0 1/4 1/4 1 1/2 0 0 0 0 1 1 1 0 0 1/3 2/3 2/3 0 1 0 0 1 1 0 0 1 1 4 2 25

Optimaalinen simplex-taulukko: x 1 x 2 x 3 x 4 s 1 0 0 0 0 1 1 1 0 0 1/3 2/3 2/3 0 1 0 0 1 1 0 0 1 1 4 2 Ratkaisu: (x 1, x 2, x 3, x 4, s 1 ) = (2/3,1,2,0,0) Objektifunktion arvo: 1 26

Ratkaisu ei ole kokonaislukuratkaisu, joten lisätään leikkaustasorajoite: Ensimmäiseltä rajoiteriviltä saadaan x 1 1 3 x 4 + 2 3 s 1 = 2 3 = 2 3 x 4 + 2 3 s 1 2 3 Lisätään tämä simplex-taulukkoon muodossa 2 3 x 4 2 3 s 1 + s 2 = 2 3 27

= x 1 x 2 x 3 x 4 s 1 s 2 0 0 0 0 1 0 1 1 0 0 1/3 2/3 0 2/3 0 1 0 0 1 0 1 0 0 1 1 4 0 2 0 0 0 2/3 2/3 1 2/3 Taulukon perusratkaisu muunnetaan sallituksi duaali-simplex-algoritmilla 28

Yksi duaali-simplex-iteraatio: 0 0 0 0 1 0 1 1 0 0 1/3 2/3 0 2/3 0 1 0 0 1 0 1 0 0 1 1 4 0 2 0 0 0 2/3 2/3 1 2/3 0 0 0 0 1 0 1 1 0 0 0 1 1/2 1 0 1 0 0 1 0 1 0 0 1 0 5 3/2 1 0 0 0 1 1 3/2 1 29

Optimaalinen simplex-taulukko: x 1 x 2 x 3 x 4 s 1 s 2 0 0 0 0 1 0 1 1 0 0 0 1 1/2 1 0 1 0 0 1 0 1 0 0 1 0 5 3/2 1 0 0 0 1 1 3/2 1 Ratkaisu: (x 1, x 2, x 3, x 4, s 1, s 2 ) = (1,1,1,1,0,0) Objektifunktion arvo: 1 30

Ratkaisu on kokonaislukuratkaisu = Alkuperäisen maksimointitehtävän ratkaisu on (x 1, x 2 ) = (1,1), jossa objektifunktion arvo on 1 31

Haarautumismenetelmä Ratkaistaan vastaava jatkuva tehtävä Jos ratkaisu on kokonaislukuratkaisu, lopetetaan Muuten jaetaan sallittu alue uusilla rajoitteilla kahteen osaan siten, että jatkuva ratkaisu ei kuulu kumpaankaan Saadaan kaksi uutta tehtävää, jotka ratkaistaan Näin jatketaan kunnes uusia ratkaistavia tehtäviä ei enää ole 32

Maksimointitehtävä: Jos löydetään sallittu kokonaislukuratkaisu, saadaan alaraja kokonaislukuoptimointitehtävän objektifunktion arvolle = Niitä tehtäviä, joissa objektifunktion arvo on pienempi, ei enää tarvitse jakaa uusiksi tehtäviksi Minimointitehtävä: Jos löydetään sallittu kokonaislukuratkaisu, saadaan yläraja kokonaislukuoptimointitehtävän objektifunktion arvolle = Niitä tehtäviä, joissa objektifunktion arvo on suurempi, ei enää tarvitse jakaa uusiksi tehtäviksi 33

Esimerkki: max 5x 1 + 8x 2 kun x 1 + x 2 6 5x 1 + 9x 2 45 x 1, x 2 N Vastaava jatkuva tehtävä, tehtävä 0 : max 5x 1 + 8x 2 kun x 1 + x 2 6 5x 1 + 9x 2 45 x 1, x 2 0 34

Tehtävän 0 ratkaisu: (x 1, x 2 ) = (9/4,15/4) = (2.25,3.75) Objektifunktion arvo: 165/4 = 41.25 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan x 2 suhteen = x 2 3 ja x 2 4 Saadaan kaksi uutta tehtävää, tehtävät 1 ja 2 : max 5x 1 + 8x 2 max 5x 1 + 8x 2 kun x 1 + x 2 6 kun x 1 + x 2 6 5x 1 + 9x 2 45 5x 1 + 9x 2 45 x 2 3 x 2 4 x 1, x 2 0 x 1, x 2 0 35

Tehtävän 1 ratkaisu: (x 1, x 2 ) = (3,3) Objektifunktion arvo: 39 Ratkaisu on kokonaislukuratkaisu, joten tätä tehtävää ei enää jaeta Alaraja kokonaislukuoptimointitehtävän objektifunktion arvolle on 39 Tehtävän 2 ratkaisu: (x 1, x 2 ) = (9/5,4) = (1.8,4) Objektifunktion arvo: 41 Ratkaisu ei ole kokonaislukuratkaisu, ja objektifunktion arvo on suurempi kuin alaraja 39, joten jaetaan sallittu alue kahteen osaan muuttujan x 1 suhteen = x 1 1 ja x 1 2 36

Tehtävä 0: x 1 = 9/4 x 2 = 15/4 z = 165/4 x 2 3 x 2 4 Tehtävä 1: x 1 = 3 x 2 = 3 z = 39 Tehtävä 2: x 1 = 9/5 x 2 = 4 z = 41 x 1 1 x 1 2 37

Jaetaan tehtävä 2 tehtäviksi 3 ja 4 : max 5x 1 + 8x 2 max 5x 1 + 8x 2 kun x 1 + x 2 6 kun x 1 + x 2 6 5x 1 + 9x 2 45 5x 1 + 9x 2 45 x 2 4 x 2 4 x 1 1 x 1 2 x 1, x 2 0 x 1, x 2 0 Tehtävän 3 ratkaisu: (x 1, x 2 ) = (1,40/9) (1,4.44) Objektifunktion arvo: 365/9 40.56 Ratkaisu ei ole kokonaislukuratkaisu, ja objektifunktion arvo on suurempi kuin alaraja 39, joten jaetaan sallittu alue kahteen osaan muuttujan x 2 suhteen = x 2 4 ja x 2 5 Tehtävällä 4 ei ole ratkaisua, joten tätä tehtävää ei enää jaeta 38

Tehtävä 2: x 1 = 9/5 x 2 = 4 z = 41 x 1 1 x 1 2 Tehtävä 3: x 1 = 1 x 2 = 40/9 z = 365/9 Tehtävä 4: Ei ratkaisua x 2 4 x 2 5 39

Jaetaan tehtävä 3 tehtäviksi 5 ja 6 : max 5x 1 + 8x 2 max 5x 1 + 8x 2 kun x 1 + x 2 6 kun x 1 + x 2 6 5x 1 + 9x 2 45 5x 1 + 9x 2 45 x 2 4 x 2 4 x 1 1 x 1 1 x 2 4 x 2 5 x 1, x 2 0 x 1, x 2 0 40

Tehtävän 5 ratkaisu: (x 1, x 2 ) = (1,4) Objektifunktion arvo: 37 Ratkaisu on kokonaislukuratkaisu, joten tätä tehtävää ei enää jaeta Objektifunktion arvo on pienempi kuin alaraja 39, joten tämä ratkaisu ei ole optimaalinen Tehtävän 6 ratkaisu: (x 1, x 2 ) = (0,5) Objektifunktion arvo: 40 Ratkaisu on kokonaislukuratkaisu, joten tätä tehtävää ei enää jaeta Uusi alaraja kokonaislukuoptimointitehtävän objektifunktion arvolle on 40 41

Tehtävä 3: x 1 = 1 x 2 = 40/9 z = 365/9 x 2 4 x 2 5 Tehtävä 5: x 1 = 1 x 2 = 4 z = 37 Tehtävä 6: x 1 = 0 x 2 = 5 z = 40 42

Ratkaistavia tehtäviä ei enää ole = lopetetaan Paras löydetty kokonaislukuratkaisu on alkuperäisen kokonaislukuoptimointitehtävän ratkaisu: Tehtävä 6 = Ratkaisu on (x 1, x 2 ) = (0,5), jossa objektifunktion arvo on 40 43

Huomautuksia haarautumismenetelmästä Selvästi algoritmi konvergoi: Pahimmassa tapauksessa kaikille kokonaislukumuuttujille tulee rajoitteet x j a j ja x j a j Se, missä järjestyksessä uudet tehtävät käsitellään, vaikuttaa menetelmän nopeuteen ja muistitilan tarpeeseen Seuraavaksi jaettavan tehtävän valinta: Valitaan esimerkiksi se, jossa objektifunktion arvo on paras (maksimointitehtävässä suurin, minimointitehtävässä pienin) Haaroittavan muuttujan valinta: Valitaan esimerkiksi se, jonka murto-osa on kauimpana kokonaislukuarvosta Tehtävät voidaan jakaa myös useammaksi kuin kahdeksi uudeksi tehtäväksi 44

Kapsäkkiongelman ratkaisu haarautumismenetelmällä Esimerkki: max 12x 1 + 12x 2 + 9x 3 + 15x 4 + 90x 5 + 26x 6 + 112x 7 kun 3x 1 + 4x 2 + 3x 3 + 3x 4 + 15x 5 + 13x 6 + 16x 7 35 x 1, x 2, x 3, x 4, x 5, x 6, x 7 = 0 tai 1 Numeroidaan muuttujat uudelleen siten, että ne ovat suhteen c j /a j mukaan laskevassa järjestyksessä: max 112y 1 + 90y 2 + 15y 3 + 12y 4 + 9y 5 + 12y 6 + 26y 7 kun 16y 1 + 15y 2 + 3y 3 + 3y 4 + 3y 5 + 4y 6 + 13y 7 35 y 1, y 2, y 3, y 4, y 5, y 6, y 7 = 0 tai 1 45

Kun muuttujat on numeroitu tällä tavoin, vastaavan jatkuvan tehtävän (missä 0 y j 1 kaikilla j) ratkaisu löytyy seuraavasti: Asetetaan järjestyksessä y 1 = = y k 1 = 1 niin pitkälle kuin rajoitteen takia on mahdollista Asetetaan seuraavan muuttujan y k arvoksi sellainen murtoluku, että rajoite toteutuu yhtäsuurudella Asetetaan loput muuttujat y k+1 = = y n = 0 46

Tehtävä 1: max 112y 1 + 90y 2 + 15y 3 + 12y 4 + 9y 5 + 12y 6 + 26y 7 kun 16y 1 + 15y 2 + 3y 3 + 3y 4 + 3y 5 + 4y 6 + 13y 7 35 0 y j 1 j = 1,...,7 Tehtävän 1 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1,1/3,0,0,0) Objektifunktion arvo: 221 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan y 4 suhteen = y 4 = 0 ja y 4 = 1 47

Saadaan kaksi uutta tehtävää, tehtävä 2... : max 112y 1 + 90y 2 + 15y 3 + 12y 4 + 9y 5 + 12y 6 + 26y 7 kun 16y 1 + 15y 2 + 3y 3 + 3y 4 + 3y 5 + 4y 6 + 13y 7 35 y 4 = 0 0 y j 1 j = 1,...,7 Tehtävän 2 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1,0,1/3,0,0) Objektifunktion arvo: 220 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan y 5 suhteen = y 5 = 0 ja y 5 = 1 48

... ja tehtävä 3 : max 112y 1 + 90y 2 + 15y 3 + 12y 4 + 9y 5 + 12y 6 + 26y 7 kun 16y 1 + 15y 2 + 3y 3 + 3y 4 + 3y 5 + 4y 6 + 13y 7 35 y 4 = 1 0 y j 1 j = 1,...,7 Tehtävän 3 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1/3,1,0,0,0) Objektifunktion arvo: 219 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan y 3 suhteen = y 3 = 0 ja y 3 = 1 49

Tehtävä 1: y 1 = y 2 = y 3 = 1 y 4 = 1/3 z = 221 y 4 = 0 y 4 = 1 Tehtävä 2: y 1 = y 2 = y 3 = 1 y 5 = 1/3 z = 220 Tehtävä 3: y 1 = y 2 = y 4 = 1 y 3 = 1/3 z = 219 y 5 = 0 y 5 = 1 y 3 = 0 y 3 = 1 50

Jakamatta on tehtävät 2 ja 3, joista tehtävässä 2 on paras objektifunktion arvo = Jaetaan tehtävä 2 tehtäväksi 4 (y 5 = 0) ja tehtäväksi 5 (y 5 = 1) Tehtävän 4 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1,0,0,1/4,0) Objektifunktion arvo: 220 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan y 6 suhteen = y 6 = 0 ja y 6 = 1 Tehtävän 5 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1/3,0,1,0,0) Objektifunktion arvo: 216 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan y 3 suhteen = y 3 = 0 ja y 3 = 1 (myöhemmin osoittautuu, että tätä jakoa ei tarvitse tehdä) 51

Tehtävä 2: y 1 = y 2 = y 3 = 1 y 5 = 1/3 z = 220 y 5 = 0 y 5 = 1 Tehtävä 4: y 1 = y 2 = y 3 = 1 y 6 = 1/4 z = 220 Tehtävä 5: y 1 = y 2 = y 5 = 1 y 3 = 1/3 z = 216 y 6 = 0 y 6 = 1 52

Jakamatta on tehtävät 3, 4 ja 5, joista tehtävässä 4 on paras objektifunktion arvo = Jaetaan tehtävä 4 tehtäväksi 6 (y 6 = 0) ja tehtäväksi 7 (y 6 = 1) Tehtävän 6 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1,0,0,0,1/13) Objektifunktion arvo: 219 Ratkaisu ei ole kokonaislukuratkaisu, joten jaetaan sallittu alue kahteen osaan muuttujan y 7 suhteen = y 7 = 0 ja y 7 = 1 Tehtävän 7 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,0,0,0,1,0) Objektifunktion arvo: 214 Ratkaisu on kokonaislukuratkaisu, joten tätä tehtävää ei enää jaeta Alaraja kokonaislukuoptimointitehtävän objektifunktion arvolle on 214 53

Tehtävä 4: y 1 = y 2 = y 3 = 1 y 6 = 1/4 z = 220 y 6 = 0 y 6 = 1 Tehtävä 6: y 1 = y 2 = y 3 = 1 y 7 = 1/13 z = 219 Tehtävä 7: y 1 = y 2 = y 6 = 1 z = 214 y 7 = 0 y 7 = 1 54

Jakamatta on tehtävät 3, 5 ja 6, joista tehtävässä 6 on paras objektifunktion arvo = Jaetaan tehtävä 6 tehtäväksi 8 (y 7 = 0) ja tehtäväksi 9 (y 7 = 1) Tehtävän 8 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1,0,0,0,0) Objektifunktion arvo: 217 Ratkaisu on kokonaislukuratkaisu, joten tätä tehtävää ei enää jaeta Uusi alaraja kokonaislukuoptimointitehtävän objektifunktion arvolle on 217 = Tehtävää 5 ei jaeta, koska siinä objektifunktion arvo on huonompi Tehtävän 9 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,2/5,0,0,0,0,1) Objektifunktion arvo: 174 Ratkaisu ei ole kokonaislukuratkaisu, mutta objektifunktion arvo on huonompi kuin alaraja 217, joten tätä tehtävää ei enää jaeta 55

Tehtävä 6: y 1 = y 2 = y 3 = 1 y 7 = 1/13 z = 219 y 7 = 0 y 7 = 1 Tehtävä 8: y 1 = y 2 = y 3 = 1 z = 217 Tehtävä 9: y 1 = y 7 = 1 y 2 = 2/5 z = 174 56

Jakamatta on tehtävä 3 = Jaetaan tehtävä 3 tehtäväksi 10 (y 3 = 0) ja tehtäväksi 11 (y 3 = 1) Tehtävän 10 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,0,1,1/3,0,0) Objektifunktion arvo: 217 Ratkaisu ei ole kokonaislukuratkaisu, mutta objektifunktion arvo on sama kuin alaraja 217, joten tätä tehtävää ei enää jaeta Tehtävän 11 ratkaisu: (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,13/15,1,1,0,0,0) Objektifunktion arvo: 217 Ratkaisu ei ole kokonaislukuratkaisu, mutta objektifunktion arvo on sama kuin alaraja 217, joten tätä tehtävää ei enää jaeta 57

Tehtävä 3: y 1 = y 2 = y 4 = 1 y 3 = 1/3 z = 219 y 3 = 0 y 3 = 1 Tehtävä 10: y 1 = y 2 = y 4 = 1 y 5 = 1/3 z = 217 Tehtävä 11: y 1 = y 3 = y 4 = 1 y 2 = 13/15 z = 217 58

Ratkaistavia tehtäviä ei enää ole = lopetetaan Paras löydetty kokonaislukuratkaisu on alkuperäisen kokonaislukuoptimointitehtävän ratkaisu: Tehtävä 8 = Ratkaisu on (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) = (1,1,1,0,0,0,0), jossa objektifunktion arvo on 217 59

Huomautus rajoitteiden lukumäärästä Optimointiohjelmistoissa, jotka käyttävät haarautumismenetelmää, kannattaa yleensä rajata sallittua aluetta mahdollisimman paljon = Silloin tehtävä ratkeaa yleensä nopeammin Esimerkiksi, jos y on 0 1-kokonaislukumuuttuja, niin rajoite x 1 + + x n Ty 0 missä T = T 1 + + T n kannattaa kirjoittaa muodossa x 1 T 1 y 0. x n T n y 0 60