The configuration linear program (configuration-LP) is a linear programming technique used for solving combinatorial optimization problems. It was introduced in the context of the cutting stock problem. [1] [2] Later, it has been applied to the bin packing [3] [4] and job scheduling problems. [5] [6] In the configuration-LP, there is a variable for each possible configuration - each possible multiset of items that can fit in a single bin (these configurations are also known as patterns) . Usually, the number of configurations is exponential in the problem size, but in some cases it is possible to attain approximate solutions using only a polynomial number of configurations.
In the bin packing problem, there are n items with different sizes. The goal is to pack the items into a minimum number of bins, where each bin can contain at most B. A feasible configuration is a set of sizes with a sum of at most B.
Denote by S the set of different sizes (and their number). Denote by C the set of different configurations (and their number). For each size s in S and configuration c in C, denote:
Then, the configuration LP of bin-packing is:
for all s in S (- all ns items of size s are packed).
for all c in C (- there are at most n bins overall, so at most n of each individual configuration).
The configuration LP is an integer linear program, so in general it is NP-hard. Moreover, even the problem itself is generally very large: it has C variables and S constraints. If the smallest item size is eB (for some fraction e in (0,1)), then there can be up to 1/e items in each bin, so the number of configurations C ~ S1/e, which can be very large if e is small (if e is considered a constant, then the integer LP can be solved by exhaustive search: there are at most S1/e configurations, and for each configuration there are at most n possible values, so there are at most combinations to check. For each combination, we have to check S constraints, so the run-time is , which is polynomial in n when S, e are constant). [7]
However, this ILP serves as a basis for several approximation algorithms. The main idea of these algorithms is to reduce the original instance into a new instance in which S is small and e is large, so C is relatively small. Then, the ILP can be solved either by complete search (if S, C are sufficiently small), or by relaxing it into a fractional LP.
The fractional configuration LP of bin-packing It is the linear programming relaxation of the above ILP. It replaces the last constraint with the constraint . In other words, each configuration can be used a fractional number of times. The relaxation was first presented by Gilmore and Gomory, [2] and it is often called the Gilmore-Gomory linear program. [8]
In short, the fractional LP can be written as follows:
Where 1 is the vector (1,...,1) of size C, A is an S-by-C matrix in which each column represents a single configuration, and n is the vector (n1,...,nS).
A linear program with no integrality constraints can be solved in time polynomial in the number of variables and constraints. The problem is that the number of variables in the fractional configuration LP is equal to the number of possible configurations, which might be huge. Karmarkar and Karp [9] present an algorithm that overcomes this problem.
First, they construct the dual linear program of the fractional LP:
.
It has S variables y1,...,yS, and C constraints: for each configuration c, there is a constraint , where is the column of A representing the configuration c. 3It has the following economic interpretation. [9] For each size s, we should determine a nonnegative price ys. Our profit is the total price of all items. We want to maximize the profit ny subject to the constraints that the total price of items in each configuration is at most 1.
Second, they apply a variant of the ellipsoid method, which does not need to list all the constraints - it just needs a separation oracle . A separation oracle is an algorithm that, given a vector y, either asserts that it is feasible, or finds a constraint that it violates. The separation oracle for the dual LP can be implemented by solving the knapsack problem with sizes s and values y: if the optimal solution of the knapsack problem has a total value at most 1, then y is feasible; if it is larger than 1, than y is not feasible, and the optimal solution of the knapsack problem identifies a configuration for which the constraint is violated.
Third, they show that, with an approximate solution to the knapsack problem, one can get an approximate solution to the dual LP, and from this, an approximate solution to the primal LP; see Karmarkar-Karp bin packing algorithms.
All in all, for any tolerance factor h, finds a basic feasible solution of cost at most LOPT(I) + h, and runs in time:
,
where S is the number of different sizes, n is the number of different items, and the size of the smallest item is eB. In particular, if e ≥ 1/n and h=1, the algorithm finds a solution with at most LOPT+1 bins in time: . A randomized variant of this algorithm runs in expected time:
.
Karmarkar and Karp further developed a way to round the fractional LP into an approximate solution to the integral LP; see Karmarkar-Karp bin packing algorithms. Their proof shows that the additive integrality gap of this LP is in O(log2(n)). Later, Hoberg and Rothvoss [10] improved their result and proved that the integrality gap is in O(log(n)). The best known lower bound on the integrality gap is a constant Ω(1). Finding the exact integrality gap is an open problem.
In the bin covering problem, there are n items with different sizes. The goal is to pack the items into a maximum number of bins, where each bin should contain at leastB. A natural configuration LP for this problem could be:
where A represents all configurations of items with sum at leastB (one can take only the inclusion-minimal configurations). The problem with this LP is that, in the bin-covering problem, handling small items is problematic, since small items may be essential for the optimal solution. With small items allowed, the number of configurations may be too large even for the technique of Karmarkar and Karp. Csirik, Johnson and Kenyon [11] present an alternative LP. First, they define a set of items that are called small. Let T be the total size of all small items. Then, they construct a matrix A representing all configurations with sum < 2. Then, they consider the above LP with one additional constraint:
The additional constraint guarantees that the "vacant space" in the bins can be filled by the small items. The dual of this LP is more complex and cannot be solved by a simple knapsack-problem separation oracle. Csirik, Johnson and Kenyon [11] present a different method to solve it approximately in time exponential in 1/epsilon. Jansen and Solis-Oba [12] present an improved method to solve it approximately in time exponential in 1/epsilon.
In the problem of unrelated-machines scheduling, there are some m different machines that should process some n different jobs. When machine i processes job j, it takes time pi,j. The goal is to partition the jobs among the machines such that maximum completion time of a machine is as small as possible. The decision version of this problem is: given time T, is there a partition in which the completion time of all machines is at most T?
For each machine i, there are finitely many subsets of jobs that can be processed by machine i in time at most T. Each such subset is called a configuration for machine i. Denote by Ci(T) the set of all configurations for machine i, given time T. For each machine i and configuration c in Ci(T), define a variable which equals 1 iff the actual configuration used in machine i is c, and 0 otherwise. Then, the LP constraints are:
The integrality gap of the configuration-LP for unrelated-machines scheduling is 2. [5]
The knapsack problem is the following problem in combinatorial optimization:
Linear programming (LP), also called linear optimization, is a method to achieve the best outcome in a mathematical model whose requirements are represented by linear relationships. Linear programming is a special case of mathematical programming.
The bin packing problem is an optimization problem, in which items of different sizes must be packed into a finite number of bins or containers, each of a fixed given capacity, in a way that minimizes the number of bins used. The problem has many applications, such as filling up containers, loading trucks with weight capacity constraints, creating file backups in media, and technology mapping in FPGA semiconductor chip design.
In mathematical optimization, Dantzig's simplex algorithm is a popular algorithm for linear programming.
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 are linear.
In operations research, the cutting-stock problem is the problem of cutting standard-sized pieces of stock material, such as paper rolls or sheet metal, into pieces of specified sizes while minimizing material wasted. It is an optimization problem in mathematics that arises from applications in industry. In terms of computational complexity, the problem is an NP-hard problem reducible to the knapsack problem. The problem can be formulated as an integer linear programming problem.
In mathematical optimization, constrained optimization is the process of optimizing an objective function with respect to some variables in the presence of constraints on those variables. The objective function is either a cost function or energy function, which is to be minimized, or a reward function or utility function, which is to be maximized. Constraints can be either hard constraints, which set conditions for the variables that are required to be satisfied, or soft constraints, which have some variable values that are penalized in the objective function if, and based on the extent that, the conditions on the variables are not satisfied.
The dual of a given linear program (LP) is another LP that is derived from the original LP in the following schematic way:
In mathematical optimization, linear-fractional programming (LFP) is a generalization of linear programming (LP). Whereas the objective function in a linear program is a linear function, the objective function in a linear-fractional program is a ratio of two linear functions. A linear program can be regarded as a special case of a linear-fractional program in which the denominator is the constant function 1.
In statistics and combinatorial mathematics, group testing is any procedure that breaks up the task of identifying certain objects into tests on groups of items, rather than on individual ones. First studied by Robert Dorfman in 1943, group testing is a relatively new field of applied mathematics that can be applied to a wide range of practical applications and is an active area of research today.
David Bernard Shmoys is a Professor in the School of Operations Research and Information Engineering and the Department of Computer Science at Cornell University. He obtained his Ph.D. from the University of California, Berkeley in 1984. His major focus has been in the design and analysis of algorithms for discrete optimization problems.
A separation oracle is a concept in the mathematical theory of convex optimization. It is a method to describe a convex set that is given as an input to an optimization algorithm. Separation oracles are used as input to ellipsoid methods.
In the theory of linear programming, a basic feasible solution (BFS) is a solution with a minimal set of non-zero variables. Geometrically, each BFS corresponds to a corner of the polyhedron of feasible solutions. If there exists an optimal solution, then there exists an optimal BFS. Hence, to find an optimal solution, it is sufficient to consider the BFS-s. This fact is used by the simplex algorithm, which essentially travels from one BFS to another until an optimal solution is found.
The strip packing problem is a 2-dimensional geometric minimization problem. Given a set of axis-aligned rectangles and a strip of bounded width and infinite height, determine an overlapping-free packing of the rectangles into the strip minimizing its height. This problem is a cutting and packing problem and is classified as an Open Dimension Problem according to Wäscher et al.
In computer science, multiway number partitioning is the problem of partitioning a multiset of numbers into a fixed number of subsets, such that the sums of the subsets are as similar as possible. It was first presented by Ronald Graham in 1969 in the context of the identical-machines scheduling problem. The problem is parametrized by a positive integer k, and called k-way number partitioning. The input to the problem is a multiset S of numbers, whose sum is k*T.
In computer science, the largest differencing method is an algorithm for solving the partition problem and the multiway number partitioning. It is also called the Karmarkar–Karp algorithm after its inventors, Narendra Karmarkar and Richard M. Karp. It is often abbreviated as LDM.
In the bin covering problem, items of different sizes must be packed into a finite number of bins or containers, each of which must contain at least a certain given total size, in a way that maximizes the number of bins used.
High-multiplicity bin packing is a special case of the bin packing problem, in which the number of different item-sizes is small, while the number of items with each size is large. While the general bin-packing problem is NP-hard, the high-multiplicity setting can be solved in polynomial time, assuming that the number of different sizes is a fixed constant.
The Karmarkar–Karp (KK) bin packing algorithms are several related approximation algorithm for the bin packing problem. The bin packing problem is a problem of packing items of different sizes into bins of identical capacity, such that the total number of bins is as small as possible. Finding the optimal solution is computationally hard. Karmarkar and Karp devised an algorithm that runs in polynomial time and finds a solution with at most bins, where OPT is the number of bins in the optimal solution. They also devised several other algorithms with slightly different approximation guarantees and run-time bounds.
The welfare maximization problem is an optimization problem studied in economics and computer science. Its goal is to partition a set of items among agents with different utility functions, such that the welfare – defined as the sum of the agents' utilities – is as high as possible. In other words, the goal is to find an item allocation satisfying the utilitarian rule.