Exemple #1
0
  private void setBasicNodeLogInfo(Node node, NodeLog nodeLog) {
    nodeLog.setBestBound(node.getBestBound());
    nodeLog.setCurrentNode(node.getId());

    if (!this.optimalSolutions.isEmpty()) {
      nodeLog.setIncumbent(Optional.of(optimalSolutions.first().getObjValue()));
    } else if (!this.otherSolutions.isEmpty()) {
      nodeLog.setIncumbent(Optional.of(otherSolutions.first().getObjValue()));
    } else {
      nodeLog.setIncumbent(Optional.<Double>absent());
    }
    nodeLog.setNodesCreated(this.nodesCreated);
    nodeLog.setNodeStackSize(this.nodeStack.size());
    SolutionStatus solutionStatus = basicLpSolver.getSolutionStatus();
    nodeLog.setCurrentLpStatus(solutionStatus);
    if (solutionStatus == SolutionStatus.OPTIMAL || solutionStatus == SolutionStatus.FEASIBLE) {
      nodeLog.setCurrentLp(Optional.of(basicLpSolver.getObjValue()));
    } else {
      nodeLog.setCurrentLp(Optional.<Double>absent());
    }
    nodeLog.setNewSolutionStatus(NewSolutionStatus.NONE);
    this.mipLog.setLastNodeLog(nodeLog);
    this.mipLog.onNewNode();
  }