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

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

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

Axb,

де Am×n є матрицею, а bm.

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

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

Опис методу

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

ai1x1++aijxj++ainxnbi,i=1,,m,

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

Axb,

де A=(aij) є матрицею відповідних коефіцієнтів, а b=(bi) — вектор-стовпець правих частин нерівностей.

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

Для виключення змінної xn із описаної вище системи нерівностей, нехай In+ позначає множину індексів i для яких ain>0, In позначає множину індексів i для яких ain<0 і In0 позначає множину індексів i для яких ain=0. Для кожного jIn+ можна записати:

xnb'ja'j1x1a'jn1xn1=fj(x1,,xn1),

де a'jk=ajkajn, k=1,,n1, b'j=bjajn, а fj(x1,,xn1) позначає відповідну афінну функцію. Аналогічно для iIn:

xnb'ia'i1x1a'in1xn1=gi(x1,,xn1),

де a'ik=aikain, k=1,,n1, b'i=biain, а gj(x1,,xn1) позначає відповідну афінну функцію.

Нехай також для kIn0 позначено hk(x1,,xn1)=ak1x1++ain1xn1bk. Загалом із цими позначеннями можна записати систему нерівностей у виді:

{xnfj(x1,,xn1),jIn+gi(x1,,xn1)xn,iInhk(x1,,xn1)0,kIn0.

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

{gi(x1,,xn1)fj(x1,,xn1), iIn, jIn+hk(x1,,xn1)0,kIn0.

Якщо x1,,xn є розв'язком початкової системи, то очевидно x1,,xn1 є розв'язком нової системи. Навпаки, якщо нова система має розв'язок x1,,xn1, то maxiIngi(x1,,xn1)minjIn+fj(x1,,xn1) і для кожного xn, що задовольняє нерівності:

maxiIngi(x1,,xn1)xnminjIn+fj(x1,,xn1)

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

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

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

Axb,де матриця A=(a'ij) має розмірність (|In+||In|+|In0|)×(n1), а b є вектор-стовпцем із |In+||In|+|In0| елементами.

Елементи нових матриці і вектора можна записати із формул вище. Для цього нехай |In+|=m1, |In|=m2, |In0|=m3, де m1+m2+m3=m. Якщо m1=m або m2=m то нова система нерівностей буде порожньою і будь-який набір чисел x1,,xn1 буде її розв'язкам. Тоді для початкової системи x1,,xn буде розв'язком, якщо maxgi(x1,,xn1)xn чи в залежності від умов, xnminfj(x1,,xn1). Тому можна припустити m11, m21, m30.

Нехай i1<i2<<im1 є індексами із множини In+, j1<j2<<jm2 є індексами із множини In, а k1<k2<<km3є індексами із множини In0. Кожен рядок нової матриці A відповідає або парі індексів itIn, jsIn+ або індексу krIn0. Для визначеності нехай парі індексів (it, js) відповідає (t1)m2+s -ий рядок матриці, а індексу kr — рядок номер m1m2+r.

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

a'm1m2+r,l=akr,l, b'm1m2+r=bkr,krIn0, l{1,,n1}.

Для пари індексів (it, js) відповідні елементи одержуються із нерівності git(x1,,xn1)fjs(x1,,xn1):

a'(t1)m2+s,l=ajs,lajs,nait,lait,n, b'(t1)m2+s=bjsajs,nbitait,n,itIn, jsIn+, l{1,,n1}.

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

TnAxTnb,

де Tn є матрицею розмірності (m1m2+m3)×m для якої у (t1)m2+s -ому рядку (що, як і вище відповідає впорядкованій парі індексів (it, js), де itIn, jsIn+) ненульовими є тільки елементи у it-ому і js-ому стовпцях, які є рівними 1ait,n і 1ajs,n відповідно. Останній стовпець матриці TnA є нульовим.

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

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

Приклад

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

{2x5y+4z103x6y+3z9x+5y2z73x+2y+6z12

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

{x10+5y4z2x9+6y3z3x7+5y2zx12+2y+6z3

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

{7+5y2z10+5y4z27+5y2z9+6y3z312+2y+6z310+5y4z212+2y+6z39+6y3z3

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

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

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

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

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

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

Одне із таких тверджень, яке є варіантом леми Фаркаша відразу випливає із матричного запису результатів застосування метод Фур'є — Моцкіна. Вище була отримана матиця T така, що після n послідовних кроків метод Фур'є — Моцкіна одержується система нерівностей TAxTb і добуток TA є нульовою матрицею. Також із властивостей методу ця система має хоч один розв'язок тоді і тільки тоді коли хоч один розв'язок має початкова система Axb, а матриця T є невід'ємною (оскільки вона є добутком невід'ємних матриць Ti) . Тому, якщо система Axb не має розв'язку то нерівності0Tb не всі виконуються тобто існує рядок матриці T добуток якого на вектор b є від'ємним. Іншими словами існує вектор стовпець c розмірності m із невід'ємними компонентами, що cTA=0 і cTb<0. Натомість якщо система Axb має розв'язки, то із cTA=0 випливає cTb0. Відповідно із двох систем нижче має розв'язок одна і тільки одна:

  1. Axb,xn,
  2. cTA=0,cTb<0,cm,c0.

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

  1. Ax=b,x0,xn
  2. cTA0,cTb>0cm.

Див. також

Примітки

Шаблон:Reflist

Література

  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 Шаблон:Webarchive, Computer aided verification (CAV) 2010.