Esempio n. 1
0
def first_goals(goal, operator_nodes, variable_nodes, tree):
  goals = filter(lambda (var, value): len(variable_nodes[var][value].operators) == 1,
                 set(flatten(get_conditions(o, tree).iteritems() for o in (operator_nodes[goal].operators | {goal}))))
  print set(flatten(get_conditions(o, tree).iteritems() for o in operator_nodes[goal].operators))
  print goals
  print filter(lambda o: o != goal and any(e in goals for e in o.eff()), applicable(goal, operator_nodes, variable_nodes))
  return filter(lambda o: o != goal and any(e in goals for e in o.eff()), applicable(goal, operator_nodes, variable_nodes))
Esempio n. 2
0
def any_goals(goal, operator_nodes, variable_nodes, tree):
  goals = set(flatten(get_conditions(o, tree).iteritems() for o in (operator_nodes[goal].operators | {goal})))
  return filter(lambda o: any(e in goals for e in o.eff()), applicable(goal, operator_nodes, variable_nodes))