Ohjeita LINDOn ja LINGOn käyttöön LINDOn tärkeimmät komennot ovat com (command), joka tuloaa käytettävissä olevat komennot ruudulle, ja help, jonka avulla saa tietoa eri komennoia. Vaaukset kursiivilla esitettyihin kysymyksiin ovat suurimmaksi osaksi samoja kuin demoissa 3. 1. Ratkaiaan optimointitehtävä 2x 1 +5x 2 50, 8x 1 +3x 2 130, Käynniä LINDO. Syötä tehtävä komennolla max. Kohdefunktion jälkeen kirjoita, jonka jälkeen voit syöttää rajoitteet. Syöttö lopetetaan kirjoittamalla. LINDOssa tehtävän pitäisi näyttää tältä max 30 x1 + 40 x2 2 x1 + 5 x2 <= 50 8 x1 + 3 x2 <= 130 x1>=0 x2>=0 Tarkia komennolla look all, että tehtävä on oikein syötetty. Jos huomaat virheitä korjaa ne komennolla alt(tietoa alt-komennon toiminnaa saa kirjoittamalla help alt). Vaaa LINDOn esittämään kysymykseen DO RANGE...? kirjaimella y (pelkkä Return-näppäimen painallus tarkoittaa samaa kuin n). Paljonko kohdefunktion kerroin 30 voi muuttua ilman, että ratkaisu muuttuu? 2. Muutetaan optimointitehtävä muotoon 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. Lisää sitten kolmas rajoite komennolla ext.
Tallenna tehtävä tiedooon myöhempää käyttöä varten komennolla save. Anna tiedoolle jokin sopiva nimi (esim. lindod1). Huom! Tiedoo tallentuu binäärimuodossa, joten sitä ei kannata esimerkiksi tuloaa näytölle tai paperille. Sen sijaan se voidaan lukea LINDOn komennolla retr (retrieve). Seuraavaksi kirjoitetaan ratkaiava optimointitehtävä tekitiedooon ja luetaan se sieltä LINDOon. Tätä varten lopeta LINDO komennolla quit. 3. Kirjoita jollain editorilla (esimerkiksi xemacs tai notepad) tekitiedoo, jossa on alla oleva sisältö. Anna tiedoolle jokin sopiva nimi (esim. lindod2) ja tallenna se m: -levyllesi (My Documents -kansioon). min 15 x1-25 x2-35 x3 4 x1 + 3 x2 - x3 < 40 - x1 + 6 x2 + 2 x3 < 60 2 x1 - x2 + 3 x3 < 80 leave Huomaa, että tiedoon lopussa on oltava komento leave. Käynniä LINDO uudeaan. Lue tekitiedoo LINDOon komennolla take (edellisen tehtävän binääritiedoon luku ei onniu take-komennolla). 4. Jatketaan tehtävässä 2 käsitellyn optimointitehtävän muokkaamia. Lue tallennettu binääritiedoo LINDOon komennolla retr. Muunnetaan tehtävä muotoon 9x 1 +4x 2 120, 2x 1 +5x 2 10, rajoite poiettu rajoitetta muutettu Poia ensin ensimmäinen rajoite komennolla del. Muokkaa sitten jälkimäinen rajoite yllä olevaan muotoon komennolla alt.
Paljonko jälkimmäisen rajoitteen vakio 10 voi muuttua ilman, että ratkaisu muuttuu? Jos unohdit vaata y kysymykseen DO RANGE...?, niin saman tulouksen saa myös komennolla range. Tarvittaessa myös ratkaisu voidaan tuloaa uudelleen komennolla solution. 5. Muuta edellinen optimointitehtävä binääriseksi sekalukuoptimointitehtäväksi rajoittamalla x 1 saamaan vain arvoja 0 tai 1. 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äiä muuttujaa binäärisiksi). Huomioita LINDOn käytöä: 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 tulous ohjata haluttuun tiedooon. Lopeta LINDO kirjoittamalla quit. Seuraavaksi siirrytään tarkaelemaan LINGOa. 6. Ratkaiaan optimointitehtävä max 45x 1 +25x 2, 3x 1 +5x 2 75, 4x 1 x 2 +45, Käynniä LINGO. Mallin syöttö aloitetaan komennolla model:. Kohdefunktion syöttö aloitetaan kirjoittamalla max= (tai min=). Rajoitteet syötetään suoraan ilman komentoa. Jokaisen lauseen jälkeen (poislukien model ja ) tulee merkitä puolipie ja kertomerkit pitää merkitä explisiittisei (LINGO ratkaisee myös epälineaarisia tehtäviä eikä näin ollen osaa/halua tulkita vakioita ja muuttujia). Syöttö lopetetaan kirjoittamalla. Tarkia komennolla Ctrl l (tai LINGO-valikoa look), että tehtävä on oikein syötetty. Tarvittaessa voit editoida suoraan alkuperäiä muotoiluasi. Ratkaise tehtävä komennolla Ctrl s (tai LINGO-valikoa solve). Ratkaisu tulouu Reports-ikkunaan. Tee vielä herkkyysanalyysi komennolla Ctrl r (tai LINGOvalikoa range).
Millä välillä kohdefunktion muuttujan x 2 kertoimen on oltava, jotta ratkaisu ei muuttuisi? 7. Muutetaan optimointitehtävä muotoon max 45x 1 +25x 2, 2x 1 +7x 2 55, rajoitetta muutettu 4x 1 x 2 +45, 2x 1 3x 2 15, rajoite lisätty Tämä onniuu helpoi muokkaamalla alkuperäiä malliasi. Tarkia 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... valikoa File. Anna tiedoolle jokin sopiva nimi (esim. lingod1) ja tallenna se m: -levylle. Seuraavaksi kirjoitetaan ratkaiava optimointitehtävä tekitiedooon ja luetaan se sieltä LINGOon. 8. Kirjoita jollain editorilla tekitiedoo, jossa on alla oleva sisältö. Anna tiedoolle 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ä tiedoon lopuun ei tarvita mitään erityiä loppukomentoa (vrt. leave LINDOssa). Avaa tiedoo LINGOssa käyttämällä Window -valikoa löytyvää Command Windowsia ja siellä käskyä take. Tarkia 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 muokkaamia. Lue tallennettu tiedoo LINGOon käyttämällä open file -kuvaketta tai käskyä Open valikoa 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 luonnolliseikin halutun binäärisen muuttujan nimi). Tarkia tehtävä ja ratkaise se.
Huomioita LINGOn käytöä: 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 puolipieeseen; kommentit alkavat huutomerkillä (ja loppuvat puolipieeseen). Huom! Yliopiolla on käytössään hyvin vanhat versiot sekä LINDOa että LIN- GOa. Uudemmat versiot esim. kotikoneelle saa sivulta http://www.lindo.com/.