A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

A KobrA and OCL model for backward state-space search planning and partial order-planning with STRIPS Ana Emília Jairson Vitorino

Apresentações semelhantes


Apresentação em tema: "A KobrA and OCL model for backward state-space search planning and partial order-planning with STRIPS Ana Emília Jairson Vitorino"— Transcrição da apresentação:

1 A KobrA and OCL model for backward state-space search planning and partial order-planning with STRIPS Ana Emília (aemq@cin.ufpe.br) Jairson Vitorino (jv@cin.ufpe.br) Setembro, 2004

2 KobrA method overview Developed at Fraunhofer IESE Integrates: –Component based development (CBD) –Model-driven architecture (MDA) –Product-line approach Komponents creation applied on a recursive fashion

3 KobrA artifacts

4 Object Constraint Language Part of the UML standard. Formal Specification Language. Precise semantics. (Quite) easy to read syntax. Why? Because UML is not enough!

5 An OCL Example Natural language descriptionOCL statement Age Vehicle´s owner must be at least 18context Vehicle inv: self. Owner. age >= 18 Nobody can have more than 3 vehiclescontext Person inv: self.fleet–>size <= 3 Everyone´s car is blackcontext Person inv: self.fleet–>forAll(v | v.colour = #black) Nobody can have more than 3 black vehiclescontext Person inv: self.fleet–>select(v | v.colour = #black)–>size <= 3 Nobody can have more than 3 black vehiclescontext Person inv: self.fleet–>iterate(v; acc:Integer=0 | if (v.colour=#black) then acc + 1 else acc endif) <=3 A person younger than 18 cannot own a carcontext Person inv: age forAll(v | not v.oclIsKindOf(Car)) There is one red carcontext Car inv: Car.allInstances()->exists(c | c.colour=#red)

6 The Planning Problem Coming up with a sequence of actions that will achieve a goal STRIPS planning language: comes in propositional or first-order logic flavor STRIPS represents states, goals and actions

7 StripsSearchPlanner

8 StripsSearchPlanner modelling Strips_States –Positive propositional literal conjunction –Positive First-order literals conjunction –Ground –Function-free –Closed-world assumption Strips_Goal  Strips_States Strips_actions –Name –Parameter_List –Precondition Positive function free literals conjunction Literal.Variables  Parameter_List.Variables –Effect Function freee literals conjunction

9 Basic algorithm Do 1.Find Action A consistent and relevant if not possible return failure 2.Goal.remove(A.effect.positiveLiterals) 3.Goal.add(A.precondition.PositiveLiterals) 4.If checkIfIsReached (InitialState) return Solution While goal not achieved

10 StateSearchPlanner Komponent Specification Goal StateSearchPlanner > State Current: List of Positive Literals STRUCTURAL MODEL Action Name: string ParameterList: List of variables Effect: List of Literals Precondition: List of Positive Literals EffectPositiveLiterals() EffectNegativeLiterals() Plan 0..*

11 StateSearchPlanner Komponent Realization

12 StateSearchPlanner Komponent Realization Beahviour model StateChart

13 Functional Model OCL statementExplanation context StateSearchPlanner::predecessor():Action pre true pos result = self.avaliableActionList->select(a|true) and self.actionList->size = self.actionList@pre->size + 1 O resultado do método predecessor() é uma ação e o tamanho da lista de ações do plano é incrementado de um. context Action inv actionConsistentConstraint : self. effect. literal -> forAll ( l | not l. isPositive implies not self. owner. goal. current -> includes ( l ) ) context Action inv actionRelevantConstraint : self. effect. literal -> exists ( l | l. isPositive and self. owner. goal. current -> includes ( l ) ) Nenhum literal positive da ação Action pode ocorrer nos literais do objetivo. A ação na lista de planos precisa ser relevante, isto é, existe pelo menos um literal positivo do efeito que também pertence aos literais do objetivo. context AvailableAction inv variablePreconditionConstraint : self. precondition. literal -> includes ( parameterList. name ) implies self -> includes ( parameterList. name ) context AvailableAction inv variableEffectConstraint : self. effect. literal -> includes ( parameterList. name ) implies self -> includes ( parameterList. name ) Todas as variáveis dos parâmetros das precondições precisam pertencer a listas de parâmetros da ação. Todas as variáveis dos parâmetros dos efeitos precisam pertencer a listas de parâmetros da ação.

14 Functional Model OCL statementExplanation context AvaliableAction ::effectPositiveLiterals() : List pre true post result = {1..self.effect.literal->size} -> iterate(x; y:List()=List{} | if (self.effect.literal.isPositive) then y->includes(sef.effect.literal) else y endiff ) context AvaliableAction ::effectNegativeLiterals() : List pre true post result = {1..self.effect.literal->size} -> iterate(x; y:List()=List{} | if not (self.effect.literal.isPositive) then y- >includes(sef.effect.literal) else y endiif) O resultado do método effectPositiveLiterals() é a lista de literais positivos dos efeitos. O resultado do método effectNegativeLiterals() é a lista de literais negativos dos efeitos. context State inv : self. current -> forAll (L | L.isPositive = true )Todos os literais do estado state (estado inicial) são positivos

15 POPPlanner

16 StripsPOPPlanner modelling Strips_States –Positive propositional literal conjunction –Positive First-order literals conjunction –Ground –Function-free –Closed-world assumption Strips_Goal  Strips_States Strips_actions –Name –Parameter_List –Precondition Positive function free literals conjunction Literal.Variables  Parameter_List.Variables –Reserved actions: START and FINISH (POP algorithm) –Effect Function freee literals conjunction

17 Actions set Empty plan contains {START,FINISH} START –No precondition –Effect: all literals composing the initial state FINISH –No effects –Preconditions: literals composing the goal

18 Ordering constraints A < B –Action A must be executed before action B –A < B and B < A are not allowed (loops)

19 Causal Links A B –Effect of action A is precondition p of action B –Cannot be canceled by other actions executed between A and B execution Ex.: RightSock RightShoe C conflicts with causal link causal p: –C has effect  p –C may happen between A and B according to ordering restrictions p RightSockOn

20 StripsPOPPlanner Komponent Specification STRUCTURAL MODEL Constraints: Goal.Instance  State.Instance Actions.Precondition.variables  Action.ParameterList.Variables Goal State Current: List of Positive Literals Action Name: string ParameterList: List of variables Effect: List of Literals Precondition: List of Positive Literals EffectPositiveLiterals() EffectNegativeLiterals() Ordering CausalLinks previous: Action Current : Action precondition:literal * 0..1 POPPlan listOfOrederedActions: Ordering successor() linearization() CLList *

21 StripsPOPPlanner Komponent Specification STRUCTURAL MODEL Constraints:Contex Ordering: Invariant For All objects ordering O1 and O2 there cannot be O1.previous=O2.current or O1.current = O2.previous. // this means NO LOOPS Goal State Current: List of Positive Literals Action Name: string ParameterList: List of variables Effect: List of Literals Precondition: List of Positive Literals EffectPositiveLiterals() EffectNegativeLiterals() Ordering CausalLinks previous: Action Current : Action precondition:literal * 0..1 CLList CL : List of CausalLinks * POPPlan listOfOrederedActions: Ordering successor() linearization() 1

22 StripsPOPPlanner Komponent Realization Structural Model

23 StripsPOPPlanner Komponent Realization Functional Model

24 Project Analysis KobrA: –small problems, only on interaction –Small structural models –Knowledge in embedded in Constraints and methods OCL: Using OCL forces a better understanding of the model and better specification Drawbacks: –Lack of better examples of OCL –Tool used (Poseidon) do not conform to OCL current specification –There is no Case tool for KobrA

25 Conclusions OCL captures some behaviour aspects OCL does not include side effects Further investigation is necessary to use OCL in statechart and other behavioural diagrams It may be necessary to extend KobrA to provide bottom-up modeling and better COTS integration


Carregar ppt "A KobrA and OCL model for backward state-space search planning and partial order-planning with STRIPS Ana Emília Jairson Vitorino"

Apresentações semelhantes


Anúncios Google