Generated on Thu Jan 16 2025 00:00:00 for Gecode by doxygen 1.14.0

Custom brancher implementing CDBF. More...

Classes

class  Choice
 Choice More...

Public Member Functions

 CDBF (Home home, ViewArray< Int::IntView > &l, ViewArray< Int::IntView > &b, IntSharedArray &s)
 Construct brancher.
 CDBF (Space &home, CDBF &cdbf)
 Copy constructor.
virtual Actorcopy (Space &home)
 Copy brancher.
virtual size_t dispose (Space &home)
 Delete brancher and return its size.
virtual bool status (const Space &) const
 Check status of brancher, return true if alternatives left.
virtual Gecode::Choicechoice (Space &)
 Return choice.
virtual const Gecode::Choicechoice (const Space &, Archive &e)
 Return choice.
virtual ExecStatus commit (Space &home, const Gecode::Choice &_c, unsigned int a)
 Perform commit for choice _c and alternative a.
virtual void print (const Space &, const Gecode::Choice &_c, unsigned int a, std::ostream &o) const
 Print explanation.
virtual NGLngl (Space &home, const Choice &c, unsigned int a) const
 Create no-good literal for choice c and alternative a.
unsigned int id (void) const
 Return brancher id.
BrancherGroup group (void) const
 Return group brancher belongs to.
void group (BrancherGroup g)
 Add brancher to group g.
virtual ~Actor (void)
 To avoid warnings.

Static Public Member Functions

static void post (Home home, ViewArray< Int::IntView > &l, ViewArray< Int::IntView > &b, IntSharedArray &s)
 Brancher post function.
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.

Protected Attributes

ViewArray< Int::IntViewload
 Views for the loads.
ViewArray< Int::IntViewbin
 Views for the bins.
IntSharedArray size
 Array of sizes (shared)
int item
 Next view to branch on.

Additional Inherited Members

Protected Member Functions inherited from Gecode::Brancher
 Brancher (Home home)
 Constructor for creation.
 Brancher (Space &home, Brancher &b)
 Constructor for cloning b.

Detailed Description

Custom brancher implementing CDBF.

This class implements complete decreasing best fit branching (CDBF) from: Ian Gent and Toby Walsh. From approximate to optimal solutions: Constructing pruning and propagation rules. IJCAI 1997.

Additional domination rules are taken from: Paul Shaw. A Constraint for Bin Packing. CP 2004

Definition at line 198 of file bin-packing.cpp.

Constructor & Destructor Documentation

◆ CDBF() [1/2]

CDBF::CDBF ( Home home,
ViewArray< Int::IntView > & l,
ViewArray< Int::IntView > & b,
IntSharedArray & s )
inline

Construct brancher.

Definition at line 241 of file bin-packing.cpp.

◆ CDBF() [2/2]

CDBF::CDBF ( Space & home,
CDBF & cdbf )
inline

Copy constructor.

Definition at line 253 of file bin-packing.cpp.

Member Function Documentation

◆ post()

void CDBF::post ( Home home,
ViewArray< Int::IntView > & l,
ViewArray< Int::IntView > & b,
IntSharedArray & s )
inlinestatic

Brancher post function.

Definition at line 247 of file bin-packing.cpp.

◆ copy()

virtual Actor * CDBF::copy ( Space & home)
inlinevirtual

Copy brancher.

Implements Gecode::Actor.

Definition at line 259 of file bin-packing.cpp.

◆ dispose()

virtual size_t CDBF::dispose ( Space & home)
inlinevirtual

Delete brancher and return its size.

Reimplemented from Gecode::Actor.

Definition at line 263 of file bin-packing.cpp.

◆ status()

virtual bool CDBF::status ( const Space & ) const
inlinevirtual

Check status of brancher, return true if alternatives left.

Implements Gecode::Brancher.

Definition at line 270 of file bin-packing.cpp.

◆ choice() [1/2]

virtual Gecode::Choice * CDBF::choice ( Space & )
inlinevirtual

Return choice.

Implements Gecode::Brancher.

Definition at line 278 of file bin-packing.cpp.

◆ choice() [2/2]

virtual const Gecode::Choice * CDBF::choice ( const Space & ,
Archive & e )
inlinevirtual

Return choice.

Implements Gecode::Brancher.

Definition at line 331 of file bin-packing.cpp.

◆ commit()

virtual ExecStatus CDBF::commit ( Space & home,
const Gecode::Choice & _c,
unsigned int a )
inlinevirtual

Perform commit for choice _c and alternative a.

Implements Gecode::Brancher.

Definition at line 340 of file bin-packing.cpp.

◆ print()

virtual void CDBF::print ( const Space & ,
const Gecode::Choice & _c,
unsigned int a,
std::ostream & o ) const
inlinevirtual

Print explanation.

Reimplemented from Gecode::Brancher.

Definition at line 360 of file bin-packing.cpp.

Member Data Documentation

◆ load

ViewArray<Int::IntView> CDBF::load
protected

Views for the loads.

Definition at line 201 of file bin-packing.cpp.

◆ bin

ViewArray<Int::IntView> CDBF::bin
protected

Views for the bins.

Definition at line 203 of file bin-packing.cpp.

◆ size

IntSharedArray CDBF::size
protected

Array of sizes (shared)

Definition at line 205 of file bin-packing.cpp.

◆ item

int CDBF::item
mutableprotected

Next view to branch on.

Definition at line 207 of file bin-packing.cpp.


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