Go to the documentation of this file.
50 : Support::RawBitSetBase(
r,static_cast<unsigned int>(
n)) {}
54 : Support::RawBitSetBase(
r,static_cast<unsigned int>(
n),ns) {}
65 return RawBitSetBase::get(static_cast<unsigned int>(
i));
69 RawBitSetBase::set(static_cast<unsigned int>(
i));
73 RawBitSetBase::clear(static_cast<unsigned int>(
i));
77 RawBitSetBase::copy(static_cast<unsigned int>(
n),ns);
81 RawBitSetBase::clearall(static_cast<unsigned int>(
n));
87 unsigned int n = static_cast<unsigned int>(_n);
89 unsigned int pos =
n / bpb;
90 unsigned int bits =
n % bpb;
94 for (
unsigned int i=0;
i<
pos;
i++) {
116 : ns(ns0),
c(ns.next(0)) {}
123 return static_cast<int>(
c);
128 :
n(
r,m),
c(0), w(0) {}
131 n.incl(
i);
c++; w += wi;
135 n.excl(
i);
c--; w -= wi;
142 bins(static_cast<unsigned int>(m)),
184 unsigned int m =
node[
p].
d;
191 while (j() <
nodes()) {
192 if (
node[j()].
d > m) {
213 assert(
i == static_cast<int>(
cur.
c));
251 bv[0]=
b[
i]; bv[1]=
b[j]; bv[2]=
b[k];
316 p.incl(
i); empty =
false;
336 assert(j == static_cast<int>(
max.
c));
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
Post propagator for SetVar x
unsigned int w
Weight (initialized with degree before graph is reduced)
void a(BitSetData a)
Perform "and" with a.
ExecStatus bk(NodeSet &p, NodeSet &x)
Run Bosch-Kerbron algorithm for finding max cliques.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for views x.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
const IntVarArgs & b
Bin variables.
Passing integer variables.
IntSet maxclique(void) const
Return maximal clique found.
BitSetData * data
Stored bits.
Stack with fixed number of elements.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from region.
Clique(Region &r, int m)
Constructor for m nodes.
void o(BitSetData a)
Perform "or" with a.
Nodes(const NodeSet &ns)
Initialize for nodes in ns.
Clique cur
Current clique.
void edge(int i, int j, bool add=true)
Add or remove an edge between nodes i and j (i must be less than j)
void incl(int i, unsigned int w)
Include node i with weight w.
Gecode toplevel namespace
bool in(int i) const
Test whether node i is included.
void allocate(Region &r, int n)
Allocate node set for n nodes.
~ConflictGraph(void)
Destructor.
void copy(int n, const NodeSet &ns)
Copy elements from node set ns with n nodes.
int pivot(const NodeSet &a, const NodeSet &b) const
Find a pivot node with maximal degree from a or b.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
NodeSet(void)
Keep uninitialized.
bool none(void) const
Whether no bits are set.
void excl(int i)
Exclude node i.
Home class for posting propagators
void init(A &a, unsigned int sz, bool setbits=false)
Initialize for sz bits and allocator a (only after default constructor)
Post propagator for SetVar SetOpType SetVar SetRelType r
Clique max
Largest clique so far.
void operator++(void)
Move iterator to next node (if possible)
bool adjacent(int i, int j) const
Test whether nodes i and j are adjacent.
void free(void)
Free allocate memory.
ExecStatus post(void)
Post additional constraints.
void empty(int n)
Clear the whole node set for n nodes.
#define GECODE_NEVER
Assert that this command is never executed.
Node(void)
Default constructor.
void incl(int i)
Include node i.
Node * node
The nodes in the graph.
int size(void) const
Return size of array (number of elements)
unsigned int c
Cardinality of clique.
int operator()(void) const
Return current node.
void allocate(A &a, unsigned int sz)
Allocate for sz bits and allocator a (only after default constructor)
int nodes(void) const
Return number of nodes.
ConflictGraph(Home &home, Region &r, const IntVarArgs &b, int m)
Initialize graph.
unsigned int w
Weight of clique.
Gecode::FloatVal c(-8, 8)
ExecStatus clique(void)
Report the current clique.
NodeSet n
Nodes in the clique.
int n
Number of negative literals for node type.
static bool iwn(NodeSet &iwa, const NodeSet &a, NodeSet &iwb, const NodeSet &b, const NodeSet &c, int n)
Execution has resulted in failure.
Gecode::IntArgs i({1, 2, 3, 4})
bool pos(const View &x)
Test whether x is postive.
void init(Region &r, int n)
Initialize node set for n nodes.
void init(bool setbits=false)
Initialize with all bits set if setbits.
bool get(unsigned int i) const
Access value at bit i.
int p
Number of positive literals for node type.
bool none(unsigned int sz) const
Test whether no bits are set.
void excl(int i, unsigned int w)
Exclude node i with weight w.
unsigned int bins
Number of bins.