Kokonaislukuoptimointi Optimointitehtävät, joissa muuttujat tai osa niistä voivat saada vain kokonaislukuarvoja Puhdas kokonaislukuoptimointitehtävä: Kaikki muuttujat kokonaislukuja Sekoitettu kokonaislukuoptimointitehtävä: Osa muuttujista kokonaislukuja, osa jatkuvia 1
Lineaarinen kokonaislukuoptimointitehtävä: min c T x + d T y kun Ax + Dy b x N n, y 0 missä x = (x 1,..., x n ) T ja y = (y 1,..., y m ) T. Puhdas: n > 0, m = 0 Sekoitettu: n > 0, m > 0 2
0 1-optimointitehtävä: Kokonaislukumuuttujat voivat saada vain arvoja 0 tai 1 Esimerkki: min c T x kun Ax b x 1,..., x n = 0 tai 1 3
Muunnos yleisistä kokonaislukumuuttujista 0 1-kokonaislukumuuttujiin: 0 x j u j = x j = u j x jk k=1 missä x jk = 0 tai 1 kaikilla k = 1,..., u j Toinen vaihtoehto: 0 x j u j = x j = l j k=0 2 k x jk missä x jk = 0 tai 1 kaikilla k = 0,..., l j ja l j on pienin kokonaisluku, jolle on voimassa 2 l j+1 1 uj 4
Mitä jos kokonaislukuoptimointitehtävä ratkaistaan jatkuville tehtäville tarkoitetuilla menetelmillä? Jos saadussa ratkaisussa kaikkien kokonaislukumuuttujien arvot ovat kokonaislukuja, niin ratkaisu on myös kokonaislukuoptimointitehtävän ratkaisu Muuten ratkaisun komponentteja voidaan pyöristää lähimpään kokonaislukuun Pyöristämällä saatu ratkaisu ei kuitenkaan ole välttämättä optimaalinen eikä välttämättä edes sallittu Joissain tehtävissä pyöristystä ei voi käyttää lainkaan 5
Pääoman budjetointiongelma Kulut Projekti Vuosi 1 Vuosi 2 Vuosi 3 Tuotto 1 5 1 8 20 2 4 7 10 40 3 3 9 2 20 4 7 4 1 15 5 8 6 10 30 Varat 25 25 25 Tavoite: Määrää, mitkä projektit toteutetaan, jotta tuotot maksimoituvat 6
x j = 1, jos projekti j toteutetaan 0, jos projektia j ei toteuteta max 20x 1 + 40x 2 + 20x 3 + 15x 4 + 30x 5 kun 5x 1 + 4x 2 + 3x 3 + 7x 4 + 8x 5 25 x 1 + 7x 2 + 9x 3 + 4x 4 + 6x 5 25 8x 1 + 10x 2 + 2x 3 + x 4 + 10x 5 25 x 1, x 2, x 3, x 4, x 5 = 0 tai 1 7
Kapsäkkiongelma Valittavana on n eri tavaraa Tavaran j hyöty on c j ja paino on a j Tavaroiden yhteispaino saa olla korkeintaan b Tavoite: Valitse mukaan otettavat tavarat siten, että niiden yhteishyöty maksimoituu 8
x j = 1, jos tavara j otetaan mukaan 0, jos tavaraa j ei oteta mukaan max kun c j x j a j x j b x j = 0 tai 1 j = 1,..., n 9
Kohdistusongelma Olkoon n eri henkilöä ja n eri työtä 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 10
x ij = 1, jos henkilö i suorittaa työn j 0, muuten min kun i=1 i=1 c ij x ij x ij = 1 x ij = 1 x ij = 0 tai 1 i = 1,..., n j = 1,..., n i = 1,..., n, j = 1,..., n 11
Osajoukko-ongelmat Perusjoukko M = {1,..., m} ja tämän osajoukot M j M, j = 1,..., n Osajoukkojen joukko F peittää perusjoukon, jos j F M j = M Jokaiseen osajoukkoon M j liittyy kustannus c j Minimipeitto-ongelma: Etsi sellainen F, joka peittää perusjoukon ja jonka kokonaiskustannus on mahdollisimman pieni 12
x j = a ij = 1, jos osajoukko j otetaan mukaan 0, jos osajoukkoa j ei oteta mukaan 1, jos i M j 0, jos i / M j min kun c j x j a ij x j 1 x j = 0 tai 1 i = 1,..., m j = 1,..., n 13
Ositusongelma: Etsi sellainen F, joka peittää perusjoukon siten, että jokainen perusjoukon alkio on mukana täsmälleen kerran, ja jonka kokonaiskustannus on mahdollisimman pieni min kun c j x j a ij x j = 1 x j = 0 tai 1 i = 1,..., m j = 1,..., n 14
Jokaiseen osajoukkoon M j liittyy hyöty c j Pakkausongelma: Etsi sellainen F, jossa jokainen perusjoukon alkio saa olla mukana korkeintaan kerran, ja jonka kokonaishyöty on mahdollisimman suuri max kun c j x j a ij x j 1 x j = 0 tai 1 i = 1,..., m j = 1,..., n 15
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 16
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 i=1 m i=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 17
Kauppamatkustajan ongelma Olkoon n paikkakuntaa Etäisyys paikkakunnalta i paikkakunnalle j on d ij Käydään kerran jokaisella paikkakunnalla ja palataan takaisin lähtöpaikkaan Tavoite: Määrää paikkakuntien järjestys siten, että kokonaismatka minimoituu 18
x ij = 1, jos mennään paikkakunnalta i paikkakunnalle j 0, muuten min kun i=1 i=1 d ij x ij x ij = 1 x ij = 1 x ij = 0 tai 1 i = 1,..., n j = 1,..., n i = 1,..., n, j = 1,..., n Tässä on kuitenkin mahdollista, että ratkaisu muodostuu useammasta erillisestä renkaasta 19
Tarvitaan lisärajoite, esimerkiksi: i S j S x ij 1 kaikilla joukon N = {1,..., n} epätyhjillä osituksilla (S, S), missä S = N \ S 20
Kiinteät kustannukset Tuotantokustannukset, missä on mukana kiinteät kustannukset k j > 0 : f j (x j ) = 0, jos x j = 0 k j + c j x j, jos x j > 0 Vastaava optimointitehtävä on epälineaarinen: min kun f j (x j ) a ij x j b i x j 0 j = 1,..., n i = 1,..., m 21
Olkoon u j suurin mahdollinen arvo muuttujalle x j, ja y j = 0, jos x j = 0 1, jos x j > 0 Saadaan lineaarinen kokonaislukuoptimointitehtävä: min kun ( cj x j + k j y j ) a ij x j b i i = 1,..., m x j u j y j 0 j = 1,..., n x j 0 j = 1,..., n y j = 0 tai 1 j = 1,..., n 22
Joko tai-rajoitteet Tuotetta joko ei valmisteta lainkaan tai sitä valmistetaan tietty vähimmäismäärä, ts. joko x j = 0 tai l j x j u j Lisätään muuttujat: ja rajoitteet: y j = 0, jos x j = 0 1, jos x j > 0 x j u j y j 0 x j l j y j 0 j = 1,..., n j = 1,..., n 23
Töidenjärjestelyongelma Olkoon n työtä, jotka suoritetaan yhdellä koneella Koneella voi olla vain yksi työ kerrallaan Työn j vaatima aika on a j Työn j on oltava valmis hetkellä d j Tavoite: Määrää töiden suoritusjärjestys siten, että kokonaisaika minimoituu 24
Olkoon x j hetki, jolloin työ j aloitetaan Joko työ i suoritetaan ennen työtä j tai työ j suoritetaan ennen työtä i, ts. joko x i + a i x j tai x j + a j x i Lisätään muuttujat: ja rajoitteet: y ij = 1, jos työ i edeltää työtä j 0, jos työ j edeltää työtä i M(1 y ij ) + x j x i a i i = 1,..., n, j = 1,..., n My ij + x i x j a j i = 1,..., n, j = 1,..., n missä M on riittävän suuri vakio 25
Optimointitehtävä: min t kun x j + a j t j = 1,..., n M(1 y ij ) + x j x i a i i = 1,..., n, j = 1,..., n My ij + x i x j a j i = 1,..., n, j = 1,..., n x j + a j d j j = 1,..., n t 0 x j 0 j = 1,..., n y ij = 0 tai 1 i = 1,..., n, j = 1,..., n 26
Ainakin osa rajoitteista oltava voimassa Vaaditaan, että rajoitteista a ij x j b i i = 1,..., m on voimassa ainakin k kappaletta, mutta ei ole väliä mitkä niistä Olkoon u i rajoitteen i yläraja, ts. aina on voimassa n a ij x j u i kaikilla i = 1,..., m 27
Lisätään muuttujat: y i = 1, rajoite i on voimassa 0, rajoite i ei ole voimassa ja korvataan rajoitteet seuraavilla: m i=1 a ij x j b i + u i (1 y i ) y i k i = 1,..., m 28
Muuttujalla tietty määrä mahdollisia arvoja Muuttuja x j voi saada arvokseen yhden k:sta mahdollisesta arvosta d 1,..., d k Lisätään muuttujat: y ij = 1, muuttuja j saa arvon d i 0, muuten sijoitetaan x j = k i=1 d i y ij, ja lisätään rajoitteet: k i=1 y ij = 1 j = 1,..., n 29
Paloittain lineaarinen funktio Olkoon funktio f separoituva, ts. f(x 1,..., x r ) = r f j (x j ) Olkoon jokainen f j paloittain lineaarinen siten, että sen kuvaaja kulkee pisteiden (a i, f j (a i )), i = 1,..., p, kautta Jos x j kuuluu osavälille [a i, a i+1 ], niin se voidaan esittää muodossa x j = λ i a i + λ i+1 a i+1 missä 0 λ i 1, 0 λ i+1 1 ja λ i + λ i+1 = 1 30
Tällöin myös f j (x j ) = λ i f j (a i ) + λ i+1 f j (a i+1 ) = f j (x j ) = p i=1 λ i = 1 p i=1 λ i f j (a i ) 0 λ i 1 i = 1,..., p enintään kaksi vierekkäistä λ i :tä on positiivisia 31
Enintään kaksi vierekkäistä λ i :tä on positiivisia λ 1 y 1 λ i y i 1 + y i i = 2,..., p 1 λ p y p 1 p 1 y i = 1 i=1 y i = 0 tai 1 i = 1,..., p 1 32
Kvadraattinen kohdistusongelma Olkoon n alkiota joukossa A ja toiset n alkiota joukossa B Jokainen joukon A alkio liitetään yhteen joukon B alkioon, ja jokainen joukon B alkio liitetään yhteen joukon A alkioon Kun alkio i A liitetään alkioon j B ja alkio k A liitetään alkioon l B, siitä aiheutuu kustannus c ijkl Tavoite: Liitä alkiot toisiinsa siten, että kokonaiskustannukset minimoituvat 33
x ij = 1, jos alkio i A liitetään alkioon j B 0, muuten min kun i=1 k=1 l=1 i=1 x ij = 1 x ij = 1 x ij = 0 tai 1 c ijkl x ij x kl i = 1,..., n j = 1,..., n i = 1,..., n, j = 1,..., n 34
Esimerkki kvadraattisesta kohdistusongelmasta: Olkoon A joukko tehtaita ja B joukko sijoituspaikkakuntia Tehtävänä on siis sijoittaa n tehdasta n:lle paikkakunnalle Tavoite: minimoida tehtaiden väliset kommunikointikustannukset, jotka riippuvat kommunikoinnin määrästä kunkin tehdasparin välillä sekä tehtaiden välisistä etäisyyksistä Olkoon e ik = tehtaiden i ja k välisen kommunikoinnin määrä ja d jl = kommunikointikustannus yhtä yksikköä kohden paikkakuntien j ja l välillä Tällöin e ik d jl on kommunikoinnin kustannus tehtaiden välillä 35