Suppose we wish to invest $14,000. We have identified four investment opportunities. Investment 1 requires an investment of $5,000 and has a present value (a time-discounted value) of $8,000; investment 2 requires $7,000 and has a value of $11,000; investment 3 requires $4,000 and has a value of $6,000; and investment 4 requires $3,000 and has a value of $4,000. Into which investments should we place our money so as to maximize our total present value?

As in linear programming, our first step is to decide on our
variables. This can be much more difficult in integer programming
because there are very clever ways to use integrality restrictions.
In this case, we will use a 0-1 variable for each investment.
If is 1 then we will make investment *j*. If it is 0, we will
not make the investment. This leads to the 0-1 programming problem:

Now, a straightforward ``bang for buck'' suggests that investment 1 is the best choice. In fact, ignoring integrality constraints, the optimal linear programming solution is , , , for a value of $22,000. Unfortunately, this solution is not integral. Rounding down to 0 gives a feasible solution with a value of $19,000. There is a better integer solution, however, of , for a value of $21,000. This example shows that rounding does not necessarily give an optimal value.

There are a number of additional constraints we might want to add. For instance, consider the following constraints:

- We can only make two investments.
- If investment 2 is made, investment 4 must also be made.
- If investment 1 is made, investment 3 cannot be made.

All of these, and many more *logical restrictions*, can be
enforced using 0-1 variables. In these cases, the constraints are:

- .

Sun Jun 14 12:49:07 EDT 1998