Matemaattinen optimointi I, demo

Samankaltaiset tiedostot
Ohjeita LINDOn ja LINGOn käyttöön

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

Malliratkaisut Demo 4

Valitse ruudun yläosassa oleva painike Download Scilab.

SEM1, työpaja 2 ( )

ASTERI KIRJANPITO KIELIVERSION OHJE

Jypelin käyttöohjeet» Ruutukentän luominen

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

Aki Taanila LINEAARINEN OPTIMOINTI

LUSAS tiedosto-opas. Matti Lähteenmäki

Jäsenrekisteri (dos) Kirjuri tekstinkäsittely Vuosipäivitys

Käyttöjärjestelmämme on Windows XP, kaikki tietokoneemme ovat kytketty lähiverkkoon ja Internettiin.

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Harjoitus 8: Excel - Optimointi

5. HelloWorld-ohjelma 5.1

UpdateIT 2010: Uutisten päivitys

Tilisiirtojen täyttöohjelma

Asteri Laskutus (Dos)

Malliratkaisut Demot

Jos haluat uuden Share-työkalun, valitse Pods -> Share -> Add New Share tai jos sinulla on jo auki Share-työkalu, näyttää se tältä:

Ksenos Prime Käyttäjän opas

Octave-opas. Mikä on Octave ja miksi? Asennus

KÄYTTÖOHJE LATOMO VERSO

LP-levyn digitointi Audacity-ohjelmalla

C-kasetin digitointi Audacity-ohjelmalla

Transkribuksen pikaopas

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Malliratkaisut Demot

MixW ja Dx-vihjeet (ohje) oh3htu

Resteri myyntireskontra (Dos)

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

SSH Secure Shell & SSH File Transfer

MEM-O-MATIC järjestelmä

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Coolselector Asennusohje

YHTEYDEN OTTAMINEN CSC:N KONEELLE HIPPU

Resteri myyntireskontra (Dos)

Malliratkaisut Demot 6,

Harjoitus 5 ( )

SAC RDS Futurline MAX Tupla-robotin ohjeet näytteenottoon ja päivämaidon lähetykseen

Asteri Palkanmaksu Dos Vuosipäivitys

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1

TTS kannattavuuslaskentaohjelma

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Vesa Ollikainen, päivitys Juha Haataja

TEHTÄVÄ 1.1 RATKAISUOHJEET

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen

Ohjelmistopäivitykset

JAKELUPISTE KÄYTTÖOHJE 2/6

Asteri saldoreskontra (Dos) (lisäohjelma kirjanpitoon) Vuosipäivitys

1/10 E-RESULTS LITE-OHJEET ITÄRASTEILLE (JL )

Moodle-oppimisympäristö

CAMI Havaintotaidot -harjoitusohjelman asennus- ja käyttöönotto-ohje ei verkkoasennus

SQL Buddy JAMK Labranet Wiki

Ohjelmoinnin perusteet Y Python

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

elearning Salpaus Elsa-tutuksi

Microsoft Security Essentials (MSE) asennuspaketin lataaminen verkosta

Asteri Vuokrankanto (Dos) Vuosipäivitys

EXCEL Perusteet FIN WISTEC TRAINING OY ITÄMERENKATU 1, HELSINKI PUH (MA-PE KLO 9-17)

ASIAKASOHJE. 1.1 Ajurin asennus & konfigurointiohje: 1. Kirjoita AutoCadin komentoriville _plottermanager ja paina Enter

Uutiskirjesovelluksen käyttöohje

Operatiiviset päivät Ohjeita luennoitsijoille AV-tekniikasta

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

LP-levyn digitointi Audacity-ohjelmalla

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

PIKAOHJE USEIDEN VASTAANOTTAJIEN LISÄÄMISEEN YHTIÖN JAKELULISTOILLE

Solve ja Nordean verkkopankki

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet

Laskuharjoitus 9, tehtävä 6

LP-levyn digitointi Audacity-ohjelmalla

EASY Tiedostopalvelin - mobiilin käyttöopas

Ubuntu - peruskäyttö. Seuraavassa läpikäydään Ubuntun peruskäyttöä:

ATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014

Malliratkaisut Demot

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

Tilastotoiminnot. Seuraavien kahden esimerkin näppäinohjeet on annettu kunkin laskinmallin kohdalla:

Puhelinnumeroiden lataaminen laitteesta tietokoneelle

DATALOGGERI DT-171 PIKAKÄYTTÖOHJE V 1.2

Päivitysohje Opus Dental

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Harjoitus 5 ( )

FUNKTION KUVAAJAN PIIRTÄMINEN

Poista tietokoneessa olevat Java ja asenna uusin Java-ohjelma

Netsor Webmailin käyttöohje

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Resteri laskutus (Dos) ("enemmän asiakkaita ja tuotteita; monipuolisempi reskontra)

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen

JOVISION IP-KAMERA Käyttöohje

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

Valokuvien matematiikkaa

Muistitikun liittäminen tietokoneeseen

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

Transkriptio:

Matemaattinen optimointi I, demo 3 29.1.2015 Demo 3 järjestetään Quantumin mikroluokassa normaaleina demoaikoina. Tavoitteena on harjoitella kurssilla tarvittavien optimointiohjelmistojen käyttöä. Demopisteet saat tulemalla paikalle ja olemalla aktiivinen eli tehtäviä ei tarvitse ratkaista etukäteen. Vaihtoehtoisesti (jos uskot, ettet tarvitse apua ohjelmistojen käytössä) voit tulla keskustelemaan asiasta Napsun kanssa (reilusti) ennen demotilaisuutta huoneeseen 206.2. Huom! Kurssiin kuuluva harjoitustyö tullaan ratkaisemaan jollain valmisohjelmalla (esim. LINDO, LINGO tai CPLEX). Yliopistolla on käytössään hyvin vanhat versiot sekä LINDOsta että LINGOsta. Uudet versiot kotikoneelle voi ladata sivuilta www.lindo.com/ (LINDO ja LINGO) ja www.ilog/products/cplex/ (CPLEX). Mikroluokan tilaisuudessa opetellaan käyttämään kahta valmisohjelmistoa yllämainituista. Näissä ohjeissa on ensin annettu ohjeet LINDOn käyttöön ja hakasulkeissa vastaavat komennot CPLEXin käyttämiseksi. Jäljempänä on annettu ohjeet LINGOn käyttämiseksi. Voit valita käyttämäsi ohjelmistot vapaasti. Kirjoita muistiin vastaukset kursiivilla esitettyihin kysymyksiin. Avaa yhteys tietokoneeseen. Mikroluokan LINDO käynnistyy valikosta Start All Programs LINDO Solver Suite LINDO 5.3 for DOS [CPLEX löytyy valikosta Start All Programs ILOG CPLEX11.2 Content Folder bin x86 win32 cplex]. LINDOn [CPLEXn] tärkeimmät komennot ovat help [help], jonka avulla saa tietoa eri komennoista ja com [], joka tulostaa käytettävissä olevat komennot ruudulle. 1. Ratkaistaan optimointitehtävä max 30x 1 +40x 2, st 2x 1 +5x 2 50, 8x 1 +3x 2 130, Käynnistä LINDO [CPLEX]. Syötä tehtävä komennolla max [Aloita syöttö komennolla enter. Syötä tehtävä komennolla maximize]. Kohdefunktion jälkeen kirjoita st [subject to], jonka jälkeen voit syöttää rajoitteet [laatikkorajoitteet syötetään määreellä bounds]. Syöttö lopetetaan kirjoittamalla []. LINDOssa tehtävän pitäisi näyttää tältä max 30 x1 + 40 x2 st 2 x1 + 5 x2 <= 50 8 x1 + 3 x2 <= 130 x1>=0

x2>=0 ja CPLEXissä vastaava tehtävä esitetään muodossa maximize 30 x1 + 40 x2 subject to 2 x1 + 5 x2 <= 50 8 x1 + 3 x2 <= 130 bounds x1>=0 x2>=0 Tarkista komennolla look all [display problem all], että tehtävä on oikein syötetty. Jos huomaat virheitä korjaa ne komennolla alt [change] (tietoa alt [change]-komennon toiminnasta saa kirjoittamalla help alt [help change]). Ratkaise tehtävä komennolla go [primopt tai optimize]. Vastaa LINDOn esittämään kysymykseen DO RANGE...? kirjaimella y (pelkkä Returnnäppäimen painallus tarkoittaa samaa kuin n) [Aja herkkyysanalyysi komennolla display sensitivity obj *. Muuttujien arvot saat tulostettua komennolla display solution variables *]. Paljonko objektifunktion kerroin 30 voi muuttua ilman, että ratkaisu muuttuu? 2. Muutetaan optimointitehtävä muotoon max 30x 1 +40x 2, st 2x 1 +5x 2 50, 9x 1 +4x 2 120, x 1 +2x 2 5, rajoitetta muutettu rajoite lisätty Muokkaa ensin toinen rajoite yllä olevaan muotoon komennolla alt [change]. Lisää sitten kolmas rajoite komennolla ext [add]. Tarkista tehtävä komennolla look all [display problem all]. Ratkaise tehtävä komennolla go [primopt]. Tallenna tehtävä tiedostoon myöhempää käyttöä varten komennolla save [write]. Anna tiedostolle jokin sopiva nimi (esim. lindod1). Huom! LINDOn tiedosto tallentuu binäärimuodossa, joten sitä ei kannata esimerkiksi tulostaa näytölle tai paperille. Sen sijaan se voidaan lukea LINDOn komennolla retr (retrieve). [CPLEX kysyy

tallentaessa tiedoston nimen ja formaatin (lp = linear programming). Tiedosto on muokattavissa millä tahansa tekstieditorilla ja luettavissa komennolla read.] Seuraavaksi kirjoitetaan ratkaistava optimointitehtävä tekstitiedostoon ja luetaan se sieltä LINDOon. Tätä varten lopeta LINDO komennolla quit. 3. Kirjoita jollain editorilla (esimerkiksi xemacs tai notepad) tekstitiedosto, jossa on alla oleva sisältö. Anna tiedostolle jokin sopiva nimi (esim. lindod2) ja tallenna se m: -levyllesi (My Documents -kansioon). min 15 x1-25 x2-35 x3 st 4 x1 + 3 x2 - x3 < 40 - x1 + 6 x2 + 2 x3 < 60 2 x1 - x2 + 3 x3 < 80 leave Huomaa, että tiedoston lopussa on oltava komento leave. [CPLEXissä komentoa leave ei tarvita. Ei myöskään edellä ollutta enter-komentoa.] Käynnistä LINDO [CPLEX] uudestaan. Lue tekstitiedosto LINDOon komennolla take (edellisen tehtävän binääritiedoston luku ei onnistu take-komennolla) [read]. Tarkista tehtävä komennolla look all [display problem all]. Ratkaise tehtävä komennolla go [primopt]. 4. Jatketaan tehtävässä 2 käsitellyn optimointitehtävän muokkaamista. Lue tallennettu binääritiedosto LINDOon komennolla retr. Muunnetaan tehtävä muotoon max 30x 1 +40x 2, st 9x 1 +4x 2 120, 2x 1 +5x 2 10, rajoite poistettu rajoitetta muutettu Poista ensin ensimmäinen rajoite komennolla del. Muokkaa sitten jälkimäinen rajoite yllä olevaan muotoon komennolla alt. [CPLEXissä tämä onnistuu parhaiten muokkaamalla tekstitiedostoa ja lukemalla se read-komennolla uudelleen ohjelman muistiin muokkauksen jälkeen. Jos kuitenkin haluat tehdä tämän ohjelmasta käsin tarvittavat komennot ovat change delete ja change coefficient.]

Tarkista tehtävä komennolla look all [display problem all]. Ratkaise tehtävä komennolla go [primopt]. Paljonko jälkimmäisen rajoitteen vakio 10 voi muuttua ilman, että ratkaisu muuttuu? Jos unohdit vastata y kysymykseen DO RANGE...?, niin saman tulostuksen saa myös komennolla range [display sensitivity]. Tarvittaessa myös ratkaisu voidaan tulostaa uudelleen komennolla solution [display solution]. 5. Muuta edellinen optimointitehtävä binääriseksi sekalukuoptimointitehtäväksi rajoittamalla x 1 saamaan vain arvoja 0 tai 1. LINDOssa tämä tapahtuu komennolla int. Tässä tapauksessa saadaan aikaiseksi sama tulos sekä komennolla int x1, joka muuttaa muuttujan x 1 binääriseksi että komennolla int 1, joka muuttaa ensimmäisen muuttujan binääriseksi (tarkalleen ottaen komento int n muuttaa n ensimmäistä muuttujaa binäärisiksi). [CPLEXissä pitää lineaarinen optimointiongelma ensin muuttaa sekalukuoptimointiongelmaksi. Tämä tapahtuu komennolla change problem milp. Tämän jälkeen voidaan muuttuja x 1 muuttaa binääriseksi komennolla change type x1 b.] Tarkista tehtävä komennolla look all [display problem all]. Ratkaise tehtävä komennolla go[optimize(huom! komento primopt ei toimi, koska kyseessä on sekalukutehtävä)]. Huomioita LINDOn käytöstä: rajoitteita kirjoittaessa muuttujien pitää olla (epä)yhtälön vasemmalla ja vakioiden oikealla puolella; kertomerkkiä ei tarvitse kirjoittaa; epäyhtälöissä riittää kirjoittaa <, LINDO käsittää sen -merkkinä; muuttujat ovat aina ei-negatiivisiä, ellei niitä erikseen vapauteta komennolla free; komento edit antaa hieman vapaammat kädet mallin käsittelemiseen; komennolla divert voidaan tulostus ohjata haluttuun tiedostoon. Lopeta LINDO kirjoittamalla quit. Huomioita CPLEXin käytöstä: epäyhtälöissä riittää kirjoittaa <, CPLEX käsittää sen -merkkinä; muuttujat ovat aina ei-negatiivisiä, ellei niitä erikseen vapauteta, komennoissa riittää kirjoittaa komentoa niin pitkälle että se on yksikäsitteinen, esim. maximize = max. Jatkossa CPLEXin komentoja ei enää erikseen mainita. Tarvittavat komennot on jo esitelty edellä. LINGO käynnistyy valikosta Start All Programs LINDO Solver Suite LINGO 3.0 for Windows.

6. Ratkaistaan optimointitehtävä max 45x 1 +25x 2, st 3x 1 +5x 2 75, 4x 1 x 2 +45, Käynnistä LINGO. Mallin syöttö aloitetaan komennolla model:. Objektifunktion syöttö aloitetaan kirjoittamalla max= (tai min=). Rajoitteet syötetään suoraan ilman komentoa st. Jokaisen lauseen jälkeen (poislukien model ja ) tulee merkitä puolipiste ja kertomerkit pitää merkitä explisiittisesti (LINGO ratkaisee myös epälineaarisia tehtäviä eikä näin ollen osaa/halua tulkita vakioita ja muuttujia). Syöttö lopetetaan kirjoittamalla. Tarkista komennolla Ctrl l (tai LINGO-valikosta look), että tehtävä on oikein syötetty. Tarvittaessa voit editoida suoraan alkuperäistä muotoiluasi. Ratkaise tehtävä komennolla Ctrl s (tai LINGO-valikosta solve). Ratkaisu tulostuu Reports-ikkunaan. Tee vielä herkkyysanalyysi komennolla Ctrl r (tai LINGOvalikosta range). Millä välillä objektifunktion muuttujan x 2 kertoimen on oltava, jotta ratkaisu ei muuttuisi? 7. Muutetaan optimointitehtävä muotoon max 45x 1 +25x 2, st 2x 1 +7x 2 55, rajoitetta muutettu 4x 1 x 2 +45, 2x 1 3x 2 15, rajoite lisätty Tämä onnistuu helposti muokkaamalla alkuperäistä malliasi. Tarkista tehtävä komennolla Ctrl l ja ratkaise se komennolla Ctrl s. Tallenna tehtävä käyttämällä save -kuvaketta tai käskyä Save As... valikosta File. Anna tiedostolle jokin sopiva nimi (esim. lingod1) ja tallenna se m: -levylle. Seuraavaksi kirjoitetaan ratkaistava optimointitehtävä tekstitiedostoon ja luetaan se sieltä LINGOon. 8. Kirjoita jollain editorilla tekstitiedosto, jossa on alla oleva sisältö. Anna tiedostolle jokin sopiva nimi (esim. lingod2) ja tallenna se m: -levylle.

model: min= 20*x1 + 10*x2-30*x3; x1-4*x2 + 3*x3 < 15; 3*x1 + x2-3*x3 < 65; 3*x1 + 5*x2 - x3 < 35; Huomaa, että tiedoston lopuun ei tarvita mitään erityistä loppukomentoa (vrt. leave LINDOssa). Avaa tiedosto LINGOssa käyttämällä Window -valikosta löytyvää Command Windowsia ja siellä käskyä take. Tarkista tehtävä komennolla Ctrl l (tai kirjoita Command Windowsiin look all) ja ratkaise se komennolla Ctrl s. 9. Jatketaan tehtävässä 7 käsitellyn optimointitehtävän muokkaamista. Lue tallennettu tiedosto LINGOon käyttämällä open file -kuvaketta tai käskyä Open valikosta File. Muuta tehtävä binääriseksi sekalukuoptimointitehtäväksi rajoittamalla x 2 saamaan vain arvoja 0 tai 1. Tämä tapahtuu komennolla @bin(x2) (missä x2 on luonnollisestikin halutun binäärisen muuttujan nimi). Tarkista tehtävä ja ratkaise se. Huomioita LINGOn käytöstä: muuttujien ja vakioiden paikkoja (epä)yhtälöissä ei ole rajoitettu; kertomerkki pitää kirjoittaa näkyviin; epäyhtälöissä riittää kirjoittaa <, LINGO käsittää sen -merkkinä; muuttujat ovat aina ei-negatiivisiä, ellei niitä erikseen vapauteta komennolla @free(x), missä X on muuttujan nimi; muut lauseet paitsi model, sets, sets, data, data ja on lopetettava puolipisteeseen; kommentit alkavat huutomerkillä (ja loppuvat puolipisteeseen). 10. Ratkaise luentomonisteen esimerkki 4.2 s.43 haluamallasi valmisohjelmalla(esim. LINDO, LINGO tai CPLEX). Aja myös herkkyysanalyysi. Millä välillä muuttujan x 1 yläraja (nykyinen arvo 75) voi muuttua ilman että optimikanta muuttuu?