branch.hh
Go to the documentation of this file.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
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef __GECODE_SET_BRANCH_HH__
00045 #define __GECODE_SET_BRANCH_HH__
00046
00047 #include "gecode/set.hh"
00048
00054 namespace Gecode { namespace Set { namespace Branch {
00055
00056
00057
00058
00059
00060
00061
00069 class ValMin {
00070 public:
00072 int val(const Space* home, SetView x) const;
00074 ModEvent tell(Space* home, unsigned int a, SetView x, int v);
00076 static Support::Symbol type(void);
00078 void branchingSpec(const Space* home,
00079 Reflection::VarMap& m, Reflection::BranchingSpec& bs,
00080 int alt, SetView x, int n) const;
00081 };
00082
00090 class ValMax {
00091 public:
00093 int val(const Space* home, SetView x) const;
00095 ModEvent tell(Space* home, unsigned int a, SetView x, int v);
00097 static Support::Symbol type(void);
00099 void branchingSpec(const Space* home,
00100 Reflection::VarMap& m, Reflection::BranchingSpec& bs,
00101 int alt, SetView x, int n) const;
00102 };
00103
00105 template <class SelView>
00106 static void
00107 create(Space* home, ViewArray<SetView>&, SetValBranch);
00108
00109
00110
00111
00112
00113
00120 class ByNone {
00121 public:
00123 ViewSelStatus init(const Space* home, SetView x);
00125 ViewSelStatus select(const Space* home, SetView x);
00127 static Support::Symbol type(void);
00128 };
00129
00136 class ByMinCard {
00137 private:
00139 unsigned int minCard;
00140 public:
00142 ViewSelStatus init(const Space* home, SetView x);
00144 ViewSelStatus select(const Space* home, SetView x);
00146 static Support::Symbol type(void);
00147 };
00148
00155 class ByMaxCard {
00156 private:
00158 unsigned int maxCard;
00159 public:
00161 ViewSelStatus init(const Space* home, SetView x);
00163 ViewSelStatus select(const Space* home, SetView x);
00165 static Support::Symbol type(void);
00166 };
00167
00174 class ByMinUnknown {
00175 private:
00177 int minUnknown;
00178 public:
00180 ViewSelStatus init(const Space* home, SetView x);
00182 ViewSelStatus select(const Space* home, SetView x);
00184 static Support::Symbol type(void);
00185 };
00186
00193 class ByMaxUnknown {
00194 private:
00196 int maxUnknown;
00197 public:
00199 ViewSelStatus init(const Space* home, SetView x);
00201 ViewSelStatus select(const Space* home, SetView x);
00203 static Support::Symbol type(void);
00204 };
00205
00206 }}}
00207
00208 #include "gecode/set/branch/select-val.icc"
00209 #include "gecode/set/branch/select-view.icc"
00210
00211 #endif
00212
00213