LINKÖPINGS UNIVERSITET, IDA Multiagentsystem Camilla Niklasson 10/3/2010
Inledning Världen är föränderlig och människor i vår värld har olika mål och tillvägagångssätt för att nå sina mål. Människan måste anpassa efter sin omgivning för att kunna verka i den på ett intelligent sätt. Detsamma gäller för artificiell intelligens. Distribuerad artificiell intelligens (DAI) är en relativt ny gren inom AI som vars mål är att skapa intelligenta system som klara av en föränderlig verklighet, som kan agera i verkliga komplexa system. Multiagenta system är en typ av DAI som är ett system med flera agenter som interagerat med varandra och sin dynamiska omgivning. Multiagenta system används i industrier i stor utsträckning idag och har många olika användningsområden till exempel i kontrollsystem för tågsignaler. 2
Innehållsförteckning Innehållsförteckning Inledning... 2 Distribuerad artificiell intelligens och multiagentsystem... 4 Distribuerad artificiell intelligens... 4 Multiagentsystem... 4 Användningsområden... 5 Koordinering i MAS... 5 Multiagent kontrollsystem för järnvägssingalering... 7 MAS arkitektur... 7 Agenterna... 7 Implementering... 8 Köra systemet... 9 Diskussion... 10 Referenser... 11 3
Distribuerad artificiell intelligens och multiagentsystem Distribuerad artificiell intelligens Distribuerad artificiell intelligens (DAI) är en relativt ny gren inom AI vars mål är att skapa intelligenta system som klarar av en föränderlig verklighet och kan agera i verkliga, komplexa system. Det mesta inom AI har handlat om att bygga rationella agenter som handlar i en statisk fiktiv värld. Med DAI kan verkligheten komma in i AIn på ett sätt som tidigare inte varit möjligt. DAI är inriktat på system som består av många intelligenta agenter inom en domän som interagerar med varandra, sin omgivning och jobbar mot samma mål (Stone, Veloso). Det största projektet hittills inom DAI är Architecture for Cooperative Heterogeneous ON-line systems ( ARCHON) som utvecklades för att kontrollera distrubtion och transport av elektricitet till industrier och andra storkunder. Inom DAI finns två huvudområden (Briola et Al., 2008). Distribuerad problemlösning och det som jag valt att skriva om: multiagentsystem (MAS) (Stone, Veloso). Multiagentsystem Ett multiagentsystem (MAS) består av ett antal agenter som kan interagera med sin omgivning och varandra och jobbar mot ett övergripande mål. En agent är ett datorprogram som på något sätt agerar i en domän. Luck et Al. (2005) definierar en agent som a computer program capable of flexible and autonomous action in a dynamic environment, usually an environment containing other agents. Agenter kan modifiera sig själva och sin omgivning. De flesta MAS är uppbyggda med liknande egenskaper till exempel att: Varje agent besitter viss men aldrig all information som finns i domänen. Det finns ingen centralt styrande kontroll. All data är decentraliserad. Beräkningar sker på olika håll vid olika tidpunkter. Systemet består av autonoma distribuerade agenter. Agenterna är samarbetande eller har ett eget intresse. (Ligtenberg, 2006) I MAS är miljön alltid dynamisk utifrån varje enskild agents syn det finns fler agenter som kan påverka världen. Informationen som det MAS har är distribuerad mellan agenterna och det på grund av att informationen inte är tillgänglig för alla. Världen är alltså bara delvis observerbar för varje enskild agent. Även kontrollen i ett MAS är distribuerad. Det finns ingen central agent som samlar in information från alla agenter och sedan tar beslut ifrån vad den vet (Vlassis, 2003). 4
I en icke observerbar värld måste agenten hela tiden fundera över vad den vet, vad den inte vet och vad de andra vet för att fatta beslut om hur den ska handla. Ju mer en agent vet om världen desto bättre beslut kan den ta. I ett multiagentsystem måste därför en agent ta med andra agenters kunskaper med i sin beräkning. Den måste också fundera på vad de andra vet om honom och vad de vet om hans kunskaper (Tomlin et Al., 1998). Användningsområden MAS används inom många områden idag och har potential för många fler. Inom programvaruutveckling ger MAS-teknik många fördelar. Genom att beräkningar kan ske på olika håll och inte behöver ske samtidigt blir systemet snabbare och effektivare. Systemen blir robusta och pålitliga eftersom allt inte hänger på en enskild agents utförande. Systemen blir också flexibla i och med att man lätt kan sätta dit nya och ta bort agenter eller förändra agenters egenskaper utan att hela systemet påverkas. Ett MAS kan jämföras med ett stort komplext program som kan ses som en samling mindre program som enskilt har en funktionalitet och som tillsammans bildar en större helhet. Internet är ett exempel där MAS teknik passar bra eftersom det är i ständig förändring (Vlasis,2003). MAS kan på olika sätt koordinera händelser så att de blir effektiva eller säkra. De användas som hjälpmedel i trafiksystem då agenter befinner sig på olika ställen och får geografisk information och kan koordinera handlingar för att optimera systemet. De kan används inom samhällsvetenskap för att simulera interaktion och andra social fenomen. MAS används för att utveckla agenterna i robotfotboll, autonoma agenter som spelar i lag mot ett annat lag. Robotfotboll är förutom en tävling också en plattform att testa MAS-algoritmer i en miljö som är lik en verklig värld där de andra agenternas beteende är svåra att förutsäga och omgivningen är under ständig förändring (Vlasis,2003). Air Traffic Management (ATM) ser en möjlig framtid då flygplan ska få flyg fritt och själva välja vart och hur de flyger för att optimera rutter, höjder och hastigheter. Eftersom flygtrafiken ökar kan inte trafikledningen handskas med så många plan i luften samtidigt. Ett automatiserat säkerhetskontrollsystem skulle förbättra möjligheterna avsevärt. Ett distribuerat kontrollsystem måste då finnas för att eliminera kurskonflikter emellan planen (Tomlin et Al., 1998). Koordinering i M AS Beslutsfattande i ett multiagentsystem är distribuerat. Det finns ingen central agent som får information från varje agent och sedan beslutar hur varje enskild agent ska handla utan varje a gent handlar efter eget beslut och tar således ansvar för dem. Fördelar med detta decentraliserade system jämfört med ett centraliserat är att beräkningar kan ske vid olika tidpunkter vilket gör systemet mer 5
effektivt. Dessutom är det robustare genom att funktionaliteten i systemet inte hänger på en enskild agent eftersom beslut tas av flera agenter. För att varje enskild agents beslut ska vara fördelaktigt för hela gruppen måste deras handlingar koordineras. Koordinering behövs när en grupp samverkande agenter utarbetar en plan mot samma mål. Koordineringen försäkrar att agenternas handlande inte hindrar varandra och att handlingarna bidrar med steg mot det gemensamma målet. Ett exemplet på detta är robotfotboll där ett lag försöker lägga mål mot ett annat lag. Koordinationen i det fallet kan handla om att två agenter från samma lag inte försöker skjuta på bollen samtidigt. Det finns ingen agent som säger om en agent ska skjuta eller inte, det är varje enskild agent som bestämmer själv (Vlassis, 2003). För att agenterna i ett system ska kunna handla på ett distribuerat sätt måste en strategi för koordineringen utvecklas. En social konvention sätter upp restriktioner på möjliga handlingar, med andra ord sociala regler som hänvisar vilka handlingar som är okej i en viss situation. Konventionen är allmänkunskap hos agenterna och ingen agent har någon fördel av att inte följa den. Boutilier (1996) har föreslagit en generell konvention som koordinerar ett system. Konventionen innehåller ett unikt schema över ordningen på gemensamma handlingar, vilket är allmän kunskap bland agenterna. For each agent i in parallel Compute all equilibria of the game. Order these equilibria based on a unique ordering scheme. Select the rst equilibrium a = (a i; ai ) in the ordered list. Choose action a i. End (Vlassis, 2003) 6
Multiagent kontrollsystem för järnvägssingalering Här kommer en beskrivning av enprotyp för ett kontrollsystem för den italienska järnvägen utformat av datavetenskapliga institutionen på Genoa Universitet och Ansaldo Segnalamento Ferroviario. Projektet blev klart i september 2008 och är ett MAS som kontrollerar processer som styr tågsignalerna, upptäcker avvikelser och rapporterar om det finns något problem till ett assistanscenter (Briola et al., (2008). M AS arkitektur Det MAS består av fyra sorters agenter; Log Reader Agents (LRA), Process Monitoring Agents (PMA), Computer Monitoring Agents (CMA) och Plant Monitoring Agents (PlaMA). Dessa är hierarkiskt ordnade så att LRA interagerar med PMA som i sin tur interagerar med CMA som interagerar med PlaMA. Agenterna LRA är de enda agenterna i systemet som tar in information från omgivningen. Det finns en LRA för varje process som behöver kontrolleras och det kan vara flera LRA som körs på samma dator om det krävs. Den process som kontrolleras producerar logfiler som den LRA som kontrollerar den regelbundet läser av. LRA extraherar informationen från logfilerna och transformerar den till symboliska representationer i ett format som är tillgänglig för logikbaserat resonemang. Representationerna skicka sedan till den PMA som ansvarar för process P. Ett exempel på ett meddelande kan se ut så här: log(time( Mon Feb 11 21:30:43 CET 2008 ), [view(normal), cpu_usage(normal), connection_to_server(active), disk_usage(normal), answer_to_life(slow), errors(absent), memory_usage(normal)]). PMA är den agent som kan stänga av eller sätta på processen den kontrollerar. Den får information om process P från LRA och tittar därefter om det finns anomalier i Ps funktion vilket den rapporterar till CMA samt begär mer information. Om det behövs stänger den av och startar om process P. CMA får alla meddelanden från de PMAs som körs på den datorn. CMA kontrollerar även nätverksanslutning, CPU-, minnes- och hårddiskanvändning. PMA-meddelandena tillsammans med kontrolluppgifterna gör det möjligt för CMA att sätta upp hypoteser om datorns funktionalitet. Om det är nödvändigt för att agera konsekvent och få en bild över situationen i sin helhet kan CMA 7
fråga PlaMA om mer information. PlaMA är den agent som tar emot meddelanden från alla CMAs i respektive enhet. Det finns en PlaMA per enhet och det är också PlaMA som tar emot alarm från SCCThe Command and Control System for Railway Circulation Assitance Center och interagerar med miljön genom att alarmera assistant centret på plats. Figur 1. MAS arkitektur Implementering Agenterna är Jade agenter men för att kunna handskas med kommunikationen som ska gå från en specifik sändare till en specifik mottagare har alla agenter, utom LRA agenten, istället implementerats i TuProlog som är en utökad version utvecklad på Bolognas Universitet som gör att agenterna blir selektiva och bara tar emot meddelanden som följer ett visst mönster och från en viss sändare. CMA, PMA och PlaMA liknar varandra genom att de har ett cyklisk observe-think-act beteende då de först kollar om ett meddelande matchar en given mall, lägger in meddelandet i sin historik, behandlar meddelandet utifrån givna regler i programmet och utifrån deras kunskapsbas och till sist svarar agenten som skickade meddelandet och om det behövs skickar meddelanden till andra agenter i MAS. Agenterna är utrustade med olika regler för att behandla olika parametrar som ska kontrolleras. En agents tillstånd (state) består av fakta om vad som hänt tidigare, de olika agenterna sparar olika 8
information. PMA sparar information om vad för problem som funnits var och när. CMA sparar information om alla problem dess PMAs haft och vilken åtgärd som utfördes, till exempel om en process stängdes av och i så fall varför. PlaMA har översikt över hela nätverket och sparar därför ingenting specifikt för en viss händelse utan sparar information om problem generellt i nätverkets. Alla agenter sparar en meddelandehistorik i sin kunskapsbas för att se om ett meddelande upprepar sig is fall kunna åtgärda på ett annat sätt (Briola et al., 2008). Köra systemet För att kunna köra kontrollsystemet måste Jade och tuprolog installeras på alla maskiner. Figur 2 beskriver hur ett meddelande angående att kontakten med servern är förlorad kan se ut. Figur 2. Systemet körs PMA1får ett meddelande från LRA som lyder connection_to_server(lost). PMA1 frågar CMA om mer information. CMA har inget noterat kring problemet från andra PMAs och svarar därför no_network_problem. PMA1 stänger av och sätter igång processen och informerar det till CMA. Senare får PMA2 ett likadant meddelande från LRA och, liksom PMA1, frågar CMA om mer information. CMA registrerade problemet som PMA1 rapporterade och behöver nu verifiera om det handlar om ett lokalt problem eller om det är problem i hela nätverket. CMA frågar PlaMA om information. PlaMA har inte problemet i sin historik och ger tillbaka no_network_problem. CMA vidarebefordrar det till PMA2 som stänger av och startar om processen samt informerar CMA om det (Briola et al., 2008). 9
Figur 2. Systemet körs forts Om exemplet utökas vidare med en ytterliggare CMA och två ytterliggare PMA skulle scenariot kunna fortsätta genom att PMA3 får samma meddelande om problemet connection_to_server(lost) så upprepar den vad som hände tidigare i förra exemplet dvs meddelar CMA2 som svarar PMA3, utan att fråga PlaMA, att det inte är några problem med nätverket. Om nu PMA4 får meddelande om nätverksproblem kommer CMA2 fråga PlaMA och PlaMAs historik innehåller samma problem. PlaMA skickar medelandet network_problem tillbaka till CMA2 som skickar vidare till PMA4 som inte kommer stänga av processen eftersom det inte är ett problem som kan lösas lokalt (Briola et al., 2008). Diskussion Multiagenta system tycker jag verkar ha potential att kunna användas och utvecklas inom många områden. Det som jag ser som mest positivt är dess flexibilitet. Ett system kan utvecklas till flera olika system genom anpassning av agenter som inte påverkar hela systemet. Det går att utveckla ett MAS som kan appliceras i olika domäner. Det är ett praktiskt system som kan anpassas efter framtida utveckling. 10
Referenser Briola, B., Mascardi, V., Martelli, M., Arecco, G., Caccia, R., Milani, C. (2008) A Prolog-Based MAS for Railway Signalling Monitoring: Implementation and Experiments, DISI, Universit`a degli Studi di Genova, Genova, Italy Flyman, S. (2001) Integration av artificiella agenter i mänskliga organisationer en teoretisk analys av de hybrida systemens problematik, Lunds Universitet Ligtenberg, Arend (2006), Exploring the use of Multi-Agent Systems for Interactive Multi-Actor Spatial Planning, Wageningen University Stone, P.,Veloso, M., "Multiagent Systems: A Survey from a Machine Learning Perspective"., Computer Science Department, Carnegie Mellon University Vlassis, Nikos, (2003) A Concise Introduction to Multiagent Systems and Distributed AI, Intelligent Autonomous Systems, Informatics Institute, University of Amsterdam M. Luck, P. McBurney, O. Shehory, S. Willmott, and the AgentLink Community, 2005, Agent Technology: Computing as Interaction A Roadmap for Agent-Based Computing, AgentLink III Tomlin, C., Pappas, G.J., Sastry, S., (1998)Conflict Resolution for Air Traffic Management: A Study in Multiagent Hybrid Systems, IEEE TRANSACTIONS ON AUTOMATIC CONTROL, VOL. 43, NO. 4 11