Go to the documentation of this file.
54 unsigned long long int lf;
81 void update(
int i,
bool failed);
96 void update(
int i,
bool failed);
135 int size(
void)
const;
194 template<
class Char,
class Traits>
195 std::basic_ostream<Char,Traits>&
222 return (_info & 1) != 0;
247 for (
int i=0;
i<
x.size();
i++)
249 x[
i].subscribe(home,*
new (home)
Idx(home,*
this,
c,
i),
true);
272 for (
int i=0;
i<
n;
i++) {
273 typename View::VarType xi(
x[
i].varimp());
278 for (
int i=0;
i<
n;
i++) {
295 double reward = 1.0 / (nf - chb[
i].lf + 1);
296 chb[
i].qs = (1.0 - alpha) * chb[
i].qs + alpha * reward;
298 double reward = 0.9 / (nf - chb[
i].lf + 1);
299 chb[
i].qs = (1.0 - alpha) * chb[
i].qs + alpha * reward;
321 assert((
i >= 0) && (
i <
object().
n));
365 template<
class Char,
class Traits>
366 std::basic_ostream<Char,Traits>&
369 std::basic_ostringstream<Char,Traits> s;
370 s.copyfmt(os); s.width(0);
372 if (chb.
size() > 0) {
374 for (
int i=1;
i<chb.size();
i++)
378 return os << s.str();
407 x[as.advisor().idx()].cancel(home,as.advisor(),
true);
410 return sizeof(*this);
446 int i = as.advisor().idx();
447 if (as.advisor().marked()) {
448 as.advisor().unmark();
451 as.advisor().dispose(home,
c);
456 int i = as.advisor().idx();
457 if (as.advisor().marked()) {
458 as.advisor().unmark();
461 as.advisor().dispose(home,
c);
void notice(Actor &a, ActorProperty p, bool duplicate=false)
Notice actor property.
const ModEvent ME_GEN_ASSIGNED
Generic modification event: variable is assigned a value.
Post propagator for SetVar x
static PropCost record(void)
For recording information (no propagation allowed)
void update(int i)
Update chb value at position i.
unsigned long long int lf
Last failure.
#define GECODE_VTABLE_EXPORT
ExecStatus ES_SUBSUMED(Propagator &p)
void acquire(void)
Acquire the mutex and possibly block.
int _info
Index and mark information.
static ExecStatus post(Home home, ViewArray< View > &x, CHB &chb)
Post chb recorder propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (record so that propagator runs last)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
const double chb_alpha_limit
Limit for decreasing alpha in CHB.
bool assigned(View x, int v)
Whether x is assigned to value v.
Class for CHB management.
void * mark(void *p)
Return marked pointer for unmarked pointer p.
Class to iterate over advisors of a council.
static const CHB def
Default (empty) chb information.
SharedHandle::Object * object(void) const
Access to the shared object.
Advisor with index and change information.
virtual void reschedule(Space &home)
Schedule function.
int size(void) const
Return number of chb values.
const double chb_qscore_init
Initial value for Q-score in CHB.
bool marked(void) const
Whether advisor's view has been marked.
void release(void)
Release mutex.
void unmark(void)
Mark advisor as unmodified.
void bump(void)
Bump failure count and alpha.
Gecode toplevel namespace
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Base-class for propagators.
Object for storing chb information.
int n
Number of chb values.
Storage(Home home, ViewArray< View > &x, typename BranchTraits< typename View::VarType >::Merit bm)
Initialize CHB info.
virtual Propagator * copy(Space &home)
Copy propagator during cloning.
Generic domain change information to be supplied to advisors.
Storage & object(void) const
Return object of correct type.
Home class for posting propagators
@ AP_DISPOSE
Actor must always be disposed.
CHB(void)
Construct as not yet intialized.
Idx(Space &home, Propagator &p, Council< Idx > &c, int i)
Constructor for creation.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const CHB &a)
Print chb values enclosed in curly brackets.
#define GECODE_KERNEL_EXPORT
const double chb_alpha_init
Initial value for alpha in CHB.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
void mark(void)
Mark advisor as modified.
const double chb_alpha_decrement
Alpha decrement in CHB.
static Support::Mutex m
Mutex to synchronize globally shared access.
Heap heap
The single global heap.
Council< Idx > c
The advisor council.
bool failed(void) const
Check whether space is failed.
Propagator for recording chb information.
@ ES_FIX
Propagation has computed fixpoint.
int idx(void) const
Get index of view.
CHB & operator=(const CHB &a)
Assignment operator.
Info * chb
CHB information.
double operator[](int i) const
Return chb value at position i.
CHB chb
Access to chb information.
void ignore(Actor &a, ActorProperty p, bool duplicate=false)
Ignore actor property.
Gecode::FloatVal c(-8, 8)
Recorder(Space &home, Recorder< View > &p)
Constructor for cloning p.
unsigned long int nf
Number of failures.
const PropCond PC_GEN_NONE
Propagation condition to be ignored (convenience)
void update(int i, bool failed)
Update chb information at position i.
void release(void)
Release the mutex.
A mutex for mutual exclausion among several threads.
int n
Number of negative literals for node type.
void acquire(void)
Acquire mutex.
int ModEventDelta
Modification event deltas.
@ ES_NOFIX
Propagation has not computed fixpoint.
Gecode::IntArgs i({1, 2, 3, 4})
@ ES_OK
Execution is okay.
int p
Number of positive literals for node type.
void init(Home home, ViewArray< View > &x, typename BranchTraits< typename View::VarType >::Merit bm)
Initialize for views x and Q-score as defined by bm.
Archive & operator<<(Archive &e, FloatNumBranch nl)
bool marked(void *p)
Check whether p is marked.
void bump(void)
Bump failure count and alpha.