smac - irit – ups sylvain rougemaille , toulousejean-paul arcangeli,
DESCRIPTION
ADELFE Design, AMAS-ML in Action A Case Study. SMAC - IRIT – UPS Sylvain Rougemaille , TOULOUSEJean-Paul Arcangeli, FRANCE Marie-Pierre Gleizes, Frédéric Migeon. 1. Case Study: Foraging Ant. Simple but illustrative example - PowerPoint PPT PresentationTRANSCRIPT
September 2008 ESAW 08 1
SMAC - IRIT – UPS Sylvain Rougemaille, TOULOUSE Jean-Paul Arcangeli,
FRANCE Marie-Pierre Gleizes,Frédéric Migeon
1
ADELFE Design, AMAS-ML in Action
A Case Study
September 2008, 24-26th ESAW 08 2
Case Study: Foraging AntSimple but illustrative exampleAlready developed in our team [Topin 99]
Adaptive MAS approach adequacyBehaviours entirely specified
Focus on modelling language and transformations
Environment:Nest, Obstacles, Ants, Food, Pheromone
Goal: foraging !
September 2008, 24-26th ESAW 08 3
ResultsSimulation tool
3 man/dayBehavior rules
0,5 man/dayFunctional Details
Speed modulationFood editingAnts managingZooming
September 2008, 24-26th ESAW 08 4
OutlineProblematicsAdaptive Multi-Agent SystemsFlexible Agent modelADELFE MethodologyModel Driven EngineeringModel Driven ADELFEConclusion and Future Works
September 2008, 24-26th ESAW 08 6
ProblematicsAdaptive Multi-Agent Systems
Self-organising systemsSupport system functional adaptation
Flexible Agent model Agent operating mechanisms adaptation
Proposition: Combine AMAS and Flexible agent in the design of complex systems
Aim:Benefit from both levels and both concerns of adaptation
September 2008, 24-26th ESAW 08 7
Principles : Global function realized = result of the organizational process between
agents Change the organization: change the global function
To change the organization: self-organization by cooperation
Agents are in a cooperative state = functional adequacy is reached
Agents have to be cooperative
But there are unwanted situations: Non Cooperative Situations No NCS detected nominal behaviour is performed (local function) NC state (exception or anticipation) cooperation failure recovering
AMAS (Adaptive Multi-Agent Systems)
September 2008, 24-26th ESAW 08 8
(Domain Specific) Modelling Language
September 2008, 24-26th ESAW 08 9
ModularityAgent defined as micro-component assembly
Re-usabilityMicro-components constitute reusable units
Mediator design patternThe mediator gathers services from micro-components
Separation between:Operating mechanismsAgent behaviour
DelegationMediator delegates operating services to behaviour component
Flexible Agent : Implementation Principles
10
Combining Functional/Operational Adaptation
Functional Adaptation Operational Adaptation
Agent Classical LearningApproaches Flexible Agent
System AMAS approach
different kinds of adaptation, different levels of concerns
Self-adaptation of the system = cooperation of agentsNon Cooperative Situations detectionImplementation with flexible agentAgent oriented specific middleware
11
OutlineProblematicsAdaptive Multi-Agent SystemsFlexible Agent modelADELFE MethodologyModel Driven EngineeringModel Driven ADELFEExperiments AnalysisConclusion and Future Works
September 2008, 24-26th ESAW 08 12
ADELFE MethodologyMain characteristics
Specific agent-based methodology Exploiting the AMAS Principles → cooperation Open systems, adaptive to changes in the environment
For engineers aware of MAS
PrinciplesBased on RUP and standard notations (UML, AUML)Top down approach: Analysis phase - identification of agentsBottom up approach: Design phase – agent design
NeedsPrecise and specific concepts to assist the designer’s task
Specification of cooperation rulesGuidelines for the system implementation
September 2008, 24-26th ESAW 08 13
Model Driven EngineeringAim: ease systems designPromote models as “first class citizen”
Models provide abstractionModels define precise concepts for systems designModels are conform to meta-models (defined with MOF (OMG), Ecore (Eclipse))
Automatic treatmentsMeans to assist designers and developersGather and automate good practices or expertiseSupport by model transformations (transformation languages: ATL†, Kermeta‡)Allow code generation
Domain Specific Modelling LanguageDedicated modelling language (concise and specific)Described by a domain meta-model (close to domain experts needs)
(† http://www.eclipse.org/m2m/atl/)(‡ http://www.kermeta.org/)
September 2008, 24-26th ESAW 08 14
OutlineProblematicsAdaptive Multi-Agent SystemsFlexible Agent modelADELFE MethodologyModel Driven EngineeringModel Driven ADELFE
Domain Specific Modelling LanguageDesign Implementation
Experiments AnalysisConclusion and Future Works
September 2008, 24-26th ESAW 08 15
AMAS-ML : Adaptive Multi-Agent System Modelling LanguageDedicated to the specification of :
System composition (agents, entity) Agent Cooperative properties Agent Cooperative behaviour
µADL : micro-Architecture Description LanguageDedicated to the specification of :
Specific agent middleware Agent operating mechanisms models
Domain Specific Modelling Language
September 2008, 24-26th ESAW 08 16
Model Driven ADELFE (1/2)Design
Enhanced Design PhaseUse of UML 2.0Use of AMAS-ML diagrams to specify :
System / environment composition Cooperative agent structure Cooperative agent behaviour:
Cooperation and nominal rulesUse of model transformations :
Link AMAS-ML to UML 2.0 : Get information from requirements model Express interactions thanks to UML Sequence diagrams
September 2008, 24-26th ESAW 08 17
Model Driven ADELFE (2/2)Implementation
Implementation phaseWanted result: AMAS Implementation using flexible agent
middleware capabilities.Need: to express concerns separation (operational/behavioural)
between AMAS concepts.
Model transformations are used to:Automate the mapping between AMAS-ML and µADL.Generate agent behaviour code.
Make Agent Yourself (MAY) generation tool:Generate specific flexible agent middleware Use µADL model as input
September 2008, 24-26th ESAW 08 18
Transformations Overview
1. AMAS-ML to µADL : ATL Transformation 12 rules, 5 helpers, 380 code lines.Example :-- Transforming AMAS Actuator into homonymic muADL MuComponents.rule Actuators2MuComponent{from actuator : AMAS!Actuator to actuatorCt:muADL!MuComponent( name <- actuator.name, provided <- thisModule.resolveTemp(actuator,'providedActuatorInterface'), privateServices <- actuator.actions->collect(act|thisModule.resolveTemp(act,'service')) ), providedActuatorInterface:muADL!Interface( name <- actuator.name+'I' )}
1. AMAS-ML to µADL : ATL Transformation 12 rules, 5 helpers, 380 code lines.Example :-- Transforming AMAS Actuator into homonymic muADL MuComponents.rule Actuators2MuComponent{from actuator : AMAS!Actuator to actuatorCt:muADL!MuComponent( name <- actuator.name, provided <- thisModule.resolveTemp(actuator,'providedActuatorInterface'), privateServices <- actuator.actions->collect(act|thisModule.resolveTemp(act,'service')) ), providedActuatorInterface:muADL!Interface( name <- actuator.name+'I' )}
2. AMAS-ML to Java : ATL Transformation 2 queries, 10 helpers, 130 code lines.Example :-- Transforming AMAS Actuator into homonymic muADL MuComponents.helper context AMAS!Ruledef : generateIfThenElse(): String ='\t/**\n\t* Generated '+if self.oclIsTypeOf(AMAS!CooperativeRule) then 'cooperative rule : '+self.name+' handles '+self.handledNCSName()+ ' situation :\n\t* '+self.description else 'standard rule : ' + self.name endif+' \n\t*/\n'+'\tif ('+ self.trigger.condition.generateCondition()+'){\n'+self.impliedActions->iterate(a; accA: String=''|accA+'\t\t'+a.generateAction()+'\n\t\t}');
2. AMAS-ML to Java : ATL Transformation 2 queries, 10 helpers, 130 code lines.Example :-- Transforming AMAS Actuator into homonymic muADL MuComponents.helper context AMAS!Ruledef : generateIfThenElse(): String ='\t/**\n\t* Generated '+if self.oclIsTypeOf(AMAS!CooperativeRule) then 'cooperative rule : '+self.name+' handles '+self.handledNCSName()+ ' situation :\n\t* '+self.description else 'standard rule : ' + self.name endif+' \n\t*/\n'+'\tif ('+ self.trigger.condition.generateCondition()+'){\n'+self.impliedActions->iterate(a; accA: String=''|accA+'\t\t'+a.generateAction()+'\n\t\t}');
September 2008, 24-26th ESAW 08 19
Developer ConclusionSimple, Efficient, Automated
Prototype in 3 days, Behaviour part 0,5 dayAnt API, 53ko, 17 classes, 9 interfacesEnvironment, 69ko, 29 classesBehaviour and main, 6ko, 2 classes
API DetailsKernel : 4 classes, 1 “markup” interface AgentGenerated micro-components : 1 class per each
September 2008, 24-26th ESAW 08 20
AMAS Designer ConclusionNew version of ADELFE :
Using model driven approach: Specific languages (AMAS-ML, µADL) Model transformations
Automations in the development process :Facilitate phases transition (from analysis to design)Allow to bridge generic (UML) and specific (AMAS-ML) modelling Ease the implementation
Developers focus on application dependent concerns
September 2008, 24-26th ESAW 08 21
Future WorksImprove behavioural design
AMAS-ML type system to specify instance valuesInvestigate template based language to generate codeProvide a fully integrated tool including :
An assistant guiding users all along the processModel validations and simulation
Provide an adaptive methodological frameworkAssist users by proposing adequate method fragments
September 2008 ESAW 08 22
Questions?
September 2008, 24-26th ESAW 08 23
Elsy KaddoumMASC
Trois types d’agents coopératifs• Conteneur
• Opérateur
• Station
ConteneursOpérateurs
September 2008, 24-26th ESAW 08 24
Elsy KaddoumMASC