00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _CSP_HEURISTICS_VARIABLE_Branching_H
00026 #define _CSP_HEURISTICS_VARIABLE_Branching_H
00027
00028
00029 CSP_NAMESPACE_BEGIN(csp);
00030 CSP_NAMESPACE_BEGIN(heuristics);
00031 CSP_NAMESPACE_BEGIN(variables);
00032
00033
00049 class CSP_API Branching :
00050 public VariableOH
00051 {
00052 public:
00053 enum Preference
00054 {
00056 Minimum,
00057
00059 Maximum
00060 };
00061
00071 Branching(
00072 Decomposition& decomposition,
00073 const vector<pair<double, double> >& intervals,
00074 double quality = 1,
00075 Preference preference = Minimum);
00076
00084 virtual void select(vlist_type& selectable, vlist_type& selected);
00085
00086 private:
00088 Branching(const Branching&);
00089
00091 Branching& operator=(const Branching&);
00092
00094 Preference m_preference;
00095 };
00096
00097
00098 CSP_NAMESPACE_END(variables);
00099 CSP_NAMESPACE_END(heuristics);
00100 CSP_NAMESPACE_END(csp);
00101
00102
00103 #endif // _CSP_HEURISTICS_VARIABLE_Branching_H
00104
00105
00106
00107