Toon posts:

Scheduling probleem

Pagina: 1
Acties:
  • 159 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zit met het probleem om X aantal jobs te plannen op 1 machine. Elke job heeft een reeks van factoren die men met elkaar moet gaan vergelijken. Een grote eis is dat het systeem performant blijft & elke mogelijke volgorde berekenen en dan de beste nemen is geen optie(teveel berekeningen).
Men is ook eerder geinteresseert in de correctheid van gegevens op korte termijn, lange termijn is van minder belang, tegen dan plannen we gewoon opnieuw.

Ik had gedacht via heuristiek elke keer lokaal de beste keuze te maken en op deze manier ben je zeker dat de volgorde op korte termijn vrij goed is.

Nu had ik graag geweten of er andere alternatieven mogelijk zijn voor dit probleem & ik had ook gedacht om de opgestelde heuristiektabel nog eens te overlopen met een of ander optimaliseringsalgoritme. Mss hebben er mensen hier al ervaring mee?

Iemand enige suggesties?

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

Kan je iets beter vertellen waar je het nu over hebt? Als ik denk aan jobs, dan denk ik aan langdurige batch-taken. Stel dat zo'n taak 1000 cpu-seconden nodig heeft om te voltooien, dan kosten 10 van die taken 10*1000 cpu-seconden. Je kunt ze dan gaan schedulen, multitasken en weetikwat, maar uiteindelijk zal je gewoon 10*1000 seconden moeten wachten. Ik zie niet in hoe een verschillende volgorde uit kan maken in de totale verwerkingsduur.

Siditamentis astuentis pactum.


  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 14:46
Het scheduling problem is een redelijk vaak voorkomend probleem in de informatica en er zijn dus een heleboel algoritmen te vinden op internet met onderbouwing. Zoek eens op "scheduling problem" eventueel in combinatie met "dynamic programming".

Verwijderd

Topicstarter
Ok sorry dat het mss wat onvolledig was, ik dacht ik hou het kort en krachtig.

Het gaat over het plannen van productieorders. Tussen elk order zit ik met ombouwtijden & spoelkosten voor men machines. Als ik vb: eerst ketchup in grote flessen maak en dan mayo in klein flesjes zorgt dit ervoor dat ik men machine moet ombouwen en moet spoelen.

Je zou kunnen denken oke, produceer alle ketchup in grote flessen , dan alle ketchup ik kleine flessen en dan alle mayo in kleine flessen ofzo. Dit gaat ervoor zorgen dat de ombouwtijden & productiekosten(spoelkosten bijvoordbeeld) minimaal zijn.

Nu heeft elk order ook een deadline en een deadzone (dwz: hoever mag ik de productie van het order naar voor schuiven in de tijd alvorens het geleverd gaat worden-->versheid garanderen). Die ervoor gaan zorgen dat ik niet zomaar alle orders met hetzelfde product samen kan plannen. We willen nog op tijd kunnen leveren ook.

Dus de volgorde waarbinnen ik men orders ga plannen gaat zorgen voor een bepaalde totale ombouwtijd & ombouwkost. De planning ABCDE zal dus andere 'kost' krijgen dan ABCED.

Eerst dacht ik aan Branch and Bound waarbij ik ga zoeken naar een globale oplossing, maar dit zou in veel gevallen nog zeer lang duren & ik ben niet geintereseert in een sortering die ervoor zorgt dat mijn orders voor volgend jaar al optimaal staan.

Het doel is dus ervoor zorgen dat ik vrij snel een productieplanning bekom die op korte termijn goedkoop is. Hierdoor dacht ik via heuristiek een sortering op te stellen waarbij ik elke keer lokaal beslis hoe ik het beste plan:

Ik begin met A en ik bereken wat er best na A komt. Ik vind B
dan zoek ik wat best na AB komt , ....

Ik heb geen ervaring met dit soort algoritmen & weet dus niet of ik op een goede weg zit.
Ik dacht eventueel achteraf een soort optimaliseringsalgoritme te draaien dat men korte-termijnplanning nog even doorzoekt naar betere oplossingen. Hier heb ik ook geen ervaring in.

Hopelijk is deze wanordelijke uitleg wat duidelijk :)

Verwijderd

Topicstarter
matthijsln schreef op woensdag 22 februari 2006 @ 10:55:
Het scheduling problem is een redelijk vaak voorkomend probleem in de informatica en er zijn dus een heleboel algoritmen te vinden op internet met onderbouwing. Zoek eens op "scheduling problem" eventueel in combinatie met "dynamic programming".
Ik heb al zeer veel gelezen en het probleem waar ik mee zit wordt beschreven als:
"Single Machine Total Tardiness Problem"
Hierrond heb ik al menig thesis doorgenomen maar met weinig resultaat want ik ben wiskundig niet echt sterk.

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 14:46
Je probleem is wel interessant omdat het niet de simpele versie van het scheduling probleem is waarvan de taken onafhankelijk van elkaar zijn qua kosten (tijd).

Je zal dus moeten zoeken in de richting van scheduling algoritmen met deadlines en kosten afhankelijk van de volgorde (zoals je uitlegde).

Ik kan die algoritmen niet zomaar uit mn mouw schudden maar ik denk dat je met deze zoektermen misschien wel wat algoritmen kan vinden waar je wat mee kunt.

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 14:46
Verwijderd schreef op woensdag 22 februari 2006 @ 11:02:
[...]


Ik heb al zeer veel gelezen en het probleem waar ik mee zit wordt beschreven als:
"Single Machine Total Tardiness Problem"
Hierrond heb ik al menig thesis doorgenomen maar met weinig resultaat want ik ben wiskundig niet echt sterk.
Je hebt de juiste term dus al gevonden. Ik denk dat daarmee je met Google toch snel je eerste vraag over alternatieve oplossingen kan beantwoorden.

Je zult toch enige onderlegging voor informatica/wiskunde nodig hebben om het te begrijpen/implementeren, maar daar ontkom je denk ik zowiezo niet aan wil je een enigszins optimale oplossing, toch?

  • BCC
  • Registratie: Juli 2000
  • Nu online

BCC

Dit is toch heel simpel? Je ontwerpt een penalty functie met daarin het ombouwen en spoelen van zo'n machine (in uren). Dan kijk je naar wat er gepland moet worden (voor een bepaalde deadline) en dan ga je recurief alles door (het zijn toch grote orders?) op zoek naar de laagste penalty functie.

Als je vervolgens een taak uitvoerd haal je die uit het systeem.. als je er eentje toevoegd dan reken je het zaakje nog een keer door.

Het lijkt me verstandig om (zoals je zelf al zei) het vooruitplannen te limiteren tot een dag/week.

[ Voor 12% gewijzigd door BCC op 22-02-2006 11:14 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 14:46
BCC schreef op woensdag 22 februari 2006 @ 11:12:
Dit is toch heel simpel? Je ontwerpt een penalty functie met daarin het ombouwen en spoelen van zo'n machine (in uren). Dan kijk je naar wat er gepland moet worden (voor een bepaalde deadline) en dan ga je recurief alles door (het zijn toch grote orders?) op zoek naar de laagste penalty functie.

Als je vervolgens een taak uitvoerd haal je die uit het systeem.. als je er eentje toevoegd dan reken je het zaakje nog een keer door.
Brute force oplossingen zijn meestal wel simpel ja :) maar volgens de TS geen oplossing voor de omvang van zijn probleem.

  • BCC
  • Registratie: Juli 2000
  • Nu online

BCC

Dat geloof ik niet.. Voor korte termijn kun je voor zoiets simpels echt VEEL doorrekenen. En anders doe je het met een Greedy, maar dan moet je wel orders kunnen clusteren op dagen oid.

[ Voor 37% gewijzigd door BCC op 22-02-2006 11:22 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • hammerhead
  • Registratie: April 2000
  • Laatst online: 08:23
Andere manier zou zijn om te kijken naar lokaal zoeken. Probleem is dat vrij veel van de schedulings problemen die te maken heb met tardiness al snel zeer lastig worden om optimaal op te lossen.

Je zou hier kunnen kijken naar een random start oplossing. Je kunt hiervan redelijk snel de kosten bepalen. Daarna een kleine verandering doorvoeren (twee producten omdraaien) en opnieuw de kosten doorrekenen. Dan zijn er twee mogelijkheden: Of de nieuwe kosten zijn lager dan de vorige, dit is altijd goed. Of de oude kosten zijn hoger dan de vorige kosten. Deze nieuw gevonden oplossing is dan niet wenselijk. Afhankelijk van type lokaal zoeken wat je gebruikt kun je deze alsnog eventueel accepteren.

Vermoed dat lokaal zoeken voor dit probleem niet zo heel erg lastig is om te implementeren en dat het verder vrij snel oplossingen zal geven.

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


  • BCC
  • Registratie: Juli 2000
  • Nu online

BCC

Je weet dat je net bijna een Greedy algorithme omschreven hebt :)? Enige wat je vergeten bent is dat je algoritme niet terug mag komen op genomen beslissingen, anders wordt het een brute-force met alle extra rekentijd die erbij hoort.. En je moet dus groeperen, aangezien je een aantal mogelijke keuzes moet hebben waaruit je greedy moet kiezen.

[ Voor 76% gewijzigd door BCC op 22-02-2006 11:36 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • hammerhead
  • Registratie: April 2000
  • Laatst online: 08:23
Is standaard recept voor lokaal zoeken. Het belangrijkste is dat je hier randomness gebruikt. Eigenlijk had ik netjes neer moeten zetten "Daarna een kleine willekeurige verandering...".

Overigens ben ik het niet helemaal mee eens dat dat greedy is, aangezien je als je bijvoorbeeld Simulated Annealing of Tabu Search gebruikt je ook verslechteringen mag accepteren om hopelijk later een verbetering te vinden. Het is dus niet alle mogelijkheden brute-force doorrekenen, je maakt gebruik van randomness om hopelijk een goede oplossing te vinden.

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


  • BCC
  • Registratie: Juli 2000
  • Nu online

BCC

Sorry.. slecht gelezen vanaf mijn kant. Maar gezien de complexiteit van de TS is tabu-searching nogal over the top voor zijn probleem... als hij z'n probleem volledig beschreven heeft (wat mij niet het geval lijkt).

[ Voor 38% gewijzigd door BCC op 22-02-2006 11:51 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • hammerhead
  • Registratie: April 2000
  • Laatst online: 08:23
Tabu search is misschien wat over de top (iets wat lastiger te implementeren). Aan de andere kant, als ik kijk naar zijn gehele probleem is het toch een vrij complex probleem.

Het andere voorbeeld van lokaal zoeken wat ik gaf, Simulated Annealing, is zeer simpel te implementeren en je kunt zeer makkelijk zijn feasibility-constraints (wordt iets geproduceerd NA de deadzone en VOOR de deadline) controleren en ook de totale kosten berekenen.

De TS heeft het over dat B&B te lang duurt, maar wat is ongeveer de tijd die aan rekentijd besteed mag worden voor het vinden van een oplossing? Als het gaat om een vrij OK oplossing, dan zou SA deze in niet al te lange tijd moeten kunnen geven.

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


Verwijderd

Topicstarter
Wow veel reacties, merci mannen!

Ik besprak inderdaad een soort van Greedy Algoritme. Waarbij ik wel ga moeten zorgen dat ik via een of andere wegingsfactor het halen van deadlines ga kunnen afwegen tov ombouwtijd/kost.

Enige voorstellen?

Het willekeurig wisselen van orders + herberekenen was al in me opgekomen maar brengt veel berekenwerk met zich mee & mits ik meer geinteresseerd ben in enkel de eerste week van men sorteringsperiode brengt dit niet echt op.Ik begin meer en meer te denken dat een globaal optimaliseringsalgoritme draaien op het resultaat van men greedy algoritme niet de goede weg is.

Ik ga nu even "Simulated Annealing" uitpluizen. Bedankt voor de tip. Ik was het al eens ergens tegengekomen, maar was de term niet verder gaan uitdiepen.

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Ik zou eens kijken naar Earliest Deadline First Scheduling. Das een dynamisch scheduling algorithme. Bijkomend voordeel is dat je eenvoudig om kunt gaan met een order die op het laatste moment binnenkomt.

In principe komt het erop neer dat je ten alle tijden werkt aan de order die het eeste klaar moet zijn. Je onderbreekt dus eventueel een order tijdelijk als er een order met een vroegere deadline binnenkomt.

EDF garandeert dat je al je deadlines haalt, mits je systeem voldoende capaciteit heeft. EDF wordt lastig (onvoorspelbaar) wanneer je een deadline mist, maar aangezien dat een indicatie is dat je systeem teweinig capaciteit heeft, kun je zo'n situatie eenvoudig voorkomen, door orders te weigeren die het missen van een deadline bij EDF scheduling tot gevolg zouden hebben.

He who knows only his own side of the case knows little of that.


  • hammerhead
  • Registratie: April 2000
  • Laatst online: 08:23
Verwijderd schreef op woensdag 22 februari 2006 @ 12:36:
Het willekeurig wisselen van orders + herberekenen was al in me opgekomen maar brengt veel berekenwerk met zich mee & mits ik meer geinteresseerd ben in enkel de eerste week van men sorteringsperiode brengt dit niet echt op.Ik begin meer en meer te denken dat een globaal optimaliseringsalgoritme draaien op het resultaat van men greedy algoritme niet de goede weg is.
Simulated Annealing doet niets anders dan dat willekeurige wisselen en verslechteringen worden met een bepaalde kans (die afhangt van de tijd in het proces, hoe lang het al draait, en de mate van verslechtering) toch geaccepteerd.

Het berekenwerk moet denk ik ook best meevallen. Kun je aangeven om hoeveel productie units te planning totaal gaat. Stel dat je een bepaalde sequence van productie hebt en je wisselt de eerste twee om, dan veranderen alleen in het begin de kosten. Het enige wat je dan nog moet doen is controleren of de rest van de sequence nog op tijd is, maar voor wat betreft de kosten verandert er totaal niets. Als het totaal aantal elementen in de sequence (dus van de totale planning) extreem groot is, dan gaat dit dus wel wat meer tijd kosten (maar hier zijn ook nog wel wat slimmigheden voor te verzinnen)

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


  • hammerhead
  • Registratie: April 2000
  • Laatst online: 08:23
RickN schreef op woensdag 22 februari 2006 @ 13:00:
Ik zou eens kijken naar Earliest Deadline First Scheduling. Das een dynamisch scheduling algorithme. Bijkomend voordeel is dat je eenvoudig om kunt gaan met een order die op het laatste moment binnenkomt.

In principe komt het erop neer dat je ten alle tijden werkt aan de order die het eeste klaar moet zijn. Je onderbreekt dus eventueel een order tijdelijk als er een order met een vroegere deadline binnenkomt.

EDF garandeert dat je al je deadlines haalt, mits je systeem voldoende capaciteit heeft. EDF wordt lastig (onvoorspelbaar) wanneer je een deadline mist, maar aangezien dat een indicatie is dat je systeem teweinig capaciteit heeft, kun je zo'n situatie eenvoudig voorkomen, door orders te weigeren die het missen van een deadline bij EDF scheduling tot gevolg zouden hebben.
EDF houdt toch geen rekening met de omstelkosten (en ook de spoelkosten)?

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


Verwijderd

Topicstarter
RickN schreef op woensdag 22 februari 2006 @ 13:00:
Ik zou eens kijken naar Earliest Deadline First Scheduling. Das een dynamisch scheduling algorithme. Bijkomend voordeel is dat je eenvoudig om kunt gaan met een order die op het laatste moment binnenkomt.

In principe komt het erop neer dat je ten alle tijden werkt aan de order die het eeste klaar moet zijn. Je onderbreekt dus eventueel een order tijdelijk als er een order met een vroegere deadline binnenkomt.

EDF garandeert dat je al je deadlines haalt, mits je systeem voldoende capaciteit heeft. EDF wordt lastig (onvoorspelbaar) wanneer je een deadline mist, maar aangezien dat een indicatie is dat je systeem teweinig capaciteit heeft, kun je zo'n situatie eenvoudig voorkomen, door orders te weigeren die het missen van een deadline bij EDF scheduling tot gevolg zouden hebben.
Hier hou ik niet echt rekening met de ombouwtijden & kosten denk ik. Ik denk dat ik best een gulden middenweg zoek tussen deze deadlines en kosten.

Verwijderd

Topicstarter
hammerhead schreef op woensdag 22 februari 2006 @ 13:01:
[...]


Simulated Annealing doet niets anders dan dat willekeurige wisselen en verslechteringen worden met een bepaalde kans (die afhangt van de tijd in het proces, hoe lang het al draait, en de mate van verslechtering) toch geaccepteerd.

Het berekenwerk moet denk ik ook best meevallen. Kun je aangeven om hoeveel productie units te planning totaal gaat. Stel dat je een bepaalde sequence van productie hebt en je wisselt de eerste twee om, dan veranderen alleen in het begin de kosten. Het enige wat je dan nog moet doen is controleren of de rest van de sequence nog op tijd is, maar voor wat betreft de kosten verandert er totaal niets. Als het totaal aantal elementen in de sequence (dus van de totale planning) extreem groot is, dan gaat dit dus wel wat meer tijd kosten (maar hier zijn ook nog wel wat slimmigheden voor te verzinnen)
De sorteringsfunctie moet met dynamische parameters kunnen worden uitgevoerd.
1dag tot 1jaar.

Je kan je inbeelden dat er gedurende 1 jaar er wel wat orders aan bod komen. Het algoritme zouden ze ook liefst gebruiken in andere bedrijven gebruiken. Hiermee wil ik zeggen het moet goed kunnen werken met 100orders/week zowel als 1000000orders/week of meer natuurlijk, ik verzin maar wat cijfers je kan ze dus nog kwadrateren als je wilt ;) .

Mss is die Simulated Annealing wel handig om men greedy resultaat nog te optimaliseren, ik mag hier echter niet milder worden als ik lang aan het rekenen ben. Dit zou het greedy resultaat teniet doen.

  • hammerhead
  • Registratie: April 2000
  • Laatst online: 08:23
Je hebt het over lang aan het rekenen zijn, maar wat is lang? Hoeveel tijd mag er ongeveer gespendeerd worden? Moet ik denken aan 10 seconden, 5 minuten, 20 minuten??

Aviation is proof that given the will, we have the capacity to achieve the impossible.
--Eddie Rickenbacker


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
hammerhead schreef op woensdag 22 februari 2006 @ 13:03:
[...]


EDF houdt toch geen rekening met de omstelkosten (en ook de spoelkosten)?
Nee, maar ombouwen/spoelen tussen twee jobs moet je toch, dat kun je niet voorkomen. Wat vervelend is, is wanneer je een job moet onderbreken, want dat brengt extra kosten/tijd met zich mee. EDF onderbreekt een taak alleen op het moment dat er tijdens de uitvoer van die taak een nieuwe taak (order) binnenkomt die nog eerder klaar moet zijn. Een last-minute haast -klus om het zo maar te zeggen. In de praktijk verwacht ik dat dat niet vaak voorkomt, en misschien worden zulke orders sowieso wel geweigerd. Met EDF introduceer je dus weinig of geen extra ombouwmomenten, terwijl je wel deadlines garandeert.

Ik moet wel zeggen dat ik ervan uit ga dat ombouwtijden en -kosten grofweg altijd gelijk zijn (waardoor de volgorde van uitvoering nulde orde geen invloed heeft op kosten). En bij nader inzien is dat waarschijnlijk een te simpele aanname, omdat je tussen twee orders voor het zelfde product helemaal niet hoeft om te bouwen.

He who knows only his own side of the case knows little of that.


Verwijderd

Topicstarter
hammerhead schreef op woensdag 22 februari 2006 @ 13:20:
Je hebt het over lang aan het rekenen zijn, maar wat is lang? Hoeveel tijd mag er ongeveer gespendeerd worden? Moet ik denken aan 10 seconden, 5 minuten, 20 minuten??
Ik kan er geen tijdscontraints opplakken eingelijk, het hangt allemaal af van hoeveel orders er zijn. Mss is het beter te werken met het aantal bewerkingen en wat voor soort bewerkingen het zijn, dan echt met tijden zelf.

Wat is nog gebruiksvriendelijk? Ik wil geen dag moeten wachten op men weekplanning natuurlijk.
Ik denk dat voor een weekplanning iets rond paar minuten wel aanvaardbaar is.

Verwijderd

Topicstarter
RickN schreef op woensdag 22 februari 2006 @ 13:21:
[...]
Ik moet wel zeggen dat ik ervan uit ga dat ombouwtijden en -kosten grofweg altijd gelijk zijn (waardoor de volgorde van uitvoering nulde orde geen invloed heeft op kosten). En bij nader inzien is dat waarschijnlijk een te simpele aanname, omdat je tussen twee orders voor het zelfde product helemaal niet hoeft om te bouwen.
Ombouwtijden & kosten verschillen nogal wat van elkaar, er zijn vb bepaalde volgorden die verboden zijn.
Verder mag ik niet zomaar een order onderbreken, ik zou er wel 1 kunnen tussenvoegen. Maar dit zijn dingen waar ik op dit moment nog geen rekening mee moet houden.

Verwijderd

Topicstarter
Ik heb besloten een heuristiek op te stellen aan de hand van het greedy algoritme. Dit zal normaal gezien voldoende zijn.
Eventueel achteraf SA draaien om nogeens te optimaliseren.

Merci voor al de hulp

  • joepP
  • Registratie: Juni 1999
  • Niet online
Ik heb nog wel een (hopelijk goede :P) suggestie voor een algoritme:

Eerst eisen we dat de eerste twee jobs in de planning pseudo-optimaal staan: alle mogelijkheden hiervoor checken we, de rest van de jobs voegen we toe dmv een greedy/local search algoritme. Daarna gebruik je je oplossingen voor twee jobs om over te gaan naar drie jobs, etcetera. Je zal vanaf een bepaald aantal jobs niet alle mogelijke oplossingen meer kunnen bijhouden, dan beperk je je tot de beste 1000 ofzo.

Volgens mij moet deze methode wel tot een oplossing leiden die dicht bij het optimum zit in normale instanties. Het is immers niet te verwachten dat het schedule ABCDEFG...XYZ optimaal is als ABCDEF niet in de beste 1000 schedules voor de eerste 6 jobs zit. Een exacte performance ratio durf ik alleen niet te geven ;)

Eigenlijk dus gewoon een soort Dynamisch Programmeren waarbij je tussentijds oplossingen alvast weggooid. De crux is dat je de rest van de jobs ook plaatst in de tussenoplossingen, anders worden onmogelijke jobs altijd voorbij de horizon geduwd.

Verwijderd

Topicstarter
Zeker een suggestie dat ik zal uitzoeken & je kaart inderdaad aan dat onmogelijke jobs vaak uitgesteld gaan blijven worden omdat ik in het algoritme zoveel mogelijk dezelfde orders bij elkaar tracht te plannen om zo de kosten te drukken.
We hebben iets nodig dat rekening kan houden met iets in de aard van "hoever mag ik nog uitstellen, hoever heb ik al uitgesteld, ..." tov. de productiekosten (ombouwtijd & spoelkost).

De laatste 2 heb ik al in verband proberen te brengen met een formule in de aard van:

ombouwtijd + (ombouwtijd*#spoelen) + of - #spoelen.

Daar moeten dus die tijdsparameters nog bij. (behouden deadline enzo), goede notenkraker als je het mij vraagt ;). Dit is iets voor na de middag. :9

  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 21:17
Is het niet mogelijk om een (extra-)kosten matrix op te stellen. Zo van als ik van product A naar B overschakel, dan hoort daar kosten x bij. En dus zo een N x N matrix op te bouwen. Nog een paar constraints erbij en je bent al behoorlijk op weg naar een Lineair Programmeringsprobleem. En die zijn snel op te lossen. Eventueel moet je wat relaxatie toepassen.

Als variabelen gebruik je dan de omzet-momenten. Dus x1 bijvoorbeeld is dan van de omschakeling van het eerste product naar het tweede. Als je dan als constraint zet, dat je maximaal 1 omschakeling mag doen per omzet-moment, krijg je de volgorde eruit.

Verwijderd

Topicstarter
Het probleem is dat van vb van product A naar B niet altijd dezelfde kost heeft.
Da hangt af van hoever ligt de deadline nog , hoe zit het met de deadzone? , enz...

Verwijderd

Topicstarter
Het deadline probleem los ik op door "looking backwards" tewerk te gaan en enkel orders te berekenen die hun deadline halen als ik ze op dat moment plan.

deadzone hou ik geen rekening mee.


Merci voor al de input, tijd om te beginnen proggen , yihaaa C/AL
Pagina: 1