De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

3 de gebruikerscommissie KaHo Sint-Lieven, Gent.

Verwante presentaties


Presentatie over: "3 de gebruikerscommissie KaHo Sint-Lieven, Gent."— Transcript van de presentatie:

1 3 de gebruikerscommissie DINGO @ KaHo Sint-Lieven, Gent

2 2 Overzicht Inleiding Situering OpenTS Eigen personeelsplanningsapplicatie Demo Verspreiding Planning vervolg

3 3 Mijlpalen Mijlpaal: 31-7-2004 Rapport over gedistribueerde planning Mijlpaal: 31-7-2004 Prototype planningscomponenten

4 4

5 5 Inleiding Doel eerste deel van DINGO project is: Identificeren van personeelsplanningsproblemen: interviews Modelleren van personeelsplanning (o.a. via concrete cases): classificatie en artikel Opstellen van algoritmen voor automatisch plannen voor lokale personeelsplannings- problemen: zie hierna

6 6 Gekozen planningsalgoritme Na studie algoritmes: Genetische algoritmes Tabu search Uiteindelijk gekozen voor tabu search Goede ervaringen uit vorige projecten Bestaat reeds een Java framework voor tabu search: OpenTS

7 7 Déjà vu: tabu search Oorspronkelijk ontwikkeld door Fred Glover Vermijdt het blijven hangen in lokale optima

8 8 Tabu search Vermijden van blijven hangen in lokale optima door die zetten te verbieden (tabu/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

9 9 OpenTS OpenTS: helpt bij het implementeren van tabu search op een goed gedefinieerde, objectgeoriënteerde manier OpenTS beschrijving: Implementeren van de volgende probleemspecifieke interfaces: Oplossingsstructuur Doelfunctie Tabulijst Zetten (‘moves’) Movemanager (definieert de omgevingen) OpenTS gebruikt deze basiselementen om de oplossingenruimte te doorzoeken Mogelijkheid om dynamische tabu search technieken toe te voegen zoals reactieve tabu lijsten door de event handling mogelijkheden (new current solution, new best solution, unimproving move made, …)

10 10 Een iteratie in OpenTS Nieuwe huidige oplossing Nieuwe huidige oplossing MoveManger genereert zetten MoveManger genereert zetten Doelfunctie evalueert zetten Doelfunctie evalueert zetten Beste niet-tabu zet wordt genomen Beste niet-tabu zet wordt genomen Zet wordt toegepast op huidige oplossing Zet wordt toegepast op huidige oplossing Initiële oplossing Initiële oplossing

11 11 OpenTS en Tabu Search Zetten (Moves) = transities tussen oplossingen Definieren de omgeving De tabu lijst geeft de recente geschiedenis van de moves weer + implementeert intensificatie en diversificatie strategieën Tabu tenure = aantal iteraties zet taboe gehouden wordt Een kandidaat verzameling: Zijn niet tabu Voldoen aan het aspiratiecriterium Een kandidaat is taboe als het gekenmerkt wordt door een kandidaat op de tabulijst  de zet kan niet gekozen worden tenzij het voldoet aan het aspiratiecriterium Aspiratiecriteria = Een betere oplossing accepteren zelfs als deze door een tabuzet wordt gegenereerd Evaluatiefunctie (Doelfunctie) bepaalt de kwaliteit van de oplossing

12 12 OpenTS Framework MySolution MyTabuList MyMoveManager2 MyObjectiveFunction MyMoveManager1MyMoveManager3 MyMove1MyMove3MyMove2

13 13 De OpenTS interface Volgende methodes (“het contract”) implementeren: Solution clone() toString() TabuList setTabu(solution, move) isTabu(solution, move) MoveManager getAllMoves(solution) Move operateOn(solution) hashCode() ObjectiveFunction evaluate(solution, move)

14 14 Een iteratie in OpenTS 1.Start met initiële oplossing 1 Initiële oplossing Oplossing Zet A Zet B Zet C Zet D getAllMoves()getBestMove() Zet B operateOn() setTabu() Tabulijst isTabu() Tabuwaarde 2.Movemanager genereert alle mogelijke zetten, startend van een gegeven oplossing 2 3.OpenTS gebruikt de doelfunctie om elke zet te evalueren 3 4.OpenTS neemt de beste zet, rekening houdend met de tabulijst 4 5.Kenmerken van de huidige oplossing worden in de tabulijst geplaatst 5 6.Gekozen zet wordt op de oplossing losgelaten 6

15 15 Oplossingsstructuur Matrix van Atomen Atomen bestaan uit: Waarde (0 of 1) Toegelaten: Shift is toegelaten = true Shift is verboden = false Verboden zone: ziektes, eventuele verplichte beschikbaarheid,…

16 16 Oplossingsstructuur V L N Voorbeeld 0|1|0||1|0|0||0|0|0||0|0|1||0|1|0||0|0|1||1|0|0| 0|0|1||1|0|0||1|0|0||1|0|0||0|0|1||0|1|0||0|0|1| 1|0|0||1|0|0||1|0|0||0|0|0||1|0|0||0|0|0||0|1|0| 1|0|0||1|0|0||0|0|0||1|0|0||0|0|0||0|1|0||0|1|0| 0|1|0||0|1|0||0|1|0||1|0|0||1|0|0||0|1|0||0|1|0| 1|0|0||0|0|0||0|0|0||0|1|0||1|0|0||0|1|0||1|0|0| Persoon 3

17 17 Klasse Solution Verplichte methode clone implementeren Zorgt ervoor dat er steeds met de goede oplossing wordt gewerkt Om verlies van oorspronkelijke oplossing te vermijden wordt oplossing ge clone d Verschillende zetten worden uitgeprobeerd (op de ge clone de oplossing), maar slechts 1 wordt effectief uitgevoerd (op de oorspronkelijke oplossing)

18 18 Doelfunctie (ObjectiveFunction) Evalueert de huidige oplossing Onderscheid tussen: Absolute evaluatie (enkel bij starten): duurt iets langer Incrementele evaluatie (anders): vlugger Verplicht implementeren van de evaluate methode Returnwaarde is de evaluatiekost Wordt rekening gehouden met verschillende constraints Gewichten stellen relatieve belangrijkheid van constraints voor

19 19 Doelfunctie Wij maken gebruik van abstracte klasse om kosten te berekenen import java.util.Vector; abstract class BerekenKostAbstract{ abstract double initieleKost(MySolution solution); abstract double kost(MySolution solution, Vector GEV); abstract Vector eindkost (MySolution solution); }

20 20 Zet (Move) operateOn methode implementeren Hier wordt de zet echt uitgevoerd Beschrijven wat dit inhoudt Verschillende zetten: FlipMove: 0 => 1 of 1 => 0 FlipXMove: van X elementen wordt complement genomen ColumnChangeMove: omwisselen van 2 kolommen RowChangeMove: omwisselen van 2 rijen Swap2ElementsMove: 2 elementen worden van plaats verwisseld

21 21 MoveManager Beschrijft de geldige zetten voor elke iteratie Gebeurt op random manier Implementeren van de methode getAllMoves Resultaat: array (Move[ ]) van alle toegelaten zetten

22 22 Tabulijst Standaard tabulijst in OpenTS array van integers om attributen van zetten bij te houden Lengte ervan kan worden aangepast Diversificatie (lengte + ev. huidige oplossing “shaken”) Intensificatie (lengte )

23 23 Beperkingen & demo Coverage: komen er evenveel personeelsleden werken als er gevraagd zijn (per shift)? Max/Min # per periode: Max 1 shift per dag Min 1 weekend per 2 weken Min 40 uur (= 5 shiften) per week Max/Min opeenvolgende: Min 2 opeenvolgende Vroege Max 4 opeenvolgende Weekends Max 8 opeenvolgende dagen Na #x komt #y: Na nachtshift komen 2 shiften rust Na 6 opeenvolgende dagen komen 3 dagen rust Na 2 vroege shifts komen 2 dagshifts

24 24 UML

25 25 Verspreiding Patat 2004 (Pittsburgh): presentatie door Bart over “Analysis of real-world personnel scheduling problems” Presentatie door Peter over “Semantic Components for Timetabling”

26 26 Vervolg van het project Vereenvoudigen van onderhandelingen over het gemeenschappelijk inzetten van personeelsleden door gedistribueerde eenheden Identificeren van problemen bij gedistribueerde werking Modelleren van de agentenonderhandeling in gedistribueerde omgeving Implementeren van het agentenmodel in JADE

27 27 Vervolg project

28 28 Onderhandelingsmechanisme Meest eenvoudige: Contract Net Protocol 2 uitwisselbare rollen: Manager definieert en coördineert probleem Aannemer voert deeltaak uit (ev. onderaannemers) Bieden om een oplossing te vinden: Aankondigen van een taak (manager) Evalueren van de taak (aannemers) Voorstel (aannemers) Evaluatie van het voorstel en toekenning (manager) Coördinatie & evaluatie van het geheel (manager)

29 29 Contract Net Protocol (CNP) manager Aankondigen van een taak aannemers manager bieden Contract wordt toegekend aannemers manager aannemers

30 30 Contract Net Protocol (CNP) Voordelen Natuurlijke load balancing (door het bieden) Fouttolerantie is hoog Beperkingen Geen oplossing voor conflicten Passieve, vrijgevige, eerlijke agenten Communicatie-intensief, hoge netwerkbelasting

31 31 Vervolg project Agentendeel: Hoe voorstellen? Zeker geen black box! Eerder beslissingsondersteunend

32 32 Discussie

33 33

34 34 Tetra project Intelligent Communicatieplatform voor Multimodaal Transport Start 1-10-2004 Medeaanvragers Universiteit Gent Universiteit Antwerpen (ITMMA) Univ. Leuven, Gent, Nottingham, VUB Bedrijven: software, transport, haven- en waterwegbeheerders,…


Download ppt "3 de gebruikerscommissie KaHo Sint-Lieven, Gent."

Verwante presentaties


Ads door Google