5 de DINGO Gebruikerscommissie Beheerraadzaal @ KaHo Sint-Lieven Gent .
-
Upload
esmee-bosman -
Category
Documents
-
view
216 -
download
0
Transcript of 5 de DINGO Gebruikerscommissie Beheerraadzaal @ KaHo Sint-Lieven Gent .
5de DINGO Gebruikerscommissie
Beheerraadzaal @ KaHo Sint-Lieven Gent
http://ingenieur.kahosl.be/projecten/dingo
Vakgroep IT KaHo Sint-Lieven 2
Agenda
Welkom Status Bespreking vorderingen Discussie
Welkom
Status van het project
Vakgroep IT KaHo Sint-Lieven 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
Mijlpalen
Planningscomponenten in Java Onderhandelingsmodel in Mozart/Oz Prototype agententoepassing (DistriMedia case)
Vakgroep IT KaHo Sint-Lieven 7
Bespreking
Vakgroep IT KaHo Sint-Lieven 9
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
Architectuur (1)OmbudsAgent
DepartementsAgent
Moz
art/
Oz
Java
DepartementsAgent
DepartementsAgent
DepartementsAgent
Lokaal zoekalgoritme
XM
L-R
PC
Vakgroep IT KaHo Sint-Lieven 11
Architectuur (2)DepartementsAgent
Moz
art/
Oz
Java
XM
L-R
PC
PersoneelsAgent
PersoneelsAgent
Lokaal zoekalgoritme
Vakgroep IT KaHo Sint-Lieven 12
Uiteindelijke oplossing
Initiële toekenning van personeel
Onderhandeling
Taak 1
Tabu Search
Eerste Oplossing
Taak 2
Tabu Search
Eerste Oplossing
Taak 3
Tabu Search
Eerste Oplossing
Uiteindelijke oplossing
Uiteindelijke oplossing
Vakgroep IT KaHo Sint-Lieven 13
OmbudsAgent DepartementsAgenti
CFP Elk stuurt kost + duurste kwalificatie en tijdstip. Resultaat van lokaal zoek-algoritme
(Kost, Q, T)i
Evalueren elk de voorgestelde wijziging
en genereren bijhorende kost
ACCEPT PROPOSAL
REJECT PROPOSAL
De betrokken Departe-mentsAgenten
wisselen personeel uit en passen het
departementsroos-ter voor die shift aan.
CNP
CFP
(Kost, Q, T)i
CNP
PersoneelsAgentj
Doorgeven van werkschema aan
initieel toegewezen personeel
CFP: T, Plaats
Kost
ACCEPT PROPOSAL
Elke betrokken agent evalueert zijn eigen beper-kingen en gene-reert een kost
REJECT PROPOSAL
Neem de hoogste kost
Stuur de anderen een REJECT
Kosti + extra informatie
ACCEPT PROPOSAL
REJECT PROPOSAL
CFP, Qmax, Tmax
CNP
Als Kosti < drempel-waarde, dan wordt
de verandering aan-vaard
Anders niet
Stuur de agenten die aanpassingen
hebben gedaan een nieuwe CFP
Herhaling: Onderhandelingsmechanisme
Enkel de agenten die aanpassingen hebben
gedaan sturen hun kost terug
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
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
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 "http://"#'10.11.0.12'#":"#self.poort#"/RPC2" "test3"#"."#"evaluatePersoneel" [self.name Shift Avgr] }
ShiftP = {String.toInt {ByteString.toString S}} KostP = {String.toFloat {ByteString.toString K}}
{@connector send(msg(Zender self.name personeelsKost(ShiftP KostP Avgr)))} end [] msg(_ _ opdrachten(_ Shift Avgr)) then _ = {XmlRpcClient.execute
"http://"#'10.11.0.12'#":"#self.poort#"/RPC2" "test3"#"."#"voerVeranderingPersoneelUit" [self.name Shift Avgr]
} else
{C.cshow watTeDoenMet(M self.name)} end
end
Vakgroep IT KaHo Sint-Lieven 17
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 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
van tot M vroege shift 06:45 14:45 L late shift 14:30 22:00 N nacht shift 22:00 07:00
N1
N2
N3
Vakgroep IT KaHo Sint-Lieven 19
Nummeringen
* * * * * N1 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 N2 U U 0 U U 1 U U 2 U U 3 U U 4 U U 5 U U 6 N3 U U U U U U U U U U U U U U U 0 0 0 1 1 1
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
Ma Di Wo Do Vr Za Zo P1 M M L L N P2 N N L L P3 M M M M M M M P4 M L N N N P5 M L L L L
Vakgroep IT KaHo Sint-Lieven 20
P1 * * * * * N1 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 N2 U U 0 U U 1 U U 2 U U 3 U U 4 U U 5 U U 6 N3 U U U U U U U U U U U U U U U 0 0 0 1 1 1
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
Vakgroep IT KaHo Sint-Lieven 21
Startvoorwaarden
Ma Di Wo Do Vr Za Zo Ma Di Wo Do Vr Za Zo P1 M M M M L L N P2 M L L N N N L L P3 L L M M M M M M M P4 L L M L N N N P5 N N N N N M L L L L
Vakgroep IT KaHo Sint-Lieven 22
Kostfunctie P1P1 * * * * * * * N1 -3 -3 -2 -2 -2 -1 -1 -1 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 N2 U -3 U U -2 U U -1 U U 0 U U 1 U U 2 U U 3 U U 4 U U 5 U U 6 N3 U U -3 -3 -3 -2 -2 -2 U U U U U U U U U U U U U U U 0 0 0 1 1 1
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
Vakgroep IT KaHo Sint-Lieven 23
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
-2-2002200000000000000
UU002200000000000000
-1-1000000000000000000
Vakgroep IT KaHo Sint-Lieven 25
*-2-2002200000000000000
UU113311000000000000
00000000000000000000
3311
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
<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><day ID="6">
<shift ID="1">5</shift><shift ID="2">5</shift><shift ID="3">5</shift>
</day><day ID="7">
<shift ID="1">6</shift><shift ID="2">6</shift><shift ID="3">6</shift>
</day></numbering>…
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><day ID="3">
<shift ID="1">2</shift><shift ID="2">2</shift><shift ID="3">2</shift>
</day>
Vakgroep IT KaHo Sint-Lieven 28
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
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
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
SOAP
Service Requester
Service Provider
HTTP Server
SOAP Dispatc
h
?SOAP request/response messages
Underlying implementation
Vakgroep IT KaHo Sint-Lieven 33
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
SOAP structuur
SOAP Message
HTTP HEADER
Envelope
Header
Body XML
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
Case Study
DistriMedia
Vakgroep IT KaHo Sint-Lieven 37
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
Kwalificatiematrix
Ontvangst
Opzet
Retour
Eindstation
Wikkel
Magazijn
Boodschappen
Inpakken
Administratie
Vakgroep IT KaHo Sint-Lieven 39
Historische gegevensDatum Werknemer Uren Taak
6/01/2004 SV 0,50 administratieVV 8,00 administratieVS 1,00 boodschapenJD 8,00 eindstationEL 8,00 ontvangstEV 2,00 ontvangstMA 8,50 ontvangstMV 7,00 ontvangstCV 2,00 transportEV 1,00 transportIM 4,00 transportTD 6,50 transportJC 6,00 magazijn
Werknemer uren TaakCM 0,50 magazijnMV 1,00 magazijnVS 1,00 magazijnRD 8,50 opzetCM 7,50 pickingCV 6,00 pickingEV 5,00 pickingIM 4,00 pickingJC 2,00 pickingKC 8,00 pickingLD 8,00 pickingRV 4,00 pickingSV 5,50 pickingVS 5,00 pickingSV 2,00 rejectKG 6,50 retourTD 1,50 wikkel
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
Resultaat
maan dins woens donder vrijontvangst - EV - - EVopzet CM - SV CM -reject KG KG KG KG KG
- - - - -wikkel TD IM TD TD TD
- - IM IM TDboodschappen KG IM KG KG KGadmin - - - - -
Vakgroep IT KaHo Sint-Lieven 43
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
Toekomst
Testen op: Langere planningsperiode, Meer personeel Andere soorten bedrijven Andere onderhandelingsmechanismes
Initiële toekenning automatiseren
Discussie