1 / 94

2de gebruikerscommissie DINGO

2de gebruikerscommissie DINGO. @KaHo Sint-Lieven, Gent 30 maart 2004. Overzicht. Technologisch gedeelte Literatuurstudie: modellen voor personeelsplanning Voorgesteld algemeen personeelsplanningmodel Opslaan en inlezen van XML bestanden (JDOM, XOM) Evalueren van beperkingen

stesha
Télécharger la présentation

2de gebruikerscommissie DINGO

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. 2de gebruikerscommissie DINGO @KaHo Sint-Lieven, Gent 30 maart 2004

  2. Overzicht • Technologisch gedeelte • Literatuurstudie: modellen voor personeelsplanning • Voorgesteld algemeen personeelsplanningmodel • Opslaan en inlezen van XML bestanden (JDOM, XOM) • Evalueren van beperkingen • Constraint Generator (CoFfTeA) • Literatuurstudie: algoritmen voor personeelsplanning • Algemeen gedeelte • Classificatie van personeelsplanning • Voorgesteld algemeen personeelsplanningmodel • Toelichting van het model adhv prototype gebruikerinterfaces • Distributie Vakgroep IT - KaHo Sint-Lieven

  3. Technologische gedeelte

  4. Agenda Technisch gedeelte Modellering (WP2) • Literatuurstudie modellen voor personeelsplanning • Korte schematische voorstelling van het model • Opslaan en openen van de data in XML (via JDOM, XOM) • Evaluatie van constraints • Constraint Generator uit CoFfTeA Algoritmen voor personeelsplanning (WP3) • Aanpak literatuurstudie algoritmen voor personeelsplanning Vakgroep IT - KaHo Sint-Lieven

  5. Modellen voor personeelplanning

  6. Modellen voor personeelsplanning • Mathematische modellen: meeste vrij analoog • Toewijzen van werknemers per shift aan taak: wordt voorgesteld door matrix • DOEL: rekening houdend met beperkingen waarden zoeken voor matrixelementen Vakgroep IT - KaHo Sint-Lieven

  7. Voorbeeld van een wiskundig model • “Algemeen” model voor ETP van Meisels en Schaerf (vaste begin- en einduren) • m werknemers E1,…,Em • n shifts S1,…,Sn • t taken T1,…,Tt • Doel: vinden van een 3-dim. binaire m x n x t matrix X zodat xijk=1 als werknemer Ei toegewezen is aan taak Tk in shift Sj. Vakgroep IT - KaHo Sint-Lieven

  8. Voorbeeld van een wiskundig model • De beperkingen: • vereistenmatrix is een niet-negatieve n x t matrix R zodat Rjk het aantal keren voorkomen van taak Tk in shift Sj voorstelt • kwalificatiematrix is een binaire m x t matrix Q zodat Qik=1 als werknemer Ei de taak Tk mag en kan uitvoeren, in het andere geval is Qik=0 • beschikbaarheidsmatrixis een binaire m x n matrix A, waar Aij=1 als werknemer Ei beschikbaar is voor shift Sj, in het andere geval is Aij=0 Vakgroep IT - KaHo Sint-Lieven

  9. Voorbeeld van een wiskundig model • De beperkingen (vervolg): • 3-dimensionele binaire n x n x mconflictmatrixC, zodat als Cj1j2i=0 dan kan werknemer Ei niet toegewezen worden aan de shifts Sj1 en Sj2 • Werkbelasting: boven– en onderlimiet op het aantal taken waaraan elke werknemer kan aan worden toegewezen. Definieer daartoe een shiftverzameling G1,…,Gs, die elk shifts van een bepaalde soort groeperen. Definieer dan 2 geheeltallige m x s matrices V en W zodat werknemer Ei moet toegewezen worden aan ten minste Vik en ten hoogste Wik shifts van groep Gk. Vakgroep IT - KaHo Sint-Lieven

  10. Voorbeeld van een wiskundig model • Wiskundig geformuleerd: • Vind xijk zodat: Vakgroep IT - KaHo Sint-Lieven

  11. Doch echter… • Opstellen van zo’n wiskundig model: geen eenvoudige taak, bijv. als er veel niet-lineaire beperkingen moeten worden uitgedrukt in vorm van lineaire ongelijkheden (bijv. geen 3 opeenvolgende nachtshifts) • Bij realistisch problemen: aantal variabelen is heel groot • Niet makkelijk interpreteerbaar voor de gebruikers Vakgroep IT - KaHo Sint-Lieven

  12. Voorgesteld algemeen personeelsplanningmodel

  13. Algemeen personeelsplanningsmodel • Invoer • Gegevens (Jan werkt dinsdag 30 maart) • Beperkingen (na een late shift, geen vroege) • Berekening • Opbouwen interne rekenstructuur • Via algoritmen oplossingenruimte genereren • Uitvoer • Weergave en bewerking van gekozen oplossing Vakgroep IT - KaHo Sint-Lieven

  14. Gegevens Beperkingen P Jan D Interne rekenstructuur Piet 08h00 17h00 T Din 30 maart Algoritmen Oplossing P Jan werkt dinsdag 30 maart P Piet moet aan de inslag staan T D D De inslag moet bemand zijn van 8h00 tot 17h00 Vakgroep IT - KaHo Sint-Lieven T

  15. Algemeen personeelsplanningsmodel • Invoer • Gegevens: Opslaan en lezen via XML • Beperkingen: Constraint Generator (CoFfTeA) • Berekening • Opbouwen interne rekenstructuur: • Gegevens in 3d-matrix en controleren op beperkingen • algoritmen: • Welke algoritmen gebruikt worden hangt af van de complexiteit • Uitvoer • Weergave en bewerking van gekozen oplossing • Concrete informatie betreft personeel, tijd en taken Vakgroep IT - KaHo Sint-Lieven

  16. Algemeen personeelsplanningsmodel • Gegevens: Opslaan en lezen via XML • Drie dimensies tijd/taken/personeel • Tijd: • Per dag (shifts) • Volgens contract • Volgens gewenste bezetting (coverage) • Vakanties • Taken: • Kwalificatie • Gewenste bezetting • Personeel: • Kwalificatie • Contract • Vakantie Vakgroep IT - KaHo Sint-Lieven

  17. Naam Beginuur Einduur Pauze: Beginuur Einduur Verboden Zone: Beginuur Einduur Shifts Qualifications Naam Naam Vereiste kwalificatie Alternatieve kwalificatie Duties Taak Shift Coverageperiode per # weken Minimale bezetting/dag Gewenste bezetting/dag Coverage Naam: Max uur/week Gem uur/week Min #weekend vrij per # weken Werkpatroon per# weken Mogelijke shifts/dag Contract Naam Voornaam Contracttype Vakanties Kwalificaties Alternatieve kwalificaties Personnel Vakgroep IT - KaHo Sint-Lieven

  18. Algemeen personeelsplanningsmodel • Berekening • Opbouwen interne rekenstructuur: • Gegevens herleiden naar drie dimensies • Invullen in matrixstructuur • Controleren op beperkingen • Inkleuren van de matrix in mogelijke en onmogelijke regio’s • Algoritmen: • Algoritmen maken keuzes uit mogelijke regio’s • Hercontroleren deze op beperkingen • Evalueren de oplossing • Herbeginnen met nieuwe keuze • Welke algoritmen toegepast worden hangt af van de complexiteit Vakgroep IT - KaHo Sint-Lieven

  19. Algemeen personeelsplanningsmodel • Uitvoer (weergave en bewerking van gekozen oplossing) • Concrete informatie betreft personeel, tijd en taken • (personeel, tijd): • Kalender met wie wanneer moet werken • (taken, tijd): • Kalender met welke taken uitgevoerd worden • (personeel, taken): • Wie doet wat? Vakgroep IT - KaHo Sint-Lieven

  20. Opslaan en inlezen van XML bestanden JDOM en XOM

  21. Opslaan en inlezen van XML bestanden • Gegevens worden opgeslagen in XML bestanden • Voordeel is dat er geen speciale software nodig is om de gegevens te interpreteren • Gegevens zijn makkelijk uit te wisselen • Begrijpbaar voor iedereen Vakgroep IT - KaHo Sint-Lieven

  22. XML • XML = eXtensible Markup Language • XML is een markup taal voor documenten die gestructureerde informatie bevatten • Uitbreidbaar: geen vast formaat zoals bijv. HTML • XML is gecreëerd om informatie te structureren, opslaan en te verzenden Vakgroep IT - KaHo Sint-Lieven

  23. rootelement attribuut element XML: voorbeeld <?xml version="1.0" encoding="UTF-8"?> <shifts> <shift ID="1"> <description>vroege</description> <allowed> <start_time> <hour>6</hour> <minute>0</minute> </start_time> <end_time> <hour>14</hour> <minute>0</minute> </end_time> <work_duration>8:0</work_duration> <break> <start_time> <hour></hour> <minute></minute> </start_time> Vakgroep IT - KaHo Sint-Lieven

  24. XML: voorbeeld <end_time> <hour></hour> <minute></minute> </end_time> </break> </allowed> <forbidden> <start_time> <hour>2</hour> <minute>0</minute> </start_time> <end_time> <hour>23</hour> <minute>55</minute> </end_time> </forbidden> </shift>… </shifts> Vakgroep IT - KaHo Sint-Lieven

  25. XOM, JDOM • Java APIs om XML files te manipuleren • JDOM is de meest gebruikte • Echter 1 nadeel: heel moeilijk om door een XML boom te navigeren • XOM is daarvoor veel beter geschikt: hoewel het nog niet vanzelfsprekend is • XOM: heel recent, gebeuren constant aanpassingen aan de API (sommige methodes die in vroegere versies bestonden, verdwijnen soms) Vakgroep IT - KaHo Sint-Lieven

  26. Snelcursus JDOM import org.jdom.*; import org.jdom.output.XMLOutputter; import java.util.*; import java.io.*; public class ConstraintSwing { private Element rootElement = new Element("constraints"); private DocType doctype = new DocType(rootElement.getName()); private Document doc = new Document(rootElement, doctype); public void Output2File(String xmlFileName){ try{ XMLOutputter outputter = new XMLOutputter("\t", true); FileOutputStream output = new FileOutputStream(xmlFileName); outputter.setEncoding("UTF-8"); outputter.output(doc, output); output.close(); output.flush(); adaptFile(xmlFileName); } Vakgroep IT - KaHo Sint-Lieven

  27. Snelcursus JDOM catch (FileNotFoundException FNFE){ System.out.println(FNFE.getMessage()); } catch (IOException IOE){ System.out.println(IOE.getMessage()); } } public void createXMLElement(Element root, String child, String tkst){ Element child1 = new Element(child); child1.setText(tkst); root.addContent(child1); } Vakgroep IT - KaHo Sint-Lieven

  28. Snelcursus JDOM public Element createXMLElement1(Element root, String child, String attri){ Element child1 = new Element(child); child1.setAttribute("metaname", attri); root.addContent(child1); return child1; } … } Vakgroep IT - KaHo Sint-Lieven

  29. Snelcursus XOM import nu.xom.*; import java.io.*; public class XmlTranslator{ public void Output2File(String xmlFileName, Document doc){ try{ FileOutputStream output = new FileOutputStream (xmlFileName); Serializer outputter = new Serializer(output); outputter.write(doc); output.close(); output.flush(); } catch(FileNotFoundException FNFE){ System.out.println(FNFE.getMessage()); } catch(IOException IOE){ System.out.println(IOE.getMessage()); } } Vakgroep IT - KaHo Sint-Lieven

  30. Snelcursus XOM private Element createRootElement (String root){ Element rootElement = new Element(root); return rootElement; } private Document createDocument(Element rootElement){ Document doc = new Document(rootElement); return doc; } public Document createRootAndDocument(String root){ return createDocument(createRootElement(root)); } public void createXMLElement(Element rootElement, String child, String text){ Element child1 = new Element(child); child1.appendChild(text); rootElement.appendChild(child1); } Vakgroep IT - KaHo Sint-Lieven

  31. Snelcursus XOM public Element createXMLElement(Element rootElement, String child, String attribuut, String value){ Element child1 = new Element(child); Attribute att = new Attribute(attribuut, value); child1.addAttribute(att); rootElement.appendChild(child1); return child1; } public Element createXMLElement(Element rootElement, String child){ Element child1 = new Element(child); rootElement.appendChild(child1); return child1; } … } Vakgroep IT - KaHo Sint-Lieven

  32. Evaluatie van beperkingenvoor personeelsplanning kostfunctiebenadering voor planning met een groot aantal beperkingen op uurroosters van personeel

  33. Beperkingen • Verpleegkundigen, politie, arbeiders in productie en logistiek,… • Harde beperkingenminimale bezetting per tijdslot • Zachte beperkingentijdgerelateerde beperkingen op de uurroosters van het personeel • Doel: stel een uurrooster op met de beschikbare personeelsleden dat aan de harde beperkingen voldoet en dat streeft naar een goede kwaliteit met betrekking tot de zachte beperkingen • Metaheuristieken vergen een groot aantal evaluaties van de doelfunctie (die de kwaliteit van een oplossing meet) Vakgroep IT - KaHo Sint-Lieven

  34. Vereisten • Functionele vereisten • Korte evaluatietijd • Verklarend • Uitbreidbaar • Probleem specifieke vereisten • Harde beperkingen • bezetting • kwalificatie • Zachte beperkingen Vakgroep IT - KaHo Sint-Lieven

  35. Evaluatie Methode • Laag geheugengebruik • Simultane berekening van verschillende afdelingen • Complexe problemen • Snel • Metaheuristieken • Complexe reële problemen • Eenvoudig • Modulair • Implementatie • Evaluatie • Verklarend • Overtreden beperkingen • Grootte van de overtreding • Uitbreidbaar • Nieuwe beperkingen • Extra eigenschappen • Modificeerbaar • Kost parameters • Waarden van de beperkingen Vakgroep IT - KaHo Sint-Lieven

  36. Zachte beperkingen Beperkingen van de organisatie • Minimum tijd tussen twee toekenningen • Toegelaten alternatieve kwalificaties Beperkingen bepaald door het contract • Maximum aantal toekenningen gedurende de planningsperiode • Minimum/maximum aantal opeenvolgende dagen • Minimum/maximum aantal werkuren • Minimum/maximum aantal opeenvolgende vrije dagen • Maximum aantal toekenningen per dag van de week • Maximum aantal toekenningen per shift • Maximum toekenningen van een bepaalde shift per week • Aantal opeenvolgende shifts (van een type) • Plan 2 vrije dagen na de nachtdienst Vakgroep IT - KaHo Sint-Lieven

  37. Zachte beperkingen • Volledige weekends plannen • Identieke shifts toekennen tijdens het weekend • Maximum aantal opeenvolgende weekends werken • Maximum aantal weekends werken gedurende 4 weken • Maximum (cumulatief) aantal toekenningen op feestdagen • Beperking op de opeenvolging van shifts • Patronen voor specifieke cyclische beperkingen • Werkbelasting balanceren over het beschikbare personeel Persoonlijke beperkingen • Vrije dag/vrije shift • Gewenste shift • Stagebegeleiding (studenten niet alleen aan het werk) • Personeelsleden niet samen aan het werk Vakgroep IT - KaHo Sint-Lieven

  38. Algemene variabelen • planning periode (bvb 4 weken, 28 dagen) • shifts, personeelsleden, kwalificaties • event (toekenning), vrijedag Vakgroep IT - KaHo Sint-Lieven

  39. Nummeringen: sjablonen Constraints max-total max-pert max-between max-consecutive Waarden Tellers total last Kostparameters min-total min-pert min-between min-consecutive Formele beschrijving: Nummeringen bewerkingen en variabelen • consecutive • pert (array) Vakgroep IT - KaHo Sint-Lieven

  40. Voorbeeld • planningsperiode 1 week • zachte beperkingen: • maximum aantal toekenningen 6 • minimum 2 • maximum aantal opeenvolgende vrije dagen 8 • minimum 2 • maximum aantal opeenvolgende toekenningen 4 • minimum 2 • maximum per dag 1 • maximum aantal nachtdiensten 3 • minimum aantal opeenvolgende nachtdiensten 2 • volledige weekends werken Vakgroep IT - KaHo Sint-Lieven

  41. Nummeringen rooster P1 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 constraints N2 max-total = 3 min-consecutive = 2 tellers last total consecutive constante max constraints N3 min-consecutive = 2 Vakgroep IT - KaHo Sint-Lieven

  42. Kostfunctie P1 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 kost N1 cost-max-total = 0 cost-min-total = 0 cost-max-between = 0 cost-min-between = 0 cost-max-consecutive = 1 cost-min-consecutive = 0 cost-max-pert = 0 tellers last total consecutive constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 1 constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 totale kost (kostparameter * kost) Vakgroep IT - KaHo Sint-Lieven

  43. Kostfunctie P2 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 kost N1 cost-max-total = 0 cost-min-total = 0 cost-max-between = 0 cost-min-between = 1 cost-max-consecutive = 0 cost-min-consecutive = 1 cost-max-pert = 0 tellers last total consecutive constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 2 totale kost (kostparameter * kost) constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 Vakgroep IT - KaHo Sint-Lieven

  44. Kostfunctie P3 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 kost N1 cost-max-total = 1 cost-min-total = 0 cost-max-between = 0 cost-min-between = 0 cost-max-consecutive = 3 cost-min-consecutive = 0 cost-max-pert = 0 tellers last total consecutive constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 0 totale kost (kostparameter * kost) constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 Vakgroep IT - KaHo Sint-Lieven

  45. Kostfunctie P4 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 kost N1 cost-max-total = 0 cost-min-total = 0 cost-max-between = 0 cost-min-between = 1 cost-max-consecutive = 0 cost-min-consecutive = 1 cost-max-pert = 0 tellers last total consecutive constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 0 totale kost (kostparameter * kost) constraints N3 min-consecutive = 2 kost N3 min-consecutive = 1 Vakgroep IT - KaHo Sint-Lieven

  46. Kostfunctie P5 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 kost N1 cost-max-total = 0 cost-min-total = 0 cost-max-between = 0 cost-min-between = 1 cost-max-consecutive = 0 cost-min-consecutive = 0 cost-max-pert = 1 tellers last total consecutive constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 0 totale kost (kostparameter * kost) constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 Vakgroep IT - KaHo Sint-Lieven

  47. Startvoorwaarden Vakgroep IT - KaHo Sint-Lieven

  48. Kostfunctie P1 constraints N1 max-total = 6 min-total = 2 max-between = 8 min-between = 2 max-consecutive = 4 min-consecutive = 2 max-pert = 1 kost N1 cost-max-total = 0 cost-min-total = 0 cost-max-between = 0 cost-min-between = 0 cost-max-consecutive = 3 cost-min-consecutive = 0 cost-max-pert = 0 tellers N1 last = -1 total = 0 consecutive = 2 tellers N2 last = U total = 0 consecutive = U constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 1 tellers N3 last = -2 total = 0 consecutive = 2 constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 Vakgroep IT - KaHo Sint-Lieven

  49. Evaluatiealgoritme • Initialisatie: rekening houdend met wat vroeger gepland was • Planning in de periode voor de planningsperiode staat vast • Beeld de nummeringen af op de voorgaande planningsperiode • Zoek waarden voor de tellers: initialiseer • Geen kosten aanrekenen voor het verleden • Tussentijdse evaluatie: tellers aanpassen en kosten berekenen indien nodig • Finale evaluatie: kosten berekenen aan het einde van de planningsperiode per iteratie worden de algoritmen 1 x uitgevoerd per persoon in de planning; onafhankelijk van het aantal en het type van de zachte beperkingen Vakgroep IT - KaHo Sint-Lieven

  50. -1 U -2 0 0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Vakgroep IT - KaHo Sint-Lieven

More Related