It is generally believed that nonlinear integer programming can be divided into linear part and integer part, so integer programming is often regarded as a special part of linear programming. In linear programming problems, some optimal solutions may be fractions or decimals, but for some specific problems, it is often required that the solutions must be integers. For example, the solution is the number of machines, the number of people working or the number of cars loaded. In order to meet the requirements of integers, at first glance, it seems that all you have to do is round off the obtained non-integers. In fact, integers are not necessarily feasible optimal solutions, so there should be a special method to solve integer programming. In integer programming, if all variables are limited to integers, it is called pure integer programming; If only some variables are limited to integers, it is called mixed integer programming. A special case of integer programming is 0 1 programming whose variables are limited to 0 or 1.
Since R.E. Gomory put forward the cutting plane method in 1958, integer programming has become an independent branch. In the past 30 years, people have developed many methods to solve various problems. The most typical method to solve integer programming is to generate a related problem step by step, which is called the derivative of the original problem. Every derivative problem is accompanied by a relaxation problem that is easier to solve than it (derivative problem is called the source problem of relaxation problem). Determine the destination of its source problem by solving the relaxation problem, that is, whether to abandon the source problem or generate one or more of its own derivative problems to replace it. Then, select a derivative problem of the original problem that has not been abandoned or replaced, and repeat the above steps until there are no unresolved derivative problems. At present, the more successful and popular methods are branch and bound method and cutting plane method, which are all formed under the above framework.
0- 1 programming plays an important role in integer programming. On the one hand, many practical problems, such as distribution, land selection and delivery, can be attributed to this kind of planning. On the other hand, integer programming with arbitrary bounded variables is equivalent to 0- 1 programming, and many nonlinear programming problems can be expressed as integer programming problems by 0- 1 programming method, so many people are committed to this direction. The common method for solving 0- 1 programming is branch and bound method, and there are some special methods for various special problems, such as Hungarian method for solving assignment problem.
[edit]
Relationship between integer programming and combinatorial optimization
Broadly speaking, the fields of integer programming and combinatorial optimization are the same, both of which are to find the best scheme that meets certain standards from a limited number of alternatives. There are many typical problems that reflect the broad background of integer programming. Such as knapsack (or loading) problem, fixed cost problem, harmonious expedition problem (combination set problem), effective expedition problem (combination coverage problem), distribution problem and so on. Therefore, the application scope of integer programming is also extremely extensive. It has many applications not only in industrial engineering design and scientific research, but also in computer design, system reliability, coding and economic analysis.
[edit]
Types of integer programming
Integer programming is divided into:
1. Pure integer programming: All decision variables are required to be integer programming.
2. Mixed integer programming: Some decision variables require integer programming.
3. Pure 0- 1 integer programming: all decision variables are required to be 0- 1 integer programming.
4. Mixed 0- 1 programming: integer programming that requires some decision variables to be 0- 1.
The only difference between integer programming and linear programming is the addition of integer constraints. Linear programming without considering integer constraints is called linear relaxation model of integer programming.
[edit]
Integer programming model
In real life, if the decision variables represent the number of pieces, sets, boxes, ships, cars, etc. For products, variables can only take integer values. For example, the cutting model is actually an integer programming model. In this case, the decision variables represent the number of steel pipes cut, and obviously only integer values can be taken. Therefore, the integer programming model is also widely used, as can be seen from the following examples.
A natural way to solve integer programming is whether the optimal solution of integer programming can be obtained by rounding the optimal solution of linear relaxation model of integer programming. The answer is no, because the result of such rounding is not even a feasible solution.
Integer programming is more difficult to solve than ordinary linear programming. Up to now, the basic idea of solving integer programming is to find the integer optimal solution (or confirm that there is no integer optimal solution) in the feasible region of the linear relaxation model of integer programming according to certain search rules, so it takes more time to find the solution of integer programming. At present, the commonly used solutions mainly include branch and bound method, cutting plane method and exhaustive method.