The Fourier-Motzkin elimination is a method by a given by a linear inequality convex polyhedron
to a hyperplane of the mold
to project . There is a matrix and a matching right side.
![P (A, b): = \ {x \; | \; Ax \ leq b \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3857e93a14043b36fa212ece2236ee79f0151041)
![H: = \ {x \; | \; x_ {j} = 0 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/476bcbd7bf687f736c6d97b4e4b0acff66cc2061)
![A \ in \ mathbb {R} ^ {m \ times n}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8025ab71ecd74b01e89f6918676203ad16cdc4a9)
![b \ in {\ mathbb {R}} ^ {{m}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9fe71914e3d9fef4bce68f7b60693cc94feffde4)
The process was first described by Joseph Fourier in 1827, but was forgotten and was finally
rediscovered in 1936 in Theodore Motzkin's doctoral thesis .
Description of the procedure
The algorithm conically combines the rows of the matrix and the entries on the right-hand side to form new inequalities. This is done in a way that ensures that the resulting new inequalities no longer include the variable .
![A _ {{i \ cdot}} \ i \ in M: = \ {1 \ ldots m \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e534659a5be168c7f04c6f48bb2b2aeca8ee91b9)
![A.](https://wikimedia.org/api/rest_v1/media/math/render/svg/7daff47fa58cdfd29dc333def748ff5fa4c923e3)
![x_ {j}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5db47cb3d2f9496205a17a6856c91c1d3d363ccd)
The algorithm is described by the following pseudocode :
function FourierMotzkin(A, b, j) is
Eingabe: eine Matrix
der Dimension
, ein Vektor
der Dimension
und ein Index j
Ausgabe: eine Matrix
der Dimension
, sodass
für alle
und ein Vektor
mit
Einträgen
eine Indizierung der Elemente in
, also eine Bijektion
for
to
do
if
then
else if
then
endif
endfor
return
The resulting polyhedron then describes the desired projection.
![P (D, d)](https://wikimedia.org/api/rest_v1/media/math/render/svg/edc198e3b71bdff69f476261e2610aec3e91233c)
Example for the Fourier-Motzkin elimination
The projection of a polyhedron onto different (linear)
hyperplanes
As an example we choose the polyhedron given by the following system of inequalities:
![P (A, b)](https://wikimedia.org/api/rest_v1/media/math/render/svg/48cb57aff5a2f5e5cabd177d5b8d1b201dbd29ea)
![P (A, b) = \ {(x, y) \ in {\ mathbb {R}} ^ {2} \ | \ x \ geq 1, \ 2x + 4y \ leq 14, \ x-2y \ leq - 1\}](https://wikimedia.org/api/rest_v1/media/math/render/svg/63f8f4af1c374c7162bb0592abe235b20fedc688)
The corresponding matrix and right side are therefore
![A = \ left ({\ begin {array} {rr} -1 & 0 \\ 2 & 4 \\ 1 & -2 \\\ end {array}} \ right), \ b = \ left ({\ begin {array} {r } -1 \\ 14 \\ - 1 \\\ end {array}} \ right)](https://wikimedia.org/api/rest_v1/media/math/render/svg/412237b579e928fad2afbd8669ce0799f5ecefe2)
For the projection onto the hyperplane , i.e. for , we get the following quantities:
![x = 0](https://wikimedia.org/api/rest_v1/media/math/render/svg/953917eaf52f2e1baad54c8c9e3d6f9bb3710cdc)
![j = 1](https://wikimedia.org/api/rest_v1/media/math/render/svg/91423fb032c471061948939f4a6811bf463780e0)
-
, and .![N = \ {1 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/012da0142316621fce7f3b847cf142be613277f6)
![P = \ {2,3 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/34c7b04c258f9aabfee1aa4dd306309b24eaed3b)
So is and . We set .
![r = 2](https://wikimedia.org/api/rest_v1/media/math/render/svg/c19b110d7eb52a69381b88554e63c8a2aef376c7)
![R = \ {(1,2), \ (1,3) \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0c3ee3e197d8a7340887c3feb3529386a830550e)
![p (1) = (1,2), \ p (2) = (1,3)](https://wikimedia.org/api/rest_v1/media/math/render/svg/70e3f20c56fd37139c40060fda4d63e97620a086)
For we combine the first and second inequality:
![i = 1](https://wikimedia.org/api/rest_v1/media/math/render/svg/9fb857369fbc28dab4b5d76bb835e6f196b1d1cf)
![2 \ cdot (-x) - (- 1) \ cdot (2x + 4y) \ leq 2 \ cdot (-1) - (- 1) \ cdot (14) \; \ Longrightarrow \; 4y \ leq 12](https://wikimedia.org/api/rest_v1/media/math/render/svg/de9888c8bdfd54818d99bc264a717f53fcb58e60)
For , combining the first and third inequality, we get the following new inequality:
![i = 2](https://wikimedia.org/api/rest_v1/media/math/render/svg/fd4e89f84cbdca577f73238abfb2fa18119c6eca)
![1 \ cdot (-x) - (- 1) \ cdot (x-2y) \ leq 1 \ cdot (-1) - (- 1) \ cdot (-1) \; \ Longrightarrow \; - 2y \ leq - 2](https://wikimedia.org/api/rest_v1/media/math/render/svg/7243d1d6616158998bc65423a10bc52b8179a627)
The image of the projection is thus given by , while the resulting matrix or the right side have the following shape:
![\ {(0, y) \ in {\ mathbb {R}} ^ {2} \ | \ 1 \ leq y \ leq 3 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6eb845fa8ba4252b3719a5f0209e2aaa4f314593)
![D.](https://wikimedia.org/api/rest_v1/media/math/render/svg/f34a0c600395e5d4345287e21fb26efd386990e6)
![d](https://wikimedia.org/api/rest_v1/media/math/render/svg/e85ff03cbe0c7341af6b982e47e9f90d235c66ab)
![D = \ left ({\ begin {array} {rr} 0 & 4 \\ 0 & -2 \\\ end {array}} \ right), \ d = \ left ({\ begin {array} {r} 12 \\ -2 \\\ end {array}} \ right)](https://wikimedia.org/api/rest_v1/media/math/render/svg/500d6de6dac936a394c33918a28873242414daf7)
The Fourier-Motzkin Elimination from the point of view of linear algebra
The row operations used in the algorithm can be represented by multiplying the matrix or the right-hand side with a matrix
whose -th row is given by
![A.](https://wikimedia.org/api/rest_v1/media/math/render/svg/7daff47fa58cdfd29dc333def748ff5fa4c923e3)
![b](https://wikimedia.org/api/rest_v1/media/math/render/svg/f11423fbb2e967f986e36804a8ae4271734917c3)
![U \ in {\ mathbb {R}} _ {+} ^ {{r \ times m}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2c21e8024f5a702d8c2e87f7a55a7ab0eb089d09)
![i](https://wikimedia.org/api/rest_v1/media/math/render/svg/add78d8608ad86e54951b8c8bd6c8d8416533d20)
![U _ {{i \ cdot}} = {\ begin {cases} e_ {k} & {\ text {if}} p (i) = k \ in Z \\ a _ {{tj}} e_ {s} -a_ {{sj}} e_ {t} & {\ text {falls}} p (i) = (s, t) \ in N \ times P \\\ end {cases}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/74a1d2ac6e60147272bdd0753fafd7d16fccd176)
Since the matrix describes a conical combination of the rows of , all entries of are not negative. In the example above,
![U](https://wikimedia.org/api/rest_v1/media/math/render/svg/458a728f53b9a0274f059cd695e067c430956025)
![A.](https://wikimedia.org/api/rest_v1/media/math/render/svg/7daff47fa58cdfd29dc333def748ff5fa4c923e3)
![U](https://wikimedia.org/api/rest_v1/media/math/render/svg/458a728f53b9a0274f059cd695e067c430956025)
![U = \ left ({\ begin {array} {rrr} 2 & 1 & 0 \\ 1 & 0 & 1 \\\ end {array}} \ right)](https://wikimedia.org/api/rest_v1/media/math/render/svg/f4c8d8f1311373508f9b293fd19403c71f799404)
Applications
Admissibility Issues
As a projection method, the Fourier-Motzkin elimination has the property that the system has a solution precisely when this also applies to the system .
![Ax \ leq b](https://wikimedia.org/api/rest_v1/media/math/render/svg/08249140bbb640be6c1242b705a896fb8951886f)
![Dx \ leq d](https://wikimedia.org/api/rest_v1/media/math/render/svg/bfa8f95c7c33a2f1a2856f351cedc440dd99198c)
While it is generally difficult to decide whether a convex polyhedron has a feasible solution, in some special cases it is quite easy to do:
- Remains not a variable in the resulting system , so it is the zero matrix , the system is then and only then solved if the right side is not negative
![Dx \ leq d](https://wikimedia.org/api/rest_v1/media/math/render/svg/bfa8f95c7c33a2f1a2856f351cedc440dd99198c)
![D.](https://wikimedia.org/api/rest_v1/media/math/render/svg/f34a0c600395e5d4345287e21fb26efd386990e6)
![d](https://wikimedia.org/api/rest_v1/media/math/render/svg/e85ff03cbe0c7341af6b982e47e9f90d235c66ab)
- If only a single column of the matrix belonging to a variable contains entries other than zero, the projection corresponds to an interval . If this is not empty, the system can also be solved. Furthermore, the possible values of the variables in the polyhedron just by the interval where
![x_ {k}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6d2b88c64c76a03611549fb9b4cf4ed060b56002)
![I.](https://wikimedia.org/api/rest_v1/media/math/render/svg/535ea7fc4134a31cbe2251d9d3511374bc41be9f)
![Ax \ leq b](https://wikimedia.org/api/rest_v1/media/math/render/svg/08249140bbb640be6c1242b705a896fb8951886f)
![x_ {k}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6d2b88c64c76a03611549fb9b4cf4ed060b56002)
![P (A, b)](https://wikimedia.org/api/rest_v1/media/math/render/svg/48cb57aff5a2f5e5cabd177d5b8d1b201dbd29ea)
![I.](https://wikimedia.org/api/rest_v1/media/math/render/svg/535ea7fc4134a31cbe2251d9d3511374bc41be9f)
This knowledge can be used to check whether any polyhedron has
a feasible solution or not: First, all variables are projected out one after the other:
![P (A, b)](https://wikimedia.org/api/rest_v1/media/math/render/svg/48cb57aff5a2f5e5cabd177d5b8d1b201dbd29ea)
![P (A, b) \ {\ xrightarrow {{\ text {FourierMotzkin}} (A, b, 1)}} \ P (D ^ {{(1)}}, d ^ {{(1)}}) \ {\ xrightarrow {{\ text {FourierMotzkin}} (D ^ {{(1)}}, d ^ {{(1)}}, 2)}} \ P (D ^ {{(2)}}, d ^ {{(2)}}) \ \ cdots \ P (D ^ {{(n-1)}}, d ^ {{(n-1)}}) \ {\ xrightarrow {{\ text {FourierMotzkin }} (D ^ {{(n-1)}}, d ^ {{(n-1)}}, n)}} \ P (D ^ {{(n)}}, d ^ {{(n )}})](https://wikimedia.org/api/rest_v1/media/math/render/svg/49d417d3fd0ae19b4be18bcba4c6e726dd641cca)
The resulting matrix is then the zero matrix and you can decide whether
, because iff. .
![D ^ {{(n)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/658e3b17482098b14076522c09cf9b5633b24eaf)
![P (A, b) = \ emptyset](https://wikimedia.org/api/rest_v1/media/math/render/svg/a7468f696dee600588061aa5356d672ca9e60349)
![P (A, b) = \ emptyset](https://wikimedia.org/api/rest_v1/media/math/render/svg/a7468f696dee600588061aa5356d672ca9e60349)
![P (D ^ {{(n)}}, d ^ {{(n)}}) = \ emptyset](https://wikimedia.org/api/rest_v1/media/math/render/svg/24b5a8262a03ce7674a9faaea4893612863d14b9)
In particular, iff .
![P (A, b) \ neq \ emptyset](https://wikimedia.org/api/rest_v1/media/math/render/svg/2812fdca69033e8ce4fd8ab72725cde768127d1d)
![d ^ {{(n)}} \ geq 0](https://wikimedia.org/api/rest_v1/media/math/render/svg/af86f93dc6c6c22cc66c3369471c70dbbf4eb145)
Since the -th projection step can be carried out by a multiplication with a non-negative matrix , the following also applies:
![j](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f461e54f5c093e92a55547b9764291390f0b5d0)
![U ^ {{(j)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a6fbd919b9b1c00d2969e881b148a5c590b0aff5)
-
.
If the -th entry of is negative, then is and , where . This statement corresponds to Farkas' lemma . Since the matrices can be set up during the execution of the algorithm, the Fourier-Motzkin elimination offers the possibility to calculate the certificate for
explicitly.
![k](https://wikimedia.org/api/rest_v1/media/math/render/svg/c3c9a2c7b599b37105512c5d570edc034056dd40)
![d ^ {{(n)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fcbcb67efeba3f4c8cb2e6ce9ac84d850d51a105)
![u \ cdot A = 0](https://wikimedia.org/api/rest_v1/media/math/render/svg/b9eb97892025ecf57f6acddf664f279121d35b8c)
![u \ cdot b <0](https://wikimedia.org/api/rest_v1/media/math/render/svg/b0b52954df5d3bc66a2fb21639bffc39112976e2)
![u: = e_ {k} \ cdot U](https://wikimedia.org/api/rest_v1/media/math/render/svg/9409ee07ba36d7dffe57b8e41ccfe7806b45857b)
![U ^ {{(j)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a6fbd919b9b1c00d2969e881b148a5c590b0aff5)
![P (A, b) = \ emptyset](https://wikimedia.org/api/rest_v1/media/math/render/svg/a7468f696dee600588061aa5356d672ca9e60349)
In addition, the Fourier-Motzkin elimination implies that the projection of a polyhedron is a polyhedron again. This result can be used to show the equivalence of the and representations of polyhedra.
![{\ mathcal {V}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/47d69f309b6deb2e5008f6130ee11e09bbabd7b6)
![\ mathcal {H}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ef4c7b923a5125ac91aa491838a95ee15b804f)
Example of the decision on admissibility
We want to decide whether the following convex polyhedron has a feasible solution:
![P (A, b) = \ {x \ in {\ mathbb {R}} ^ {2} \ | \ x_ {1} + x_ {2} \ geq 4, \ x_ {1} \ leq 1, \ x_ {2} \ leq 1 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11153e7022405d798c8cc796a785c896691b4e7d)
This corresponds in form to the system
![Ax \ leq b](https://wikimedia.org/api/rest_v1/media/math/render/svg/08249140bbb640be6c1242b705a896fb8951886f)
![\ left [{\ begin {array} {rrr} -x_ {1} & - x_ {2} & \ leq -4 \\ x_ {1} && \ leq 1 \\ & x_ {2} & \ leq 1 \\ \ end {array}} \ right] \; \;](https://wikimedia.org/api/rest_v1/media/math/render/svg/6dfa74bec84df18da8b9ef93010db157761c042f)
After the individual projection steps, the following systems result:
![\ left [{\ begin {array} {rr} -x_ {2} & \ leq -3 \\ x_ {2} & \ leq 1 \\\ end {array}} \ right] \; \; \ left [ {\ begin {aligned} 0 & \ leq -2 \\\ end {aligned}} \ right]](https://wikimedia.org/api/rest_v1/media/math/render/svg/7d4cdd020904b43c782d192d318f0f8f6845aa43)
A contradiction is revealed, the polyhedron corresponds to the empty set. The resulting matrices are given by
![P (A, b)](https://wikimedia.org/api/rest_v1/media/math/render/svg/48cb57aff5a2f5e5cabd177d5b8d1b201dbd29ea)
![U ^ {{(1)}} = \ left ({\ begin {array} {rrr} 1 & 1 & 0 \\ 0 & 0 & 1 \\\ end {array}} \ right), \; \; U ^ {{(2)} } = \ left ({\ begin {array} {rr} 1 & 1 \\\ end {array}} \ right)](https://wikimedia.org/api/rest_v1/media/math/render/svg/6b8b3a4c0dcdc472f329ced38c27e1b9c5c8b8b8)
A certificate for the inadmissibility is the vector .
![e_ {1} U ^ {{(2)}} U ^ {{(1)}} = (1,1,1)](https://wikimedia.org/api/rest_v1/media/math/render/svg/34ab641bee841cd4cfa3cbc2dfb3272b60b69356)
By taking advantage of the duality of the linear optimization , each linear program can be reduced to an admissibility problem , which can then be solved by applying Fourier-Motzkin elimination. In this case, however, a large number of new variables and inequalities are required, which slows down the application of the method. Alternatively, one can take the following approach: To solve the problem
, one introduces an additional variable and additionally requires that . The value of the variable is therefore limited by the optimal solution to the problem. This gives a polyhedron
with
![\ max \ {c ^ {T} x \; | \; Ax \ leq b \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d8148307edb1579205bf232b779e875be218b508)
![y \ in {\ mathbb {R}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e17075a7abdf541b17004d8b9d0dac081860d685)
![y \ leq c ^ {T} x](https://wikimedia.org/api/rest_v1/media/math/render/svg/6c9bb21c9b11aeae0e10ed51402ca0cfecbf6386)
![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
![P ({\ tilde {A}}, {\ tilde {b}})](https://wikimedia.org/api/rest_v1/media/math/render/svg/a5337df2d973453703b6a16ea7e7efbb8cf3eb4c)
![{\ tilde {A}} = \ left ({\ begin {array} {rr} A & 0 \\ - c ^ {T} & 1 \\\ end {array}} \ right) \ in {\ mathbb {R}} ^ {{m + 1 \ times n + 1}}, \ {\ tilde {b}} = \ left ({\ begin {array} {r} b \\ 0 \\\ end {array}} \ right) \ in {\ mathbb {R}} ^ {{m + 1}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a1851673141c4857a7e3ce496b9c7d2e701070e)
You then project the first entries out, so that you finally have a system of form
![n](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
![{\ begin {aligned} D _ {{1, n + 1}} ^ {{(n)}} y & \ leq d_ {1} ^ {{(n)}} \\\ vdots & \\ D _ {{l , n + 1}} ^ {{(n)}} y & \ leq d_ {l} ^ {{(n)}} \\\ end {aligned}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5b89c655c84fac0c917a291e9f6ce44a22e4e832)
receives. The resulting interval describes the set of possible values for the variable . The following cases occur:
![I.](https://wikimedia.org/api/rest_v1/media/math/render/svg/535ea7fc4134a31cbe2251d9d3511374bc41be9f)
![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
- The interval is empty. In this case the optimization problem has no feasible solution.
- There is no upper limit to the interval. The optimization problem is therefore also unlimited.
- The interval is not empty and has a maximum element . Thus the objective function value of the optimal solution of the problem is exact .
![\gamma](https://wikimedia.org/api/rest_v1/media/math/render/svg/a223c880b0ce3da8f64ee33c4f0010beee400b1a)
![\gamma](https://wikimedia.org/api/rest_v1/media/math/render/svg/a223c880b0ce3da8f64ee33c4f0010beee400b1a)
In order to obtain a solution with a given objective function value , proceed as follows: First, consider the system after the -th iteration: Only the variables and appear, with the value already set to:
![x ^ {*}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e5be23ee5d433f8b576e63bcb47518128ee0b6bb)
![y ^ {*}: = \ gamma](https://wikimedia.org/api/rest_v1/media/math/render/svg/fce1aaf20a6e1a95d90d97d5fbd43c20d4acc4c8)
![n-1](https://wikimedia.org/api/rest_v1/media/math/render/svg/fbd0b0f32b28f51962943ee9ede4fb34198a2521)
![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
![x_ {n}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7c5ea190699149306d242b70439e663559e3ffbe)
![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
![y ^ {*}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3fcfcfa0fbced647ea73759c68ffd7a028729d62)
![{\ begin {aligned} D _ {{1, n}} ^ {{n-1}} x_ {n} + D _ {{1, n + 1}} ^ {{n-1}} y & \ leq d_ { 1} ^ {{n-1}} \\\ vdots & \\ D _ {{l, n}} ^ {{n-1}} x_ {n} + D _ {{l, n + 1}} ^ { {n-1}} y & \ leq d_ {l} ^ {{n-1}} \\\ end {aligned}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/09c8360eda1f618abfd5168e8ac3092e5b6eb02c)
One thus obtains a (not empty) interval of possible solutions for , from which one can choose any one. One iterates this process for
.
![x_ {n}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7c5ea190699149306d242b70439e663559e3ffbe)
![x _ {{n-1}}, \ ldots, x _ {{1}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/49da70ec88aee4cdfb3d017245cc7350c3e61219)
Example for solving a linear program
To illustrate the process, we choose the program
![{\ begin {aligned} \ max ~ & x_ {1} \\ {\ text {so that}} & x_ {1} + x_ {2} \ leq 4 \\ & x_ {1} \ geq 0 \\ & x_ {2} \ geq 0 \\\ end {aligned}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bfdbf3dc7d4213502726168290df3776a8b52adc)
To solve the problem, let's add the variable along with the inequality
to the problem. The following systems show the polyhedron , as well as the changed systems after the projection on and :
![y](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8a6208ec717213d4317e666f1ae872e00620a0d)
![y \ leq x_ {1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9e8c78ab83852756bd846a15aa4aaeae8ebba360)
![P ({\ tilde {A}}, {\ tilde {b}})](https://wikimedia.org/api/rest_v1/media/math/render/svg/a5337df2d973453703b6a16ea7e7efbb8cf3eb4c)
![\ {x_ {1} = 0 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fe6f7b140b27caad5fc9b056cd3c1a533762044f)
![\ {x_ {2} = 0 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e7d263686b104c38a795d178f9938266a2d212b0)
![\ left [{\ begin {array} {rrrr} x_ {1} & + x_ {2} && \ leq 4 \\ - x_ {1} &&& \ leq 0 \\ & - x_ {2} && \ leq 0 \ \ -x_ {1} && + y & \ leq 0 \\\ end {array}} \ right] \; \; \ left [{\ begin {array} {rr} -x_ {2} & \ leq 0 \\ x_ {2} & \ leq 4 \\ x_ {2} + y & \ leq 4 \\\ end {array}} \ right] \; \; \ left [{\ begin {aligned} 0 & \ leq 4 \\ y & \ leq 4 \\\ end {aligned}} \ right]](https://wikimedia.org/api/rest_v1/media/math/render/svg/02989982f68ef77cc27bf4287311d0d9c8daf793)
It is thus certain that the optimal solution to the problem has the objective function value 4. To get an appropriate solution, we bet and return to the penultimate step. The system arises
![y ^ {*} = 4](https://wikimedia.org/api/rest_v1/media/math/render/svg/78c1bf8299f819f1765894de7ade03db36ffbf12)
![{\ begin {aligned} -x_ {2} & \ leq 0 \\ x_ {2} & \ leq 4 \\ x_ {2} & \ leq 0 \\\ end {aligned}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0ba1f0161708f1c486ece9f946e58c39076912fa)
So there is nothing left but to bet. The value of ultimately results from the system
![x_ {2} ^ {*} = 0](https://wikimedia.org/api/rest_v1/media/math/render/svg/48000a21d4b31424e89c4b2800fc0308241ded02)
![x_ {1} ^ {*}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5442a4e184ee4c95ab7b70951069145b5a751202)
![{\ begin {aligned} x_ {1} & \ leq 4 \\ - x_ {1} & \ leq 0 \\ - x_ {1} & \ leq -4 \\\ end {aligned}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/12b863c90ddf74690367c7d3a844bf5730b698d8)
This is the optimal solution . Of course, this also has the expected objective function value of .
![(x_ {1} ^ {*}, x_ {2} ^ {*}) = (4.0)](https://wikimedia.org/api/rest_v1/media/math/render/svg/276e54ef1a29e29bc49afb96e0c6ac9bf935c60b)
![y ^ {*} = 4](https://wikimedia.org/api/rest_v1/media/math/render/svg/78c1bf8299f819f1765894de7ade03db36ffbf12)
running time
Although Fourier-Motzkin elimination can be used to solve linear programs, in practice other algorithms are preferred. The problem of the Fourier-Motzkin elimination, that the number of inequalities and the size of the matrices in the worst case in every projection step of previously on
increases. In this case the running time of the algorithm is no longer polynomial . In general, most of the inequalities generated are also redundant. Since this can usually not be recognized efficiently, however, the Fourier-Motzkin elimination requires far more memory than would be necessary to describe the polyhedra .
![D ^ {{(j)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c705f87a8d2dc70217f0d9b9b10f6d1564b9a67f)
![m](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a07d98bb302f3856cbabc47b2b9016692e3f7bc)
![\ left ({\ frac {m} {2}} \ right) ^ {2}](https://wikimedia.org/api/rest_v1/media/math/render/svg/66fb457de1b847e4cc56d7026c0a156b35456a20)
![P (D ^ {{(j)}}, d ^ {{(j)}})](https://wikimedia.org/api/rest_v1/media/math/render/svg/877c914357a2fa6039ecd24e78efd2348e4e1924)
Remarks
-
↑
Since the amount can generally become very large, it is advisable to first scale the inequalities so that for all . To determine and the columns then only have to be subtracted from one another.
![R.](https://wikimedia.org/api/rest_v1/media/math/render/svg/4b0bfb3769bf24d80e15374dc37b0441e2616e33)
![a _ {{ij}} \ in \ {\ pm 1,0 \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7239008fed36983d338345bddc6917071b5d61e3)
![i \ in \ {1, \ ldots m \}](https://wikimedia.org/api/rest_v1/media/math/render/svg/249243c2436c9a2f326c29b32a51aabb106b6046)
![D.](https://wikimedia.org/api/rest_v1/media/math/render/svg/f34a0c600395e5d4345287e21fb26efd386990e6)
-
↑
The method of backward substitution presented here can always be used to obtain a feasible solution of the polyhedron.
Individual evidence
-
^ JBJ Fourier from the journal: Analysis des travaux de l'Académie Royale des Sciences pendant l'année 1824, Partie mathématique, 1827.
-
^ TS Motzkin: Contributions to the theory of linear inequalities.
literature
-
Alexander Schrijver : Theory of Linear and Integer Programming . John Wiley & sons, 1998, ISBN 0-471-98232-6 , pp. 155-156.
- HP Williams: Fourier's Method of Linear Programming and its Dual . In: American Mathematical Monthly . 93, 1986, pp. 681-695.
- Unger, Thomas; Dempe, Stefan: Lineare Optimization , pp. 19-23, Vieweg + Teubner 2010, ISBN 978-3-8351-0139-5
Web links