ModelRisk Optimizer example · Agriculture and food
Vineyard Frost Protection
How many protection units per block keep every bud above the frost-damage line on a cold night?
The optimisation problem
Lowest mean protection cost
- Decide
- Frost protection units for 5 blocks, 0 to 10
- Goal
- Lowest mean protection cost
- Limit
- At most a 10% chance the coldest bud falls below −2 °C
- Engine
- Vertex Detector
What the Optimizer found
| Starting plan | Optimizer’s plan | |
|---|---|---|
| Block 1 | 3 | 3 |
| Block 2 | 3 | 6 |
| Block 3 | 3 | 2 |
| Block 4 | 3 | 6 |
| Block 5 | 3 | 2 |
| Goal: Mean total protection cost ($) | 6,300 | 7,980 |
| Limit: Chance coldest bud temp (°C) is at or below −2, at most 10% | 30% not met | 8.6% met |
ModelRisk Optimizer run on 13 Oct 2026: the Vertex Detector engine, with Turbo simulation, tried 293 plans, each simulated with 10,000 samples, in 3 seconds. Both plans above were then simulated again with the same 10,000 samples.
What the workbook models
Five vineyard blocks face an uncertain overnight minimum temperature (normal). Each protection unit lifts a block's coldest-bud temperature. Buds are damaged below −2 °C. You choose integer units per block.
Decision, objective and constraint
- Decision
- 5 integer unit counts, each 0 to 10
- Objective
- Minimise Mean total protection cost
- Hard constraint
- probability the coldest bud drops below −2 °C ≤ 10% (i.e. ≥90% frost-safe)
The engine: Vertex Detector
A chance constraint over integer decisions walls the feasible region with an infinite penalty, so gradient engines stall. Method=Auto routes it to the Vertex Detector, which walks the feasible edge to the cheapest frost-safe plan. 1000 iterations/trial give a stable 90% assurance.
The model
Place integer protection units per block so the coldest bud stays above the frost line with ≥90% assurance.
InputDecision (the Optimizer changes it)Calculated or uncertain (sampled each iteration)Objective
Parameters
| Warming per unit (°C) | 0.90 |
|---|---|
| Cost per unit ($/night) | 420 |
| Damage threshold (°C) | -2.00 |
Units (decision highlighted)
| Block | Units (0-10) | Ambient min °C | Bud temp °C |
|---|---|---|---|
| Block 1 | 3 | uncertain | calculated |
| Block 2 | 3 | uncertain | calculated |
| Block 3 | 3 | uncertain | calculated |
| Block 4 | 3 | uncertain | calculated |
| Block 5 | 3 | uncertain | calculated |
Results
| Total protection cost ($): objective | calculated |
|---|---|
| Coldest bud temp (°C): constraint | calculated |
Decision cells hold starting values: the workbook opens at the starting plan above, and the Optimizer finds its plan when you run it. The figures are illustrative.
Run it yourself. Open the workbook with ModelRisk, open the Optimizer from the ribbon (the saved task opens with it) and press Start.
Glossary
- Chance constraint
- a limit that must hold with a stated probability (here 90%)
Find similar models
- Product
- Type
- Application
- Uses
Download the workbook and run the Optimizer. It opens in Excel with ModelRisk.
Related example models
- ModelRiskOptimizer★★★★★Aquaculture: Daily Feed PulsesHow many feed pulses per pen give a robust harvest weight without risking an oxygen crash?Sets feed pulses for five fish pens to raise the 25th-percentile harvest, with at most a 5% chance of an oxygen crash.
- ModelRiskOptimizer★★★★★Vertical Farm: Crop Rack AllocationHow many grow-racks should each crop get to maximise expected profit within the light and water budgets?Splits grow-racks among four crops for the highest mean profit within a 4,000 kWh lighting and 2,600 L water budget.
- ModelRiskOptimizer★★★★★Craft Bakery: Sourdough HydrationWhat hydration percentage yields the target crumb structure?Finds the dough hydration, between 60% and 90%, that puts the crumb index on its target of 3.2.
An illustrative example: the figures are invented for teaching. Last updated 9 October 2026.