• Aucun résultat trouvé

Solving Mixed-Integer Linear Programming Problems

Graphs and Algorithms in Communication Networks on Seven League Boots

1.4 Combinatorial Optimization Methods

1.4.1 Linear-Programming-Based Methods

1.4.1.3 Solving Mixed-Integer Linear Programming Problems

An integer linear program (ILP) is an optimization problem satisfying the following conditions

the objective is a linear function of the variables

all constraints are linear in the variables

the variables can take only integer values (i.e.Z)

By this definition, an ILP can be written w. l. o. g. in its standard maximization form as ⎧

max cTx s.t. Ax=b

x∈Zn+

(1.5) with matrix A∈Qm×n, a right-hand side b∈Qm+, and arbitrary objective values c∈ Rn. A mixed-integer program (MIP) generalizes the above definition by requiring only a subset of the variables to be integer and allowing the remaining ones to take continuous values. The methods to solve ILPs and MIPs are basically the same, and therefore not further distinguished in this chapter.

For the purpose of our exposition, it is more convenient to rewrite the formula-tion (1.5) to a system of linear inequalities:

⎧⎨

max cTx s.t. Ax≤b

x∈Zn+

(1.6)

The linear relaxation of (1.6) is obtained by replacing the integrality constraints by nonnegativity constraints. Figure 1.5 illustrates for a given system of linear in-equalities the integer-feasible solutions (i.e., the grid of points) as well as the LP relaxation (the polytope).

objective

solution LP

Fig. 1.5 Integer-feasible solutions and the LP relaxation for a system of linear inequalities

Branch-and-Bound

The most common method to solve ILPs is branch-and-bound (B&B). In a B&B algorithm, the linear programming relaxation of (1.6) is solved multiple times, each time with other bounds on the variables. Let z be the optimal solution value of (1.6).

The algorithm starts with solving the LP relaxation, returning a solution ˆx. Since the LP relaxation contains all integer-feasible points (cf. Figure 1.5), the value of the LP relaxation z0LP=cTx is an upper bound on z. If ˆˆ x∈Zn+, the solution is also valid for (1.6), and hence we found an optimal solution. If ˆx∈Zn+, there is at least one fractional variable ˆxi. In an optimal solution, either xi≤ xˆior xi≥ xˆi. There-fore, we perform branching on xi: we replace the LP relaxation with two new sub-problems, one with the variable bound xi≤ xˆiand one with the variable bound xi≥ ˆxi; see Figure 1.6 for illustration.

solution solution objective

new LP new LP

Fig. 1.6 Branching on a fractional variable: two subproblems provide new optimal LP solutions

Every optimal solution of (1.6) is in either of the new polyhedra, and thus z=max{z1,z2}where z1and z2are the optimal (integer) solution values of the sub-problems respectively. Moreover, z≤max{z1LP,z2LP} ≤z0LPbounds the optimal value from above, where z1LPand z2LPare the values of the corresponding LP relaxations.

In case the LP relaxation of the first (second) subproblem is integral, z≥z1LP=z1 (z≥z2LP=z2), and we can bound the optimal value from below. The procedure can be repeated recursively for the subproblems as long as the two bounds are not equal. For further details, we refer to [82, 92] or to any one of the many textbooks in Operations Research.

Polyhedral Combinatorics

Polyhedral combinatorics is the study of the structure of the polytope (polyhedron) described by the integer solutions of (1.6). Given the set of integer solutions, we can define P as the convex hull of these points; see Figure 1.7. If we can derive a system of linear inequalities describing this polytope, (1.6) can be solved by the Simplex Algorithm (or interior point methods, possibly with a slight permutation of the objective) since every extreme point is integral by definition.

objective

solution LP

Fig. 1.7 The convex hull of integer solutions can be described by a system of linear inequalities

An inequality ax≤a0is called valid if ax≤a0for all x∈P. Let F(a,a0) ={x∈ P : ax=a0}be the set of polytope points that satisfy the valid inequality with equal-ity. If F=/0 it describes a face of P. A valid inequality is facet-defining if F(a,a0) is maximal, i.e., there is no other valid inequality dx≤d0with F(a,a0)⊂F(d,d0).

Stated otherwise, the intersection of the polytope and a facet-defining valid inequal-ity forms a face of the polytope of highest possible dimension (without having F=P); see Figure 1.8.

A valid inequality is also called a cutting plane as it might cut off a fractional so-lution from the integer soso-lutions. A cutting plane algorithm follows this procedure.

First, the LP relaxation is solved. Next, if the LP solution ˆx is not integral, there exists a valid inequality ax≤a0that is violated by ˆx, i.e., a ˆx>a0. This inequality is added to the system of inequalities defining the LP relaxation, and the enlarged LP

cutting plane objective

new LP solution

(a) Valid inequality

objective

facet

(b) Facet of polyhedron

Fig. 1.8 A cutting plane is a valid inequality that separates the LP relaxation from the integer-feasible solutions; the strongest cutting planes are facets of the integer polyhedron

is resolved. This procedure is repeated until the optimal LP solution is integral. The search for a violated inequality is known as the separation algorithm.

If all facet-defining inequalities of P are known (a so-called complete descrip-tion), the described algorithm is guaranteed to find an optimal solution of (1.6).

However, since interior point methods find an optimal solution in polynomial time, deriving a complete description of the convex hull of integer points is at least as difficult as solving the optimization problem itself; i.e., if the problem isNP-hard, deriving a complete description of size polynomial in the input is not possible, un-less P=NP. Stated differently, if a complete description of the polytope can be identified, the number of inequalities must be of exponential size, unlessP=NP.

Further, given a fractional solution ˆx of (1.6), determining a violated valid inequal-ity is, in general, as hard as solving the optimization problem itself. This theorem is known as separation = optimization [53, 54]. For further details we refer to [55]. A compact presentation of polyhedral techniques for combinatorial optimization can be found in [1, 2].

Branch-and-Cut

If not all facet-defining inequalities of P are known, the cutting plane algorithm might not be able to find a violated valid inequality given an LP solution ˆx. Or it may take too long to find a violated inequality. In such cases, the cutting plane algorithm ends with a fractional solution and a (hopefully) improved upper bound. Branching on one of the fractional variables is now an option. For each of the subproblems, the cutting plane algorithm can be restarted to improve the bounds further. This combination of branch-and-bound and cutting planes is known as branch-and-cut.

All modern integer linear programming solvers exploit a branch-and-cut algo-rithm, where general purpose cutting planes like Chv´atal-Gomory cuts and clique inequalities are separated. Products like ILOG CPLEX [64] and SCIP [5] allow for the addition of problem-specific cutting planes by the user.

Branch-and-Price

The case where the ILP (1.5) has a very large number of variables can be handled similarly to the linear programming case, using a master and pricing problem. How-ever, this time such a dynamic column generation approach has to be interwoven with the B&B algorithm. The resulting algorithm is known as branch-and-price (B&P). Special care has to be taken to solve a problem with B&P since branching on variables might be in conflict with the column generation, i.e., if we branch on a variable to be bounded from above (i.e., xi≤ xˆi, we should prevent the same variable from being generated by the column generation, since otherwise the same subproblem as before is solved. For further information on B&P, or the integration of cutting planes, known as branch-and-cut-and-price (B&C&P), we refer to [11].

Further Reading

More on (mixed) integer linear programming methods and polyhedral theory can be found in [76, 82, 92]. Recent progress can be found in [21], whereas [31] provides a nice historical view.