Optimointiopin seminaari 2009
Download
1 / 40

Optimointiopin seminaari 2009 - PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Optimointiopin seminaari 2009' - bunny


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



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


ad