Constraint Relaxation Experiment¶
Method — instantiates Incompatible Requirement Set Resolution
Systematically loosens one commitment at a time — while holding the protected ones fixed — and re-tests, to learn which relaxation restores feasibility and at what cost.
Once you know a requirement set has no joint solution, the next question is which commitment should give, and by how little. Constraint Relaxation Experiment answers it empirically. It treats each commitment as a dial rather than a wall: it declares up front which commitments are protected (never touched), then, one at a time, loosens a candidate commitment by a defined increment, re-runs the feasibility check, and records whether feasibility returned and what the loosening bought and cost. Its defining move is controlled, one-factor-at-a-time probing — because the incompatibility can be a property of the whole set, relaxing constraints singly and re-testing is what isolates which one is actually load-bearing, rather than blindly weakening several at once and losing track of what mattered.
Example¶
An architect's scheme for an infill apartment building is over-constrained: the zoning setback, a 45-unit pro-forma minimum, one parking space per unit, and a fixed construction budget cannot all be met on the lot. A solver pass has already returned "no feasible design." The relaxation experiment starts by fixing the protected commitments — the fire-egress code and the setback that a variance would not realistically clear stay untouched. Then it tests the rest as dials.
Relax parking to 0.7 spaces per unit (a ratio the transit-adjacent zoning district actually allows on application): feasibility returns, at the cost of a marketing concern. Instead relax the unit count to 40: feasibility also returns, but the pro-forma no longer clears the bank's hurdle. Instead raise the budget 8%: infeasible still, because the binding conflict was floor-area, not money. Run singly and re-tested each time, the experiment produces a small table — parking↓ works cheaply; units↓ works but breaks financing; budget↑ does nothing — that tells the team the parking ratio is the cheap, effective dial and the budget was a red herring.
How it works¶
The method is a disciplined sweep over candidate loosenings:
- Fix the protected set. Name the commitments that will not be relaxed under any option (safety codes, legal floors) so every experiment respects them as invariant.
- Classify the rest by elasticity. Sort the remaining commitments into hard-but-negotiable, soft, and preference — and, crucially, by how much each can move before it stops meaning anything.
- Perturb one, re-test, record. Loosen a single commitment by a defined increment, re-run the feasibility check, and log the outcome: did the feasible set become non-empty, and what did the loosening give up?
- Compare relaxations, not just feasibility. The output is a set of characterized relaxation options — each with its increment, its effect on feasibility, and its local cost — handed to whoever chooses.
Tuning parameters¶
- Protected-set boundary — how many commitments are declared off-limits. A large protected set keeps the design honest but may leave no feasible relaxation at all; too small a set risks quietly loosening something that should have been sacred.
- Increment size — how big a step each loosening takes. Coarse steps find a feasible relaxation fast; fine steps find the minimal one, at more runs.
- One-at-a-time vs. combined — whether to relax singly (clean attribution, may miss that two small loosenings together suffice) or in combinations (finds joint fixes, harder to interpret).
- Cost metric — what "cost of relaxing" is measured in — dollars, users affected, guarantee weakened — which decides which relaxation looks cheapest.
- Reversibility filter — whether to prefer relaxations that can be tightened back later once conditions change, over permanent give-ups.
When it helps, and when it misleads¶
Its strength is that it turns "something has to give" into evidence: it distinguishes the constraint that is actually binding from the ones that merely feel expensive, and it produces a menu of minimal, costed relaxations instead of a single act of surrender. Holding a protected set fixed also encodes the non-negotiables explicitly, so the search never accidentally trades away a safety floor to hit a preference.
Its failure modes are those of any empirical sweep. One-at-a-time testing can miss an interaction — two constraints where each alone is fine to hold but the pair must jointly loosen — so a purely single-factor experiment can report "no cheap relaxation" when a combined one exists. The formal cousin, Lagrangian relaxation[1], warns of the same trap from the theory side: relaxing the wrong constraint tightens nothing. And the experiment is easily run backwards — loosening whatever the team already wanted to loosen and reporting it as "the relaxation that worked," rather than testing the alternatives honestly. The discipline is to fix the protected set before seeing results, sweep all candidates including the politically inconvenient ones, and treat the cheapest-feasible relaxation as a finding to be defended, not a foregone conclusion.
How it implements the components¶
Constraint Relaxation Experiment realizes the relaxation-search machinery of the archetype — turning an infeasible set into characterized options:
relaxation_option— its core output: each tested loosening, tagged with its increment, its effect on feasibility, and its cost.constraint_strength_classification— to know what may move and how far, it classifies commitments by elasticity (hard-negotiable / soft / preference), often sharpening a classification the model only assumed.protected_invariant— it operationalizes the non-negotiables by fixing them as the un-relaxable baseline every experiment must respect.
It does not map the global trade-off surface among competing objectives — that is Pareto Frontier Analysis; nor does it choose, authorize, or record the final relaxation, which belong to Stakeholder Frontier Review and Decision Record with Residue.
Related¶
- Instantiates: Incompatible Requirement Set Resolution — it supplies the costed menu of relaxations the resolution chooses from.
- Consumes: Constraint-Satisfaction Solver Pass — each re-test is a feasibility check run on the perturbed model.
- Sibling mechanisms: Pareto Frontier Analysis · Constraint-Satisfaction Solver Pass · Compatibility Matrix · Requirements Traceability Matrix · Proof Checking · Scenario Sensitivity Sweep · Scope-Boundary Stress Test · Stakeholder Frontier Review · Impossibility-Theorem Instantiation Review · Minimal Unsatisfiable Core Extraction · SAT/SMT Satisfiability Check · Weighted MaxSAT or Soft-Constraint Optimization · Decision Record with Residue
References¶
[1] Lagrangian relaxation — the formal technique of removing a hard constraint from a problem and instead penalizing its violation in the objective, then studying how the optimum moves. It makes precise the same intuition the experiment probes by hand: loosening a non-binding constraint changes nothing, so the informative relaxations are the ones that shift the achievable frontier. ↩