Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 1534.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.2 Mб
Скачать

1.3. Класифікація задач математичного програмування

Класифікація задач математичного програмування в першу чергу пов’язана з виглядом цільової функції F та допустимої множини розв’язків (планів) D.

Якщо критерій оптимальності Fлінійна функція і допустима множина D задається системою лінійних обмежень (рівнянь і/або нерівностей), то така задача є задачею лінійного програмування. При цьому, якщо виходячи з фізичного змісту задачі лінійного програмування, її розв’язки повинні бути лише цілими числами, то маємо задачу цілочислового лінійного програмування. У тому випадку, якщо умова цілочисельності накладається на всі змінні, задача лінійного програмування називається повністю цілочисловою. Якщо ж ця умова стосується лише частини змінних – частково цілочисловою.

Важливим класом задач лінійного програмування є задачі, в яких змінні можуть набувати тільки двох значень: 0 або 1. Такі задачі називають задачами з булівськими змінними (за іменем основоположника алгебри логіки англійського математика Дж. Буля).

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

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

По-друге, в залежності від рівня визначеності вихідних даних задачі математичного програмування бувають детермінованими (тобто, повністю визначеними) або стохастичними (якщо дані характеризуються як випадкові величини).

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

Ми розглянули лише найбільш поширені класи задач математичного програмування. Можна також за різними ознаками виокремити й інші підтипи: дискретні і неперервні задачі, дробово-лінійні задачі, задачі з теорії ігор та ін.