Integer Programming: Canonical and Standard Form For Ilps Example Proof of Np-Hardness Variants Applications
Integer Programming: Canonical and Standard Form For Ilps Example Proof of Np-Hardness Variants Applications
An integer programming problem is a mathematical optimization or feasibility program in which some or all
of the variables are restricted to be integers. In many settings the term refers to integer linear programming
(ILP), in which the objective function and the constraints (other than the integer constraints) are linear.
Integer programming is NP-complete. In particular, the special case of 0-1 integer linear programming, in
which unknowns are binary, and only the restrictions must be satisfied, is one of Karp's 21 NP-complete
problems.
If some decision variables are not discrete the problem is known as a mixed-integer programming
problem.[1]
Contents
Canonical and standard form for ILPs
Example
Proof of NP-hardness
Variants
Applications
Production planning
Scheduling
Territorial partitioning
Telecommunications networks
Cellular networks
Other applications
Algorithms
Using total unimodularity
Exact algorithms
Exact algorithms for a small number of variables
Heuristic methods
Sparse Integer Programming
See also
References
Further reading
External links
where are vectors and is a matrix, where all entries are integers. As with linear programs, ILPs not in
standard form can be converted to standard form by eliminating inequalities, introducing slack variables ( )
and replacing variables that are not sign-constrained with the difference of two sign-constrained variables
Example
The plot on the right shows the following
problem.
Proof of NP-hardness
The following is a reduction from minimum vertex cover to integer programming that will serve as the proof of
NP-hardness.
Variants
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 (or binary integer programming) involves problems in which the variables
are restricted to be either 0 or 1. Any bounded integer variable can be expressed as a combination of binary
variables.[4] For example, given an integer variable, , the variable can be expressed using
binary variables:
Applications
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 (e.g. whether to include an edge in a graph) and so
should only take on the value 0 or 1.
These considerations occur frequently in practice and so integer linear programming can be used in many
applications areas, some of which are briefly described below.
Production planning
Mixed-integer programming has many applications in industrial productions, including job-shop modelling.
One important example happens in agricultural production planning involves 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 the variables must be constrained to be integer.
Scheduling
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. The zero-one programming technique has been
successfully applied to solve a project selection problem in which projects are mutually exclusive and/or
technologically interdependent. It is used in a special case of integer programming, in which all the decision
variables are integers. It can assume the values either as zero or one.
Territorial partitioning
Territorial partitioning or districting problem consists in partitioning a geographical region into districts in order
to plan some operations while considering different criteria or constraints. Some requirements for this problem
are: contiguity, compactness, balance or equity, respect of natural boundaries, and socio-economic
homogeneity. Some applications for this type of problem include: political districting, school districting, health
services districting and waste management districting.
Telecommunications networks
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.[5] 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 linear inequalities with integer or binary variables.
Cellular networks
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.[6] This problem can
be formulated as an integer linear program in which binary variables indicate whether a frequency is assigned
to an antenna.
Other applications
Cash flow matching
Energy system optimization[7][8]
UAV guidance[9][10]
Algorithms
The naive way to solve an ILP is to simply remove the constraint that x is integer, 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.
Since the columns of are linearly independent and is square, is nonsingular, and therefore by
assumption, is unimodular and so . Also, since is nonsingular, it is invertible and therefore
Thus, if the matrix of an ILP is totally unimodular, rather than use an ILP algorithm, the simplex method can
be used to solve the LP relaxation and the solution will be integer.
Exact algorithms
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.
Suppose is an m-by-n integer matrix and is an m-by-1 integer vector. We focus on the feasibility problem,
which is to decide whether there exists an n-by-1 vector satisfying .
Let V be the maximum absolute value of the coefficients in and . If n (the number of variables) is a fixed
constant, then the feasibility problem can be solved in time polynomial in m and log V. This is trivial for the
case n=1. The case n=2 was solved in 1981 by Herbert Scarf.[11] The general case was solved in 1983 by
Hendrik Lenstra, combining ideas by Laszlo Lovasz and Peter van Emde Boas.[12]
In the special case of 0-1 ILP, Lenstra's algorithm is equivalent to complete enumeration: the number of all
possible solutions is fixed (2n ), and checking the feasibility of each solution can be done in time poly(m, log
V). In the general case, where each variable can be an arbitrary integer, complete enumeration is impossible.
Here, Lenstra's algorithm uses ideas from Geometry of numbers. It transforms the original problem into an
equivalent one with the following property: either the existence of a solution is obvious, or the value of
(the n-th variable) belongs to an interval whose length is bounded by a function of n. In the latter case, the
problem is reduced to a bounded number of lower-dimensional problems.
Lenstra's algorithm implies that ILP is polynomial-time solvable also in the dual case, in which n is varying but
m (the number of constraints) is constant.
Lenstra's algorithm was subsequently improved by Kannan[13] and Frank and Tardos.[14] The improved
runtime is , where is the number of input bits,[15] which is in .[16]:Prop.8
Heuristic methods
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.[17] 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 previously 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.
Hill climbing
Simulated annealing
Reactive search optimization
Ant colony optimization
Hopfield neural networks
There are also a variety of other problem-specific heuristics, such as the k-opt heuristic for the traveling
salesman problem. A disadvantage of heuristic methods is that if they fail to find a solution, it cannot be
determined whether it is because there is no feasible solution or whether the algorithm simply was unable to
find one. Further, it is usually impossible to quantify how close to optimal a solution returned by these methods
are.
References
1. "Mixed-Integer Linear Programming (MILP): Model Formulation" (http://macc.mcmaster.ca/macc
files/chachuatnotes/07-MILP-I_handout.pdf) (PDF). Retrieved 16 April 2018.
2. Papadimitriou, C. H.; Steiglitz, K. (1998). Combinatorial optimization: algorithms and
complexity. Mineola, NY: Dover. ISBN 0486402584.
3. Erickson, J. (2015). "Integer Programming Reduction" (https://web.archive.org/web/201505180
72946/https://courses.engr.illinois.edu/cs498dl1/sp2015/solutions/hw10sol.pdf) (PDF).
Archived from the original (https://courses.engr.illinois.edu/cs498dl1/sp2015/solutions/hw10sol.
pdf) (PDF) on 18 May 2015.
4. Williams, H.P. (2009). Logic and integer programming. International Series in Operations
Research & Management Science. 130. ISBN 978-0-387-92280-5.
5. Borndörfer, R.; Grötschel, M. (2012). "Designing telecommunication networks by integer
programming" (http://www.zib.de/groetschel/teaching/SS2012/120503Vorlesung-DesigningTelc
omNetworks-reduced.pdf) (PDF).
6. Sharma, Deepak (2010). "Frequency Planning" (http://www.slideshare.net/deepakecrbs/gsm-fr
equency-planning).
7. Morais, Hugo; Kádár, Péter; Faria, Pedro; Vale, Zita A.; Khodr, H. M. (2010-01-01). "Optimal
scheduling of a renewable micro-grid in an isolated load area using mixed-integer linear
programming" (http://www.sciencedirect.com/science/article/pii/S0960148109001001).
Renewable Energy. 35 (1): 151–156. doi:10.1016/j.renene.2009.02.031 (https://doi.org/10.101
6%2Fj.renene.2009.02.031). hdl:10400.22/1585 (https://hdl.handle.net/10400.22%2F1585).
ISSN 0960-1481 (https://www.worldcat.org/issn/0960-1481).
8. Omu, Akomeno; Choudhary, Ruchi; Boies, Adam (2013-10-01). "Distributed energy resource
system optimisation using mixed integer linear programming" (http://www.sciencedirect.com/sci
ence/article/pii/S0301421513003418). Energy Policy. 61: 249–266.
doi:10.1016/j.enpol.2013.05.009 (https://doi.org/10.1016%2Fj.enpol.2013.05.009). ISSN 0301-
4215 (https://www.worldcat.org/issn/0301-4215).
9. Schouwenaars, T.; Valenti, M.; Feron, E.; How, J. (2005). "Implementation and Flight Test
Results of MILP-based UAV Guidance". 2005 IEEE Aerospace Conference: 1–13.
doi:10.1109/AERO.2005.1559600 (https://doi.org/10.1109%2FAERO.2005.1559600). ISBN 0-
7803-8870-4. S2CID 13447718 (https://api.semanticscholar.org/CorpusID:13447718).
10. Radmanesh, Mohammadreza; Kumar, Manish (2016-03-01). "Flight formation of UAVs in
presence of moving obstacles using fast-dynamic mixed integer linear programming" (http://ww
w.sciencedirect.com/science/article/pii/S1270963815300237). Aerospace Science and
Technology. 50: 149–160. doi:10.1016/j.ast.2015.12.021 (https://doi.org/10.1016%2Fj.ast.2015.
12.021). ISSN 1270-9638 (https://www.worldcat.org/issn/1270-9638).
11. Scarf, Herbert E. (1981). "Production Sets with Indivisibilities, Part I: Generalities" (https://www.j
stor.org/stable/1911124). Econometrica. 49 (1): 1–32. doi:10.2307/1911124 (https://doi.org/10.2
307%2F1911124). ISSN 0012-9682 (https://www.worldcat.org/issn/0012-9682).
JSTOR 1911124 (https://www.jstor.org/stable/1911124).
12. Lenstra, H. W. (1983-11-01). "Integer Programming with a Fixed Number of Variables" (https://p
ubsonline.informs.org/doi/abs/10.1287/moor.8.4.538). Mathematics of Operations Research. 8
(4): 538–548. CiteSeerX 10.1.1.431.5444 (https://citeseerx.ist.psu.edu/viewdoc/summary?doi=1
0.1.1.431.5444). doi:10.1287/moor.8.4.538 (https://doi.org/10.1287%2Fmoor.8.4.538).
ISSN 0364-765X (https://www.worldcat.org/issn/0364-765X).
13. Kannan, Ravi (1987-08-01). "Minkowski's Convex Body Theorem and Integer Programming" (h
ttps://pubsonline.informs.org/doi/abs/10.1287/moor.12.3.415). Mathematics of Operations
Research. 12 (3): 415–440. doi:10.1287/moor.12.3.415 (https://doi.org/10.1287%2Fmoor.12.3.4
15). ISSN 0364-765X (https://www.worldcat.org/issn/0364-765X).
14. Frank, András; Tardos, Éva (1987-03-01). "An application of simultaneous diophantine
approximation in combinatorial optimization" (https://doi.org/10.1007/BF02579200).
Combinatorica. 7 (1): 49–65. doi:10.1007/BF02579200 (https://doi.org/10.1007%2FBF0257920
0). ISSN 1439-6912 (https://www.worldcat.org/issn/1439-6912). S2CID 45585308 (https://api.se
manticscholar.org/CorpusID:45585308).
15. Bliem, Bernhard; Bredereck, Robert; Niedermeier, Rolf (2016-07-09). "Complexity of efficient
and envy-free resource allocation: few agents, resources, or utility levels" (https://dl.acm.org/do
i/abs/10.5555/3060621.3060636). Proceedings of the Twenty-Fifth International Joint
Conference on Artificial Intelligence. IJCAI'16. New York, New York, USA: AAAI Press: 102–
108. ISBN 978-1-57735-770-4.
16. Bredereck, Robert; Kaczmarczyk, Andrzej; Knop, Dušan; Niedermeier, Rolf (2019-06-17).
"High-Multiplicity Fair Allocation: Lenstra Empowered by N-fold Integer Programming" (https://d
oi.org/10.1145/3328526.3329649). Proceedings of the 2019 ACM Conference on Economics
and Computation. EC '19. Phoenix, AZ, USA: Association for Computing Machinery: 505–523.
doi:10.1145/3328526.3329649 (https://doi.org/10.1145%2F3328526.3329649). ISBN 978-1-
4503-6792-9. S2CID 195298520 (https://api.semanticscholar.org/CorpusID:195298520).
17. Glover, F. (1989). "Tabu search-Part II" (https://semanticscholar.org/paper/9a3203a26112ec33d
34233ba8b38e5509490f2a0). ORSA Journal on Computing. 1 (3): 4–32. doi:10.1287/ijoc.2.1.4
(https://doi.org/10.1287%2Fijoc.2.1.4). S2CID 207225435 (https://api.semanticscholar.org/Corp
usID:207225435).
18. Koutecký, Martin; Levin, Asaf; Onn, Shmuel (2018). "A Parameterized Strongly Polynomial
Algorithm for Block Structured Integer Programs" (http://drops.dagstuhl.de/opus/volltexte/2018/9
089/). Michael Wagner: 14 pages. arXiv:1802.05859 (https://arxiv.org/abs/1802.05859).
doi:10.4230/LIPICS.ICALP.2018.85 (https://doi.org/10.4230%2FLIPICS.ICALP.2018.85).
S2CID 3336201 (https://api.semanticscholar.org/CorpusID:3336201).
Further reading
George L. Nemhauser; Laurence A. Wolsey (1988). Integer and combinatorial optimization.
Wiley. ISBN 978-0-471-82819-8.
Alexander Schrijver (1998). Theory of linear and integer programming. John Wiley and Sons.
ISBN 978-0-471-98232-6.
Laurence A. Wolsey (1998). Integer programming. Wiley. ISBN 978-0-471-28366-9.
Dimitris Bertsimas; Robert Weismantel (2005). Optimization over integers. Dynamic Ideas.
ISBN 978-0-9759146-2-5.
John K. Karlof (2006). Integer programming: theory and practice. CRC Press. ISBN 978-0-
8493-1914-3.
H. Paul Williams (2009). Logic and Integer Programming. Springer. ISBN 978-0-387-92279-9.
Michael Jünger; Thomas M. Liebling; Denis Naddef; George Nemhauser; William R.
Pulleyblank; Gerhard Reinelt; Giovanni Rinaldi; Laurence A. Wolsey, eds. (2009). 50 Years of
Integer Programming 1958-2008: From the Early Years to the State-of-the-Art. Springer.
ISBN 978-3-540-68274-5.
Der-San Chen; Robert G. Batson; Yu Dang (2010). Applied Integer Programming: Modeling
and Solution. John Wiley and Sons. ISBN 978-0-470-37306-4.
Gerard Sierksma; Yori Zwols (2015). Linear and Integer Optimization: Theory and Practice.
CRC Press. ISBN 978-1-498-71016-9.
External links
A Tutorial on Integer Programming (https://mat.tepper.cmu.edu/orclass/integer/integer.html)
Conference Integer Programming and Combinatorial Optimization, IPCO (http://www.mathopt.or
g/?nav=ipco)
The Aussois Combinatorial Optimization Workshop (http://www.iasi.cnr.it/aussois)
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this
site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia
Foundation, Inc., a non-profit organization.