Active Constraints

Standing at a point of a feasible region, some restrictions are pressing and the rest have room to spare. The ones holding with equality form the active set, and they are what pins a point down: how many hold, and whether their normals are independent, decides whether the point is a corner, an edge point, or interior.

Definition

Let the feasible region be described by constraints a i T x ≤ b i for i ∈ I , a i T x = b i for i ∈ E , and x j ≥ 0 for j = 1 , … , n .

At a feasible point x ¯ , a constraint is active (equivalently tight, or binding) when it holds with equality there:

A ( x ¯ ) = { i ∈ I ∪ E : a i T x ¯ = b i } ∪ { j : x ¯ j = 0 } .

A constraint holding strictly, a i T x ¯ < b i , or x ¯ j > 0 , is inactive at x ¯ .

Three observations follow directly.

Equality constraints are active everywhere. Every i ∈ E belongs to A ( x ¯ ) for every feasible x ¯ , since feasibility is equality for those rows. They never distinguish one feasible point from another.

Nonnegativity restrictions are constraints. A component sitting at zero is an active constraint exactly as much as a resource limit reached exactly. In standard form, where A x = b carries every structural row, the nonnegativity restrictions are the only ones that vary from point to point.

Activity is a property of a point, not of a constraint. The same inequality is active at some feasible points and inactive at others. "This constraint is binding" is shorthand for "binding at the point under discussion", and the point must be recoverable from context or the statement means nothing.

Formal statement

A ( x ¯ ) = { i : a i T x ¯ = b i } ∪ { j : x ¯ j = 0 } . A point x ¯ ∈ R n is a vertex of the feasible region when the active constraint normals at x ¯ span R n , that is when rank ⁡ { a i : i ∈ A ( x ¯ ) } = n counting nonnegativity rows as unit vectors e j .

Assumptions and scope

  • Activity is defined only at feasible points. Asking which constraints are active at an infeasible point is not meaningful, since some constraint is violated rather than merely tight.

  • Equality constraints are active at every feasible point and therefore carry no information distinguishing points. Counting them into a comparison between two points is a common source of confusion.

  • Nonnegativity restrictions count as constraints and are active exactly where a component is zero. In standard form they are the only constraints whose activity varies.

  • What makes a point a vertex is the rank of the active normals, not their number. Three active constraints in two variables may still leave a direction free if two of the normals are parallel.

  • An inactive constraint cannot be deleted from the problem. It is inactive at one point, and removing it changes the feasible region and potentially the optimum.

Worked material

Example

The active set at four points of one region

Take the region

x 1 + x 2 ≤ 4 , x 1 ≤ 3 , x 1 ≥ 0 , x 2 ≥ 0 ,

with n = 2 , and label the constraints C 1 , C 2 and the restrictions N 1 , N 2 .

The point ( 1 , 1 ) . C 1 : 2 < 4 , slack. C 2 : 1 < 3 , slack. Both components positive. Active set empty, rank 0 , two free directions. Interior.

The point ( 3 , 0.5 ) . C 1 : 3.5 < 4 , slack. C 2 : 3 = 3 , active. N 2 : x 2 = 0.5 > 0 , slack. Active set { C 2 } , normal ( 1 , 0 ) , rank 1 , one free direction. On a face.

The point ( 3 , 1 ) . C 1 : 4 = 4 , active. C 2 : 3 = 3 , active. Normals ( 1 , 1 ) and ( 1 , 0 ) are independent, rank 2 = n . No free direction. A vertex.

The point ( 0 , 4 ) . C 1 : 4 = 4 , active. C 2 : 0 < 3 , slack. N 1 : x 1 = 0 , active. Normals ( 1 , 1 ) and e 1 = ( 1 , 0 ) , independent, rank 2 . A vertex, and note that one of the two constraints pinning it is a nonnegativity restriction, not a numbered constraint.

The same four constraints throughout. What varies is which are active, and that is what distinguishes the four positions.

Non-example

What is not an active constraint

Not active: a constraint that is merely close. At ( 2.99 , 1 ) in the earlier region, C 2 gives 2.99 < 3 . Nearly tight is inactive. There is no tolerance in the definition, and introducing one turns a rank computation into a judgement call.

Not active: a violated constraint. At ( 4 , 1 ) , C 2 gives 4 > 3 . That constraint is not active; the point is infeasible and the active set is not defined there at all. Violation and equality are different relations, and only one of them is activity.

Not a reason to count it: an equality constraint distinguishing points. In standard form both structural rows are active at every feasible point. Citing them to explain why this point is a vertex rather than that one explains nothing, since they are equally active at both.

Not enough for a vertex: three active constraints in two variables. If two of the three normals are parallel, say x 1 ≤ 3 and 2 x 1 ≤ 6 , whose normals are ( 1 , 0 ) and ( 2 , 0 ) , then three active constraints have rank 2 at best, and possibly less. It is the rank that decides, and counting is not a substitute for it.

Not removable: an inactive constraint. Dropping C 1 from the region because it is slack at ( 1 , 1 ) changes the region: ( 3 , 3 ) then becomes feasible, and the vertex at ( 3 , 1 ) disappears. The constraint was inactive at one point, not inert.

Contrast

Inactive here does not mean unnecessary

The word 'inactive' suggests a constraint that is not doing anything, and the suggestion is wrong in a way that has consequences.

The tempting move. Solving a program, you observe that the constraint x 1 + x 2 ≤ 4 has slack at the point you are examining, and conclude it can be dropped to simplify the problem.

Why it fails. Activity is a property of a point. Take the region x 1 + x 2 ≤ 4 , x 1 ≤ 3 , x 1 , x 2 ≥ 0 , and examine ( 1 , 1 ) , where the first constraint indeed has slack. Now drop it. The region was a quadrilateral with vertices ( 0 , 0 ) , ( 3 , 0 ) , ( 3 , 1 ) and ( 0 , 4 ) ; without that constraint it becomes an unbounded strip running upward between x 1 = 0 and x 1 = 3 . The vertex ( 3 , 1 ) is gone and so is the bound on x 2 . Maximise x 2 over each and the answers are 4 and no finite optimum. A different problem with a different verdict.

The general statement. A constraint's job is to exclude points, and a constraint inactive at x ¯ is excluding points elsewhere. What can be dropped without changing the region is a redundant constraint, one whose removal leaves the feasible set unchanged, and redundancy is a property of the constraint against the whole system, decided globally, not by inspecting one point.

The confusion this actually causes. In the simplex method a learner who has conflated the two expects the algorithm to discard slack constraints as it goes. It does not. Every constraint remains in the system for every iteration; what changes is which are active at the current basic feasible solution, and a constraint slack at this corner may be exactly the one that limits the step at the next.

Common errors

Common misconception

A constraint that is not active at the current point is not doing any work, so it can be dropped from the problem.

Related units

Requires

Connected

Learn this topic

Used in

Sources

Results update as you type. Use the up and down arrow keys to move between results, Enter to open one, and Escape to close.

Type to search.

Settings

Appearance

Interface density

Your record

Your progress is stored in this browser and nowhere else: an identifier, the answers you have given, the mastery states and review schedule derived from them, and the lesson you last opened. Clearing it makes you a new learner on this device. It cannot be undone, and it will not affect your appearance or density settings.

Focus timer

Focus--minutes remaining

Phase

Kept in this browser only, and used to label the session in your own history.

Today

Nothing recorded yet. Finish a focus session and it will appear here.

Settings

Focus sessions between long breaks.

Sessions you are aiming for in a day.

Notifications

Your history

Sessions are stored in this browser and nowhere else. They are not evidence and never reach your mastery record.