M1 Artificial Intelligence · semester 7 · OPL
OPL
Twenty-six Caseine exercises solved with CPLEX: linear programming from a first tutorial model through blending, scheduling and network flow, duality and sensitivity analysis, then integer programs and branch and bound.
Linear programming modelling
01
Worked example
The OPL tutorial's own worked example, run and evaluated exactly as given to confirm the Caseine workflow end to end.
02
Vegetable planning
Vegetable production planning: how much of each crop to grow.
03
Sandbox model
A free-form sandbox model, open to try ideas outside a fixed statement.
04
Dairy product mix
Dairy product mix, question 1: how much of each product to make.
05
Smartphone allocation
Smartphone production allocation across several plants.
06
Wine production
Wine production planning, with the instance data pulled into its own file.
07
Jam production
Jam production planning across several fruits and recipes.
08
Steel alloy blending
Blending raw materials into a steel alloy that meets composition targets.
09
Water network flow
Managing flow through a water network to meet demand.
10
Bill of materials
Production planning from a bill of materials, with its own instance data.
11
Cocktail blending
Blending ingredients into cocktails under recipe and stock constraints.
12
Airline scheduling
Airline scheduling, with the instance data abstracted into its own file.
Duality and sensitivity
13
Garden sensitivity
A garden-planning model, read afterwards for its sensitivity ranges.
14
Wine pricing
Pricing wine from the dual solution of the production model.
15
Diet problem
The classic diet problem: meeting vitamin requirements at minimum cost.
16
Vitamin pricing
Competitive pricing for synthetic vitamins, against the diet problem's dual.
17
Writing the dual
Writing the dual of a given linear program.
Integer programming
18
Flower bouquets
Selecting which flower bouquets to make, as an integer program.
19
Windscreen wipers
Windscreen wiper production, an integer extension of an earlier model.
20
Coal blending
Coal blending, an integer extension of an earlier blending model.
21
Car parking
Parking cars so as to minimise the length of street they occupy.
22
Lot sizing
Lot sizing over several periods, driven by an external .dat file.
23
Bin packing
A bin-packing formulation: fitting items into the fewest bins.
24
Project Euler 345
Project Euler's problem 345, the matrix sum, as an integer program.
25
Toxic warehouse
Assigning incompatible chemical products to warehouse locations.
26
Toy production
Toy production planning, across two linked questions.
Reading it
Source
The folder on GitHub
Twenty-six exercise folders, each with its README and completed model once the work is done.
README
The course README
The full table of OPL exercises, what each is solved with, and what is provided going in.
The exercise statements, and the starter models and data Caseine distributes with them, are not redistributed here. Each exercise keeps its handout on disk, out of the repository; what is committed is my own work.