Conditional Exclusion Constraint
Block specific combinations of values across two or more variables.
A conditional exclusion is a two-way exclusion that forbids a specific combination of values. It is not a one-directional "IF A then exclude B" rule — neither side causes the other. Instead, each variable can take the constrained value on its own; only the combination is blocked. For example, Temperature 50–100 °C is fine on its own, and pH 5–7 is fine on its own, but the two together are excluded.
How It Works
Define two or more conditions, each on a different variable.
Each condition specifies a range (numerical) or categories (categorical) to constrain.
The constraint is active when all conditions are met simultaneously.
Examples
Numerical + Numerical — Reaction instability zone
Condition 1: Temperature is between 50–100 °C
Condition 2: pH is between 5–7
Why: The reaction is unstable at low temperature and neutral pH
The optimizer will avoid suggesting experiments where temperature is 50–100 °C and pH is 5–7 at the same time. Either variable can be in that range alone — only the combination is excluded.
Categorical + Numerical — Material incompatibility
Condition 1: Catalyst is Pd/C
Condition 2: Temperature is above 250 °C (250–300 °C)
Why: Pd/C degrades at high temperature
Pd/C is fine below 250 °C, and other catalysts are fine at any temperature. Only the combination is blocked.
Categorical + Categorical — Solvent-catalyst incompatibility
Condition 1: Catalyst is Pd
Condition 2: Solvent is Methanol
Why: Pd is incompatible with Methanol in this reaction
When to Use It
Two variables interact in a way that makes certain combinations unsafe or impractical.
A specific material is only valid within a certain range of conditions.
You want to encode known incompatibilities from domain expertise.
Good to Know
All conditions must be met for the exclusion to apply — it is an AND relationship.
This is a two-way constraint, not one-directional. Both sides are equally constrained — the optimizer avoids the combination from either direction.
To exclude values unconditionally (regardless of other variables), use Exclusion instead.
You can create multiple conditional exclusion constraints for different variable pairs.
