choco.cp.solver.search.integer.branching
Class ImpactBasedBranching

java.lang.Object
  extended by choco.kernel.solver.branch.AbstractBranchingStrategy
      extended by choco.kernel.solver.branch.AbstractIntBranchingStrategy
          extended by choco.kernel.solver.branch.AbstractLargeIntBranchingStrategy
              extended by choco.cp.solver.search.integer.branching.ImpactBasedBranching
All Implemented Interfaces:
BranchingStrategy, IntBranching

public class ImpactBasedBranching
extends AbstractLargeIntBranchingStrategy

Impact based branchging based on the code from Hadrien

Written by Guillaumme on 17 may 2008


Nested Class Summary
static class ImpactBasedBranching.AbstractImpactStrategy
           
static interface ImpactBasedBranching.ImpactStrategy
           
 
Field Summary
protected  Random randomBreakTies
           
protected  Random randValueChoice
           
 
Fields inherited from class choco.kernel.solver.branch.AbstractBranchingStrategy
LOG_DECISION_MSG_ASSIGN, LOG_DECISION_MSG_REMOVE, LOG_DOWN_MSG, LOG_UP_MSG, manager
 
Fields inherited from interface choco.kernel.solver.branch.BranchingStrategy
LOGGER
 
Constructor Summary
ImpactBasedBranching(Solver solver)
           
ImpactBasedBranching(Solver solver, IntDomainVar[] vars)
           
ImpactBasedBranching(Solver solver, IntDomainVar[] vars, ImpactBasedBranching.AbstractImpactStrategy ibs)
           
 
Method Summary
 boolean finishedBranching(IntBranchingDecision ctx)
          Checks whether all branches have already been explored at the current choice point.
 int getBestVal(IntDomainVar var)
           
 String getDecisionLogMessage(IntBranchingDecision decision)
          The logging message associated with the current decision.
 ImpactBasedBranching.AbstractImpactStrategy getImpactStrategy()
           
 void goDownBranch(IntBranchingDecision ctx)
          Performs the action, so that we go down a branch from the current choice point.
protected  void goDownBranch(IntDomainVar var, int val)
           
 void goUpBranch(IntBranchingDecision decision)
          Performs the action, so that we go up the current branch to the father choice point.
 Object selectBranchingObject()
          selecting the object under scrutiny (that object on which an alternative will be set)
 void setFirstBranch(IntBranchingDecision ctx)
          compute the first decision by setting a branching value or modifying the branching object
 void setNextBranch(IntBranchingDecision ctx)
          compute the next decision by setting a branching value or modifying the branching object
 void setRandomValueChoice(long seed)
           
 void setRandomVarTies(int seed)
           
 
Methods inherited from class choco.kernel.solver.branch.AbstractIntBranchingStrategy
getDefaultAssignMsg, getDefaultAssignOrForbidMsg
 
Methods inherited from class choco.kernel.solver.branch.AbstractBranchingStrategy
getManager, getNextBranching, initBranching, initConstraintForBranching, setNextBranching, setSolver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

randValueChoice

protected Random randValueChoice

randomBreakTies

protected Random randomBreakTies
Constructor Detail

ImpactBasedBranching

public ImpactBasedBranching(Solver solver,
                            IntDomainVar[] vars,
                            ImpactBasedBranching.AbstractImpactStrategy ibs)

ImpactBasedBranching

public ImpactBasedBranching(Solver solver,
                            IntDomainVar[] vars)

ImpactBasedBranching

public ImpactBasedBranching(Solver solver)
Method Detail

getImpactStrategy

public ImpactBasedBranching.AbstractImpactStrategy getImpactStrategy()

setRandomVarTies

public void setRandomVarTies(int seed)

selectBranchingObject

public Object selectBranchingObject()
                             throws ContradictionException
Description copied from interface: BranchingStrategy
selecting the object under scrutiny (that object on which an alternative will be set)

Returns:
the object on which an alternative will be set (often a variable)
Throws:
ContradictionException

setFirstBranch

public final void setFirstBranch(IntBranchingDecision ctx)
Description copied from interface: IntBranching
compute the first decision by setting a branching value or modifying the branching object


setNextBranch

public void setNextBranch(IntBranchingDecision ctx)
Description copied from interface: IntBranching
compute the next decision by setting a branching value or modifying the branching object


setRandomValueChoice

public void setRandomValueChoice(long seed)

getBestVal

public int getBestVal(IntDomainVar var)

finishedBranching

public boolean finishedBranching(IntBranchingDecision ctx)
Description copied from interface: IntBranching
Checks whether all branches have already been explored at the current choice point.

Parameters:
ctx - the last decision applied
Returns:
true if no more branches can be generated

goDownBranch

protected final void goDownBranch(IntDomainVar var,
                                  int val)
                           throws ContradictionException
Throws:
ContradictionException

goDownBranch

public void goDownBranch(IntBranchingDecision ctx)
                  throws ContradictionException
Description copied from interface: IntBranching
Performs the action, so that we go down a branch from the current choice point.

Parameters:
ctx - the decision to apply.
Throws:
ContradictionException - if a domain empties or a contradiction is infered

goUpBranch

public void goUpBranch(IntBranchingDecision decision)
                throws ContradictionException
Description copied from interface: IntBranching
Performs the action, so that we go up the current branch to the father choice point.

Parameters:
decision - the decision that has been set at the father choice point
Throws:
ContradictionException - if a domain empties or a contradiction is infered

getDecisionLogMessage

public String getDecisionLogMessage(IntBranchingDecision decision)
Description copied from interface: IntBranching
The logging message associated with the current decision.

Parameters:
decision - current decision
Returns:
logging message.


Copyright © 2012. All Rights Reserved.