Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
143
Добавлен:
12.05.2015
Размер:
6.2 Mб
Скачать

5.3. Лінійні та нелінійні моделі оптимізації

5.3.1. Лінійне програмування

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

, (5.10)

, , (5.11)

де І – задана підмножина індексів на множині .

Множина

,

називається багатогранною множиною. Якщо ця множина не порожня, то вона є випуклою. Умова , яка міститься серед умов, що визначають множинуМ, називається нежорстким обмеженням, якщо існує точка така, що, в іншому випадку умованазиваєтьсяжорстким обмеженням. Нежорстке обмеження називається істотним, якщо існує хоча б одна точка , яка задовольняє іншим обмеженням, яка не належить множиніМ, в іншому випадку нежорстке обмеження називається неістотним. Неістотні обмеження можна виключити з системи умов, які визначають множину М.

5.3.2. Розв’язування задач лінійного програмування симплекс-методом

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

за наявності обмежень

(5.12)

, (5.13)

.

Обмеження (5.12), (5.13) визначають певну багатокутну множину. Вводячи додаткові невід’ємні змінні , обмеження (5.12) можна записати наступним чином

.

Тому задачу лінійного програмування можна сформулювати в канонічній формі: мінімізувати функцію

(5.14)

за наявності обмежень

. (5.15)

За умови такої постановки задачі лінійного програмування вже всі змінні входять рівнозначно, можна вважати, що. Система обмежень (5.15) визначає певну опуклу багатогранну множину. Точканазиваєтьсявузловою точкою (вершиною, опірним планом), якщо в не існує двох різних точоктатаких, що, тобтоне лежить на жодному відрізкові, який з’єднує дві будь-яких точки множини.

Нехай є розв’язком задачі лінійного програмування (5.14) –(5.15). Позначимо черезмножину всіх таких розв’язків, тоді вірним є таке твердження:множина містить щонайменше одну кутову точку. Запишемо систему рівностей (5.15) в матричній формі

Ах = b, (5.16)

припускаючи, що А = (аij), i = ; j = , x = т (операція транспонування матриці), b = т. Матрицю А подамо у вигляді А = (А1, А2, … , Ап), Аj =т . Можна вважати, що ранг матриці А дорівнює , тобто серед векторівА1, … , Аn щонайменше векторів є лінійно незалежними. Розв’язок задач лінійного програмування базується на такій теоремі.

Теорема. Для того, щоб точка була кутовою точкою множини, яка визначається обмеженнями (5.15), необхідно і достатньо, щоб існували номери, такі, що система векторівА ,…, A є незалежною, та

Ах+Ах+…+Ах=b, , якщо. (5.17)

Система векторів {A,…,A} називається базисом кутової точки , а змінні -базисними змінними. Якщо серед базисних змінних немає рівних нулеві, то кутова точка називаєтьсяне виродженою, в іншому випадку – виродженою кутовою точкою. Якщо серед кутових точок задачі лінійного програмування немає вироджених, то вона є не виродженою, в іншому випадку – виродженою задачею лінійного програмування. Для розв’язку канонічної задачі лінійного програмування частіше за все застосовують симплекс-метод.

Симплекс – метод розв’язку задач лінійного програмування є впорядкованим перебором кутових точок, який закінчується у випадку, коли лінійна форма (5.14) досягає мінімального значення. Наведемо коротке викладення цього методу стосовно розв’язування не виродженої задачі лінійного програмування, поданої у канонічній формі.

Нехай відома певна кутова точка множини. Можна вважати, що стовпчикиА1, А2, …, Am матриці А є базисом кутової точки , а змінні- базисні змінні. Розв’язуючи систему рівнянь (5.15) відносно зміннихі виключивши базисні змінні з лінійної форми (5.14), можна прийти до такої задачі лінійного програмування, еквівалентної початковій задачі: мінімізувати функцію

, (5.18)

за умови

,

,

……………………. (5.19)

, .

Оскільки - не вироджена кутова точка, то.

Можливі такі випадки:

  1. Всі , тоді точкамінімізує форму (5.18), тобто дає розв’язок поставленої задачі.

  2. Існує такий номер , щота всі. Це означає, що задача немає розв’язку.

  3. Існує такий номер , що, але серед чиселіснують додатні числа. В цьому випадку можливий перехід до іншої кутової точкитакої, що. Для такого переходу вибирається номерз умови

. (5.20)

Згідно припущення ця задача є не виродженою, тому умова (5.20) визначає єдине число . Зміннібудуть новими базисними змінними. Елементназиваютьрозв’язуючим елементом, а l – те рівняння системи (5.19) – розв’язуючим рівнянням. Виключимо з використанням розв’язуючого рівняння змінну з функціїта всіх інших рівнянь системи (5.19). Вільні члени отриманої системи рівнянь визначають нову кутову точку

Для здійснення наступного кроку симплекс-методу достатньо розв’язати задачу:

За умови

,

……………………………………………………………….

,

,

,

……………………………………………………………….

.

Таким чином отримана задача, аналогічна задачі (5.18)б (5.19), тому подальші обчислення проводяться в тій же послідовності.

Приклад

Нехай за умови

,

,

, (5.21)

.

Розв’язуючи систему рівнянь (5.21) відносно базисних змінних та виключивши їх з функціїотримаємо задачу:

за умови

,

,

.

Звідси видно, що , тобто змінніє новими базисними змінними, а третє рівняння системи буде розв’язуючим рівнянням. Виключивши його з використанням змінноїз функціїта інших рівнянь системи, отримаємо задачу:

за умови

,

,

,

.

Звідси знаходимо нову кутову точку і переходимо до наступного кроку симплекс-методу. Оскільки всі коефіцієнти лінійної форминевід’ємні, то задача розв’язана. Відповідь:.

Розглянутий варіант симплекс-методу можна застосовувати для розв’язування вироджених задач лінійного програмування, хоча є небезпека за циклювання – нескінченного перебору базисів однієї і тієї ж кутової точки. Проте за циклювання виникає досить рідко, існують спеціальні алгоритми, які дають змогу уникнути його, які ми не розглядатимемо.

Однією з переваг симплекс-методу є можливість його використання для визначення початкової кутової точки багатогранної множини, визначеної умовами (5.15). Відповідний алгоритм має назвуметоду штучного базису. Розглянемо допоміжну задачу: мінімізувати функцію

(5.22)

за умови наявності таких обмежень

, (5.23)

,

де - ті ж, що і в умові (5.15). Оскількиобмежена знизу, ця задача завжди має розв’язок. За умовою всі, тому змінніможна прийняти за базисні змінні, точкає кутовою точкою багатогранної множини (5.23). Застосовуючи симплекс-метод, знаходимо точкуяка мінімізує функціюза умови обмежень (5.23). Нехай, тоді справедливим є твердження:

Якщо то- кутова точка множини U. Якщо, то множина U – пуста.

Приклад

Знайти кутову точку множини

,

,

,

.

Розглянемо допоміжну задачу

Виключивши базисні змінні з, отримаємо

,

З умови (5.20) видно, що в якості базисних змінних можна взяти друге рівняння береться за розв’язуюче рівняння. Виключаючи з його використанням змінну, отримаємо

У відповідності з формулою (5.20) вибираємо зміннівибираємо за базисні. Тоді матимемо

Виходячи з (5.20), беремо базисні змінні, отримуємо

Оскільки всі коефіцієнти невід’ємні, то допоміжна задача розв’язана,Тобто

Оскільки метод штучного базису не призводить до єдиної кутової точки, то, як правило, розв’язуючий елемент вибирають таким чином, щоб числобуло найменшим із всіх можливих на даному кроці симплекс-методу.

Соседние файлы в папке Холмская экзамен