_goal_find_solution = goal;
_cost = cost;
_goal_limit_cost = new ConstraintExpLessValue(_cost, _cost.max()+1);
_goal_save_cost = new SaveCost(constrainer());
_goal_decrement_cost = new DecrementCost(constrainer());
_goal_fail = new GoalFail(constrainer());
_number_of_solutions = 0;
_trace = trace;
_client_tracer = null;
_goal_saves_solution = goal_saves_solution;
}