Eudoxus Systems Ltd logo (5k) Tel: + 44 1525 852660  Fax: +44 1525 852654
Home
Search
About us
Products & Services
Tools We Use
What is Optimization?
MP in Action
Lecture Notes
   What is MP?
   Practical LP
   Algebraic    Formulation
   Interpretation    of Results
   Integer    Programming
Site Map
Download these lecture notes as a .pdf (350k)
Practical Integer Programming

previous contents next

8. Guiding the Search

8.1 Decisions which the IP Code Takes

There are three decisions which the Branch-and-Bound algorithm faces at each stage in seeking to move from a continuous solution in which some of the integer requirements are not met (integer infeasibilities) to an integer feasible solution:

  • which sub-problem should it develop next?
  • which integer structure within the sub-problem should it branch on?
  • which branch should it take?

There is no clear answer to any of these, so the IP code provides you with mechanisms to influence these decisions. You can:

  • use more powerful integer structures such as Special Ordered Sets;
  • specify priorities on integer variables and structures which tell the IP code to attend to the high-priority ones first;
  • control the "shape" of the search, i.e. whether the search is broad across many nodes or tries to proceed deep quickly to find a completely integer feasible solution;
  • use targets and cutoffs to prune the search, possibly at the expense of not finding the best solution;
  • assist with the estimation process.

Although it lies outside the scope of the IP code, another powerful technique is to:

  • change your formulation so that you only require the most important integer variables and structures to be integer.

In effect this is an extreme form of priorities: it is saying "don't bother at all about the low-priority integer decisions". It can be very useful in helping you to understand about your problem and can assist in tightening the bounds on the value of the optimum integer solution.

Finally, if you run the IP code interactively, you can:

  • use Control-C to interrupt the algorithm as it is running and reset parameters.

This can be very useful to counter the frustration of seeing the search going the wrong way. But in order for it to work it is imperative that you do not type ahead.

8.2 Special Ordered Sets

Special Ordered Sets have already been described. It remains only to say: "Use them". One instance where their use may not be obvious is in representing a relationship involving a discontinuity, as shown in Figure 6:

Figure 6: Representing a Discontinuity

Fig.6 (7k)

y = Y0 if x = X0

y = Y1 + A (x - X0) if X0 < x £ X2

Normally it suffices to use a single binary variable, d, which is set to 1 if x > X0. But if the relationship is required to be 2-way, i.e. we need to force x = X0 implies y = Y0 we need in any case to define a value, X1, which is just greater than X0 and implement the relationship as x < X1 implies y = Y0 (see section 3 above). In this case we can represent the relationship by an S2 set which interpolates the piecewise-linear function between the points (X0, Y0), (X1, Y1), (X2, Y2). It may be objected that this is a different relationship, because we are now interpolating between (X0, Y0) and (X1, Y1) instead of setting x = X0 throughout this range of y. But the choice of Y1 is arbitrary and we are likely to be in trouble elsewhere if the optimal solution is found to lie in this region.

previous contents next


Home | Search | Services | Tools | MP in Action | Lectures | Copyright | Privacy
© Eudoxus Systems Ltd   1995 - 2003