Download de presentatie
De presentatie wordt gedownload. Even geduld aub
1
5de DINGO Gebruikerscommissie
KaHo Sint-Lieven Gent
2
Vakgroep IT KaHo Sint-Lieven
Agenda Welkom Status Bespreking vorderingen Discussie Vakgroep IT KaHo Sint-Lieven
3
Welkom
4
Status van het project
5
Periode 1 december 2004 – 14 april 2005
WP 4: testen van algoritmen WP 7: onderhandelingsmodel WP 8: Modelleren van gebruikers WP 9: Testen Onderhandelingsmodel Vakgroep IT KaHo Sint-Lieven
6
Vakgroep IT KaHo Sint-Lieven
Mijlpalen Planningscomponenten in Java Onderhandelingsmodel in Mozart/Oz Prototype agententoepassing (DistriMedia case) Vakgroep IT KaHo Sint-Lieven
7
Vakgroep IT KaHo Sint-Lieven
8
Bespreking
9
Vakgroep IT KaHo Sint-Lieven
Agenda Architectuur Onderhandelingsmodel in Mozart/Oz Mozart/Oz? Zoekalgoritme Gebruikte evaluatiemethode (nummeringen) Communicatie tussen model en algoritme XML-RPC Gui Demo: DistriMedia case Vakgroep IT KaHo Sint-Lieven
10
Vakgroep IT KaHo Sint-Lieven
Architectuur (1) OmbudsAgent Mozart/Oz Departements Agent Departements Agent Departements Agent Departements Agent XML-RPC Java Webservice Webservice Webservice Webservice Lokaal zoekalgoritme Vakgroep IT KaHo Sint-Lieven
11
Vakgroep IT KaHo Sint-Lieven
Architectuur (2) DepartementsAgent Mozart/Oz Personeels Agent Personeels Agent XML-RPC Java Webservice Webservice Webservice Webservice Lokaal zoekalgoritme Vakgroep IT KaHo Sint-Lieven
12
Initiële toekenning van personeel
Taak 1 Tabu Search Eerste Oplossing Taak 2 Taak 3 Onderhandeling Uiteindelijke oplossing Uiteindelijke oplossing Uiteindelijke oplossing Vakgroep IT KaHo Sint-Lieven
13
Herhaling: Onderhandelingsmechanisme
OmbudsAgent PersoneelsAgentj DepartementsAgenti CFP Elk stuurt kost + duurste kwalificatie en tijdstip. Resultaat van lokaal zoek-algoritme CNP (Kost, Q, T)i Neem de hoogste kost Doorgeven van werkschema aan initieel toegewezen personeel ACCEPT PROPOSAL Stuur de anderen een REJECT CNP REJECT PROPOSAL CFP, Qmax, Tmax Evalueren elk de voorgestelde wijziging en genereren bijhorende kost CFP: T, Plaats Elke betrokken agent evalueert zijn eigen beper-kingen en gene-reert een kost CNP Kost Als Kosti < drempel-waarde, dan wordt de verandering aan-vaard Kosti + extra informatie De betrokken Departe-mentsAgenten wisselen personeel uit en passen het departementsroos-ter voor die shift aan. ACCEPT PROPOSAL ACCEPT PROPOSAL REJECT PROPOSAL REJECT PROPOSAL Anders niet CFP Stuur de agenten die aanpassingen hebben gedaan een nieuwe CFP Enkel de agenten die aanpassingen hebben gedaan sturen hun kost terug (Kost, Q, T)i Vakgroep IT KaHo Sint-Lieven
14
Implementatiekwesties
Jade: De facto agentenomgeving voor Java Enkele faciliteiten voor CNP (Initiator & Responder) Niettemin: complexe programmacode problemen met grote aantallen agenten Mozart/Oz: multi-paradigma, gedistribueerd programmeertaal Functionaliteit voor agenten Vakgroep IT KaHo Sint-Lieven
15
Vakgroep IT KaHo Sint-Lieven
Mozart/Oz Mozart Programming System constraint-based inference distributed computing human-computer interfaces platformonafhankelijk (Unix, Windows, MacOs,... ) Oz language declarative programming object-oriented programming constraint programming concurrency Vakgroep IT KaHo Sint-Lieven
16
Vakgroep IT KaHo Sint-Lieven
meth behavior(M) case M of msg(_ Zender shiftKost(Shift Avgr Poort)) then self.poort = Poort local S K ShiftP KostP in _|S|_|K|_ = {XmlRpcClient.execute " "test3"#"."#"evaluatePersoneel" [self.name Shift Avgr] } ShiftP = {String.toInt {ByteString.toString S}} KostP = {String.toFloat {ByteString.toString K}} send(msg(Zender self.name personeelsKost(ShiftP KostP Avgr)))} end [] msg(_ _ opdrachten(_ Shift Avgr)) then _ = {XmlRpcClient.execute "test3"#"."#"voerVeranderingPersoneelUit" else {C.cshow watTeDoenMet(M self.name)} Vakgroep IT KaHo Sint-Lieven
17
Vakgroep IT KaHo Sint-Lieven
Zoekalgoritme Nieuwe evaluatiemethode: Nummeringen Beschreven in XML bestand GUI om XML bestand automatisch te genereren Demo Vakgroep IT KaHo Sint-Lieven
18
Nummeringen: voorbeeld
planningsperiode 1 week zachte beperkingen: maximum aantal toekenningen 6 minimum maximum aantal opeenvolgende vrije dagen 8 minimum maximum aantal opeenvolgende toekenningen 4 maximum per dag 1 maximum aantal nachtdiensten 3 minimum aantal opeenvolgende nachtdiensten 2 volledige weekends werken N1 N2 N3 Vakgroep IT KaHo Sint-Lieven
19
Vakgroep IT KaHo Sint-Lieven
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
20
Vakgroep IT KaHo Sint-Lieven
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
21
Vakgroep IT KaHo Sint-Lieven
Startvoorwaarden Vakgroep IT KaHo Sint-Lieven
22
Vakgroep IT KaHo Sint-Lieven
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
23
Vakgroep IT KaHo Sint-Lieven
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
24
Vakgroep IT KaHo Sint-Lieven
-1 U -2 2 2 Vakgroep IT KaHo Sint-Lieven
25
Vakgroep IT KaHo Sint-Lieven
* U -2 1 3 2 1 3 1 Vakgroep IT KaHo Sint-Lieven
26
Corresponderend XML bestand (1)
<constraint ID="1"> <numberingId>1</numberingId> <variables> <max_total weight="1">6</max_total> <min_total weigh="1">-oneindig</min_total> <max_pert weight="1">1</max_pert> <min_pert weight="1">-oneindig</min_pert> <max_between weight="1">8</max_between> <min_between weight="1">2</min_between> <max_consecutive weight="1">4</max_consecutive> <min_consecutive weight="1">2</min_consecutive> </variables> </constraint>… Vakgroep IT KaHo Sint-Lieven
27
Corresponderend XML bestand (2)
… <numbering ID="1"> <day ID="1"> <shift ID="1">0</shift> <shift ID="2">0</shift> <shift ID="3">0</shift> </day> <day ID="2"> <shift ID="1">1</shift> <shift ID="2">1</shift> <shift ID="3">1</shift> <day ID="3"> <shift ID="1">2</shift> <shift ID="2">2</shift> <shift ID="3">2</shift> <day ID="4"> <shift ID="1">3</shift> <shift ID="2">3</shift> <shift ID="3">3</shift> </day> <day ID="5"> <shift ID="1">4</shift> <shift ID="2">4</shift> <shift ID="3">4</shift> <day ID="6"> <shift ID="1">5</shift> <shift ID="2">5</shift> <shift ID="3">5</shift> <day ID="7"> <shift ID="1">6</shift> <shift ID="2">6</shift> <shift ID="3">6</shift> </numbering>… Vakgroep IT KaHo Sint-Lieven
28
Vakgroep IT KaHo Sint-Lieven
Communicatie Zoekalgoritme in Java Onderhandelingsmechanisme in Mozart/Oz Hoe met elkaar communiceren? Via webservice: Eerste idee: SOAP? Alternatief: XML-RPC? Vakgroep IT KaHo Sint-Lieven
29
Vakgroep IT KaHo Sint-Lieven
XML-RPC? “It's a spec and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet. It's remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned.” Vakgroep IT KaHo Sint-Lieven
30
Vakgroep IT KaHo Sint-Lieven
XML-RPC Vakgroep IT KaHo Sint-Lieven
31
Toegelaten types in XML-RPC
Boolean String Double Date HashTable Vector byte[] Vakgroep IT KaHo Sint-Lieven
32
Vakgroep IT KaHo Sint-Lieven
SOAP Service Provider Service Requester HTTP Server SOAP Dispatch ? SOAP request/response messages Underlying implementation Vakgroep IT KaHo Sint-Lieven
33
Vakgroep IT KaHo Sint-Lieven
SOAP? SOAP is een “loosely coupled” protocol Lightweight (veroorzaakt minimale overhead), eenvoudig (om te gebruiken, niet noodzakelijk om te schrijven) Over HTTP & SMTP, geen problemen met firewalls SOAP is een minimale verzameling van conventies om code aan te roepen gebruikmakend van XML en HTTP Eenvoudig om zelfgemaakte objecten te encoderen (in tegenstelling tot XML-RPC) Vakgroep IT KaHo Sint-Lieven
34
Vakgroep IT KaHo Sint-Lieven
SOAP structuur SOAP Message HTTP HEADER Envelope Header XML Body Vakgroep IT KaHo Sint-Lieven
35
GUI voor personeelsplanning
Grafische User Interface voor personeelsplanning Koppeling tussen GUI en planningssoftware gebeurt via SOAP Eindwerkopdracht van Koen Vangheluwe Demonstratie Vakgroep IT KaHo Sint-Lieven
36
Case Study DistriMedia
37
Vakgroep IT KaHo Sint-Lieven
Case study Distributiebedrijf, magazijn Gedistribueerd: Werknemers zijn polyvalent (verschillende kwalificaties) Rotatiesysteem Ideale test case! In ons model: Elke taak = department Elk department = voorgesteld door een agent Vakgroep IT KaHo Sint-Lieven
38
Vakgroep IT KaHo Sint-Lieven
Kwalificatiematrix Ontvangst Opzet Eindstation Wikkel Magazijn Retour Administratie Inpakken Vakgroep IT KaHo Sint-Lieven Boodschappen
39
Vakgroep IT KaHo Sint-Lieven
Historische gegevens Vakgroep IT KaHo Sint-Lieven
40
Werkbelasting voor elke taak/dag
ontvangst: 25 uren -> 3 werknemers (? 1 uur) picking: 55 uren -> 7 werknemers (! 1 uur) opzet: 9 uren -> 1 werknemer (? 1uur) reject: 2 uren -> 0 werknemers (? 2 uren) eindstation: 8 uren -> 1 werknemer (ok) wikkel: 2 uren -> 0 werknemers (? 2 uren) magazijn: 8 uren -> 1 werknemer (ok) transport: 14 uren -> 2 werknemers (! 2 uren) retour: 6 uren -> 1 werknemer (! 2 uren) administratie: 9 uren -> 1 werknemer (? 1 uur) boodschappen: 1 uur -> 0 werknemers (? 1 uur) Vakgroep IT KaHo Sint-Lieven
41
Resulten: toekenning van personeel
ontvangst: EL,MA, MV picking: CM, CV, EV, KC, LD, RV, SV opzet: RD reject: niemand eindstation: JD wikkel: niemand magazijn: JC transport: IM, TD retour: KG administratie: VV boodschappen: niemand Vakgroep IT KaHo Sint-Lieven
42
Vakgroep IT KaHo Sint-Lieven
Resultaat Vakgroep IT KaHo Sint-Lieven
43
Vakgroep IT KaHo Sint-Lieven
Commentaar We maken geen onderscheid tussen departementen, kwalificaties en taken Gebruiken geen werknemer agenten gedurend tabu search Voortdurende communicatie tussen agenten veroorzaakt bottleneck Werknemer agenten worden gecreëerd na tabu search Als er heel veel personeel is: Werknemer agenten pas creëren als ze nodig zijn Vakgroep IT KaHo Sint-Lieven
44
Vakgroep IT KaHo Sint-Lieven
Toekomst Testen op: Langere planningsperiode, Meer personeel Andere soorten bedrijven Andere onderhandelingsmechanismes Initiële toekenning automatiseren Vakgroep IT KaHo Sint-Lieven
45
Discussie
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.