Learn
Subject · Learn library

Operations Research

Decisions with a number attached and a constraint in the way: what to make, what to ship, what to schedule, what to stock and when to stop — each written as a model, solved exactly, and then read back to find out what the answer cost and what would change it. Ten courses and 92 lessons are available.

max cᵀx s.t. Ax ≤ b, x ≥ 0 ⟷ min bᵀy s.t. Aᵀy ≥ c, y ≥ 0 cᵀx ≤ bᵀy for every feasible pair; equal only at the optimum yᵢ = the change in the optimum per unit of bᵢ — within a range, then it moves an integer optimum is not a rounded LP optimum Q* = √(2KD/h) and the cost curve is flat either side of it πP = π a steady state is a linear system, not a limit
Courses
10
Lessons
92
Level
Intermediate → Advanced
Assumes
algebra for the first three courses; discrete probability after that

Overview

Linear Programming Models comes first, and it is a course about writing models rather than solving them, because the modelling error is the one that survives a correct solve. A reader who can pivot flawlessly through a tableau built from the wrong constraint has learned a technique and not a subject, and nothing later in the path will tell them.

The Simplex Method precedes Duality and Sensitivity Analysis because the dual vector is read off the final tableau. Meeting duality first as a theorem and second as six numbers already sitting in the row above the slack columns is worth more than either half alone — and the sensitivity ranges are ratio tests on that same tableau, so the machinery is already built when the ideas arrive.

Networks: Flows, Paths and Assignments and Integer Programming come next because both are linear programs with structure, and the contrast between them is the point: a network LP has integer corners for a reason that can be proved, and a general integer program does not, which is why one is solved by the simplex method and the other by a search that uses it. That contrast is invisible before duality and obvious after it.

Scheduling, Dynamic Programming and Sequential Decisions, Inventory Models, and Markov Chains, Decisions and Queues each replace the linear program with a different exact method — an adjacent exchange, a backward recursion, a discriminant, a linear system — and are ordered by how much probability they need. Simulation comes last because it is the method of last resort, and it is the only course on the path whose answers arrive with an error bar rather than a proof.

Courses

Each course assumes the ones before it. The first three build one object — the linear program, the algorithm that solves it, and the second program hidden inside the first — and a reader who stops after Duality and Sensitivity Analysis has a complete subject. Networks: Flows, Paths and Assignments and Integer Programming are that object with structure added; the four courses after them replace the linear program with exchange arguments, backward recursion and linear systems; Simulation is what is left when none of those applies.

Linear Programming Models

Systems and Matrices ended with an objective and four inequalities already written down. This course is about writing them. It asks three questions in the same order — what do I decide, what do I want, what stops me — and answers them four times over on the model families that cover most of applied optimisation; then it shows which non-linear-looking requirements are secretly linear, converts everything to the one form the simplex method eats, and replaces the drawn corner with an algebraic object that survives ten variables. It ends with the single theorem that will later let an algorithm stop.

10 lessonsIntermediate → Advanced
The Simplex Method

“Systems and Matrices” declined the simplex algorithm by name. This is it. Each step is a Gauss–Jordan pivot, the entering variable is chosen by a rate and the leaving one by a ratio that keeps every variable non-negative, and the method stops on the licence “Convexity, and Why a Local Optimum Is Global” gave it. Everything is exact, which is what makes the two famous pathologies — a tableau that returns to itself after six pivots, and a cube that forces 2ⁿ - 1 of them — reproducible on your screen rather than described in a footnote.

9 lessonsAdvanced
Duality and Sensitivity Analysis

Every linear programme carries a second one whose variables are prices, and the simplex method has been solving both of them the whole time. That single fact is a tool: a final tableau will price a resource, bound the change that price survives, price a column that is not in the model yet, and reject a new constraint without a re-solve. The course ends where duality stops being bookkeeping — a Pareto front traced by one parameter, and a zero-sum game whose minimax theorem is strong duality with different nouns.

10 lessonsAdvanced
Networks: Flows, Paths and Assignments

Draw a network, write the node equations, and the simplex method solves it. What makes this a course rather than a worked example is that the same matrix — one column per arc, a plus one at the tail and a minus one at the head — is every problem on it: change the supplies and a minimum-cost flow becomes a shortest path, a maximum flow, a transportation plan or an assignment. That matrix is totally unimodular, so every corner of every one of those programmes is whole on whole data, with no integrality constraint and no rounding; and the specialised methods that came before the simplex — potentials on a tableau, augmenting paths, the Hungarian reductions — turn out to be the dual programme, worked by hand.

10 lessonsAdvanced
Integer Programming

Algebra’s “Systems of Inequalities and Linear Programming” closes by saying that rounding an optimal corner is not guaranteed to give the best whole-number answer — and that this is a different subject. This is the subject. Binary variables turn logic into inequalities; a big-M links a fixed cost to a decision and charges you for being careless about its size; and because integer problems are hard in the precise sense Discrete Mathematics gave the word, the tools that remain are bounds — from a relaxation, from a cut, from a search tree — and the certificate you finish with is a gap of zero, or an honest number.

9 lessonsAdvanced
Scheduling

This is the course on this path with no matrix in it. Five jobs on one machine have 120 orders and six reasonable objectives, and the order that wins on one of them is beaten on the others by a different order each time — so the first thing here is that a schedule is not good, it is good at something. The rules that follow are all proved the same way and none of them needs calculus: take two jobs standing next to each other, swap them, and compute the exact quantity the swap moved. That one subtraction gives shortest-processing-time, Smith’s ratio and earliest-due-date, and it is honest about the two places it does not reach. Then the machine count goes up: two in series still has an exact rule, m in parallel has a heuristic with a bound proved from two lower bounds, and a shop where each job has its own route has neither — one binary choice per shared machine, and some combinations of those choices describe no schedule at all.

9 lessonsAdvanced
Dynamic Programming and Sequential Decisions

Every method so far on this path has been a way of solving one big object. This course takes the opposite view: a decision made once is a decision made in a state, the state carries into the next decision, and the whole sequence collapses into a table you can fill in one pass from the end. The recursion is four lines and it is exact — these are not approximations and nothing here converges. But it is exact about the state you wrote down, and a state that leaves something out gives a table whose every entry is right and whose answer is wrong, with no symptom on the page. That is this path’s hazard at its sharpest, so every lab here computes its answer a second time by enumerating every path, every split, every order pattern, every policy, every strategy and every accept-set, and shows the two numbers side by side. Two of the lessons exist because the second number disagrees with something a reader would otherwise have assumed.

9 lessonsAdvanced
Inventory Models

This is the course where the answer is a formula, which makes it the course where the formula most needs taking apart. The economic order quantity is √(2KD/h) and it arrives here from a quadratic inequality whose two roots collide — the same discriminant Algebra uses, applied to a budget — so that existence, uniqueness and optimality come out of one argument with no calculus in it. The claim that the cost curve is flat either side of the optimum is then computed rather than repeated: ordering t times the best quantity costs (t + 1/t)/2 times the minimum, an expression containing none of the data, so “within one per cent” is 13.2% below to 15.2% above in every warehouse there has ever been. After that the assumptions come off one at a time — a price that depends on the order, a run that takes time, a shortage that was planned, and finally a demand that is a random variable rather than a rate.

7 lessonsAdvanced
Markov Chains, Decisions and Queues

Everything on this course comes out of one matrix or one equation, and the point of it is a distinction that is easy to state and easy to lose: a steady state is the solution of a linear system, not the limit of anything. On one matrix here the system has exactly one answer and the powers never converge at all — they return to the identity every third step, for ever — so the two ideas can be seen coming apart rather than argued about. The second half turns the same machinery on queues. Cut the chain between two states, balance the crossings, and M/M/1, several servers, a finite waiting room and a customer who declines to join are four readings of one equation rather than four formulas; the closed forms are borrowed from the System Design path so that two Subjects cannot disagree about the same model. Every figure is an exact fraction except one, which is named.

10 lessonsAdvanced
Simulation and Variance Reduction

Every other course on this path ends in a proof: a tableau is optimal, a corner is whole, a sequence is best by an exchange argument, a steady state is the solution of a linear system. This one ends in an interval. Simulation is the method of last resort, and what makes it a method rather than a guess is the discipline around the number it produces — a stream whose period has been certified, an estimator whose bias has been computed rather than hoped away, a guarantee that assumes nothing about the distribution, and a variance reduction measured against the honest comparison instead of the flattering one. The hazard the whole path warns about bites hardest here, because the output now carries sampling noise on top of it: a simulation of the wrong model is wrong in a way that more runs make look more convincing.

9 lessonsAdvanced

Recommended background

Algebra through Sequences and Series for the first three courses, and Discrete Mathematics through Algorithms and Complexity for the rest. The first three courses need algebra only — systems of equations, inequalities, matrices, and the geometry of a region cut out by half-planes. The rest add five Discrete Mathematics courses: graphs, counting, probability, expectation and variance, and the seeded generator. Each course names the slugs it uses.

No calculus. Where a textbook differentiates, this path does not: the economic order quantity is found by the discriminant of a quadratic, every scheduling rule is proved by an adjacent exchange, and a shadow price is the change per unit within a range rather than a derivative. Those are complete arguments, not workarounds for the missing tool.

No programming, and no solver. The labs run the simplex method in front of you on exact fractions; nothing here asks you to write code or to trust a package whose arithmetic you cannot see.

Willingness to write the model down before solving anything. Most of the work on this path is in the formulation, and the labs are built so that a changed constraint moves a corner while you watch — which is the one thing a printed tableau cannot do.