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

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

Lineaaristen monitavoiteoptimointitehtävien

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Optimaaliset riskinalentamisportfoliot vikapuuanalyysissä (valmiin työn esittely)

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

Lineaaristen monitavoiteoptimointitehtävien ratkaiseminen Bensonin algoritmilla

Tuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely)

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Harjoitus 8: Excel - Optimointi

Kirjallisuuskatsaus sisäpistemenetelmiin ja niiden soveltamiseen eri optimointiluokille (valmiin työn esittely)

Mat Lineaarinen ohjelmointi

Search space traversal using metaheuristics

Luento 3: Simplex-menetelmä

Monte Carlo -menetelmä optioiden hinnoittelussa (valmiin työn esittely)

Malliratkaisut Demo 4

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Lineaaristen monitavoiteoptimointitehtävien ratkaiseminen Bensonin algoritmilla

Lentotiedustelutietoon perustuva tykistön tulenkäytön optimointi (valmiin työn esittely)

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

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

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

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

Harjoitus 6 ( )

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

Harjoitus 3 ( )

Työvuorosuunnittelun optimointi (valmiin työn esittely)

Menetelmä Markowitzin mallin parametrien estimointiin (valmiin työn esittely)

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Malliratkaisut Demot

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

Demo 1: Simplex-menetelmä

Luento 7: Kokonaislukuoptimointi

Mat Lineaarinen ohjelmointi

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

Malliratkaisut Demot

Kokonaislukuoptimointi

Harjoitus 1 ( )

Lineaarinen optimointitehtävä

Harjoitus 3 ( )

Harjoitus 1 ( )

OPERAATIOANALYYSI ORMS.1020

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

Malliratkaisut Demot

Luento 7: Kokonaislukuoptimointi

Harjoitus 4: Matlab - Optimization Toolbox

Käänteismatriisin ominaisuuksia

Rinnakkaistietokoneet luento S

Informaation leviäminen väkijoukossa matemaattinen mallinnus

Aki Taanila LINEAARINEN OPTIMOINTI

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

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Luodin massajakauman optimointi

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Malliratkaisut Demot

Mat Lineaarinen ohjelmointi

Demo 1: Branch & Bound

Vesivoimaketjun optimointi mehiläisalgoritmilla (Valmiin työn esittely)

Malliratkaisut Demot

Malliratkaisut Demot

Harjoitus 6 ( )

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

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Malliratkaisut Demo 4

Mat Lineaarinen ohjelmointi

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Malliratkaisut Demot

MS-C2105 Optimoinnin perusteet Malliratkaisut 4

Numeeriset menetelmät

802118P Lineaarialgebra I (4 op)

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

Seurantalaskimen simulointi- ja suorituskykymallien vertailu (valmiin työn esittely) Joona Karjalainen

Tietorakenteet ja algoritmit - syksy

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!

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

Lineaarinen optimointitehtävä

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi

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

Determinantti 1 / 30

Aihioiden priorisointi ja portfolioanalyysi ennakoinnissa (valmiin työn esittely)

Lineaariset kongruenssiyhtälöryhmät

Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely)

Vangin dilemma häiriöisessä ympäristössä Markov-prosessina (valmiin työn esittely) Lasse Lindqvist

Optimization of Duties in Railway Traffic (valmiin työn esittely)

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

Stokastinen optimointi taktisessa toimitusketjujen riskienhallinnassa (valmiin työn esittely)

Malliratkaisut Demot 6,

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Insinöörimatematiikka D

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

73125 MATEMAATTINEN OPTIMOINTITEORIA 2

1. Lineaarinen optimointi

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

Puhelintukiasema-antennin säteilykuvion mittaus multikopterilla (Valmiin työn esittely)

Luento 6: Monitavoitteinen optimointi

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Transkriptio:

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä Vesa Husgafvel 19.11.2012 Ohjaaja: DI Mirko Ruokokoski Valvoja: Prof. Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin kaikki oikeudet pidätetään.

Työn tavoite Ratkaistaan trimmitysongelman LP-relaksaatio sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä. Brute-force-menetelmä toteutetaan MATLABilla ja CPLEXillä, sarakkeita generoiva algoritmi pelkällä CPLEXillä. Vertaillaan numeerisesti menetelmien laskenta-aikoja erilaisissa instansseissa.

Tausta Trimmityksellä tarkoitetaan (tässä yhteydessä) kustannustehokasta tuotannonsuunnittelua, jossa tyydytetään kysyntä minimoimalla käytetyn raaka-aineen määrä. Esimerkki: miten sahata vaneria, niin että syntyvien hukkapalojen määrä olisi mahdollisimman pieni. Ongelma voidaan mallintaa lineaarisena kokonaislukutehtävänä. Vanerinsahaus on esimerkki 2D-tehtävästä. Tässä työssä tarkasteltava tehtävä on yksiulotteinen.

Trimmitysongelma (1/3) Paperitehdas valmistaa emorullaa, jonka pituus on W. Asiakasyritys i, i = 1,..., m, haluaa ostaa b i kappaletta rullia, joiden pituus on w i W. Pienempiä rullia saadaan viipaloimalla emorullia erilaisilla leikkausmuoteilla. Kutakin leikkausmuottia j = 1,..., n, vastaa sarakevektori A j, siten että sarakkeen alkio a ij Z + ilmaisee, kuinka monta kertaa rulla w i esiintyy kyseisessä leikkausmuotissa. Luonnollisesti leikkausmuotissa olevien pienten rullien yhteispituus ei saa ylittää emorullan pituutta, mistä saadaan rajoitusehdot m a ij w i W, j = 1, 2,..., n. i=1

Trimmitysongelma (2/3) Kun paperitehdas haluaa minimoida valmistettujen emorullien lukumäärän tyydyttäen samalla asiakasyritysten kysynnät, saadaan tehtävän formulaatioksi Z IP = min s.e. n j=1 x j n a ij x j b i, i = 1, 2,..., m, j=1 x j Z +, j = 1, 2,..., n, missä x j on leikkausmuotin j mukaan leikattujen emorullien lukumäärä.

Trimmitysongelma (3/3) Yksinkertaisuuden vuoksi siirrytään tarkastelemaan tehtävän LP-relaksaatiota Z LP = min s.e. n j=1 x j n a ij x j b i, i = 1, 2,..., m, j=1 x j 0, j = 1, 2,..., n. Ongelmana kuitenkin on, että rajoitusmatriisi A on tuntematon, eikä tehtävää siksi voida ratkaista suoraan esimerkiksi Simplex-algoritmilla. Esitetään seuraavaksi kaksi ratkaisumenetelmää:

Brute-force-menetelmä Muodostetaan rajoitusmatriisi A kokonaisuudessaan etsimällä kaikki mahdolliset sarakevektorit A j = [a 1j, a 2j,..., a mj ] Z m +, jotka toteuttavat ehdon m a ij w i W, j = 1, 2,..., n. i=1 Geometrisesti tilanne vastaa annetun monitahokkaan sisältämien kokonaislukupisteiden määritystä. Menetelmässä joudutaan käymään läpi hyvin suuri määrä pisteitä, mistä johtuen käytetään brute-force-nimeä. Kun rajoitusmatriisi on selvitetty, on LP-tehtävä ratkaistavissa Simplexillä.

Sarakkeita generoiva algoritmi Tarkoitettu lineaarisen ohjelmoinnin tehtäville. Algoritmi alustetaan poimimalla k n kappaletta rajoitusmatriisin A sarakkeista ja muodostetaan näistä uusi rajoitusmatriisi Ãk. Ratkaistaan LP-tehtävä rajoitusmatriisin Ãk suhteen. Tarkastelemalla ratkaisun x k redusoituja kustannuksia, saadaan muodostettua uusi sarake, joka lisätään rajoitusmatriisiin Ãk (k k + 1). Ratkaistaan LP-tehtävä rajoitusmatriisin Ãk+1 suhteen. Lopulta löydetään alkuperäisen LP-tehtävän optimiratkaisu jollakin arvolla k = q, q n. Menetelmä soveltuu parhaimmin tehtäville, joissa suurin osa päätösmuuttujista saa arvon 0 optimiratkaisussa, jolloin q << n.

Instanssien generointi Rullien lukumäärän m sekä emorullan koon W vaikutusta LP-tehtävän laskenta-aikaan tutkittiin ratkaisemalla erilaisia instansseja. Tarkasteltavissa instansseissa muuttujien m ja W arvojoukoiksi valittiin {10, 20,..., 100} ja {500, 600, 700, 800, 900}. Rullakokojen w i ja kysyntöjen b i, i = 1,..., m, arvoina käytettiin MATLABin satunnaislukugeneraattorin arpomia kokonaislukuja. Luvut tuotettiin väleiltä [l w, u w ] = [100, 500], ja [l b, u b ] = [0, 100].

Laskenta-ajat Sarakkeita generoivan algoritmin (SG) ja brute-force-menetelmän (BF) laskenta-ajat tarkastelluissa instansseissa: Merkintä # tarkoittaa, että instanssia ei kyetty ratkaisemaan 5 tunnissa. Punaisella värillä merkitty tapauksia, joissa SG oli nopeampi. Sinisellä värillä merkitty tapauksia, joissa BF:n laskenta-aika oli 45-100 % SG:n laskenta-ajasta.

Generoitujen leikkausmuottien lukumäärä Sarakkeita generoivan algoritmin (SG) ja brute-force-menetelmän (BF) käyttämien leikkausmuottien lukumäärä tarkastelluissa instansseissa: Merkintä # tarkoittaa, että instanssia ei kyetty ratkaisemaan 5 tunnissa. N on teoreettinen yläraja leikkausmuottien lukumäärälle, joka on saatu arvioimalla käypää aluetta m-ulotteisella suorakulmiolla.

Johtopäätökset Rullien lukumäärällä m sekä emorullan koolla W on voimakas vaikutus laskenta-aikaan, mutta myös rullien koolla w i ja kysynnällä b i, i = 1,..., m. Brute-force-menetelmä on tehokkaampi pienen kokoluokan tehtävissä - sarakkeita generoiva algoritmi taas parempi suuren kokoluokan tehtävissä. Generoitujen leikkausmuottien (sarakkeiden) lukumäärä korreloi suoraan laskenta-ajan kanssa. Leikkausmuottien teoreettinen yläraja N ei tarjoa mitään käytännön hyötyä.