1 / 40

Optimointiopin seminaari 2009

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.

bunny
Download Presentation

Optimointiopin seminaari 2009

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optimointiopin seminaari 2009 Ajanvarausten aikataulutus Arttu Klemettilä

  2. Sisältö • Mitä on ajanvarausten aikataulutus? • Määritelmiäjakäsitteitä • Kolmeeritapausta: • Suunnitteluilmanjoutoaikaa • Suunnittelujoutoajankanssa • Työvoimarajoitteilla

  3. 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

  4. 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

  5. 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

  6. 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

  7. Esimerkki aikataulutusongelmasta • Autovuokraamo • Vuokrataan autoja • Suoritusaika = vuokra-aika • Autoja vain rajallinen määrä käytössä • Vuokraamolla voi olla eri mallin autoja

  8. Joutoajattomat ajanvarausjärjestelmät

  9. 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

  10. Yleisen tapauksen ratkaisemisesta • Kokonaislukuoptimointia • NP-kova • Formulointi kuten aikaisemmin • Erikoistapauksilla yksinkertaisempaa?

  11. Erikoistapauksia • Kaikki suoritusajat pj = 1 => Saadaan joka ajanhetkelle omat optimointitehtävät • Suhteellisen helppo

  12. Toinen erikoistapaus • Suoritusajat vapaita • Identtiset painot (wij = 1) • Työt voidaan suorittaa millä tahansa koneella • Tavoitteena maksimoida suoritettujen töiden määrää • Heuristiikka

  13. 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

  14. 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

  15. 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.

  16. Joutoajalliset aikataulut

  17. 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

  18. 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)

  19. Painotetun summan maksimin löytäminen • Voitaisiin muotoilla kokonaislukutehtävänä • NP-kova • Heurestiikalla päästään kuitenkin lähelle

  20. 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

  21. Valmisteluja • Heuristiikka pyrkii antamaan työn koneelle, jolla on joustavuus minimoituu • Vaihe 1: • j = 1

  22. 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

  23. Esimerkkitilanne • 7 työtä, 3 konetta • Suoritusajat, vapautusajat, eräpäivät, käyvät koneet ja painot taulukossa

  24. Esimerkkilasku • Määritellään tärkeysfunktio Ij = |Mj|/(wj/pj) • Saadaan tärkeydet: • Lasketaan ν-kertoimet: • Valitaan g-funktioksi ∑k=1..pj (νit+k)/pj

  25. 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.

  26. 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!

  27. Esimerkin ratkaisu Ratkaisuksi saatiin

  28. 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ä

  29. Työvoimarajoitusten optimointi

  30. 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

  31. 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?

  32. 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?

  33. Heuristiikka • Kokonaislukutehtävä NP-kova • Voidaan kuitenkin ratkaista First Fit (FF) -heuristiikalla. • Heuristiikalle saadaan virhearvio: • Cmax(FF) <= 17/10 Cmax(OPT) +2

  34. 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

  35. Esimerkki FF-heuristiikasta • 18 työtä, joilla työvoimantarpeet Wj • Käytettävissä oleva työvoima W = 2100

  36. 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

  37. 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

  38. 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

  39. Kertaus • Ajanvarauksen skedulointi: • Työt suoritetaan tai ei, maksimoidaan määrä • Aikaikkunat • Joutoajaton skedulointi • Lisäysheurestiikka • Joutoajaton skedulointi • Painotetun summan maksimointiheuristiikka • Työvoiman optimointi

  40. 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

More Related