successor.setCost(current.getCost() + op.getCost()); successor.setParent(current); successor.setOperator(index);
successor.setCost(current.getCost() + op.getCost()); successor.setHeuristic(0); successor.setParent(current);
successor.setCost(current.getCost() + op.getCost()); successor.setHeuristic(0); successor.setParent(current);
/** * Get the successors from a node. * * @param parent the parent node. * @param problem the coded problem to solve. * @param heuristic the heuristic used. * @return the list of successors from the parent node. */ private LinkedList<Node> getSuccessors(Node parent, CodedProblem problem, Heuristic heuristic) { final LinkedList<Node> successors = new LinkedList<>(); int index = 0; for (BitOp op : problem.getOperators()) { if (op.isApplicable(parent)) { final BitState nextState = new BitState(parent); nextState.or(op.getCondEffects().get(0).getEffects().getPositive()); nextState.andNot(op.getCondEffects().get(0).getEffects().getNegative()); // Apply the effect of the applicable operator final Node successor = new Node(nextState); this.setCreatedNodes(this.getCreatedNodes() + 1); successor.setCost(parent.getCost() + op.getCost()); successor.setHeuristic(heuristic.estimate(successor, problem.getGoal())); successor.setParent(parent); successor.setOperator(index); successor.setDepth(parent.getDepth() + 1); successors.add(successor); } index++; } return successors; }
successor.setCost(parent.getCost() + op.getCost()); successor.setHeuristic(heuristic.estimate(nextState, problem.getGoal())); successor.setParent(parent);
successor.setCost(parent.getCost() + op.getCost()); successor.setHeuristic(heuristic.estimate(nextState, problem.getGoal())); successor.setParent(parent);
successor.setCost(current.getCost() + op.getCost()); successor.setHeuristic(heuristic.estimate(nextState, codedProblem.getGoal())); successor.setParent(current);
successor.setCost(current.getCost() + op.getCost()); successor.setHeuristic(heuristic.estimate(nextState, problem.getGoal())); successor.setParent(current);