di ma maude maude di ma toward a formal framework toward
play

DI MA- -Maude: Maude: DI MA Toward a Formal Framework Toward a - PowerPoint PPT Presentation

DI MA- -Maude: Maude: DI MA Toward a Formal Framework Toward a Formal Framework for Specifying and Validating for Specifying and Validating DI MA Agents DI MA Agents Farid Mokhati Farid Mokhati, , Noura Noura Boudiaf Boudiaf Mourad


  1. DI MA- -Maude: Maude: DI MA Toward a Formal Framework Toward a Formal Framework for Specifying and Validating for Specifying and Validating DI MA Agents DI MA Agents Farid Mokhati Farid Mokhati, , Noura Noura Boudiaf Boudiaf Mourad Badri Badri & Linda & Linda Badri Badri Mourad

  2. Outline Outline • Introduction • Introduction • DIMA • DIMA multi multi- -Agents Agents Model Model • Rewriting • Rewriting Logic Logic & & Maude Maude • Translation • Translation Process Process • Example • Example : : Auction Auction • Validation • Validation Process Process • Conclusion & Future • Conclusion & Future Work Work

  3. Introduction Introduction • • MAS Behavior is mostly specified using diagrammatic or MAS Behavior is mostly specified using diagrammatic or semi- -formal methodologies. formal methodologies. semi • • Approaches supporting a partial formalization of multi- - Approaches supporting a partial formalization of multi agents systems. agents systems. • • To reach consistency in their behavior, the MAS need to To reach consistency in their behavior, the MAS need to be clearly specified, validated and correctly be clearly specified, validated and correctly implemented. implemented. • • Selected language : Maude. Selected language : Maude.

  4. DIMA multi multi- -Agents Agents’ ’ Model Model DIMA • DIMA agents • DIMA agents’ ’ model model Data Supervision Control Module Meta-behavior ... Module 1 Module 2 Module n Behaviors DIMA agents’ model • DIMA proposes to decompose an agent in different components. • DIMA proposes to decompose an agent in different components. • Goal : integrating some existing paradigms. • Goal : integrating some existing paradigms. • An agent can have one or several components that can be reactive • An agent can have one or several components that can be reactive or or cognitive. cognitive.

  5. • • An agent is a simple component, or a composite An agent is a simple component, or a composite component. component. Simple component or Composite component perception action Environment DIMA agents’ architecture • • Basic brick = a proactive component Basic brick = a proactive component ProactiveComponent IsAlive() Step() General structure of a proactive component It describes : It describes : - Goal: method - Goal: method IsAlive IsAlive () () . . - Basic behaviors: as methods. Basic behaviors: as methods. - - Meta - Meta- -behavior: method behavior: method Step () Step () . .

  6. ATN- -Based Communicating Agents Based Communicating Agents ATN • • A communicating agent is a proactive agent that A communicating agent is a proactive agent that introduces new functionalities of communication. introduces new functionalities of communication. CommunicationComponent ReceiveMesage() SendMesage() General Structure of a communication component • • Meta- -behavior is described by an ATN. behavior is described by an ATN. Meta - - IsAlive() () tests if the final state is not reached. tests if the final state is not reached. IsAlive - - Step() allows to activate from the current state of an allows to activate from the current state of an Step() agent a transition whose condition is verified. agent a transition whose condition is verified.

  7. Rewriting Logic Logic Rewriting • • Describes a concurrent system (states a concurrent system (states and and transitions). transitions). Describes ∑ , T = ( ∑ Such a system a system is is depicted depicted by a rewriting by a rewriting theory theory T = ( , Such E, L, R). E, L, R). • • Statique structure of system is is described described by by the the Statique structure of system ∑ , signature ( ∑ , E) E) that that presents presents states of a system. states of a system. signature ( • • Dynamique structure of system is is desribed desribed by rewriting by rewriting Dynamique structure of system rules rl rules rl [l] : t [l] : t - -> t > t’ ’ . . These These rules rules represent represent transitions. transitions.

  8. Maude Maude • • Based on rewriting on rewriting logic logic : : expresses the concurrency expresses the concurrency Based and the change of states of the system. and the change of states of the system. • • Large spectre : specification specification, prototypage, etc. , prototypage, etc. Large spectre : • • Multi- -paradigmes paradigmes : :it combines the functional and it combines the functional and Multi oriented- -object programming. object programming. oriented • • Maude Syntax : regroupes Maude Syntax : regroupes three types of modules : three types of modules : - Functional modules. Functional modules. - - System modules. - System modules. - Oriented Oriented- -object modules. object modules. -

  9. Translation process Translation process : Module PROACTIVE-COMPONENT : Import STATE ATN USER- CONDITIONS ATN1 ATN-BASED- ATN-LINK ACTIONS COMMUNICATING- AGENT MESSAGE MAILBOX IDENTIFICATION ACQUAINTANCE- COMMUNICATINGCOMP LIST -ONENT DIMA-Maude frameworks’ architecture.

  10. (fmod STATE is sorts State KindState NameState . ***[1] ops initial final ordinary : -> KindState . ***[2] op AgentState : NameState KindState -> State . ***[3] op IsInitial : State -> Bool . ***[4] op IsOrdinary : State -> Bool . ***[5] op IsFinal : State -> Bool . ***[6] var k : KindState . var ns : NameState . eq IsInitial(AgentState(ns, k)) = if k == initial then true ***[7] else false fi . eq IsOrdinary(AgentState(ns, k)) = if k == ordinary then true ***[8] else false fi . eq IsFinal(AgentState(ns, k)) = if k == final then true ***[9] else false fi . endfm) The functional module STATE . (fmod ACTIONS is sort Action . op NoAction : -> Action . op IsInternalAction : Action -> Bool . (fmod CONDITIONS is op IsSendingAction : Action -> Bool . sorts Condition . op IsReceivingAction : Action -> Bool . op NoCondition : -> Condition . op IsSendingActionToAll : Action -> Bool . endfm) endfm) The functional module CONDITIONS . The functional module ACTIONS .

  11. (fmod ATN is protecting STATE . protecting CONDITIONS . protecting ACTIONS (fmod USER-ATN is op TargetState : State Condition -> State . extending ATN . op AccomplishedAction : State Condition -> Action . ***User part*** endfm) endfm) The functional module USER-ATN . The functional module ATN . (fmod ATN-LINK is protecting USER-ATN . op CorrspondingAgentState : State -> State . op CorrspondingCondition : Action ->Condition . ***User part*** endfm) The functional module ATN-LINK .

  12. (fmod MESSAGE is protecting IDENTIFICATION . protecting ACTIONS . sorts Message Content . (fmod IDENTIFICATION is subsort Action < Content . sorts AgentIdentifier . op _:_:_ : AgentIdentifier Content subsort AgentIdentifier < Oid . AgentIdentifier -> Message . endfm) endfm) The functional module IDENTIFICATION . The functional module MESSAGE . (fmod COMMUNICATION-COMPONENT is protecting ACQUAINTANCE-LIST . (fmod PROACTIVE-COMPONENT is protecting MESSAGE . subsort acquaintance < AgentIdentifier . sort Parameters Void . op IsAlive : Parameters -> Bool . op SendMessage : Message -> Msg . op ReceiveMessage : Message -> Msg . op Step : Parameters -> Void . endfm) endfm) The functional module COMMUNICATION-COMPONENT . The functional module PROACTIVE-COMPONENT .

  13. (omod ATN-BASED-COMMUNICATING-AGENT is protecting PROACTIVE-COMPONENT . protecting ATN-LINK. protecting COMMUNICATION-COMPONENT . protecting MAILBOX . subsort State < Paramaters . class Agent | CurrentState : State, MBox : MailBox, AccList : acquaintanceList . *** [1] Msg Event : AgentIdentifier State Condition -> Msg . *** [2] Msg Execute : Action -> Msg . *** [3] Msg GetEvent : AgentIdentifier State Condition -> Msg . *** [4] eq IsAlive (AgentState(NS, KS)) = IsFinal(AgentState(NS, KS)) . *** [5] *******************************************First case******************************************************** crl [StepCaser1] : Event(A, S, Cond) < A : Agent | CurrentState : S, MBox : MB, AccList : ACL > => Execute(AccomplishedAction(S, Cond)) GetEvent(A, S, Cond) < A : Agent | CurrentState : S, MBox : MB, AccList : ACL > if (IsAlive(S) == false) and (IsInternalAction(AccomplishedAction(S, Cond)) == true) . rl [StepCase11] : GetEvent(S, Cond) Execute(Act) < A : Agent | CurrentState : S, MBox : MB, AccList : ACL > => < A : Agent | CurrentState : TargetState(S, Cond), MBox : MB, AccList : ACL > . *****************************************Second case******************************************************** crl [StepCase2] : Event(A, S, Cond) < A : Agent | CurrentState : S, MBox : MB, AccList : ACL > < A1 : Agent | CurrentState : S1, MBox : MB1, AccList : ACL1 > => SendMessage(A : AccomplishedAction(S, Cond) : A1) GetEvent(A, S, Cond) < A : Agent | CurrentState : S, MBox : MB, AccList : ACL > < A1 : Agent | CurrentState : S1, MBox : MB1, AccList : ACL1 > if (IsAlive(S) == false) and (IsSendingAction(AccomplishedAction(S, Cond)) == true) . rl [StepCase21] : GetEvent(A, S, Cond) SendMessage(A : Act : A1) < A : Agent | CurrentState : S, MBox : MB, AccList : ACL > => Event(A1, CorrespondingAgentState(S), CorrspondingCondition(Act)) < A : Agent | CurrentState : TargetState(S, Cond), MBox : MB, AccList : ACL > .

Recommend


More recommend