optimointiopin seminaari 2009

40
S ysteemianalyy sin Laboratorio Esitelmä 12 – Arttu Klemettilä Optimointiopin seminaari - Syksy 2009 Optimointiopin seminaari 2009 Ajanvarausten aikataulutus Arttu Klemettilä

Upload: bunny

Post on 07-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Optimointiopin seminaari 2009. Ajanvarausten aikataulutus. Arttu Klemettilä. Sisältö. Mitä on ajanvarausten aikataulutus? Määritelmiä ja käsitteitä Kolme eri tapausta : Suunnittelu ilman joutoaikaa Suunnittelu joutoajan kanssa Työvoimarajoitteilla. Aikataulujen skedulointi. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Optimointiopin seminaari 2009

S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä

Optimointiopin seminaari - Syksy 2009

Optimointiopin seminaari 2009

Ajanvarausten aikataulutus

Arttu Klemettilä

Page 2: Optimointiopin seminaari 2009

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

Page 3: Optimointiopin seminaari 2009

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

Page 4: Optimointiopin seminaari 2009

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

Page 5: Optimointiopin seminaari 2009

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

Page 6: Optimointiopin seminaari 2009

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

Page 7: Optimointiopin seminaari 2009

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

Page 8: Optimointiopin seminaari 2009

S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä

Optimointiopin seminaari - Syksy 2009

Joutoajattomat ajanvarausjärjestelmät

Page 9: Optimointiopin seminaari 2009

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

Page 10: Optimointiopin seminaari 2009

S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä

Optimointiopin seminaari - Syksy 2009

Yleisen tapauksen ratkaisemisesta

• Kokonaislukuoptimointia• NP-kova

– Formulointi kuten aikaisemmin

• Erikoistapauksilla yksinkertaisempaa?

Page 11: Optimointiopin seminaari 2009

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

Page 12: Optimointiopin seminaari 2009

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

Page 13: Optimointiopin seminaari 2009

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

Page 14: Optimointiopin seminaari 2009

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

Page 15: Optimointiopin seminaari 2009

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.

Page 16: Optimointiopin seminaari 2009

S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä

Optimointiopin seminaari - Syksy 2009

Joutoajalliset aikataulut

Page 17: Optimointiopin seminaari 2009

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

Page 18: Optimointiopin seminaari 2009

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)

Page 19: Optimointiopin seminaari 2009

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

Page 20: Optimointiopin seminaari 2009

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

Page 21: Optimointiopin seminaari 2009

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

Page 22: Optimointiopin seminaari 2009

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

Page 23: Optimointiopin seminaari 2009

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

Page 24: Optimointiopin seminaari 2009

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

Page 25: Optimointiopin seminaari 2009

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.

Page 26: Optimointiopin seminaari 2009

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!

Page 27: Optimointiopin seminaari 2009

S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä

Optimointiopin seminaari - Syksy 2009

Esimerkin ratkaisu

Ratkaisuksi saatiin

Page 28: Optimointiopin seminaari 2009

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ä

Page 29: Optimointiopin seminaari 2009

S ysteemianalyysinLaboratorioTeknillinen korkeakoulu Esitelmä 12 – Arttu Klemettilä

Optimointiopin seminaari - Syksy 2009

Työvoimarajoitusten optimointi

Page 30: Optimointiopin seminaari 2009

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

Page 31: Optimointiopin seminaari 2009

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?

Page 32: Optimointiopin seminaari 2009

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?

Page 33: Optimointiopin seminaari 2009

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

Page 34: Optimointiopin seminaari 2009

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

Page 35: Optimointiopin seminaari 2009

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

Page 36: Optimointiopin seminaari 2009

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

Page 37: Optimointiopin seminaari 2009

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

Page 38: Optimointiopin seminaari 2009

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

Page 39: Optimointiopin seminaari 2009

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

Page 40: Optimointiopin seminaari 2009

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