Загальна характеристика задач математичного програмування

 

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

Вираз "математичне програмування" слід розуміти як ітераційний пошук найкращого варіанта використання обмежених виробничих потужностей і ресурсів для досягнення поставлених цілей [61].

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

одержання максимального випуску продукції або максимального прибутку при заданих матеріальних, трудових та інших витратах;

забезпечення планових показників підприємства при мінімальних фінансових вкладеннях або мінімальній витраті якогось виробничого ресурсу;

досягнення мінімального терміну виготовлення продукції, будівництва об'єкта, товарообігу, виробничого циклу і т.п. при існуючих або заданих виробничих ресурсах (матеріальних, трудових, енергетичних та ін.);

забезпечення мінімальної собівартості продукції при заданих виробничих ресурсах [61].

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

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

Ті припустимі рішення, при яких досягається оптимум, називають оптимальними, або екстремальними рішеннями.

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

У практиці економіста оптимальне рішення прийнято називати оптимальним планом.

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

У загальному вигляді екстремальна задача формулюється наступним чином: знайти найбільше (максимальне) або найменше (мінімальне) значення деякої функції Y(xl,x2, … ,xn) при умовах fi12, ... ,хn)≤bi (і =1,m), і де y і fi - задані функції, а bi - дійсне число.

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

Функцію Y(xl,x2,---,xn), яку мінімізують або максимізують, називають цільовою функцією.

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

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

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

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

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

Особливі класи становлять задачі стохастичного і динамічного програмування.

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

До задач такого типу відносяться:

комплектування ремонтних підприємств устаткуванням, коли заздалегідь невідомий обсяг робіт;

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

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

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

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

Переваги динамічного програмування:

можливість поетапного аналізу результатів у процесі вирішення задачі, визначення оптимальної стратегії з урахуванням чинника часу;

поглиблення раніше розроблених методів кількісного і якісного дослідження природи економічних процесів;

більш об'єктивне, повне і точне вирішення планово-економічних і виробничих завдань.

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

Вирішення екстремальної економічної задачі складається з наступних етапів:

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

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

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

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

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

Для побудови економіко-математичної моделі найбільш часто використовуються задачі лінійного програмування. Тому розглянемо їх більш докладно.

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

Аналітичний запис цього завдання має такий вигляд:

 

y(x)=cTx+c0→ opt , (2.1)

xÎÌRn

Ω: A1x+b1£0; (2.2)

A2x+b2=0; (2.3)

A3x+b3³0; (2.4)

x³0, (2.5)

 

де x - n - мірний вектор дійсних змінних; с - n - мірний вектор коефіцієнтів; С0 - вільний член у складі функції у; A1, А2, А3 - матриці коефіцієнтів лінійних систем розмірності m1×n, m2×n, m3×n відповідно, m2<n; b1, b2 ,b3 - вектори вільних членів обмежень розмірності m1×1, m2×1, m3×1 відповідно.

Часткові задачі лінійного програмування можуть не містити однієї або двох систем обмежень типу (2.2) - (2.4), все рівно яких. Крім того, замість умови невід'ємності (2.5) може мати місце двостороння або одностороння обмеженість змінних.

Задачу, складену з (2.1), (2.2) і (2.5), називають стандартною задачею лінійного програмування.

Канонічна, або основна задача лінійного програмування має такий вигляд:

y(x)=cTx+c0→ max; (2.6)

xÎÌRn

Ω: Ax+b=0; (2.7)

x≥0, (2.8)

де A - матриця коефіцієнтів розмірності m×n, m<n; b - вектори вільних членів розмірності m×1.

Очевидно, що обмеження-нерівність типу "£" можна перетворити в обмеження-рівність додаванням до його лівої частини додаткової невід'ємної змінної, а кожне обмеження-нерівність типу "≥" - в обмеження-рівність шляхом вирахуванням з його лівої частини додаткової невід'ємної змінної. Задачу мінімізації лінійної функції y можна звести задачі максимізації шляхом множення останньої на -1. Таким чином задачу лінійної оптимізації (2.1) - (2.5) завжди можна перетворити в задачу (2.6) - (2.8) і навпаки.

Складання економіко-математичної моделі загальної задачі математичного програмування або її канонічної форми вимагає певних зусиль і кмітливості Але досвід складання економіко-математичних моделей швидко накопичується. Досить мати практику вирішення декількох задач, щоб надалі не мати особливих труднощів при переході від змістовної постановки задачі лінійного програмування до формальної (аналітичної) [61].