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.