Activation Requirement
Definition
An activation requirement is a Boolean expression over the activity or inactivity status of variables in an Extended Conditional Constraint Satisfaction Problem (ECondCSP). In an ECondCSP extended compatibility constraint, activation requirements identify the variable-activity conditions under which a corresponding preserved semantic constraint is retained and enforced. [C1]
Formally, an ECondCSP constraint is represented as a vector of pairs:
(activation requirement, preserved semantics)
The activation requirement is evaluated over the activity/inactivity status of the variables involved in the constraint, while the preserved semantics is the constraint expression that applies when that activation requirement holds. [C2]
Role in ECondCSP constraints
Activation requirements are part of the ECondCSP extension of conventional Conditional CSP compatibility constraints. In a traditional CondCSP, a compatibility constraint is active only when all of its variables are active. ECondCSP generalizes this by allowing a constraint to preserve some of its semantics even when some variables are inactive. [C3]
For example, for a constraint such as (a=b) ∧ (c=d), conventional CondCSP semantics would discard the entire constraint if any of a, b, c, or d is inactive. ECondCSP can instead express that the a=b portion should still be preserved when c or d is inactive, by using activation requirements paired with preserved semantics. [C4]
Disjointness and satisfaction rule
In the described ECondCSP convention, the first element of a constraint vector states that all variables involved in the constraint are active. The set of activation requirements for a given constraint is required to be disjoint: if one activation requirement evaluates to true, all other activation requirements for the same constraint must evaluate to false. [C5]
Under this convention, an ECondCSP constraint is satisfied when either:
- none of its activation requirements hold, in which case the constraint is trivially satisfied; or
- exactly one activation requirement holds, and the preserved semantics paired with that activation requirement is satisfied. [C6]
Use in constraint composition
The ECondCSP composition procedure represents each composed constraint as a vector of rs_pair entries, where each pair has the form (activation-requirement, semantics). The activation requirement in this context is a Boolean expression over activity/inactivity status, and the semantics expression gives the preserved semantics for that activation condition. [C7]
For an atomic constraint, the composition pseudocode creates a single pair whose activation requirement is the conjunction of the existence variables of all variables in the constraint, and whose preserved semantics is the original constraint expression. [C8]
The composition method also defines AR(C) as the ordered set of activation requirements for an ECondCSP constraint C, obtained by projecting the vector of (activation-requirement, semantics) pairs onto activation requirements only. [C9]
Use during transformation to CondCSP
When an ECondCSP is transformed into an equivalent CondCSP, the ECondCSP builder loops over possible truth assignments of the activity/inactivity status of variables appearing in each compatibility constraint. If a truth assignment satisfies no activation requirement, no CondCSP constraint is added for that assignment. If it satisfies an activation requirement with preserved semantics S, the builder adds a corresponding CondCSP constraint based on S and on shadow variables representing inactive variables. [C10]
In the described transformation, each original variable receives a shadow variable with domain {0}. The relationship is that each original variable is active if and only if its shadow variable is inactive, and vice versa. These shadow variables allow the generated CondCSP constraints to encode the inactivity portions of activation requirements. [C11]
Example form
The evidence gives an ECondCSP constraint over variables a and b with activation requirements such as:
| Activation requirement | Preserved semantics |
|---|---|
a active and b active |
(a = 1) → (b = 2) |
a active and b inactive |
a ≠ 1 |
This illustrates that different preserved semantics can apply depending on which variables are active or inactive. [C12]