The Five-Rod Feasible Region: Linear Programming Your Allotment
Photo by Photo by Andrew Hall on Unsplash on Unsplash
The seed catalogues arrive in November, which is when an allotment stops being a pile of wet leaves and becomes a spreadsheet with slugs.
You have a 5-rod plot — about 126 square metres on paper, but after paths, shed, compost bins and the bit where the neighbour's raspberries have invaded, call it ten usable raised beds. Each bed is roughly 1.2 metres by 2.5 metres. Next season you are choosing between tomatoes, courgettes and overwintering greens.
That is not just gardening. It is linear programming with muddy boots.
Variables, not vibes
Linear programming needs three things: variables, constraints and an objective. The variables are the things you control. Let T be the number of tomato beds, C the number of courgette beds and G the number of overwintering green beds.
The constraints are the limits. Bed space is one. Watering time is another. Sunlight is a third. Crop rotation and winter structure are others. The objective is what you want: harvest value, weight, variety, or enough produce to avoid another year of courgette chutney.
Write the constraints as inequalities
- Bed space: T + C + G ≤ 10.
- Sunlight: only six beds get six-plus hours of midsummer sun, and tomatoes need that. So T ≤ 6.
- Watering: tomatoes need about 25 minutes per bed per week, courgettes 15, greens 8. You have 170 minutes a week before the tap queue gets passive-aggressive. So 25T + 15C + 8G ≤ 170.
- Winter structure: at least three beds of overwintering greens. So G ≥ 3.
- You want at least one courgette bed, because courgettes are the only crop that makes you feel like a successful gardener. So C ≥ 1.
- Non-negativity: T, C, G ≥ 0.
For the objective, use a rough harvest value per bed from last year's prices and yields: tomatoes £54, courgettes £18, greens £15. Maximise V = 54T + 18C + 15G. This is not profit in an accountant's sense. It is a stand-in for whatever you value. Change the coefficients and you change the plan.
Fix the greens and draw the region
Three variables are hard to sketch on the back of an envelope. Since G has a minimum and a lower value per bed, start with G = 3. Then the constraints become T + C ≤ 7, 25T + 15C ≤ 146, T ≤ 6, C ≥ 1, T ≥ 0. Now it is a two-dimensional problem.
Sketch T on the horizontal axis and C on the vertical. The feasible region is the polygon with corners at (0,1), (5.24,1), (4.1,2.9) and (0,7). Linear programming says the best answer will be at a corner. So test them.
| Tomato beds T | Courgette beds C | Green beds G | Water minutes | Harvest value |
|---|---|---|---|---|
| 0 | 1 | 3 | 39 | £63 |
| 5.24 | 1 | 3 | 146 | £346 |
| 4.1 | 2.9 | 3 | 146 | £319 |
| 0 | 7 | 3 | 129 | £171 |
The best fractional corner is T = 5.24, C = 1, G = 3. You cannot plant 0.24 of a tomato bed, so round and check nearby integers.
Rounding with muddy hands
Try T = 5, C = 1, G = 3: water is 125 + 15 + 24 = 164 minutes; value is 270 + 18 + 45 = £333. Total beds used: 9, so one bed is spare.
Try T = 5, C = 2, G = 3: water is 125 + 30 + 24 = 179 minutes. Over the limit.
Try T = 4, C = 3, G = 3: water is 100 + 45 + 24 = 169 minutes; value is 216 + 54 + 45 = £315.
So the best integer plan in this model is five tomato beds, one courgette bed and three green beds, with one bed left fallow or for flowers. If that feels wasteful, remember the model is honest about what it ignores. A fallow bed is not a failure; it is a constraint the algebra has not priced.
What the corners are telling you
Tomatoes are the high-value crop per bed, so the objective pushes T up until a constraint stops it. In this model, water stops it before sunlight does: at T = 5.24, the watering line is binding. Courgettes are a lower-value use of water and space, but they are not pointless. They add variety, and the minimum C ≥ 1 keeps you in courgettes.
Greens are a constraint, not the objective's favourite. They are there because winter structure matters, because the plot should not be bare in January, and because the allotment rulebook tends to like cultivation. The maths does not tell you to ignore those things. It tells you what they cost in tomatoes.
If you value variety more, raise the coefficient on courgettes or greens. If you want to maximise kilograms rather than pounds, change the objective to 18T + 12C + 6G and the answer shifts. Linear programming is not a philosophy. It is a way to make your priorities explicit.
Do it on your own plot
List your beds. Write your limits. Pick an objective. Sketch the feasible region. Test the corners. Round to real beds. Then ignore one constraint if it is a silly one, like the shed needing painting.
UK allotment sites often have rules about cultivation and hedges, so check with your council or site association. The maths does not replace the rulebook, but it does tell you which rule is costing you the most tomatoes.
An allotment is a small civic system: shared water, shared ground, private harvest. Linear programming is just the algebra of taking that seriously. And if the feasible region says leave a bed fallow, enjoy it. Fallow is a corner point too.