Метод Фур'є — Моцкіна

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

У математиці метод виключення змінних Фур'є — Моцкіна використовується для дослідження існування розв'язків системи лінійних нерівностей:

де є матрицею, а .

Оскільки така система задає опуклий політоп, то метод має застосування у опуклій геометрії і також у математичній теорії лінійного програмування.

Вперше метод виключення змінних для нерівностей описав Жан Батист Жозеф Фур'є у 1827 році,[1] у 1936 році його повторно відкрив математик Теодор Моцкін[en].[2]

Опис методу

[ред. | ред. код]

Нехай задано m лінійних нерівностей від n змінних виду:

де всі і є дійсними числами. У матричній формі ця система нерівностей записується як:

де є матрицею відповідних коефіцієнтів, а — вектор-стовпець правих частин нерівностей.

Геометрично така система нерівностей задає опуклий політоп. Метод Фур'є — Моцкіна дає змогу перейти від системи нерівностей із n невідомими до системи із n - 1 невідомою. Послідовно далі можна цю систему привести до системи із n - 2 невідомими і так далі. Щоправда при цьому кількість нерівностей збільшується. Після n кроків виключення змінних одержується система нерівностей без змінних, тобто система виду Початкова система має розв'язки тоді і тільки тоді коли остання система нерівностей є справедливою, тобто всі є справді невід'ємними.

Для виключення змінної із описаної вище системи нерівностей, нехай позначає множину індексів i для яких позначає множину індексів i для яких і позначає множину індексів i для яких Для кожного можна записати:

де а позначає відповідну афінну функцію. Аналогічно для :

де а позначає відповідну афінну функцію.

Нехай також для позначено Загалом із цими позначеннями можна записати систему нерівностей у виді:

Метод виключення змінних полягає у заміні цієї системи системою нерівностей виду:

Якщо є розв'язком початкової системи, то очевидно є розв'язком нової системи. Навпаки, якщо нова система має розв'язок , то і для кожного що задовольняє нерівності:

є розв'язком початкової системи. Зокрема система лінійних нерівностей має хоча б один розв'язок тоді і лише тоді коли хоча б один розв'язок має система одержана виключенням змінної методом Фур'є — Моцкіна.

Матричний запис нової системи рівнянь

[ред. | ред. код]

Для початкової системи нерівностей із матрицею розмірності застосуванням методу Фур'є — Моцкіна одержується система нерівностей яку перенесенням змінних у ліву сторону і вільних членів у праву сторону можна записати у матричній формі:

де матриця має розмірність , а є вектор-стовпцем із елементами.

Елементи нових матриці і вектора можна записати із формул вище. Для цього нехай де Якщо або то нова система нерівностей буде порожньою і будь-який набір чисел буде її розв'язкам. Тоді для початкової системи буде розв'язком, якщо чи в залежності від умов, Тому можна припустити

Нехай є індексами із множини , є індексами із множини , а є індексами із множини Кожен рядок нової матриці відповідає або парі індексів або індексу Для визначеності нехай парі індексів відповідає -ий рядок матриці, а індексу — рядок номер

Для індексів із множини коефіцієнти нових матриці і вектора є рівними відповідним коефіцієнтам початкових:

Для пари індексів відповідні елементи одержуються із нерівності

Систему нерівностей одержану застосуванням методу Фур'є — Моцкіна до останньої змінної можна також записати як

де є матрицею розмірності для якої у -ому рядку (що, як і вище відповідає впорядкованій парі індексів , де ) ненульовими є тільки елементи у -ому і -ому стовпцях, які є рівними і відповідно. Останній стовпець матриці є нульовим.

На наступному кроці методом Фур'є — Моцкіна можна виключити змінну Результат зновуж можна записати як для деякої матриці Після n кроків і виключення усіх змінних остаточно одержується система де для матриць які на кожному етапі визначаються, як і вище.

Добуток є нульовою матрицею і після n кроків система нерівностей має вид Зокрема початкова система нерівностей має розв'язок тоді і тільки тоді коли всі елементи вектора є невід'ємними.

Приклад

[ред. | ред. код]

Нехай задано систему нерівностей із трьома змінними:

Для виключення змінної x, всі нерівності можна записати через цю змінну:

Відповідно права сторона кожної нерівності зі знаком "≤" має бути не меншою, ніж права сторона нерівності зі знаком "≥". Загалом одержуються 4 нерівності від 2 змінних:

Застосування

[ред. | ред. код]

Складність алгоритму

[ред. | ред. код]

Після застосування одного кроку методу Фур'є — Моцкіна до системи із нерівностей може бути одержано щонайбільше нерівностей, відповідно після кроків одержується щонайбільше нерівностей, тобто кількість зростає як подвійне експоненціювання. Причиною цього є величезна кількість залежних нерівностей, які випливають з інших. Тому простий метод Фур'є — Моцкіна на практиці не використовується. Кількість незалежних нерівностей зростає експоненційно.[3] Залежні нерівності можна виявляти за допомогою лінійного програмування.

Також метод має численні теоретичні застосування.

Лема Фаркаша і пов'язані твердження

[ред. | ред. код]

Метод Фур'є — Моцкіна можна використати для доведення багатьох альтернативних тверджень, які стверджують, що з деяких двох систем лінійних рівнянь та нерівностей розв'язок має одна і тільки одна.

Одне із таких тверджень, яке є варіантом леми Фаркаша відразу випливає із матричного запису результатів застосування метод Фур'є — Моцкіна. Вище була отримана матиця така, що після послідовних кроків метод Фур'є — Моцкіна одержується система нерівностей і добуток є нульовою матрицею. Також із властивостей методу ця система має хоч один розв'язок тоді і тільки тоді коли хоч один розв'язок має початкова система а матриця є невід'ємною (оскільки вона є добутком невід'ємних матриць ) . Тому, якщо система не має розв'язку то нерівності не всі виконуються тобто існує рядок матриці добуток якого на вектор є від'ємним. Іншими словами існує вектор стовпець розмірності із невід'ємними компонентами, що і . Натомість якщо система має розв'язки, то із випливає Відповідно із двох систем нижче має розв'язок одна і тільки одна:

Звідси, як вказано у статті лема Фаркаша можна одержати і стандартну лему Фаркаша, яка стверджує, що із двох систем нижче має розв'язок одна і тільки одна:

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. J.B.J. Fourier у: Analyse des travaux de l'Académie Royale des Sciences pendant l'année 1824, Partie mathématique, 1827.
  2. T.S. Motzkin: Beiträge zur Theorie der Linearen Ungleichungen.
  3. David Monniaux, Quantifier elimination by lazy model enumeration [Архівовано 20 вересня 2021 у Wayback Machine.], 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.