|
C.6.4 Integer programmingLet 191#191 be an 68#68 matrix with integral coefficients, 789#789 and 790#790. The problem
791#791
is called an instance of the integer programming problem or
IP problem.
The IP problem is very hard; namely, it is NP-complete. For the following discussion let 792#792 (component-wise). We consider 47#47 as a weight vector; because of its nonnegativity, 47#47 can be refined into a monomial ordering 793#793. It turns out that we can solve such an IP instance with the help of toric ideals: First we assume that an initial solution 333#333 (i.e., 794#794) is already known. We obtain the optimal solution 795#795 (i.e., with 796#796 minimal) by the following procedure:
If no initial solution is known, we are nevertheless able to solve the problem with similar techniques. For this purpose we replace our instance by an extended instance with the matrix used in the Conti-Traverso algorithm. Indeed, the Conti-Traverso algorithm offers the possibility to verify solvability of a given instance and to find an initial solution in the case of existence (but none of the other algorithms does!). Details can be found in see [CoTr91] and see [The99]. An implementation of the above algorithm and some examples can be found in intprog_lib. In general, classical methods for solving IP instances like Branch-and-Bound methods seem to be faster than the methods using toric ideals. But the latter have one great advantage: If one wants to solve various instances that differ only by the vector 46#46, one has to perform steps (1) and (2) above only once. As the running time of step (3) is very short, solving all the instances is not much harder than solving one single instance. For a detailed discussion see see [The99]. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |