Sekalukuoptimointi Lehtonen, Matti Matemaattisen ohjelmoinnin seminaari, 2000-10-11 Tietojenkäsittelytieteen laitos Helsingin Yliopisto 1
Tiivistelmä Seminaarin aihe käsittelee globaalin optimoinnin erästä erikoistapausta, jota kutsutaan sekalukuoptimoinniksi (PL[HGLQWHJHUSURJUDPPLQJ0,3) sekä esitellään kolme yleisintä menetelmää MIP ongelmien ratkaisemiseksi. 2
Sisältö -RKGDQWR %UDQFKDQG%RXQG +\EULGLPHQHWHOPlW <KWHHQYHWR 3
1 Johdanto Epälineaarisen optimoinnin (1/3) kaikista vaikeimpana osa-alueena pidetään globaalia optimointia (*OREDORSWLPL]DWLRQ). Globaalilla optimoinnilla tarkoitetaan yleensä matemaattista ohjelmointia, jossa ei tehdä olettamuksia ongelman ominaisuuksista (QR FRQYH[LW\DVVXPSWLRQV). Tästä johtuen globaali optimointi ongelmat ovat yleensä vaikeita ratkoa tarkasti ja ovat yleensä NP-kovia. Globaalissa optimoinnissa käytetyimpiä menetelmiä ovat Branch and Bound Klusterointi Menetelmät (ei käsitellä) Evoluutio Algoritmit (ei käsitellä) Hybridi Menetelmät Simuloitu Jäähdytys (ei käsitellä) Tilastolliset Menetelmät (ei käsitellä) Tabu Haku (ei käsitellä). Globaalilla optimoinnilla on erikoistapaus, jossa osalla ongelman ratkaisun muuttujien odotetaan saavan sekä jatkuvia- että kokonaislukuarvoja. Nämä ongelmat tunnetaan nimellä sekalukuoptimointi (0L[HG,QWHJHU>1RQOLQHDU@3URJUDPPLQJ0,1/3 tai 0,3)., (1.1) Sekalukuoptimointi esitetään, esimerkiksi minimointi, muodossa min I ( \, [) rajoitteet J ( \, [) = 0 L K ( \, [) < 0 P Q missä \ Ζ [ 5 tällöin puhutaan 0/1-optimoinnista. L ja. Hyvin usein muuttujat \ { 0, ± 1} ja erityisesti jos { 0,1} \, niin Sekalukuoptimointia voidaan käyttää lähes kaikkiin diskreetetihin 2 optimointi ongelmiin. Sitä on käytetty erityisen paljon käytännön ongelmissa niin kuljetus- kuin valmistusteollisuudessa: lentovuorohenkilöstön aikataulusuunnittelussa, ajoneuvojen reitin suunnittelussa, tuotannon suunnittelussa jne. 1 Optimointi ongelma, joka on NP-kova (13KDUG) tarkoittaa, että ongelman ratkaisu on riippuvainen NPtäydellisen (13FRPSOHWH) ongelman ratkaisusta. Niinpä NP-kovat ongelmat ovat vähintään yhtä hankalia, kuin NP-täydelliset ongelmat. NP-täydellisille (13FRPSOHWH) ongelmille ei tunneta polynomisessa ajassa toimivia algoritmeja. 2 Diskreetti tarkoittaa ei-jatkuva. 4
2 Branch and Bound Rajaa ja haaraudu (EUDQFKDQGERXQG) on yleinen hakumenetelmä [1], joka on osoittanut olevansa tehokas käytännön ongelmissa. Lisäksi sillä on etuna kyky ratkoa lineaarisia ongelmia aliongelmina ilman kokonaisluku rajoituksia. Menetelmän kuvaus Branch and bound aloitetaan alkuperäinen ongelman täydellisellä käypällä alueella, jota myös kutsutaan juuriongelmaksi (URRWSUREOHP). Ala- ja yläraja ohjelmia käytetään juuriongelmaan. Jos rajat täsmäävät, niin silloin optimaalinen ratkaisu on löytynyt ja rajausohjelma päättyy. Ellei, niin käypä alue jaetaan kahteen tai useampaan alueeseen, jotka yhdessä kattavat ideaali tapauksessa alkuperäisen käyvän alueen. Nämä aliongelmat ovat alkuperäisen ongelman lapsia ja menetelmää sovelletaan aliongelmiin rekursiivisesti. Näin muodostuu aliongelmien puu. Jos optimaalinen ratkaisu on löytynyt aliongelmassa, niin se on käypä ratkaisu juuriongelmalle, mutta se välttämättä ole globaali ratkaisu. Koska löydetyt ratkaisut ovat käypiä, niin niitä voidaan käyttää etsintäpuun karsimiseen. Jos solmun alaraja ylittää parhaan tunnetun käyvän ratkaisun, niin aliongelman hakupuusta ei voi löytyä globaalia ratkaisua. Näin aliongelma voidaan poistaa hakupuusta. Etsintä jatkuu, kunnes kaikki hakupuun solmut ovat käyty läpi tai karsittu tai kunnes annettu tarkkuus etsinnässä on saavutettu parhaan löydetyn tuloksen ja kaikkien ratkaistujen aliongelmien alarajojen välillä. {0,1,2,3,4} {0,1,2} {3,4} {0,1} {2} {0}.XYD.DUVLWWXHWVLQWlSXX 5
Muunnokset perinteisestä Branch and Bound menetelmästä Perinteistä Branch and bound menetelmää on tutkittu paljonkin ja erityisesti on kehitetty menetelmiä, joilla voidaan tehokkaammin rajoittaa hakupuun kokoa. Näitä paranneltuja menetelmiä ovat mm /HLNNDDMDKDDUDXGX%UDQFKDQG&XW Tässä menetelmässä alaraja saadaan LP:n avulla. Optimaalinen tulos tälle LP ongelmalle on käypän alueen polytoopin kärjessä. Jos optimaalinen ratkaisu ei ole kokonaisluku, niin algoritmi etsii rajoitteen, joka rikkoo saatua tulosta ja joka ei riko ainuttakaan kokonaisluku ratkaisua. Tätä rajoitusta kutsutaan leikkaustasoksi (FXWWLQJSODQH). Kun tämä rajoite lisätään LP ongelmaan, niin alkuperäinen ratkaisu ei enää ole validi ja uusi optimi voi olla erilainen, mahdollisesti paremman alarajan tarjoava. Leikkaustasoja kerätään, kunnes löydetään kokonaisluku ratkaisu tai ei enää löydy leikkaustasoja tai niiden kerääminen käy liian kalliksi. Viimeksi mainitussa tapauksessa perinteinen branch and bound suoritetaan ja leikkaustasojen etsintää jatketaan aliongelmissa. +LQQRLWWHOHMDKDDUDXGX%UDQFKDQG3ULFH Tätä menetelmää voidaan käyttää tapauksiin, joissa on liian monta muuttujaa, jotka määrittelevät ongelman. Menetelmässä käytetään vain osaa muuttujista (DFWLYHVHW) ja uusia otetaan käyttöön tarvittaessa LP ongelman ratkaisua etsittäessä. Tämä menetelmä on hyvin ongelma riippuvainen ja voi olla vuorovaikutuksessa haarautumis päätösten kanssa. Menetelmän rajoitukset Jotta branch and bound algoritmia voitaisiin käyttää täytyy seuraavien ehtojen täyttyä. Ongelmassa täytyy olla mahdollista laskea ongelman osaratkaisuille alaraja. Lisäksi pitää olla mahdollista käyvän rajan jakaminen kahteen tai useampaan alueeseen, Sekä laskea ylärajat ainakin joillekin ratkaisuille. Käytännössä pitää olla myös mahdollista laskea yläraja ei-triviaaleille käyville alueille. Ongelmat Pahin ongelma branch and bound menetelmissä on se, että se voi vaatia suurien määrien NLP aliongelmien ratkaisua. Tämä riippuu kokonaisluku muuttujien lukumäärästä. Ongelman ratkaisun löytyminen vaatii MINLP ongelmalta joitain konveksisuus ominaisuuksia. 6
3 Hybridi menetelmät Ulkoinen approksimaatio (RXWHUDSSUR[LPDWLRQ2$) ja yleistetty Benderin hajotelma (Generalized Benders decomposition, GBD) menetelmät ratkaisevat MINLP ongelmat iteroimalla. Alkuperäinen ongelma on hajotettu NLP aliongelmaksi (kiinteät kokonaisluku arvot) sekä MILP pääongelmaksi (PDVWHUSUREOHP). NLP aliongelma optimoi jatkuvat muuttujat ja antaa ylärajan MINLP ongelmalle. Vastaavasti MILP pääongelma ennakoi alarajan MINLP ongelmalle sekä uudet kokonaisluku muuttujat jokaiselle kierrokselle. Haku päättyy, kun ennustettu alaraja on yhtäsuuri tai suurempi kuin nykyinen yläraja MINLP ongelman määrittely Yläraja NLP aliongelma Alaraja MILP pääongelma Alaraja pienempi kuin yläraja? Kyllä Ei.XYD6HNDOXNXRSWLPRLQWLSURVHVVL2$*%'PHQHWHOPLOOl Suurin ero ulkoisen approksimaation ja yleistetyn Benderin hajotelman välillä on MILP pääongelman määrittelyssä. Yleistetyssä Benderin hajotelmassa MILP pääongelma on annettu duaalina esityksenä jatkuvassa avaruudessa, kun taas ulkoisessa approksimaatiossa se on annettu primäärinä approksimaationa. Yleensä ulkoinen approksimaatio vaatii vähemmän iteraatio kierroksia, ja siten vähemmän NLP aliongelmia, mutta MILP pääongelmat vaativat enemmän laskentaa kuin yleinen Benderin hajotelma. 7
2XWHUDSSUR[LPDWLRQ On julkaistu suurehko joukko kirjallisuutta, joka käsittelee outer approximation menetelmiä, joiden alkuperä voidaan jäljittää leikkaustaso menetelmiin konvekseille ongelmille. Yksinkertaisin esimerkki käsitteellisestä menetelmästä, ongelma esitetään muodossa I ([, \) on jatkuva ja P [ 5 pätee Ω = Ψ ([) max I ([, \) (3.1) \ Ω min max I ([, \), missä (3.2) [ Q 5 \ < P Ω < 5 ovat kompakteja, millä on muoto, missä mille tahansa < ˆ ([) = arg max I ([, \ ). (3.3) \ < Q Data [ 0 5 Askel 0 Aseta L = 0, laske < ˆ( ) \ ja aseta Ω = { } 0 [ 0 + 1 arg minψ ([ Q Ω [ 5 [ L L Askel 1 Laske ) Askel 2 Laske ˆ + 1 < ˆ( [ + 1) Ω =Ω L L L Askel 3 Aseta L =L + 1 ja palaa askeleeseen yksi. 0 \ 0 \ ja aseta { } + 1 ˆ L +1 L \.XYD.lVLWWHHOOLQHQPHQHWHOPl 8
Ensimmäinen iteraatio Ψ([) Ψ([) Toinen iteraatio Ψ([) Kolmas iteraatio.xyd8onrlvhqdssurnvlpddwlrqylvxddolqhqwxonlqwd 9
*HQHUDOL]HG%HQGHUVGHFRPSRVLWLRQ Tarkisteltaessa sekalukuoptimointi ongelmaa min F[ + G\ rajoitteet $[ + %\ E [ 0 ja kokonaisluku \ 0 (3.4) Q Kiinteälle [ = + voidaan sisempi minimointi ongelma kirjoittaa LP muodossa min G\ rajoitteet %\ E $[ \ 0 (3.5) ja sen duaali on max u(b - Ax) rajoitteet ub d (3.6) u 0 Nyt voidaan kirjoittaa kokonaisluku ohjelmana min [, ] ] S rajoitteet ] F[ + X ( E $[ ) S = 1, K, Q S U 0 Y ( E $[ ) U = 1, K, QU, (3.7) [ 0 ja kokonaisluku S missä ] = F[ + max X ( E $[ ), S = 1, K, Q S alueen äärimmäisyys suuntavektorit. S X on käypän alueen äärimmäisyys pisteet ja U Y käypän Ongelmat Ongelman ratkaisun löytyminen vaatii MINLP ongelmalta joitain konveksisuus ominaisuuksia. 10
4 Yhteenveto MINLP menetelmät ovat tehokkaita hyvin isoissakin ongelmissa. Kirjallisuus tuntee tapauksia, joissa on käytetty satoja 0/1 muuttujia, tuhansia jatkuvia muuttujia ja tuhansia rajoitteita. Yksikään edellä kuvatuista metodeista ei ole ylivoimainen kaikissa sovelluksissa. 11
Kirjallisuus viitteet [1] P. Orponen, J. Tarhio ja E. Ukkonen. Algoritmien suunnittelu ja analyysi. Luentomuistiinpanoja. Tietojenkäsittelyopin laitos, Helsingin yliopisto, 1992. [2] S. Järvinen. Optimierungsbasierte Konfigurierung in intelligenten Decision Support Systemen. Technische Universität Helsinki, 1994. [3] E. Polak. Optimization; Algorithms and Consistent Approximations. Applied Mathematical Sciences vol 124. Springer, 1997. [4] J. F. Bard. Nonconvex optimization and its applications: Practical bilevel optimization: Algorithms and applications. Kluwen Academic Publishers, 1998. WWW viitteet http://www-fp.mcs.anl.gov/otc/guide/optweb/index.html (Optimoinnin yleiskatsaus) http://www-unix.mcs.anl.gov/otc/guide/faq/nonlinear-programming-faq.html (NLP FAQ) http://solon.cma.univie.ac.at/~neum/glopt.html (globaali optimointi) http://www.cs.sandia.gov/opt/survey/ (globaali optimointi) http://mat.gsia.cmu.edu/index.html (Michael Trick's Operations Research Page) http://www-fp.mcs.anl.gov/otc/guide/softwareguide/index.html (Optimointi ohjelmistot) http://pore.csc.fi/math_topics/gams/opas/opas.html (GAMS-ohjelmiston pikaopas) 12