Plumline

Guide

How to solve an optimisation problem

Optimisation finds the best way to use limited resources: the most profit, the lowest cost, the best split. Plumline covers continuous, integer, binary and mixed-integer linear models. This is a plain-language walkthrough, with a worked example you can open in the solver and change.

What a linear optimisation problem is

You have a goal you want as high or as low as possible, some quantities you get to choose, and limits you cannot break. A factory choosing how many of each product to make, to earn the most profit, without running past its available hours, is a linear programming problem. So is a diet that meets its nutrition targets at the lowest cost, or a budget split across channels for the best return.

Every problem has three parts

01

The goal

The single number you want to make as large or as small as possible: total profit, total cost, total return. In a spreadsheet it is the cell that sums up the others.

02

The decisions

The quantities you are free to choose: how many of each product, how much of each ingredient, how much to allocate to each channel. These are what the solver changes to reach the goal.

03

The limits

The rules you cannot break: only so many hours, a minimum amount of protein, a fixed budget. Each one caps or floors what the decisions are allowed to add up to.

How to solve it, step by step

1

Write your decisions as a column, one row each, starting at zero.

2

Write the goal as a cell that totals the value of those decisions.

3

Write each limit as a row: what it uses, an operator, and the cap.

4

Hand it to a solver. It searches the feasible solutions and returns the best result it can prove within its solving limits, along with which limits are binding.

A worked example

A workshop makes chairs and tables. A chair earns 30, a table 40. Chairs take 2 hours of woodworking and 3 of assembly; tables take 4 and 2. There are 80 hours of wood work and 60 of assembly. How many of each to earn the most? The best answer is 10 chairs and 15 tables, for 900, using every hour of both. You can open this in the solver and change the numbers.

Open this example in the solver

Nine worked examples cover the full range, from a simple production plan to a mixed-integer supplier model. Browse all examples.

Set variable types and limits

By default every decision can take any value from zero upward. After building your model, open Variable settings to change that. Each decision can be continuous (any amount), integer (whole numbers only, like people or vehicles), or binary (a decision that can only be 0 or 1). You can also give a decision its own minimum and maximum, for example a crew of at least 3 and at most 8. Binary decisions are fixed to 0 or 1 automatically. Plumline currently supports non-negative variables only, so minimums cannot be below zero.

For example: an "open this site" decision as Binary, a "workers" decision as Integer from 0 to 20, and a "budget share" decision as Continuous from 0 to 100. The receipt then lists every variable with a customised type or limit, and confirms the result stays within them.

Confirm the direction: maximise or minimise

For a model you enter or paste, Plumline asks whether the goal should be as large as possible (maximise, for profit or return) or as small as possible (minimise, for cost or waste). It remembers that choice while the objective cell, label and formula stay the same. Plumline's built-in examples arrive with their direction already confirmed. If you change the objective formula, its label, or the objective cell, Plumline asks you to confirm the direction again, so it always matches the model you are actually solving.

Why verify the answer

A solver's output is a number you could not work out yourself, which is exactly why it is hard to trust. The online solver recalculates the objective and constraints from your formulas. The Google Sheets add-on writes the solution back and lets Sheets recalculate. In both cases, Plumline shows whether the result satisfies the model before you rely on it. For eligible binding constraints in continuous models, it also estimates the improvement from relaxing the constraint by one unit.

Understanding the result status

  • Optimal solution proven: the search completed and no better answer exists.
  • Feasible solution: it satisfies every constraint, but a better one might exist and could not be proven within the limits.
  • Search incomplete: Plumline could not reach a conclusion within the solving limits. It does not claim the model is impossible.
  • No feasible solution: the constraints have been proven to contradict each other.
  • Unbounded model: the objective can keep improving because the model has no finite limit in that direction.

How Plumline explains a result

A number on its own is hard to trust, so Plumline shows its working around every answer. Before solving, it reflects back the model it read: the objective, each decision and every limit, so you can confirm it understood your sheet. After solving, it reports the outcome in plain terms and, where the model allows, draws it.

  • It restates the objective, decisions and limits it detected, so a misread cell shows up before you rely on the answer.
  • Plumline reports the result status in words. The result status section explains optimal, feasible, incomplete, infeasible and unbounded results.
  • For eligible binding constraints in continuous models, it estimates how much the objective would improve if you relaxed that constraint by one unit.
  • For a model with two decisions, it can draw the feasible region and mark where the best answer sits.
  • It shows these explanations, and any messages, in the interface language you have selected.

What it can and can't do

Handles

Continuous, integer, binary (0 or 1) and mixed-integer linear problems. Set a variable's type and its minimum and maximum in Variable settings. Production mix, purchasing, blending, staffing rotas, transport, budget allocation, project selection and loading. Many small models solve quickly in the browser.

Does not handle

Genuinely non-linear relationships, such as one decision multiplied by another, or curves and diminishing returns. Plumline detects these and points at the cell rather than returning a wrong answer.

On size

The online solver uses a dynamic grid of up to 40 rows by 20 columns, and reads up to twenty limit rows per model. Add or remove rows and columns as needed, or paste a table from Excel or Google Sheets and Plumline expands the grid automatically. Very large or numerically awkward models can still be slow or hit an internal safety ceiling; for those, or for non-linear ones, a dedicated operations-research tool is the right choice, and Plumline tells you when a problem is out of its depth.

Try it with your own numbers

Paste an existing model from Excel or Google Sheets, or enter your goal, decisions and limits directly in the grid. Nothing is uploaded, and it is free.