Розділи

загрузка...
1.6. Класифікація задач математичного програмування; Математичне програмування - Наконечний С.І.

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

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

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

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

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

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

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

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

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

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

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

Економічні та технологічні процеси, як правило, є нелінійними, стохастичними, розвиваються за умов невизначеності. Лінійні економіко-математичні моделі часто є неадекватними, тобто такими, що неточно описують процес, який досліджується, тому доводиться будувати стохастичні, динамічні, нелінійні моделі. Розв’язувати такі задачі набагато складніше, ніж лінійні, оскільки немає універсального методу їх розв’язання. Для окремих типів нелінійних задач розроблено спеціальні числові методи розв’язання. Проте слід зазначити, що на практиці застосовують, здебільшого, лінійні економіко-математичні моделі. Часто нелінійні залежності апроксимують (наближають) до лінійних. Такий підхід є доволі ефективним.

У нелінійному програмуванні (залежно від функцій, які використовуються в економіко-математичній моделі) виокремлюють опукле та квадратичне програмування. Задача належить до опуклого програмування у тому разі, коли цільова функція вгнута, якщо вона мінімізується, та опукла, якщо вона максимізується, а всі обмеження — однотипні нерівності типу (≤) або рівняння, в яких ліві частини є опуклими функціями, а праві частини — сталими величинами. У разі обмежень типу (≥) їх ліві частини мають бути вгнутими функціями. Тоді область допустимих планів є опуклою та існує глобальний, єдиний екстремум. Квадратичне програмування — якщо цільова функція квадратична, а обмеження лінійні.

Щойно було розглянуто лише основні типи задач математичного програмування. Можна також за різними ознаками виокремити й інші підтипи. Це особливо стосується задач лінійного, нелінійного і стохастичного програмування. Наприклад, як окремий тип розглядають дробово-лінійне програмування, коли обмеження є лінійними, а цільова функція — дробово-лінійна. Особливий тип становлять задачі теорії ігор, які широко застосовуються в ринковій економіці. Адже тут діють дві чи більше конфліктних сторін, які мають частково або повністю протилежні цілі. У сукупності задач теорії ігор, у свою чергу, також виокремлюють певні підтипи. Наприклад, ігри двох осіб із нульовою сумою.

Наведена вище класифікація задач використана для структурування курсу «Математичне програмування».