29
Ontologi es Reasonin g Component s Agents Simulatio ns Example of Draft KobrA-2 PIM Example of Draft KobrA-2 PIM Jacques Robin

Example of Draft KobrA-2 PIM

  • Upload
    ann

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

Example of Draft KobrA-2 PIM. Jacques Robin. Case-Studies for Agent and Game Related Extensions. Small scale: soccer penalty simulation Large scale: Rollerslam simulation. gameOver, goal. action(s,legs,shoot(2)) action(k,legs,move(right)). actions(k,legs,move(right)). - PowerPoint PPT Presentation

Citation preview

Page 1: Example of Draft KobrA-2 PIM

OntologiesReasoningComponentsAgentsSimulations

Example of Draft KobrA-2 PIMExample of Draft KobrA-2 PIM

Jacques Robin

Page 2: Example of Draft KobrA-2 PIM

Case-Studies for Agent andCase-Studies for Agent andGame Related ExtensionsGame Related Extensions

Small scale: soccer penalty simulation

Large scale: Rollerslam simulation

3

2 k

1 s, b

Y X 1 2 3

3

2 b k

1 s

Y X 1 2 3

3 b

2 k

1 s

Y X 1 2 3

action(s,legs,shoot(2))action(k,legs,move(right))

3

2 k, b

1 s

Y X 1 2 3

action(k,hands,grab(yes))

3

2 k, b

1 s

Y X 1 2 3

gameOver, goal

gameOver, nogoal

action(s,legs,shoot(3))action(k,legs,move(right))

actions(k,legs,move(right))

Page 3: Example of Draft KobrA-2 PIM

PenaltySim Specification Class PenaltySim Specification Class DiagramDiagram

<<enumeration>>SimStateKind

createdrunningstopped

<<Subject Component>><<MAS>>

PenaltySim

<<Interface>>IPenaltySim

<<create>> +new()+run()+stop()

+getSimState(): SimStateKind

Page 4: Example of Draft KobrA-2 PIM

<<Subject Component>><<MAS>>

PenaltySim

-state:SimStateKind

<<create>> -new():-getSimState(): SimStateKind

-run()-stop()

- connect(RIPort:Port,PIPort:Port)

PenaltySim SpecificationPenaltySim SpecificationComponent DiagramComponent Diagram

PPenaltySim

IPenaltySim

Page 5: Example of Draft KobrA-2 PIM

PenaltySim SpecificationPenaltySim SpecificationProtocol State MachineProtocol State Machine

running stopped

new()

run()

created

stop()

run()

Page 6: Example of Draft KobrA-2 PIM

PenaltySim Realization Class PenaltySim Realization Class Diagram 1Diagram 1

<<enumeration>>Dir

leftright

<<enumeration>>Coord

012

<<ReflexAgent>>Player

<<Percept>> XYCoord

x:Coordy:Coord

Ball

9

<<Subject Component>><<MAS>>

PenaltySim

<<AgentAction>> MoveAction

to: Dir

<<AgentAction>> KickAction

to: XYCoord

<<AgentAction>> GrabAction

*

2

<<AgentAction>> PlayerAction

<<enumeration>>Role

shooterkeeper

<<enumeration>>AgStateKind

emptyinitialized

perceptsReceivedactionChosen

actionSent

<<AgentAction>> ArmAction

<<AgentAction>> LegAction

<<enumeration>>EnvStateKind

emptyinitialized

actionsReceivedperceptsUpdated

perceptsSent

<<enumeration>>ChannelStateKind

createdperceptsReceivedperceptsSensedactionReceivedactionSensed

Goal

FieldObjectFieldZone

3

Page 7: Example of Draft KobrA-2 PIM

PenaltySim Realization Class PenaltySim Realization Class Diagram 2Diagram 2

<<Effector>>Legs

+do(role:Role,action:LegAction)

<<use>><<use>><<Sensor>>

Eyes

<<signal>> +sense():XYCoord[3]{ordered}

<<ReflexAgent>>Kicker

<<ReflexAgent>>Keeper

<<Effector>>Arms

+do(role:Role,action:ArmAction)

<<use>>

<<ReflexAgent>>Player

<<Subject Component>><<MAS>>

PenaltySim

2

2

<<Interface>>IPlayer

<<create>> +new()+initialize()

+getState(): AgStateKind+getRole(): Role

+reason(percepts:XYCoord[3]{ordered}): PlayerAction

2

Page 8: Example of Draft KobrA-2 PIM

PenaltySim Realization Class PenaltySim Realization Class Diagram 3Diagram 3

<<Interface>>IPenaltyEnv

<<create>> +new()+initialize()

+getEnvState(): EnvStateKind-reason(shooterAction:PlayerAction{in}, keeperAction:PlayerAction{in},

shooterPercepts:XYCoord[3]{out,ordered}, keeperPercepts:XYCoord[3]{out, ordered})

<<Sensor>>GetActions

<<signal>> +getAction(role:Role):PlayerAction <<use>><<use>>

<<Effector>>SendPercepts

+sendPercept(role:Role):XYCoord[3]{ordered}

<<Environment>><<AutomataAgent>>

PenaltyEnv

<<Subject Component>><<MAS>>

PenaltySim

Page 9: Example of Draft KobrA-2 PIM

PenaltySim Realization Class PenaltySim Realization Class Diagram 4Diagram 4

<<Sensor>>GetActions

<<signal>> +getAction(role:Role):PlayerAction

<<Effector>>SendPercepts

+sendPercept(role:Role):XYCoord[3]{ordered}

<<Subject Component>><<MAS>>

PenaltySim

<<Effector>>Legs

+do(role:Role,action:LegAction)

<<Sensor>>Eyes

<<signal>> +sense():XYCoord[3]{ordered}

<<Effector>>Arms

+do(role:Role,action:ArmAction)

<<Component>>CommincationChannel

<<Interface>>ICommunicationChanel

<<create>> +new()+getChannelState:ChannelStateKind

Page 10: Example of Draft KobrA-2 PIM

<<Component>>CommunicationChannel

<<create>> -new() -getChannelState:ChannelStateKind <<signal>> -sendPercepts(role:Role):XYCoord[3]{ordered} -sense():XYCoord[3]{ordered} <<signal>> -do(role:Role,action:LegAction) <<signal>> -do(role:Role,action:ArmAction) -getAction(role:Role):Action

PenaltySim Realization Component PenaltySim Realization Component DiagramDiagram

<<Subject Component>><<MAS>>

PenaltySim

<<ReflexAgent>>Player

<<create>> -new() -initialize() -getState(): AgStateKind -getRole(): String -reason(percepts:XYCoord[3]{ordered}): PlayerAction

<<Environment>> <<AutomataAgent>>PenaltyEnv

<<create>> -new() -initialize() -getEnvState(): EnvStateKind -reason(shooterAction:PlayerAction{in}, keeperAction:PlayerAction{in}, shooterPercepts:XYCoord[3]{out,ordered}, keeperPercepts:XYCoord[3]{out, ordered})

REnv

PEnv

RPlayer[2]

PPlayer

PGetActions

PSendPercepts

RSendPerceptsRGetActions

<<Agent>>Keeper

<<Agent>>Shooter

REyesRLegs

PEyes[2]

PLegs[2]

RArms PArms

RChannel

PChannel

Page 11: Example of Draft KobrA-2 PIM

PenaltySim RealizationPenaltySim RealizationComposite Structure DiagramComposite Structure Diagram

<<Environment>><<AutomataAgent>>

: PenaltyEnv

rs:RPlayer

ps:PPlayer <<Component>>: CommunicationChannel

pc:PChannel

re:REnvpe;PEnv

<<ReflexAgent>>: Keeper

rlk:RLegs pak:PArms

pek:PEyes

rek:REyes

rsp:RSendPerceptsrga:RGetActions

<<ReflexAgent>>: Shooter

rls:RLegspls:PLegs

pes:PEyes

rc:RChannel

psp:RSendPerceptspga:RGetActions

rk:RPlayer

pk:PPlayer

<<SubjectComponent>>

<<MAS>>penaltySim

<<create>> -new()

rak:RArmsplk:RLegs

res:REyes

<<MAS>> : PenaltySim

Page 12: Example of Draft KobrA-2 PIM

PenaltySim RealizationPenaltySim RealizationActivity Diagram 1Activity Diagram 1

PenaltySim.new()

connect(rc,pc)

connect(rk,pk)

connect(rs,ps)

connect(re,pe)

connect(res,pes)

connect(rls,pls)

connect(rak,pak)

connect(rga,pga)

connect(rek,pek)

connect(rlk,plk)

PenaltyEnv.new()

Shooter.new()

Keeper.new()

CommunicationChannel.new() connect(rsp,psp)

Page 13: Example of Draft KobrA-2 PIM

PenaltySim Realization Activity Diagram 2PenaltySim Realization Activity Diagram 2

k.do(keeper,ka) e.getAction(k)s.do(shooter,sa) e.getAction(s)

e.sendPercepts(s) s.sense() e.sendPercepts(k) k.sense()

stop()

k.initialize()

run()

e.initialize()s.initialize()

s:Shooter e:PenaltyEnv k:Keeper

s.reason(sp) sa:LegAction k.reason(kp)

e.reason(sa,ka,sp,kp)

sp:XYCoord[3]

sa:LegAction ka:PlayerAction

ka:PlayerAction

kp:XYCoord[3]

Page 14: Example of Draft KobrA-2 PIM

Player Specification Class DiagramPlayer Specification Class Diagram

<<Effector>>Legs

+do(Role,LegAction)

<<use>>

<<use>><<Sensor>>

Eyes

<<signal>> +sense():XYCoord[3]{ordered}

<<ReflexAgent>>Kicker

<<ReflexAgent>>Keeper

<<Effector>>Arms

+do(Role,ArmAction)

<<use>>

<<Subject Component>><<ReflexAgent>>

Player

<<Interface>>IPlayer

<<create>> +new()+initialize()

+getState(): AgStateKind+getRole(): Role

FieldObj

Ball

<<enumeration>>Dir

leftright

<<enumeration>>Coord

012

<<enumeration>>Role

shooterkeeper

<<enumeration>>AgStateKind

emptyinitialized

perceptsReceivedactionChosen

actionSent

<<AgentAction>> MoveAction

to: Dir

<<AgentAction>> KickAction

to: Coord

<<AgentAction>> GrabAction

*

<<AgentAction>> PlayerAction

<<AgentAction>> ArmAction

<<AgentAction>> LegAction

<<Percept>> XYCoord

x:Coordy:Coord

Page 15: Example of Draft KobrA-2 PIM

<<ReflexAgent>>Keeper

-reason(percepts:XYCoord[3]{ordered}): PlayerAction

Player Specification Component Player Specification Component DiagramDiagram

<<Subject Component>><<ReflexAgent>>

Player

<<create>> -new()-getState(): AgStateKind

-getRole(): String-reason(percepts:XYCoord[3]{ordered}): PlayerAction

PPlayer

REyes

RLegs

RArms

IPlayer

<<sensor>> Eyes

<<effector>> Legs

<<effector>> Arms

<<ReflexAgent>>Shooter

-reason(percepts:XYCoord[3]{ordered}): LegAction

Page 16: Example of Draft KobrA-2 PIM

Player SpecificationPlayer SpecificationProtocol State MachineProtocol State Machine

actionSent

perceptsReceived

new()

self^CommunicationChannel.do(Role,Action)

empty

initialized

initialize()

CommunicationChannler^self.sense()

actionChosen

reason(percepts:XYCoord[3]{ordered})

CommunicationChannler^self.sense()

Page 17: Example of Draft KobrA-2 PIM

Shooter Realization Class DiagramShooter Realization Class Diagram

<<Subject Component>> <<ReflexAgent>>

Shooter

<<ReflexReasoner>>ShooterReflexReasoner

<<Interface>>IPlayerReflexReasoner

<<create>> +new()+reason(percepts:XYCoord[3]{ordered}):LegAction

<<Effector>>Legs

+do(Role = shooter,LegAction)

<<Sensor>>Eyes

<<signal>> +sense():XYCoord[3]{ordered}

Page 18: Example of Draft KobrA-2 PIM

<<ReflexReasoner>>ShooterReflexReasoner

<<create>> -new()+reason(percepts:XYCoord[3]{ordered}):LegAction

Shooter Realization Component Shooter Realization Component DiagramDiagram

<<Subject Component>><<ReflexAgent>>

Shooter

PPlayer

REyes

RLegs

IPlayer

<<sensor>> Eyes <<effector>> Legs

RPRR

IPlayerReflexReasoner

PPRR

REyes<<sensor>> Eyes

RLegs<<effector>> Legs

Page 19: Example of Draft KobrA-2 PIM

Shooter RealizationShooter RealizationComposite Structure DiagramComposite Structure Diagram

<<ReflexReasonert>>: ShooterReflexReasoner

ps:PPlayer

res:REyes

rsrr:RPRR

psrr:PPRR

rls:RLegs<<delegate>>resrr:REyes rlsrr:RLegs<<delegate>>

<<ReflexAgent>>: Shooter

<<Subject Component>><<ReflexAgent>>

Shooter

<<create>> -new()

Page 20: Example of Draft KobrA-2 PIM

Shooter Realization Activity Diagram Shooter Realization Activity Diagram 11

Shooter.new()

delegate(resrr,res)

connect(rsrr,psrr)

delegate(rlsrr,rls)

ShooterReflexReasoner..new()

Page 21: Example of Draft KobrA-2 PIM

Shooter Realization Activity Diagram Shooter Realization Activity Diagram 22Shooter.reason(sp)

sp:XYCoord[3]{ordered}

sa:LegAction

shooterX = sp[1].x keeperX = sp[2].x ballX = sp[3].x ballY = sp[3].y

[shooterX = ballX]

[ballX < shooterX][shooterX < ballX]

sa = mr

mr.to = right

mr = MoveAction.new()

sa = ml

ml.to = left

ml = MoveAction.new()

[shooterX < keeperX]

[shooter X = keeper X]

[keeperX < shooterX]

sa = kr

kr.to = 0

kr = KickAction.new()

sa = kl

kl.to = 2

kl = KickAction.new()

sa = klr

klr.to = 0 or klr = 1 or klr = 2

klr = KickAction.new()

[ballY = 0]

sa = void

[else]

Page 22: Example of Draft KobrA-2 PIM

Keeper Realization Class DiagramKeeper Realization Class Diagram

<<Subject Component>> <<ReflexAgent>>

Keeper

<<ReflexReasoner>>KepperReflexReasoner

<<Interface>>IPlayerReflexReasoner

<<create>> +new()+reason(percepts:XYCoord[3]{ordered}):PlayerAction

<<Effector>>Legs

+do(Role = keeper,LegAction)<<Sensor>>

Eyes

<<signal>> +sense():XYCoord[3]{ordered} <<Effector>>Arms

+do(Role = keeper,ArmAction)

Page 23: Example of Draft KobrA-2 PIM

<<ReflexReasoner>>KeeperReflexReasoner

<<create>> -new()+reason(percepts:XYCoord[3]{ordered}):PlayerAction

Keeper Realization Component Keeper Realization Component DiagramDiagram

<<Subject Component>><<ReflexAgent>>

Keeper

PPlayer

REyesRLegs

IPlayer

<<sensor>> Eyes<<effector>> Legs

RPRR

IPlayerReflexReasoner

PPRR

REyes<<sensor>> Eyes

RLegs<<effector>> Legs

RArms<<effector>> Arms

RArms<<effector>> Arms

Page 24: Example of Draft KobrA-2 PIM

Keeper RealizationKeeper RealizationComposite Structure DiagramComposite Structure Diagram

<<ReflexReasoner>>: KeeperrReflexReasoner

pk:PPlayer

rek:REyes

rkrr:RPRR

pkrr:PPRR

rlk:RLegs<<delegate>>rekrr:REyes

rlkrr:RLegs<<delegate>>

<<ReflexAgent>>: Keeper

<<Subject Component>><<ReflexAgent>>

Keeper

<<create>> -new()

rak:RArms<<delegate>>rakrr:RArms

Page 25: Example of Draft KobrA-2 PIM

Shooter Realization Activity Diagram Shooter Realization Activity Diagram 11

Shooter.new()

ShooterReflexRuleBaseComponent..new()

connect(rkrr,pkrr)

delegate(rlkrr,rlk)

delegate(rakrr,rak)

delegate(rekrr,rek)

Page 26: Example of Draft KobrA-2 PIM

Keeper Realization Activity Diagram Keeper Realization Activity Diagram 22

Keeper.reason(sp)

kp:XYCoord[3]{ordered}

ka:PlayerAction

shooterX = sp[1].x keeperX = sp[2].x ballX = sp[3].x ballY = sp[3].y

[keeperX = ballX]

[ballX < keeperX][keeperX < ballX]

sa = mr

mr.to = right

mr = MoveAction.new()

sa = ml

ml.to = left

ml = MoveAction.new()

[ballY = keeperY]

sa = void

[else]

sa = GrabAction.new()

Page 27: Example of Draft KobrA-2 PIM

PenaltyEnv Specification Class PenaltyEnv Specification Class DiagramDiagram

<<enumeration>>Dir

leftright

<<enumeration>>Coord

012

<<enumeration>>Role

shooterkeeper

<<enumeration>>EnvStateKind

emptyinitialized

actionsReceivedperceptsUpdated

perceptsSent

<<AgentAction>> MoveAction

to: Dir

<<AgentAction>> KickAction

to: Coord

<<AgentAction>> GrabAction

<<AgentAction>> PlayerAction

<<AgentAction>> ArmAction

<<AgentAction>> LegAction

<<Percept>> XYCoord

x:Coordy:Coord

<<Interface>>IPenaltyEnv

<<create>> +new()+initialize()

+getEnvState(): EnvStateKind-reason(shooterAction:PlayerAction{in}, keeperAction:PlayerAction{in},

shooterPercepts:XYCoord[3]{out,ordered}, keeperPercepts:XYCoord[3]{out, ordered})

<<Sensor>>GetActions

<<signal>> +getAction(role:Role):PlayerAction<<use>><<use>>

<<Effector>>SendPercepts

+sendPercept(role:Role):XYCoord[3]{ordered}

<<Subject Component>><<Environment>>

<<AutomataAgent>>PenaltyEnv

Page 28: Example of Draft KobrA-2 PIM

PenaltyEnv SpecificationPenaltyEnv SpecificationComponent DiagramComponent Diagram

PPenaltyEnv

IPenaltyEnv

<<Subject Component>><<Environment>>

<<AutomataAgent>>PenaltyEnv

<<create>> -new() initialize() -getEnvState(): EnvStateKind -reason(shooterAction:PlayerAction{in}, keeperAction:PlayerAction{in}, shooterPercepts:XYCoord[3]{out,ordered}, keeperPercepts:XYCoord[3]{out, ordered})

RGetActions

<<sensor>> GetActions

RSendPercepts<<effector>> SendPercepts

Page 29: Example of Draft KobrA-2 PIM

PenaltyEnv SpecificationPenaltyEnv SpecificationProtocol State MachineProtocol State Machine

perceptsSent

actionsReceived

new()

self^CommunicationChannel.sendPercepts(shooter)

empty< initializedinitialize()

CommunicationChannler^self.getAction(shooter,LegAction)

perceptsUpdated

CommunicationChannler^self.getAction(keeper,PlayerAction)

self^CommunicationChannel.sendPercepts(keeper)

reason(shooterAction:PlayerAction{in}, keeperAction:PlayerAction{in},

shooterPercepts:XYCoord[3]{out,ordered}, keeperPercepts:XYCoord[3]{out, ordered})