Zero-One Integer Programming

What Is Zero-One Integer Programming?

Zero-one integer programming (which can also be written as '0-1' integer programming) is a mathematical method of using a series of binary functions; in particular, yes ('1') and no ('0') answers to arrive at a solution when there are two mutually exclusive options.

In the world of finance, zero-one integer programming is often used to provide answers to capital rationing problems, as well as to optimize investment returns and assist in planning, production, transportation, and other issues.

Key Takeaways

  • Zero-one integer programming relies on mutually exclusive yes (1) and no (0) decisions to find solutions to logic problems.
  • In zero-one integer problems, each variable is represented only by 0 ('no') or 1 ('yes'), and could represent selecting or rejecting an option, turning on or off electronic switches, or a straight-forward yes or no answer used in various other applications.
  • This type of programming can be useful for companies making decisions on issues like what to invest in or which of two proposed products are easiest to manufacture.

Understanding Zero-One Integer Programming

Integer programming is a branch of mathematical programming or optimization, which involves creating equations in order to solve problems. The term "mathematical programming" is connected with the fact that the goal of solving various problems is choosing programs of action. Assigning a simple yes/no value can be a powerful way to establish a linear problem-solving framework to identify inefficiencies.

Fundamentally, the most basic instructions executed by a computer are binary codes, consisting only of ones and zeros. Those codes are directly translated into the “on” and “off” states of the electricity moving through the computer’s physical circuits. In essence, these simple codes form the basis of “machine language”, the most fundamental variety of programming languages. These on and off positions can also be construed as assigning a "yes" or "no" to a logical function.

Of course, no human would be able to construct modern software programs by explicitly programming ones and zeros. Instead, human programmers must rely on various layers of abstraction that can allow them to articulate their commands in a format that is more intuitive to humans. Specifically, modern programmers issue commands in so-called “high-level languages”, which utilize intuitive syntax such as whole English words and sentences, as well as logical operators such as “And”, “Or”, and “Else” that are familiar to everyday usage.

Ultimately, however, these high-level commands need to be translated into machine language. Rather than doing so manually, programmers rely on assembly languages whose purpose is to automatically translate between these high-level and low-level languages.

Real-World Example of Zero-One Integer Programming

A simple example of how zero-one integer programming might be used in capital rationing would be in determining the number of product development projects that can be completed by a company by a certain date or within a certain budget. For example, a number of variables for each project can be given values that ultimately result in a 1 (yes) or 0 (no) binary decision about whether or not to include the project in a budget. This can be helpful to companies that are unsure about a specific business decision and are looking for a straightforward way to assess the possibilities.