Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1 28.3.2004 Jouni Karppinen Alustava runko tehty. 0.2 1.4.2004 Hannu Kauppinen Lisätty tiedot jo olemassa olleista tiedostoista. 0.3 2.4.2004 Hannu Kauppinen Täydennetty tietoja erityisesti asennuksen osalta. 0.4 3.4.2004 Hannu Kauppinen Lisätty erilaisia tietoja, erityisesti APIn käytöstä 0.5 4.4.2004 Vesa Salento Päivitetty www-käyttöliittymän kuvausta. 0.6 4.4.2004 Hannu Kauppinen Muokattu www-käyttöliittymän kuvausta. 1.0 5.4.2004 Jouni Karppinen Dokumentti tarkastettu ja korjattu DE-vaiheen palautusta varten.
Sisällysluettelo 1 Vaatimukset ja asennus... 1 1.1 Laitteistovaatimukset... 1 1.2 Asennus... 1 2 Käynnistäminen... 1 2.1 Käyttö yksittäisessä koneessa... 1 2.2 Käyttö verkkoympäristössä... 2 3 Esittely... 2 4 Lmodelsin käyttäminen... 3 4.1 Selain-pohjainen käyttöliittymä... 3 4.2 Java API-pohjainen käyttö... 3 5 Lmodelsin sulkeminen... 3 6 Vianetsintä... 4 6.1 Tekninen tuki... 4 7 Oikeudelliset kysymykset... 4 7.1 Tekijät... 4 7.2 Takuu... 4
1 Vaatimukset ja asennus 1.1 Laitteistovaatimukset Ennen kuin asennat Lmodelsin, varmista, että tietokoneesi täyttää seuraavat vaatimukset: 10 MB kiintolevytilaa Windows 95 (tai uudempi) tai Linux Java 1.4.1 ajoympäristö (Java Runtime Environment) internetselain (esim. Microsoft Internet Explorer tai Mozilla) Huomaa: prosessorin nopeuden ja muistin määrän kasvaessa ratkaisijan toiminta voi nopeutua merkittävästi. 1.2 Asennus Voit asentaa Lmodelsin purkamalla asennuspaketin (Lmodels-1.0.0.zip tai Lmodels-1.0.0.tar.gz) haluamaasi hakemistoon tietokoneellasi. Taulukko 1 esittelee paketista purkautuvat hakemistot ja tiedostot. Tiedosto tai hakemisto doc/ lib/ example/ VERSION README *.sh *.bat Sisältö Ohjelman dokumentaatio Käytetyt kirjastot Esimerkkejä lm-tiedostoista Versiotiedot Yleistä tietoa ohjelmasta Taulukko 1: Lmodels paketin hakemistot ja tiedostot. Skriptit, joilla ohjelmaa ohjataan Linux-ympäristössä Skriptit, joilla ohjelmaa ohjataan Windows-ympäristössä Löydät asennusohjeet tämän dokumentin lisäksi myös englanniksi hakemistosta doc/. Ne ovat tekstitiedostossa INSTALLATION. 2 Käynnistäminen Asennuksen jälkeen voit käyttää Lmodels-järjestelmää joko yksittäisessä koneessa tai verkon kautta useammassa koneessa. 2.1 Käyttö yksittäisessä koneessa Asennuksen jälkeen voit suoraan käynnistää ohjelman oletusasetuksilla. Windowskoneissa tämä tapahtuu suorittamalla skripti startwebserver.bat, Linux koneissa vastaava skripti on startwebserver.sh. 1 Käynnistyessään ohjelma tulostaa loki-tietoa näytölle. Jos kaikki rivit ovat EVENT-tyyppiä, on Lmodels-palvelin käynnistynyt ongelmitta. 1 Huomaa, että Java-komentotulkin pitää löytyä määritellystä polusta (ns. path-ympäristömuuttuja). 1
Tämän jälkeen voit käyttää ohjelmaa koneellasi. Avaa internetselaimesi. Kirjoita osoitekenttään osoitteeksi http://localhost:8080/. Olet nyt Lmodels järjestelmän käyttöliittymän pääsivulla. Tarkemmat ohjeet ohjelman käytöstä on kappaleessa 4. 2.2 Käyttö verkkoympäristössä Lmodels on suunniteltu käytettäväksi myös verkkoympäristössä. Tällöin ohjelma voi pyöriä yhdellä palvelimella ja kaikki käyttäjät voivat käyttää sitä omilta koneiltaan. Tarvittaessa kuormaa voidaan jakaa vielä suorittamalla käyttöliittymää ylläpitävä palvelin eri palvelimella kuin varsinainen ratkaisija. Jos koko Lmodels halutaan ajaa yhdellä palvelimella, tapahtuu käynnistäminen kuten edellä on kuvattu. Lmodels käyttöliittymäpalvelin kuuntelee kyseisen koneen porttia 8080, ellei muuta ole määritetty 2. Lmodels-järjestelmää voidaan nyt käyttää ottamalla miltä tahansa koneelta yhteys selaimella kyseiseen porttiin. Mikäli käyttöliittymäpalvelinta halutaan ajaa fyysisesti eri koneella, tapahtuu tämä asentamalla Lmodels kappaleessa 1.2 kuvatulla tavalla molemmille palvelimille. Tämän jälkeen varsinaista ratkaisemista suorittavalla palvelimella käynnistetään Lmodels-palvelin. Tämä tapahtuu skriptillä startserver.bat Windows-ympäristössä ja skriptillä startserver.sh Linux-ympäristössä. Kun ohjelma on käynnistynyt, tulostuu ruudulle Lmodels Server started. Tämän jälkeen käyttöliittymää suorittavalla palvelimella muokataan startremotewebserver.sh tai startremotewebserver.bat skriptiä. Käytettävän korjauspalvelimen osoite annetaan käyttöliittymälle järjestelmäasetuksena (system property) nimellä lmodels.remoteaddress. Asetus voi olla esimerkiksi muotoa -Dlmodels.remoteAddress=kone.verkko.fi. Käynnistyessään ohjelma tulostaa lokitietoa näytölle. Jos kaikki rivit ovat EVENT-tyyppiä, on Lmodels-käyttöliittymäpalvelin käynnistynyt ongelmitta. Käyttöliittymän saa toimimaan myös muussa portissa kuin oletusarvoisessa portissa 8080. Portti asetetaan antamalla käyttöliittymälle järjestelmäasetuksena uusi portti nimellä lmodels.webapps.port. Asetus voi olla esimerkiksi muotoa -Dlmodels. webapps.port=6789. Kun käyttöliittymäpalvelin on käynnistynyt, voit kokeilla ottaa selaimella yhteyttä palvelimeen, jolle käyttöliittymä asennettiin. Muista käyttää oikeaa porttinumeroa. 3 Esittely Lmodels on ohjelma, jolla voidaan ratkaista lineaaris-loogisia malleja muuttamalla ne sekalukumalleiksi ja käyttämällä sen jälkeen erillistä ratkaisijaa mallin rajojen ja mahdollisten ratkaisujen etsimiseen. Lineaaris-loogisia malleja voidaan käyttää erilaisten tosielämän tilanteiden kuvaamiseen. Tällaisia ovat muun muassa erilaiset hinnoittelumallit sekä useiden järjestelmien ominaisuudet. Mallien ratkaisuilla voidaan hahmotella mahdollisia hintoja kyseessä olevalle tuotteelle tai erilaisten ominaisuuksien vaikutusta muihin järjestelmän ominaisuuksiin. 2 Portti voidaan tarvittaessa muuttaa asettamalla käynnistysskriptiin uudeksi järjestelmäasetukseksi (system property) lmodels.webapps.port ja antamalla sille arvoksi haluttu portin numero. 2
4 Lmodelsin käyttäminen Lmodels koostuu useasta Java-ohjelmasta ja sitä voidaan käyttää monilla eri tavoilla. Helpoin tapa tutustua järjestelmään on käyttää mukana toimitettavaa selainpohjaista käyttöliittymää. Jos Lmodelsia halutaan hyödyntää tuotantokäytössä, pitää se liittää järjestelmään, joka luo mallit ja joka hyödyntää laskennan tuloksia. Tätä varten järjestelmässä on selkeät rajapinnat, joita asiakasohjelma voi käyttää. 4.1 Selainpohjainen käyttöliittymä Selainpohjainen käyttöliittymä on yksinkertaisin tapa tutustua Lmodelsin toiminnallisuuksiin. Kun käynnistät järjestelmän ja otat selaimella yhteyttä käyttöliittymään 3, saat näkyviin kuvassa 1 esitetyn näkymän. Kuva 1: Mallin syöttö www-käyttöliittymästä. Aloitusnäkymä ohjaa Lmodelsin ratkaisua. Tärkeintä näkymässä on ratkaistavan mallin syöttäminen, mutta muilla asetuksilla voidaan merkittävästi ohjata ratkaisun kulkua. Käyttöliittymästä käsin voidaan syöttää mallin nimi (Model name), epsilonin arvo (Epsilon), normalisoitu muoto, normalisoinnin tarpeellisuus, ratkaisutapa sekä debug-toimintatavan käyttö. Näkymän alaosaan syötetään malli joko sille varattuun ruutuun tai valmiista tiedostosta. Mallin nimi on optionaalinen kenttä, jolla käsiteltävälle mallille voi antaa nimen. Epsilonin arvoa käytetään laskennan epätarkkuuden korjaamiseen. Koska tietokoneet eivät pysty käsittelemään lukuja täysin tarkoilla arvoilla, korjataan tästä aiheutuvia laskuvirheitä sallimalla tiettyä epätarkkuutta tuloksissa. Tämä epätarkkuus määritellään epsilonina. Normalisointitapa vaikuttaa varsinaiselle ratkaisijalle toimitettavan mallin kokoon. Vaihtoehdot ovat konjunktiivinen normaalimuoto (CNF) ja disjunktiivinen normaalimuoto (DNF). Näistä nopeammin tuloksen antava riippuu käsiteltävästä mallista. Lisäksi voidaan merkitä mallin jo olevan normalisoitu, jolloin normalisointia ei suoriteta uudelleen. Oleellinen tieto on myös muuttujatyyppien käsittelyä koskeva valinta. Ratkaisun nopeuttamiseksi kaikkia muuttujia voidaan ratkaisuvaiheessa käsitellä liukulukuina, sillä näiden ratkaiseminen on nopeinta. Muut vaihtoehdot ovat totuusarvojen käsittely kokonaislukuina sekä kokonaislukujen ja totuusarvojen käsittely kokonaislukuina. 3 Katso ohjeet kappaleesta 2. 3
Liukulukuratkaisu voi johtaa virheellisiin ratkaisuihin tietyissä tilanteissa. Usein kannattaa käyttää liukulukuratkaisua ensimmäisten rajojen hahmottamiseen ja sen jälkeen sitoa muuttujia tarkemmin ja tarkastella mallin käyttäytymistä täydellisillä ratkaisuilla. Debug-toimintatavassa mallin syötön jälkeen tulostetaan malli kaikkien järjestelmän käyttämien vaiheiden välissä. Tällä tavalla on mahdollista tarkastella eri vaiheissa mallille tehtyjä muutoksia ja siten etsiä mahdollisia puutteita mallin käsittelyssä. Viimeiseksi syöttönäkymään annetaan itse malli LM-kielellä kuvattuna syötettynä joko tekstikenttään ruudulle tai suoraan tiedostosta käyttäjän paikalliselta kiintolevyltä. Kuvassa 2 näkyy näkymä ratkaisusivulle, jossa voidaan antaa mallin muuttujille arvoja eli sitoa muuttujia, ja pyytää ohjelmaa ratkaisemaan puuttuville muuttujille kelvolliset arvot. Muuttujien sitominen tiettyyn arvoon tapahtuu syöttämällä kyseinen arvo ruutuun Value. Tämän jälkeen painiketta Solve painamalla järjestelmä laskee muiden vapaiden muuttujien uudet raja-arvot (Lower limit ja Upper limit) sekä ratkaiseen yhden kelvollisen arvon (Valid). Kuva 2: Ratkaisusivulla voi sitoa ja vapauttaa muuttujia. 4.2 Java API-pohjainen käyttö Selainpohjaisen käytön lisäksi Lmodels voidaan myös liittää komponentiksi johonkin muuhun järjestelmään. Ohjelmiston mukana toimitetaan PDF-muodossa tekninen määrittely, jossa on selostettu kattavasti koko Lmodels järjestelmän toiminta. Se on tarkoitettu ensisijaisesti ohjelmiston jatkokehittäjien tarpeisiin, mutta tarjoaa tietoa myös järjestelmän hyödyntämiseksi laajemman järjestelmän komponenttina. Tämä tekninen määrittely on myös hakemistossa doc. Teknisen määrittelyn lisäksi käytössä on myös Javadoc-dokumentaatio Lmodels paketin luokista, rajapinnoista ja metodeista. Tämä sijaitsee hakemistossa doc/javadoc/, Näiden avulla järjestelmä on liitettävissä helposti mihin tahansa muuhun järjestelmään. Käyttäjälle riittää tämä käyttöohje Lmodelsin käyttämiseen. 4
5 Lmodelsin sulkeminen Lmodels sulkeutuu pysäyttämällä käynnistetty prosessi. Jos olet käynnistänyt palvelimelle pelkän ratkaisijapalvelimen, voit sammuttaa sen skriptillä stopserver.bat Windowsjärjestelmissä ja stopserver.sh Linux-järjestelmissä. Ruudulle tulostuu Stopping the Lmodels Server. 6 Tekninen tuki Lmodels on kehitetty opiskelijoiden kurssityönä Teknillisessä korkeakoulussa. Tämän vuoksi ohjelmaan ei ole tarjolla teknistä tukea. Ongelmatilanteissa voit kääntyä ohjelman teettäneen tutkimusryhmän (WeCoTin) puoleen. 7 Oikeudelliset kysymykset 7.1 Tekijät Ryhmä Rajoitteiset: Jouni Karppinen jjkarppi@cc.hut.fi Hannu Kauppinen hannu.kauppinen@iki.fi Joonas Kekoni jkekoni@cc.hut.fi Mitro Kuha mkuha@cc.hut.fi Tuomas Luttinen tuo@iki.fi Vesa Salento vsalento@cc.hut.fi Kalle Valo kalle.valo@iki.fi 7.2 Takuu Ohjelma on levitetty siinä toivossa, että se on käyttäjälleen hyödyllinen. Se ei sisällä mitään takuuta, eikä sitä voida pitää kaupallisesti hyödynnettävänä tai sopivana mihinkään määrättyyn tarkoitukseen. Kaikki oikeudet järjestelmään pidätetään, ellei erikseen muuta ole sovittu. Rajoitteiset, 2004 5