PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox Chapter Introduction
H — operations research
Scope of the Chapter
This chapter provides functions to solve certain integer programming, transportation and shortest path problems. Additionally ‘best subset’ functions are included.
Background to the Problems
General
linear programming (LP) problems (see
Dantzig (1963)) are of the form:
- find to maximize
- subject to linear constraints which may have the forms:
This chapter deals with
integer programming (IP) problems in which some or all the elements of the solution vector
are further constrained to be
integers. For general LP problems where
takes only real (i.e., noninteger) values, refer to
Chapter E04.
IP problems may or may not have a solution, which may or may not be unique.
Consider for example the following problem:
The hatched area in
Figure 1 is the
feasible region, the region where all the constraints are satisfied, and the points within it which have integer coordinates are circled. The lines of hatching are in fact contours of decreasing values of the objective function
, and it is clear from
Figure 1 that the optimum IP solution is at the point
. For this problem the solution is unique.
However, there are other possible situations.
(a) |
There may be more than one solution; e.g., if the objective function in the above problem were changed to , both and would be IP solutions. |
(b) |
The feasible region may contain no points with integer coordinates, e.g., if an additional constraint
were added to the above problem. |
(c) |
There may be no feasible region, e.g., if an additional constraint
were added to the above problem. |
(d) |
The objective function may have no finite minimum within the feasible region; this means that the feasible region is unbounded in the direction of decreasing values of the objective function, e.g., if the constraints
were deleted from the above problem. |
Figure 1
Algorithms for IP problems are usually based on algorithms for general LP problems, together with some procedure for constructing additional constraints which exclude noninteger solutions (see
Beale (1977)).
The Branch and Bound (B&B) method is a well-known and widely used technique for solving IP problems (see
Beale (1977) or
Mitra (1973)). It involves subdividing the optimum solution to the original LP problem into two mutually exclusive sub-problems by branching an integer variable that currently has a fractional optimal value. Each sub-problem can now be solved as an LP problem, using the objective function of the original problem. The process of branching continues until a solution for one of the sub-problems is feasible with respect to the integer problem. In order to prove the optimality of this solution, the rest of the sub-problems in the B&B tree must also be solved. Naturally, if a better integer feasible solution is found for any sub-problem, it should replace the one at hand.
The efficiency in computations is enhanced by discarding inferior sub-problems. These are problems in the B&B search tree whose LP solutions are lower than (in the case of maximization) the best integer solution at hand.
The B&B method may also be applied to convex quadratic programming (QP) problems and nonlinear programming (NLP) problems using sequential convex QP approximations.
Functions have been introduced into this chapter to formally apply the technique to dense general QP problems and to sparse LP, QP or NLP problems.
Scaling in the E04 Chapter Introduction describes the virtues of having a well-scaled problem. The imposition that a variable be integer makes this more difficult and some practical common sense might be required to make the problem tractable. If a variable is expected to have a large value at the minimum, say
for instance, then in practical terms it might be better to forget the integer constraint and simply round off the final answer. To do otherwise forces a high level of computation accuracy on the underlying optimiser that might be impossible to achieve.
A special type of linear programming problem is the transportation problem in which there are variables which represent quantities of goods to be transported from each of sources to each of destinations.
The problem is to minimize
where
is the unit cost of transporting from source
to destination
. The constraints are:
Note that the availabilities must equal the requirements:
and if all the
and
are integers, then so are the optimal
.
The
shortest path problem is that of finding a path of minimum length between two distinct vertices
and
through a network. Suppose the vertices in the network are labelled by the integers
. Let
denote an ordered pair of vertices in the network (where
is the origin vertex and
the destination vertex of the arc),
the amount of flow in arc
and
the length of the arc
. The LP formulation of the problem is thus given as
where
and
The above formulation only yields a meaningful solution if
; that is,
forms part of the shortest route only if
. In fact since the optimal LP solution will (in theory) always yield
,
(1) can also be solved as an IP problem. Note that the problem may also be solved directly (and more efficiently) using a variant of Dijkstra's algorithm (see
Ahuja et al. (1993)).
The
travelling salesman problem is that of finding a minimum distance route round a given set of cities. In the classical travelling salesman problem the salesperson must visit each city only once before returning to his or her city of origin. It can be formulated as an IP problem in a number of ways. One such formulation is described in
Williams (1993). Such IP problems could be solved directly by a mixed integer nonlinear programming solver; however, there are currently no functions in the Library that directly solve such IP problems. However, an acceptable solution to symmetric distance problems may be sought using the probabilistic optimization method known as simulated annealing for which a function is available. Asymmetric problems can be tackled by the introduction of shadow cities with zero distance between an original city and its shadow. Incomplete problems, where bidirectional travel between each pair of cities is not possible, can be tackled by attributing very large distances to unavailable journeys. For example, a salesperson might not mind backtracking through a previously visited city if this produced the shortest route. This problem is known as the practical travelling salesman problem.
The
best subsets problem assumes a scoring mechanism and a set of
features. The problem is one of choosing the best
subsets of size
. It is addressed by two functions in this chapter. The first of these uses reverse communication; the second direct communication (see
Direct and Reverse Communication functions in
Calling NAG Routines From MATLAB for a description of the difference between these two conventions).
Recommendations on Choice and Use of Available Functions
nag_mip_ilp_dense (h02bb) solves dense integer programming problems using a branch and bound method.
nag_mip_ilp_print (h02bv) prints the solution to an integer or a linear programming problem using specified names for rows and columns.
nag_mip_ilp_info (h02bz) supplies further information on the optimum solution obtained by
nag_mip_ilp_dense (h02bb).
nag_mip_iqp_dense (h02cb) solves dense integer general quadratic programming problems.
nag_mip_iqp_sparse (h02ce) solves sparse integer linear programming or quadratic programming problems.
nag_mip_transportation (h03ab) solves transportation problems. It uses integer arithmetic throughout and so produces exact results. On a few machines, however, there is a risk of integer overflow without warning, so the integer values in the data should be kept as small as possible by dividing out any common factors from the coefficients of the constraint or objective functions.
nag_mip_shortestpath (h03ad) solves shortest path problems using Dijkstra's algorithm.
nag_mip_tsp_simann (h03bb) is a (symmetric) classical travelling salesman problem.
nag_mip_ilp_dense (h02bb) and
nag_mip_transportation (h03ab) treat all matrices as dense and hence are not intended for large sparse problems. For solving large sparse LP problems, use
nag_opt_qpconvex2_sparse_solve (e04nq) or
nag_opt_nlp1_sparse_solve (e04ug).
Transportation Problem
nag_mip_transportation (h03ab) solves transportation problems. It uses integer arithmetic throughout and so produces exact results. On a few machines, however, there is a risk of integer overflow without warning, so the integer values in the data should be kept as small as possible by dividing out any common factors from the coefficients of the constraint or objective functions.
Feature Selection – Best Subset Problem
nag_best_subset_given_size_revcomm (h05aa) selects the best
subsets of size
using a reverse communication branch and bound algorithm.
nag_best_subset_given_size (h05ab) selects the best
subsets of size
using a direct communication branch and bound algorithm.
Functionality Index
Integer programming problem (dense): | | |
Integer programming problem (sparse): | | |
References
Ahuja R K, Magnanti T L and Orlin J B (1993) Network Flows: Theory, Algorithms and Applications Prentice–Hall
Beale E M (1977) Integer programming The State of the Art in Numerical Analysis (ed D A H Jacobs) Academic Press
Dantzig G B (1963) Linear Programming and Extensions Princeton University Press
IBM (1971) MPSX – Mathematical programming system Program Number 5734 XM4 IBM Trade Corporation, New York
Mitra G (1973) Investigation of some branch and bound strategies for the solution of mixed integer linear programs Math. Programming 4 155–170
Williams H P (1993) Model Building in Mathematical Programming (3rd Edition) Wiley
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015