Методичні рекомендації до лабораторної роботи №3 - Аналіз лінійних оптимізаційних задач
« Назад Лабораторна робота №3. Аналіз лінійних оптимізаційних задач: аналіз оптимального розв’язку; параметричний аналіз; графічне представлення результатів аналізу.Мета роботи: Вивчити методи аналізу задач лінійного програмування засобами Solver та графічного представлення отриманих результатів засобами Exсel
1.1.Теоретичні відомості. 1.Якщо рішення нема При рішенні задачі лінійного програмування достатньо часто оптимального рішення отримати не вдається. Це виникає по двом причинам. Причину 1 проілюструємо на наступному прикладі. Про таку систему кажуть, що обмеження несумісні. Нажаль, це дуже часто зустрічається на практиці, а не тількі теоретично можливий варіант. В таких випадках Excel буде видавати повідомлення Пошук не може знайти відповідного рішення. В загальному випадку несумісність може бути наслідком двох причин:
Способи подалання несумісності ми розглянемо після того, як навчимося рішати задачі лінійного програмування в Excel. Причину 2 розглянемо на наступному прикладі. В такому випадку при максимізації цільової функції F=x1max рішення отримане бути не може, так як цільова функція, як і ОДР, не обмежена з верху. Якщо в задачі ОДР не обмежена, тоді Excel буде видавати повідомлення “значення цільової комірки не співпадають.” Необмеженність цільової функції – це наслідок помилки в математичній моделі. Щоб уникнути таких помилок, треба виконувати наступні правила: При максимізації цільової функції вона повинна бути обмеженна зверху або з допомогою обмежень, або з допомогою граничних умов. При мінімізації цільової функції вона, відповідно, повинна бути обмеженна знизу. 2.Двійковість в задачах лінійного програмування Ще трохи теорії. Розглянемо тепер поняття про двійковість. Кожній задачі лінійного програмування, яку будемо називати початковою відповідає двійкова задача. Правила запису двійкової задачі розглянемо на такому прикладі. Нехай є початкова задача F=4x1+5x2+9x 3max x1+x2+2x 316 (a) 7x1+5x2+3x 3 25 (b) (5) Двійкова задача формулюється по наступним правилам:
Таким чином, для початкової задачі (5) можна записати двійкову задачу Fд=16z1+25z2min z1 +7z24; z1 +5z25 2z1 +3z29; zi0; i=...; (6) Важлива властивість двійкової задачі заключається в тому, що MaxF=minFД. Двійкова змінна zi являється коефіціентом при bi і отже, показує, як зміниться цільова функція при зміні ресурса bi на одиницю. В літературі по оптимізації двійкові змінні принято називати двійковими оцінками. У звітах Excel двійкова оцінка називається тіньовою ціною. Дуже важливо, що для знаходження двійкових оцінок двійкову задачу вирішувати не потрібно. Їх значення вже знаходяться в симплекс-таблиці оптимального рішення початкової задачі, яка приведена для розглядаємого прикладу на мал.3 (лабораторна №2). Визначити значення двійкових оцінок можна наступним чином. Якщо деякий i-ий ресурс використовується не повністью, тобто має резерв, значить, додаткова змінна в обмеженні для даного ресурсу буде більша нуля. В нашому прикладі таким ресурсом є сировина, оскільки b2=110 і його резерв y2=26. Цілковито очевидно, що якщо би сировини було не 110 одиниць, а 111, то резерв був би рівен не 26, а 27. При цьому не виникло би збільшення цільової функції. Отже, для другого обмеження двійкова змінна z2=0. Таким чином, якщо по даному ресурсу є резерв, тоді додаткова змінна буде більше нуля, двійкова оцінка цього обмеження рівна нулю. В прикладі, що розглядається, трудові ресурси і фінанси використовувались повністью, тому їх додаткові змінні рівні нулю. В таблиці на мал.3 змінні y1 і y3 являються вільними, значить y1=y3=0. Якщо ресурс використовується повністью, то його збільшення або зменшення вплине на об’єм випускаємої продукції і, отже, на величину цільової функції. Значення двійкової оцінки при цьому знаходиться в симплек-таблиці (мал.3 лабораторної №2) на перетині стрічки цільової функції зі стовпцем данної додаткової змінної. Для трудових ресурсів при y1=0 двійкова оцінка zi=20, а для фінансів при y3=0 двійкова оцінка z3=10. Результати рішення задачі, що приведені на мал.3 (лаб.№2), зведені до таблиці, яка показана на мал.3.
Мал.3. З цієї таблиці видно, що при збільшенні (зменьшенні) трудових ресурсів на одиницю, цільова функція збільшиться (зменьшиться) на 20 одиниць і буде рівна при збільшенні - F=1320+20*1=1340, при зменьшенні - F=1320-20*1=1300. Аналогічно постає справа і з фінансами. При збільшенні (зменьшенні) фінансів на одиницю цільова функція буде рівна при збільшенні - F=1320+10*1=1330, при зменьшенні - F=1320-10*1=1310. Для задачі розподілення ресурсів (із лаб.№2 мал.3) по приведеним вище правилам складемо двійкову задачу: FД=16z1+110z2+100z3min z1+6z2+4z360 z1+5z2+6z370 z1+4z2+10z3120 (9) z1+3z2+13z3130 По аналогії з вводом додаткових змінних yi (9) введемо додаткові двійкові змінні vj. FД=16z1+110z2+100z3min z1+6z2+4z3-v1=60 z1+5z2+6z3-v2=70 z1+4z2+10z3-v3=120 (10) z1+3z2+13z3-v4=130 vj;zi0; Значення додаткових двійкових змінних спеціально обчислювати не треба. Їх значення вже визначенні в симплекс-таблиці, приведеної на мал.3 (лаб.№2). Фрагмент цієї таблиці з позначеннями основних і додаткових двійкових змінних показан на мал.4, а їх значення – на мал.5.
мал.4 і мал.5. Який же зміст додаткових двійкових змінних? Якщо основні змінні (в нашому прикладі x1=10, x3=6) увійшли в оптимальне рішення, тоді їх додаткові змінні рівні нулю (v1=0, v3=0). Якщо основні змінні не увійшли в оптимальне рішення, тобто рівні нулю (в прикладі x2=x4=0), тоді відповідні їм додаткові змінні мають додатні значення (v2=10, v4=20). Ці величини показують, наскільки зменьшиться цільова функція при примусовому випуску одиниці данної продукції. Отже, якщо ми захочемо примусово випустити одиницю продукції Прод3, то цільова функція F зменшиться на 10 одиниць і буде рівна 1320-10*1=1310. 3. Аналіз оптимального рішення. Початкові данні, для яких знаходилось оптимальне рішеня, можуть змінюватись. Чи зміниться при цьому отримане оптимальне рішення? Щоб відповісти на це питання, звернемося до нашої моделі (мал.3 лаб.№2). В математичній моделі (мал.3 з лаб.№2) цільова функція рівна F=60x1+70x2+120x3+130x4max. Припустимо, прибуток від продажу Прод1 с1=60 зміниться на величину с1 і стане с1=60+с1
Мал.6 При цьому стрічка цільової функції в початковій симплекс-таблиці (мал.2 лаб.№2) прийме такий вигляд, як на мал.6. В результаті пошуку оптимального рішення фрагмент останньої симплекс-таблиці буде мати вигляд, представленний на мал.7. звідси можна зробити висновок, що до величин, що знаходяться в таблиці на мал.3 (лаб.№2), додаються величини в стрічці xj (ячейки В3:F3), помножені на с1.
Мал.7. Згідно до признаку 2а, сформульованому в лаб.№2, при максимізації цільової функції рішення буде оптимальним в тому випадку, коли в стрічці цільової функції всі елементи, крім вільного члена, будуть невідємними. Значить, рішення буде оптимальним при умові 20+1,67с10 10+0,67с10 10-0,17с10 20-0,5 с10 (12). Перетворюючи (12), запишимо: с1-20/1,67=-12 с1-10/0,67=-15 с1-10/0,17=60 с1-20/0,5=40 і остаточно -12с140. Умова (12) визначає межі зміни с1 при яких зберігається структура оптимального плана, тобто буде вигідно як завжди випускати продукцію x1. У звітах Excel нижня границя (в прикладі рівний 12) називається припустиме зменшення, верхня межа, рівна 40, - припустиме збільшення. Якщо від меж прирощувань с1 перейти до меж значення величини с1, то можна записати minс1 =с1 +minс1=60-12=48 maxс1=с1+maxс1=60+40=100 (13). Таким чином, при зміні с1 в межах minс1 с1 maxс1 maxс1с1100 (14) буде вигідно випускати продукцію x1. При цьому значення цільової функції буде: F=1320+10с1. І далі по залежностям, аналогічним (13), не важко перейти до меж значень с2, с3, с4. Аналіз впливу зміни bi Розглянемо впли зміни ресурсів на прикладі зміни наявної кількості сировини. При зміні трудових ресурсів на bi обмеження для них будуть мати вигляд: x1+x2+x3+x416b1, що запишимо у вигляді: y1=(16+b1)-( x1+x2+x3+x4). При цьому стовпець вільних членів в симплекс-таблиці буде мати вигляд показаний на мал.8, а фрагмент симплекс-таблиці з оптимальним рішенням – на мал.9, з якого видно правило формування вільних членів, аналогічне правилу формуванню стрічки цільової функції.
Мал.8
Мал.9 У відповідності до признака 1 рішення буде припустимим в тому випадку, якщо всі елементи в стовбці вільних членів будуть невідємними. Значить, з мал.9 випливає 10+1,67b10 26-7,73b10 6-0,67b10 звідки bi-10/1.67=-6 bi26/7.33=3.55 bi6/0.67=9. Тоді для зберігання структури оптимального плана зміни трудових ресурсів повинно бути в межах -6b13,55. Аналогічно можна отримати значення для b2, b3 і записати -6b13,55 26b2 необмеж. -36b360 (16) Перехід від bi до меж bi виконується по залежностям min bi= bi+min bi max bi= bi+max bi (17) min bibimax bi в результаті отримаємо minb1=16-6=10 maxb1=16+3.55=19.55 10b119.55 (18) 84b2 необмеж. 64b3160. Знайдені межі показують границі, в яких можуть змінюватись ресурси, щоб структура оптимального рішення, тобто номенклатура випускаємої продукції, залишились без змін. А це означає, що при зміні трудових ресурсів в знайдених межах оптимальним, тобто забезпечуючим найбільший прибуток, являється випуск тієї ж продукції x1 і x3 , але інших кількостях. При цьому необхідно буде випускати x1=10+1,67b1, x2=6-0,67b1. При цьому цільова функція буде F=1320+20b1. Аналогічно отримані залежності для фінансів будуть мати вигляд: x1=10-0.17b3 x3=6+0.17b3 F=1320+10b3 Пояснимо ці залежності на наступному прикладі. Нехай збільшення фінансів складають b3=10 При цьому отримаєм x1=10-0.17*10=8,3, x3=6+0.17*10=7,7. В данному випадку цільова функція буде F=1320+10*10=1420. Було важко представити, що при збільшення фінансів для забезпечення максимізації прибутку випуск продукції x1 доцільно зменьшити, а випуск продукції x3 - збільшити. Таке рішення пояснюється наступним. Як видно з умов задачі (мал.1 з лаб.№2), прибуток з одиниці продукції с3=120, тобто одиниця продукції Прод3 в 120/60=2 рази дає більше прибутку порівняно з одиницею продукції виду Прод1. У зв’язку з тим виявилось доцільним такий перерозподіл випуску продукції. Ми припускаємо, що наведених прикладів достатньо, щоб показати, на які важливі питання можна отримати відповіді з допомогою математичної моделі. Слід підкреслити, що всі ці відповіді можуть бути отримані без додатковорго рішення задачі, а тількі використовуючи симплекс-таблицю основної задачі (мал.3 з лаб.№2). 4. Варіантний аналіз Для задачі розподілу ресурсів найбільший інтерес представляє рішення двох задач варіантного аналізу:
При рішенні задач розподілу ресурсів по декільком ціловим функціям можлива одна з двох постановок задачі: при заданих ресурсах максимізувати отриманний результат; або при заданому результаті мінімізувати використовувані ресурси. Якщо позначити Q – ресурси, R – результат їх застосуваня, то при заданих залежностях результата R=f1(xj) і потрібних ресурсів Q=f2(xj) від кількості випускаємої продукції ці постановки можуть бути записані так: Перша постановка F1=Rmax R=f1(xj) Q=f2(xj) QQзад (19) djxjDj j= Друга постановка F2=Qmin R=f1(xj) Q=f2(xj) RRзад (20) djxjDj j= Рішення задачі розподілу ресурсів в цих двох постановках розглянемо на прикладі задачі, приведенної на мал.10.
Мал.10 Цей приклад відрізняється від розглянутого раніше (мал.6) введенням граничних умов на змінні і зміною деяких норм витрат. На відміну від попередньої задачі тут присвоїні імена Вид1, Вид2, Вид3, Вид4 типам випускаємої продукції. У вирішуванній задачі обмеження і граничні умови мають вигляд: x1+2x2+3x3+4x440 6x1+5x2+4x3+3x4110 4x1+6x2+8x3+12x4100 (21) 1 x112; x32; x20; x4=3 будемо вирішувати цю задачу в двох приведенних вище постановках. В першій постановці – максимізація результата – цільова функція буде мати вигляд: F1= 60x1+70x2+120x3+130x4max (22) Для рішення задачі у другій постановці – мінімізація використовуваних ресурсів – введемо в (21) додаткові змінні y1, y2, y3. x1+2x2+3x3+4x4+ y1=40 6x1+5x2+4x3+3x4 +y2=110 4x1+6x2+8x3+12x4 +y3=100 (23) Змінні y1, y2, y3 показують величину невикористаного ресурсу. Значить, якщо ми хочемо мінімізувати використовуваний ресурс, тоді потрібно максимізувати невикористаний ресурс, тоді у другій постановці цільова функція буде F2= y1+y2+y3max. (24) В цій постановці, як і при будь-якій мінімізації, повинен бути задан мінімально припустимий результат. В якості такого заданого результата приймаємо нижні значення граничних умов для змінних, приведені на мал.10 і в (21).
Аналіз оптимального рішення за допомогою надбудови Прийняття рішенняАналіз оптимального рішення виконується на основі застосування тих положень симплекс-методу, які були достатньо розглянуті вище і починається після успішного рішення задачі, коли на екрані появляється діалогове вікно Результат знайдено. З допомогою цього діалового вікна можна викликати звіти трьох типів:
Звіти кожного типу можуть бути викликані по наступному алгоритму. Алгоритм 1. Виклик звітів аналізу На екрані: діалогове вікно Результат пошуку рішення.
На екрані: викликаний звіт на новому листі, на ярличку якого вказана назва звіту.
Звіт по результатамЗвіт складається з трьох таблиць:Таблиця 1 приводить відомості про цільову функцію. В стовпчику Початково приведені значення цільової функції до початку обчислень. Таблиця 2 приводить значення шуканих змінних, що отримані в результаті рішення задачі. Таблиця 3 показує результати оптимального рішення для обмежень і для граничних умов. Для Обмежень в графі Формула приведені залежності, які були введені в діалогове вікно Пошук рішення; в графі Значення приведені велечини використаного ресурсу; в графі Різниця показана кількість невикористаного ресурсу. Якщо ресурс використовується повністю, то в графі Стан вказується зв’язане; при неповному використанні ресурсу в цій графі вказується не зв’язан.
Мал.11. Для Граничних умов приводяться аналогічні величини з тією ж різницею, що замість величини невикористаного ресурсу показана різниця між значенням змінної в знайденному оптимальному рішенні і заданою для неї граничною умовою. Звіт по стійкості Звіт по стійкості (мал.12) складається з двох таблиць.
Мал.12. В таблиці 1 приводяться наступні значення для змінних:
В таблиці 2 приводяться значення для обмежень:
Задачі аналізу, які можна вирішувати з допомогою приведених величин сj і bi, були докладно розглянуті вище. Звіт по межам Цей звіт приведен на мал.13. в ньому показано, в яких межах може змінюватись випуск продукції, що увійшла в оптимальне рішення, при збереженні структури оптимального рішення.
Мал.13. Крім того, в звіті вказані значення цільової функції при випуску даного типу продукції на нижній межі. Так, при значенні 720 видно, що F=c1x1+c3x3=60*0+120*6=720. Далі приводяться межі зміни xj і значення функції мети при випуску продукції, яка увійшла в оптимальне рішення на верхніх межах. Тому всюди F=60*10+120*6=1320. На цьому ми закінчуємо опис звітів аналізу оптимального рішення. Параметричний аналізПід параметричним аналізом будемо розуміти рішення задачі оптимізації при різних значеннях того параметра, який обмежує поліпшення функції мети. Параметричний аналіз будемо виконувати для задачі, яка приведена на мал.14, вирішуючи її при різних значеннях наявних фінансів. Алгоритм 2. Виконання параметричних розрахунків 1. Підготовчі роботи. 1.1. Скласти таблицю варіантів (мал.14).
Мал.14. 1.2. Викликати на екран таблицю з результатом рішення задачі. 1.3. Вилучити результат рішення, що знаходиться в В3:Е3:
2. Рішення задачі для першого варіанту. 2.1. Ввести в комірку H11=50. 2.2. Сервіс, Пошук рішення… 2.3. Виконати. На екрані: діалогове вікно Результати пошуку рішення . 2.4. Зберігти сценарій… 2.5. Ввести ім’я сценарію фінанси=50. 2.6. ОК. На екрані: діалогове вікно Результати пошуку рішення . 2.7. ОК. На екрані: результат рішення задачі для даного варіанта фінанси=50 (мал.16).
Мал.16. 3. Рішення задачі для наступних варіантів. 3.1. Ввести в H11 значення фінансів з мал.14 для наступного варіанту. 3.2. Виконати п.2.2 – п.2.7, при цьому в п.2.5 вводити ім’я сценарію, відповідне значення фінансів. 4. Представлення результатів рішення. 4.1. Сервіс, Сценарії… 4.2. Звіт… 4.3. Структура. 4.4. ОК. На екрані: звіт Підсумковий сценарій (мал.19).
Мал.19. На цьому малюнку приведені результати рішеня задачі для всіх значень фінансів, прийнятих в таблиці варіантів (мал.14). Для зручнсті подальшої праці виконаємо редакування Підсумкового сценарію. Алгоритм 3. Редакування Підсумкового сценарію.
Після того звіт Підсумковий сценарій буде виглядати так, як показано на мал.20.
Мал.20. Для наглядного представлення результатів параметричного аналізу на основі відредакування таблиці (мал.20) побудуємо графіки. Алгоритм 4. Побудова гістограми для шукаих змінних.
На екрані: мал.11, на основі якого можна зробити наступні виводи:
Для значень фінансів 50, 150, 200 величина випускаємої продукції являється дрібною. Таке положення припустиме при плануванні, наприклад, випуску тканини, добування нафти і т.д. при випуску поштучної продукції очевидно, що в плані повинні бути цілі числа. Для отримання такого плану слід вирішити задачу цілочисельного програмування, яка розглянута в лаб.№9. Алгоритм 5. Побудова змішанної діаграми для цільової функції і сировини.
На екрані: діаграма (мал.12), на основі якої можна зробити наступні висновки:
1.2. Порядок виконання роботи.
З повагою ІЦ "KURSOVIKS"! |