5 de dingo gebruikerscommissie

45
5 de DINGO Gebruikerscommissi e Beheerraadzaal @ KaHo Sint-Lieven Gent http:// ingenieur.kahosl.be /projecten/dingo

Upload: duscha

Post on 15-Jan-2016

54 views

Category:

Documents


0 download

DESCRIPTION

5 de DINGO Gebruikerscommissie. Beheerraadzaal @ KaHo Sint-Lieven Gent http://ingenieur.kahosl.be/projecten/dingo. Agenda. Welkom Status Bespreking vorderingen Discussie. Welkom. Status van het project. Periode 1 december 2004 – 14 april 2005. WP 4: testen van algoritmen - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 5 de  DINGO  Gebruikerscommissie

5de DINGO Gebruikerscommissie

Beheerraadzaal @ KaHo Sint-Lieven Gent

http://ingenieur.kahosl.be/projecten/dingo

Page 2: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 2

Agenda

Welkom Status Bespreking vorderingen Discussie

Page 3: 5 de  DINGO  Gebruikerscommissie

Welkom

Page 4: 5 de  DINGO  Gebruikerscommissie

Status van het project

Page 5: 5 de  DINGO  Gebruikerscommissie

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

Page 6: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 6

Mijlpalen

Planningscomponenten in Java Onderhandelingsmodel in Mozart/Oz Prototype agententoepassing (DistriMedia case)

Page 7: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 7

Page 8: 5 de  DINGO  Gebruikerscommissie

Bespreking

Page 9: 5 de  DINGO  Gebruikerscommissie

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

Page 10: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 10

Architectuur (1)OmbudsAgent

DepartementsAgent

Moz

art/

Oz

Java

DepartementsAgent

DepartementsAgent

DepartementsAgent

Lokaal zoekalgoritme

XM

L-R

PC

Page 11: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 11

Architectuur (2)DepartementsAgent

Moz

art/

Oz

Java

XM

L-R

PC

PersoneelsAgent

PersoneelsAgent

Lokaal zoekalgoritme

Page 12: 5 de  DINGO  Gebruikerscommissie

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

Page 13: 5 de  DINGO  Gebruikerscommissie

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

Page 14: 5 de  DINGO  Gebruikerscommissie

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

Page 15: 5 de  DINGO  Gebruikerscommissie

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

Page 16: 5 de  DINGO  Gebruikerscommissie

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

Page 17: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 17

Zoekalgoritme

Nieuwe evaluatiemethode: Nummeringen Beschreven in XML bestand GUI om XML bestand automatisch te genereren

Demo

Page 18: 5 de  DINGO  Gebruikerscommissie

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

Page 19: 5 de  DINGO  Gebruikerscommissie

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

Page 20: 5 de  DINGO  Gebruikerscommissie

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

Page 21: 5 de  DINGO  Gebruikerscommissie

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

Page 22: 5 de  DINGO  Gebruikerscommissie

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

Page 23: 5 de  DINGO  Gebruikerscommissie

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

Page 24: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 24

-2-2002200000000000000

UU002200000000000000

-1-1000000000000000000

Page 25: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 25

*-2-2002200000000000000

UU113311000000000000

00000000000000000000

3311

Page 26: 5 de  DINGO  Gebruikerscommissie

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>…

Page 27: 5 de  DINGO  Gebruikerscommissie

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>

Page 28: 5 de  DINGO  Gebruikerscommissie

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?

Page 29: 5 de  DINGO  Gebruikerscommissie

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.”

Page 30: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 30

XML-RPC

Page 31: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 31

Toegelaten types in XML-RPC

Boolean String Double Date HashTable Vector byte[]

Page 32: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 32

SOAP

Service Requester

Service Provider

HTTP Server

SOAP Dispatc

h

?SOAP request/response messages

Underlying implementation

Page 33: 5 de  DINGO  Gebruikerscommissie

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)

Page 34: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 34

SOAP structuur

SOAP Message

HTTP HEADER

Envelope

Header

Body XML

Page 35: 5 de  DINGO  Gebruikerscommissie

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

Page 36: 5 de  DINGO  Gebruikerscommissie

Case Study

DistriMedia

Page 37: 5 de  DINGO  Gebruikerscommissie

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

Page 38: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 38

Kwalificatiematrix

Ontvangst

Opzet

Retour

Eindstation

Wikkel

Magazijn

Boodschappen

Inpakken

Administratie

Page 39: 5 de  DINGO  Gebruikerscommissie

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

Page 40: 5 de  DINGO  Gebruikerscommissie

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)

Page 41: 5 de  DINGO  Gebruikerscommissie

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

Page 42: 5 de  DINGO  Gebruikerscommissie

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 - - - - -

Page 43: 5 de  DINGO  Gebruikerscommissie

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

Page 44: 5 de  DINGO  Gebruikerscommissie

Vakgroep IT KaHo Sint-Lieven 44

Toekomst

Testen op: Langere planningsperiode, Meer personeel Andere soorten bedrijven Andere onderhandelingsmechanismes

Initiële toekenning automatiseren

Page 45: 5 de  DINGO  Gebruikerscommissie

Discussie