Mat-2.340 Lneaarnen ohjelmont 22..2007 Luento 0 Ssäpstemenetelmät ja kokonaslukuoptmont (krja 0.-0.4) Ssäpstemenetelmät luvut 8 ja 9, e tarvtse lukea Lneaarnen ohjelmont - Syksy 2007 /
Luentorunko Sananen ssäpstemenetelmstä Ellpsodmenetelmä Ssäpstemenetelmät Kokonaslukutehtävä Bnäärmuuttujat Vahvat formulonnt Yhteenveto Lneaarnen ohjelmont - Syksy 2007 / 2
Sananen ssäpstemenetelmstä 2. maalmansodasta lähten LP:tä ratkastu Smplellä Peraate: LP-tehtävän ratkasu löytyy kulmapsteestä, joten lkutaan kulmasta toseen reunoja ptkn Ongelma: eksponentaalnen ratkasuaka Tavote: menetelmä, joka takaa ratkasun polynomajassa Lneaarnen ohjelmont - Syksy 2007 / 3
Ellpsodmenetelmä Kachyan 979: Ellpsodmenetelmän polynomakasuuden osotus Idea: Alussa jokn käyvän alueen ssäpste, joka ensmmäsen, koko alueen ssältävän ellpsodn keskpste Jaetaan ellpsod puolks psteen kautta kulkevalla tasolla sten, että kustannusfunkto vähenee tosella ja kasvaa tosella puolella Kuljetaan askel vähenemssuuntaan ja muodostetaan uus, penemp ellpsod Jatketaan, kunnes ollaan kylln lähellä optma Lneaarnen ohjelmont - Syksy 2007 / 4
Ssäpstemenetelmät Ellpsodmenetelmä käytännössä kehno, kutenkn teoran kannalta tärkeä Karmakar 984: ssäpstemenetelmä Hyvät omnasuudet sekä teorassa (polynomakasuus) että käytännössä Useta varaatota kehtetty Lneaarnen ohjelmont - Syksy 2007 / 5
Ssäpstemenetelmät: Affn skaalaus Idea: Lähtö ssäpsteestä, jonka ympärlle muodostettu ellpsod Mnmodaan kohdefunktota ellpsodssa Otetaan mnmova pste seuraavan ellpsodn keskpsteeks Jatketaan, kunnes ollaan kylln lähellä optma Lneaarnen ohjelmont - Syksy 2007 / 6
Idea: Ssäpstemenetelmät: Estefunktomenetelmät Muodostetaan tehtävälle duaal Lähdetään lkkeelle alueen ssäpsteestä Muodostetaan kohdefunkto, joka rankasee yhtäältä duaalaukosta (dualty gap) ja tosaalta alueen reunolle menemsestä jollakn estefunktolla Duaalaukko penenee -> lähestytään optma E pääsyä reunolle -> e vaaraa joutua ulos alueesta Estefunkton sakkoparametra penennetään optmonnn edetessä, sllä ratkasu löytyy kutenkn reunalta Lneaarnen ohjelmont - Syksy 2007 / 7
Ssäpstemenetelmät Ssäpstemenetelmät tehokkata (etenkn suurlle tehtävlle) ja usempen kaupallstenkn solveren käyttämä (esm. Matlab) Ongelma: e päästä alueen reunalle, josta ratkasu kutenkn löytyy => sksakkausta optmn tuntumassa Ratkasu: alotetaan ssäpstemenetelmällä ja vahdetaan sopvan hetken tullen Smplen Syvemp perehtymnen ssäpstemenetelmn: Mat-2.339 Optmontopp Lneaarnen ohjelmont - Syksy 2007 / 8
Kokonaslukutehtävä LP-tehtävä ylesest muotoa: mn c +d y s.e. A+By=b,y 0 kokonaslukuja Kokonaslukutehtävä laajassa merktyksessä = kattoterm erotukseks jatkuvasta tehtävästä Lneaarnen ohjelmont - Syksy 2007 / 9
Kokonaslukutehtävä Unohdetaan kokonaslukurajotteet = relaksotu tehtävä Relaksotu tehtävä mnmo suuremmassa vahtoehtojoukosta => antaa alarajan kokonaslukutehtävän optmlle Jos relaksodun tehtävän optmratkasu on kokonasluku(-vektor), on se myös alkuperäsen tehtävän optm (toteuttaa relaksodut rajotteet) Lneaarnen ohjelmont - Syksy 2007 / 0
Kokonaslukutehtävä Mukana sekä kokonasa että jatkuva muuttuja = sekalukutehtävä (med nteger programmng problem MIP) Kakk muuttujat rajotettu kokonasluvuks = kokonaslukutehtävä (nteger programmng problem IP); nyt ss suppeammassa merktyksessä Jos kokonaslukutehtävän muuttujat rajotettu arvohn 0 ja, kyseessä bnäärtehtävä (zero-one neteger programmng problem ZOIP). Lneaarnen ohjelmont - Syksy 2007 /
Esmerkkejä bnäärtehtävästä (/3) Hankevalnta: Mtkä seuraavsta kolmevuotssta hankkesta kannattaa käynnstää? Taulukossa projekten tuotot sekä vuosttaset kustannukset ja resursst Hanke 2 3 Tuotot 5 8 20 2 4 7 0 40 3 3 9 2 20 4 7 4 5 5 8 6 0 30 Resursst 25 25 25 Lneaarnen ohjelmont - Syksy 2007 / 2
Esmerkkejä bnäärtehtävästä (/3) ma s. e. 20 5 8 + 40 + 4 + 7 2 2 + 0 + 3 + 9 2 2 + 20 3 3 + 2 + 7 + 4 3 + 3 {0,}, + 5 4 4 4 4 + 8 + 6 5 5 + 0 =,...,5 + 30 25 25 5 5 25 Kokonaslukuratkasu: = 2 = 3 = 4 =, 5 =0, tuotto 95 Jatkuvlla muuttujlla (relaksotu tehtävä): = 0.579, 2 = 3 = 4 =, 5 =0.737, tuotto 09 pyörstämnen e tom!! Lneaarnen ohjelmont - Syksy 2007 / 3
Esmerkkejä bnäärtehtävästä (/3) Esm. kapsäkktehtävä (knapsack probelm) Olet murtautunut ryöstöakessa taloon, josta löytyy kakenlasta tavaraa. Tavara j panaa w j kloa ja sen arvo varastetun tavaran markknolla on c j euroa. Haluat optmoda saals arvon, kun tedät jaksavas kantaa enntään K kloa. ma s.e. j n j= n j= j c j w j j j {0,}, K j=,..., n : otetaanko tavara j mukaan va e? Lneaarnen ohjelmont - Syksy 2007 / 4
Bnäärmuuttujat Useat ns. epätavallsemmat rajotteet saadaan mallnnettua bnäärmuuttujen avulla Pysytään LP-ympärstössä, mutta tosaalta saatetaan joutua jatkuvasta tapauksesta hankalampaan kokonaslukumaalmaan Lneaarnen ohjelmont - Syksy 2007 / 5
Esmerkkejä (/6) Pakotusehdot: Päätös A vodaan tehdä van jos päätös B on tehty otetaan bnäärmuuttujat (y) joka saa arvon jos päätös A (B) tehdään ja 0 muuten. Rajotus: y Bnäärmuuttujsta enntään yks saa poketa nollasta: Tasan yks: n j= j = n j= j Lneaarnen ohjelmont - Syksy 2007 / 6
Esmerkkejä (2/6) Joko-ta rajote: Kahdesta rajotteesta a b, c d tasan tosen tulee päteä Ylenen tapaus: m kpl rajotteta, josta tasan k kpl tulee päteä Vähntään k kpl pätevä rajotteta: korvataan yhtälörajote epäyhtälöllä a' b My c' d M ( y {0,} a ' b m = y My = m k ( ) y {0,} y) Lneaarnen ohjelmont - Syksy 2007 / 7
Esmerkkejä (3/6) Muuttujan arvot halutaan rajata dskreettn joukkoon: { a,..., a n } = m j= y j m y j= j a j = y {0,} j Esm. + 2 4 ta 6 ta 8: y y + + y,2,3 2 2 4y + y 3 {0,} + 6y = 2 + 8y 3 Lneaarnen ohjelmont - Syksy 2007 / 8
Esmerkkejä (4/6) Melvaltanen jatkuva palottan lneaarnen kohdefunkto (vrt. luennolla kästelty konveks verso): f() = 0.75a+ 0. 25a 3 Olk. a < a 2 <...<a k jatkuvan pal. ln. funkton tatekohdat, jollon funkton määrttävät pstepart (a,f(a )), =,..,k. Mkä tahansa välllä [a, a k ] vodaan esttää a :den konveksna kombnaatona a a 2 a 3 a 4 k k = λ λ [0,], = =, λ Lneaarnen ohjelmont - Syksy 2007 / 9
Esmerkkejä (5/6) Kombnaatoestys e ole ykskästtenen, mutta vodaan tehdä sellaseks vaatmalla, että van kaks peräkkästä λ :tä ovat nollasta pokkeava f() = 0.5a + a 0. 5 2 Ts. vällle [a, a + ] osuva pste estetään a :n ja a + :n konv. kombnaatona Lneaarsuudesta ja ykskästtesyydestä seuraa = k f ( ) = λ f ( a ) a a 2 a 3 a 4 Lneaarnen ohjelmont - Syksy 2007 / 20
Esmerkkejä (6/6) Palottan lneaarsen kohdefunkton mnmont saadaan ss mallnnettua seuraavast ottamalla avuks bnäärmuuttujat y : Formulont LP:nä lman bnäärmuuttuja = Feldsn mtal tms. manetta ja kunnaa mn s. e. k = k = λ f ( a ) λ = λ λ λ k k = λ y y y y 0,, y + k =, {0,} y, = 2,..., k Lneaarnen ohjelmont - Syksy 2007 / 2
Vahvat formulonnt (/6) Jatkuva LP: ekvvalentt formulonnt evät vakuta kykyyn ratkasta tehtävää Kokonaslukutehtävä: vakutus vo olla dramaattnen! Tehtävän formulonta I sanotaan formulonta II vahvemmaks, jos I:n relaksaaton käypä joukko on II:n relaksaaton käypää joukkoa penemp Lneaarnen ohjelmont - Syksy 2007 / 22
Vahvat formulonnt (2/6) Esm. Locaton, locaton, locaton... Halutaan valta n:stä mahdollsesta optmaalset sjannt palvelulle, jolla on m asakasta. Palvelun avaamnen pakassa j aheuttaa kustannuksen c j ja asakkaan palvelemnen ko. sjannsta kustannuksen d j Lneaarnen ohjelmont - Syksy 2007 / 23
Vahvat formulonnt (3/6) Määrtellään bnäärmuuttujat y j, joka saa arvon jos sjannssa j on palvelupakka ja nollan muuten; sekä j, joka saa arvon jos asakasta palvellaan sjannssa j ja nollan muuten. Tällön tehtävä formulodaan seuraavast: I: mn s. e. n j= n j= c j j j, j y y y j d = + j m n = j= {0,} j j, j, j Lneaarnen ohjelmont - Syksy 2007 / 24
Vahvat formulonnt (4/6 Edellsen kanssa ekvvalentt formulont on veressä estetty; jos y j =0, on oltava j =0 kaklla jos y j =, on mahdollsta, että j = vakka kaklla. II: mn s. e. n j= n j= m = j, c j y j j y j + = my m = j= j {0,} n d j j j, j Lneaarnen ohjelmont - Syksy 2007 / 25
Vahvat formulonnt (5/6) Edellsten tehtäven relaksaatot tuottavat erlaset käyvät alueet I-alue II-aluetta penemp => formulont I on vahvemp I-relaksaaton ratkasu on kokonaslukuratkasu, el myös kokonaslukutehtävän ratkasu! c II-relaksaaton ratkasu I-relaksaaton ratkasu Lneaarnen ohjelmont - Syksy 2007 / 26
Vahvat formulonnt Jatkuva LP on huomattavast helpomp ratkasta kun kokonaslukutehtävä c On ss tovottavaa, että relaksaaton ratkasu on alkuperäsen tehtävän ratkasu Paras formulont: relaksaaton käypä joukko on käypen kokonaslukuratkasujen konveks kuor (kakk kulmapsteet kokonaslukuja!) Lneaarnen ohjelmont - Syksy 2007 / 27
Vahvat formulonnt: Parnmuodostus (/4) Vahvat formulonnt ovat ertysen tärketä tehtävssä, jossa rajotusten määrä on eksponentaalnen Esm. parnmuodostus: yhdstetään joukosta part sten, että kustannus mnmotuu Verkkotehtävä! G=(N,A), kaarkustannukset c a c (,2) 2 4 3 5 E kaarta = para e ole mahdollsta muodostaa Lneaarnen ohjelmont - Syksy 2007 / 28 6
Vahvat formulonnt: Parnmuodostus (2/4) Bnäärmuuttuja a =, jos kaarta a vastaavat tyypt partetaan Merktään δ(s):llä kaara, joden lähtösolmu joukossa S ja maalsolmu joukossa N\S Ertysest δ({}) solmua svuavat kaaret Tällön eräs formulont: mn s. e. a A a a δ ({ }) a c a a = {0,} N Lneaarnen ohjelmont - Syksy 2007 / 29
Vahvat formulonnt: Parnmuodostus (3/4) Sovelletaan edellstä formulonta vereseen verkkoon Kokonaslukutehtävän optmkustannus L+2 Relaksodun tehtävän ratkasu: rtasa kolmodraamoja optmkustannuksella 3 /2 /2 2 4 3 5 2 L L /2 /2 4 3 5 6 /2 6 /2 Lneaarnen ohjelmont - Syksy 2007 / 30
Vahvat formulonnt: Parnmuodostus (4/4) Vahvemp formulont saadaan vaatmalla: a δ ( S ) a, S N, N, parton Ts. kolmen/vden jne. poppoosta anakn yhden paruduttava porukan ulkopuolelta löytyvän henklön kanssa e draamojen mahdollsuutta! Osottautuu, että ko. formulonnn relaksaaton käypä joukko on käypen kokonaslukuratkasujen konveks kuor! LP-ratkasu = IP-ratkasu löytyy polynomajassa! S S Lneaarnen ohjelmont - Syksy 2007 / 3
Vahvat formulonnt: Kauppamatkustajan ongelma (/4) Esm. kauppamatkustajan ongelma (travelng salesman) eräs kuulusmmsta kokonaslukutehtävstä: N kpl kaupunkeja, jossa kauppamatkustajan on veraltava mahdollsmman vähäsn kustannuksn palaten lopulta lähtöpsteeseen. Samaa rettä e saa kulkea kahdest. Lneaarnen ohjelmont - Syksy 2007 / 32
Vahvat formulonnt: Kauppamatkustajan ongelma (2/4) Kyseessä verkko G=(N,A), kaarkustannukset c a Bnäärmuuttuja a kutakn verkon kaarta kohden; a =, jos a kuuluu kauppamatkustajan rettn, muuten nolla Hmm... 2 4 3 5 6 Lneaarnen ohjelmont - Syksy 2007 / 33
Vahvat formulonnt: Kauppamatkustajan ongelma (3/4) Kuhunkn kaupunkn on tultava ja seltä on lähdettävä er tetä, el: a a δ ({ }) = 2 N Verkon tulee olla yhtenänen kullekn kaupunkjoukolle tulee löytyä rett ssään ja joukosta ulos, el: a δ ( S ) a 2 S N, S, N Formulont: mn s. e. a A a a δ ({ }) a a δ ( S ) a c a a = 2 {0,} 2 N S N, S, N Lneaarnen ohjelmont - Syksy 2007 / 34
Vahvat formulonnt: Kauppamatkustajan ongelma (4/4) Kauppamatkustajan ongelmalle löytyy mutakn formulonteja, mutte edellstä vahvempa Formulonnn relaksaaton käypä joukko on konveksa kuorta suuremp LP:n ratkasu e välttämättä ole IP:n ratkasu Kauppamatkustajan ongelmalle e ole löydetty polynomakasta ratkasualgortma Lneaarnen ohjelmont - Syksy 2007 / 35
Yhteenveto Smple hyvä käytännössä, mutta pahmmassa tapauksessa eksponentaalakanen Ssäpstemenetelmät todstetust polynomakasa Nyrkksääntö: pen tehtävä = Smple, suur tehtävä = ssäpstemenetelmä Kokonaslukutehtävät (IP) hankalampa ratkasta kun jatkuvat (LP) IP:n ratkasuteho rppuu olennasest formulonnsta, tosn kun LP:n Bnäärmuuttujlla saadaan mallnnettua erlasa rajotteta Lneaarnen ohjelmont - Syksy 2007 / 36