1 / 45

5 de DINGO Gebruikerscommissie

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

duscha
Télécharger la présentation

5 de DINGO Gebruikerscommissie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5de DINGO Gebruikerscommissie Beheerraadzaal @ KaHo Sint-Lieven Gent http://ingenieur.kahosl.be/projecten/dingo

  2. 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. 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. 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 Mozart/Oz DepartementsAgent DepartementsAgent DepartementsAgent DepartementsAgent XML-RPC Java Webservice Webservice Webservice Webservice Vakgroep IT KaHo Sint-Lieven Lokaal zoekalgoritme

  11. Architectuur (2) DepartementsAgent Mozart/Oz PersoneelsAgent PersoneelsAgent XML-RPC Java Webservice Webservice Webservice Webservice Vakgroep IT KaHo Sint-Lieven Lokaal zoekalgoritme

  12. Taak 1 Tabu Search Taak 2 Tabu Search Taak 3 Tabu Search Eerste Oplossing Eerste Oplossing Eerste Oplossing Initiële toekenning van personeel 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 CNP Stuur de anderen een REJECT 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. 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. N1 N2 N3 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 Vakgroep IT KaHo Sint-Lieven

  19. 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. 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. Startvoorwaarden Vakgroep IT KaHo Sint-Lieven

  22. 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. 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. -1 U -2 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Vakgroep IT KaHo Sint-Lieven

  25. * -2 0 U 0 1 0 3 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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) <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>… … <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 Provider Service Requester HTTP Server SOAP Dispatch ? 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 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. 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 Eindstation Wikkel Magazijn Retour Administratie Inpakken Vakgroep IT KaHo Sint-Lieven Boodschappen

  39. 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. Resultaat 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 Vakgroep IT KaHo Sint-Lieven

  45. Discussie

More Related