Метод Фур'є — Моцкіна
У математиці метод виключення змінних Фур'є — Моцкіна використовується для дослідження існування розв'язків системи лінійних нерівностей:
де є матрицею, а .
Оскільки така система задає опуклий політоп, то метод має застосування у опуклій геометрії і також у математичній теорії лінійного програмування.
Вперше метод виключення змінних для нерівностей описав Жан Батист Жозеф Фур'є у 1827 році,[1] у 1936 році його повторно відкрив математик Теодор Моцкін.[2]
Опис методу
Нехай задано m лінійних нерівностей від n змінних виду:
де всі і є дійсними числами. У матричній формі ця система нерівностей записується як:
де є матрицею відповідних коефіцієнтів, а — вектор-стовпець правих частин нерівностей.
Геометрично така система нерівностей задає опуклий політоп. Метод Фур'є — Моцкіна дає змогу перейти від системи нерівностей із n невідомими до системи із n - 1 невідомою. Послідовно далі можна цю систему привести до системи із n - 2 невідомими і так далі. Щоправда при цьому кількість нерівностей збільшується. Після n кроків виключення змінних одержується система нерівностей без змінних, тобто система виду Початкова система має розв'язки тоді і тільки тоді коли остання система нерівностей є справедливою, тобто всі є справді невід'ємними.
Для виключення змінної із описаної вище системи нерівностей, нехай позначає множину індексів i для яких позначає множину індексів i для яких і позначає множину індексів i для яких Для кожного можна записати:
де а позначає відповідну афінну функцію. Аналогічно для :
де а позначає відповідну афінну функцію.
Нехай також для позначено Загалом із цими позначеннями можна записати систему нерівностей у виді:
Метод виключення змінних полягає у заміні цієї системи системою нерівностей виду:
Якщо є розв'язком початкової системи, то очевидно є розв'язком нової системи. Навпаки, якщо нова система має розв'язок , то і для кожного що задовольняє нерівності:
є розв'язком початкової системи. Зокрема система лінійних нерівностей має хоча б один розв'язок тоді і лише тоді коли хоча б один розв'язок має система одержана виключенням змінної методом Фур'є — Моцкіна.
Матричний запис нової системи рівнянь
Для початкової системи нерівностей із матрицею розмірності застосуванням методу Фур'є — Моцкіна одержується система нерівностей яку перенесенням змінних у ліву сторону і вільних членів у праву сторону можна записати у матричній формі:
- де матриця має розмірність , а є вектор-стовпцем із елементами.
Елементи нових матриці і вектора можна записати із формул вище. Для цього нехай де Якщо або то нова система нерівностей буде порожньою і будь-який набір чисел буде її розв'язкам. Тоді для початкової системи буде розв'язком, якщо чи в залежності від умов, Тому можна припустити
Нехай є індексами із множини , є індексами із множини , а є індексами із множини Кожен рядок нової матриці відповідає або парі індексів або індексу Для визначеності нехай парі індексів відповідає -ий рядок матриці, а індексу — рядок номер
Для індексів із множини коефіцієнти нових матриці і вектора є рівними відповідним коефіцієнтам початкових:
Для пари індексів відповідні елементи одержуються із нерівності
Систему нерівностей одержану застосуванням методу Фур'є — Моцкіна до останньої змінної можна також записати як
де є матрицею розмірності для якої у -ому рядку (що, як і вище відповідає впорядкованій парі індексів , де ) ненульовими є тільки елементи у -ому і -ому стовпцях, які є рівними і відповідно. Останній стовпець матриці є нульовим.
На наступному кроці методом Фур'є — Моцкіна можна виключити змінну Результат зновуж можна записати як для деякої матриці Після n кроків і виключення усіх змінних остаточно одержується система де для матриць які на кожному етапі визначаються, як і вище.
Добуток є нульовою матрицею і після n кроків система нерівностей має вид Зокрема початкова система нерівностей має розв'язок тоді і тільки тоді коли всі елементи вектора є невід'ємними.
Приклад
Нехай задано систему нерівностей із трьома змінними:
2x − 5y + 4z ≤ 10
3x − 6y + 3z ≤ 9
−x + 5y − 2z ≤ −7
−3x + 2y + 6z ≤ 12
Для виключення змінної x, всі нерівності можна записати через цю змінну:
x ≤ (10 + 5y − 4z)/2
x ≤ (9 + 6y − 3z)/3
x ≥ 7 + 5y − 2z
x ≥ (−12 + 2y + 6z)/3
Відповідно права сторона кожної нерівності зі знаком "≤" має бути не меншою, ніж права сторона нерівності зі знаком "≥". Загалом одержуються 4 нерівності від 2 змінних:
7 + 5y − 2z ≤ (10 + 5y − 4z)/2
7 + 5y − 2z ≤ (9 + 6y − 3z)/3
(−12 + 2y + 6z)/3 ≤ (10 + 5y − 4z)/2
(−12 + 2y + 6z)/3 ≤ (9 + 6y − 3z)/3
Застосування
Складність алгоритму
Після застосування одного кроку методу Фур'є — Моцкіна до системи із нерівностей може бути одержано щонайбільше нерівностей, відповідно після кроків одержується щонайбільше нерівностей, тобто кількість зростає як подвійне експоненціювання. Причиною цього є величезна кількість залежних нерівностей, які випливають з інших. Тому простий метод Фур'є — Моцкіна на практиці не використовується. Кількість незалежних нерівностей зростає експоненційно.[3] Залежні нерівності можна виявляти за допомогою лінійного програмування.
Також метод має численні теоретичні застосування.
Лема Фаркаша і пов'язані твердження
Метод Фур'є — Моцкіна можна використати для доведення багатьох альтернативних тверджень, які стверджують, що з деяких двох систем лінійних рівнянь та нерівностей розв'язок має одна і тільки одна.
Одне із таких тверджень, яке є варіантом леми Фаркаша відразу випливає із матричного запису результатів застосування метод Фур'є — Моцкіна. Вище була отримана матиця така, що після послідовних кроків метод Фур'є — Моцкіна одержується система нерівностей і добуток є нульовою матрицею. Також із властивостей методу ця система має хоч один розв'язок тоді і тільки тоді коли хоч один розв'язок має початкова система а матриця є невід'ємною (оскільки вона є добутком невід'ємних матриць ) . Тому, якщо система не має розв'язку то нерівності не всі виконуються тобто існує рядок матриці добуток якого на вектор є від'ємним. Іншими словами існує вектор стовпець розмірності із невід'ємними компонентами, що і . Натомість якщо система має розв'язки, то із випливає Відповідно із двох систем нижче має розв'язок одна і тільки одна:
Звідси, як вказано у статті лема Фаркаша можна одержати і стандартну лему Фаркаша, яка стверджує, що із двох систем нижче має розв'язок одна і тільки одна:
Див. також
Примітки
- J.B.J. Fourier у: Analyse des travaux de l'Académie Royale des Sciences pendant l'année 1824, Partie mathématique, 1827.
- T.S. Motzkin: Beiträge zur Theorie der Linearen Ungleichungen.
- David Monniaux, Quantifier elimination by lazy model enumeration, Computer aided verification (CAV) 2010.
Література
- Komei Fukuda. Lecture: Polyhedral Computation, Spring 2016.
- Schrijver, Alexander (1998). Theory of Linear and Integer Programming. John Wiley & sons. с. 155–156. ISBN 978-0-471-98232-6.