choco.palm.benders
Class BendersSolver

java.lang.Object
  extended by choco.AbstractEntity
      extended by choco.Solver
          extended by choco.palm.benders.BendersSolver
All Implemented Interfaces:
Entity

public class BendersSolver
extends Solver

A solver for the benders algorithm


Field Summary
static java.util.logging.Logger logger
           
protected  IntDomainVar[] objectives
           
protected  MasterSlavesRelation relation
          Objective function
protected  java.util.ArrayList subValIterator
           
protected  java.util.ArrayList subValSelector
           
protected  java.util.ArrayList subVarSelector
          Branching heuristics for each sub-problem
 
Fields inherited from class choco.Solver
doMaximize, firstSolution, loggingMaxDepth, nodeLimit, objective, PROPAGATION, restart, SEARCH, SILENT, SOLUTION, solver, timeLimit, valIterator, valSelector, varSelector
 
Fields inherited from class choco.AbstractEntity
hook, problem
 
Constructor Summary
BendersSolver(AbstractProblem pb)
           
 
Method Summary
protected  void attachMasterGoal(AbstractIntBranching branching)
           
protected  void attachSubGoal(int i, AbstractIntBranching branching)
           
protected  void generateMasterGoal(AbstractProblem pb)
           
 void generateSearchSolver(AbstractProblem pb)
           
protected  void generateSubGoals(AbstractProblem pb)
           
 java.lang.Number getOptimumValue()
           
 void initHeuristic(java.util.ArrayList heuri)
           
 void setObjectives(IntDomainVar[] objectives)
           
 void setRelation(MasterSlavesRelation relation)
           
 void setSubValIterator(int i, IValIterator valIterator)
          Sets the value iterator the search should use
 void setSubValSelector(int i, IValSelector valSelector)
          Sets the value selector the search should use
 void setSubVarSelector(int i, IVarSelector varSelector)
          Sets the variable selector the search solver should use.
 
Methods inherited from class choco.Solver
addGoal, attachGoal, flushLog, flushLogs, generateGoal, getEncounteredLimit, getFirstSolution, getNbSolutions, getSearchSolver, isEncounteredLimit, launch, setDoMaximize, setFirstSolution, setLoggingMaxDepth, setNodeLimit, setObjective, setRestart, setTimeLimit, setValIterator, setValSelector, setVarSelector, setVerbosity, setVerbosity
 
Methods inherited from class choco.AbstractEntity
getProblem, pretty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

public static java.util.logging.Logger logger

subVarSelector

protected java.util.ArrayList subVarSelector
Branching heuristics for each sub-problem


subValIterator

protected java.util.ArrayList subValIterator

subValSelector

protected java.util.ArrayList subValSelector

objectives

protected IntDomainVar[] objectives

relation

protected MasterSlavesRelation relation
Objective function

Constructor Detail

BendersSolver

public BendersSolver(AbstractProblem pb)
Method Detail

initHeuristic

public void initHeuristic(java.util.ArrayList heuri)

setSubVarSelector

public void setSubVarSelector(int i,
                              IVarSelector varSelector)
Sets the variable selector the search solver should use.


setSubValIterator

public void setSubValIterator(int i,
                              IValIterator valIterator)
Sets the value iterator the search should use


setSubValSelector

public void setSubValSelector(int i,
                              IValSelector valSelector)
Sets the value selector the search should use


generateSearchSolver

public void generateSearchSolver(AbstractProblem pb)
Overrides:
generateSearchSolver in class Solver

generateMasterGoal

protected void generateMasterGoal(AbstractProblem pb)

attachMasterGoal

protected void attachMasterGoal(AbstractIntBranching branching)

generateSubGoals

protected void generateSubGoals(AbstractProblem pb)

attachSubGoal

protected void attachSubGoal(int i,
                             AbstractIntBranching branching)

setRelation

public void setRelation(MasterSlavesRelation relation)

setObjectives

public void setObjectives(IntDomainVar[] objectives)

getOptimumValue

public java.lang.Number getOptimumValue()
Overrides:
getOptimumValue in class Solver