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.
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.
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.