We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Software

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What is Integer Linear Programming?

By Danielle DeLee
Updated: May 16, 2024

Integer linear programming problems arise when trying to solve linear systems while specifying that all of the unknown variables must be integers, or whole numbers. Linear systems are sets of equations that describe a situation for which the programmer is attempting to find a solution. They usually consist of one equation that must be maximized or minimized and one or more restricting equation that put limits on unknown variables. For the system to be linear, each restriction must be a linear equation; that is, it must contain no instances of the unknown variable with exponents greater than one.

Regular linear systems may be solved easily using a computer. The program can identify a solution by finding the derivative and setting it equal to zero. It can then verify that the point is a maximum or minimum by checking its immediate neighborhood on the function. As long as the derivative is defined at each point along the function, the computer has only a limited number of possible solutions to check.

Linear programming becomes integer linear programming with the addition of the integer restriction. This means that the problem remains the same, but the answer must consist of integer values for the unknown values: they must be whole numbers. Sometimes, this means that the solution will be suboptimal compared to the case in which fractions are allowed; it is reflective, however, of the real world, in which items often come in discrete, indivisible units. This makes integer linear programming important for business applications, since firms want to maximize profits as much as possible but cannot choose to sell a fraction of a product.

Once the integer restrictions are in place, the problem of solving the linear system is NP-complete. This means that the time that is necessary for a computer to solve the system is indeterminate. With integer restrictions, computers cannot use the tool of the derivative because there is no guarantee that the zero point of the derivative will fall on an integer. The solution will be the integer with the highest or lowest value out of all the integers, so the computer would have to check them all — a process that could take an infinite amount of time.

Programmers have developed heuristics, or methods of problem-solving, to deal with the complexity of these problems. One method of solving integer linear programming problems is the branch and bound algorithm, in which the computer solves a series of problems related to the original one to narrow down the available range of values to one solution. For complex problems, however, this can take a long time.

EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
By Grinderry — On Dec 12, 2013
This doesn't discuss the different programming languages. It just gives a rundown of the basics of integer-linear programming.
By eoconnor — On Dec 11, 2013
Does this pertain to *any* programming language? Like python? Or Ruby? Will it work on non C based languages?
By Contentum — On Dec 10, 2013
Aauugh! Derivatives, integers, algorithms, oh my!
Share
https://www.easytechjunkie.com/what-is-integer-linear-programming.htm
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.