Demo 1: Branch & Bound

Samankaltaiset tiedostot
Harjoitus 3 ( )

Harjoitus 3 ( )

MS-C2105 Optimoinnin perusteet Malliratkaisut 4

Malliratkaisut Demot

Malliratkaisut Demot

Mat Lineaarinen ohjelmointi

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Luento 7: Kokonaislukuoptimointi

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

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

Harjoitus 8: Excel - Optimointi

Malliratkaisut Demot

Luento 7: Kokonaislukuoptimointi

Harjoitus 6 ( )

Mat Lineaarinen ohjelmointi

Demo 1: Lineaarisen tehtävän ratkaiseminen graafisesti ja Solverilla

Lineaarinen optimointitehtävä

Demo 1: Simplex-menetelmä

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

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

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

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

Malliratkaisut Demo 1

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Piiri K 1 K 2 K 3 K 4 R R

Malliratkaisut Demot

Optimoinnin sovellukset

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

Malliratkaisut Demo 4

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

Harjoitus 6 ( )

Kokonaislukuoptimointi

30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset

Harjoitus 4: Matlab - Optimization Toolbox

Harjoitus 5 ( )

Malliratkaisut Demot

Malliratkaisut Demot

Harjoitus 5 ( )

Malliratkaisut Demot

1. Lineaarinen optimointi

Algoritmit 1. Luento 9 Ti Timo Männikkö

Malliratkaisut Demot

Kokonaislukuoptiomointi Leikkaustasomenetelmät

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

Malliratkaisut Demo 4

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Demo 1: Excelin Solver -liitännäinen

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

Talousmatematiikan perusteet

Lineaarinen optimointitehtävä

Mat Investointiteoria Laskuharjoitus 4/2008, Ratkaisut

Johdatus verkkoteoriaan luento Netspace

Malliratkaisut Demot 6,

Aki Taanila LINEAARINEN OPTIMOINTI

Kokonaislukuoptimointi hissiryhmän ohjauksessa

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

Luento 4: Lineaarisen tehtävän duaali

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

MS-C2105 Optimoinnin perusteet Malliratkaisut 5

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

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

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

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Talousmatematiikan perusteet

Harjoitus 1 ( )

Mat Lineaarinen ohjelmointi

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

T : Max-flow / min-cut -ongelmat

Yksikkökate tarkoittaa katetuottoa yhden tuotteen kohdalla. Tämä voidaan määrittää vain jos myytäviä tuotteita on vain yksi.

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

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

Lineaarinen optimointi

Johdatus verkkoteoriaan 4. luento

OPERAATIOANALYYSI ORMS.1020

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

Luento 6: Monitavoitteinen optimointi

Harjoitus 1 ( )

Algoritmit 1. Luento 8 Ke Timo Männikkö

Search space traversal using metaheuristics

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Harjoitus 2 ( )

Monitavoiteoptimointi

Harjoitus 4 ( )

Harjoitus 10: Optimointi II (Matlab / Excel)

Malliratkaisut Demot 5,

Työvuorosuunnittelun optimointi (valmiin työn esittely)

Esimerkkejä kokonaislukuoptimointiongelmista

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

LP-mallit, L19. Aiheet. Yleistä, LP-malleista. Esimerkki, Giapetto. Graafisen ratkaisun vaiheet. Optimin olemassaolo

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

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Algoritmit 1. Luento 13 Ti Timo Männikkö

TIEA382 Lineaarinen ja diskreetti optimointi

Harjoitus 2 ( )

Algoritmit 2. Luento 11 Ti Timo Männikkö

Malliratkaisut Demot

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Lineaarinen optimointi

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

LP-mallit, L8. Herkkyysanalyysi. Varjohinta. Tietokoneohjelmia. Aiheet. Yleistä, LP-malleista. Esimerkki, Giapetto.

Transkriptio:

MS-C05 Optimoinnin perusteet Malliratkaisut 7 Ehtamo Demo : Branch & Bound Ratkaise lineaarinen kokonaislukuoptimointitehtävä käyttämällä Branch & Boundalgoritmia. max x + x s.e. x + 4x 9 5x + x 9 x Z + {0}, x Z + {0} Ratkaisu Branch & Bound -algoritmin etenemistä voit seurata ratkaisun lopussa näkyvästä puusta, jossa haarat kuvaavat kahdella lisärajoituksella saatavia uusia tehtäviä. Algoritmin alussa ratkaistaan tehtävä reaaliarvoisilla muuttujilla, jolloin tehtävän ratkaisuksi saadaan x =.5 ja x =.69. 4.5 4x + x 9.5 x.5 x 0 x + 5x 9 0.5 0 0.5 x 0 0.5 0 0.5 x.5.5 Ratkaisu ei ole kokonaisluku, joten tehdään kaksi uutta tehtävää rajoittamalla yksi ei-kokonaislukuarvoinen muuttuja ylhäältä ja alhaalta päin. Valitaan muuttuja x, joka rajoitetaan ensimmäisessä tehtävässä alaspäin lähimpään kokonaislukuun pyöristettyä arvoa pienemmäksi eli x ja toisessa tehtävässä ylöspäin lähintä kokonaislukua suuremmaksi eli x. Huomataan, että rajoituksella x (LP.) tehtävällä ei ole enää yhtään käypää ratkaisua. Vuorostaan rajoituksella x (LP.) tehtävän ratkaisuksi saadaan x = ja x =, 75.

4.5.5 x x.5 x 0 x + 5x 9 0.5 4x + x 9 0 0.5 x 0 0.5 0 0.5 x.5.5 Ratkaisu ei ole vieläkään kokonaislukuratkaisu, joten rajoitetaan ainoa ei-kokonaislukumuuttuja, jolloin saadaan kaksi uutta tehtävää LP. ja LP., joihin on lisätty rajoite x tai x. Rajoituksella x (LP.) tehtävän ratkaisuksi saadaan x = ja x =, joka on kokonaislukuratkaisu, joten uusia lisärajoituksia ei tarvitse enää tälle tehtävähaaralle tehdä. 4.5.5 x x.5 x 0 x + 5x 9 0.5 4x + x 9 0 0.5 x 0 0.5 0 0.5 x.5.5 Tutkitaan x -rajoituksen mukainen haara eli LP., jolla tehtävän ratkaisuksi saadaan x = 0, 5 ja x =, jolloin kohdefunktion arvo on 5,5.

4.5.5 x x.5 x 0 x + 5x 9 0.5 4x + x 9 0 0.5 x 0 0.5 0 0.5 x.5.5 Ratkaisu ei ole kokonaislukuratkaisu, joten rajoitetaan tehtävä kahdeksi uudeksi tehtäväksi: LP. rajoituksella x 0 ja LP. rajoituksella x. Huomataan, että x -rajoitus lisäämällä tehtävästä tulee eikäypä. Rajoituksella x 0 (LP.) tehtävän ratkaisuksi saadaan x = 0 ja x =, 5, jolloin kohdefunktion arvo on 4,5. 4.5.5 x 0 x x.5 x 0 x + 5x 9 0.5 4x + x 9 0 0.5 x 0 0.5 0 0.5 x.5.5 Ratkaisu ei ole kokonaislukuratkaisu ja sen kohdefunktion arvo on pienempi kuin parhaalla tähän mennessä löydetyllä kokonaislukuratkaisulla (x =, x = ) saatu kohdefunktion arvo. Tehtävähaaran tutkiminen voidaan täten lopettaa, koska aina rajoitteen lisäyksen takia kohdefunktion arvo heikkenee tai pysyy samana, jolloin optimiratkaisu ei voi löytyä enää tästä haarasta. Koska kaikki mahdolliset haarat on tutkittu, (x, x ) = (, ) on tehtävän optimaalinen kokonaislukuratkaisu. Jos LP.:n haara ei olisi tutkittu ensimmäisenä, jolloin kokonaislukuratkaisua ei olisi jo löydetty, tulisi nyt kesken jätetty haara laskea kokonaislukuratkaisuun asti. Koska x = 0 ja x =, 5 ei ole kokonaislukuratkaisu, muodostetaan jälleen kaksi uuttaa tehtävää rajoitteilla x ja x. Lisärajoituksen x kanssa tehtävällä (LP4.) ei ole käypää ratkaisua, mutta LP4.-tehtävän ratkaisuksi saa-

daan x = 0 ja x =, jolloin kohdefunktion arvo on 4. Tehtävähaaran tutkiminen voidaan lopettaa, koska kokonaislukuratkaisu on löytynyt. Verrataan lopuksi saatuja kokonaislukuratkaisuja ja huomataan, että LP.-tehtävässä (x, x ) = (, ) on tehtävän optimaalinen kokonaislukuratkaisu. 4.5.5 x 0 x x x.5 x 0 x + 5x 9 0.5 4x + x 9 0 0.5 x 0 0.5 0 0.5 x.5.5 4

LP0 x =.5 x =.69 z = 6.755 x x LP. x = x =.75 z = 6.5 LP. epäkäypä non-feasible x x LP. x = x = z = 5 LP. x = 0.5 x = 4 z = 5.5 x 0 LP. x = 0 x =.5 z = 4.5 x LP. epäkäypä non-feasible x x LP4. epäkäypä non-feasible LP4. x = 0 x = z = 4 Demo : Kokonaisluku- ja binäärimuuttujaoptimointia Formuloi lineaarisena optimointitehtävänä ja ratkaise Excelillä. a) Kauppias voi ostaa tehtaalta tuotetta ja myydä yhden kappaleen e voitolla. Kauppiaan tulee kuitenkin maksaa 000 e tehtaalle voidakseen ostaa tuotetta, jota tehdas pystyy valmistamaan korkeintaan 750 kappaletta. Kuinka monta tuotetta kauppiaan kannattaa ostaa? Ei yhtään? b) Entä jos kauppiaan tulee maksaa 000 e kertamaksu vasta, kun tehtaalta hankittavien tuotteiden määrä ylittää 00 kappaletta? c) Viljelijällä on 5 laatikollista omenoita ja kaksi kauppiasta, Aapeli ja Toopeli, haluavat ostaa hänen omenoitaan. Yhdestä omenalaatikosta Aapeli maksaa 5 e ja Toopeli e. Jos viljelijä myy Aapelille enemmän omenoita kuin Toopelille, Aapeli maksaa viljelijälle bonusta 450 e. Jos taasen Toopeli saa ostaa enemmän omenoita kuin Aapeli, hän maksaa viljelijälle 70 e bonusta. Kuinka monta laatikollista omenoita hänen tulisi myydä Aapelille ja Toopelille maksimoidakseen tulonsa? 5

Ratkaisu a) Valitaan päätösmuuttujiksi kauppiaan ostamien tuotteiden määrä kokonaislukuna x ja sen päätös tehtaalle maksamisesta binäärimuuttujana y (arvo on, jos päätös on kyllä, ja 0, jos päätös ei). x Z + {0} y {0, } Kauppias maksimoi tuottoaan, joka on tuotteiden myynnin tuottama voitto, josta on vähennetty mahdollisen kertamaksun kustannukset: max x 000y. Ostettavien tuotteiden määrälle saadaan yläraja, jonka arvo on 0, jos kertamaksua ei ole maksettu tehtaalle, ja 750, jos kertamaksu on maksettu: x 750y. Tehtävän ratkaisuksi saadaan, että kauppiaan kannattaa maksaa tehtaalle kertamaksu ja ostaa 750 kappaletta tehtaan tuotetta, jolloin kauppias tekee 500 e voittoa. b) Muutetaan a-kohdan rajoitusehtoa niin, että kauppias voi ostaa 00 kappaletta ilman maksua, mutta muista täytyy maksaa kertamaksu, eli x 00 + 550y. Tehtävälle saadaan saadaan sama ratkaisu kuin a-kohdalle. c) Valitaan päätösmuuttujiksi myytävät omenalaatikot (Aapeli x ja Toopeli x ) ja binäärimuuttuja y, joka kertoo, että myydäänkö laatikoita enemmän Aapelille (y = ) vai Toopelille (y = 0): x Z + {0} x Z + {0} y {0, } Kohdefunktiona maksimoidaan viljelijän saamia tuloja, jotka muodostuvat yksittäisen laatikon myynnistä saatavista tuloista ja viljelijän saamasta bonuksesta, jonka Aapeli tai Toopeli maksaa. max 5x + x + 450y + 70 ( y). Viljelillä on laatikoita myytävänä yhteensä 5 kappaletta eli: x + x 5. Jos x > x tulee y:n saada arvo, joten x x M y, jossa M on suuri luku (tässä tehtävässä esim. 0 000) ja jos x < x tulee y:n saada arvo 0, jolloin jossa M on suuri luku. x x M ( y), Tehtävän ratkaisuksi saadaan, että viljelijä myy Aapelille 8 laatikkoa ja Toopelille 7 laatikkoa, jolloin hän saa Aapelin maksaman suuremman bonuksen. Näin ollen kohdefunktion arvo on 874 e. 6

Tehtävä : Branch & Bound -menetelmä Ratkaise lineaarinen kokonaislukuoptimointitehtävä käyttämällä Branch & Boundalgoritmia. max x + x s.e. x.5 x + x 6 x Z + {0}, x Z + {0} Ratkaisu Käytetään Branch & Bound-algoritmia Demo :n mukaisesti. Ratkaistaan ensin tehtävä ilman kokonaislukurajoitteita ja rajoitetaan ei-kokonaislukumuuttujia kokonaislukurajoitteilla, kunnes saadaan vain kokonaislukuratkaisuja, joista valitaan optimaalinen. Tutkimalla LP.-tehtävän mukainen haara saadaan kokonaislukuratkaisu x = ja x =, jolla kohdefunktion arvo on. Vastaavasti LP.-tehtävästä saadaan toinen kokonaislukuratkaisu, x = ja x =, jolla kohdefunktion arvo on kuitenkin pienempi kuin LP.-tehtävällä saatu ratkaisu, joka on optimaalinen. x LP0 x =.5 x =.5 z = x LP. x = x =.5 z =.5 LP. x = x = z = x 4 x LP. epäkäypä non-feasible LP. x = x = z = Tehtävä : Kännyköiden valmistaminen Moba Fone Oy tuottaa T5-mallin kännykköitä, jotka ovat markkinoiden kestosuosikkeja. Yhden T5:n valmistaminen vaatii neljä mikrosirua ja yhden virtapiirin ja sen markkinahinta on 50 e. Yhtiö voi myös lanseerata uuden mallin, A:n, jonka valmistamiseen vaaditaan kuusi mikrosirua ja kaksi virtapiiriä. Yhdestä A:sta maksetaan 0 e. Uuden tuotantolinjan lanseeraminen vaatii 500 000 e sijoituksen ja A:n kysynnän oletetaan riittävän viideksi vuodeksi. Voidaan olettaa, että kaikki tuotetut kännykät tullaan ostamaan. Moba Fonen alihankkijat pystyvät tuottamaan vuodessa 500 000 mikrosirua vuodessa ja 5 000 virtapiiriä. Formuloi lineaarisena optimointitehtävänä, kun yritys maksimoi voittoaan. 7

Ratkaisu Valitaan päätösmuuttujiksi T5-mallien määrä ei-negatiivisena kokonaislukuna x, A-mallien määrä epänegatiivisena kokonaislukuna x ja binäärimuuttuja y, joka kertoo rakennetaanko lisälinjastoa vai ei. Yhtiö maksimoi vuoden aikana kännyköistä saatavaa voittoa, jossa huomioidaan mahdollisen uuden linjaston aiheuttamat kustannukset yhdelle vuodelle laskettuna max 50x + 0x 00 000y. A-mallia voidaan valmistaa vain, jos uusi linjasto on rakennettu eli jossa M on suuri luku (esim. 000 000). x M y, Mallien tuotantomääriä rajoittaa mikrosirujen ja virtapiirien vuoden aikana käytettävissä olevat määrät: 4x + 6x 500 000 x + x 5 000 Tehtävän ratkaisuksi saadaan, että yrityksen kannattaa rakentaa uusi linjasto ja tuottaa koko kapasiteetillaan vain A-mallia eli yhteensä 67500 kappaletta, jolloin yrityksen vuoden tuotoksi tulee 8 000 000 e. Tehtävä : Autotehtaan työvuorot Autotehtaan tuotannossa on kolme osa-aluetta: runko, moottori ja renkaat. Runkojen valmistaminen vaatii päivän aikana vähintään 80 työtehoyksikköä. Moottorit taasen vaativat 40 yksikköä ja renkaat 0 yksikköä. Tehtaalla on viisi työntekijää, joille maksetaan jokaista tehtyä työtuntia kohti 0 e. Työntekijöille maksetaan joka päivä vähintään työtunnista. Jos työntekijän työtunnit ylittävät 8 h, työntekijälle maksetaan ylityölisänä 00 e kertamaksu riippumatta ylityön määrästä. Työntekijä voi tehdä korkeintaan 0 h työtä päivän aikana. Työntekijöiden työtunnit määritellään kokonaisina työtunteina. Työntekijöiden tehtäväkohtaiset työtehot on kuvattu taulukossa, jossa luku vastaa tehtävään käytettyjen työtehoyksikköjen määrää yhdessä tunnissa. Työntekijä / Tehtävä Runko Moottori Renkaat 4 6,5 4,75 4 0,5 5 4 Formuloi lineaarisena kokonaislukuoptimoinnin tehtävänä. Ratkaisu Valitaan päätösmuuttujiksi työntekijöiden tekemät työtunnit kokonaislukuina, työntekijöiden palkkatunnit kokonaislukuina ja työntekijöiden ylityön tekeminen binäärimuuttujina (arvo on, jos työntekijä tekee ylityötä): 8

x i,j := z i := y i := työntekijän i työtunnit tehtävässä j työntekijän i tunnit, joista maksetaan palkkaa työntekijän i ylityön indikaattori. Tavoitteena on minimoida palkkakustannuksia, jonka määrittelevät työntekijöiden palkkatunnit ja ylityöt, eli min 5 0z i + 5 00y i Autotehtaan tehtäviin (runko, mooottori ja renkaat) täytyy käyttää tarpeeksi työtä: 5 a i, x i, 80 5 a i, x i, 40 5 a i, x i, 0 Jos työntekijä i tekee yli 8 tuntia työtä, ylityön binäärimuuttuja saa arvon, kuitenkin niin, että työtuntien yhteismäärä ei ylitä 0 tuntia: x i,j 8 + y i i. Palkkatunnit ovat tuntia tai työntekijän tekemien työtuntien määrä, jos niiden määrä ylittää tuntia: z i i. i. z i Tehtävän ratkaisuksi saadaan alla olevan taulukon mukaiset työtunnit, jolloin kohdefunktion arvo on 80 e. x i,j Työntekijä Runko Moottori Renkaat 0 4 0 0 0 6 4 0 4 8 0 0 5 0 9 Tehtävä 4: Verkko-optimointi Etsi seuraavasta verkosta lyhin polku solmusta solmuun 6 muodostamalla ongelmasta lineaarisen ohjelmoinnin tehtävä. Kaikki kaaret voidaan olettaa kaksisuuntaiseksi samalla kustannuksella. Ratkaise Excelillä. 9

Ohje:. Lisää verkkoon uusi kuvitteellinen kaari solmujen ja 6 välillä siten, että kustannus kaarella suuntaa 6 on erittäin suuri (esim. 500) ja suuntaan 6 olematon (=0).. Muodosta 6 6 päätösmuuttujamatriisi X =[x i,j ], jossa muuttuja x i,j kertoo onko kaarella i j virtausta vai ei. Muodosta myös vastaava 6 6 kustannusmatriisi C, johon laitetaan olemattomille kaarille (esim. 4) suuri kustannus. Aseta lisäksi kustannusmatriisin diagonaalille eli kaarelle solmusta samaan solmuun suuri kustannus. Laske matriisien X ja C avulla virtausten kokonaiskustannus verkossa.. Aseta kuhunkin solmuun tulevat virtaukset ja lähtevät virtaukset saman suuruisiksi eli laske X matriisin rivi ja sarakesummat ja aseta nämä saman suuruisiksi solverissa. 4. Rajoita solverissa virtaukset x i,j binäärimuuttujiksi. Aseta lisäksi rajoitus, että virtaus kaarella 6 on suuruudeltaan yksi. Ratkaise minimivirtauskustannus Solverilla. 5. Lue lyhin polku solmusta solmuun 6 virtausmuuttujien arvoista optimissa. Ratkaisu Päätösmuuttujina ovat binäärimuuttujat x i,j, kun i =,,..., 6 ja j =,,..., 6, jotka kuvaavat kulkeeko virtaus solmusta i solmuun j. Kohdefunktiona minimioidaan kaikkien virtausten yhteiskustannuksia min 6 6 c i,j x i,j. Virtausten, jotka lähtevät solmusta k, summa täytyy olla yhtä suuri kuin solmuun k saapuvien virtausten summa: 6 x k,j = 6 x i,k, k =,,..., 6 Jotta solmujen välille saadaan virtaus kulkemaan, täytyy pakottaa virtaus solmusta 6 solmuun : x 6, =. Ratkaisuksi saadaan, että virtaus kulkee solmusta solmuun, josta se kulkee solmun 4 kautta solmuun 6. Näin ollen virtauksen kustannuksien arvo on. Tehtävä 5: Sairaalan aikataulutus* *Ylimääräinen tehtävä; ei esitellä taululla Yrjö on yliopistollisen sairaalan työvuorovastaava, ja hänen tulisi aikatauluttaa sairaalan leikkaussalivuorot. Seuraavan viiden päivän aikana on tehtävä 5 leikkausta, joiden odotetut kestot ovat 0

Leikkaus 4 5 6 7 8 9 0 4 5 Tyyppi A B C A B C A B C A B C A B B Kesto (h) Leikkaussali on käytettävissä 5 h päivässä, ja siellä voidaan operoida ainoastaan yhtä potilasta kerrallaan. Leikkaussalin käyttö maksaa 0 e/h. Jos leikkaus on eri tyyppiä kuin edellinen leikkaus, joudutaan leikkaussalin varustus ja henkilökunta vaihtamaan, mikä maksaa 0 e. Formuloi Yrjön tehtävä kokonaislukutehtävänä. Tehtävää ei tarvitse ratkaista. Ratkaisu Valitaan binäärimuuttujiksi x i,j leikkauksen i alkamistunnit ajanhetkellä j (i =,,..., 5 ja j =,,..., 5), binäärimuuttujiksi y i,j leikkauksen i:n ensimmäistä tuntia seuraava tunti ajanhetkellä j (leikkauksille, jotka kestävät yli tunnin) (i = 8,..., 5 ja j =,,..., 5) ja binäärimuuttujiksi z j leikkauksen tyypin vaihtuminen ajanhetken j ja j+ välillä (j =,,, 4, 6, 7, 8, 9,,..., 4, koska oletetaan, että päivän vaihtuessa leikkausten tyyppien ei tarvitse olla samoja). Minimoidaan kohdefunktiota, joka muodostuu jokaisesta leikkauksen aloittavasta ja jatkavasta tunnista syntyvien maksujen ja leikkaustyypin vaihtamisesta aiheutuvien kustannusten summasta: 5 min 5 Jokainen leikkaus voi alkaa vain kerran: 5 5 5 4 0x i,j + 0y i,j + 0z i x i,j =, i =,,..., 5. Vain yksi leikkaus voi olla käynnissä kunakin tuntina: 5 (x i,j + y i,j ) j =,,..., 5. Kaksi tuntia kestävillä leikkauksilla täytyy olla yksi jatkotunti, 5 kolme tuntia kestävillä kaksi tuntia y i,j =, i = 8, 9, 0,,, 5 y i,j =, i = 4, 5 ja ei yhtään jatkotuntia vain tunnin kestäville leikkauksille 5 y i,j = 0, i =,,, 4, 5, 6, 7. Ensimmäistä tuntia seuraavien tuntien täytyy olla heti leikkauksen ensimmäisen tunnin perässä x i,j y i,j+ 0, i = 8,...,, j =,,, 4, 6, 7, 8, 9,,..., 4 x i,j y i,j+ y i,j+ 0, i = 4, 5, j =,,, 6, 7, 8,,...,.

Käytetään binäärisiä indikaattoreita a j,k ilmoittamaan leikkauksen tyyppiä; a j,k =, jos leikkaus j on tyyppiä k (k = (A), (B), (C)). Jos leikkaustyypit ovat ajanhetkillä j ja j + erilaisia, saa z j arvon. Huomaa. Oletetaan, että päivän viimeisen tunnin ja seuraavan päivän ensimmäisen tunnin vaihtumista ei tarvitse huomioida, jolloin joka viides tunti poistuu j:n indekseistä 5 (a j,k x i,j + a j,k y i,j ) j =,,, 4, 6, 7, 8, 9,,..., 4, k =,,. 5 (a j+,k x i,j+ + a j+,k y i,j+ ) z j 0