A type holding data (possibly) shared between a set of minimize constraints. More...
#include <minimize_constraint.h>
| Classes | |
| struct | LevelWeight | 
| A type to represent a weight at a certain level.  More... | |
| Public Types | |
| typedef SharedMinimizeData | ThisType | 
| typedef PodVector< LevelWeight > ::type | WeightVec | 
| A type for holding sparse vectors of level weights of a multi-level constraint. | |
| Public Member Functions | |
| wsum_t | adjust (uint32 x) const | 
| Returns the adjustment for level x. | |
| bool | checkNext () const | 
| Returns whether minimization should search for solutions with current or next smaller upper bound. | |
| uint32 | generation () const | 
| bool | heuristic (Solver &s, bool full) const | 
| Assumes literals from last model to false until either a conflict is reached or all literals are assigned. | |
| uint32 | level (uint32 i) const | 
| Returns the highest level of the literal with the given index i. | |
| wsum_t | lower (uint32 x) const | 
| Returns the lower bound of level x. | |
| const wsum_t * | lower () const | 
| uint32 | maxLevel () const | 
| MinimizeMode | mode () const | 
| Returns the active minimization mode. | |
| uint32 | numRules () const | 
| Number of minimize statements contained in this constraint. | |
| bool | optimize () const | 
| Returns true if optimization is active. | |
| wsum_t | optimum (uint32 x) const | 
| Returns the current (ajusted and possibly tentative) optimum for level x. | |
| void | release () | 
| Decreases the object's reference count and destroys it if reference count drops to 0. | |
| ThisType * | share () | 
| Increases the reference count of this object. | |
| SharedMinimizeData (const SumVec &lhsAdjust, MinimizeMode m=MinimizeMode_t::optimize) | |
| wsum_t | upper (uint32 x) const | 
| Returns the upper bound of level x. | |
| const wsum_t * | upper () const | 
| weight_t | weight (uint32 i) const | 
| Returns the most important weight of the literal with the given index i. | |
| interface for optimization | |
| The following functions shall not be called concurrently. | |
| bool | setMode (MinimizeMode m, const wsum_t *bound=0, uint32 boundSize=0) | 
| Sets the enumeration mode and (optionally) an initial bound. | |
| bool | setMode (MinimizeMode m, const SumVec &bound) | 
| void | resetBounds () | 
| MinimizeConstraint * | attach (Solver &s, uint32 strat=UINT32_MAX, bool addRef=true) | 
| Attaches a new minimize constraint to this data object. | |
| const SumVec * | setOptimum (const wsum_t *opt) | 
| Makes opt the new (tentative) optimum. | |
| void | setLower (uint32 lev, wsum_t low) | 
| Sets the lower bound of level lev to low. | |
| void | markOptimal () | 
| Marks the current tentative optimum as the final optimum. | |
| Arithmetic functions on weights. | |
| void | add (wsum_t *lhs, const WeightLiteral &lit) const | 
| Computes lhs += weight(lit). | |
| void | add (wsum_t *lhs, const LevelWeight *w) const | 
| void | sub (wsum_t *lhs, const WeightLiteral &lit, uint32 &aLev) const | 
| Computes lhs -= weight(lit). | |
| void | sub (wsum_t *lhs, const LevelWeight *w, uint32 &aLev) const | 
| bool | imp (wsum_t *lhs, const WeightLiteral &lit, const wsum_t *rhs, uint32 &lev) const | 
| Returns (lhs + weight(lit)) > rhs. | |
| bool | imp (wsum_t *lhs, const LevelWeight *w, const wsum_t *rhs, uint32 &lev) const | 
| weight_t | weight (const WeightLiteral &lit, uint32 lev) const | 
| Returns the weight of lit at level lev. | |
| Static Public Member Functions | |
| static wsum_t | maxBound () | 
| Public Attributes | |
| WeightLiteral | lits [0] | 
| WeightVec | weights | 
| Private Types | |
| typedef Clasp::atomic< uint32 > | Atomic | 
| Private Member Functions | |
| void | destroy () const | 
| SharedMinimizeData & | operator= (const SharedMinimizeData &) | 
| SharedMinimizeData (const SharedMinimizeData &) | |
| ~SharedMinimizeData () | |
| Private Attributes | |
| SumVec | adjust_ | 
| Atomic | count_ | 
| Atomic | gCount_ | 
| SumVec | lower_ | 
| MinimizeMode | mode_ | 
| SumVec | opt_ [2] | 
| uint32 | optGen_ | 
A type holding data (possibly) shared between a set of minimize constraints.
Definition at line 58 of file minimize_constraint.h.
| typedef Clasp::atomic<uint32> Clasp::SharedMinimizeData::Atomic  [private] | 
Definition at line 170 of file minimize_constraint.h.
Definition at line 60 of file minimize_constraint.h.
A type for holding sparse vectors of level weights of a multi-level constraint.
Definition at line 74 of file minimize_constraint.h.
| Clasp::SharedMinimizeData::SharedMinimizeData | ( | const SumVec & | lhsAdjust, | 
| MinimizeMode | m = MinimizeMode_t::optimize | ||
| ) |  [explicit] | 
Definition at line 27 of file minimize_constraint.cpp.
| Clasp::SharedMinimizeData::~SharedMinimizeData | ( | ) |  [private] | 
Definition at line 33 of file minimize_constraint.cpp.
| Clasp::SharedMinimizeData::SharedMinimizeData | ( | const SharedMinimizeData & | ) |  [private] | 
| void Clasp::SharedMinimizeData::add | ( | wsum_t * | lhs, | 
| const WeightLiteral & | lit | ||
| ) | const  [inline] | 
Computes lhs += weight(lit).
Definition at line 151 of file minimize_constraint.h.
| void Clasp::SharedMinimizeData::add | ( | wsum_t * | lhs, | 
| const LevelWeight * | w | ||
| ) | const  [inline] | 
Definition at line 152 of file minimize_constraint.h.
| wsum_t Clasp::SharedMinimizeData::adjust | ( | uint32 | x | ) | const  [inline] | 
Returns the adjustment for level x.
Definition at line 95 of file minimize_constraint.h.
| MinimizeConstraint * Clasp::SharedMinimizeData::attach | ( | Solver & | s, | 
| uint32 | strat = UINT32_MAX, | ||
| bool | addRef = true | ||
| ) | 
Attaches a new minimize constraint to this data object.
| strat | The optimization strategy to use (see SolverStrategies::OptStrategy). If UINT32_MAX, the strategy is read from the solver's configuration. | 
| addRef | If true, the ref count of the shared object is increased. Otherwise, the new minimize constraint inherits the reference to the shared object. | 
Definition at line 80 of file minimize_constraint.cpp.
| bool Clasp::SharedMinimizeData::checkNext | ( | ) | const  [inline] | 
Returns whether minimization should search for solutions with current or next smaller upper bound.
Definition at line 104 of file minimize_constraint.h.
| void Clasp::SharedMinimizeData::destroy | ( | ) | const  [private] | 
Definition at line 35 of file minimize_constraint.cpp.
| uint32 Clasp::SharedMinimizeData::generation | ( | ) | const  [inline] | 
Definition at line 102 of file minimize_constraint.h.
| bool Clasp::SharedMinimizeData::heuristic | ( | Solver & | s, | 
| bool | full | ||
| ) | const | 
Assumes literals from last model to false until either a conflict is reached or all literals are assigned.
Definition at line 121 of file minimize_constraint.cpp.
| bool Clasp::SharedMinimizeData::imp | ( | wsum_t * | lhs, | 
| const WeightLiteral & | lit, | ||
| const wsum_t * | rhs, | ||
| uint32 & | lev | ||
| ) | const  [inline] | 
Returns (lhs + weight(lit)) > rhs.
Definition at line 157 of file minimize_constraint.h.
| bool Clasp::SharedMinimizeData::imp | ( | wsum_t * | lhs, | 
| const LevelWeight * | w, | ||
| const wsum_t * | rhs, | ||
| uint32 & | lev | ||
| ) | const | 
Definition at line 137 of file minimize_constraint.cpp.
| uint32 Clasp::SharedMinimizeData::level | ( | uint32 | i | ) | const  [inline] | 
Returns the highest level of the literal with the given index i.
Definition at line 99 of file minimize_constraint.h.
| wsum_t Clasp::SharedMinimizeData::lower | ( | uint32 | x | ) | const  [inline] | 
Returns the lower bound of level x.
Definition at line 89 of file minimize_constraint.h.
| const wsum_t* Clasp::SharedMinimizeData::lower | ( | ) | const  [inline] | 
Definition at line 90 of file minimize_constraint.h.
Marks the current tentative optimum as the final optimum.
Definition at line 118 of file minimize_constraint.cpp.
| static wsum_t Clasp::SharedMinimizeData::maxBound | ( | ) |  [inline, static] | 
Definition at line 83 of file minimize_constraint.h.
| uint32 Clasp::SharedMinimizeData::maxLevel | ( | ) | const  [inline] | 
Definition at line 82 of file minimize_constraint.h.
| MinimizeMode Clasp::SharedMinimizeData::mode | ( | ) | const  [inline] | 
Returns the active minimization mode.
Definition at line 85 of file minimize_constraint.h.
| uint32 Clasp::SharedMinimizeData::numRules | ( | ) | const  [inline] | 
Number of minimize statements contained in this constraint.
Definition at line 81 of file minimize_constraint.h.
| SharedMinimizeData& Clasp::SharedMinimizeData::operator= | ( | const SharedMinimizeData & | ) |  [private] | 
| bool Clasp::SharedMinimizeData::optimize | ( | ) | const  [inline] | 
Returns true if optimization is active.
Definition at line 87 of file minimize_constraint.h.
| wsum_t Clasp::SharedMinimizeData::optimum | ( | uint32 | x | ) | const  [inline] | 
Returns the current (ajusted and possibly tentative) optimum for level x.
Definition at line 97 of file minimize_constraint.h.
| void Clasp::SharedMinimizeData::release | ( | ) |  [inline] | 
Decreases the object's reference count and destroys it if reference count drops to 0.
Definition at line 79 of file minimize_constraint.h.
Definition at line 40 of file minimize_constraint.cpp.
| void Clasp::SharedMinimizeData::setLower | ( | uint32 | lev, | 
| wsum_t | low | ||
| ) | 
Sets the lower bound of level lev to low.
Definition at line 115 of file minimize_constraint.cpp.
| bool Clasp::SharedMinimizeData::setMode | ( | MinimizeMode | m, | 
| const wsum_t * | bound = 0, | ||
| uint32 | boundSize = 0 | ||
| ) | 
Sets the enumeration mode and (optionally) an initial bound.
Definition at line 59 of file minimize_constraint.cpp.
| bool Clasp::SharedMinimizeData::setMode | ( | MinimizeMode | m, | 
| const SumVec & | bound | ||
| ) |  [inline] | 
Definition at line 119 of file minimize_constraint.h.
| const SumVec * Clasp::SharedMinimizeData::setOptimum | ( | const wsum_t * | opt | ) | 
Makes opt the new (tentative) optimum.
Definition at line 102 of file minimize_constraint.cpp.
| ThisType* Clasp::SharedMinimizeData::share | ( | ) |  [inline] | 
Increases the reference count of this object.
Definition at line 77 of file minimize_constraint.h.
| void Clasp::SharedMinimizeData::sub | ( | wsum_t * | lhs, | 
| const WeightLiteral & | lit, | ||
| uint32 & | aLev | ||
| ) | const  [inline] | 
Computes lhs -= weight(lit).
Definition at line 154 of file minimize_constraint.h.
| void Clasp::SharedMinimizeData::sub | ( | wsum_t * | lhs, | 
| const LevelWeight * | w, | ||
| uint32 & | aLev | ||
| ) | const | 
Definition at line 133 of file minimize_constraint.cpp.
| wsum_t Clasp::SharedMinimizeData::upper | ( | uint32 | x | ) | const  [inline] | 
Returns the upper bound of level x.
Definition at line 92 of file minimize_constraint.h.
| const wsum_t* Clasp::SharedMinimizeData::upper | ( | ) | const  [inline] | 
Definition at line 93 of file minimize_constraint.h.
| weight_t Clasp::SharedMinimizeData::weight | ( | uint32 | i | ) | const  [inline] | 
Returns the most important weight of the literal with the given index i.
Definition at line 101 of file minimize_constraint.h.
| weight_t Clasp::SharedMinimizeData::weight | ( | const WeightLiteral & | lit, | 
| uint32 | lev | ||
| ) | const  [inline] | 
Returns the weight of lit at level lev.
Definition at line 162 of file minimize_constraint.h.
| SumVec Clasp::SharedMinimizeData::adjust_  [private] | 
Definition at line 171 of file minimize_constraint.h.
| Atomic Clasp::SharedMinimizeData::count_  [private] | 
Definition at line 175 of file minimize_constraint.h.
| Atomic Clasp::SharedMinimizeData::gCount_  [private] | 
Definition at line 176 of file minimize_constraint.h.
Definition at line 180 of file minimize_constraint.h.
| SumVec Clasp::SharedMinimizeData::lower_  [private] | 
Definition at line 172 of file minimize_constraint.h.
| MinimizeMode Clasp::SharedMinimizeData::mode_  [private] | 
Definition at line 174 of file minimize_constraint.h.
| SumVec Clasp::SharedMinimizeData::opt_[2]  [private] | 
Definition at line 173 of file minimize_constraint.h.
| uint32 Clasp::SharedMinimizeData::optGen_  [private] | 
Definition at line 177 of file minimize_constraint.h.
Definition at line 179 of file minimize_constraint.h.