КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Розв’язання стандартної задачі симплекс - методом
Аналіз результатів рішення задачі Оптимальний план задачі: Х = (40/3; 20); Z max = 29920 грн. Отже, для того, щоб отримати найбільший денний прибуток 29920 грн, фірма має обробляти 40/3 тис. кг сировини, виробляючи продукт А, і 20 тис.кг - виробляючи продукт В. За такого оптимального плану випуску продукції технологічна лінія 2 працюватиме 20 / 4 = 5 год. на день, тобто з повним навантаженням, а технологічна лінія 1 працюватиме лише 40 / 15 = 2 год. 20 хв. щодня. Алгоритм графічного розв’язання задачі з використанням ПЕОМ наведено у додатку 2.
Графічний метод для визначення оптимального плану задачі лінійного програмування доцільно застосовувати лише для задач із двома змінними. За більшої кількості змінних вдаються до загального методу розв'язування задач лінійного програмування - так званого симплекс - методу. Процес розв'язування задачі симплекс - методом має ітераційний характер: обчислювальні процедури (ітерації) одного й того самого типу повторюються у певній послідовності доти, доки не буде отримано оптимальний план задачі або з’ясовано, що його не існує. Отже, симплекс-метод - це поетапна обчислювальна процедура, в основу якої покладено принцип послідовного поліпшення значень цільової функції переходом від одного опорного плану задачі лінійного програмування до іншого. Алгоритм розв'язування задачі лінійного програмування симплекс - методом складається з п'яти етапів: 1. Визначення початкового опорного плану задачі лінійного програмування. 2. Побудова симплексної таблиці. 3. Перевірка опорного плану на оптимальність за допомогою оцінок . Якщо всі оцінки задовольняють умову оптимальності, то визначений опорний план є оптимальним планом задачі. Якщо хоча б одна з оцінок не задовольняє умову оптимальності, то переходять до нового опорного плану або встановлюють, що оптимального плану задачі не існує. 4. Перехід до нового опорного плану задачі виконується визначенням розв'язувального елемента та розрахунком нової симплексної таблиці. 5. Повторення дій починаючи з п. 3. Розглянемо докладніше кожний з етапів алгоритму. 1. Визначення першого опорного плану починають із запису задачі лінійного програмування в канонічній формі, тобто у вигляді обмежень-рівнянь з невід'ємними правими частинами. Якщо в умові задачі присутні обмеження-нерівності, то перетворення їх на рівняння виконується за допомогою додаткових змінних, які вводяться до лівої частини обмежень типу «<» зі знаком «+», а до обмежень типу «>» - зі знаком «-». У цільовій функції задачі додаткові змінні мають коефіцієнт нуль. Після зведення задачі до канонічного вигляду її записують у векторній формі. За означенням опорного плану задачі лінійного програмування його утворюють з одиничних лінійно незалежних векторів, які становлять базис w-вимірного простору (де m — кількість обмежень у задачі лінійного програмування). На цьому етапі розв'язування задачі можливі такі випадки: - після запису задачі у векторній формі в системі обмежень є необхідна кількість одиничних векторів. Тоді початковий опорний план визначається безпосередньо без додаткових дій; - у системі обмежень немає необхідної кількості одиничних незалежних векторів. Тоді для побудови першого опорного плану застосовують метод штучного базису. Ідея його полягає в тому, що відсутні одиничні вектори можна дістати, увівши до відповідних обмежень деякі змінні з коефіцієнтом + 1, які називаються штучними. У цільовій функції задачі лінійного програмування штучні змінні мають коефіцієнт + М (для задачі на min) або - М (для задачі на max), де М - досить велике додатне число. Визначені одиничні лінійно незалежні вектори утворюють базис, і змінні задачі, що відповідають їм, називають базисними, а всі інші змінні - вільними, їх прирівнюють до нуля та з кожного обмеження задачі визначають значення базисних змінних. У такий спосіб отримують початковий опорний план задачі лінійного програмування. 2. Подальший обчислювальний процес та перевірку опорного плану на оптимальність подають у вигляді симплексної таблиці. У першому стовпчику таблиці - «Базис» - записують базисні змінні опорного плану, причому в тій послідовності, в якій вони розміщуються в системі обмежень задачі. Наступний стовпчик симплексної таблиці - «Сбаз» - коефіцієнти при базисних змінних у цільовій функції задачі. У третьому стовпчику - «План» - записують значення базисних змінних і відшукувані у процесі розв'язування задачі компоненти оптимального плану. У решті стовпчиків симплексної таблиці, кількість яких відповідає кількості змінних задачі, записують відповідні коефіцієнти з кожного обмеження задачі лінійного програмування. 3. Перевіряють опорний план на оптимальність згідно з наведеною далі теоремою. Теорема (ознака оптимальності опорного плану). Опорний план задачі лінійного програмування є оптимальним, якщо для всіх виконується умова (для задачі на max) або: (для задачі на min) Якщо для побудови опорного плану було використано метод штучного базису, необхідною умовою оптимальності є також вимога, щоб у процесі розв'язування задачі всі штучні змінні були виведені з базису і дорівнювали нулю. Значення оцінок визначають за формулою: або безпосередньо із симплексної таблиці як скалярний добуток векторів-стовпчиків «Сбаз» та «xj» мінус відповідний коефіцієнт . Розраховані оцінки записують в окремий рядок симплексної таблиці, який називають оцінковим. У процесі перевірки умови оптимальності можливі такі випадки: а) усі задовольняють умову оптимальності, і тоді визначений опорний план є оптимальним; б) не всі задовольняють умову оптимальності, і тоді потрібно виконати перехід до наступного, нового опорного плану задачі. 4. Перехід від одного опорного плану до іншого виконується зміною базису, тобто виключенням з нього деякої змінної та введенням замість неї нової з числа вільних змінних задачі. Змінна, яка включається до нового базису, відповідає тій оцінці , що не задовольняє умову оптимальності. Якщо таких оцінок кілька, серед них вибирають найбільшу за абсолютною величиною і відповідну їй змінну вводять до базису. Припустимо, що індекс зазначеної змінної . Відповідний стовпчик симплексної таблиці називають напрямним. Для визначення змінної, що має бути виключена з базису, знаходять для всіх додатних напрямного стовпчика величину . Вибирають найменше значення 6, яке вказує на змінну, що виводиться з базису. Припустимо, що це виконується для . Відповідний рядок симплексної таблиці називатиметься напрямним. Перетином напрямного стовпчика та напрямного рядка визначається число симплексної таблиці , яке називають розв'язувальним елементом. За допомогою елемента і методу Жордана - Гаусса розраховують нову симплексну таблицю. Далі ітераційний процес повторюють доти, доки не буде визначено оптимальний план задачі. У разі застосування симплекс-методу для розв'язування задач лінійного програмування можливі такі випадки. 1. Якщо в оціньовому рядку останньої симплексної таблиці оцінка відповідає вільній (небазисній) змінній, то це означає, що задача лінійного програмування має альтернативний оптимальний план. Отримати його можна, вибравши розв'язувальний елемент у зазначеному стовпчику таблиці та здійснивши один крок симплекс-методом. 2. Якщо при переході у симплекс-методі від одного опорного плану задачі до іншого в напрямному стовпчику немає додатних елементів , тобто неможливо вибрати змінну, яка має бути виведена з базису, то це означає, що цільова функція задачі лінійного програмування є необмеженою й оптимальних планів не існує. 3. Якщо для опорного плану задачі лінійного програмування всі оцінки задовольняють умову оптимальності, але при цьому хоча б одна штучна змінна є базисною і має додатне значення, то це означає, що система обмежень задачі несумісна й оптимальних планів такої задачі не існує. Розглянемо застосування симплекс-методу для розв'язування деяких задач лінійного програмування. Приклад 1. Продукція чотирьох видів А, В, С і Д проходить послідовну обробку на двох технологічних лініях. Тривалість обробки одиниці продукції складає: - на технологічної лінії 1: А=2, В=3, С=4, Д==2; - на технологічної лінії 2: А=3, В=2, С=1, Д==2. Витрати на виробництво одиниці продукції кожного виду визначають як величини, прямо пропорційні до часу використання технологічної лінії(у машино-годинах). Вартість однієї машино-год становить 10 грн. для технологічної лінії 1 і 15 грн. - для технологічної лінії 2. Можливий час використання технологічних лініїй обмежений: для технологічної лінії 1 він становить 450 машино-год, а для технологічної лінії 2 - 380 машино-год. Ціна одиниці продукції кожного виду дорівнює відповідно 73, 70, 55 та 45 грн. Визначити оптимальний план виробництва продукції всіх чотирьох видів, який максимізує загальний чистий прибуток. Побудова математичної моделі. Нехай - план виробництва продукції у -го виду, де у може набувати значень від 1 до 4. Умовами задачі будуть обмеження на час використання верстатів для виробництва продукції всіх видів: для технологічної лінії 1 (машино-год); для технологічної лінії 2 (машино-год). Цільова функція задачі визначається як загальний чистий прибуток від реалізації готової продукції і складається з різниці між ціною та собівартістю виготовлення продукції кожного виду: Отже, математична модель поставленої задачі має такий вигляд: Розв'язування. Розв'яжемо задачу симплекс-методом згідно з розглянутим алгоритмом. 1. Запишемо систему обмежень задачі в канонічному вигляді. Для цього перейдемо від обмежень-нерівностей до строгих рівнянь, увівши до лівої частини обмежень додаткові змінні х5 та х6. Ці додаткові змінні за економічним змістом означають можливий, але не використаний для виробництва продукції час роботи технологічних ліній 1 та 2. У цільовій функції Z додаткові змінні мають коефіцієнти, які дорівнюють нулю: Канонічну систему обмежень задачі запишемо у векторній формі: > і де Оскільки вектори та одиничні та лінійно незалежні, саме з них складається початковий базис у зазначеній системі векторів. Змінні задачі х5 та х6, що відповідають одиничним базисним векторам, називають базисними, а решту вільними змінними задачі лінійного програмування. Прирівнюючи вільні змінні до нуля, з кожного обмеження задачі дістаємо значення базисних змінних: х1 = х2 = х3= х4 = 0 х5 = 450, х6 = 380 Згідно з визначеними xj (j = 1,6) векторна форма запису системи обмежень задач матиме вигляд: Оскільки додатні коефіцієнти х5 та х6 відповідають лінійно незалежним векторам, то за означенням: є опорним планом задачі і для цього початкового плану: 2. Складемо симплексну таблицю для першого опорного плану задачі. Елементи останнього рядка симплекс-таблиці є оцінками Δj, за допомогою яких опорний план перевіряють на оптимальність. їх визначають так: У стовпчику «План» оцінкового рядка записують значення цільової функції Z, якого вона набуває для визначеного опорного плану: =0-450 + 0-380 = 0. 3. Після обчислення всіх оцінок опорний план перевіряють на оптимальність. Для цього продивляються елементи оцінкового рядка. Якщо всі (для задачі на max) або (для задачі на min), визначений опорний план є оптимальним. Якщо ж в оцінковому рядку присутня хоча б одна оцінка, що не задовольняє умову оптимальності (від'ємна в задачі на max або додатна в задачі на min), то опорний план є неоптимальним і його можна поліпшити. У цій задачі в оцінковому рядку дві оцінки та суперечать умові оптимальності, і тому перший визначений опорний план є неоптимальним. За алгоритмом симплекс - методу необхідно від нього перейти до іншого опорного плану задачі. 4. Перехід від одного опорного плану до іншого виконують зміною базису, тобто за рахунок виключення з поточного базису якоїсь змінної та включення замість неї нової з числа вільних змінних. Для введення до нового базису беремо змінну х2, оскільки їй відповідає найбільша за абсолютною величиною оцінка серед тих, які не задовольняють умову оптимальності (). Щоб визначити змінну, яка підлягає виключенню з поточного базису, для всіх додатних елементів стовпчика «х2» знаходимо відношення , вибираємо найменше значення. Згідно з даними симплексної таблиці бачимо, що min , і тому з базису виключаємо змінну х5, а число а12= 3 називатимемо розв'язувальним елементом. Подальший перехід до нового опорного плану задачі полягає в побудові наступної симплексної таблиці, елементи якої розраховують за методом Жордана - Гаусса. Друга симплексна таблиця має такий вигляд: У цій таблиці спочатку заповнюють два перших стовпчики «Базис» і «Сбаз», а решту елементів нової таблиці розраховують за розглянутими далі правилами: 1. Розв'язувальний (напрямний) рядок необхідно поділити на розв'язувальний елемент і здобуті числа записати у відповідний рядок нової симплексної таблиці. 2. Розв'язувальний стовпчик у новій таблиці записують як одиничний з одиницею замість розв'язувального елемента. 3. Якщо в напрямному рядку є нульовий елемент, то відповідний стовпчик переписують у нову симплексну таблицю без змін. 4. Якщо в напрямному стовпчику є нульовий елемент, то відповідний рядок переписують у нову таблицю без змін. Усі інші елементи наступної симплексної таблиці розраховують за правилом прямокутника. Щоб визначити будь - який елемент нової таблиці за цим правилом, необхідно в попередній симплексній таблиці скласти умовний прямокутник, вершини якого утворюються такими числами: 1 - розв'язувальний елемент; 2 - число, що стоїть на місці елемента нової симплексної таблиці, який ми маємо розрахувати; 3 та 4 - елементи, що розміщуються в двох інших протилежних вершинах умовного прямокутника. Необхідний елемент нової симплекс-таблиці визначають так: Наприклад, визначимо елемент а24, який розміщується в новій таблиці в другому рядку стовпчика «Х4». Складемо умовний прямокутник: Тоді а24 = (3-2-2-2):3 = 2/3. Це значення записуємо в стовпчик «х4» другого рядка другої симплексної таблиці. Аналогічно розраховують усі елементи нової симплексної таблиці, у тому числі елементи стовпчика «План» та оцінкового рядка. Наявність двох способів визначення оцінок опорного плану (за правилом прямокутника та за відповідною формулою) дає змогу контролювати правильність арифметичних обчислень на кожному кроці симплекс-методу. Після заповнення нового оцінкового рядка перевіряємо виконання умови оптимальності для другого опорного плану. Цей план також неоптимальний, оскільки Δ1 = - 4/3. Використовуючи процедуру симплекс-методу, визначаємо третій опорний план задачі, який наведено у вигляді таблиці: В оцінковому рядку третьої симплексної таблиці немає від'ємних чисел, тобто всі Δ1 ≥ 0 і задовольняють умову оптимальності. Це означає, Що знайдено оптимальний план задачі: Х або Отже, план виробництва продукції, що передбачає випуск 48 одиниць продукції А та 118 од. продукції В, оптимальний і дає найбільший прибуток 1564 грн. При цьому час роботи технологічних ліній використовується повністю (х5= х6= 0). Задачу можна розв'язати симплекс-методом, узявши не три симплексні таблиці, а одну, в якій послідовно записувати всі ітерації. Приклад 2. Розв'язати задачу із додатковою умовою: продукція С має виготовлятися в кількості не менш як 9 одиниць. Розв'язування. Математичну модель сформульованої задачі запишемо так: Застосовуючи для розв’язування поставленої задачі симплекс - метод, спочатку записуємо систему обмежень у канонічній формі, а далі - у векторній: Зауважимо, що нерівність типу «>» у рівняння перетворюємо введенням у ліву частину обмеження додаткової змінної зі знаком «-». Векторна форма запису: Серед записаних векторів є лише Два одиничні - та , а базис у тривимірному просторі має складатися з трьох одиничних векторів. Ще один одиничний вектор можна дістати, увівши в третє обмеження з коефіцієнтом +1 штучну змінну х8 якій відповідатиме одиничний вектор: Тепер можемо розглянути розширену задачу лінійного програмування: На відміну від додаткових змінних штучна змінна має в цільовій функції Z коефіцієнт +М (для задачі на min) або -М (для задачі на max), де М - досить велике додатне число. У розширеній задачі базисними змінними є x5, х6, х8, а решта змінних вільні. Початковий опорний план задачі: Складемо першу симплексну таблицю задачі:
Розраховуючи оцінки першого опорного плану, дістаємо z0= 0 - 9М, Z1 – С1 = -8, Z2 – С2 = -10, Z3 - С3 = 0 - М і т. д. Як бачимо, значення оцінок складаються з двох частин, одна з яких містить М, а інша - просто число. Тому для зручності розбиваємо оцінковий рядок на два. У перший оцінковий рядок записуємо просто число, а в другий - число з коефіцієнтом М. Оцінки першого плану не задовольняють умову оптимальності, і тому він є неоптимальним. Згідно з алгоритмом, розглянутим у задачі 2.41, виконуємо перехід до наступного опорного плану задачі. Подальше розв'язування задачі наведене у вигляді таблиці: Оптимальним планом задачі є вектор X´= (57; 100; 9; 0; 0; 0; 0), Zmax = 8 × 57 + 10 × 100 + 0 × 9 – 5 × 0 = 1456 Отже, оптимальним є виробництво 57 одиниць продукції А, 100 одиниць продукції В і 9 одиниць продукції С. Тоді прибуток буде найбільшим і становитиме 1456 грн.
Дата добавления: 2014-11-29; Просмотров: 4115; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |