Dingo1 4 de DINGO Gebruikerscommissie 2 december 2004 KaHo Sint-Lieven Gent
Dingo2 Agenda Welkom Voorstelling Hobu/Tetra fonds Status Bespreking vorderingen Discussie
Dingo3 Status van het project
Dingo4 Periode tot WP 4: testen van algoritmen WP 6: agententechnologie WP 7: onderhandelingsmodel
Dingo5 Mijlpalen Vroeger al gerealiseerd: Mijlpaal 1: rapport personeelsplanning Mijlpaal 2: rapport gedistribueerde planning Mijlpaal 4: model personeelsplanning Mijlpaal 3: Rapport agenten en onderhandeling Beschikbaar op de DINGO website
Dingo6
7 Bespreking
Dingo8 Overzicht Agenten Onderhandeling tussen agenten Jade agentenplatform Onderhandelingsmechanisme voor gedistribueerde personeelsplanning
Dingo9 Agenten Voorbeelden Definities MAS (Multi-Agent Systems)
Dingo10 depot Mobiele verpleegsters
Dingo11 Voorbeelden Routeplanning mbv agenten: Mobiele verpleegsters rijden van patiënt naar patiënt Sommige patiënten moeten bepaalde tijdsvensters bezocht worden Kunnen maar een vast aantal uren werken Willen in thuis lunchen, vinden bepaalde patiënten niet zo tof,… Procedure: dispatching berekent de dagroutes Proberen de reistijd te minimaliseren en de werkbelasting evenwichtig over de routes te verdelen Verpleegsters worden volgens bepaalde criteria aan routes toegekend Verpleegster kunnen over hun routes onderhandelen en onderling verwisselen
Dingo12 Voorbeelden Agenten? Agenten representeren de verpleegsters in de onderhandeling Gebruiken een sympathiemaat die een afspiegeling zijn van de relaties tussen de verpleegsters Sympathie brengt geheugen in het systeem
Dingo13 TeleTruck (Deutsche Forschungszentrum für Künstliche Intelligenz) Gebruik van agenten op 2 niveaus in transportplanning 1. Afsluiten van contracten tussen 2 firma’s 2. Efficiënt plannen van het transport In TeleTruck vooral focus op 2 de deel Vrachtwagens bestaan uit een chauffeur, een oplegger en een trekker Deze 3 ingrediënten kunnen op verschillende plaatsen zijn, maar moeten samengebracht worden om een job te kunnen uitvoeren TeleTruck gebruikt een biedschema gebaseerd op contract net protocol (CNP)
Dingo14 Persoonlijke assistent Persoonlijke assistent is een software agent die acties volgt en probeert te helpen Het kan je surfgedrag volgen en zelf beslissen om bepaalde pagina’s op voorhand down te loaden Het kan meelezen over je schouder en probeert gelijkaardig documenten op je harde schijf te zoeken Het kan een helpende paperclip zijn Het kan zelf links op een website die je aan het lezen bent volgen en je aandacht vestigen op andere interessante gelijkaardige artikels
Dingo15 Persoonlijke assistent Zo’n agent moet zeker volgende eigenschappen hebben: Autonoom handelen In staat om te leren Profiel van de gebruiker opbouwen AI technieken gebruiken bij het leren Data mining kan patronen in het gedrag van de gebruiker onthullen
Dingo16 Intelligent Room Project (MIT) Kamer gedraagt zich als een persoon Redeneert over wat er zich in de kamer afspeelt Probeert te anticiperen Veel input via sensoren Enorme rekenkracht nodig!
Dingo17 Definities AIMA (Artificial Intelligence: a Modern Approach, Russell and Norvig 1995) Pattie Maes KidSim Wooldridge & Jennings
Dingo18 AIMA “An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through effectors” (Russell and Norvig, 1995)
Dingo19 Pattie Maes “Software agents differ from conventional software in that they are long-lived, semi- autonomous, proactive, and adaptive” (
Dingo20 KidSim “Let us define an agent as a persistent software entity dedicated to a specific purpose. "Persistent" distinguishes agents from subroutines; agents have their own ideas about how to accomplish tasks, their own agendas. "Specific purpose" distinguishes them from entire multifunction applications; agents are typically much smaller.” SimCACM.html SimCACM.html
Dingo21 Wooldridge & Jennings “Perhaps the most general way in which the term agent is used is to denote a hardware or (more usually) software-based computer system that enjoys the following properties: Autonomy, social ability, reactivity, pro-activeness”
Dingo22 Eigenschappen Reactief Reageren op externe asynchrone stimuli Autonoom Controleert eigen acties Goal Directed Neemt initiatieven om doel te bereiken Persistent “Is ‘living’, not ‘running’ ” Communicatief Met andere agenten en mensen Lerend Adaptief vermogen gebaseerd op ervaring Mobiel Beweegt tussen machines in het netwerk
Dingo23 Multi Agenten Systemen (MAS) Multi-agentensystemen definiëren samenwerkende agenten voor taken die een individuele agent niet alleen kan Intelligentie vloeit hier op natuurlijke wijze uit voort
Dingo24 MAS Onderzoeksaspecten Aggregatie, Communicatie, Coördinatie, Collaboratie, Onderhandeling Helpende agenten (Middle agents) Facilitator, Mediator, Broker, Matchmaker, Blackboard Agenteninteractie Taal, Formaat, Ontologie
Dingo25 Waarop toepassen? User interface Persoonlijke vertegenwoordiger voor de gebruiker, Gedistribueerde systemen Asynchroon, autonoom, onbetrouwbare communicatie Algoritmisch paradigma Bijv: optimalisatieproblemen, agenten bevatten aparte strategieën E.g. warmte distributie in een schijf
Dingo26 Waarop toepassen? Software engineering Agenten abstraheren communicatie, controle, nemen van beslissingen, autonomie, persistentie Dwingen encapsulatie af, modulariteit, herbruikbaarheid, gelijktijdig, gedistribueerde uitvoering
Dingo27 Coördinatietechnieken tussen agenten Organisational structuring Gebruik maken van a-priori structuur Master-slave door dispatching model Master-slave met een blackboard Sterk gecontroleerd, lagere autonomie Kan snelheid verminderen, betrouwbaarheid, robuustheid, ‘graceful decay’, bottleneck, gelijktijdigheid Blackboard is een potentiële bottleneck
Dingo28 Master-slave modellen (Dispatching) Master Slave Blackboard Post Read
Dingo29 Contracting Twee uitwisselbare rollen: Manager definieert deelproblemen & coördineert het gehele probleem Aannemer voert de deeltaak uit (eventueel m.b.v. onderaannemers) Biedproces om een oplossing te vinden Taak aankondigen (manager) Taak evalueren (aannemers) Voorstel (aannemers) Evaluatie van voorstel en toekenning (manager) Coördinatie en evaluatie van het geheel (manager)
Dingo30 CNP manager Aankondigen van een taak aannemers manager Indienen van een bod aannemers manager aannemers Contract toekennen
Dingo31 Contract Net Protocol (CNP) Voordelen Dynamische taaktoekenning om tot betere contracten te komen Agentenpopulatie is dynamisch Load balancing vloeit natuurlijk voort uit het bieden Hoge fouttolerantie Beperkingen Geen conflictoplossing Verondersteld passieve, genereuze, eerlijke agenten Communicatie-intensief, hoge netwerk load
Dingo32 Andere manieren om tot een overeenkomst te komen Veilingen: Tussen veilingmeester en bieders Doel: resource toekennen aan 1 van de bieders Veilingmeester: prijs maximaliseren Ontwerpen van een gepast veilingmechanisme Bieders: prijs minimaliseren Strategieën toepassen binnen de gestelde beperkingen, maar die resulteren in een optimaal resultaat
Dingo33 Soorten veilingen Engels: first-price, open cry, ascending Hollands: first-price, open cry, descending First-price, sealed bid, one shot Vickrey: second-price, sealed bid, one-shot
Dingo34 Onderhandeling Veilingen: enkel interessant bij allocatie van goederen Bij bereiken van overeenkomsten: onderhandelingen Onderhandelingstechnieken: onderhandelingsverzameling: verzameling van alle mogelijke voorstellen die een agent kan doen Protocol: legale voorstellen in functie van de voorgeschiedenis Verzameling strategieën: bepalen welke voorstellen agenten zullen doen. Een strategie van een agent is meestal privé Regel: die bepaalt wanneer een deal voldaan is
Dingo35 Onderhandeling Onderhandeling: verschillende rondes, in elke ronde een voorstel van een agent, voorstellen zijn bepaald door strategie, Voorstellen komen uit de onderhandelingsverzameling Zijn legaal volgens het vooropgestelde protocol Als overeenkomst bereikt wordt (volgens de regels), eindigt de onderhandeling
Dingo36 Task-oriented vs worth-oriented Rosenschein en Zlotkin (1994) onderscheiden 2 belangrijke types onderhandelingsdomeinen: Task-oriented: taken = expliciet gedefinieerd Elke agent krijgt een verzameling taken om uit te voeren + bijbehorende kost. Doel: minimaliseren van totale kost. Worth-oriented: Algemener Doelstellingen van agent = bepaald door definiëren van een waardefunctie voor mogelijke toestanden van omgeving. Agent moet omgeving in toestand met hoogste waarde brengen Hoe? Onderhandelen met andere agenten over ‘joint plans’ Joint plan? Het uitvoeren ervan vereist verschillende agenten Deze joint plans brengen een omgeving van de ene toestand naar de andere Onderhandelen over distributie van taken over agenten versus onderhandelen over een collectie van joint plans
Dingo37 Standaarden: FIPA Foundation for Intelligent Physical Agents ( Agent management Agent User Interface API FIPA ACL FIPA Agent-software FIPA UI FIPA User
Dingo38 FIPA ACL (ask-if :sender I :receiver J :content (=(weer Belgium (November 2004)) cold) :ontology meteorology :reply-with query-17) (inform :sender J :receiver I :content true :in-reply-to query-17)
Dingo39 Fipa CNP
Dingo40 Agent Platform FIPA Agent Management Internal Message Transport Agent Communication Channel Directory Facilitator Agent Management System Software
Dingo41 Jade agentenplatform
Dingo42 Jade agentenplatform Main container: De AMS (Agent Management System): naming service. Verantwoordelijk voor unieke naam van agent in het platform Creëren en verwijderen van agenten op remote containers De DF (Directory Facilitator) soort gouden gids
Dingo43 Behaviours Eigenlijk taak van een agent Soorten behaviours: One shot Cyclic Simple Composite FSM …
Dingo44
Dingo45 Demo MP3 agent
Dingo46 Onderhandelingsmechanisme voor gedistribueerde personeelsplanning Uiteindelijk gekozen voor CNP (eigenlijk 3 X CNP) Enkel uitwisselen van personeel, er moet niet tot overeenkomst gekomen worden Jade: reeds voorzieningen voor CNP (Initiator & Responder) Alhoewel: Uiteindelijk toch nog veel programmeren en niet zo evident!
Dingo47 Onderhandelingsmechanisme voor gedistribueerde personeelsplanning 3 soorten agenten OmbudsAgent DepartementsAgent PersoneelsAgent
Dingo48 OmbudsAgent DepartementsAgent i CFP Elk stuurt duurste kost + tijdstip. Resultaat van lokaal zoek- algoritme (Kost, 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 departementsrooster voor die shift aan. CNP CFP (Kost, T) i Enkel de agenten die aanpassingen hebben gedaan sturen hun kost terug CNP PersoneelsAgent j Doorgeven van werkschema aan initieel toegewezen personeel CFP: Qmax, Tmax 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 Kost i ACCEPT PROPOSAL REJECT PROPOSAL CFP: Q max, T max CNP Als Kost i < drempel- waarde, dan wordt de verandering aan- vaard Anders niet Stuur de agenten die aanpassingen hebben gedaan een nieuwe CFP
Dingo49 OmbudsAgentDepartementsAgent i CFP Elk stuurt duurste kost + tijdstip. Resultaat van lokaal zoek- algoritme (Kost, T) i ACCEPT PROPOSAL REJECT PROPOSAL CNP PersoneelsAgent j Doorgeven van werkschema aan initieel toegewezen personeel Neem de hoogste kost Stuur de anderen een REJECT OA stuurt CFP naar alle DA Elke DA: start lokaal tabu search algoritme Elke PA (die tot departement behoren) krijgt van DA initieel werkschema toegewezen Elke DA stuurt hoogste kost + nodige kwalificatie en tijdstip OA: neemt hoogste kost
Dingo50 Evalueren elk de voorgestelde wijziging en genereren bijhorende kost De betrokken Departe- mentsAgenten wisselen personeel uit en passen het departementsrooster voor die shift aan. CFP (Kost, T) i Enkel de agenten die aanpassingen hebben gedaan sturen hun kost terug CFP: Qmax, Tmax Kost ACCEPT PROPOSAL Elke betrokken agent evalueert zijn eigen beper- kingen en gene- reert een kost REJECT PROPOSAL Kost i ACCEPT PROPOSAL REJECT PROPOSAL CFP: Q max, T max Als Kost i < drempel- waarde, dan wordt de verandering aan- vaard Anders niet Stuur de agenten die aanpassingen hebben gedaan een nieuwe CFP CNP OmbudsAgentDepartementsAgent i PersoneelsAgent j
Dingo51 Onderhandelingsmodel OA stuurt vraag naar alle DA met daarin shift en kwalificatie Gevraagde wijziging wordt geëvalueerd door DA én PA PA evalueert persoonlijke beperkingen + genereert extra kost bij verandering van departement DA genereert kost bij undercoverage DA stuurt laagste kost door Uit alle ontvangen kosten kiest OA de laagste kost Verandering wordt doorgevoerd: DA past zijn werknemers aan Gekozen PA past plaats van tewerkstelling aan Alles herbegint!
Dingo52 Onderhandelingsmechanisme voor gedistribueerde personeelsplanning Merk op: Er is geen onderscheid tussen departementen, kwalificaties en taken Geen gebruik van personeelsagenten tijdens tabu search Communicatie tussen agenten zou te veel vertraging opleveren Personeelsagenten worden pas na tabu search gecreëerd Indien veel personeel: eventueel opteren om personeelsagenten pas creëren wanneer ze nodig zijn Jade heeft problemen met veel agenten
Dingo53 Demonstratie Dep 1 CM (Dep 1) Dep 2 CV (Dep 1, Dep 2, Dep 3) EL (Dep 2) Dep 3 EV (Dep 1, Dep 3) FV (Dep 1, Dep, 2, Dep, 3) IM (Dep 2, Dep 3)
Dingo54 Toekomst Agenten communiceren via boodschappen (FIPA!) In Jade: mogelijkheid om via objecten te communiceren Onze huidige implementatie gebruikt objecten Uiteindelijk de bedoeling om echte boodschappen uit te wisselen Ontologie maken Testen op reële data Koen werkt verder aan GUI!
Dingo55 Vervolg project Testen van algoritmen op praktische problemen Verdere uitwerking en implementatie van het agentenmodel
Dingo56 Discussie