Elaboration Tolerant Representation of Markov Decision Process via Decision-Theoretic Extension of Probabilistic Action Language pBC+
EElaboration Tolerant Representation of Markov DecisionProcess via Decision-Theoretic Extension of ProbabilisticAction Language p BC + Yi Wang and Joohyung Lee
School of Computing, Informatics, and Decision Systems EngineeringArizona State University, Tempe, USA { ywang485, joolee } @asu.edu Abstract.
We extend probabilistic action language p BC + with the notion of util-ity as in decision theory. The semantics of the extended p BC + can be defined as ashorthand notation for a decision-theoretic extension of the probabilistic answer setprogramming language LP MLN . Alternatively, the semantics of p BC + can also bedefined in terms of Markov Decision Process (MDP), which in turn allows for repre-senting MDP in a succinct and elaboration tolerant way as well as to leverage an MDPsolver to compute a p BC + action description. The idea led to the design of the system PBCPLUS MDP , which can find an optimal policy of a p BC + action description usingan MDP solver. Many problems in Artificial Intelligence are about how to choose actions that maximize theagent’s utility. Since actions may also have stochastic effects, the main computational taskis, rather than to find a sequence of actions that leads to a goal, to find an optimal policy,that states which actions to execute in each state to achieve the maximum expected utility.While a few decades of research has produced several expressive action languages, suchas A [1], B [2], C [3], C + [4], BC [5], and BC + [6], that are able to describe actions and theireffects in a succinct and elaboration tolerant way, they are not equipped with constructs torepresent stochastic actions and the utility of an agent. In this paper, we present an actionlanguage that overcomes the limitation. Our method is to extend probabilistic action lan-guage p BC + [7] with the concept of utility and define policy optimization problems in thatlanguage.To follow the way that p BC + is defined as a shorthand notation of probabilistic an-swer set programming language LP MLN for describing a probabilistic transition system,we first extend LP MLN by associating a utility measure to each soft stable model in addi-tion to its already defined probability. We call this extension
DT-LP
MLN . Next, we definea decision-theoretic extension of p BC + as a shorthand notation for DT-LP
MLN . It turnsout that the semantics of p BC + can also be directly defined in terms of Markov DecisionProcess (MDP), which in turn allows us to define MDP in a succinct and elaboration tol-erant way. The result is theoretically interesting as it formally relates action languages toMDP despite their different origins, and furthermore justifies the semantics of the extended p BC + in terms of MDP. It is also computationally interesting because it allows for applyinga number of algorithms developed for MDP to computing p BC + . Based on this idea, wedesign the system PBCPLUS MDP , which turns a p BC + action description into the input a r X i v : . [ c s . A I] A p r anguage of an MDP solver, and leverages MDP solving to find an optimal policy for the p BC + action description.The extended p BC + can thus be viewed as a high-level representation of MDP thatallows for compact and elaboration tolerant encodings of sequential decision problems.Compared to other MDP-based planning description languages, such as PPDDL [8] andRDDL [9], it inherits the nonmonotonicity of stable model semantics to be able to com-pactly represent recursive definitions and indirect effects of actions, which can save thestate space significantly. Section 5 contains such an example.This paper is organized as follows. After Section 2 reviews preliminaries, Section 3extends LP MLN with the notion of utility, through which we define the extension of p BC + with utility in Section 4. Section 5 defines p BC + as a high-level representation languagefor MDP and presents the prototype system PBCPLUS MDP . We discuss the related work inSection 6.
Due to the space limit, the reviews are brief. We refer the reader to the original papers [10,7],or technical report of this paper for the reviews of the preliminaries. The note also containsall proofs and experiments with the system PBCPLUS MDP . LP MLN An LP MLN program is a finite set of weighted rules w : R where R is a rule and w is a realnumber (in which case, the weighted rule is called soft ) or α for denoting the infinite weight(in which case, the weighted rule is called hard ). Throughout the paper, we assume that thelanguage is propositional. Schematic variables can be introduced via grounding as standardin answer set programming.For any LP MLN program Π and any interpretation I , Π denotes the usual (unweighted)ASP program obtained from Π by dropping the weights, and Π I denotes the set of w : R in Π such that I | = R .Given a ground LP MLN program Π , SM[Π] denotes the set { I | I is a (deterministic) stable model of Π I that satisfies all hard rules in Π } . For any interpretation I , the weight of an interpretation I , denoted W Π ( I ) , is defined as W Π ( I ) = exp (cid:32) (cid:80) w : R ∈ Π I w (cid:33) if I ∈ SM[Π];0 otherwise , and the probability of I , denoted P Π ( I ) , is defined as P Π ( I ) = W Π ( I ) (cid:80) J ∈ SM[ Π ] W Π ( J ) . wang19elaboration-tech ig. 1. Causal laws in p BC + and their translations into LP MLN p BC + p BC + assumes that the propositional signature σ is constructed from “constants” and their“values.” A constant c is a symbol that is associated with a finite set ı Dom ( c ) , called the domain . The signature σ is constructed from a finite set of constants, consisting of atoms c = v for every constant c and every element v in ı Dom ( c ) . If the domain of c is { FALSE , TRUE } ,then we say that c is Boolean , and abbreviate c = TRUE as c and c = FALSE as ∼ c .There are four types of constants in p BC + : fluent constants , action constants , pf (prob-ability fact) constants and initpf (initial probability fact) constants . Fluent constants arefurther divided into regular and statically determined . The domain of every action constantis restricted to be Boolean. An action description is a finite set of causal laws , which de-scribes how fluents depend on each other within a single time step and how their valueschange from one time step to another. The expressions (causal laws) in p BC + are listed inthe first column of Figure 1. A fluent formula is a formula such that all constants occurringin it are fluent constants.We use σ fl , σ act , σ pf , and σ initpf to denote the set of fluent constants, action constants,pf constants, and initpf constants, respectively. Given a nonnegative integer m as the maxi-mum timestamp, for any signature σ (cid:48) and any i ∈ { , . . . , m } , we use i : σ (cid:48) to denote the set { i : A | A ∈ σ (cid:48) } . By i : F we denote the result of inserting i : in front of every occurrence ofevery constant in formula F .The semantics of a p BC + action description D is defined by a translation into an LP MLN program
T r ( D, m ) = D init ∪ D m . Below we describe the essential part of the translationthat turns a p BC + description into an LP MLN program. For the complete translation, werefer the reader to [7].The signature σ m of D m consists of atoms of the form i : c = v such that – for each fluent constant c of D , i ∈ { , . . . , m } and v ∈ Dom ( c ) , – for each action constant or pf constant c of D , i ∈ { , . . . , m − } and v ∈ Dom ( c ) . D m contains LP MLN rules obtained from static laws, fluent dynamic laws, and pf con-stant declarations as described in the third column of Figure 1, as well as { c = v } ch for3very regular fluent constant c and every v ∈ Dom ( c ) , and { i : c = TRUE } ch , { i : c = FALSE } ch for every action constant c to state that the initial value of each fluent and actions are ex-ogenous. D init contains LP MLN rules obtained from initial static laws and initpf constantdeclarations as described in the third column of Figure 1. Both D m and D init also containconstraints for asserting that each constant is mapped to exactly one value in its domain.For any LP MLN program Π of signature σ and a value assignment I to a subset σ (cid:48) of σ ,we say I is a residual (probabilistic) stable model of Π if there exists a value assignment J to σ \ σ (cid:48) such that I ∪ J is a (probabilistic) stable model of Π .For any value assignment I to constants in σ , by i : I we denote the value assignment toconstants in i : σ so that i : I | = ( i : c ) = v iff I | = c = v . For x ∈ { act, f l, pf } , we use σ xm to denote the subset of σ m : { i : c = v | i : c = v ∈ σ m and c ∈ σ x } . A state is an interpretation I fl of σ fl such that I fl is a residual (probabilistic) stablemodel of D . A transition of D is a triple (cid:104) s, e, s (cid:48) (cid:105) where s and s (cid:48) are interpretations of σ fl and e is an interpretation of σ act such that s ∪ e ∪ s (cid:48) is a residual stable modelof D . A pf-transition of D is a pair ( (cid:104) s, e, s (cid:48) (cid:105) , pf ) , where pf is a value assignment to σ pf such that s ∪ e ∪ s (cid:48) ∪ pf is a stable model of D .The following simplifying assumptions are made on action descriptions in p BC + .1. No Concurrency : For all transitions (cid:104) s, e, s (cid:48) (cid:105) , we have e ( a ) = TRUE for at most one a ∈ σ act ;2. Nondeterministic Transitions are Determined by pf constants : For any state s , anyvalue assignment e of σ act , and any value assignment pf of σ pf , there exists exactlyone state s (cid:48) such that ( (cid:104) s, e, s (cid:48) (cid:105) , pf ) is a pf-transition;3. Nondeterminism on Initial States are Determined by Initpf constants : For any valueassignment pf init of σ initpf , there exists exactly one assignment f l of σ fl such that pf init ∪ f l is a stable model of D init ∪ D .With the above three assumptions, the probability of a history, i.e., a sequence of statesand actions, can be computed as the product of the probabilities of all the transitions thatthe history is composed of, multiplied by the probability of the initial state (Corollary 1 in[7]). A Markov Decision Process (MDP) M is a tuple (cid:104) S, A, T, R (cid:105) where (i) S is a set of states;(ii) A is a set of actions; (iii) T : S × A × S → [0 , defines transition probabilities; (iv) R : S × A × S → R is the reward function. Finite Horizon Policy Optimization
Given a nonnegative integer m as the maximumtimestamp, and a history (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) such that each s i ∈ S ( i ∈{ , . . . , m } ) and each a i ∈ A ( i ∈ { , . . . , m − } ) , the total reward R M of the historyunder MDP M is defined as R M ( (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) ) = m − (cid:88) i =0 R ( s i , a i , s i +1 ) . We write { A } ch ← Body to denote the rule A ← Body, not not A . This expression is called a“choice rule”. (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) under MDP P M is defined as P M ( (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) ) = m − (cid:89) i =0 T ( s i , a i , s i +1 ) . A non-stationary policy π : S × ST (cid:55)→ A is a function from S × ST to A , where ST = { , . . . , m − } . Given an initial state s , the expected total reward of a non-stationary policy π under MDP M is ı ER M ( π, s ) = E (cid:104) s ,...,s m (cid:105) : s i ∈ S for i ∈ { , . . . , m } [ R M ( (cid:104) s , π ( s , , s , . . . , s m − , π ( s m − , m − , s m (cid:105) )]= (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S for i ∈ { , . . . , m } (cid:16) m − (cid:88) i =0 R ( s i , π ( s i , i ) , s i +1 ) (cid:17) × (cid:16) m − (cid:89) i =0 T ( s i , π ( s i , i ) , s i +1 ) (cid:17) . The finite horizon policy optimization problem is to find a non-stationary policy π thatmaximizes its expected total reward, given an initial state s , i.e., argmax π ı ER M ( π, s ) . Infinite Horizon Policy Optimization
Policy optimization with the infinite horizon is de-fined similar to the finite horizon, except that a discount rate for the reward is introduced,and the policy is stationary, i.e., no need to mention time steps (ST). Given an infinite se-quence of states and actions (cid:104) s , a , s , a , . . . (cid:105) , such that each s i ∈ S and each a i ∈ A ( i ∈ { , . . . } ) , and a discount factor γ ∈ [0 , , the discounted total reward of the sequenceunder MDP M is defined as R M ( (cid:104) s , a , s , a , . . . (cid:105) ) = ∞ (cid:88) i =0 γ i +1 R ( s i , a i , s i +1 ) . Various algorithms for MDP policy optimization have been developed, such as valueiteration [11] for an exact solution, and Q-learning [12] for approximate solutions. DT-LP
MLN
We extend the syntax and semantics of LP MLN for
DT-LP
MLN by introducing atoms ofthe form utility ( u, t ) (1)where u is a real number, and t is an arbitrary list of terms. These atoms can only occur inthe head of hard rules of the form α : utility ( u, t ) ← ı Body (2)where ı Body is a list of literals. We call these rules utility rules .The weight and the probability of an interpretation are defined the same as in LP MLN .The utility of an interpretation I under Π is defined as U Π ( I ) = (cid:88) utility ( u, t ) ∈ I u. A , the expected utility of A is defined as E [ U Π ( A )] = (cid:88) I | = A U Π ( I ) × P Π ( I | A ) . (3)A DT-LP
MLN program is a pair (cid:104)
Π, Dec (cid:105) where Π is an LP MLN program with apropositional signature σ (including utility atoms) and Dec is a subset of σ consistingof decision atoms . We consider two reasoning tasks on DT-LP
MLN . – Evaluating a Decision. Given a propositional formula e (“evidence”) and a truth as-signment dec of decision atoms Dec , represented as a conjunction of literals over atomsin
Dec , compute the expected utility of decision dec in the presence of evidence e , i.e.,compute E [ U Π ( dec ∧ e )] = (cid:88) I | = dec ∧ e U Π ( I ) × P Π ( I | dec ∧ e ) . – Finding a Decision with Maximum Expected Utility (MEU) . Given a propositionalformula e (“evidence”), find the truth assignment dec on Dec such that the expectedutility of dec in the presence of e is maximized, i.e., compute argmax dec : dec is a truth assignment on Dec E [ U Π ( dec ∧ e )] . (4) Example 1.
Consider a directed graph G representing a social network: (i) each vertex v ∈ V ( G ) represents a person; each edge ( v , v ) represents that v influences v ; (ii) each edge e = ( v , v ) is associated with a probability p e representing the probability of the influence;(iii) each vertex v is associated with a cost c v , representing the cost of marketing the productto v ; (iv) each person who buys the product yields a reward of r .The goal is to choose a subset U of vertices as marketing targets so as to maximizethe expected profit. The problem can be represented as a DT-LP
MLN program Π market asfollows: α : buy ( v ) ← marketT o ( v ) .α : buy ( v ) ← buy ( v ) , inf luence ( v , v ) .α : utility ( r, v ) ← buy ( v ) . with the graph instance represented as follows: – for each edge e = ( v , v ) , we introduce a probabilistic fact ln ( p e − p e ) : inf luence ( v , v ); – for each vertex v ∈ V ( G ) , we introduce the following rule: α : utility ( − c v , v ) ← marketT o ( v ) . For simplicity, we assume that marketing to a person guarantees that the person buys theproduct. This assumption can be removed easily by changing the first rule to a soft rule.The MEU solution of
DT-LP
MLN program ( Π market , { marketT o ( v ) | v ∈ V ( G ) } ) corresponds to the subset U of vertices that maximizes the expected profit.For example, consider the directed graph on the right,where each edge e is labeled by p e and each vertex v is labeled by c v . Suppose the reward for each personbuying the product is . There are = 64 differenttruth assignments on decision atoms, corresponding to choices of marketing targets. The best decision isto market to Alice only, which yields the expectedutility of . . 6 p BC + with Utility We extend p BC + by introducing the following expression called utility law that assigns areward to transitions: reward v if F after G (5)where v is a real number representing the reward, F is a formula that contains fluent con-stants only, and G is a formula that contains fluent constants and action constants only (nopf, no initpf constants). We extend the signature of T r ( D, m ) with a set of atoms of theform (1). We turn a utility law of the form (5) into the LP MLN rule α : utility ( v, i + 1 , id ) ← ( i + 1 : F ) ∧ ( i : G ) (6)where id is a unique number assigned to this (ground) LP MLN rule and i ∈ { , . . . , m − } .Given a nonnegative integer m denoting the maximum timestamp, a p BC + action de-scription D with utility over multi-valued propositional signature σ is defined as a high-levelrepresentation of the DT-LP
MLN program ( T r ( D, m ) , σ actm ) .We extend the definition of a probabilistic transition system as follows: A probabilistictransition system T ( D ) represented by a probabilistic action description D is a labeleddirected graph such that the vertices are the states of D , and the edges are obtained from thetransitions of D : for every transition (cid:104) s, e, s (cid:48) (cid:105) of D , an edge labeled e : p, u goes from s to s (cid:48) , where p = P r D (1 : s (cid:48) | s ∧ e ) and u = E [ U D (0 : s ∧ e ∧ s (cid:48) )] . The number p is called the transition probability of (cid:104) s, e, s (cid:48) (cid:105) , denoted by p ( s, e, s (cid:48) ) , and the number u iscalled the transition reward of (cid:104) s, e, s (cid:48) (cid:105) , denoted by u ( s, e, s (cid:48) ) . Example 2.
The following action description D simple describes a simple probabilistic ac-tion domain with two Boolean fluents P , Q , and two actions A and B . A causes P to betrue with probability . , and if P is true, then B causes Q to be true with probability . .The agent receives the reward if P and Q become true for the first time (after then, itremains in the state { P, Q } as it is an absorbing state). A causes P if ı P f B causes Q if P ∧ ı P f inertial P, Q constraint ¬ ( Q ∧ ∼ P ) caused ı P f = { TRUE : 0 . , FALSE : 0 . } caused ı P f = { TRUE : 0 . , FALSE : 0 . } reward if P ∧ Q after ¬ ( P ∧ Q ) caused ı InitP = { TRUE : 0 . , FALSE : 0 . } initially P = x if ı InitP = x caused ı InitQ = { TRUE : 0 . , FALSE : 0 . } initially Q if ı InitQ ∧ P initially ∼ Q if ∼ P. The transition system T ( D simple ) is as follows: .1 Policy Optimization Given a p BC + action description D , we use S to denote the set of states, i.e, the set ofinterpretations I fl of σ fl such that I fl is a residual (probabilistic) stable model of D .We use A to denote the set of interpretations I act of σ act such that I act is a residual(probabilistic) stable model of D . Since we assume at most one action is executed eachtime step, each element in A makes either only one action or none to be true.A (non-stationary) policy π (in p BC + ) is a function π : S × { , . . . , m − } (cid:55)→ A that maps a state and a time step to an action (including doing nothing). By (cid:104) s , s . . . , s m (cid:105) t (each s i ∈ S ) we denote the formula s ∧ s · · ·∧ m : s m , and by (cid:104) s , a , s . . . , s m − , a m − , s m (cid:105) t (each s i ∈ S and each a i ∈ A ) the formula s ∧ a ∧ s ∧ · · · ∧ m − a m − ∧ m : s m . For any i ∈ { , . . . , m } and s ∈ S , we write i : s as an abbreviation of the formula (cid:86) fl ∈ σ fl i : f l = s ( f l ) ; for any i ∈ { , . . . , m − } and a ∈ A , we write i : a as an abbreviation of theformula (cid:86) act ∈ σ act i : act = a ( act ) .We say a state s is consistent with D init if there exists at least one probabilistic stablemodel I of D init such that I | = 0 : s . The Policy Optimization problem is to find a policy π that maximizes the expected utility starting from s , i.e., π with argmax π is a policy E [ U T r ( Π,m ) ( C π,m ∪ (cid:104) s (cid:105) t )] where C π,m is the following formula representing policy π : (cid:94) s ∈ S , π ( s,i )= a, i ∈{ ,...,m } i : s → i : a . We define the total reward of a history (cid:104) s , a , s , . . . , s m (cid:105) under action description D as R D ( (cid:104) s , a , s , . . . , s m (cid:105) ) = E [ U T r ( D,m ) ( (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) t )] . Although it is defined as an expectation, the following proposition tells us that any sta-ble model X of T r ( D, m ) such that X | = (cid:104) s , a , s , . . . , s m (cid:105) has the same utility, andconsequently, the expected utility of (cid:104) s , a , s , . . . , s m (cid:105) is the same as the utility of anysingle stable model that satisfies the history. Proposition 1
For any two stable models X , X of T r ( D, m ) that satisfy a trajectory (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) , we have U T r ( D,m ) ( X ) = U T r ( D,m ) ( X ) = E [ U T r ( D,m ) ( (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) t )] . It can be seen that the expected utility of π can be computed from the expected utilityfrom all possible state sequences. 8 roposition 2 Given any initial state s that is consistent with D init , for any non-stationarypolicy π , we have E [ U Tr ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )] = (cid:80) (cid:104) s ,...,s m (cid:105) : s i ∈ S R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) ) × P Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m ) . Definition 1.
For a p BC + action description D , let M ( D ) be the MDP (cid:104) S, A, T, R (cid:105) where(i) the state set S is S ; (ii) the action set A is A ; (iii) transition probability T is defined as T ( s, a, s (cid:48) ) = P D (1 : s (cid:48) | s ∧ a ) ; (iv) reward function R is defined as R ( s, a, s (cid:48) ) = E [ U D (0 : s ∧ a ∧ s (cid:48) )] . We show that the policy optimization problem for a p BC + action description D canbe reduced to policy optimization problem for M ( D ) for the finite horizon. The followingtheorem tells us that for any trajectory following a non-stationary policy, its total rewardand probability under D defined under the p BC + semantics coincide with those under thecorresponding MDP M(D). Theorem 1
Assuming Assumptions 1 ∼ s ∈ S that is consistent with D init , for any non-stationary policy π and any finite state sequence (cid:104) s , s , . . . , s m − , s m (cid:105) such that each s i in S ( i ∈ { , . . . , m } ) , we have – R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) ) = R M ( D ) ( (cid:104) s , π ( s , ) . . . , π ( s m − ) , s m (cid:105) ) – P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m ) = P M ( D ) ( (cid:104) s , π ( s , ) . . . , π ( s m − ) , s m (cid:105) ) . It follows that the policy optimization problem for p BC + action descriptions and thesame problem for MDP with finite horizon coincide. Theorem 2
For any nonnegative integer m and an initial state s ∈ S that is consistentwith D init , we have argmax π is a non-stationary policy E [ U T r ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )] = argmax π is a non-stationary policy ı ER M ( D ) ( π, s ) . Theorem 2 justifies using an implementation of
DT-LP
MLN to compute optimal policiesof MDP M ( D ) as well as using an MDP solver to compute optimal policies of the p BC + descriptions. Furthermore the theorems above allow us to check the properties of MDP M ( D ) by using formal properties of LP MLN , such as whether a certain state is reachable ina given number of steps. p BC + as a High-Level Representation Language of MDP An action description consists of causal laws in a human-readable form describing the actiondomain in a compact and high-level way, whereas it is non-trivial to describe an MDPinstance directly from the domain description in English. The result in the previous sectionshows how to construct an MDP instance M ( D ) for a p BC + action description D so thatthe solution to the policy optimization problem of D coincide with that of MDP M ( D ) . Inthat sense, p BC + can be viewed as a high-level representation language for MDP.As its semantics is defined in terms of LP MLN , p BC + inherits the nonmonotonicityof the stable model semantics to be able to compactly represent recursive definitions ortransitive closure. The static laws in p BC + can prune out invalid states to ensure that only9eaningful value combinations of fluents will be given to MDP as states, thus reducing thesize of state space at the MDP level.We illustrate the advantage of using p BC + action descriptions as high-level representa-tions of MDP with an example. Example 3.
Robot and Blocks
There are two rooms R1 , R2 , and three blocks B1 , B2 , B3 that are originally located in R1 . A robot can stack one block on top of another block ifthe two blocks are in the same room. The robot can also move a block to a different room,resulting in all blocks above it also moving if successful (with probability p ). Each movingaction has a cost of . What is the best way to move all blocks to R2 ?The example can be represented in p BC + as follows. x, x , x range over B1 , B2 , B3 ; r, r , r ranges over R1 , R2 . ı T opClear ( x ) , ı Above ( x , x ) , and ı GoalN otAchieved areBoolean statically determined fluent constants; ı In ( x ) is a regular fluent constant with Do-main { R1 , R2 } , and ı OnT opOf ( x , x ) is a Boolean regular fluent constant. ı M oveT o ( x, r ) and ı StackOn ( x , x ) are action constants and ı P f M ove is a Boolean pf constant. In thisexample, we make the goal state absorbing, i.e., when all the blocks are already in R2 , thenall actions have no effect.Moving block x to room r causes x to be in r with probability p : ı M oveT o ( x, r ) causes ı In ( x ) = r if ı P f M ove ∧ ı GoalN otAchieved caused ı P f M ove = { TRUE : p, FALSE : 1 − p } . Successfully Moving a block x to a room r causes x to be no longer underneath theblock x that x was underneath in the previous step, if r is different from where x is: ı M oveT o ( x , r ) causes ∼ ı OnT opOf ( x , x ) if ı P f M ove ∧ ı In ( x ) = r ∧ ı OnT opOf ( x , x ) ∧ ı GoalN otAchieved ( r (cid:54) = r ) . Stacking a block x on another block x causes x to be on top of x , if the top of x isclear, and x and x are at the same location: ı StackOn ( x , x ) causes ı OnT opOf ( x , x ) if ı T opClear ( x ) ∧ ı At ( x ) = r ∧ ı At ( x ) = r ∧ ı GoalN otAchieved ( x (cid:54) = x ) . Stacking a block x on another block x causes x to be no longer on top of the block x where x was originally on top of: ı StackOn ( x , x ) causes ∼ ı OnT opOf ( x , x ) if ı T opClear ( x ) ∧ ı At ( x ) = r ∧ ı At ( x ) = r ∧ ı OnT opOf ( x , x ) ∧ ı GoalN otAchieved ( x (cid:54) = x, x (cid:54) = x ) . Two different blocks cannot be on top of the same block, and a block cannot be on top oftwo different blocks: constraint ¬ (ı OnT opOf ( x , x ) ∧ ı OnT opOf ( x , x )) ( x (cid:54) = x ) constraint ¬ (ı OnT opOf ( x, x ) ∧ ı OnT opOf ( x, x )) ( x (cid:54) = x ) . By default, the top of a block x is clear. It is not clear if there is another block x that is ontop of it: default ı T opClear ( x ) caused ∼ ı T opClear ( x ) if ı OnT opOf ( x , x ) . he relation Above between two blocks is the transitive closure of the relation
OnT opOf :A block x is above another block x if x is on top of x , or there is another block x suchthat x is above x and x is above x : caused ı Above ( x , x ) if ı OnT opOf ( x , x ) caused ı Above ( x , x ) if ı Above ( x , x ) ∧ ı Above ( x, x ) . One block cannot be above itself; Two blocks cannot be above each other: caused ⊥ if ı Above ( x , x ) ∧ ı Above ( x , x ) . If a block x is above another block x , then x has the same location as x : caused ı At ( x ) = r if ı Above ( x , x ) ∧ ı At ( x ) = r. (7) Each moving action has a cost of : reward − if (cid:62) after ı M oveT o ( x, r ) . Achieving the goal when the goal is not previously achieved yields a reward of : reward if ∼ ı GoalN otAchieved after ı GoalN otAchieved.
The goal is not achieved if there exists a block x that is not at R2 . It is achieved otherwise: caused ı GoalN otAchieved if ı At ( x ) = r ( r (cid:54) = R2 ) default ∼ ı GoalN otAchieved. ı At ( x ) and ı OnT opOf ( x , x ) are inertial: inertial ı At ( x ) , ı OnT opOf ( x , x ) . Finally, we add a ∧ a causes ⊥ for each distinct pair of ground action constants a and a , to ensure that at most one action can occur each time step.It can be seen that stacking all blocks together and moving them at once would be thebest strategy to move them to L2 . In Example 3, many value combinations of fluents do not lead to a valid state, such as { ı OnT opOf ( B1 , B2 ) , ı OnT opOf ( B2 , B1 ) , ... } where the two blocks B1 and B2 are on top of each other. Moreover, the fluents T opClear ( x ) and Above ( x , x ) are completely dependent on the value of the other fluents. There wouldbe × × = 2 states if we define a state as any value combination of fluents. Onthe other hand, the static laws in the above action descriptions reduce the number of statesto only (13 + 9) × . Furthermore, in this example, ı Above ( x, y ) needs to be defined as a transitive closureof OnT opOf ( x, y ) , so that the effects of StackOn ( x , x ) can be defined in terms of the(inferred) spatial relation of blocks. Also, the static law (7) defines an indirect effect of M oveT o ( x, r ) . This number can be verified by counting all possible configurations of 3 blocks with 2 locations.
11e implemented the prototype system
PBCPLUS MDP , which takes an action descrip-tion D and time horizon m as input, and finds an optimal policy by constructing the corre-sponding MDP M ( D ) and utilizing MDP policy optimization algorithms as blackbox. Weuse MDPTOOLBOX as our underlying MDP solver. The current system uses LP MLN http://reasoning.eas.asu.edu/lpmln ) for exact inference to find states,actions, transition probabilities, and transition rewards. The system is publicly available at https://github.com/ywang485/pbcplus2mdp , along with several examples.The current system is not yet fast enough for large scale domains, since generating exacttransition probability and reward matrices requires enumerating all stable models of D and D . For large scale domains, one more practical way of using p BC + action description todefine MDP would be to use a p BC + solver as simulation black box in approximate MDPplanning methods, such as Q-Learning. We leave this as future work. There have been quite a few studies and attempts in defining factored representations of(PO)MDP, with feature-based state descriptions and more compact, human-readable actiondefinitions. PPDDL [8] extends PDDL with constructs for describing probabilistic effectsof actions and reward from state transitions. One limitation of PPDDL is the lack of staticcausal laws, which prohibits PPDDL from expressing recursive definitions or transitive clo-sure. This may yield a large state space to explore as discussed in Section 5. RDDL (Re-lational Dynamic Influence Diagram Language) [9] improves the expressivity of PPDDLin modeling stochastic planning domains by allowing concurrent actions, continuous val-ues of fluents, state constraints, etc. The semantics is defined in terms of lifted dynamicBayes network extended with influence graph. A lifted planner can utilize the first-orderrepresentation and potentially achieve better performance. Still, indirect effects are hard tobe represented in RDDL. Compared to PPDDL and RDDL, the advantage of p BC + liesin its expressivity from the stable model semantics, which allows elegant representation ofrecursive definition, defeasible behabiour, and indirect effect.Zhang et al. [14] adopt ASP and P-Log [15] to perform high-level symbolic reasoning,which, respectively produce a refined set of states and a refined probability distribution overstates that are then fed to POMDP solvers for low-level planning. The refined sets of statesand probability distribution over states take into account commonsense knowledge aboutthe domain, and thus improve the quality of a plan and reduce computation needed at thePOMDP level. Yang et al. [16] adopts the (deterministic) action description language BC for high-level representations of the action domain, which defines high-level actions thatcan be treated as deterministic. Each action in the generated high-level plan is then mappedinto more detailed low-level policies, which takes in stochastic effects of low-level actionsinto account. Compared to PBCPLUS MDP , these approaches are looser integration of theirsymbolic reasoning module and reinforcement learning module.Similarly, [ ? ], [ ? ] and [ ? ] are also works with two levels of planning: a high-level sym-bolic reasoning based planning and a low-level (PO)MDP planning. [ ? ] introduces a generalframework for combining reasoning and planning in robotics, with planning in a coarse-resolution transition model and a fine-resolution transition model. Action language AL (cid:100) isused for defining the two levels of transition model. The fine-resolution transition model isfurther turned into a POMDP for detailed planning with stochastic effects of actions and https://pymdptoolbox.readthedocs.io p BC + action description in our work is similar to the fine-resolution transition model described in AL (cid:100) as they can both by viewed as a high-levelrepresentation of (PO)MDP. Similar to our work, the action description eliminates invalidstates so that the search space of (PO)MDP planning is reduced. The difference is thata p BC + action description can fully capture all aspects of (PO)MDP including transitionprobabilities and rewards, while the AL (cid:100) action description only provide states, action andtransitions with no quantitative information. Based on the framework in [ ? ], [ ? ] further in-troduced relational reinforcement learning of domain knowledge. [ ? ], on the other hand,uses symbolic reasoner such as ASP to reduce the search space of reinforcement learn-ing based planning method by generating partial policies from planning results generatedby the symbolic reasoner. The partial policies are constructed by merging candidate deter-ministic plans from symbolic reasoners, and the exploration of the low-level RL module isconstrained on actions that satisfy the partial policy.Another related work is [17], which combines ASP and reinforcement learning by usingaction language BC + as a meta-level description of MDP. The BC + action descriptionsdefine non-stationary MDPs in the sense that the states and actions can change with newsituations occurring in the environment. The algorithm ASP(RL) proposed in this workiteratively calls an ASP solver to obtain states and actions for the RL methods to learntransition probabilities and rewards, and updates the BC + action description with changesin the environment found by the RL methods, in this way finding optimal policy for a non-stationary MDP with the search space reduced by ASP. The work is similar to ours in thatASP-based high-level logical description is used to generate states and actions for MDP, butthe difference is that we use an extension of BC + that expresses transition probabilities andrewards. Our main contributions are as follows. – We presented a decision-theoretic extension of LP MLN , through which we extend p BC + with the language constructs for representing rewards of transitions; – We showed that the semantics of p BC + can be equivalently defined in terms of thedecision-theoretic LP MLN or MDP; – We presented the system
PBCPLUS MDP , which solves p BC + policy optimization prob-lems with an MDP solver.Formally relating action languages and MDP opens up an interesting research direction.Dynamic programming methods in MDP can be utilized to compute action languages. Inturn, action languages may serve as a formal verification tool for MDP. Action languagesmay serve as a high-level representation language for MDP that describes an MDP instancein a succinct and elaboration tolerant way. As many reinforcement learning tasks use MDPas a modeling language, the work may be related to incorporating symbolic knowledge toreinforcement learning as evidenced by [14,16]. DT-LP
MLN may deserve attention on its own for static domains. We are currently work-ing on an implementation that extends LP MLN system to handle utility. We expect that thesystem can be a useful tool for verifying properties for MDP.The theoretical results in this paper limit attention to MDP for the finite horizon case.When the maximum step m is sufficiently large, we may view it as an approximation of theinfinite horizon case, in which case, we allow discount factor γ by replacing v in (6) with γ i +1 v . While it appears intuitive to extend the theoretical results in this paper to the infinite13ase, it requires extending the definition of LP MLN to allow infinitely many rules, which weleave for future work.
Acknowledgements:
We are grateful to the anonymous referees for their useful comments.This work was partially supported by the National Science Foundation under Grant IIS-1815337.
References
1. Gelfond, M., Lifschitz, V.: Representing action and change by logic programs. Journal of LogicProgramming (1993) 301–3222. Gelfond, M., Lifschitz, V.: Action languages . Electronic Transactions on Artificial Intelligence (1998) 195–2103. Giunchiglia, E., Lifschitz, V.: An action language based on causal explanation: Preliminary re-port. In: Proceedings of the AAAI Conference on Artificial Intelligence (AAAI), 623–6304. Giunchiglia, E., Lee, J., Lifschitz, V., McCain, N., Turner, H.: Nonmonotonic causal theories.Artificial Intelligence (2004) 49–1045. Lee, J., Lifschitz, V., Yang, F.: Action language BC : Preliminary report. In: Proceedings ofInternational Joint Conference on Artificial Intelligence (IJCAI). (2013)6. Babb, J., Lee, J.: Action language BC +: Preliminary report. In: Proceedings of the AAAI Con-ference on Artificial Intelligence (AAAI). (2015)7. Lee, J., Wang, Y.: A probabilistic extension of action language BC +. Theory and Practice ofLogic Programming (2018) 607–6228. Younes, H.L., Littman, M.L.: PPDDL1. 0: An extension to PDDL for expressing planning do-mains with probabilistic effects. (2004)9. Sanner, S.: Relational dynamic influence diagram language (RDDL): Language description. Un-published ms. Australian National University (2010) 3210. Lee, J., Wang, Y.: Weighted rules under the stable model semantics. In: Proceedings of In-ternational Conference on Principles of Knowledge Representation and Reasoning (KR). (2016)145–15411. Bellman, R.: A Markovian decision process. Indiana Univ. Math. J. (1957) 679–68412. Watkins, C.J.C.H.: Learning from delayed rewards. PhD thesis (1989)13. Lee, J., Talsania, S., Wang, Y.: Computing LPMLN using ASP and MLN solvers. Theory andPractice of Logic Programming (2017)14. Zhang, S., Stone, P.: CORPP: Commonsense reasoning and probabilistic planning, as applied todialog with a mobile robot. In: Proceedings of the AAAI Conference on Artificial Intelligence.(2015) 1394–140015. Baral, C., Gelfond, M., Rushton, J.N.: Probabilistic reasoning with answer sets. Theory andPractice of Logic Programming (1) (2009) 57–14416. Yang, F., Lyu, D., Liu, B., Gustafson, S.: PEORL: Integrating symbolic planning and hierarchicalreinforcement learning for robust decision-making. In: IJCAI. (2018) 4860–486617. Ferreira, L.A., C. Bianchi, R.A., Santos, P.E., de Mantaras, R.L.: Answer set programming fornon-stationary Markov decision processes. Applied Intelligence (4) (Dec 2017) 993–1007 ppendix to: Elaboration Tolerant Representation of Markov Deci-sion Process via Decision Theoretic Extension of LP MLN
A Extended Review of Preliminaries
A.1 Review: Language LP MLN An LP MLN program is a finite set of weighted rules w : R where R is a rule and w is a realnumber (in which case, the weighted rule is called soft ) or α for denoting the infinite weight(in which case, the weighted rule is called hard ). Throughout the paper, we assume that thelanguage is propositional. Schematic variables can be introduced via grounding as standardin answer set programming.For any LP MLN program Π and any interpretation I , Π denotes the usual (unweighted)ASP program obtained from Π by dropping the weights, and Π I denotes the set of w : R in Π such that I | = R .In general, an LP MLN program may even have stable models that violate some hardrules, which encode definite knowledge. However, throughout the paper, we restrict atten-tion to LP MLN programs whose stable models do not violate hard rules. More precisely,given a ground LP MLN program Π , SM[Π] denotes the set { I | I is a (deterministic) stable model of Π I that satisfies all hard rules in Π } . The weight of an interpretation I , denoted W Π ( I ) , is defined as W Π ( I ) = exp (cid:32) (cid:80) w : R ∈ Π I w (cid:33) if I ∈ SM[Π];0 otherwise , and the probability of I , denoted P Π ( I ) , is defined as P Π ( I ) = W Π ( I ) (cid:80) J ∈ SM[ Π ] W Π ( J ) . A.2 Review: Multi-Valued Probabilistic Programs
Multi-valued probabilistic programs [10] are a simple fragment of LP MLN that allows us torepresent probability more naturally.We assume that the propositional signature σ is constructed from “constants” and their“values.” A constant c is a symbol that is associated with a finite set ı Dom ( c ) , called the do-main . The signature σ is constructed from a finite set of constants, consisting of atoms c = v for every constant c and every element v in ı Dom ( c ) . If the domain of c is { FALSE , TRUE } then we say that c is Boolean , and abbreviate c = TRUE as c and c = FALSE as ∼ c .We assume that constants are divided into probabilistic constants and non-probabilistic constants. A multi-valued probabilistic program Π is a tuple (cid:104) ı P F , Π (cid:105) , where Note that here “=” is just a part of the symbol for propositional atoms, and is not equality in first-order logic. ı P F contains probabilistic constant declarations of the following form: p :: c = v | · · · | p n :: c = v n (8)one for each probabilistic constant c , where { v , . . . , v n } = ı Dom ( c ) , v i (cid:54) = v j , ≤ p , . . . , p n ≤ and (cid:80) ni =1 p i = 1 . We use M Π ( c = v i ) to denote p i . In other words, ı P F describes the probability distribution over each “random variable” c . – Π is a set of rules such that the head contains no probabilistic constants.The semantics of such a program Π is defined as a shorthand for LP MLN program T ( Π ) of the same signature as follows. – For each probabilistic constant declaration (8), T ( Π ) contains, for each i = 1 , . . . , n ,(i) ln ( p i ) : c = v i if < p i < ; (ii) α : c = v i if p i = 1 ; (iii) α : ⊥ ← c = v i if p i = 0 . – For each rule ı Head ← ı Body in Π , T ( Π ) contains α : ı Head ← ı Body. – For each constant c , T ( Π ) contains the uniqueness of value constraints α : ⊥ ← c = v ∧ c = v (9)for all v , v ∈ ı Dom ( c ) such that v (cid:54) = v , and the existence of value constraint α : ⊥ ← ¬ (cid:87) v ∈ Dom ( c ) c = v . (10)In the presence of the constraints (9) and (10), assuming T ( Π ) has at least one (proba-bilistic) stable model that satisfies all the hard rules, a (probabilistic) stable model I satisfies c = v for exactly one value v , so we may identify I with the value assignment that assigns v to c . A.3 Review: Action Language p BC + Syntax of p BC + We assume a propositional signature σ as defined in Section A.2. Wefurther assume that the signature of an action description is divided into four groups: fluentconstants , action constants , pf (probability fact) constants and initpf (initial probability fact)constants . Fluent constants are further divided into regular and statically determined . Thedomain of every action constant is Boolean. A fluent formula is a formula such that allconstants occurring in it are fluent constants.The following definition of p BC + is based on the definition of BC + language from [ ? ].A static law is an expression of the form caused F if G (11)where F and G are fluent formulas.A fluent dynamic law is an expression of the form caused F if G after H (12)where F and G are fluent formulas and H is a formula, provided that F does not containstatically determined constants and H does not contain initpf constants.A pf constant declaration is an expression of the form caused ı c = { v : p , . . . , v n : p n } (13)16here ı c is a pf constant with domain { v , . . . , v n } , < p i < for each i ∈ { , . . . , n } ,and p + · · · + p n = 1 . In other words, (13) describes the probability distribution of c .An initpf constant declaration is an expression of the form (13) where c is an initpfconstant.An initial static law is an expression of the form initially F if G (14)where F is a fluent constant and G is a formula that contains neither action constants nor pfconstants.A causal law is a static law, a fluent dynamic law, a pf constant declaration, an initpfconstant declaration, or an initial static law. An action description is a finite set of causallaws.We use σ fl to denote the set of fluent constants, σ act to denote the set of action constants, σ pf to denote the set of pf constants, and σ initpf to denote the set of initpf constants. Forany signature σ (cid:48) and any i ∈ { , . . . , m } , we use i : σ (cid:48) to denote the set { i : a | a ∈ σ (cid:48) } .By i : F we denote the result of inserting i : in front of every occurrence of every con-stant in formula F . This notation is straightforwardly extended when F is a set of formulas. Semantics of p BC + Given a non-negative integer m denoting the maximum length ofhistories, the semantics of an action description D in p BC + is defined by a reduction tomulti-valued probabilistic program T r ( D, m ) , which is the union of two subprograms D m and D init as defined below.For an action description D of a signature σ , we define a sequence of multi-valuedprobabilistic program D , D , . . . , so that the stable models of D m can be identified withthe paths in the transition system described by D .The signature σ m of D m consists of atoms of the form i : c = v such that – for each fluent constant c of D , i ∈ { , . . . , m } and v ∈ Dom ( c ) , – for each action constant or pf constant c of D , i ∈ { , . . . , m − } and v ∈ Dom ( c ) .For x ∈ { act, f l, pf } , we use σ xm to denote the subset of σ m { i : c = v | i : c = v ∈ σ m and c ∈ σ x } . For i ∈ { , . . . , m } , we use i : σ x to denote the subset of σ xm { i : c = v | i : c = v ∈ σ xm } . We define D m to be the multi-valued probabilistic program (cid:104) P F, Π (cid:105) , where Π is theconjunction of i : F ← i : G (15)for every static law (11) in D and every i ∈ { , . . . , m } , We require < p i < for each i ∈ { , . . . , n } for the sake of simplicity. On the other hand, if p i = 0 or p i = 1 for some i , that means either v i can be removed from the domain of c or thereis not really a need to introduce c as a pf constant. So this assumption does not really sacrificeexpressivity. +1 : F ← ( i +1 : G ) ∧ ( i : H ) (16)for every fluent dynamic law (12) in D and every i ∈ { , . . . , m − } , { c = v } ch (17)for every regular fluent constant c and every v ∈ Dom ( c ) , { i : c = TRUE } ch , { i : c = FALSE } ch (18)for every action constant c ,and P F consists of p :: i : pf = v | · · · | p n :: i : pf = v n (19)( i = 0 , . . . , m − ) for each pf constant declaration (13) in D that describes the probabilitydistribution of ı pf .In addition, we define the program D init , whose signature is σ initpf ∪ σ fl . D init is the multi-valued probabilistic program D init = (cid:104) P F init , Π init (cid:105) where Π init consists of the rule ⊥ ← ¬ (0 : F ) ∧ G for each initial static law (14), and P F init consists of p :: 0 : pf = v | . . . | p n :: 0 : pf = v n for each initpf constant declaration (13).We define T r ( D, m ) to be the union of the two multi-valued probabilistic program (cid:104) P F ∪ P F init , Π ∪ Π init (cid:105) . For any LP MLN program Π of signature σ and a value assignment I to a subset σ (cid:48) of σ ,we say I is a residual (probabilistic) stable model of Π if there exists a value assignment J to σ \ σ (cid:48) such that I ∪ J is a (probabilistic) stable model of Π .For any value assignment I to constants in σ , by i : I we denote the value assignment toconstants in i : σ so that i : I | = ( i : c ) = v iff I | = c = v .We define a state as an interpretation I fl of σ fl such that I fl is a residual (prob-abilistic) stable model of D . A transition of D is a triple (cid:104) s, e, s (cid:48) (cid:105) where s and s (cid:48) areinterpretations of σ fl and e is a an interpretation of σ act such that s ∪ e ∪ s (cid:48) isa residual stable model of D . A pf-transition of D is a pair ( (cid:104) s, e, s (cid:48) (cid:105) , pf ) , where pf is avalue assignment to σ pf such that s ∪ e ∪ s (cid:48) ∪ pf is a stable model of D .A probabilistic transition system T ( D ) represented by a probabilistic action description D is a labeled directed graph such that the vertices are the states of D , and the edges areobtained from the transitions of D : for every transition (cid:104) s, e, s (cid:48) (cid:105) of D , an edge labeled e : p goes from s to s (cid:48) , where p = P r D m (1 : s (cid:48) | s, e ) . The number p is called the transitionprobability of (cid:104) s, e, s (cid:48) (cid:105) .The soundness of the definition of a probabilistic transition system relies on the follow-ing proposition. 18 roposition 3 For any transition (cid:104) s, e, s (cid:48) (cid:105) , s and s (cid:48) are states. We make the following simplifying assumptions on action descriptions:1.
No Concurrency : For all transitions (cid:104) s, e, s (cid:48) (cid:105) , we have e ( a ) = t for at most one a ∈ σ act ;2. Nondeterministic Transitions are Controlled by pf constants : For any state s , anyvalue assignment e of σ act such that at most one action is true, and any value assignment pf of σ pf , there exists exactly one state s (cid:48) such that ( (cid:104) s, e, s (cid:48) (cid:105) , pf ) is a pf-transition;3. Nondeterminism on Initial States are Controlled by Initpf constants : Given anyassignment pf init of σ initpf , there exists exactly one assignment f l of σ fl such that pf init ∪ f l is a stable model of D init ∪ D .For any state s , any value assignment e of σ act such that at most one action is true,and any value assignment pf of σ pf , we use φ ( s, e, pf ) to denote the state s (cid:48) such that ( (cid:104) s, a, s (cid:48) (cid:105) , pf ) is a pf-transition (According to Assumption 2, such s (cid:48) must be unique). Forany interpretation I , i ∈ { , . . . , m } and any subset σ (cid:48) of σ , we use I | i : σ (cid:48) to denote the valueassignment of I to atoms in i : σ (cid:48) . Given any value assignment T C of σ initpf ∪ σ pfm and avalue assignment A of σ actm , we construct an interpretation I T C ∪ A of T r ( D, m ) that satisfies T C ∪ A as follows: – For all atoms p in σ pfm ∪ σ initpf , we have I T C ∪ A ( p ) = T C ( p ) ; – For all atoms p in σ actm , we have I T C ∪ A ( p ) = A ( p ) ; – ( I T C ∪ A ) | σ fl is the assignment such that ( I T C ∪ A ) | σ fl ∪ σ initpf is a stable model of D init ∪ D . – For each i ∈ { , . . . , m } , ( I T C ∪ A ) | i : σ fl = φ (( I T C ∪ A ) | ( i − σ fl , ( I T C ∪ A ) | ( i − σ act , ( I T C ∪ A ) | ( i − σ pf ) . By Assumptions 2 and 3, the above construction produces a unique interpretation.It can be seen that in the multi-valued probabilistic program
T r ( D, m ) translated from D , the probabilistic constants are σ initpf ∪ σ pfm . We thus call the value assignment of aninterpretation I on σ initpf ∪ σ pfm the total choice of I . The following theorem asserts thatthe probability of a stable model under T r ( D, m ) can be computed by simply dividing theprobability of the total choice associated with the stable model by the number of choice ofactions. Theorem 3
For any value assignment
T C of σ initpf ∪ σ pfm and any value assignment A of σ actm , there exists exactly one stable model I T C ∪ A of T r ( D, m ) that satisfies T C ∪ A ,and the probability of I T C ∪ A is P r
T r ( D,m ) ( I T C ∪ A ) = (cid:81) c = v ∈ T C M ( c = v )( | σ act | + 1) m . The following theorem tells us that the conditional probability of transiting from a state s to another state s (cid:48) with action e remains the same for all timesteps, i.e., the conditionalprobability of i + 1 : s (cid:48) given i : s and i : e correctly represents the transition probabilityfrom s to s (cid:48) via e in the transition system. 19 heorem 4 For any state s and s (cid:48) , and action e , we have P r
T r ( D,m ) ( i +1 : s (cid:48) | i : s, i : e ) = P r
T r ( D,m ) ( j +1 : s (cid:48) | j : s, j : e ) for any i, j ∈ { , . . . , m − } such that P r
T r ( D,m ) ( i : s ) > and P r
T r ( D,m ) ( j : s ) > . For every subset X m of σ m \ σ pfm , let X i ( i < m ) be the triple consisting of – the set consisting of atoms A such that i : A belongs to X m and A ∈ σ fl ; – the set consisting of atoms A such that i : A belongs to X m and A ∈ σ act ; – the set consisting of atoms A such that i +1 : A belongs to X m and A ∈ σ fl .Let p ( X i ) be the transition probability of X i , s is the interpretation of σ fl defined by X ,and e i be the interpretations of i : σ act defined by X i .Since the transition probability remains the same, the probability of a path given a se-quence of actions can be computed from the probabilities of transitions. Corollary 1
For every m ≥ , X m is a residual (probabilistic) stable model of T r ( D, m ) iff X , . . . , X m − are transitions of D and s is a residual stable model of D init . Fur-thermore, P r
T r ( D,m ) ( X m | e , . . . , m − e m − ) = p ( X ) × · · · × p ( X m ) × P r
T r ( D,m ) (0 : s ) . A.4 Review: Markov Decision Process A Markov Decision Process (MDP) M is a tuple (cid:104) S, A, T, R (cid:105) where (i) S is a set of states;(ii) A is a set of actions; (iii) T : S × A × S → [0 , defines transition probabilities; (iv) R : S × A × S → R is the reward function. Finite Horizon Policy Optimization
Given a non-negative integer m as the maximumtimestep, and a trajectory (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) such that each s i ∈ S ( i ∈{ , . . . , m } ) and each a i ∈ A ( i ∈ { , . . . , m − } ) , the total reward of the sequenceunder MDP M is defined as ı T R M ( (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) ) = m − (cid:88) i =0 R ( s i , a i , s i +1 ) . The probability of s , a , s , . . . , s m − , a m − , s m under MDP M is defined as P M ( (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) ) = m − (cid:89) i =0 T ( s i , a i , s i +1 ) A non-stationary policy π : S × ST → A is a function from S × ST to A , where ST = { , . . . , m − } . Given an initial state s , the expected total reward of a non-stationary policy π under MDP M is ı ER M ( π, s ) = E (cid:104) s ,...,s m (cid:105) : s i ∈ S for i ∈ { , . . . , m } [ı T R M ( (cid:104) s , π ( s , , s , . . . , s m − , π ( s m − , m − , s m (cid:105) )]= (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S for i ∈ { , . . . , m } ( m − (cid:88) i =0 R ( s i , π ( s i , i ) , s i +1 )) · ( m − (cid:89) i =0 T ( s i , π ( s i , i ) , s i +1 )) The finite horizon policy optimization problem is to find a non-stationary policy π that max-imizes its utiity, given an initial state s , i.e., argmax π ı ER M ( π, s ) . nfinite Horizon Policy Optimization Policy optimization with infinite horizon is definedsimilar to finite horizon, except that a discount factor is introduced and the total reward isdiscounted: Given an infinite sequence of states and actions (cid:104) s , a , s , a , . . . (cid:105) , such thateach s i ∈ S and each a i ∈ A ( i ∈ { , . . . } ) , and a discount factor γ ∈ [0 , , the discountedtotal reward of the sequence under MDP M is defined as ı T R M ( (cid:104) s , a , s , a , . . . (cid:105) ) = ∞ (cid:88) i =0 γ i +1 R ( s i , a i , s i +1 ) . The probability desity of (cid:104) s , a , s , a , . . . (cid:105) under MDP M is defined as P M ( (cid:104) s , a , s , a , . . . (cid:105) ) = ∞ (cid:89) i =0 T ( s i , a i , s i +1 ) A stationary policy π : S → A is a function from S to A . Given an initial state s , the expected total reward of a stationary policy π under MDP M is defined similar to the finitehorizon case: ı ER M ( π, s ) = (cid:88) (cid:104) s ,... (cid:105) : s i ∈ S for i ∈ { , , . . . } ( ∞ (cid:88) i =0 γ i +1 R ( s i , π ( s i ) , s i +1 )) · ( ∞ (cid:89) i =0 T ( s i , π ( s i ) , s i +1 )) . The infinite horizon policy optimization problem is to find a stationary policy π that maxi-mizes its utility, given an initial state s , i.e., argmax π ı ER M ( π, s ) . Various algorithms for MDP policy optimization exist, such as value iteration [11] forexact solution, and Q-learning [12] for approximate solution.
B Proofs
It can be easily seen that Theorem 1, 2 and Corollary 1 in [7] still hold with the extensionof p BC + with utility law. B.1 Propositions and Lemmas
We write (cid:104) a , a . . . , a m − (cid:105) t (each a i ∈ A ) to denote the formula a ∧ a · · · ∧ m − a m − . The following lemma tells us that any action sequence has the same probability under T r ( D, m ) . Lemma 1.
For any p BC + action description D and any action sequence (cid:104) a , a , . . . , a m − (cid:105) t ,we have P T r ( D,m ) ( (cid:104) a , a , . . . , a m − (cid:105) ) = 1( | σ act | + 1) m . roof . P T r ( D,m ) ( (cid:104) a , a , . . . , a m − (cid:105) t )= (cid:88) I (cid:15) (cid:104) a ,a ,...,a m − (cid:105) t I is a stable models of T r ( D, m ) P T r ( D,m ) ( I )= (In T r ( D, m ) every total choice leads to ( | σ act | + 1) m stable models. By Proposition 2 in [ ? ], ) (cid:88) I (cid:15) (cid:104) a ,a ,...,a m − (cid:105) t I is a stable models of T r ( D, m ) W T r ( D,m ) ( I )( | σ act | + 1) m = (cid:80) tc ∈ T C Tr ( D,m ) (cid:81) c = v ∈ tc M Π ( c = v )( | σ act | + 1) m = (Derivations same as in the proof of Proposition 2 in [ ? ]) | σ act | + 1) m The following lemma states that given any action sequence, the probabilities of all pos-sible state sequences sum up to . Lemma 2.
For any p BC + action description D and any action sequence (cid:104) a , a , . . . , a m − (cid:105) ,we have (cid:88) s ,...,s m : s i ∈ S P T r ( D,m ) ( (cid:104) s , . . . , s m (cid:105) t | (cid:104) a , a , . . . , a m − (cid:105) t ) = 1 . Proof . (cid:88) s ,...,s m : s i ∈ S P T r ( D,m ) ( (cid:104) s , . . . , s m (cid:105) t | (cid:104) a , a , . . . , a m − (cid:105) t )= (By Corollary 1 in [ ? ]) (cid:88) s ,...,s m : s i ∈ S (cid:89) i ∈{ ,...,m − } p ( s i , a i , s i +1 )= (cid:88) s ∈ S ( p ( s ) · (cid:88) s ,...,s m : s i ∈ S (cid:89) i ∈{ ,...,m − } p ( s i , a i , s i +1 ))= (cid:88) s ∈ S ( p ( s ) · (cid:88) s ∈ S ( p ( s , a , s ) · (cid:88) s ,...,s m : s i ∈ S (cid:89) i ∈{ ,...,m − } p ( s i , a i , s i +1 )))= (cid:88) s ∈ S ( p ( s ) · (cid:88) s ∈ S ( p ( s , a , s ) · · · · · (cid:88) s m ∈ S p ( s m − , a i , s m ) . . . ))= 1 . The following proposition tells us that the probability of any state sequence conditionedon the constraint representation of a policy π coincide with the probability of the statesequence conditioned on the action sequence specified by π w.r.t. the state sequence.22 roposition 4 For any p BC + action description D , state sequence (cid:104) s , s , . . . , s m (cid:105) , and anon-stationary policy π , we have P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | C π,m ) = P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | π ( s , ∧ · · · ∧ m − π ( s m − , m − Proof . P Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | C π,m )= P Tr ( D,m ) (0 : s ∧ s ∧ · · · ∧ m : s m ∧ C π,m ) P Tr ( D,m ) ( C π,m )= P Tr ( D,m ) (0 : s ∧ π ( s , , s ∧ · · · ∧ m − π ( s m − , m − ∧ m : s m ) P Tr ( D,m ) ( C π,m )= P Tr ( D,m ) (0 : π ( s , ∧ s ∧ · · · ∧ m − π ( s m − , m − ∧ m : s m | s ) · P Tr ( D,m ) (0 : s ) (cid:80) s (cid:48) ,...,s (cid:48) m : s (cid:48) i ∈ S P Tr ( D,m ) (0 : s (cid:48) ∧ π ( s (cid:48) , , s (cid:48) ∧ · · · ∧ m − π ( s (cid:48) m − , m − ∧ m : s (cid:48) m ) . We use k ( s , . . . , s m ) as an abbreviation of P T r ( D,m ) (0 : π ( s , ∧ · · · ∧ m − π ( s m − , m − . We have P Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | C π,m )= P Tr ( D,m ) (1: s ∧ · · · ∧ m : s m | s ∧ π ( s , ∧ m − π ( s m − , m − · P Tr ( D,m ) (0: s ) · k ( s , . . . , s m ) (cid:80) s (cid:48) ,...,s (cid:48) m : s (cid:48) i ∈ S P Tr ( D,m ) (1: s (cid:48) ∧ · · · ∧ m : s (cid:48) m | s (cid:48) ∧ π ( s (cid:48) , ∧ · · · ∧ m − π ( s (cid:48) m − , m − · P Tr ( D,m ) (0: s (cid:48) ) · k ( s (cid:48) , . . . , s (cid:48) m )= (By Lemma 1, for any s , . . . , s m ( s i ∈ S ) , we have k ( s , . . . , s m ) = ( | σ act | + 1) m ) P Tr ( D,m ) (1: s ∧ · · · ∧ m : s m | s ∧ π ( s , ∧ m − π ( s m − , m − · P Tr ( D,m ) (0 : s ) · | σact | +1) m (cid:80) s (cid:48) ,...,s (cid:48) m : s (cid:48) i ∈ S P Tr ( D,m ) (1: s (cid:48) ∧ · · · ∧ m : s (cid:48) m | s (cid:48) ∧ π ( s (cid:48) , ∧ · · · ∧ m − π ( s (cid:48) m − , m − · P Tr ( D,m ) (0: s (cid:48) ) · | σact | +1) m = P Tr ( D,m ) (1: s ∧ · · · ∧ m : s m | s ∧ π ( s , ∧ m − π ( s m − , m − · P Tr ( D,m ) (0 : s ) (cid:80) s (cid:48) ,...,s (cid:48) m : s (cid:48) i ∈ S P Tr ( D,m ) (1: s (cid:48) ∧ · · · ∧ m : s (cid:48) m | s (cid:48) ∧ π ( s (cid:48) , ∧ · · · ∧ m − π ( s (cid:48) m − , m − · P Tr ( D,m ) (0: s (cid:48) )= (By Lemma 2, the denominator equals ) P Tr ( D,m ) (1: s ∧ · · · ∧ m : s m | s ∧ π ( s , ∧ m − π ( s m − , m − · P Tr ( D,m ) (0: s )= P Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) π ( s , , . . . , π ( s m − , m − (cid:105) t ) The following proposition tells us that the expected utility of an action and state se-quence can be computed by summing up the expected utility from each transition.
Proposition 5
For any p BC + action description D and a trajectory (cid:104) s , a , s , . . . , a m − , s m (cid:105) ,such that there exists at least one stable model of T r ( D, m ) that satisfies (cid:104) s , a , s , . . . , a m − , s m (cid:105) ,we have E [ U T r ( D,m ) ( (cid:104) s , a , s , . . . , s m − , a m − , s m (cid:105) t )] = (cid:88) i ∈{ ,...,m − } u ( s i , a i , s i +1 ) . roof . Let X be any stable model of T r ( D, m ) that satisfies (cid:104) s , a , s , . . . , s m − , s m (cid:105) t .By Proposition 1, we have E [ U T r ( D,m ) ( (cid:104) s , a , s , . . . , s m − , s m (cid:105) t )]= U T r ( D,m ) ( X )= (cid:88) i ∈{ ,...,m − } ( (cid:88) utility ( v,i, x ) ← ( i +1: F ) ∧ ( i : G ) ∈ T r ( D,m ) X satisfies ( i + 1 : F ) ∧ ( i : G ) v )= (cid:88) i ∈{ ,...,m − } ( (cid:88) utility ( v, , x ) ← (1: F ) ∧ (0: G ) ∈ T r ( D,m )0: X i satisfies (1 : F ) ∧ (0 : G ) v )= (cid:88) i ∈{ ,...,m − } U T r ( D, (0 : X i )= ( By Proposition 1) (cid:88) i ∈{ ,...,m − } E [ U T r ( D, (0 : s i , a i , s i +1 )]= (cid:88) i ∈{ ,...,m − } u ( s i , a i , s i +1 ) . B.2 Proofs of Proposition 1, Proposition 2, Theorem 1 and Theorem 2
The following proposition tells us that, for any states and actions sequence, any stable modelof
T r ( D, m ) that satisfies the sequence has the same utility. Consequently, the expectedutility of the sequence can be computed by looking at any single stable model that satisfiesthe sequence. Proposition 1
For any two stable models X , X of T r ( D, m ) that satisfy a particularstates and actions sequence (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) , we have U T r ( D,m ) ( X ) = U T r ( D,m ) ( X ) = E [ U T r ( D,m ) ( (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) t )] . Proof . Since both X and X both satisfy (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) t , X and X agree on truth assignment on σ actm ∪ σ flm . Notice that atom of the form utility ( v, t ) in T r ( D, m ) occurs only of the form (6), and only atom in σ actm ∪ σ flm occurs in the body ofrules of the form (6). – Suppose an atom utility ( v, t ) is in X . Then the body B of at least one rule of theform (6) with utility ( v, t ) in its head in T r ( D, m ) is satisfied by X . B must besatisfied by X as well, and thus utility ( v, t ) is in X as well. – Suppose an atom utility ( v, t ) , is not in X . Then, assume, to the contrary, that utility ( v, t ) is in X , then by the same reasoning process above in the first bullet, utility ( v, t ) should be in X as well, which is a contradiction. So utility ( v, t ) isalso not in X . 24o X and X agree on truth assignment on all atoms of the form utility ( v, t ) , andconsequently we have U T r ( D,m ) ( X ) = U T r ( D,m ) ( X ) , as well as E [ U T r ( D,m ) ( (cid:104) s , a , s , a , . . . , a m − , s m (cid:105) t )]= (cid:88) I (cid:15) (cid:104) s ,a ,s ,...,a m − ,s m (cid:105) t P T r ( D,m ) ( I | (cid:104) s , a , s , . . . , a m − , s m (cid:105) t ) · U T r ( D,m ) ( I )= U T r ( D,m ) ( X ) · (cid:88) I (cid:15) (cid:104) s ,a ,s ,...,a m − ,s m (cid:105) t P T r ( D,m ) ( I | (cid:104) s , a , s , . . . , a m − , s m (cid:105) t )= (The second term equals ) U T r ( D,m ) ( X ) . Proposition 2
Given any initial state s that is consistent with D init , for any policy π , wehave E [ U T r ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )] = (cid:80) (cid:104) s ,...,s m (cid:105) : s i ∈ S R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) ) × P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m ) . Proof . We have E [ U Tr ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )]= (cid:88) I (cid:15) s ∧ C π,m P Tr ( D,m ) ( I | s ∧ C π,m ) · U Tr ( D,m ) ( I )= (cid:88) I (cid:15) s ∧ C π,m I is a stable model of Tr ( D, m ) P Tr ( D,m ) ( I | s ∧ C π,m ) · U Tr ( D,m ) ( I )= (We partition stable models I according to their truth assignment on σ flm ) (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S (cid:88) I (cid:15) (cid:104) s , s ,...,m : s m (cid:105) t ∧ C π,m I is a stable model of Tr ( D, m ) P Tr ( D,m ) ( I | s ∧ C π,m ) · U Tr ( D,m ) ( I )= (Since I (cid:15) (cid:104) s , s , . . . , s m (cid:105) t ∧ C π,m implies I (cid:15) (cid:104) s , π ( s , , s , . . . , s m (cid:105) t , by Proposition 1 we have) (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S (cid:88) I (cid:15) (cid:104) s ,s ,...,s m (cid:105) t ∧ C π,m I is a stable model of Tr ( D, m ) P Tr ( D,m ) ( I | s ∧ C π,m ) · E [ U Tr ( D,m ) ( (cid:104) s , π ( s , , s , . . . , s m (cid:105) t )]= (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S P r Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | s ∧ C π,m ) · E [ U Tr ( D,m ) ( (cid:104) s , π ( s , , s , . . . , s m (cid:105) t )]= (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S P r Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | s ∧ C π,m ) · E [ U Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t ∧ C π,m )]= (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) ) × P Tr ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m ) . Theorem 1
Given an initial state s ∈ S that is consistent with D init , for any policy π andany finite state sequence (cid:104) s , s , . . . , s m − , s m (cid:105) such that each s i in S ( i ∈ { , . . . , m } ) ,we have R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) ) = R M ( D ) ( (cid:104) s , π ( s , ) . . . , π ( s m − ) , s m (cid:105) ) – P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m ) = P M ( D ) ( (cid:104) s , π ( s , ) . . . , π ( s m − ) , s m (cid:105) ) . Proof . We have R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) )= E [ U T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t ∧ C π,m )]= (By Proposition 5) (cid:88) i ∈{ ,...,m − } u ( s i , π ( s i , i ) , s i +1 )= (cid:88) i ∈{ ,...,m − } R ( s i , π ( s i , i ) , s i +1 )= R M ( D ) ( (cid:104) s , π ( s , ) . . . , π ( s m − ) , s m (cid:105) ) and P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m )= (By Proposition 4) P r
T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) | s ∧ π ( s , ∧ · · · ∧ m − π ( s m − , m − (By Corollary 1 in [ ? ]) (cid:89) i ∈{ ,...,m − } p ( (cid:104) s i , π ( s i , i ) , s i +1 (cid:105) )= P M ( D ) ( (cid:104) s , π ( s , ) . . . , π ( s m − ) , s m (cid:105) ) Theorem 2
For any nonnegative integer m and an initial state s ∈ S that is consistentwith D init , we have argmax π is a policy E [ U T r ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )] = argmax π ı ER M ( D ) ( π, s ) . Proof . We show that for any non-stationary policy π , E [ U T r ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )] = ı ER M ( D ) ( π, s ) . We have E [ U T r ( D,m ) ( C π,m ∧ (cid:104) s (cid:105) t )]= (By Proposition 2) (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S R D ( (cid:104) s , π ( s ) , s , . . . , π ( s m − ) , s m (cid:105) ) × P T r ( D,m ) ( (cid:104) s , s , . . . , s m (cid:105) t | (cid:104) s (cid:105) t ∧ C π,m ) . = (By Theorem 1) (cid:88) (cid:104) s ,...,s m (cid:105) : s i ∈ S R M ( D ) ( (cid:104) s , π ( s , . . . , π ( s m − , m − , s m (cid:105) ) · P M ( D ) ( (cid:104) s , π ( s , . . . , π ( s m − , m − , s m (cid:105) )= ı ER M ( D ) ( π, s ) . Expanded Related Work
There have been quite a few studies and attempts in defining high-level representations of(PO)MDP, with feature-based state descriptions and more compact, human-readable actiondefinitions. PPDDL [8] is a probabilistic extension of the Planning Domain Definition Lan-guage (PDDL), which extends PDDL to defining domains involving probabilistic effects ofactions and reward from state transitions. It introduces the syntactic construct probabilisticeffect of the form ( probabilistic p e . . . p k e k ) to PDDL action schema, which associates probabilities p , . . . , p k to effects e , . . . , c k .The effects are arbitrary formulas that can again contain probabilistic effects. The arbitrarynesting of effects allows flexible representations of effects of actions. The transitions andrewards of the underlying MDP, though, is defined assuming that the action effects areturned into some normal form. The states of the MDP are all possible value combinationsof the fluents, and the entries of transition and reward matrices are filled out according tothe satisfaction of the effect w.r.t. the the corresponding transition.One drawback of PPDDL is the lack of state constraints. In many domains, features usedto define states are not independent from each other. In these domains, some combination offluent values do not yield a valid state. Although invalid combinations of fluent values canbe simulated by unreachable states, including all such invalid combinations as states unnec-essarily increases the size of the domain. With PBCPLUS MDP , such invalid combinationscan be pruned out with static laws in p BC + , and removed from the state space given to theMDP solver.Another weakness of PPDDL lies in the limitation on expressivity due to simple satisfac-tion checking in determining valid transitions. Action effects involving recursive definitionsor transitive closures are hard to be expressed, while in p BC + , the stable model semanticsmakes it quite straightforward to express recurseive definitions or transitive closures.To illustrate the above two points, let us consider the Example 2. In this example, manyvalue combinations of fluents do not lead to a valid state, such as { OnT opOf ( B , B , OnT opOf ( B , B , ... } where the two blocks B1 and B2 are on top of each other. Moreover, the fluents T opClear ( x ) and Above ( x , x ) are completely dependent on the value of the other fluents. There wouldbe × × = 2 states if we define a state as any value combination of fluents. Onthe other hand, the static laws in the above action descriptions reduce the number of statesto only . To see this, consider all possible configurations with blocks and locations. Asillustrated in Figure 2, there are possible configurations with blocks on the same side,and possible configurations with one block one one side and two on the other side. Eachconfigureration can be mirrored to yield another configuration, so we have (13+9) × in total. This is aligned with the number of states detected by our system PBCPLUS MDP .In terms of representation, this example is hard to represent in PPDDL because ı Above ( x, y ) needs to be defined as a transitive closure of OnT opOf ( x, y ) , so that the effects of StackOn ( b , b ) can be defined in terms of the (inferred) spatial relation of blocks. Also, the static law caused ı At ( x , l ) if ı Above ( x , x ) ∧ ı At ( x , l ) defines one indirect effect of M oveT o ( b, l ) . With PPDDL, it is hard to come up with actionschemas for M oveT o ( b, l ) and StackOn ( b , b ) that are compact and do not depend onspefic number of blocks and locations. 27 ig. 2. Possible Configurations with blocks and locations RDDL (Relational Dynamic Influence Diagram Language) [9] improves the expressiv-ity of PPDDL in modeling stochastic planning domains by allowing concurrent actions,continuous value of fluents, state constraints, etc. The semantics is defined in terms of lifteddynamic Bayes network extended with influence graph. A lifted planner can utilize thefirst-order representation and potentially achieve better performance. Still, action domainsinvolving recursive definitions are hard to represent with RDDL.Our work can be viewed as an attempt to combine symbolic reasoning with reinforce-ment learning, as the symbolic reasoning language p BC + is evaluated through LP MLN toprovide input to reinforcement learning based MDP solvers. Similarly, [14] adopts ASP andprobabilistic extension of ASP, P-Log[ ? ], to perform high-level symbolic reasoning, which,respectively produce a refined set of states and a refined probability distribution over statesthat are then fed to POMDP solvers for low-level planning. The refines sets of states andprobability distribution over states take into account commonsense knowledge about thedomain, and thus improves the quality of plan and reduces computation needed at POMDPlevel. [16] adopts the (deterministic) action description language BC for high-level rep-resentations of the action domain, which defines high-level actions that can be treated asdeterministic. The language is executed through an ASP solver CLINGCON . Each action inthe generated high-level plan are then mapped into more detailed low-level policies, whichtakes in stochastic effects of low-level actions into account. During the execution of thelow-level plan, the agent discovers expected reward of transitions, and communicate theinformation to the BC action description through built-in fluents defining quality of transi-tions, which affects future high-level planning, and thus form a learning loop. Compared to PBCPLUS MDP , these approaches are looser integration of their symbolic reasoning module28nd reinforcement learning module. Moreover, the interface between the two componentsare specific to the domain.Another work on this track is [17], which combines ASP and reinforcement learningby using action language BC + as a meta-level description of MDP. The BC + action de-scriptions defines non-stationary MDPs in the sense that the states and actions can changewith new situations occurring in the environment. The algorithm ASP(RL) proposed in thiswork iteratively calls ASP solver to obtain states and actions for the RL methods to learningtransition probabilities and rewards, and updates the BC + action description with changesin the environment found by the RL methods, in this way finding optimal policy for a non-stationary MDP with the search space reduced by ASP. The work is similar to our workin that ASP-based high-level logical description is used to generate states and actions forMDP, but is different from our work in that in our work the action language also capturestransition probabilities and rewards. D System
PBCPLUS MDP
We implement system
PBCPLUS MDP , which takes an action description D and time hori-zon m as input, and finds the optimal policy by constructing the corresponding MDP M ( D ) and utilizing MDP policy optimization algorithms as black box. We use MDPTOOLBOX asour underlying MDP solver. The current system uses LP MLN http://reasoning.eas.asu.edu/lpmln/index.html ) for exact inference to find states, actions, tran-sition probabilities and transition rewards. The system is publically available at https://github.com/ywang485/pbcplus2mdp , along with several examples.We measure the scalability of our system
PBCPLUS MDP on Example 2. Table 1 showsthe running statistics of finding the optimal policy for different number of blocks. For all ofthe running instances, maximum time horizon is set to be , as in all of the instances, thesmallest number of steps in a shortest possible action sequence achieving the goal is lessthan . The experiments are performed on a machine with 4 Intel(R) Core(TM) i5-2400CPU with OS Ubuntu 14.04.5 LTS and 8 GB memory. > Table 1.
Running Statistics of
PBCPLUS MDP system
As can be seen from the table, the running time increases exponentially as the numberof blocks increases. This is not surprising since the size of the search space increases expo-nentially as the number of blocks increases. The bottleneck is the LP MLN inference system,as it needs to enumerate every stable model to generate the set of states, the set of actions,and transition probabilities and rewards. Time spent on MDP planning is negligible.System
PBCPLUS MDP supports planning with infinite horizon. However, it should benoted that the semantics of an action description with inifinit time horizon in terms of DT − The semantics of BC + is defined in terms of a translation to ASP programs. https://pymdptoolbox.readthedocs.io P MLN is not yet well established. In this case, the action description is only viewed as ahigh-level representation of an MDP.Algorithm 1 details how
PBCPLUS MDP solves the policy optimization problem of an p BC + action description. We assume that the answer sets of T r ( D,
0) = D init ∪ D co-incide with D , i.e., D init does not prune out any state from being possible initial state.Coneseuently, the states of an action description can be obtained by listing the stable mod-els of T r ( D, . Algorithm 1
PBCPLUS MDP system
Input: T r ( D, m ) : A p BC + action description translated into LP MLN program, parameterized withmaxstep m , with states set S and action sets A T : time horizon3. γ : discount factor Output:
Optimal policy
Procedure:
1. Execute
LPMLN ASP on T r ( D, m ) with m = 0 to obtain all stable models of T r ( D, ; projecteach stable model of T r ( D, to only predicates corresponding to fluent constant (marked by fl prefix); assign a unique number idx ( s ) ∈ { , . . . , | S | − } to each of the projected stablemodel s of T r ( D, ;2. Execute LPMLN ASP on T r ( D, m ) with m = 1 and the clingo option --project to projectstable models to only predicates corresponding to action constant (marked by act prefix); assigna unique number idx ( a ) ∈ { , . . . , | A |− } to each of the projected stable model a of T r ( D, ;3. Initialize 3-dimensional matrix P of shape ( | A | , | S | , | S | ) ;4. Initialize 3-dimensional matrix R of shape ( | A | , | S | , | S | ) ;5. Construct ASP rules ST ACT DEF : { start state ( idx ( s )) ← s | s ∈ S }∪{ end state ( idx ( s )) ← s | s ∈ S }∪{ action idx ( idx ( a )) ← a | a ∈ A }
6. Execute
LPMLN ASP on T r ( D, m ) ∪ ST ACT DEF with m = 1 and the option -all toobtain all stable models of T r ( D, ; Store all the stable models of T r ( D, with a dictionary AS so that AS ( s, a, s (cid:48) ) = { ( X, P Tr ( D, ( X )) | X is the stable model of T r ( D, such that start state ( idx ( s )) , end state ( idx ( s (cid:48) )) , action idx ( idx ( a )) ∈ X
7. For each state s ∈ S and action a ∈ A :(a) Obtain P Tr ( D, (1 : s (cid:48) | s, a ) as (cid:80) ( X,p ) ∈ AS ( s,a,s (cid:48) ) p (cid:80) s (cid:48) ∈ S ( X,p ) ∈ AS ( s,a,s (cid:48) ) p ;(b) Obtain E [ U Tr ( D, (1 : s (cid:48) , s, a )] by arbitrarily picking one ( X, p ) from AS ( s, a, s (cid:48) ) and summing up the first arguments of all predicates named utlity ;(c) P ( idx ( a ) , idx ( s ) , idx ( s (cid:48) )) ← P Tr ( D, (1 : s (cid:48) | s, a ) ;(d) R ( idx ( a ) , idx ( s ) , idx ( s (cid:48) )) ← E [ U Tr ( D, (1 : s (cid:48) , s, a )] ;8. Call finite horizon policy optimization algorithm of PYMDPTOOLBOX with transition matrix P ,reward matrix R , time horizon T and discount factor γ ; return the output. xample 4. The LP MLN translation of the p BC + action description in Example 2 is listedbelow: astep(0..m-1).step(0..m).boolean(t; f).block(b1 b2; b3).location(l1; l2).%% UEC:- fl_Above(X1, X2, t, I), fl_Above(X1, X2, f, I).:- not fl_Above(X1, X2, t, I), not fl_Above(X1, X2, f, I), block(X1), block(X2), step(I).:- fl_TopClear(X, t, I), fl_TopClear(X, f, I).:- not fl_TopClear(X, t, I), not fl_TopClear(X, f, I), block(X), step(I).:- fl_GoalNotAchieved(t, I), fl_GoalNotAchieved(f, I).:- not fl_GoalNotAchieved(t, I), not fl_GoalNotAchieved(f, I), step(I).:- fl_At(X, L1, I), fl_At(X, L2, I), L1 != L2.:- not fl_At(X, l1, I), not fl_At(X, l2, I), block(X), step(I).:- fl_OnTopOf(X1, X2, t, I), fl_OnTopOf(X1, X2, f, I).:- not fl_OnTopOf(X1, X2, t, I), not fl_OnTopOf(X1, X2, f, I), block(X1), block(X2),step(I).:- act_StackOn(X1, X2, t, I), act_StackOn(X1, X2, f, I).:- not act_StackOn(X1, X2, t, I), not act_StackOn(X1, X2, f, I), block(X1), block(X2),astep(I).:- act_MoveTo(X, L, t, I), act_MoveTo(X, L, f, I).:- not act_MoveTo(X, L, t, I), not act_MoveTo(X, L, f, I), block(X), location(L),astep(I).:- pf_Move(t, I), pf_Move(f, I).:- not pf_Move(t, I), not pf_Move(f, I), astep(I).% ---------- PF(D) ----------%% Probability Distribution@log(0.8) pf_Move(t, I) :- astep(I).@log(0.2) pf_Move(f, I) :- astep(I).%% Initial State and Actions are Random{fl_OnTopOf(X1, X2, B, 0)} :- block(X1), block(X2), boolean(B).{fl_At(X, L, 0)} :- block(X), location(L), boolean(B).{act_StackOn(X1, X2, B, I)} :- block(X1), block(X2), boolean(B), astep(I).{act_MoveTo(X, L, B, I)} :- block(X), location(L), boolean(B), astep(I).%% No Concurrency:- act_StackOn(X1, X2, t, I), act_StackOn(X3, X4, t, I), astep(I), X1 != X3.:- act_StackOn(X1, X2, t, I), act_StackOn(X3, X4, t, I), astep(I), X2 != X4.:- act_MoveTo(X1, L1, t, I), act_MoveTo(X2, L2, t, I), astep(I), X1 != X2.:- act_MoveTo(X1, L1, t, I), act_MoveTo(X2, L2, t, I), astep(I), L1 != L2.:- act_StackOn(X1, X2, t, I), act_MoveTo(X3, L, t, I), astep(I). % Static Lawsfl_GoalNotAchieved(t, I) :- fl_At(X, L, I), L != l2.fl_GoalNotAchieved(f, I) :- not fl_GoalNotAchieved(t, I), step(I).:- fl_OnTopOf(X1, X, t, I), fl_OnTopOf(X2, X, t, I), X1 != X2.:- fl_OnTopOf(X, X1, t, I), fl_OnTopOf(X, X2, t, I), X1 != X2.fl_Above(X1, X2, t, I) :- fl_OnTopOf(X1, X2, t, I).fl_Above(X1, X2, t, I) :- fl_Above(X1, X, t, I), fl_Above(X, X2, t, I).:- fl_Above(X1, X2, t, I), fl_Above(X2, X1, t, I).fl_At(X1, L, I) :- fl_Above(X1, X2, t, I), fl_At(X2, L, I).fl_Above(X1, X2, f, I) :- not fl_Above(X1, X2, t, I), block(X1), block(X2), step(I).fl_TopClear(X, f, I) :- fl_OnTopOf(X1, X, t, I).fl_TopClear(X, t, I) :- not fl_TopClear(X, f, I), block(X), step(I).%% Fluent Dynamic Lawsfl_At(X, L, I+1) :- act_MoveTo(X, L, t, I), pf_Move(t, I), fl_GoalNotAchieved(f, I).fl_OnTopOf(X1, X2, t, I+1) :- act_StackOn(X1, X2, t, I), X1 != X2, fl_TopClear(X2, t,I), not fl_Above(X2, X1, t, I), fl_At(X1, L, I), fl_At(X2, L, I),fl_GoalNotAchieved(f, I).fl_OnTopOf(X1, X2, f, I+1) :- act_MoveTo(X1, L2, t, I), pf_Move(t, I), fl_At(X1, L1, I), fl_OnTopOf(X1, X2, t, I), L1 != L2, fl_GoalNotAchieved(f, I).fl_OnTopOf(X1, X, f, I+1) :- act_StackOn(X1, X2, t, I), X1 != X2, fl_TopClear(X2, t, I), not fl_Above(X2, X1, t, I), fl_At(X1, L, I), fl_At(X2, L, I), fl_OnTopOf(X1, X, t, I), X != X2, fl_GoalNotAchieved(f, I).{fl_OnTopOf(X1, X2, B, I+1)} :- fl_OnTopOf(X1, X2, B, I), astep(I), boolean(B).{fl_At(X, L, I+1)} :- fl_At(X, L, I), astep(I), boolean(B).%% Utility Lawsutility(-1, X, L, I) :- act_MoveTo(X, L, t, I).utility(10) :- fl_GoalNotAchieved(f, I+1), fl_GoalNotAchieved(t, I). We store this LP MLN program as block.lpmln . Executing
PBCPLUS MDP system withthe command line python pbcplus2mdp.py block.lpmln 3 0.9 yields the output
Action Description in lpmln: examples/blocks.lpmlnTime Horizon: 444 states detected.16 actions detected.Transition Probabilitities:action 0 act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]] ction 1 act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,t,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 2 act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,t,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 3 act_StackOn(b1,b1,t,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 4 act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0. ][ 0. 1. 0. ..., 0. 0. 0. ][ 0. 0. 1. ..., 0. 0. 0. ]...,[ 0. 0. 0. ..., 0.1999991 0. 0. ][ 0. 0. 0. ..., 0. 0.1999991 0. ][ 0. 0. 0. ..., 0. 0. 0.1999991]]action 5 act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) [ 0.1999991 0. 0. ..., 0. 0. 0. ][ 0. 0.1999991 0. ..., 0. 0. 0. ][ 0. 0. 0.1999991 ..., 0. 0. 0. ]...,[ 0. 0. 0. ..., 1. 0. 0. ][ 0. 0. 0. ..., 0. 1. 0. ][ 0. 0. 0. ..., 0. 0. 1. ]]action 6 act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0. ][ 0. 1. 0. ..., 0. 0. 0. ][ 0. 0. 1. ..., 0. 0. 0. ]...,[ 0. 0. 0. ..., 0.1999991 0. 0. ][ 0. 0. 0. ..., 0. 0.1999991 0. ][ 0. 0. 0. ..., 0. 0. 0.1999991]]action 7 act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 1. 0. 0. ..., 0. 0. 0. ][ 0. 1. 0. ..., 0. 0. 0. ][ 0. 0. 1. ..., 0. 0. 0. ]...,[ 0. 0. 0. ..., 0.1999991 0. 0. ][ 0. 0. 0. ..., 0. 0.1999991 0. ][ 0. 0. 0. ..., 0. 0. 0.1999991]]action 8 act_MoveTo(b1,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0.1999991 0. 0. ..., 0. 0. 0. ][ 0. 0.1999991 0. ..., 0. 0. 0. ][ 0. 0. 0.1999991 ..., 0. 0. 0. ]...,[ 0. 0. 0. ..., 1. 0. 0. ][ 0. 0. 0. ..., 0. 1. 0. ][ 0. 0. 0. ..., 0. 0. 1. ]]action 9 act_MoveTo(b2,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0.1999991 0. 0. ..., 0. 0. 0. ][ 0. 0.1999991 0. ..., 0. 0. 0. ][ 0. 0. 0.1999991 ..., 0. 0. 0. ]...,[ 0. 0. 0. ..., 1. 0. 0. ]
0. 0. 0. ..., 0. 1. 0. ][ 0. 0. 0. ..., 0. 0. 1. ]]action 10 act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0. 0. 1. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 11 act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0. 0. 0. ..., 0. 0. 0.][ 0. 0. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 12 act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0. 0. 0. ..., 0. 0. 0.][ 0. 0. 0. ..., 0. 0. 0.][ 0. 0. 0. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 13 act_StackOn(b3,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0. 0. 0. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 0. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 14 act_StackOn(b2,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0), ct_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0. 1. 0. ..., 0. 0. 0.][ 0. 1. 0. ..., 0. 0. 0.][ 0. 0. 1. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]action 15 act_StackOn(b1,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[ 0. 0. 0. ..., 0. 0. 0.][ 0. 0. 0. ..., 0. 0. 0.][ 0. 0. 0. ..., 0. 0. 0.]...,[ 0. 0. 0. ..., 1. 0. 0.][ 0. 0. 0. ..., 0. 1. 0.][ 0. 0. 0. ..., 0. 0. 1.]]Transition Rewards:action 0 act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 1 act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,t,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 2 act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,t,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0] ction 7 act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[-1 0 0 ..., 0 0 0][ 0 -1 0 ..., 0 0 0][ 0 0 -1 ..., 0 0 0]...,[ 0 0 0 ..., -1 0 0][ 0 0 0 ..., 0 -1 0][ 0 0 0 ..., 0 0 -1]]action 8 act_MoveTo(b1,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[-1 0 0 ..., 0 0 0][ 0 -1 0 ..., 0 0 0][ 0 0 -1 ..., 0 0 0]...,[ 0 0 0 ..., -1 0 0][ 0 0 0 ..., 0 -1 0][ 0 0 0 ..., 0 0 -1]]action 9 act_MoveTo(b2,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[-1 0 0 ..., 0 0 0][ 0 -1 0 ..., 0 0 0][ 0 0 -1 ..., 0 0 0]...,[ 0 0 0 ..., -1 0 0][ 0 0 0 ..., 0 -1 0][ 0 0 0 ..., 0 0 -1]]action 10 act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 11 act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) [0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 12 act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 13 act_StackOn(b3,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 14 act_StackOn(b2,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]]action 15 act_StackOn(b1,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)[[0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0][0 0 0 ..., 0 0 0]...,[0 0 0 ..., 0 0 0] l_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0), l_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0), l_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)-------------------------- Time step 1 ---------------------------------:state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above( tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0), l_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0), l_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0), ct_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)-------------------------- Time step 2 ---------------------------------:state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above( tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0), l_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0), l_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b3,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b1,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0), ct_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b2,b3,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)-------------------------- Time step 3 ---------------------------------:state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above( tate: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0), ct_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(f,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0), l_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l2,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0), ct_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l2,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0) ction: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l2,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0), l_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0) tate: fl_TopClear(b1,t,0),fl_TopClear(b2,f,0),fl_TopClear(b3,f,0),fl_Above(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b1,b3,t,0),fl_OnTopOf(b1,b3,t,0),fl_Above(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b3,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b3,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0), ct_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)lpmln solving time: 1.72479987144MDP solving time: 0.00124597549438ct_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b2,b1,t,0),fl_OnTopOf(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_Above(b3,b2,t,0),fl_OnTopOf(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b3,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,f,0),fl_TopClear(b3,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b1,b2,t,0),fl_OnTopOf(b1,b2,t,0),fl_Above(b3,b2,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b2,b1,f,0),fl_Above(b2,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b2,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b2,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b2,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b1,l2,f,0),act_MoveTo(b3,l2,f,0)state: fl_TopClear(b1,f,0),fl_TopClear(b2,t,0),fl_TopClear(b3,f,0),fl_Above(b2,b1,t,0),fl_Above(b3,b1,t,0),fl_OnTopOf(b3,b1,t,0),fl_Above(b2,b3,t,0),fl_OnTopOf(b2,b3,t,0),fl_At(b1,l1,0),fl_At(b2,l1,0),fl_At(b3,l1,0),fl_Above(b1,b1,f,0),fl_Above(b1,b2,f,0),fl_Above(b2,b2,f,0),fl_Above(b3,b2,f,0),fl_Above(b1,b3,f,0),fl_Above(b3,b3,f,0),fl_GoalNotAchieved(t,0),fl_OnTopOf(b1,b1,f,0),fl_OnTopOf(b2,b1,f,0),fl_OnTopOf(b1,b2,f,0),fl_OnTopOf(b2,b2,f,0),fl_OnTopOf(b3,b2,f,0),fl_OnTopOf(b1,b3,f,0),fl_OnTopOf(b3,b3,f,0)action: act_MoveTo(b1,l2,t,0),act_StackOn(b1,b1,f,0),act_StackOn(b2,b1,f,0),act_StackOn(b3,b1,f,0),act_StackOn(b1,b2,f,0),act_StackOn(b2,b2,f,0),act_StackOn(b3,b2,f,0),act_StackOn(b1,b3,f,0),act_StackOn(b2,b3,f,0),act_StackOn(b3,b3,f,0),act_MoveTo(b1,l1,f,0),act_MoveTo(b2,l1,f,0),act_MoveTo(b3,l1,f,0),act_MoveTo(b2,l2,f,0),act_MoveTo(b3,l2,f,0)lpmln solving time: 1.72479987144MDP solving time: 0.00124597549438