Kokonaislukuoptiomointi Leikkaustasomenetelmät

Samankaltaiset tiedostot
4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

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!

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

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.

2 Konveksisuus ja ratkaisun olemassaolo

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

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Mat Lineaarinen ohjelmointi

Kokonaislukuoptimointi

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

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

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ä

Malliratkaisut Demot

Mat Lineaarinen ohjelmointi

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

Mat Lineaarinen ohjelmointi

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Mat Lineaarinen ohjelmointi

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

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

Insinöörimatematiikka D

Luento 4: Lineaarisen tehtävän duaali

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

Ortogonaalisen kannan etsiminen

5 OMINAISARVOT JA OMINAISVEKTORIT

Malliratkaisut Demot

2.8. Kannanvaihto R n :ssä

Malliratkaisut Demot

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Insinöörimatematiikka D

Piiri K 1 K 2 K 3 K 4 R R

Miten osoitetaan joukot samoiksi?

Avaruuden R n aliavaruus

Ennakkotehtävän ratkaisu

2.5. Matriisin avaruudet ja tunnusluvut

Insinöörimatematiikka D

Malliratkaisut Demot 6,

Kanta ja dimensio 1 / 23

MS-C1340 Lineaarialgebra ja

Mat Lineaarinen ohjelmointi

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

Insinöörimatematiikka D

Determinantti 1 / 30

Käänteismatriisi 1 / 14

Insinöörimatematiikka D

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

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

Mat Lineaarinen ohjelmointi

Ominaisarvo ja ominaisvektori

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Similaarisuus. Määritelmä. Huom.

Lineaarialgebra ja matriisilaskenta I

Demo 1: Simplex-menetelmä

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

Lineaarialgebra ja matriisilaskenta I

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

Luento 3: Simplex-menetelmä

Luento 9: Yhtälörajoitukset optimoinnissa

Koodausteoria, Kesä 2014

1 Lineaariavaruus eli Vektoriavaruus

Lineaarinen optimointitehtävä

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

802320A LINEAARIALGEBRA OSA I

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Johdatus verkkoteoriaan luento Netspace

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

MS-C1340 Lineaarialgebra ja

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Operatioanalyysi 2011, Harjoitus 3, viikko 39

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

Matriisilaskenta Luento 16: Matriisin ominaisarvot ja ominaisvektorit

802320A LINEAARIALGEBRA OSA III

Sisätuloavaruudet. 4. lokakuuta 2006

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

Insinöörimatematiikka D

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

Kanta ja Kannan-vaihto

Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.

Gaussin ja Jordanin eliminointimenetelmä

Malliratkaisut Demot

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

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

Numeeriset menetelmät

Ominaisvektoreiden lineaarinen riippumattomuus

4. Lasketaan transienttivirrat ja -jännitteet kuvan piiristä. Piirielimien arvot ovat C =

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Neliömatriisin adjungaatti, L24

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

Insinöörimatematiikka D

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

6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio

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

2 Osittaisderivaattojen sovelluksia

Matemaattinen Analyysi / kertaus

Insinöörimatematiikka D

Ominaisarvot ja ominaisvektorit 140 / 170

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

Transkriptio:

Kokonaislukuoptiomointi Leikkaustasomenetelmät Systeemianalyysin Laboratorio 19.3.2008

Sisällys Leikkaustasomenetelmät yleisesti Leikkaustasomenetelmät generoivilla kokonaislukujoukoilla Gomoryn leikkaavat tasot ja hilapohjaiset leikkaustasomenetelmät

Tehtävän kuvaus Tarkastellaan tehtävää max c x s.t. Ax b, x Z n, (1) missä A Z m n, b Z m ja c Z n Olkoon P = {x R n Ax b} ja F = P Z n Tehtävän (1) relaksaatiolla tarkoitetaan tehtävää, jossa sallitaan ratkaisut x R n Relaksaation ratkaisemiseen tunnetaan useita algoritmeja

Leikkaustasomenetelmät yleisesti Leikkaustasomenetelmässä ratkaistaan kokonaislukuoptimoinnin ongelma (1) seuraavasti 1. Ratkaistaan relaksoitu ongelma 2. Jos relaksaation ratkaisu ei ole kokonaisluku, muodostetaan uusi rajoitus, joka poistaa käyvästä joukosta relaksaation ratkaisun, mutta ei alkuperäisen tehtävän ratkaisua 3. Palataan kohtaan 1 muutetulla tehtävällä Menetelmässä käypää joukkoa leikataan hypertasoilla siten, että ei-kokonaislukuratkaisut poistuvat Valitsemalla leikkaukset eri tavoin saadaan erilaisia menetelmiä

Leikkaustasomenetelmä generoivilla kokonaislukujoukoilla Eräs tapa leikata käypää joukkoa saadaan käyttämällä generoivia kokonaislukujoukkoja Aloitetaan olettamalla, että ongelman (1) relaksaatiolla on yksikäsitteinen (ekstreemipiste)ratkaisu x Merkitään I :llä niiden indeksien i joukkoa, joille pätee a ix = b i, i I (2)

Merkitään yhtälöiden (2) generoimaa kartioita C = {x R n x = i I y i a i, y i 0, i I } Lyhyemmin merkitään C = cone(a I ) Jokaiselle d C ja x P pätee nyt d x = i I y i a i x i I y i b i = i I y i a i x = d x Jos d Z n, niin jokaisella x F pätee d x Z = jokaisella x F pätee d x d x

Generoivat kokonaislukujoukot (kertausta) Määritelmä: Olkoon D Z n. Joukko H D on generoiva kokonaislukujoukko, jos jokainen x D voidaan esittää muodossa k x = λ i h i, missä λ i Z +, h i H. Lause: Rationaalisen kartion kokonaislukupisteillä on äärellinen generoiva kokonaislukujoukko Polyhedraalijoukon generoivan kokonaislukujoukon etsimiseen on olemassa algoritmeja i=1

Joukolla C Z n on äärellinen generoiva kokonaislukujoukko H = {h 1,..., h k } (C on rationaalinen kartio) = h Z n jokaisella h H, joten h x h x kaikilla x F Epätyhjälle ja rajoitetulle P = {x R n Ax b} voidaan osoittaa, kun x on tehtävän (1) relaksaation ratkaisu: (a) Ratkaisu x on kokonaisluku h i x on kokonaisluku kaikilla i = 1,..., k (b) Jos d C Z n, niin epäyhtälö d x d x saadaan ottamalla ei-negatiivinen kokonaislukukombinaatio epäyhtälöistä h x h x kaikilla h H

Sanakirjajärjestys Aikaisemmin tehtiin oletus, että x on ongelman (1) relaksaation yksikäsitteinen ratkaisu Yleisesti lineaarisella ongelmalla voi esiintyä ylinumeroituva määrä ratkaisuja Toimivaa algoritmia varten täytyy varmistaa, että aina valitaan yksikäsitteisesti määrätty optimaalinen ratkaisu x Määritellään tätä silmälläpitäen ns. sanakirjajärjestys, jolla tehtävän (1) relaksaation ratkaisut voidaan järjestää ja poimia jokin näistä yksikäsitteisesti

Määritelmä: Olkoon K kaikkien tehtävän (1) relaksaation ratkaisujen joukko Ratkaisu x K on sanakirjajärjestyksessä suurin, x lex x jos jokaisella x K on olemassa indeksi k {0,..., n 1} siten, että xi = x i kaikilla i = 1,..., k ja xk+1 > x k+1 Merkitään x = lexmax{c x : x P} Olkoon P = {(x 1, x 2 ) x 1 + x 2 1, x 1, x 2 0} Kaikista tehtävän max{2x 1 + 2x 2 : x P} ratkaisuista ratkaisu (1, 0) on sanakirjajärjestyksessä suurin

Leikkaustasomenetelmän algoritmi generoivilla kokonaislukujoukoilla Algoritmin alustus ja ulostulo Syöte: Matriisi A Z m n, vektorit c Z n ja b Z m Ulostulo: Optimaalinen ratkaisu x tehtävälle max c x : Ax b, x Z n

Algoritmi 1/2 1. Asetetaan t = 0, b 0 = b, A 0 = A, P 0 = {x R n A 0 x b 0 } 2. Ratkaistaan lexmax{c x : x P t } (a) Jos P t =, niin ongelmaan ei ole käypää ratkaisua, pysäytetään algoritmi (b) Muutoin merkitään optimiratkaisua x t :llä 3. Jos x t on kokonaisluku, palautetaan x t ja pysäytetään algoritmi 4. Olkoon I niiden A t x b:n rivien joukko, joille epäyhtälö pätee yhtälönä x t :ssä

Algoritmi 2/2 5. Määritetään kartion cone(a t,i ) Z n generoiva kokonaislukujoukko H = {h 1,..., h k }, merkitään H t Z k n matriisia, jonka rivit muodostuvat kantavektoreista h i 6. Asetetaan A t+1, b t+1 rajoituksia [ At H t ] [ x b t ( h 1 x t,..., h k x t ) vastaaviksi, asetetaan P t+1 = {x R n A t+1 x b t+1 } 7. Asetetaan t = t + 1 ja palataan kohtaan 2 Lause: yo. algoritmi löytää tehtävän (1) ratkaisun äärellisen monella askeleella ]

1/2 Tarkastellaan tehtävää Relaksaatiolla ratkaisu x = (1.5, 2.5) max x 1 + 2x 2 s.t. 4x 1 + 6x 2 9 x 1 + x 2 4 x 1, x 2 Z n (3) Ratkaisussa molemmat tehtävän epäyhtälöt aktiivisia saadaan kartio C = {(d 1, d 2 ) = ( 4y 1 + y 2, 6y 1 + y 2 ), y 1, y 2 0} = {(d 1, d 2 ) d 1 + d 2 0, 3d 1 + 2d 2 0}

2/2 Voidaan osoittaa, että C:lle saadaan generoiva kokonaislukujoukko H = {(0, 1), ( 1, 2), ( 2, 3), (1, 1) } Yhtälön h x h x avulla saadaan lisärajoitukset x 2 2 x 1 + 2x 2 3 2x 1 + 3x 2 4 x 1 + x 2 4 Uuden tehtävän relaksaation ratkaisuna löytyy piste (1, 2), joka on alkuperäisen tehtävän 3 ratkaisu

Gomoryn leikkaavat tasot Gomoryn leikkaavat tasot Leikkaustasot hilojen avulla Tarkastellaan standardimuotoista tehtävää max c x s.t. Ax = b, x Z n, (4) missä A Z m n, b Z m ja c Z n Jos tehtävän relaksaatiota ratkotaan simplex menetelmällä, niin simplexin muodostamista taulukoista voidaan tehdä ns. Gomoryn leikkauksia, jotka rajoittavat käypää joukkoa P

Gomoryn leikkaavat tasot Leikkaustasot hilojen avulla Voidaan osoittaa, että Gomoryn leikkaukset ovat itse asiassa generoivia kokonaislukujoukkoja käyttävän leikkaustasomenetelmän mukaisia Ts. tehtävän (4) relaksaatiota ratkovan simplex menetelmän taulukoista voidaan johtaa kartio C ja sille generoiva kokonaislukujoukko H Gomoryn leikkaukset ovat siis erikoistapaus generoivia kokonaislukujoukkoja käyttävästä leikkaustasomenetelmästä

Leikkaustasot hilojen avulla Gomoryn leikkaavat tasot Leikkaustasot hilojen avulla Voidaan osoittaa, että generoivia kokonaislukujoukkoja käyttävä leikkaustasomenetelmä löytää tehtävän (1) ratkaisun äärellisessä ajassa Menetelmässä täytyy kuitenkin laskea kartiolle generoiva kokonaislukujoukko, mikä on usein laskennallisesti työlästä Hiloihin (lattice) perustuvat leikkaustasot ovat yleensä käyttökelpoisempia Seminaarissa jätettiin väliin kirjan hiloja käsittelevä kappale 6, joten tässä esityksessä tehdään vain yleisluontoinen silmäys hiloihin perustuviin leikkaustasomenetelmiin

Gomoryn leikkaavat tasot Leikkaustasot hilojen avulla Määritelmä: Olkoon B = [b 1,..., b d ] R n d matriisi, jonka sarakkeet ovat lineaarisesti riippumattomia Joukkoa L = L(B) = {y R n y = Bv, v Z d } kutsutaan B:n generoimaksi hilaksi Tehtävän (1) matriisin A avulla voidaan luoda erilaisia hiloja muodossa L(A I 1 U) (U unimodulaarinen matriisi) Saatavasta hilasta voidaan muodostaa leikkaavia tasoja Matriisin U valinnalla hilan muodostamiseen saadaan vaihtoehtoja ja täten algoritmiin joustavuutta sovelluksia ajatellen

leikkaustasomenetelmistä Leikkaustasomenetelmissä käypää joukkoa leikataan tasoilla poistamatta kokonaislukupisteitä kunnes saadaan LP-tehtävä, jonka ratkaisu on kokonaisluku Erilaiset leikkaustavat tuottavat erilaisia algoritmeja Generoivat kokonaislukujoukot Laskennallisesti työläs Gomoryn leikkaukset Ensimmäisiä leikkaustasoalgoritmejä, käyttö simplex menetelmän yhteydessä Hilapohjaiset menetelmät Laskennallisesti käyttökelpoinen, hila kustomoitavissa tehtävän mukaan