KFloatVarBranchingScheme

class KFloatVarBranchingScheme : public KBranchingScheme

This branching scheme is suited for branching on KFloatVar objects.

See

KBranchingScheme KIntVarBranchingScheme KAssignAndForbidd KSplitDomain KSettleDisjunction KProbe

Since

2016.1

Public Functions

KFloatVarBranchingScheme()

Constructor.

KFloatVarBranchingScheme(KProblem *problem)

Constructor with KProblem.

KFloatVarBranchingScheme(const KFloatVarBranchingScheme &toCopy)

Copy constructor.

virtual ~KFloatVarBranchingScheme()

Destructor.

KProblem *getProblem() const

Problem getter.

virtual KNumVar *selectNextBranchingVar()

Select the next KNumVar to branch on when one branch has been explored

virtual bool finishedBranching(KNumVar *branchingObject, double *branchingInformation, int currentBranchNumber)

Return true IFF branching is completed on one specific branch of the branch and bound

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual double *getNextBranch(KNumVar *branchingObject, double *branchingInformation, int currentBranchNumber)

Return the next branch

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void goDownBranch(KNumVar *branchingObject, double *branchingInformation, int currentBranchNumber)

This method is called once a branch has been selected and a decision must be taken

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void goUpBranch(KNumVar *branchingObject, double *branchingInformation, int currentBranchNumber)

This method is called upon backtrack on a specific branch

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void freeAllocatedObjectsForBranching(KNumVar *branchingObject, double *branchingInformation)

This method is called upon finishing branching for the current node and allows freeing objects created at the current node

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

virtual void *selectNextBranchingObject()

Select the next object (variable in general) to branch on when one branch has been explored.

virtual bool finishedBranching(void *branchingObject, void *branchingInformation, int currentBranchNumber)

Return true IFF branching is completed on one specific branch of the branch and bound.

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void *getNextBranch(void *branchingObject, void *branchingInformation, int currentBranchNumber)

Return the next branch to explore

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void goDownBranch(void *branchingObject, void *branchingInformation, int currentBranchNumber)

This method is called once a branch has been selected and a decision must be taken.

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void goUpBranch(void *branchingObject, void *branchingInformation, int currentBranchNumber)

This method is called upon backtrack on a specific branch

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information

  • currentBranchNumber – the current branch number

virtual void freeAllocatedObjectsForBranching(void *branchingObject, void *branchingInformation)

This method is called upon finishing branching for the current node and allows freeing objects created at the current node.

Parameters
  • branchingObject – the branching object

  • branchingInformation – the branching information