← Learning map

MATHEMATICAL MODELING WORKSHOP / 05

The assumptions behind an optimum

How should limited labor and material be allocated?

About 150 minutesSynthetic teaching experimentv1.0.0Reading local draft…
Learning objectives & prerequisites

Linear inequalities, matrix multiplication and optimization basics.

  • Translate resource use into constraints with units.
  • Compare solver output with vertex and integer enumeration.
  • Interpret local shadow prices without treating them as global laws.

01 / 08 · 10 MIN

Observe

A synthetic workshop makes two products. Product x uses two labor-hours and one material unit; product y uses one labor-hour and two material units. Available resources are 40 hours and 50 material units. Unit profits are 30 and 20 credits. These are invented planning quantities.

YOUR TURN

Explain why making only the product with the higher unit profit need not maximize total profit.

02 / 08 · 10 MIN

Ask

Decide whether products are divisible. A continuous planning model may represent batches, but whole items require integer decisions. A solver's optimum only answers the objective and constraints you wrote; it does not establish that profit is the correct social or organizational objective.

YOUR TURN

State the decision variables, their units and who benefits from the objective.

03 / 08 · 15 MIN

Assume

Assume constant per-unit resource use, constant profit, known resource totals and no demand ceiling. These assumptions yield a linear feasible set. Congestion, setup costs or uncertain demand may require a different model rather than a more accurate LP solver.

YOUR TURN

Choose two assumptions and pair each with a plausible stress test.

04 / 08 · 20 MIN

Formulate

The first resource row is 2x+y≤L and the second is x+2y≤M. Add nonnegativity. The objective is px*x+py*y. SciPy minimizes, so pass the negative profit vector. Draw boundary intersections before looking at the optimizer.

maxx,y0 pxx+pyys.t.2x+yL,x+2yM\max_{x,y\ge0}\ p_xx+p_yy\quad\text{s.t.}\quad 2x+y\le L,\quad x+2y\le M
YOUR TURN

Compute the default intersection and compare its profit with both axis intercepts.

05 / 08 · 15 MIN

Design

Verify independently: enumerate feasible vertices and evaluate the objective; enumerate feasible integer pairs for this small problem. The dual marginal gives local sensitivity. At a change of active constraints, a reported shadow price need not predict a finite resource increase.

YOUR TURN

Predict the effect of one extra labor-hour and distinguish a local derivative from a 20% scenario change.

06 / 08 · 25 MIN

Experiment

Complete the objective function. The solver and geometric reference remain independent of your implementation, so their agreement cannot hide a wrong student objective. Compare labor budgets 32, 40 and 48 and alter profit_y to change the preferred mix.

YOUR TURN

Record the continuous and integer optima, resource slack and the perturbation result.

07 / 08 · 25 MIN

Challenge

Two deliberately broken formulations are checked: nonnegative production constrained by x+y≤−1 is infeasible; positive profit with no upper resource constraints is unbounded. These solver statuses are useful diagnoses and must not be reported as zero-profit optima.

YOUR TURN

Explain the structural reason for each failure and propose a corrected formulation.

08 / 08 · 15 MIN

Communicate

Report the allocation together with its assumptions, objective value and sensitivity range. Include a scenario where the decision changes. If whole items are required, report the integer result rather than silently rounding a fractional optimizer output.

YOUR TURN

Write a decision memo with a trigger for revisiting the allocation.

Need a little guidance?

1. Concept hint

Multiply each product quantity by its unit profit and add.

2. Mathematical / algorithm hint

x is a two-element array: x[0] is product x and x[1] is product y.

3. Reference implementation guide

Compare the reference objective with your expression at every feasible vertex.

Compare the reasoning before applying it. Your current code is backed up before replacement.

Experiment protocol: comparison, failure & extension

Required comparison

Compare 80%, 100% and 120% of the labor budget with material fixed.

Failure experiment

Distinguish infeasible, unbounded and finite-optimum problems; never round a fractional plan without checking constraints.

Research extension

Introduce a demand ceiling or setup cost and compare the revised decision with the original LP.

PYTHON WORKBENCH

Predict. Then run.

Parameters & random seed

Edit directly above or open the syntax-highlighting editor. The starter's unfinished student_model should fail relevant checks; use your derivation to complete it.

The runtime downloads only when started. Each experiment uses a fresh namespace and a 30-second limit.

Unable to load? Download the standalone notebook and run it in Python with NumPy, SciPy and Matplotlib. Reference notebook

Connect this lesson to your bookshelf.

Confirm draft change

Baseline and my run

The baseline uses the specified synthetic data; the right column shows only your last completed run.