def gen_actions(): parameters=[x, y, z] preconditions = list() preconditions.append(conditions.Atom(ON, [x, z])) preconditions.append(conditions.Atom(CLEAR, [x])) preconditions.append(conditions.Atom(CLEAR, [y])) preconditions.append(conditions.NegatedAtom('=', [y, z])) preconditions.append(conditions.NegatedAtom('=', [x, z])) preconditions.append(conditions.NegatedAtom('=', [x, y])) preconditions.append(conditions.NegatedAtom('=', [x, Table])) action_effects = list() action_effects.append(effects.Effect(parameters=[], condition=conditions.Truth(), literal=conditions.Atom(ON,[x,y]))) action_effects.append(effects.Effect(parameters=[], condition=conditions.Truth(), literal=conditions.NegatedAtom(ON, [x,z]))) action_effects.append(effects.Effect(parameters=[], condition=conditions.NegatedAtom('=', [z, Table]), literal=conditions.Atom(CLEAR, [z]))) action_effects.append(effects.Effect(parameters=[], condition=conditions.NegatedAtom('=', [y, Table]), literal=conditions.NegatedAtom(CLEAR, [y]))) puton = actions.Action('puton', parameters, len(parameters), conditions.Conjunction(preconditions).simplified(), action_effects, None) return [puton]
def gen_init(): init = set() init.add(conditions.Atom(block, [a])) init.add(conditions.Atom(block, [b])) init.add(conditions.Atom(block, [c])) init.add(conditions.Atom(block, [Table])) init.add(conditions.Atom(ON, [c, a])) init.add(conditions.Atom(ON, [a, Table])) init.add(conditions.Atom(ON, [b, Table])) init.add(conditions.Atom(CLEAR, [c])) init.add(conditions.Atom(CLEAR, [b])) init.add(conditions.Atom(CLEAR, [Table])) return init
def gen_goal(): goal = set() goal.add(conditions.Atom(ON, [b, c])) goal.add(conditions.Atom(ON, [a, b])) return conditions.Conjunction(goal)