У математиці метод виключення змінних Фур'є — Моцкіна використовується для дослідження існування розв'язків системи лінійних нерівностей:
![{\displaystyle Ax\leqslant b,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bf4f4968891b355748b326870b04c4105e7ceb00)
де
є матрицею, а
.
Оскільки така система задає опуклий політоп, то метод має застосування у опуклій геометрії і також у математичній теорії лінійного програмування.
Вперше метод виключення змінних для нерівностей описав Жан Батист Жозеф Фур'є у 1827 році,[1] у 1936 році його повторно відкрив математик Теодор Моцкін[en].[2]
Нехай задано m лінійних нерівностей від n змінних виду:
![{\displaystyle a_{i1}x_{1}+\ldots +a_{ij}x_{j}+\ldots +a_{in}x_{n}\leqslant b_{i},\quad i=1,\ldots ,m,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bcb3e5265e0aecac29b918baa115123683453a51)
де всі
і
є дійсними числами. У матричній формі ця система нерівностей записується як:
![{\displaystyle Ax\leqslant b,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bf4f4968891b355748b326870b04c4105e7ceb00)
де
є матрицею відповідних коефіцієнтів, а
— вектор-стовпець правих частин нерівностей.
Геометрично така система нерівностей задає опуклий політоп. Метод Фур'є — Моцкіна дає змогу перейти від системи нерівностей із n невідомими до системи із n - 1 невідомою. Послідовно далі можна цю систему привести до системи із n - 2 невідомими і так далі. Щоправда при цьому кількість нерівностей збільшується. Після n кроків виключення змінних одержується система нерівностей без змінних, тобто система виду
Початкова система має розв'язки тоді і тільки тоді коли остання система нерівностей є справедливою, тобто всі
є справді невід'ємними.
Для виключення змінної
із описаної вище системи нерівностей, нехай
позначає множину індексів i для яких
позначає множину індексів i для яких
і
позначає множину індексів i для яких
Для кожного
можна записати:
![{\displaystyle x_{n}\leqslant b'_{j}-a'_{j1}x_{1}-\ldots -a'_{jn-1}x_{n-1}=f_{j}(x_{1},\ldots ,x_{n-1}),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11baf11cd4215205b04796323716c4b3d7d09f3e)
де
а
позначає відповідну афінну функцію. Аналогічно для
:
![{\displaystyle x_{n}\geqslant b'_{i}-a'_{i1}x_{1}-\ldots -a'_{in-1}x_{n-1}=g_{i}(x_{1},\ldots ,x_{n-1}),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/60970465b32e035ff74dfd0afead5f643c9918b3)
де
а
позначає відповідну афінну функцію.
Нехай також для
позначено
Загалом із цими позначеннями можна записати систему нерівностей у виді:
![{\displaystyle {\begin{cases}x_{n}\leqslant f_{j}(x_{1},\ldots ,x_{n-1}),\quad \forall j\in I_{n}^{+}\\g_{i}(x_{1},\ldots ,x_{n-1})\leqslant x_{n},\quad \forall i\in I_{n}^{-}\\h_{k}(x_{1},\ldots ,x_{n-1})\leqslant 0,\quad \forall k\in I_{n}^{0}\end{cases}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8458a0ceaded6b2ef6a7691c7a8aaff9c6294b79)
Метод виключення змінних полягає у заміні цієї системи системою
нерівностей виду:
![{\displaystyle {\begin{cases}g_{i}(x_{1},\ldots ,x_{n-1})\leqslant f_{j}(x_{1},\ldots ,x_{n-1}),\quad \forall \ i\in I_{n}^{-},\ j\in I_{n}^{+}\\h_{k}(x_{1},\ldots ,x_{n-1})\leqslant 0,\quad \forall k\in I_{n}^{0}\end{cases}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4aafa7730407dad61559883ec87e309696bdeb4a)
Якщо
є розв'язком початкової системи, то очевидно
є розв'язком нової системи. Навпаки, якщо нова система має розв'язок
, то
і для кожного
що задовольняє нерівності:
![{\displaystyle \max _{i\in I_{n}^{-}}g_{i}(x_{1},\ldots ,x_{n-1})\leqslant x_{n}\leqslant \min _{j\in I_{n}^{+}}f_{j}(x_{1},\ldots ,x_{n-1})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a028e412e60950d179969517f2d49d8ef4582fb4)
є розв'язком початкової системи. Зокрема система лінійних нерівностей має хоча б один розв'язок тоді і лише тоді коли хоча б один розв'язок має система одержана виключенням змінної методом Фур'є — Моцкіна.
Для початкової системи нерівностей
із матрицею розмірності
застосуванням методу Фур'є — Моцкіна одержується система нерівностей яку перенесенням змінних у ліву сторону і вільних членів у праву сторону можна записати у матричній формі:
де матриця
має розмірність
, а
є вектор-стовпцем із
елементами.
Елементи нових матриці і вектора можна записати із формул вище. Для цього нехай
де
Якщо
або
то нова система нерівностей буде порожньою і будь-який набір чисел
буде її розв'язкам. Тоді для початкової системи
буде розв'язком, якщо
чи в залежності від умов,
Тому можна припустити
Нехай
є індексами із множини
,
є індексами із множини
, а
є індексами із множини
Кожен рядок нової матриці
відповідає або парі індексів
або індексу
Для визначеності нехай парі індексів
відповідає
-ий рядок матриці, а індексу
— рядок номер
Для індексів із множини
коефіцієнти нових матриці і вектора є рівними відповідним коефіцієнтам початкових:
![{\displaystyle a'_{m_{1}m_{2}+r,l}=a_{k_{r},l},\ b'_{m_{1}m_{2}+r}=b_{k_{r}},\quad k_{r}\in I_{n}^{0},\ l\in \{1,\ldots ,n-1\}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7d25346732a0f96fe470476802dd57b25c1e4b7f)
Для пари індексів
відповідні елементи одержуються із нерівності
![{\displaystyle a'_{(t-1)\cdot m_{2}+s,l}={a_{j_{s},l} \over a_{j_{s},n}}-{a_{i_{t},l} \over a_{i_{t},n}},\ b'_{(t-1)\cdot m_{2}+s}={b_{j_{s}} \over a_{j_{s},n}}-{b_{i_{t}} \over a_{i_{t},n}},\quad i_{t}\in I_{n}^{-},\ j_{s}\in I_{n}^{+},\ l\in \{1,\ldots ,n-1\}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d613f7b2c901b7911105c86017b6c8a8a2637713)
Систему нерівностей одержану застосуванням методу Фур'є — Моцкіна до останньої змінної можна також записати як
![{\displaystyle T_{n}Ax\leqslant T_{n}b,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6cb655454004cdc20321e2192de3e70b2ac5a883)
де
є матрицею розмірності
для якої у
-ому рядку (що, як і вище відповідає впорядкованій парі індексів
, де
) ненульовими є тільки елементи у
-ому і
-ому стовпцях, які є рівними
і
відповідно. Останній стовпець матриці
є нульовим.
На наступному кроці методом Фур'є — Моцкіна можна виключити змінну
Результат зновуж можна записати як
для деякої матриці
Після n кроків і виключення усіх змінних остаточно одержується система
де
для матриць
які на кожному етапі визначаються, як і вище.
Добуток
є нульовою матрицею і після n кроків система нерівностей має вид
Зокрема початкова система нерівностей має розв'язок тоді і тільки тоді коли всі елементи вектора
є невід'ємними.
Нехай задано систему нерівностей із трьома змінними:
![{\displaystyle {\begin{cases}2x-5y+4z\leqslant 10\\3x-6y+3z\leqslant 9\\-x+5y-2z\leqslant -7\\-3x+2y+6z\leqslant 12\\\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7b99a960131a665007c0a1ba75859b6ff31113a7)
Для виключення змінної x, всі нерівності можна записати через цю змінну:
![{\displaystyle {\begin{cases}x\leqslant {\frac {10+5y-4z}{2}}\\x\leqslant {\frac {9+6y-3z}{3}}\\x\geqslant 7+5y-2z\\x\geqslant {\frac {-12+2y+6z}{3}}\\\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f0438c4e8e6f21012909986d1630fd39dc612327)
Відповідно права сторона кожної нерівності зі знаком "≤" має бути не меншою, ніж права сторона нерівності зі знаком "≥". Загалом одержуються 4 нерівності від 2 змінних:
![{\displaystyle {\begin{cases}7+5y-2z\leqslant {\frac {10+5y-4z}{2}}\\7+5y-2z\leqslant {\frac {9+6y-3z}{3}}\\{\frac {-12+2y+6z}{3}}\geqslant {\frac {10+5y-4z}{2}}\\{\frac {-12+2y+6z}{3}}\geqslant {\frac {9+6y-3z}{3}}\\\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/74a892651c3c50ab2ef597175f56c97333a8eeaa)
Після застосування одного кроку методу Фур'є — Моцкіна до системи із
нерівностей може бути одержано щонайбільше
нерівностей, відповідно після
кроків одержується щонайбільше
нерівностей, тобто кількість зростає як подвійне експоненціювання. Причиною цього є величезна кількість залежних нерівностей, які випливають з інших. Тому простий метод Фур'є — Моцкіна на практиці не використовується. Кількість незалежних нерівностей зростає експоненційно.[3] Залежні нерівності можна виявляти за допомогою лінійного програмування.
Також метод має численні теоретичні застосування.
Метод Фур'є — Моцкіна можна використати для доведення багатьох альтернативних тверджень, які стверджують, що з деяких двох систем лінійних рівнянь та нерівностей розв'язок має одна і тільки одна.
Одне із таких тверджень, яке є варіантом леми Фаркаша відразу випливає із матричного запису результатів застосування метод Фур'є — Моцкіна. Вище була отримана матиця
така, що після
послідовних кроків метод Фур'є — Моцкіна одержується система нерівностей
і добуток
є нульовою матрицею. Також із властивостей методу ця система має хоч один розв'язок тоді і тільки тоді коли хоч один розв'язок має початкова система
а матриця
є невід'ємною (оскільки вона є добутком невід'ємних матриць
) . Тому, якщо система
не має розв'язку то нерівності
не всі виконуються тобто існує рядок матриці
добуток якого на вектор
є від'ємним. Іншими словами існує вектор стовпець
розмірності
із невід'ємними компонентами, що
і
. Натомість якщо система
має розв'язки, то із
випливає
Відповідно із двох систем нижче має розв'язок одна і тільки одна:
![{\displaystyle Ax\leq b,\quad x\in \mathbb {R} ^{n},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7c9f4e57ac8801b220bb943989d442fa5fc91998)
![{\displaystyle c^{T}A=0,\quad c^{T}b<0,\quad c\in \mathbb {R} ^{m},\quad c\geqslant 0.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4df215a6eab0f9c32166265de3f28819a46cef49)
Звідси, як вказано у статті лема Фаркаша можна одержати і стандартну лему Фаркаша, яка стверджує, що із двох систем нижче має розв'язок одна і тільки одна:
![{\displaystyle Ax=b,\quad x\geqslant 0,\quad x\in \mathbb {R} ^{n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/95ecef417cb867084688201f1fb9ab8c5446d9f9)
![{\displaystyle c^{T}A\leqslant 0,\quad c^{T}b>0\quad c\in \mathbb {R} ^{m}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a8ec74d53073e60e0f46ad9fcff5ec690dde5c73)