Integer Programming: Canonical and Standard Form For Ilps
Integer Programming: Canonical and Standard Form For Ilps
,
and an ILP in standard form is expressed as
Example[edit]
The feasible integer points are shown in red, and the red dashed lines indicate their
convex hull, which is the smallest polyhedron that contains all of these points. The
blue lines together with the coordinate axes define the polyhedron of the LP
relaxation, which is given by the inequalities without the integrality constraint. The
goal of the optimization is to move the black dotted line as far upward while still
touching the polyhedron. The optimal solutions of the integer problem are the
points
and
Proof of NP-hardness[edit]
The following is a reduction from minimum vertex cover to integer programming that
will serve as the proof of NP-hardness.
Let
Variants[edit]
Mixed integer linear programming (MILP) involves problems in which only
some of the variables, , are constrained to be integers, while other variables
are allowed to be non-integers.
Zero-one linear programming involves problems in which the variables are
restricted to be either 0 or 1. Note that any bounded integer variable can be
expressed as a combination of binary variables.[3] For example, given an integer
variable,
, the variable can be expressed
using
binary variables:
Traveling Salesman
Vertex Cover and other Covering problems
Set packing and other Packing problems
Boolean satisfiability
Applications[edit]
There are two main reasons for using integer variables when modeling
problems as a linear program:
1. The integer variables represent quantities that can only be integer.
For example, it is not possible to build 3.7 cars.
2. The integer variables represent decisions and so should only take
on the value 0 or 1 .
Production planning[edit]
Mixed integer programming has many applications in industrial production,
including job-shop modelling. One important example happens In
agricultural production planninginvolves determining production yield for
several crops that can share resources (e.g. Land, labor, capital, seeds,
fertilizer, etc.). A possible objective is to maximize the total production,
without exceeding the available resources. In some cases, this can be
expressed in terms of a linear program, but variables must be constrained to
be integer.
Scheduling[edit]
These problems involve service and vehicle scheduling in transportation
networks. For example, a problem may involve assigning buses or subways
to individual routes so that a timetable can be met, and also to equip them
with drivers. Here binary decision variables indicate whether a bus or
subway is assigned to a route and whether a driver is assigned to a
particular train or subway.
Telecommunications networks[edit]
The goal of these problems is to design a network of lines to install so that a
predefined set of communication requirements are met and the total cost of
the network is minimal.[4]This requires optimizing both the topology of the
network along with the setting the capacities of the various lines. In many
cases, the capacities are constrained to be integer quantities. Usually there
are, depending on the technology used, additional restrictions that can be
modeled as a linear inequalities with integer or binary variables.
Cellular networks[edit]
The task of frequency planning in GSM mobile networks involves distributing
available frequencies across the antennas so that users can be served and
interference is minimized between the antennas.[5] This problem can be
formulated as an integer linear program in which binary variables indicate
whether a frequency is assigned to an antenna.
Algorithms[edit]
The naive way to solve an ILP is to simply remove the constraint that x is
integral, solve the corresponding LP (called the LP relaxation of the ILP),
and then round the entries of the solution to the LP relaxation. But, not only
may this solution not be optimal, it may not even be feasible, that is it may
violate some constraint.
. Also, since
is
therefore
. By definition,
Note that
denotes the adjugate of
integer. Therefore,
.
is
Exact algorithms[edit]
When the matrix
is not totally unimodular, there are a variety of
algorithms that can be used to solve integer linear programs exactly.
One class of algorithms are cutting plane methods which work by
solving the LP relaxation and then adding linear constraints that drive
the solution towards being integer without excluding any integer feasible
points.
Another class of algorithms are variants of the branch and
bound method. For example, the branch and cut method that combines
both branch and bound and cutting plane methods. Branch and bound
algorithms have a number of advantages over algorithms that only use
cutting planes. One advantage is that the algorithms can be terminated
early and as long as at least one integral solution has been found, a
feasible, although not necessarily optimal, solution can be returned.
Further, the solutions of the LP relaxations can be used to provide a
worst-case estimate of how far from optimality the returned solution is.
Finally, branch and bound methods can be used to return multiple
optimal solutions.
Lenstra in 1983 showed [6] that, when the number of variables is fixed,
integer programming problem can be solved in a polynomial time.
Heuristic methods[edit]
Since integer linear programming is NP-hard, many problem instances
are intractable and so heuristic methods must be used instead. For
example, tabu search can be used to search for solutions to ILPs.[7] To
use tabu search to solve ILPs, moves can be defined as incrementing or
decrementing an integer constrained variable of a feasible solution,
while keeping all other integer-constrained variables constant. The
unrestricted variables are then solved for. Short term memory can
consist of previous tried solutions while medium term memory can
consist of values for the integer constrained variables that have resulted
in high objective values (assuming the ILP is a maximization problem).
Finally, long term memory can guide the search towards integer values
that have not previously been tried.
Other heuristic methods that can be applied to ILPs include
Hill climbing
Simulated annealing
Reactive search optimization
Ant colony optimization
Hopfield neural networks