OMBA 102 · Unit 7 · Lesson 2 of 5
Constraints, Feasible Regions, and Trade-Offs
Optimization and Managerial Modeling
Lesson
The plan that looks great until two rules collide
A scheduler promised 500 patient-hours of coverage using at most 40 registered nurse shifts and no overtime. Finance approved. The modeler forgot that each nurse shift also consumes one exam room block, and only 35 rooms exist per day. The plan was mathematically ambitious and operationally impossible. Two constraints conflicted; the feasible region was empty.
Infeasibility is a gift: it proves two policies cannot coexist before you promise patients or customers a plan. Without geometry and feasibility reasoning, teams negotiate for weeks about staffing levels when the real conflict is rooms versus nurse shifts. Lesson 2 teaches you to see empty regions before Solver returns a red error box.
Lesson 1 defined variables, objectives, and constraints. This lesson makes the geometry and economics of those constraints visible: the feasible region, binding constraints, and trade-offs when one more unit of X costs Y units of Z. That language is what Lesson 5 will express as shadow prices (marginal value of relaxing a scarce constraint by one unit). Here we build intuition in two dimensions and extend to spreadsheet models.
Managers who skip this layer treat Solver output as magic. They do not know why the optimal mix hits a capacity wall. They propose "just make more" when demand caps bind. They miss that dual constraints (minimum service levels vs maximum hours) create corners where optimum often lives. Understanding corners prevents arguing against arithmetic.
Lesson 1 gave you variables and objectives. Lesson 2 answers: where can the solution live, and what is scarce at the optimum? Those answers precede Solver setup (Lesson 3) and product-mix templates (Lesson 4). Lesson 5 translates binding constraints into shadow prices dollars managers can compare to overtime wages and supplier quotes.
Graphing the feasible region in two variables
With two decision variables, each linear constraint is a half-plane bounded by a line. The feasible region is the intersection of half-planes plus non-negativity.
Example (FreshPack simplified to two products):
Max Z = 3S + 5E
Subject to:
0.20S + 0.50E ≤ 160(hours)S ≤ 400,E ≤ 200S, E ≥ 0
Plot hours constraint: when S=0, E=320; when E=0, S=800. Cap E at 200, cap S at 400. Feasible polygon vertices (corner points) occur where constraints intersect.
Fundamental theorem of linear programming (informal): for a bounded feasible region, an optimal solution exists at a vertex (corner) unless the objective is parallel to an edge (multiple optima).
Walk corners:
- (0,0): Z=0
- (0,200): Z=1000 (hours 100 ≤ 160)
- Intersection hours and E cap: solve 0.20S + 0.50(200)=160 → S=300, but S≤400 so point (300,200) if hours bind
- Check hours at (300,200): 60+100=160 ✓; Z=3(300)+5(200)=900+1000=1900
Compare other corners to find max. Three-variable models (FreshPack with Dessert) add dimension; geometry becomes hard, but corner logic remains.
Plotting two-variable slices builds intuition for which constraint binds (touches the optimum) and which has slack (unused capacity).
To plot systematically: for each constraint line, find intercepts on S and E axes, draw the line, shade the feasible side (≤ for caps). The feasible polygon is the overlap. Label each vertex with coordinates and objective value. The highest Z vertex wins unless two adjacent vertices tie (parallel objective).
Slack, surplus, and binding constraints
Slack for a ≤ constraint is right-hand side minus left-hand side at optimum. Hours slack = 160 − hours used. Zero slack → binding. Positive slack → capacity left unused.
For ≥ constraints, use surplus (amount by which LHS exceeds RHS). Zero surplus → binding minimum.
Binding constraints are scarce resources at optimum. Non-binding have slack and zero shadow price (Lesson 5) in standard form.
Managers should read slack tables operationally:
- Slack on warehouse space → room to grow before expansion capex.
- Zero slack on labor → overtime or hire decision.
- Zero slack on demand cap → pricing or market expansion lever.
Degeneracy (multiple binding constraints at a corner) can make shadow prices less stable; note in communication when constraints are nearly parallel.
Slack is not "waste" morally; it is unused capacity mathematically. Eleven idle hours (FreshPack Lesson 3) may be maintenance buffer operations wants deliberately. Optimization reports slack; managers decide whether to fill it.
Trade-offs and the price of scarcity
Every binding constraint has an implicit opportunity cost: if you want one more unit of output that consumes scarce hours, you must give up production elsewhere. The rate of exchange is the shadow price of the hour constraint (formal in Lesson 5).
Even before Solver, estimate contribution per scarce hour:
| SKU | Contribution | Hours/unit | $/hour |
|---|---|---|---|
| Salad | 3 | 0.20 | 15 |
| Entree | 5 | 0.50 | 10 |
| Dessert | 4 | 0.30 | 13.33 |
If hours bind, prioritize Salad per hour unless mins force other SKUs. This heuristic matches LP when only hours and non-negativity bind; additional mins change corners.
Trade-off curve (Pareto frontier spirit): vary hours available and trace max contribution. Slope between points approximates shadow price. Steep slope → hours valuable.
Scenario analysis (Unit 6 Lesson 2) can shock RHS values (hours drop 10%) and re-optimize to stress plans.
When two resources bind simultaneously (hours and cold storage), single-factor contribution per hour ranking is insufficient. Solver handles the joint trade-off; intuition should defer to the solved mix and shadow price table.
Infeasibility, unboundedness, and model repair
Infeasible example: FreshPack contract requires S+E+D ≥ 500 but hours allow max 400 equivalent units at best mix. Diagnostics:
- Identify conflicting constraint set (min total vs hours).
- Relax minimum, add overtime variable with cost, or extend horizon.
- Re-solve.
Solver Infeasibility reports (Lesson 3) highlight conflicting rows; human judgment chooses policy relaxation.
Unbounded example: Max revenue with no demand caps or hours → infinite production. Add caps.
Big-M and soft constraints (advanced): penalize violations with slack variables and huge penalty cost to find least-bad near-feasible plan during what-if. Use sparingly in MBA models; prefer explicit policy choice.
Integer models may have feasible LP relaxation but infeasible integer set; communicate integrality gap.
Link to Unit 6 MCDM: multi-criteria goals sometimes appear as constraints ("carbon ≤ X") rather than objective weights.
Feasibility interval shortcut for one minimum and one capacity: compute max possible total units under hours and compare to required minimum before full Solver. If max < min, infeasible without repair.
Economic interpretation for operators
Operators think in bottlenecks, not half-planes. Translate corners to bottleneck language: "Salad hits demand cap; Entree limited by hours; Dessert idle because contribution per hour loses." That sentence is the managerial shadow of the feasible region geometry.
When proposing capacity investment, compare shadow price × hours gained to equipment cost (Lesson 5 stress). Geometry lesson supplies which constraint to relax; finance supplies NPV of relaxing it.
Algebraic corner enumeration procedure
For two-variable LP, systematic corner search:
- Convert each constraint to line equation.
- List all pairwise intersections of constraint lines plus axes intercepts.
- Drop points violating any constraint (infeasible corners).
- Evaluate objective Z at each feasible corner.
- Select max Z (or min for cost).
This procedure is what Solver automates in higher dimensions. Teaching hand enumeration on 5 corners builds trust when Solver returns S=400, E=160.
Multiple optimal solutions
If objective slope parallels a constraint edge, every point on that edge is optimal. Example: Max 3S+6E with constraint 0.5S+E ≤ 100: objective per unit E equals 3S+6E along edge multiples. Report multiple optima to ops: many mixes achieve same Z; choose by secondary criteria (inventory, changeover, labor skill).
Three-variable feasible region (FreshPack with Dessert)
With S, E, D, feasible region is a polyhedron. Corners occur where three binding constraints meet (hours, caps, mins). You cannot plot easily in 3D on paper, but logic matches two-variable case: optimum at corner unless objective plane parallels a face.
Enumeration procedure for small models:
- List all constraint combinations of three equalities.
- Solve for intersection point.
- Test feasibility.
- Evaluate Z.
Solver does this efficiently for hundreds of variables; hand enumeration on three variables builds audit skill.
Dual viewpoint (informal)
Every ≤ constraint has a dual price (shadow price) measuring scarcity. Primal (Lesson 1 variables) chooses quantities; dual chooses implicit prices on constraints. Lesson 5 reads dual prices from Excel. Lesson 2 geometry explains why dual is zero when slack is positive: constraint not touching optimum.
Sensitivity of feasible region to RHS
Shrinking hours RHS moves the hours plane inward, shrinking feasible polygon. Eventually corners disappear and optimum jumps to new corner. Allowable decrease on RHS (Lesson 5) is the distance until jump. Tracking jumps prevents surprise mix changes when maintenance removes 8 hours.
Patient scheduling geometry example
Max coverage hours: 15R + 8T subject to R ≤ 40, 15R+8T ≥ 500, R,T ≥ 0. Plot R and T axes. Feasible region bounded by R cap, minimum coverage line, and axes. Corner at R=40, T=(500−600)/8 invalid; solve 15R+8T=500 with R=40 → T=12.5, point (40, 12.5). Evaluate objective at corners to minimize cost model (Lesson 1 clinic problem dual).
Warehouse and budget constraints
Warehouse: 2S+1E+1.5D ≤ Pallet_cap. Adds third dimension but same corner logic. Cash budget: c1x1+c2x2 ≤ Cash may bind before hours in startup models.
Feasible interval for minimum production
Given hours 160 and FreshPack three-SKU mix, compute maximum feasible total units and minimum required by contract. If max < min, infeasible without repair. Spreadsheet helper cells: Max_feasible_units, Min_required, Feasible_flag = Max>=Min.
Geometry and shadow price intuition link
At corner where hours and E cap bind, shadow prices on both may be positive. Increasing hours relaxes E cap first if E was capped by hours intersection. Lesson 5 numbers formalize this intuition.
Practice walkthrough: is (200,100) feasible?
FreshPack two-variable: hours 0.20(200)+0.50(100)=40+50=90≤160 ✓; S≤400 ✓; E≤200 ✓. Feasible. Z=3(200)+5(100)=600+500=1100. Not optimum versus corner (400,160) Z=2000.
Corner enumeration algorithm (formal steps)
- Identify all constraints including non-negativity.
- For each pair of binding equalities, solve two equations in two unknowns.
- Verify remaining inequalities.
- Evaluate objective at feasible intersections.
- Compare values; optimal is max (min for cost).
For three variables, triples of constraints define corners. Solver scales this to thousands of variables using simplex method pivoting between corners.
Why interior points cannot be optimal in LP
If a feasible point is strictly inside the region (not on boundary), you can move in direction that improves objective until you hit boundary. Therefore optimum lies on boundary, specifically at corner for LP. Nonlinear models can have interior optima; LP cannot.
Slack as managerial KPI
Track slack on hours weekly. Trending slack toward zero signals approaching bottleneck; preempt with maintenance scheduling or demand smoothing.
Deep dive: plotting feasible regions in Excel
Create columns for S grid and compute E_max from hours constraint E <= (160-0.20S)/0.50. Plot S on x-axis, E on y-axis. Add vertical line S=400 and horizontal E=200. Shade feasible polygon. Mark corner points and Z at each corner. Visual learners grasp why optimum sits at (400,160) before trusting Solver.
Deep dive: slack and surplus tables for operations
Publish weekly table:
| Constraint | LHS | RHS | Slack/Surplus | Bind? |
|---|---|---|---|---|
| Hours | 149 | 160 | 11 slack | No |
| Salad cap | 400 | 400 | 0 | Yes |
| Min total | 550 | 350 | 200 surplus | No |
Ops sees binding caps instantly.
Deep dive: infeasibility negotiation script
"We need 550 minimum units but hours allow only 520 at best mix. Options: (1) reduce minimum to 500 with retailer, (2) add 20 overtime hours, (3) slip 50 units to next week with storage cost $X." Model quantifies each repair; policy chooses.
Deep dive: contribution per hour ranking limits
Ranking SKUs by contribution per hour fails when mins force low-hour SKUs into mix. Always solve full LP when mins exist; use ranking only for intuition without mins.
Classroom-to-floor handoff
Teach corner enumeration on paper Tuesday, build FreshPack sheet Wednesday, solve Thursday, interpret shadow Friday. Operators trust the plan when they see the geometry, not only the printout.
Capacity expansion feasibility
Before buying line, add 200 hours to RHS in copy of model; read delta Z. If delta Z × weeks per year < line NPV hurdle, shadow-based quick check fails; full NPV still required.
Feasible regions are the honest map of what your policies allow. When the map is empty, change policy before blaming Solver. When the map has slack, shadow prices tell you which walls are worth pushing.
Supplemental narrative: empty feasible region meeting
The scheduler walks into room with infeasible model: 550 patient-hours required, 40 RN shifts max, 35 exam rooms. Geometry lesson shows no point satisfies all constraints. Options on whiteboard: add overtime RN (relax shift cap), add rooms (relax room cap), reduce coverage target (relax minimum), extend to two-day horizon (expand RHS time). Hospital chooses add four temp rooms for flu season week. Modeler updates RHS, re-solves, meeting ends with feasible plan instead of blame.
Supplemental narrative: reading corners without Solver
Two-variable FreshPack slice: enumerate five corners, evaluate Z, pick (400,160) with Z=2000. Plant manager sees why Entree stops at 160: hours and Salad cap intersection. Trust in Solver rises because hand enumeration matches Simplex LP output. Lesson 3 automation scales to Dessert dimension; Lesson 2 geometry explains two-dimensional slice faithfully.
Supplemental slack table exercise
Given optimum S=400, E=120, D=30, hours cap 160, min total 350, caps 400/200/300: compute hours used 149 slack 11; min surplus 200; Salad cap bind 0 slack; E cap slack 80; D cap slack 270. Publish table in ops memo weekly. When slack on hours hits 0, alert maintenance to avoid scheduling downtime same week as promo.
Closing standards
Plot two-variable slices for teaching. Enumerate corners on small models. Publish slack tables weekly. Treat infeasibility as policy conflict, not software bug. Link geometry language to shadow prices in Lesson 5.
Extended review: from half-planes to plant floor
Hours constraint creates a line in S-E space: below the line is feasible, above infeasible. Salad cap vertical line at S=400 chops feasible region. Entree cap horizontal at E=200 chops further. Feasible polygon vertices are candidate optima. Fundamental theorem: check vertices only. Plant manager learns that "make more everywhere" is impossible because feasible region has walls.
Slack translates walls into idle capacity metrics. Binding wall means shadow price likely positive in Lesson 5. Non-binding wall means ignore capacity expansion on that wall this period.
Infeasible region means intersecting walls leave no room. Negotiate which wall to move: overtime moves hours wall outward; retailer negotiation moves minimum wall inward.
Two-variable mastery is prerequisite for trusting three-variable Solver. Teach plotting once per analyst cohort.
Corner enumeration on paper remains the debugging tool when Solver returns unexpected zeros: verify which constraint pins each variable at bound.
Integration narrative: teaching feasible regions in a workshop
Workshop hour 1: draw hours line and caps on whiteboard, mark corners, compute Z at each corner, circle winner. Hour 2: introduce minimum total constraint; show feasible region shrink; show infeasible case when minimum too high. Hour 3: participants build Excel FreshPack slice and confirm Solver matches whiteboard corner. Hour 4: introduce slack table and ask which wall is binding. Hour 5: preview shadow price as "rent on the binding wall" for Lesson 5.
Participants leave knowing Solver is not magic; it is fast corner search in higher dimensions.
When teaching executives, show one plot and one slack table; skip algebra beyond corner comparison.
Additional examples: binding logic in prose
Example 1 (hours bind): If optimum uses all 160 hours, slack 0, adding one hour requires giving up contribution elsewhere; shadow price in Lesson 5 quantifies trade. Example 2 (cap bind): Salad at 400 with demand cap 400 means marketing must raise cap or price to sell more Salad; hours may still have slack. Example 3 (minimum bind): Total units exactly 350 with surplus zero means contract minimum is tight; relaxing minimum frees mix but risks retailer penalty. Example 4 (infeasible): Minimum 600 units with hours allowing 520 max forces policy change before any Solver run. Each example trains managers to name the binding wall before asking for more output.
Geometry vocabulary (corner, slack, infeasible) should appear in weekly ops notes alongside production quantities.
Feasible-region thinking prevents capital spent expanding the wrong wall: expand hours when hours bind, not when marketing cap binds.
Lesson 2 mastery check: enumerate corners for a two-variable problem, compute slack at optimum, explain infeasibility repair in one paragraph without opening Excel.
Binding constraints are the vocabulary shared between geometry (Lesson 2), Solver setup (Lesson 3), product templates (Lesson 4), and shadow prices (Lesson 5). Fluency here reduces every downstream argument about "why the model capped Entree."
Unit 7 bridge paragraph
Constraints are not bureaucracy. They are promises to physics, finance, and customers encoded as math. When leadership asks to ignore a constraint for one week, model the exception explicitly (overtime variable, temporary cap lift) instead of silently deleting a row. Deleted rows become audit findings and floor distrust.
Plot one feasible region per quarter in ops training; retention beats reading slides alone.
Corner, slack, and infeasibility vocabulary should appear in every FreshPack weekly memo footer.
Executives remember binding walls, not dual variables. Teach walls first.
A feasible-region sketch on the ops whiteboard each Monday takes five minutes and prevents ten emails asking why Entree is capped.
Lesson 2 completes when the team can draw the polygon, name the winning corner, and read slack without opening Solver.
Feasible geometry is the antidote to "the model is wrong" when the model is actually binding correctly on a real wall.
Teach plant leads to ask "which wall binds?" before asking "can we change the answer?"
Infeasible models are policy arguments worth having before money ships.
Binding walls, not formulas, should headline the weekly ops brief. Feasible-region literacy is the cheapest insurance against arguing with correct Solver output.
When three or more constraints meet at a corner, degeneracy can make shadow prices less stable until you perturb RHS slightly and re-solve. If two executives see different shadow values for the same hour constraint, check whether the optimum sits at a degenerate corner before debating Solver bugs.
Worked example: Two-product corner search (FreshPack slice)
Max 3S + 5E s.t. 0.20S + 0.50E ≤ 160, S ≤ 400, E ≤ 200, S,E ≥ 0.
Part A: Corner list
- (0,0) → Z=0
- (0,200) → hours 100 ≤ 160, Z=1000
- (800,0) from hours alone but S cap 400 → (400,0) Z=1200, hours 80
- Hours ∩ E cap: 0.20S + 100 = 160 → S=300, point (300,200), Z=1900
- Hours ∩ S cap: 0.20(400)+0.50E=160 → E=160, point (400,160), Z=2000
Check (400,160): hours 80+80=160 ✓
Part B: Optimum
Maximum at (400,160) with Z=$2000 contribution.
Hours binding (slack 0). E cap slack 40 units. S cap binding.
Part C: Trade-off read
One more hour would allow mix change; shadow price positive (Lesson 5). Entree capped at 160 by hours+Salad mix, not E demand cap.
Part D: Managerial read
Plant should run Salad at S cap until hours force Entree reduction; marketing E cap not market limit, capacity limits Entree.
Worked example: Infeasible contract minimum
Add S+E ≥ 450 to two-variable slice with E≤200, S≤400, hours 160.
Maximum S+E with hours: at (400,160) sum 560 ≥ 450 feasible actually OK.
Tighten: S+E ≥ 550 with same caps. Max S+E with S≤400,E≤200 is 600 at caps, but hours? (400,160) sum 560 < 550 → need more hours-heavy mix; check feasibility... At (300,200) sum 500; at (400,200) hours 80+100=180>160 infeasible. Max feasible sum under hours maybe below 550 → infeasible.
Repair: reduce minimum to 500 or add 20 overtime hours (constraint relaxation).
Part A-D structure for infeasibility teaching
Part A: Modeler sets S+E ≥ 550 with hours 160 and E≤200, S≤400.
Part B: Max S+E under hours gives (400,160) sum 560 but hours check at (400,200) infeasible; best feasible sum may occur at (300,200) sum 500 < 550 → infeasible.
Part C: Solver Infeasibility report flags MinTotal and Hours rows conflict.
Part D: Negotiate minimum to 500 (retailer accepts partial shelf) or buy 20 overtime hours expanding RHS to 180. Manager chooses policy; modeler re-solves.
Check after repair: feasible point (300,200) if min=500, hours 0.20(300)+0.50(200)=160 ✓
Common mistakes beginners make
| Mistake | Reality |
|---|---|
| Ignoring slack at optimum | Slack tells which resources are idle |
| Assuming interior optimum | LP optima occur at corners for bounded regions |
| Adding redundant constraints without notice | Harmless mathematically but clutters diagnostics |
| Conflicting mins and max caps undetected | Compute feasible interval before Solver |
| Plotting wrong intercepts on constraint lines | Double-check algebra when S or E is zero |
| Treating feasible LP as guaranteed integer feasible | Round carefully or use integer variables |
Practice problem
Max 4x + 3y s.t. x + y ≤ 10, 2x + y ≤ 16, x ≤ 7, x,y ≥ 0.
- List corner points.
- Evaluate objective at each.
- Which constraints bind at optimum?
Solution
Corners: (0,0)=0; (0,10)=30; (7,2) from x cap and x+y: y=3 wait x=7 → y≤3 from x+y; check 2(7)+3=17>16 so intersect 2x+y=16 with x=7 → y=2, point (7,2) Z=34; (6,4) from x+y and 2x+y → subtract: x=6,y=4 Z=36; (8,0) from 2x+y but x+y≤10 ok; (0,10) Z=30.
Verify (6,4): x+y=10 bind, 2x+y=16 bind, Z=36 max.
Binding: x+y and 2x+y (both), x cap slack 1.
Check: 6+4=10 ✓; 12+4=16 ✓
Practice problem 2
Explain in prose why increasing RHS of a non-binding constraint does not change optimum.
Solution
Non-binding constraint has slack: optimum lies strictly inside that half-plane. Small increase in RHS does not cut off the current point. Objective unchanged until RHS shrinks enough to become binding. This foreshadows zero shadow price for slack constraints in Lesson 5.
Synthesis: geometry to Solver to shadow prices
Lesson 2 flow: draw feasible region, identify corners, evaluate objective, read binding constraints, estimate contribution per hour, connect to shadow price intuition. Lesson 3 automates corner search. Lesson 5 prices constraints.
When executives ask "why not more Entree," answer with binding constraint story, not "Solver said so." Example: "Entree limited by hours intersection with Salad cap; 11 hours slack remain but Entree cannot rise without reducing Salad below cap."
Infeasibility meetings: bring feasible interval table showing min required exceeds max possible; negotiate which policy relaxes.
Degeneracy caution: when hours and demand cap bind simultaneously, shadow prices may be approximate; re-solve after small RHS moves.
Teaching plot two-variable slice even for three-variable models builds trust in higher dimensions.
Extended corner exercise (fresh numbers)
Max 6x + 5y s.t. x + 2y ≤ 40, 3x + y ≤ 45, x ≤ 15, x,y ≥ 0.
Corners: (0,0)=0; (0,20) but 3(0)+20=20≤45, x+2y=40 → (0,20) Z=100; (15,12.5) from x=15 and x+2y=40 → y=12.5, check 3(15)+12.5=57.5>45 infeasible; (15,0) Z=90; intersect 3x+y=45 and x+2y=40 → multiply: 6x+2y=90, 3x+y=45 subtract → 3x=0? solve: from second y=45-3x, plug x+2(45-3x)=40 → x+90-6x=40 → −5x=−50 → x=10, y=15. Point (10,15) Z=60+75=135. Check 10+30=40 bind; 30+15=45 bind.
Optimum (10,15) with both constraints binding.
Check lines: 10+2(15)=40 ✓; 3(10)+15=45 ✓
Key takeaways
- Feasible region is intersection of constraint half-planes; LP optima occur at corners when bounded.
- Slack and surplus identify unused capacity vs binding scarcity.
- Binding constraints drive trade-offs; contribution per scarce hour guides intuition.
- Infeasible models signal conflicting policies; repair by relaxing the right rule.
- Two-variable plots build intuition Solver extends to many dimensions.
After this lesson
- Sketch a two-variable feasible region for a simple mix problem at your firm.
- Which constraint would you relax first if profit must rise 10%?
- Continue to Lesson 3: Linear Programming in Excel or Google Sheets.
Lesson exercise
40 minApply: Constraints, Feasible Regions, and Trade-Offs
Deliverable
One-page workbook entry or memo section filed under OMBA 102 Unit materials.
Rubric
- • Decision frame is specific and time-bound
- • Framework applied with auditable steps
- • Downside case is plausible, not strawman
- • Guardrail metric defined with owner
- • Recommendation links to evidence quality label