Generated on Tue Feb 11 2025 17:33:26 for Gecode by doxygen 1.12.0
Gecode::Int::Extensional::PosCompact< View, Table > Class Template Reference

Domain consistent positive extensional propagator. More...

#include <extensional.hh>

Classes

class  Status
 Status management. More...
 

Public Types

typedef Compact< View, true >::ValidSupports ValidSupports
 
typedef Compact< View, true >::Range Range
 
typedef Compact< View, true >::CTAdvisor CTAdvisor
 
typedef Compact< View, true >::LostSupports LostSupports
 

Status management

enum  StatusType { SINGLE = 0 , MULTIPLE = 1 , NONE = 2 , PROPAGATING = 3 }
 Type of status. More...
 
Status status
 Propagator status.
 
Table table
 Current table.
 
bool empty (void) const
 Check whether the table is empty.
 
template<class TableProp >
 PosCompact (Space &home, TableProp &p)
 Constructor for cloning p.
 
 PosCompact (Home home, ViewArray< View > &x, const TupleSet &ts)
 Constructor for posting.
 
virtual void reschedule (Space &home)
 Schedule function.
 
virtual ExecStatus propagate (Space &home, const ModEventDelta &med)
 Perform propagation.
 
virtual Actorcopy (Space &home)
 Copy propagator during cloning.
 
size_t dispose (Space &home)
 Delete propagator and return its size.
 
virtual ExecStatus advise (Space &home, Advisor &a, const Delta &d)
 Give advice to propagator.
 
static ExecStatus post (Home home, ViewArray< View > &x, const TupleSet &ts)
 Post propagator for views x and table t.
 

Additional Inherited Members

- Public Member Functions inherited from Gecode::Int::Extensional::Compact< View, true >
virtual PropCost cost (const Space &home, const ModEventDelta &med) const
 Cost function.
 
- Public Member Functions inherited from Gecode::Propagator
ModEventDelta modeventdelta (void) const
 Return the modification event delta.
 
virtual void advise (Space &home, Advisor &a)
 Run advisor a to be run on failure in failed space.
 
double afc (void) const
 Return the accumlated failure count.
 
unsigned int id (void) const
 Return propagator id.
 
PropagatorGroup group (void) const
 Return group propagator belongs to.
 
void group (PropagatorGroup g)
 Add propagator to group g.
 
bool disabled (void) const
 Whether propagator is currently disabled.
 
- Public Member Functions inherited from Gecode::Actor
virtual ~Actor (void)
 To avoid warnings.
 
- Static Public Member Functions inherited from Gecode::Actor
static void * operator new (size_t s, Space &home)
 Allocate memory from space.
 
static void operator delete (void *p, Space &home)
 No-op for exceptions.
 
static void * operator new (size_t s)
 Not used.
 
static void operator delete (void *p)
 Not used.
 
- Public Attributes inherited from Gecode::Propagator
- Protected Types inherited from Gecode::Int::Extensional::Compact< View, true >
typedef TupleSet::Range Range
 Range type for supports.
 
- Protected Member Functions inherited from Gecode::Int::Extensional::Compact< View, true >
bool all (void) const
 Whether all variables are assigned.
 
bool atmostone (void) const
 Whether at most one variable is unassigned.
 
 Compact (Space &home, Compact &p)
 Constructor for cloning p.
 
 Compact (Home home, const TupleSet &ts)
 Constructor for posting.
 
void setup (Space &home, Table &table, ViewArray< View > &x)
 Setup the actual table.
 
bool full (const Table &table) const
 Check whether the table covers the whole Cartedion product.
 
const Rangerange (CTAdvisor &a, int n)
 Find range for n.
 
const BitSetDatasupports (CTAdvisor &a, int n)
 Return supports for value n.
 
- Protected Member Functions inherited from Gecode::Propagator
 Propagator (Home home)
 Constructor for posting.
 
 Propagator (Space &home, Propagator &p)
 Constructor for cloning p.
 
Propagatorfwd (void) const
 Return forwarding pointer during copying.
 
Kernel::GPI::Infogpi (void)
 Provide access to global propagator information.
 
- Protected Attributes inherited from Gecode::Int::Extensional::Compact< View, true >
const unsigned int n_words
 Number of words in supports.
 
TupleSet ts
 The tuple set.
 
Council< CTAdvisor > c
 The advisor council.
 

Detailed Description

template<class View, class Table>
class Gecode::Int::Extensional::PosCompact< View, Table >

Domain consistent positive extensional propagator.

This propagator implements the compact-table propagation algorithm based on: J. Demeulenaere et. al., Compact-Table: Efficiently filtering table constraints with reversible sparse bit-sets, CP 2016.

Requires

Definition at line 504 of file extensional.hh.

Member Typedef Documentation

◆ ValidSupports

template<class View , class Table >
Compact<View,true>::ValidSupports Gecode::Int::Extensional::PosCompact< View, Table >::ValidSupports

Definition at line 506 of file extensional.hh.

◆ Range

template<class View , class Table >
Compact<View,true>::Range Gecode::Int::Extensional::PosCompact< View, Table >::Range

Definition at line 507 of file extensional.hh.

◆ CTAdvisor

template<class View , class Table >
Compact<View,true>::CTAdvisor Gecode::Int::Extensional::PosCompact< View, Table >::CTAdvisor

Definition at line 508 of file extensional.hh.

◆ LostSupports

template<class View , class Table >
Compact<View,true>::LostSupports Gecode::Int::Extensional::PosCompact< View, Table >::LostSupports

Definition at line 509 of file extensional.hh.

Member Enumeration Documentation

◆ StatusType

template<class View , class Table >
enum Gecode::Int::Extensional::PosCompact::StatusType

Type of status.

Enumerator
SINGLE 

A single view has been touched.

MULTIPLE 

Multiple view have been touched.

NONE 

No view has been touched.

PROPAGATING 

The propagator is currently running.

Definition at line 521 of file extensional.hh.

Constructor & Destructor Documentation

◆ PosCompact() [1/2]

template<class View , class Table >
template<class TableProp >
Gecode::Int::Extensional::PosCompact< View, Table >::PosCompact ( Space & home,
TableProp & p )
inline

Constructor for cloning p.

Definition at line 460 of file compact.hpp.

◆ PosCompact() [2/2]

template<class View , class Table >
Gecode::Int::Extensional::PosCompact< View, Table >::PosCompact ( Home home,
ViewArray< View > & x,
const TupleSet & ts )
inline

Constructor for posting.

Definition at line 514 of file compact.hpp.

Member Function Documentation

◆ empty()

template<class View , class Table >
bool Gecode::Int::Extensional::PosCompact< View, Table >::empty ( void ) const

Check whether the table is empty.

◆ reschedule()

template<class View , class Table >
void Gecode::Int::Extensional::PosCompact< View, Table >::reschedule ( Space & home)
virtual

Schedule function.

Implements Gecode::Propagator.

Definition at line 538 of file compact.hpp.

◆ propagate()

template<class View , class Table >
ExecStatus Gecode::Int::Extensional::PosCompact< View, Table >::propagate ( Space & home,
const ModEventDelta & med )
virtual

Perform propagation.

Implements Gecode::Propagator.

Definition at line 547 of file compact.hpp.

◆ copy()

template<class View , class Table >
Actor * Gecode::Int::Extensional::PosCompact< View, Table >::copy ( Space & home)
virtual

Copy propagator during cloning.

Implements Gecode::Actor.

Definition at line 467 of file compact.hpp.

◆ post()

template<class View , class Table >
ExecStatus Gecode::Int::Extensional::PosCompact< View, Table >::post ( Home home,
ViewArray< View > & x,
const TupleSet & ts )
inlinestatic

Post propagator for views x and table t.

Definition at line 522 of file compact.hpp.

◆ dispose()

template<class View , class Table >
size_t Gecode::Int::Extensional::PosCompact< View, Table >::dispose ( Space & home)
inlinevirtual

Delete propagator and return its size.

Reimplemented from Gecode::Int::Extensional::Compact< View, true >.

Definition at line 531 of file compact.hpp.

◆ advise()

template<class View , class Table >
ExecStatus Gecode::Int::Extensional::PosCompact< View, Table >::advise ( Space & home,
Advisor & a,
const Delta & d )
virtual

Give advice to propagator.

Reimplemented from Gecode::Propagator.

Definition at line 615 of file compact.hpp.

Member Data Documentation

◆ status

template<class View , class Table >
Status Gecode::Int::Extensional::PosCompact< View, Table >::status

Propagator status.

Definition at line 549 of file extensional.hh.

◆ table

template<class View , class Table >
Table Gecode::Int::Extensional::PosCompact< View, Table >::table

Current table.

Definition at line 551 of file extensional.hh.


The documentation for this class was generated from the following files: