#include <IbexPropagation.h>

Public Member Functions | |
| Propagation (const vector< const Contractor * > &vec, Space &space, REAL ratio=default_ratio, bool incremental=false) | |
| Propagation (const Propagation &p) | |
| virtual Propagation * | copy () const |
| bool | contract (int start) |
| virtual void | contract () |
Public Attributes | |
| const REAL | ratio |
| const bool | incremental |
Static Public Attributes | |
| static const REAL | default_ratio = __IBEX_DEFAULT_RATIO_PROPAG |
This class is an implementation of the classical interval variant of the AC3 constraint propagation algorithm.
| ibex::Propagation::Propagation | ( | const vector< const Contractor * > & | vec, | |
| Space & | space, | |||
| REAL | ratio = default_ratio, |
|||
| bool | incremental = false | |||
| ) |
Create a AC3-like propagation with a list of contractors.
| vec | - The list of contractors. | |
| space | - the space for this contractor | |
| ratio | (optional) - Criterion for stopping propagation. If a projection does not remove more that ratio times the diameter of a variable domain, then this reduction is not propagated. The default value is default_ratio. | |
| incremental | (optional) - This parameter is only used when contraction is called with a Indicators structure. If set to true, only the pairs (var,ctr) where var is the impacted variable are pushed in the queue. If set to false, all the pairs are pushed in the queue. Default value is false. |
| ibex::Propagation::Propagation | ( | const Propagation & | p | ) |
Duplicate this instance (space are all passed by reference).
| virtual Propagation* ibex::Propagation::copy | ( | ) | const [inline, virtual] |
Implement the contractor abstract copy.
Implements ibex::Contractor.
| bool ibex::Propagation::contract | ( | int | start | ) |
Enforces propagation (e.g.: HC4 or BOX) fitering.
| start | - The variable to start propagation with. Set this parameter to ALL_VARS if all the variables must be considered. |
| ibex::UnfeasibilityException | - if inconsistency is detected. |
| void ibex::Propagation::contract | ( | ) | [virtual] |
Applies contraction (taking into account indicators, if any). If incremental is true and the impact field of p is a specific variable, then propagation will start from this variable only (instead of from all the variables).
Implements ibex::Contractor.
| const REAL ibex::Propagation::ratio |
Ratio (see constructor for details).
| const bool ibex::Propagation::incremental |
Queue initialization mode (see constructor for details).
const REAL ibex::Propagation::default_ratio = __IBEX_DEFAULT_RATIO_PROPAG [static] |
Default ratio used by propagation, set to 0.1.
1.5.5