Optimointiopin seminaari 2009
This presentation is the property of its rightful owner.
Sponsored Links
1 / 40

Optimointiopin seminaari 2009 PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on
  • Presentation posted in: General

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.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Optimointiopin seminaari 2009

Optimointiopin seminaari 2009

Ajanvarausten aikataulutus

Arttu Klemettilä


Sis lt

Sisältö

  • Mitä on ajanvarausten aikataulutus?

    • Määritelmiäjakäsitteitä

  • Kolmeeritapausta:

    • Suunnitteluilmanjoutoaikaa

    • Suunnittelujoutoajankanssa

    • Työvoimarajoitteilla


Aikataulujen skedulointi

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


Rajoitukset

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


Tyypin 1 aikatauluongelmat

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


Tyypin 2 aikataulutusongelmat

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


Esimerkki aikataulutusongelmasta

Esimerkki aikataulutusongelmasta

  • Autovuokraamo

    • Vuokrataan autoja

    • Suoritusaika = vuokra-aika

    • Autoja vain rajallinen määrä käytössä

    • Vuokraamolla voi olla eri mallin autoja


Joutoajattomat ajanvarausj rjestelm t

Joutoajattomat ajanvarausjärjestelmät


Joutoajattomuus

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


Yleisen tapauksen ratkaisemisesta

Yleisen tapauksen ratkaisemisesta

  • Kokonaislukuoptimointia

  • NP-kova

    • Formulointi kuten aikaisemmin

  • Erikoistapauksilla yksinkertaisempaa?


Erikoistapauksia

Erikoistapauksia

  • Kaikki suoritusajat pj = 1

    => Saadaan joka ajanhetkelle omat optimointitehtävät

  • Suhteellisen helppo


Toinen erikoistapaus

Toinen erikoistapaus

  • Suoritusajat vapaita

  • Identtiset painot (wij = 1)

  • Työt voidaan suorittaa millä tahansa koneella

  • Tavoitteena maksimoida suoritettujen töiden määrää

  • Heuristiikka


Suoritettujen t iden m r n maksimoiva heurestiikka

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


Suoritettujen t iden m r n maksimoiva heurestiikka1

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


Suoritettujen t iden m r n maksimoiva heurestiikka2

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.


Joutoajalliset aikataulut

Joutoajalliset aikataulut


Joutoajalliset aikataulut1

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


Merkint j

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)


Painotetun summan maksimin l yt minen

Painotetun summan maksimin löytäminen

  • Voitaisiin muotoilla kokonaislukutehtävänä

    • NP-kova

  • Heurestiikalla päästään kuitenkin lähelle


Painotetun summan maksimoiva heurestiikka

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


Valmisteluja

Valmisteluja

  • Heuristiikka pyrkii antamaan työn koneelle, jolla on joustavuus minimoituu

  • Vaihe 1:

    • j = 1


Painotetun summan maksimoiva heuristiikka

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


Esimerkkitilanne

Esimerkkitilanne

  • 7 työtä, 3 konetta

  • Suoritusajat, vapautusajat, eräpäivät, käyvät koneet ja painot taulukossa


Esimerkkilasku

Esimerkkilasku

  • Määritellään tärkeysfunktio Ij = |Mj|/(wj/pj)

    • Saadaan tärkeydet:

  • Lasketaan ν-kertoimet:

  • Valitaan g-funktioksi ∑k=1..pj (νit+k)/pj


Esimerkkitapaus

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.


Esimerkkitapaus1

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!


Esimerkin ratkaisu

Esimerkin ratkaisu

Ratkaisuksi saatiin


Esimerkin analysointi

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ä


Ty voimarajoitusten optimointi

Työvoimarajoitusten optimointi


Ty voimarajoitusten optimointi1

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


Esimerkki

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?


Ty voimarajoitusten optimointi2

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?


Heuristiikka

Heuristiikka

  • Kokonaislukutehtävä NP-kova

  • Voidaan kuitenkin ratkaista First Fit (FF) -heuristiikalla.

  • Heuristiikalle saadaan virhearvio:

    • Cmax(FF) <= 17/10 Cmax(OPT) +2


Ff heuristiikka

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


Esimerkki ff heuristiikasta

Esimerkki FF-heuristiikasta

  • 18 työtä, joilla työvoimantarpeet Wj

  • Käytettävissä oleva työvoima W = 2100


Ff n tuottama ratkaisu

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


Todellinen optimi

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


Ffd heuristiikka

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


Kertaus

Kertaus

  • Ajanvarauksen skedulointi:

    • Työt suoritetaan tai ei, maksimoidaan määrä

    • Aikaikkunat

  • Joutoajaton skedulointi

    • Lisäysheurestiikka

  • Joutoajaton skedulointi

    • Painotetun summan maksimointiheuristiikka

  • Työvoiman optimointi


Kotiteht v

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


  • Login