Розділи

загрузка...
8.3. Основні труднощі розв’язування задач нелінійного програмування; Математичне програмування - Наконечний С.І.

8.3. Основні труднощі розв’язування задач нелінійного програмування

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

У точках х1 і х3 величина собівартості для двох цих функцій однакова. Однак у всіх інших точках ці значення відрізняються, причому у точці х2 у значній мірі, тобто на величину:

.

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

Рис. 8.3

Навіть питання щодо існування розв’язку задачі нелінійного програмування потребує окремого дослідження.

Розглянемо основні труднощі розв’язування нелінійних задач.

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

а) отримали оптимальний розв’язок;

б) умови задачі суперечливі, тобто розв’язку не існує;

в) цільова функція необмежена, тобто розв’язку також не існує.

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

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

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

Подпись: Рис. 8.4. На рис. 8.4 маємо на відрізку, що зображений, локальні оптимуми у точках глобальний — у точках та .

Більшість наближених методів уможливлюють, як правило, знаходження локального оптимуму. Можна, звичайно, користуючись простим способом, визначити всі локальні оптимуми, а потім їх зіставленням знайти глобальний. Однак для практичних розрахунків такий метод є неефективним. Часто глобальний оптимум наближені методи «не уловлюють». Наприклад, у разі, коли глобальний оптимум знаходиться досить близько біля локального. Якщо відрізок поділити на десять підвідрізків і глобальний оптимум попаде у відрізок (рис. 8.4), а зліва від та справа від крива буде зростати, то глобальний оптимум буде пропущеним.

  1. У задачах лінійного програмування точка оптимуму завжди була граничною точкою багатогранника допустимих планів. Для нелінійних задач точка, яка визначає оптимальний план, може бути як граничною, так і знаходитися всередині допустимої області розв’язків (планів), що було проілюстровано в прикладі 8.1.
  2. Доведено, що множина допустимих планів задачі лінійного програмування завжди є опуклою. У разі, коли система обмежень задачі є нелінійною, вона може визначати множину допустимих розв’язків як неопуклу, або навіть складатися з довільних, не зв’язаних між собою частин (приклад 8.2).

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

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