Linear Programming for Refinery Flow Allocation (part 2)
where is a sufficiently large positive coefficient. The secondary term is used to introduce preferences between alternative feasible flow allocations.
.
These constraints define the operating range of each line. If , then . If , the flow must satisfy:
Thus, a process line can either remain idle or operate within its allowable minimum–maximum throughput range.
The incoming flow must be distributed between the process lines and the unaccepted flow:
Therefore, .The variable represents the portion of the incoming flow that cannot be accepted by the process unit.
To account for preferred allocation between process lines, the model introduces a priority penalty:
The coefficients can be selected according to the required priority of the process lines. This allows the optimization to prefer one feasible allocation over another without changing the primary objective of minimizing residual flow.
The total number of active process lines can be represented by:
where represents the number of currently active lines.
This variable can subsequently be used to introduce additional optimization criteria, for example, to prefer solutions using fewer operating lines.
The model also defines non-negativity constraints:
Finally, the line activation variables are binary:
The resulting model is therefore a mixed-integer linear programming (MILP) problem. Its solution simultaneously determines the operating state of each process line, the flow allocated to every line, and the minimum possible unaccepted flow for the current operating conditions of the process unit.
Consider a process unit with three parallel process lines. The available incoming flow is:
For each line, the selected operating mode allows a throughput from .
The optimization returns:
All three lines are active: the total accepted flow is: The resulting unaccepted flow is: