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

Samankaltaiset tiedostot
Mat Lineaarinen ohjelmointi

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Luento 7: Kokonaislukuoptimointi

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!

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Luento 7: Kokonaislukuoptimointi

Piiri K 1 K 2 K 3 K 4 R R

Algoritmit 2. Luento 12 To Timo Männikkö

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Mat Lineaarinen ohjelmointi

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Sekalukuoptimointi. Lehtonen, Matti Matemaattisen ohjelmoinnin seminaari, Tietojenkäsittelytieteen laitos Helsingin Yliopisto

Search space traversal using metaheuristics

3.4 Peruutus (backtracking)

Harjoitus 6 ( )

Lineaarinen optimointitehtävä

Harjoitus 6 ( )

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

Algoritmit 2. Luento 12 Ke Timo Männikkö

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

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

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

Pisteen x lähistö koostuu kaikista ratkaisuista, jotka on saatu x:stä tekemällä siihen yksi siirto:

Malliratkaisut Demot

Kimppu-suodatus-menetelmä

Harjoitus 4: Matlab - Optimization Toolbox

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

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

Johdatus verkkoteoriaan luento Netspace

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

Malliratkaisut Demot

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

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

2 Konveksisuus ja ratkaisun olemassaolo

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

Malliratkaisut Demot

Malliratkaisut Demot

Luento 9: Yhtälörajoitukset optimoinnissa

Mat Lineaarinen ohjelmointi

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.

[xk r k ] T Q[x k r k ] + u T k Ru k. }.

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Luento 8: Epälineaarinen optimointi

Luento 4: Lineaarisen tehtävän duaali

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

Geneettiset algoritmit

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Mat Lineaarinen ohjelmointi

Kombinatorinen optimointi

Matematiikan tukikurssi, kurssikerta 3

. 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

Harjoitus 8: Excel - Optimointi

Optimointi. Etsitään parasta mahdollista ratkaisua annetuissa olosuhteissa. Ongelman mallintaminen. Mallin ratkaiseminen. Ratkaisun analysointi

Harjoitus 3 ( )

Harjoitus 3 ( )

Harjoitus 7: vastausvihjeet

Edellä on tarkasteltu luettelointimenetelmiä, jotka ainakin periaatteessa

Luento 6: Monitavoitteinen optimointi

1 Rajoittamaton optimointi

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018

Malliratkaisut Demot

Luento 8: Epälineaarinen optimointi

Kokonaislukuoptimointi

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

2 Osittaisderivaattojen sovelluksia

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Demo 1: Simplex-menetelmä

6. Approksimointialgoritmit

Mat Dynaaminen optimointi, mallivastaukset, kierros 3

Malliratkaisut Demo 1

Luento 3: Simplex-menetelmä

Matematiikan tukikurssi

Demo 1: Branch & Bound

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Osakesalkun optimointi

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

Jälki- ja herkkyysanalyysi. Tutkitaan eri kertoimien ja vakioiden arvoissa tapahtuvien muutosten vaikutusta optimiratkaisuun

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ä

4.3. Matemaattinen induktio

Johdatus verkkoteoriaan 4. luento

Malliratkaisut Demot

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Algoritmit 1. Luento 1 Ti Timo Männikkö

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Harjoitus 6: Simulink - Säätöteoria. Syksy Mat Sovelletun matematiikan tietokonetyöt 1

Haitallinen valikoituminen: yleinen malli ja sen ratkaisu

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Luento 10: Optimointitehtävien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja

Mat Lineaarinen ohjelmointi

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Algoritmit 2. Luento 14 Ke Timo Männikkö

Mat Investointiteoria Laskuharjoitus 4/2008, Ratkaisut

A-osa. Ratkaise kaikki tämän osan tehtävät. Tehtävät arvostellaan pistein 0-6. Taulukkokirjaa saa käyttää apuna, laskinta ei.

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

6 Variaatiolaskennan perusteet

Transkriptio:

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

Sisältö Branch and Bound sekä sen variaatiot (Branch and Cut, Lemken menetelmä) Optimointiin perustuvat heuristiset menetelmät Dynaaminen ohjelmointi Lokaaliin etsintään perustuvat menetelmät Simuloitu jäähdytys Yhteenveto

Branch and Bound (B&B) Hajota ja hallitse Yleinen B&B: alkuperäinen tehtävä: minimoi c x ehdolla x F muutetaan muotoon: minimoi c x ehdoilla x F i, i = 1,, k, minkä jälkeen aliongelmien ratkaisuista valitaan optimaalinen

Branch and Bound Jäljelle jäävät aliongelmat voidaan edelleen jakaa uusiin aliongelmiin (branch). Oletus: aliongelmalle F i osataan helposti laskea alaraja b(f i ) (bound): b(f i ) min{ c x x F i } Olkoon U toistaiseksi tutkituista aliongelmista optimaalisin. Jos U b(f i ) jollekin F i, niin kyseinen aliongelma voidaan poistaa tarkastelusta.

Branch and Cut Branch and Bound -algoritmin variaatio Idea: aliongelmiin lisätään uusia rajoituksia, jotka leikkaavat pois osan reaalilukuarvoisista ratkaisuista, mutta säilyttävät mahdolliset kokonaislukuratkaisut (leikkaustaso) Konvergointi saattaa nopeutua huomattavasti (varsinkin, jos leikataan syvältä )

Lemken menetelmä Branch and Bound -algoritmin variaatio Tavoite: ratkaistaan LCP(q,M) -ongelma (Linear Complementary Problem), (q R n, M R nxn ): w = Mz + q, (käypyys), z 0, w 0, (käypyys), z w = 0, (komplementaarisuus), z, w R n. Voidaan käyttää kvadraattisten optimointitehtävien ratkaisemiseen (Q R dxd, c R d, A R mxd, b R m ): minimoi (1/2)x Qx + c x ehdolla Ax b, x R d +

Optimointiin perustuvat heuristiset menetelmät Tutkitaan kokonaislukuongelmaa (ILP) (tai BILP), esim: minimoi c x ehdolla x P Z n +, missä P = { x R n +, Ax b } Strategia: Lasketaan lineaarisen relaksaation optimiratkaisu (Simplex) Pyöristetään lineaarisen relaksaation optimaalinen ratkaisu kokonaislukuongelman käypään ratkaisuun Esitellään kaksi menetelmää: Feasibility Pump (antaa jonkin käyvän ratkaisun) Dive and Fix

Feasibility Pump -algoritmi kokonaislukutehtävälle (ILP) Input: A Z mxn, b Z m, c Z n, iteraatioiden maksimilukumäärä T Output: Kokonaislukuongelman käypä ratkaisu x tai ei tulosta Algoritmi: 1. Lasketaan lineaarisen relaksaation optimiratkaisu x * (Simplex) Jos P = : stop ja anna ulos: ei tulosta Jos x * on kokonaislukuarvoinen: stop ja anna ulos: x * Iteroidaan korkeintaan T kertaa: 2. Pyöristetään x * komponenteittain kokonaislukuvektoriin ẋ 3. Lasketaan kokonaislukuvektorille ẋ sitä L 1 -normin mielessä lähinnä oleva joukon P piste x. Jos x on kokonaislukuarvoinen: stop ja anna ulos: x Muutoin: aseta x * = x ja mene kohtaan 2.

Feasibility Pump -algoritmi kokonaislukutehtävälle (ILP) Algoritmi tuottaa kaksi jonoa: {(x * ) j }, alkiot toteuttavat epäyhtälöt {(ẋ) j }, alkiot ovat kokonaislukuarvoisia Toiveena on, että jonot konvergoivat kohti toisiaan Algoritmi voi jäädä silmukkaan Tällöin kohdan 2. pyöristykseen voi lisätä satunnaisuutta Epäyhtälöihin voidaan lisätä ehto c x Z.

Dive and Fix -algoritmi binäärilukutehtävälle (BILP) Input: A Z mxn, b Z m, c Z n Output: Binääriongelman käypä ratkaisu x tai ei tulosta Algoritmi: 1. Lasketaan lineaarisen relaksaation optimiratkaisu x * (Simplex) Jos P = : stop ja anna ulos: ei tulosta Jos x * on kokonaislukuarvoinen: stop ja anna ulos: x * 2. F = { j 0 < x * j < 1} 3. Niin kauan kuin F tee: (a) (Dive) k = indeksi j, jolle x * j 1/2 pienin (b) (Fix) kiinnitä x * k = 0 tai x* k = 1 sen mukaan kummassa tapauksessa lineaarisen relaksaation optimiratkaisu on pienempi. Jos kumpikin antaa ei-käyvän arvon: stop ja anna ulos: ei tulosta (c) mene kohtaan 2. Vaiheen 3. kohdille (a), (b) ja (c) on erilaisia variaatioita

Dynaaminen ohjelmointi (DP) B&B on luetteloiva menetelmä, joka antaa tarkan ratkaisun, mutta välttää liiallista luetteloimista Dynaaminen ohjelmointi on toinen mahdollinen lähestymistapa, joka käyttää implisiittistä luettelointia kokonaislukuongelmiin Voidaan soveltaa esim. kauppamatkustajan ongelmaan tai selkärepun täyttöongelmaan Suuren työmäärän takia voidaan joutua turvautumaan approksimatiiviseen dynaamiseen ohjelmointiin (ADP)

Dynaaminen ohjelmointi (DP) Yleisiä suuntaviivoja DP -algoritmien suunnitteluun 1. Käypä ratkaisu muodostuu jonosta valintoja; kokonaiskustannus on yksittäisten valintojen kustannusten summa. 2. Systeemin kulloinenkin tila määritellään kaikkien aikaisempien relevanttien valintojen yhteenvetona. 3. Määritetään, mitkä tilatransitiot ovat mahdollisia; yksittäisen päätöksen kustannuksen määritellään samaksi kuin tilatransition aiheuttama kustannus 4. Määritellään rekursio aloitustilasta tavoitetilaan.

Lokaali haku Lokaali haku on yleinen lähestymistapa optimointiheuristiikan suunnitteluun seuraavantyyppiselle tehtävälle: minimoi c(x) ehdolla x F Idea: aloitetaan jostakin x F, lasketaan c(x) lasketaan c(y) jollekin y F, joka on x:n naapuri Jos c(y) < c(x), valitaan y ja jatketaan edelliseen tapaan Jos tällaista alkiota y ei löydy, niin algoritmi pysähtyy, paikallinen optimi on löytynyt

Simuloitu jäähdytys Lokaalin haun ongelma: löydetään yleensä vain paikallisia optimeja, mutta ei välttämättä globaalia (algoritmi juuttuu paikalliseen minimiin). Simuloidun jäähdytyksen tavoitteena on välttää tämän ongelma Algoritmi voi tietyllä todennäköisyydellä hypätä ulos paikallisesta optimikuopasta Hyppäystodennäköisyyttä määrittää parametri T, lämpötila.

Simuloitu jäähdytys Äärellinen joukko F käypiä ratkaisuja, joita kutsutaan tiloiksi. Kustannusfunktio c(x). x F:llä on naapuripisteiden joukko N(x) F Naapuruus on symmetristä: jos y N(x), niin x N(y). Olkoon q xy todennäköisyys, että tilassa x valitaan naapuri y N(x). Tälle pätee: q xy 0, y N(x) q xy = 1.

Simuloitu jäähdytys Algoritmi: Nykyinen tila x Valitaan tutkittavaksi x:n naapuri y todennäköisyydellä q xy Lasketaan c(y) Hypätään tilasta x tilaan y todennäköisyydellä: e -(c(y) - c(x))/t, kun c(y) > c(x) 1, muuten.

Simuloitu jäähdytys x(t):t, missä t on iteraatioiden lukumäärä muodostavat Markovin ketjun Todennäköisyys olla tilassa x lähestyy jotakin tasapainoa π(x), kun T pidetään vakiona ja t. Mitä pienempi T sen suurempi on absoluuttisen optimitilan tasapainotodennäköisyys Toisaalta, mitä pienempi T sen hitaammin lähestytään tasapainotodennäköisyyttä Strategia: alennetaan lämpötilaa, esim. T = C/log(t) Em. strategialla algoritmi päätyy absoluuttiseen optimiin, kun C riittävän suuri

Yhteenveto Luetteloivia ja heuristisia menetelmiä on useita erilaisia. Tässä esiteltiin muutamia niistä. Esittelemättä jääneitä heuristisia menetelmiä mm: Geneettiset algoritmit Tabuhaut Kaikkien algoritmien ongelmana: Joko eksponentiaalinen laskuaika Tai tyydyttävä approksimatiivisiin ratkaisuihin Liittyy P = NP -ongelmaan