returnedSolution.getCost(), returnedSolution.getDepth(), returnedSolution.getHeuristic())); bound = returnedSolution.getCost(); solution = returnedSolution;
result.setParent(current); result.setOperator(index); result.setDepth(current.getDepth() + 1); open.add(result); openSet.put(result, result); state.setOperator(index); state.setHeuristic(heuristic.estimate(state, codedProblem.getGoal())); state.setDepth(current.getDepth() + 1); open.add(state); openSet.put(state, state); result.setParent(current); result.setOperator(index); result.setDepth(current.getDepth() + 1);
successor.setParent(current); successor.setOperator(index); successor.setDepth(current.getDepth() + 1);
successor.setParent(current); successor.setOperator(index); successor.setDepth(current.getDepth() + 1);
current.getCost(), current.getDepth(), current.getHeuristic())); solution = current; fireSolution(new SolutionEvent(this, solution, problem)); result.setParent(current); result.setOperator(index); result.setDepth(current.getDepth() + 1); if (result.getCost() < boundCost && result.getDepth() <= boundDepth) { open.add(result); openSet.put(result, result); state.setOperator(index); state.setHeuristic(heuristic.estimate(state, problem.getGoal())); state.setDepth(current.getDepth() + 1); if (state.getCost() < boundCost && state.getDepth() <= boundDepth) { open.add(state); openSet.put(state, state); result.setParent(current); result.setOperator(index); result.setDepth(current.getDepth() + 1);
successor.setParent(current); successor.setOperator(index); successor.setDepth(current.getDepth() + 1);
current.getCost(), current.getDepth(), current.getHeuristic())); solution = current; fireSolution(new SolutionEvent(this, solution, problem)); successor.setParent(current); successor.setOperator(index); successor.setDepth(current.getDepth() + 1); if (successor.getCost() < boundCost && successor.getDepth() <= boundDepth) { openSet.add(successor);
/** * 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.setParent(parent); successor.setOperator(index); successor.setDepth(parent.getDepth() + 1); successors.add(successor);
successor.setParent(parent); successor.setOperator(index); successor.setDepth(parent.getDepth() + 1); successors.add(successor);
successor.setParent(current); successor.setOperator(index); successor.setDepth(current.getDepth() + 1); openSet.add(successor);