De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

2de gebruikerscommissie Sint-Lieven, Gent 30 maart 2004.

Verwante presentaties


Presentatie over: "2de gebruikerscommissie Sint-Lieven, Gent 30 maart 2004."— Transcript van de presentatie:

1 2de gebruikerscommissie Sint-Lieven, Gent 30 maart 2004

2 Vakgroep IT - KaHo Sint-Lieven2 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

3 Technologische gedeelte

4 Vakgroep IT - KaHo Sint-Lieven4 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

5 Modellen voor personeelplanning

6 Vakgroep IT - KaHo Sint-Lieven6 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

7 Vakgroep IT - KaHo Sint-Lieven7 Voorbeeld van een wiskundig model “Algemeen” model voor ETP van Meisels en Schaerf (vaste begin- en einduren) m werknemers E 1,…,E m n shifts S 1,…,S n t taken T 1,…,T t Doel: vinden van een 3-dim. binaire m x n x t matrix X zodat x ijk =1 als werknemer E i toegewezen is aan taak T k in shift S j.

8 Vakgroep IT - KaHo Sint-Lieven8 Voorbeeld van een wiskundig model De beperkingen: vereistenmatrix is een niet-negatieve n x t matrix R zodat R jk het aantal keren voorkomen van taak T k in shift S j voorstelt kwalificatiematrix is een binaire m x t matrix Q zodat Q ik =1 als werknemer E i de taak T k mag en kan uitvoeren, in het andere geval is Q ik =0 beschikbaarheidsmatrix is een binaire m x n matrix A, waar A ij =1 als werknemer E i beschikbaar is voor shift S j, in het andere geval is A ij =0

9 Vakgroep IT - KaHo Sint-Lieven9 Voorbeeld van een wiskundig model De beperkingen (vervolg): 3-dimensionele binaire n x n x m conflictmatrix C, zodat als C j1j2i =0 dan kan werknemer E i niet toegewezen worden aan de shifts S j1 en S j2 Werkbelasting: boven– en onderlimiet op het aantal taken waaraan elke werknemer kan aan worden toegewezen. Definieer daartoe een shiftverzameling G 1,…,G s, die elk shifts van een bepaalde soort groeperen. Definieer dan 2 geheeltallige m x s matrices V en W zodat werknemer E i moet toegewezen worden aan ten minste V ik en ten hoogste W ik shifts van groep G k.

10 Vakgroep IT - KaHo Sint-Lieven10 Voorbeeld van een wiskundig model Wiskundig geformuleerd: Vind x ijk zodat:

11 Vakgroep IT - KaHo Sint-Lieven11 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

12 Voorgesteld algemeen personeelsplanningmodel

13 Vakgroep IT - KaHo Sint-Lieven13 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

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

15 Vakgroep IT - KaHo Sint-Lieven15 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

16 Vakgroep IT - KaHo Sint-Lieven16 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

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

18 Vakgroep IT - KaHo Sint-Lieven18 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

19 Vakgroep IT - KaHo Sint-Lieven19 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?

20 Opslaan en inlezen van XML bestanden JDOM en XOM

21 Vakgroep IT - KaHo Sint-Lieven21 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

22 Vakgroep IT - KaHo Sint-Lieven22 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

23 Vakgroep IT - KaHo Sint-Lieven23 XML: voorbeeld vroege :0 element attribuut rootelement

24 Vakgroep IT - KaHo Sint-Lieven24 XML: voorbeeld …

25 Vakgroep IT - KaHo Sint-Lieven25 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)

26 Vakgroep IT - KaHo Sint-Lieven26 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); }

27 Vakgroep IT - KaHo Sint-Lieven27 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); }

28 Vakgroep IT - KaHo Sint-Lieven28 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; } … }

29 Vakgroep IT - KaHo Sint-Lieven29 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()); }

30 Vakgroep IT - KaHo Sint-Lieven30 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); }

31 Vakgroep IT - KaHo Sint-Lieven31 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; } … }

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

33 Vakgroep IT - KaHo Sint-Lieven33 Beperkingen Verpleegkundigen, politie, arbeiders in productie en logistiek,… Harde beperkingen minimale bezetting per tijdslot Zachte beperkingen tijdgerelateerde 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)

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

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

36 Vakgroep IT - KaHo Sint-Lieven36 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

37 Vakgroep IT - KaHo Sint-Lieven37 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

38 Vakgroep IT - KaHo Sint-Lieven38 Algemene variabelen planning periode (bvb 4 weken, 28 dagen) shifts, personeelsleden, kwalificaties event (toekenning), vrije dag

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

40 Vakgroep IT - KaHo Sint-Lieven40 Voorbeeld planningsperiode 1 week zachte beperkingen: maximum aantal toekenningen6 minimum 2 maximum aantal opeenvolgende vrije dagen8 minimum2 maximum aantal opeenvolgende toekenningen4 minimum2 maximum per dag1 maximum aantal nachtdiensten3 minimum aantal opeenvolgende nachtdiensten2 volledige weekends werken

41 Vakgroep IT - KaHo Sint-Lieven41 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 tellers last total consecutive constante max constraints N2 max-total = 3 min-consecutive = 2 constraints N3 min-consecutive = 2

42 Vakgroep IT - KaHo Sint-Lieven42 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 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) tellers last total consecutive Kostfunctie P1

43 Vakgroep IT - KaHo Sint-Lieven43 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 constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 2 constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 tellers last total consecutive totale kost  (kostparameter * kost) Kostfunctie P2

44 Vakgroep IT - KaHo Sint-Lieven44 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 constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 0 constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 tellers last total consecutive totale kost  (kostparameter * kost) Kostfunctie P3

45 Vakgroep IT - KaHo Sint-Lieven45 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 constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 0 constraints N3 min-consecutive = 2 kost N3 min-consecutive = 1 tellers last total consecutive totale kost  (kostparameter * kost)

46 Vakgroep IT - KaHo Sint-Lieven46 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 constraints N2 max-total = 3 min-consecutive = 2 kost N2 max-total = 0 min-consecutive = 0 constraints N3 min-consecutive = 2 kost N3 min-consecutive = 0 tellers last total consecutive totale kost  (kostparameter * kost)

47 Vakgroep IT - KaHo Sint-Lieven47 Startvoorwaarden

48 Vakgroep IT - KaHo Sint-Lieven48 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 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 tellers N1 last = -1 total = 0 consecutive = 2 tellers N2 last = U total = 0 consecutive = U tellers N3 last = -2 total = 0 consecutive = 2

49 Vakgroep IT - KaHo Sint-Lieven49 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

50 Vakgroep IT - KaHo Sint-Lieven U

51 Vakgroep IT - KaHo Sint-Lieven51 * U

52 Vakgroep IT - KaHo Sint-Lieven52 Conclusie evaluatiefunctie is onafhankelijk van gebruikersdetails algemeen toepasbaar modulaire formulering eenvoudig uit te breiden verklarend, geeft feedback snelle evaluatieprocedure, laag geheugengebruik interessant wanneer toegepast op metaheuristieken (die een groot aantal evaluaties vergen) laat parallelle planningsessies toe

53 Algoritmen voor personeelsplanning

54 Vakgroep IT - KaHo Sint-Lieven54 Algoritmen voor personeelsplanning Mathematisch programmeren AI methoden: Constraint programming Expertsystemen en beslissingsondersteunende systemen Heuristieken Metaheuristieken Mierenalgoritmen Genetische algoritmen Simulated annealing Tabu search

55 Vakgroep IT - KaHo Sint-Lieven55 Mathematisch programmeren Geschikt voor zoeken van optimale oplossingen in kleinere zoekruimtes Meeste personeelsplanningvoorbeelden zijn ofwel vereenvoudigd of gebruiken testdata Lineair en integer programmeren Standaardvorm: Minimaliseer cx (d.i. doelfunctie) Onderworpen aan Ax=b en x≥0 (de beperkingen) Programma’s: CPLEX, OSL,…

56 Vakgroep IT - KaHo Sint-Lieven56 Mathematisch programmeren Multi-criteria aanpak Meerdere doelen (in tegenstelling tot vorige methode) Meerdere doelfuncties Pareto front Optimalisatietechnieken: dikwijls mathematisch programmeren en metaheuristieken

57 Vakgroep IT - KaHo Sint-Lieven57 AI methoden Constraint programming Problemen oplossen door beperkingen te formuleren over het probleemdomein om zo oplossingen te vinden (die dus voldoen aan de beperkingen) Onderscheid tussen Constraint satisfaction (CSP) (eindige domeinen):  Verzameling variabelen X={x 1,…,x n }   x i, is er een eindige verzameling D i met mogelijke waarden (zijn domein) en  een verzameling beperkingen die de waarden die de variabelen gelijktijdig kunnen aannemen “beperken”  Oplossing: toekenning van een waarde van het domein aan elke variabele zodat alle beperkingen voldaan zijn Constraint solving (oneindige en complexe domeinen):  Combinatorische methodes volstaan niet Programma’s: Oz, CHIP, ILOG

58 Vakgroep IT - KaHo Sint-Lieven58 AI methoden Expertsystemen en beslissingsondersteunende systemen Expertise beschikbaar stellen voor beslissingsnemers en technici die vlug antwoord willen Beperkt tot heel specifieke domeinen

59 Vakgroep IT - KaHo Sint-Lieven59 Heuristieken Meeste heuristieken emuleren trial-and-error die menselijke planners ook gebruiken Maakt gebruikt van een heuristisch functie: Gidst bij het zoeken in de boom Interpreteert probleemstructuur om zo tot een aanvaardbare (let op: niet noodzakelijk optimale) oplossing te komen

60 Vakgroep IT - KaHo Sint-Lieven60 Metaheuristieken Een van de betere methodes om aanvaardbare oplossing binnen aanvaardbare tijd te vinden, vooral als zoekruimte heel groot is en als het moeilijk is om een feasible oplossing te vinden Algemene strategie die andere heuristieken leidt Vaak geïnspireerd door natuurverschijnselen (zowel biologische als fysische)

61 Vakgroep IT - KaHo Sint-Lieven61 Mierenalgoritme Oorspronkelijk idee komt van Marco Dorigo Gebaseerd op de manier waarop mierenkolonies voedsel zoeken en hun bekwaamheid om daarbij het kortste pad te vinden Artificiële mieren vertrekken op geregelde tijdstippen vanuit elke knoop naar random gekozen bestemmingen Route van de mieren wordt probabilistisch bepaald door een probabiliteit die functie is van: Waarden van de artificiële feromonen nagelaten door andere mieren Heuristische waarden die bijgehouden worden op de knopen Mieren onthouden de gekozen routen en de verstreken tijd Bij aankomst doen ze dezelfde route in omgekeerde richting (waarbij de waarden van de feromonen worden aangepast)

62 Vakgroep IT - KaHo Sint-Lieven62 Genetische algoritmen zijn een klasse van algoritmen die geïnspireerd zijn door de mechanismen die gebruikt worden in de genetica. Het vereist de specificatie van 3 operaties (waarbij typisch elk probabilistisch is) op objecten, strings genaamd: Reproductie – combineren van strings in de populatie om zo nieuwe strings te creëren (offspring). Voorbeeld: neem het eerste karakter van de eerste ouder + rest van de string van de tweede ouder: [001001] + [111111] ===> [011111] Mutatie - spontane wijziging van de karakters in de string. Voorbeeld: Verandering van het meest linkse karakter in de string: [001001] ===> [101001] Crossover – combineren van strings om waarden uit te wisselen, om zo nieuwe strings te creëren. Voorbeeld: met crossover locatie op 2: [001001] & [111111] ===> [001111], [111001]

63 Vakgroep IT - KaHo Sint-Lieven63 Genetische algoritmen* Initialiseer een populatie van chromosomen Evalueer elk chromosoom (individu) in de populatie Creëer nieuwe chromosomen door chromosomen te paren in de huidige populatie (gebruikmakend van crossover en mutatie) Verwijder de leden van de huidige populatie om plaats te maken voor de nieuwe leden Evalueer de nieuwe leden en voeg hen toe in de populatie Herhaal het vorige totdat een stopcriterium is bereikt (normaal gebaseerd op tijd en het aantal populaties dat geproduceerd is) De oplossing het beste chromosoom * PowerPoint slides van Graham Kendall (Univ. Nottingham)

64 Vakgroep IT - KaHo Sint-Lieven64 Simulated annealing SA is oorspronkelijk een fysische proces waarbij een materiaal verhit wordt en nadien langzaam afkoelt (het zg. uitgloeien) zodat het een uniforme structuur krijgt Wordt nu als metafoor gebruikt (voor het eerst gebruikt door Kirkpatrick in 1983) Laat toe om te ontsnappen aan lokale minima Daartoe worden niet-verbeterende zetten toegestaan (met een waarschijnlijkheid die afneemt met de temperatuur) Snelheid van afname wordt bepaald door het koelschema (meestal exponentieel)

65 Vakgroep IT - KaHo Sint-Lieven65 Simulated annealing De waarschijnlijkheid om een slechtere zet te accepteren is een functie van zowel de temperatuur van het systeem als de verandering in de kostfunctie Als de temperatuur vermindert, dan vermindert eveneens de waarschijnlijkheid om slechtere zetten te accepteren Als T=0, dan worden geen slechtere zetten geaccepteerd

66 Vakgroep IT - KaHo Sint-Lieven66 Tabu search Oorspronkelijk ontwikkeld door Fred Glover Vermijdt het blijven hangen in lokale optima

67 Vakgroep IT - KaHo Sint-Lieven67 Tabu search Vermijden van blijven hangen in lokale optima door die zetten te verbieden (taboe) of straffen die de oplossing in de volgende iteratie naar punten in de oplossingenruimte brengt die reeds bezocht zijn Laat dus “slechtere” zetten toe om uit een lokaal minimum te raken

68 Vakgroep IT - KaHo Sint-Lieven68 Metaheuristieken Programma’s: OpenTS EasyLocal++ …

69 Vakgroep IT - KaHo Sint-Lieven69 Referenties Tabu search: F. Glover, Eric Taillard and D. de Werra, A user’s guide to tabu search, Annals of OR 41: 3-28 (1993) Simulated annealing: S. Kirkpatrick, C. D. Gelatt, M. P. Vecchi, Optimization by Simulated Annealing, Science (1983) Genetische algoritmen: D. Goldberg, Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, Reading Massachusetts (1989) Mierenalgoritmen M. Dorigo, V. Maniezzo and A. Colorni, The Ant System: Optimization by a Colony of Cooperating Agents, IEEE Transactions on Systems, Man and Cybernetics-Part B, 26(1): (1996)

70 Algemeen gedeelte

71 Vakgroep IT - KaHo Sint-Lieven71 Agenda Algemeen gedeelte Analyse personeelsplanning (WP 1) Classificatie van personeelsplanning problemen Modellering (WP2) Schematische voorstelling van het model Voorstelling gebruikersinterface Distributie (WP 5) Bestaande gedistribueerde werking Mogelijkheden en problemen

72 Classificatie van personeelsplanning

73 Vakgroep IT - KaHo Sint-Lieven73 Classificatie van personeelsplanning Permanentie gebaseerd Politie Ziekenhuizen Mobiliteit gebaseerd Veiligheid en preventie Mobiele verpleegsters Fluctuatie gebaseerd Distributie/magazijnen Interim-kantoren Fast food restaurants Call centers Project gebaseerd Consultancy en software ontwikkeling

74 Vakgroep IT - KaHo Sint-Lieven74 Permanentie gebaseerd Minimum coverage van personeel vereist: altijd! Personeel werkt in shifts (meestal 3) Cyclische roosters Maar dikwijls verstoord door afwezigheden

75 Vakgroep IT - KaHo Sint-Lieven75 Mobiliteit gebaseerd Toewijzingen van personeel aan taken: afhankelijk van werkvooruitgang en transport IDEWE: bus moet gereserveerd worden Wit-Gele Kruis: verpleegsters kunnen zelf hun route plannen (rekening houdend met allerlei beperkingen, tijdsvensters!) Opmerking: mobiliteit is niet echt een punt

76 Vakgroep IT - KaHo Sint-Lieven76 Fluctuatie gebaseerd Aantal personeelsleden: afhankelijk van veranderend vraag Meeste bedrijven houden een log bij: min of meer voorspellen wat toekomst brengt Bijv.: DistriMedia

77 Vakgroep IT - KaHo Sint-Lieven77 Project gebaseerd Verschillende mensen aan een project toegekend Afhankelijk van de vooruitgang en naderende deadline: herplannen van mensen Goede projectleider nodig die zijn mensen kent

78 Vakgroep IT - KaHo Sint-Lieven78 Opmerkingen Veel gebeurt nog manueel Neemt veel personeel en tijd in beslag Planner wordt verondersteld ALLES te weten Distributie van personeel: komt (nog?) weinig voor/ mogelijkheden worden nog niet benut Mobiele Equipe (ziekenhuis) Vlinderploeg (WGK) Roulatiesysteem (DistriMedia)

79 Vakgroep IT - KaHo Sint-Lieven79 Type perso- neelsplan- ning Dimensies van het probleem Harde beperkingen GedistribueerdExtraDoelstelling Politiepolitieagenten (+kwalificaties), shifts Minimale bezetting + kwalificatie Verschillende divisies (piekploeg bijgestaan door recherche,…) Zeer strikte wettelijke beperkingen (in theorie) Minimaliseer aantal overuren ZiekenhuisVerpleegkun- digen (+kwali- ficaties), shifts Minimale bezetting + Bezetting van verplegers Mobiele teams (departementen) Zeer strikte wettelijke beperkingen (in theorie) Minimaliseer arbeidskosten Distributie/ Magazijn Werknemers (+kwalificaties) Minimale bezetting + kwalificatie Individuen (personeel kan verschillende taken uitvoeren) Minimaliseer aantal overuren en interim- krachten Interim- agentschap Interim-krachten (+kwalificaties) Beschikbaarheid van de interim-krachten + kwalificatie Verschillende pools waaruit kan gekozen worden Grote database Maximaliseer klantentevre- denheid Veiligheid en preventie Personeel (+kwalificaties) kwalificatie + Minimale bezetting Bezetting van de bussen (geen vaste teams) + ruimtelijk Voldoen aan de wensen van de klant en de wet respecteren Minimaliseer het werk van menselijke planners Thuis- verpleging Verplegers (+kwalificaties), shifts kwalificatie + bezetting VlinderploegMinimaliseer arbeidskosten Softwarebe- drijven en consultancy Personeel (+ kwalificaties), projecten Kwalificatie + deadlines Uitwisseling van personeel tussen projecten Deadlines halen + rendabiliteit

80 Voorgesteld algemeen personeels- planningmodel

81 Vakgroep IT - KaHo Sint-Lieven81 Algemeen personeelsplanningsmodel Invoer Gegevens (Jan werkt dinsdag 30 maart) Beperkingen (na een late shift, geen vroege) Berekening Combineren van bestaande algoritmen Uitvoer Weergave en bewerking van gekozen oplossing

82 Vakgroep IT - KaHo Sint-Lieven82 GegevensBeperkingen T P Jan werkt dinsdag 30 maart D P Piet moet aan de inslag staan T D De inslag moet bemand zijn van 8h00 tot 17h00 Oplossing P T D Din 30 maart 17h0008h00 Piet Interne rekenstructuur Jan Algoritmen

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

84 Vakgroep IT - KaHo Sint-Lieven84 Algemeen personeelsplanningsmodel Uitvoer (weergave en bewerking) 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?

85 Toelichting van het model aan de hand van prototype gebruikerinterfaces

86 Vakgroep IT - KaHo Sint-Lieven86 Prototype voor de gebruikersinterface Demo

87 Distributie

88 Vakgroep IT - KaHo Sint-Lieven88 Distributie Onderscheid maken tussen verschillen in organisatie van bedrijf: Beslissingsmacht: Centraal Departementaal Afhankelijk hiervan tool ontwikkelen Centraal: tool zoekt personeelsleden om uit te wisselen en 1 persoon geeft zijn goedkeuring Departementaal: tool stelt scenario’s voor waarover gediscussieerd kan worden

89 Vakgroep IT - KaHo Sint-Lieven89 Personeel van afdeling A Personeel van afdeling B Personeel van afdeling C Afdelingshoofd Management Raad van afdelingshoofden

90 Vragen?

91 Vakgroep IT - KaHo Sint-Lieven91 Planning volgende periode Studie algoritmen voor personeelsplanning Studie gedistribueerde planning Studie agententechnologie Afwerken model voor personeelsplanning Implementatie algoritmen voor automatische personeelsplanning Mijlpaal 2: Model personeelsplanning

92 Vakgroep IT - KaHo Sint-Lieven92

93 Vakgroep IT - KaHo Sint-Lieven93

94 Vakgroep IT - KaHo Sint-Lieven94 Project website Beveiligd gedeelte: login en paswoord: dingo downunder Informatie over: Bezoeken aan de leden van de gebruikerscommissie Presentaties, verslagen van de vergaderingen Voortgangsverslagen Literatuur (personeelsplanning, agententechnologie, algoritmen) Realisaties in het project...


Download ppt "2de gebruikerscommissie Sint-Lieven, Gent 30 maart 2004."

Verwante presentaties


Ads door Google