0 ? 1 type integer programming is a special case in integer programming, and its variable j x only takes the value of 0 or 1. At this time, j x said
Is it 0? 1 variable, or binary variable. The condition that j x only takes the value of 0 or 1 can be constrained by the following conditions:
0 ≤ ≤ 1 j x, which conforms to the constraint form of general integer programming. In practical problems, if we introduce 0? 1 transformer
Quantity, we can discuss the linear programming problem of various situations that need to be discussed separately in one problem. we
What about the introduction of 0 first? 1 variable, and then study the solution.
If there are m mutually exclusive constraints:
a x a x b i m i in n i 1,2,, 1 1+L+≤L
To ensure that only one of the m constraints works, we introduce m 0? 1 variable y (I 1, 2,, m) I = L.
And a sufficiently large constant m, and the following m+1 group constraint.
a x a x b y M i m i in n i i 1,2,, 1 1 +L+ ≤ + = L ( 1)
1 1 y + + y = m? Master of Laws (2)
Meet the above requirements. This is because, because (2), only one of m i y can take the value of 0, let 0 * = i y,
Substituting (1), only the constraint condition of i = i* works, and other formulas are redundant.
3.2 0 ? 1 one of the integer programming solutions (filtered implicit enumeration method)
Solve 0? 1 the easiest way to think of integer programming is the same as general integer programming, that is, exhaustive method.
That is, check the combination of each variable value of 0 or 1, compare the objective function values, and find the optimal solution, which requires checking.
2n combinations of variable values. For a large number of variables n (e.g. n >;; 100), which is almost impossible. because
In this paper, some methods are often designed to find the optimal solution of the problem by checking only a part of the combination of variable values. such
Method is called implicit enumeration, and branch and bound method is also an implicit enumeration. Of course, implicit enumeration method is not applicable to some problems, so sometimes exhaustive method is necessary.
Monte Carlo method (random sampling method)
The common integer programming solutions introduced earlier are mainly for linear integer programming, not for nonlinear programming.
At present, there is no mature and accurate solution to linear integer programming, because nonlinear programming itself has a universal and effective solution.
No method has been found, let alone nonlinear integer programming.
However, although integer programming is more difficult because of limiting variables to integers; However, because that integer solution is finite
A, which provides convenience for enumeration. Of course, when the dimension of the independent variable is large and the range of values is wide, try it.
It is unrealistic to calculate the optimal value by explicit enumeration (that is, exhaustive method), but it can be proved by applying probability theory that in a
With a certain amount of calculation, a satisfactory solution can be obtained.
Computer solution of assignment problem
Lingo and other special software can be used to solve integer programming problems. For general integer programming problems, it is impossible.
In order to use the functions of Matlab directly, we must use Matlab programming to realize branch and bound solution and cutting plane solution. But yes.
Layout problems, etc. The integer programming problem of 1 can be solved directly by using the function bintprog of Matlab.