
6. Integer Linear Programming based Scheduling
Integer Linear Programming (ILP), have been used to solve a wide range of constraint based optimization problems. In this section, we will discuss an ILP formulation for optimally solving the synthesis problem. The biggest advantage of using ILP is the quality of the solution; unlike the heuristics based scheduling algorithms, described earlier, an ILP solver is guaranteed to find an optimal schedule from these formulations. However, this guarantee of quality comes at a price — ILPs cannot, in general, be solved in polynomial time. Thus, the tradeoff is between the guarantee of solution quality and a guarantee of quickly finding a solution.
Now we will formulate the scheduling problem as ILP. Unlike the discussion on other scheduling cases (above), we will not give a generalized algorithm to formulate an ILP for a scheduling problem. However, we will consider the running example and formulate ILP for the same and the discussion will give a generalized idea of the procedure of such a formulation.
In the ILP for scheduling, we have four sets of equations namely, (i) to capture the range ([ASAP-ALAP]) in which an operation can be scheduled, (ii) requirement that there is no violation of resource constraints, (iii) data dependency and (iv) optimize the resource requirements. Now we will formulate equations for each of these cases for the running example.

