A company produces two types of products T1 and T2, which requires the following resources to produce each unit of the product:

Resource | T1 | T2 |

Labour (hours) | 9 | 6 |

Pumps (units) | 1 | 1 |

Tubing (m) | 12 | 16 |

The amount of profit per unit of products are:

- T1
- £350
- T2
- £300

They have the following resources available: 1566 hours of labour, 200 pumps, and 2880 metres of tubing.

- Write a program to maximise the profit for the company, using eplex as a black box solver. Write a predicate that returns the profit and the values for T1 and T2.
- What program change is required to answer this question: What profit can be achieved if exactly 150 units of T1 are required?
- What would the profit be if fractional numbers of refrigerators could be produced?
- Rewrite the program from (1) without optimize/2, using eplex_solver_setup/1, eplex_solve/1, and eplex_var_get/3.
- In the program from (4), remove the integrality constraints (so that eplex
only sees an LP problem). Solve the integer problem by interleaving
solving of the LP problem with a rounding heuristic:
- solve the continuous relaxation
- round the solution for T1 to the nearest integer and instantiate it Initially just return the maximum profit value.
- re-solve the new continuous relaxation
- round the solution for T2 to the nearest integer and instantiate it
- re-solve the new continuous relaxation

What is the result in terms of T1, T2 and Profit?

- Rewrite the program from (5) using eplex_solver_setup/4 and automatic triggering of the solver instead of explicit calls to eplex_solve/1. The solver should be triggered whenever variables get instantiated.