* \brief Which Boolean variable to select for branching * * \ingroup TaskModelIntBranch */
| 4801 | * \ingroup TaskModelIntBranch |
| 4802 | */ |
| 4803 | class BoolVarBranch : public VarBranch<BoolVar> { |
| 4804 | public: |
| 4805 | /// Which variable selection |
| 4806 | enum Select { |
| 4807 | SEL_NONE = 0, ///< First unassigned |
| 4808 | SEL_RND, ///< Random (uniform, for tie breaking) |
| 4809 | SEL_MERIT_MIN, ///< With least merit |
| 4810 | SEL_MERIT_MAX, ///< With highest merit |
| 4811 | SEL_DEGREE_MIN, ///< With smallest degree |
| 4812 | SEL_DEGREE_MAX, ///< With largest degree |
| 4813 | SEL_AFC_MIN, ///< With smallest accumulated failure count |
| 4814 | SEL_AFC_MAX, ///< With largest accumulated failure count |
| 4815 | SEL_ACTION_MIN, ///< With lowest action |
| 4816 | SEL_ACTION_MAX, ///< With highest action |
| 4817 | SEL_CHB_MIN, ///< With lowest CHB |
| 4818 | SEL_CHB_MAX ///< With highest CHB |
| 4819 | }; |
| 4820 | protected: |
| 4821 | /// Which variable to select |
| 4822 | Select s; |
| 4823 | public: |
| 4824 | /// Initialize with strategy SEL_NONE |
| 4825 | BoolVarBranch(void); |
| 4826 | /// Initialize with random number generator \a r |
| 4827 | BoolVarBranch(Rnd r); |
| 4828 | /// Initialize with selection strategy \a s and tie-break limit function \a t |
| 4829 | BoolVarBranch(Select s, BranchTbl t); |
| 4830 | /// Initialize with selection strategy \a s, decay factor \a d, and tie-break limit function \a t |
| 4831 | BoolVarBranch(Select s, double d, BranchTbl t); |
| 4832 | /// Initialize with selection strategy \a s, AFC \a a, and tie-break limit function \a t |
| 4833 | BoolVarBranch(Select s, BoolAFC a, BranchTbl t); |
| 4834 | /// Initialize with selection strategy \a s, action \a a, and tie-break limit function \a t |
| 4835 | BoolVarBranch(Select s, BoolAction a, BranchTbl t); |
| 4836 | /// Initialize with selection strategy \a s, CHB \a c, and tie-break limit function \a t |
| 4837 | BoolVarBranch(Select s, BoolCHB c, BranchTbl t); |
| 4838 | /// Initialize with selection strategy \a s, branch merit function \a mf, and tie-break limit function \a t |
| 4839 | BoolVarBranch(Select s, BoolBranchMerit mf, BranchTbl t); |
| 4840 | /// Return selection strategy |
| 4841 | Select select(void) const; |
| 4842 | /// Expand decay factor into AFC or action |
| 4843 | void expand(Home home, const BoolVarArgs& x); |
| 4844 | }; |
| 4845 | |
| 4846 | /** |
| 4847 | * \defgroup TaskModelIntBranchVar Variable selection for integer and Boolean variables |
no outgoing calls
no test coverage detected