S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Optimointiopin seminaari 2009
Ajanvarausten aikataulutus
Arttu Klemettilä
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Sisältö
• Mitä on ajanvarausten aikataulutus? Määritelmiä ja käsitteitä
• Kolme eri tapausta:– Suunnittelu ilman joutoaikaa– Suunnittelu joutoajan kanssa– Työvoimarajoitteilla
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Aikataulujen skedulointi
• Jouko töitä, joilla suoritusaika sekä aikaikkuna, jossa työ pitää suorittaa
• Kysymys: Mitkä työt suoritetaan, mitkä ei?• Yleensä maksimoidaan tehtyjen töiden määrää, tai
painotettua summaa– Painokertoimet kertovat työn arvon
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Rajoitukset
• Resursseja voi olla rajoitettu määrä: Työvoima, työpisteet, työkalut
• Aikaikkunat voivat olla joustavia tai ei: Joutoaikaa vai ei?
• Tässä keskitytään diskreettiaikaiseen tapaukseen
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Tyypin 1 aikatauluongelmat
• Työllä tietty määrä resurssivaatimuksia– Esim. henkilökunta, työkalut
• Resurssit identtisiä• Jos resurssit eivät riitä yhtäaikaiseen suoritukseen,
töitä ei voida suorittaa yhtäaikaa• Yleensä työvoimarajoitteelliset työt
• Esimerkki: parturi, konepaja
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Tyypin 2 aikataulutusongelmat
• Kaikki resurssit uniikkeja• Resurssi kykenee vain yhteen työhön kerrallaan• Järjestä työt niin, että resurssit ovat käytettävissä
• Esimerkejä: Kokousaikataulut, kokeiden järjestäminen
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkki aikataulutusongelmasta
• Autovuokraamo Vuokrataan autoja Suoritusaika = vuokra-aika Autoja vain rajallinen määrä käytössä Vuokraamolla voi olla eri mallin autoja
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Joutoajattomat ajanvarausjärjestelmät
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Joutoajattomuus
• Töillä vapautusaika rj ja epäpäivä dj, sekä suoritusaika pj.
• Tarkat aikaikkunat: pj = dj – rj (!)• m kpl koneita• Painokertoimet wij (työ j, koneessa i)
Esimerkiksi tuotteesta saatava tuotto Voi riippua myös koneesta i.
• Tavoitteena maksimoida painotettua summaa
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Yleisen tapauksen ratkaisemisesta
• Kokonaislukuoptimointia• NP-kova
– Formulointi kuten aikaisemmin
• Erikoistapauksilla yksinkertaisempaa?
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Erikoistapauksia
• Kaikki suoritusajat pj = 1
=> Saadaan joka ajanhetkelle omat optimointitehtävät
• Suhteellisen helppo
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Toinen erikoistapaus
• Suoritusajat vapaita• Identtiset painot (wij = 1)• Työt voidaan suorittaa millä tahansa koneella• Tavoitteena maksimoida suoritettujen töiden
määrää• Heuristiikka
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Suoritettujen töiden määrän maksimoiva heurestiikka
• J = systeemiin laitettujen töiden joukko• N työtä• Järjestä työt vapautusajan mukaan:• r1 < r2 < r3 < ... < rn
• Vaihe 1:• J = ф, j = 1
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Suoritettujen töiden määrän maksimoiva heurestiikka
• Vaihe 2: Jos resurssi vapaa hetkellä rj, aseta j tälle resurssille ja
lisää j joukkoon J. Mene vaiheeseen 4 Jos ei, mene vaiheeseen 3
• Vaihe 3: Valitse j* s.e. Cj* = max(k є J){rk + pk} Jos Cj = rj+pj > Cj*, älä lisää työtä j. Siirry vaiheeseen 4. Muuten poista työ j* ja lisää työ j aikatauluun ja
joukkoon J. Mene vaiheeseen 4
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Suoritettujen töiden määrän maksimoiva heurestiikka
• Vaihe 4: Jos j = n, eli kaikki työt käyty läpi, lopeta Muuten, aseta j = j + 1 ja palaa vaiheeseen 2
• Eli valitaan työ, jos se mahtuu aikatauluun. Jos se ei mahdu, poistetaan “huonoin” työ ja korvataan uudella.
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Joutoajalliset aikataulut
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Joutoajalliset aikataulut
• Kuten aikaisemmin, mutta nyt pj < dj - rj
• Töillä aikaikkuna, jonka aikana se täytyy suorittaa
• Nyt tutkitaan tapausta, jossa painot voivat olla erisuuria ja työt voidaan suorittaa vain tietyissä koneissa.
• Maksimoidaan painotettua summaa
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Merkintöjä
• Koneet, jolla työ j voidaan suorittaa Mj
• |Mj| on joukon Mj koneiden lukumäärä• Määritellään tärkeysfunktio Ij = f(wj/pj, |Mj|)
Kertoo kuinka tärkeä työ on suorittaa ensin Mitä pienempi Ij, sitä tärkeämpi työ Loogisesti pitäisi laskea |Mj|:n pienentyessä ja kasvaa
wj/pj:n pienentyessä Esimerkiksi f(wj/pj, |Mj|) = |Mj| / (wj/pj)
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Painotetun summan maksimin löytäminen
• Voitaisiin muotoilla kokonaislukutehtävänä NP-kova
• Heurestiikalla päästään kuitenkin lähelle
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Painotetun summan maksimoiva heurestiikka
• Valmistelut: – Laske kullekin työlle tärkeysindeksit Ij
– Laske kullekin ajanhetkelle ja koneelle painokerroin νit, joka kertoo kuinka monta eri työtä kone i pystyisi suorittaamaan hetkellä t
– Määritellään joustavuusfunktio g(νit+1+νit+2+ … + νit+pj)– Funktio g voidaan valita “vapaasti”, esim:– g(νit+1+νit+2+ … + νit+pj) = ∑k=1..pj (νit+k)/pj
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Valmisteluja
• Heuristiikka pyrkii antamaan työn koneelle, jolla on joustavuus minimoituu
• Vaihe 1: j = 1
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Painotetun summan maksimoiva heuristiikka
• Vaihe 2: Ota työ j, ja valitse se resurssi ja aikaikkuna, jolla
funktio g(νit+1+νit+2+ … + νit+pj) saa pienimmän arvonsa. Jos j:tä ei voi määrätä millekään koneelle, jätä se pois
• Vaihe 3: Jos j = n, lopeta Muuten aseta j = j+1
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkkitilanne
• 7 työtä, 3 konetta• Suoritusajat, vapautusajat, eräpäivät, käyvät
koneet ja painot taulukossa
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkkilasku
• Määritellään tärkeysfunktio Ij = |Mj|/(wj/pj) Saadaan tärkeydet:
• Lasketaan ν-kertoimet:
• Valitaan g-funktioksi ∑k=1..pj (νit+k)/pj
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkkitapaus
• Työllä 7 on pienin tärkeys Ij, joten aloitetaan siitä• Lasketaan käyville koneille (1 ja 2) joustavuudet
käyville aloitushetkille (t = 5 ... 11)• Esim. g(i=1,t=5) = (6+6+6)/3 = 6 g(i=2,t=9) = (4+3+3)/3 = 1.333• Pienin arvo saadaan koneella 2, hetkellä t =11• Asetetaan aikatauluun tämä arvo.
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkkitapaus
• Seuraavaksi pienin Ij arvo on työllä 6. Vain työ 1 on käypä ja ajanhetket t = 4...14.
• Pienin arvo löytyy hetkellä 14• Valitaan kone 1 ajanhetkellä 14
• Jatketaan näin kunnes päästään loppuun• Muista jo asetetut työt etsiessäsi käypiä aikoja!
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkin ratkaisu
Ratkaisuksi saatiin
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkin analysointi
• Huomataan että työ 3 ei mahtunut lainkaan aikatauluun
• Optimaalisessa aikataulussa kuitenkin kaikki mahtuvat
• Vaihtamalla funktioita Ij = f(wj/pj,|Mj|) tai g(νit) saadaan erilaisia tuloksia
• Esimerkiksi jos f = |Mj|2/(wj/pj), saadaan tässä tehtävässä kuitenkin optimi
• Kts. kotitehtävä
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Työvoimarajoitusten optimointi
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Työvoimarajoitusten optimointi
• Äärettömästi koneita rinnakkain• n työtä ja kaikki täytyy tehdä• Työt voidaan tehdä millä tahansa koneella, mutta
jos se aloitetaan, se täytyy tehdä loppuun samalla koneella
• Työ j vaatii työvoiman Wj. Kokonaistyövoima W• Jos Wk + Wj > W, töitä j ja k ei voida suorittaa yhtä
aikaa
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkki
• Koeviikon järjestäminen:– Salissa W tuolia– Kurssilla j on Wj opiskelijaa, jotka kaikki osallistuvat
kokeeseen– Miten järjestät kaikki n koetta niin, että käytetty aika
on mahdollisimman pieni?
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Työvoimarajoitusten optimointi
• Erikoistapaus: Kaikki suoritusajat samoja Ei edeltävyysvaatimuksia Työntekijät voivat suorittaa mitä tahansa työtä
• Ongelma yksinkertaistuu lokerointiongelmaksi• Miten pakkaat n esinettä mahdollisimman pieneen
määrään laatikoita?
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Heuristiikka
• Kokonaislukutehtävä NP-kova• Voidaan kuitenkin ratkaista First Fit (FF)
-heuristiikalla.• Heuristiikalle saadaan virhearvio:
Cmax(FF) <= 17/10 Cmax(OPT) +2
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
FF-heuristiikka
• Numeroidaan lokerot 1,2,3 ... Lokerot esimerkiksi ajanhetkiä
• Vaihe 1: Aseta j = 1
• Vaihe 2: Etsi ensimmäinen lokero, johon työ j mahtuu
• Vaihe 3: Jos j = n, lopeta, muuten j = j+1
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Esimerkki FF-heuristiikasta
• 18 työtä, joilla työvoimantarpeet Wj• Käytettävissä oleva työvoima W = 2100
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
FF:n tuottama ratkaisu
• Kokonaissuoritusaika 10
• Lokerossa 1 työt 1-6• Lokeroissa 2-4 työt 7-12 pareittain• Lokeroissa 5-6 työt 13-18 yksittäin
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Todellinen optimi
• Tehtävän oikea optimi saadaan esimerkiksi kokonaislukuoptimoinnilla
• Kokonaissuoritusaika 6, joka lokerossa 1 työ kutakin tyyppiä.
• Cmax(FF) <= 17/10 Cmax(OPT) + 2 ?• 10 <= 17/10*6 +2 = 12.2 => OK
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
FFD-heuristiikka
• FF-heuristiikkaa voidaan parantaa järjestämällä työt laskevasti Wj:n mukaan.
• First Fit Decreasing (FFD) heuristiikka• Parempi virhearvio:
Cmax(FFD) <= 11/9 Cmax(OPT) + 4
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Kertaus
• Ajanvarauksen skedulointi: Työt suoritetaan tai ei, maksimoidaan määrä Aikaikkunat
• Joutoajaton skedulointi Lisäysheurestiikka
• Joutoajaton skedulointi Painotetun summan maksimointiheuristiikka
• Työvoiman optimointi
S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä
Optimointiopin seminaari - Syksy 2009
Kotitehtävä
• Ratkaise joustavan aikataulutuksen ongelma uudestaan, mutta nyt käytä tärkeysfunktiota Ij = (|Mj|½) / (wj/pj).
• Muuttuuko tulos? Onko edelleenkään optimi? Onko tulos parempi kuin alkuperäisellä tärkeysfunktiolla Ij = |Mj|/(wj/pj)?
• Laskut ovat helppoja, mutta niitä on kohtuullisen paljon. Kannattaa käyttää Exceliä apuna
Top Related