320 likes | 469 Views
Projektien suunnittelu ja skedulointi. Ville Koponen. Sisältö. Ajan ja kustannuksen arvotus( Trade-off ) Lineaarinen kustannus Epälineaarinen kustannus Työvoimarajoitteet Kokonaislukuoptimointi. Ajan ja kustannusten arvotus. Töiden suoritusaikaa voi lyhentää käyttämällä resursseja
E N D
Projektien suunnittelu ja skedulointi Ville Koponen
Sisältö • Ajan ja kustannuksen arvotus(Trade-off) • Lineaarinenkustannus • Epälineaarinenkustannus • Työvoimarajoitteet • Kokonaislukuoptimointi
Ajan ja kustannusten arvotus • Töiden suoritusaikaa voi lyhentää käyttämällä resursseja • Mitä nopeampi suoritus, sitä korkeammat kustannukset • Työ j voidaan suorittaa nopeimmillaan ajassa pjmin kustannuksella cja • Vastaavasti hitaimmillaan pjmax ja cjb
Lineaarinen kustannus Työn j nopeuttaminen yhdellä aikayksiköllä aiheuttaa kustannuksen cj Työn j suorittaminen ajassa pj kustantaa Lisäksi kiinteä kustannus c0 jokaista käytettyä aikayksikköä kohden
Lineaarinen kustannus Työn suoritusajan ja kustannuksen suhde (Kirja 4.6)
Lineaarinen kustannus • Tarkoitus on minimoida koko projektin kustannus • Heuristiikka: • Ei takaa optimia, mutta antaa usein hyvän vastauksen • Toimii myös epälineaarisilla kustannuksilla • Lineaarinen optimointi
Heuristiikka - termejä • Järjestysverkkoon (precedence graph) lisätään alku- ja loppusolmut • Kriittinen polku (critical path) • Pisin polku alusta loppuun • Gcp • Aliverkko joka sisältää kriittiset polut • Leikkausalue (cut set) • Solmujen joukko, jonka poistaminen katkaisee polun
Heuristiikka - termejä • Minimaalinen leikkausjoukko (minimal cut set) • Leikkaus joukko jonka minkä tahansa solmun lisääminen yhdistäisi polun
Aika/kustannus arvotus algoritmi (Kirja 4.4.1.) (1/3) • 1. • Etsi kaikki kriittiset polut • Rakenna aliverkko Gcp kriittisistä poluista • 2. • Määritä kaikki minimaaliset leikkausjoukot Gcp :ssä • Tarkastele vain niitä joiden suoritusaika ei jo ole minimissä. • Jos sellaista ei löydy niin lopeta
Aika/kustannus arvotus algoritmi (Kirja 4.4.1.) (2/3) • 3. • Laske jokaisen minimaalisen leikkausjoukon kaikkien suoritusaikojen yhdellä vähentämisestä aiheutuva kustannus • Valitse se joukko jonka kustannus on pienin • Mikäli tämä kustannus on suurempi kuin yleiskustannus c0 niin lopeta
Aika/kustannus arvotus algoritmi (Kirja 4.4.1.) (3/3) • 4. • Vähennä kyseisen joukon kaikkia suoritusaikoja yhdellä yksiköllä • Etsi uudet kriittiset polut • Laadi uusi verkko Gcp ja mene kohtaan 2.
Heuristiikka • Heuristiikkaa voi nopeuttaa pienentämällä suoritusaikojan isommalla arvolla • Suoritusaika ei saa mennä pienemmäksi kuin sen minimi • Suoritusaikaa pienennettäessä joku toinen polku voi tulla kriittiseksi
Heuristiikka – esimerkki (kirja 4.4.3) (1/2) Yleiskulu c0 on 13
Heuristiikka – esimerkki (kirja 4.4.3) (2/2) • Alussa minimaalisella leikkausjoukolla {2,3,5} on halvin kustannus • Näiden nopeuttaminen yhdellä kustantaa 6 • Tämän jälkeen näitä töitä ei voi nopeuttaa • Leikkausjoukon {1,4} nopeuttaminen kustantaa 12 • Kaikki työt minimissä -> lopetus • Ei kuitenkaan optimi • Työtä 5 voisi hidastaa
Lineaarinen optimointi Ongelma voidaan muotoilla lineaariseksi optimointitehtäväksi Työn j suoritusaika pj, sen aikaisin mahdollinen aloitusaika xj ja kokonaissuoritusaika Cmax päätösmuuttujina 2n+1 muuttujaa
Lineaarinen optimointi Työn suoritusajasta pj seuraa rajoitukset Projektin kustannus
Lineaarinen optimointi Kohdefunktio
Lineaarinen optimointi min s.e.
Lineaarinen optimointi • Kokonaissuoritusajan mennessä eräpäivän ohi • Sakkomaksu • Paloittain lineaarinen kustannusfunktio • Projektia ei kannata tehdä valmiiksi ennen eräpäivää
Epälineaariset kustannukset • Kustannukset suoritusajan supistamisessa konvekseja • Käsitellään diskreettejä aikamuuttujia • cj(pj) kustannus työn j suorittamisesta ajassa pj • pj kokonaisluku • Yleiskulu c0(t) kasvava
Epälineaariset kustannukset • Ratkaisuun vastaava heuristiikka kuin algoritmi 4.4.1 • Tärkeää pienentää suoritusaikaa vain yhdellä yksiköllä joka toistokerta • Epälineaarinen optimointi • Tavoitefunktio: • Rajoitukset samat kuin lineaarisessa
Projektien skedulointi työvoimarajoitteilla • Erilaiset operaattorit jaettu eri varantoihin • Npkappaletta eri varantoja • Varannossa l on saatavilla rajoitetty määrä operaattoreita • Wl • Kukin työ j vaatii tietyn määrän eri operaattoreita eri varannoista l • Wlj
Työvoimarajoitteet • Projektien skedulointi ongelman ratkaisu työvoimarajoitteilla on hyvin hankalaa • Ei lineaarista optimointia • Kokonaislukuoptimointi • Kaikki töiden suoritusajat kokonaislukuja ja vakioita
Työvoimarajoitteet – Esimerkki (Kirja 4.6.1) (1/2) • W1 = 4 ja W2 = 8
Työvoimarajoitteet – Esimerkki (Kirja 4.6.1) (2/2) • Ilman työvoimarajoitteita kriittinen polku olisi 1->4 ja Cmax =14 • Rajoitteiden kanssa Cmax =18 • Työt 2 ja 4 tehdään välillä [0,6] • Työt1 ja 5 välillä [6,14] • Työ 4 välillä [14,18]
Kokonaislukuoptimointi • Binäärimuuttuja xjt • Saa arvon 1 jos työ j valmistuu hetkellä t • Muulloin 0 • Työn j vaatimat operaattorit varannosta l välillä [t-1,t]
Kokonaislukuoptimointi • Kokonaissuoritusajan yläraja H • Työn j lopetusaika • Kokonaissuoritusaika
Kokonaislukuoptimointi min s.e.
Kokonaislukuoptimointi • Tavoite minimoida kokonaissuoritusaika • 1. rajoitus järjestyksen takia • 2. rajoitus työntekijärajoituksien takia • 3.rajoitus jotta kukin työ aloitetaan • Hankalaa isoilla tehtävillä • Joihinkin tärkeisiin erikoistapauksiin tehokkaita heuristiikoita
Ydinvoimaloiden huollon skedulointi • Lentokonevideo • Auttaa päätöksen teossa • Turvallisuustekijät huomioitu
Yhteenveto • Töitä voidaan nopeuttaa lisäkustannuksilla • Lineaariset arvotukset • Lineaarinen optimointi ja heuristiikka • Epälineaariset arvotukset • Epälineaarinen optimointi ja Heuristiikka • Työvoimarajoitukset • Hankala ratkaista • Kokonaislukuoptimointi ja heuristiikkoja
Kotitehtävä Muotoile sivun 13 esimerkki lineaarisena optimointitehtävänä. Ratkaise se ja vertaa esimerkin tulokseen.