Розв’язання лінійних задач методами лінійного програмування

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Чернігівський державний технологічний університет Кафедра вищої математики Контрольна робота з дисципліни: Математичне програмування

Варіант 06

Чернігів 2009

Зміст

Завдання №1

Завдання №2

Завдання №3

Завдання №4

Завдання №5

Список використаних джерел

Завдання №1

Звести до канонічної форми задачу лінійного програмування:

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

Еквівалентна рівнянню

і нерівності

А нерівність вигляду

Еквівалентна рівнянню

, в якому

Враховуючи наведене вище дану задачу запишемо у наступній канонічній формі:

Завдання №2

Визначити оптимальний план задачі лінійного програмування графічним методом (знайти максимум і мінімум функції):

Для задач з двома змінними можна використовувати графічний спосіб розв’язку задач лінійного програмування. Побудуємо область допустимих розв’язків системи лінійних нерівностей. Для цього будуємо відповідні даним нерівностям граничні прямі:

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

Рисунок1- Графічне визначення максимального і мінімального значення функції

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

Не співпадає з площиною, утвореною обмеженнями

.

Завдання №3

Побудувати двоїсту задачу. Симплексним методом знайти оптимальний план початкової задачі. Використовуючи першу теорему двоїстості, визначити план другої задачі.

Для перетворення нерівностей в рівності вводимо змінні одиничні матриці х3 , х4 і х5 . Для розв’язку задачі симплексним методом необхідно мати три одиничних матриці при невід’ємних правих частинах рівнянь. Для отримання одиничної матриці в першій і третій нерівностях вводимо введемо штучні змінну х6 і х7 та отримаємо одиничні матриці А6 і А7 . Де

і

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

У виразі функції величину М вважаємо достатньо великим додатнім числом, оскільки задача розв’язується на знаходження мінімального значення функції.

Запишемо задачу у векторній формі:

Де

В якості базису вибираємо одиничні вектори А6 , А4 , А7 . Вільні невідомі прирівнюємо нулю . В результаті отримаємо початковий опорний план розширеної задачі

,

Якому відповідає розкладення

Для перевірки початкового опорного плану складаємо першу симплексну таблицю (таблиця1) і підраховуємо значення функції і оцінок Маємо:

Тобто оскільки М попередньо не фіксовано, то оцінки є лінійними функціями величини М, причому функція складається з двох доданків, одне з яких залежить від М, інше не залежить. Для зручності розрахунків в (F-C) рядок запишемо доданок, незалежний від М, а в (М) рядок – тільки коефіцієнти при М, які і дозволяють порівняти оцінки між собою. Для векторів базису оцінки дорівнюють нулю.

Таблиця1- Перша симплексна таблиця

БазисС базисуА0
Х1Х2Х3Х4Х5Х6Х7
Х6М81-10010
Х40203401000
Х7М63100-101
F-C0-5-200000
М1444-10-100

В (М) рядку є додатні оцінки, тому опорний план Х0 не є оптимальним і його можна покращити, включивши в базис вектор, якому відповідає . Оскільки у нас максимальне значення 4 належить двом векторам, то в базис включаємо вектор, якому відповідає мінімальне Сj. Розв’язувальним рядком вибирається той, в якому найменше відношення Серед коефіцієнтів розкладання векторів А1 і А2 по базису є додатні, тому хоча б один з векторів існує.. Знайдемо ці значення:

;

Таким чином підтвердилося, що розв’язувальним стовпчиком буде другий, і визначилося, що розв’язувальним рядком буде перший. Тобто розв’язувальний елемент – число 3. Тоді вектор А2 включаємо в базис, а вектор А6 виключаємо з нього.

Складаємо другу симплексну таблицю (таблиця2). При цьому елементи першого (розв’язувального) рядка ділимо на 3. Елементи інших рядків визначаємо використовуючи формули повного виключення Йордана-Гауса.

Таблиця2- Друга симплексна таблиця

БазисС базисуА0
Х1Х2Х3Х4Х5Х6Х7
Х222,670,331-0,33000,330
Х409,331,6701,3310-1,330
Х7М3,3300,330-1-0,331
F-C5,33-4,330-0,67000,670
М3,332,6700,330-1-1,330

В (М) рядку є додатні оцінки, тому план, зображений в таблиці2 не є оптимальним і його можна покращити, включивши в базис вектор, якому відповідає . Тобто за розв’язувальний стовпчик вибираємо перший. Мінімальне відношення

Тому розв’язувальним рядком є третій. Таким чином розв’язувальний елемент – число 2,67. Тоді вектор А1 включаємо в базис, а вектор А7 виключаємо з нього.

Складаємо другу симплексну таблицю (таблиця3). При цьому елементи третього (розв’язувального) рядка ділимо на 2,67. Елементи інших рядків визначаємо використовуючи формули повного виключення Йордана-Гауса.

Таблиця3- Третя симплексна таблиця

БазисС базисуА0
Х1Х2Х3Х4Х5Х6Х7
Х222,2501-0,37500,1250,375-0,125
Х407,25001,12510,625-1,125-0,625
Х151,25100,1250-0,375-0,1250,375
F-C10,7500-0,1250-1,6250,1251,625
М000000-1-1

В результаті проведеної ітерації з базису виключено штучні елементи, тому в рядку (М)всі оцінки, крім оцінки штучного вектору, перетворилися на нуль. Оскільки в рядках (F-C) і (М) не має додатних значень, то знайдене рішення

()

Є оптимальним. Функція при цьому

Перевірка

Кожній задачі лінійного програмування можна поставити у відповідність двоїсту задачу. Для цього першим кроком необхідно впорядкувати запис вихідної задачі. Оскільки у нас функція мінімізується, то всі умови-нерівності повинні бути вигляду . Виконання цієї умови досягаємо множенням відповідних умов на (1-). В результаті система обмежень матиме наступний вигляд:

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

Складаємо матрицю при невідомих вихідної задачі:

,

Тоді матриця при невідомих двоїстої задачі матиме наступний вигляд:

На накладено умову невід’ємності, тому обмеження двоїстої задачі матимуть вигляд нерівності, а не рівності. Оскільки в початковій задачі всі обмеження мають вигляд нерівності, то накладаємо умови

Враховуючи все наведене, двоїста задача матиме наступний вигляд:

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

Завдання №4

Визначити оптимальний план транспортної задачі:

А) побудувати початковий опорний план методом “північно-західного” напрямку;

Б) побудувати оптимальний план методом потенціалів:

Нехай в матриці А міститься інформація про кількість продукту в кожному місці виробництва, який необхідно доставити споживачам в кількості записаній в матриці В. Транспортні витрати, пов’язані з перевезенням одиниці продукту із одного місця виробництва одному споживачеві, записані в матриці С. Задані матриці і сказане вище для спрощення сприйняття узагальнимо в таблиці4.

Таблиця4-Поставка продукту із різних місць виробництва різним споживачам і пов’язані з цим витрати

ВиробникСпоживачЗапаси продукту
833460
527520
548230
715720
Потреба в продукті40303015

130

115

З таблиці4 видно, що запаси продукту у виробника на складах на 15 одиниць більші ніж необхідно споживачу, тобто маємо транспортну задачу з відкритою моделлю. Для розв’язку такої задачі введемо фіктивного споживача, якому необхідно отримати одиниць продукту. Всі тарифи на доставку продукту цьому споживачеві будемо вважати рівними нулю, і весь продукт потрібний цьому споживачеві залишаємо у місці виробництва. Для побудови початкового плану перевезень (таблиця5) використаємо метод “північно-західного” напрямку: заповнювати таблицю починаємо з лівого верхнього кута, рухаючись вниз по стовбцю або вправо по рядку (тарифи перевезень напишемо в правому верхньому куту кожної клітини, кількість продукту – в нижньому лівому). В першу клітину заносимо менше з чисел (min(40;60): 40. Тобто потреба в продукті першого споживача повністю задовільнено і інші клітини першого стовпця заповнювати не будемо. Рухаємося далі по першому рядку в другий стовпчик. В цю клітину записуємо менше з 30 і (60-40), тобто пишемо 20. Таким чином перший рядок заповнювати далі не будемо, оскільки запаси першого місця виробництва остаточно вичерпано: з нього ми повністю задовольняємо потребу у продукті першого споживача і частково (20 одиниць, а не 30) другого. Рухаємося по другому стовпчику на другий рядок. Сюди записуємо менше з (30-20) або 20: маємо 10, тобто другому споживачеві ми веземо 20одиниць продукту з першого місця виробництва і 10- з другого. Аналогічно заповнюємо інші клітини.

Таблиця5- Розподіл продукту по споживачам

ВиробникСпоживачЗапаси продукту
8334060
4020
5275020
1010
5482030
2010
7157020
515
Потреба в продукті4030301515130

Таким чином, в таблиці5 отримали початковий опорний план, транспортні витрати за яким складають:

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

Для визначення оптимального плану перевезень використаємо метод потенціалів. Для цього кожному виробнику Аі (кожному рядку) ставимо у відповідність деяке число а кожному споживачу Ві (кожному стовпчику)- деяке число На основі таблиці5 складемо таблицю6, в якій додамо один стовпчик і один рядок для написання величини параметрів І . Їх знаходимо використовуючи першу умову оптимальності транспортної задачі: (для кожної зайнятої клітини сума потенціалів повинна дорівнювати вартості одиниці перевезення, що записана в цій клітині).

Таблиця6- Перевірка оптимальності опорного плану

ВиробникСпоживачЗапаси продукту
83340600
4020
5275020-1
1010
54820300
2010
71570205
515
Потреба в продукті4030301515130×
8382-5××

Систему потенціалів можна побудувати лише для невирожденого опорного плану. Такий план містить m+n-1 лінійно незалежних рівнянь виду з m+n невідомими (де m – кількість постачальників, n – кількість споживачів). Рівнянь на одне менше, ніж невідомих, тому система є невизначеною і для її розв’язку одному невідомому (нехай ним буде u1 ) придамо нульове значення.

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

З розрахунків бачимо, що умова оптимальності не виконується для клітин, А1 В3 , А2 В1 , А3 В1 , А4 В1 , А4 В2 , і А4 В3 . Клітину, в якій додатне число отримали максимальним (А2 В3 , оскільки max(5;2;3;6;7;8)=8) зробимо зайнятою, для цього побудуємо цикл і отримуємо таблицю7.

Таблиця7- Другий крок пошуку оптимального рішення

ВиробникСпоживачЗапаси продукту
83340600
4020
5275020-1
1010
54820300
1515
7157020-3
515
Потреба в продукті4030301515130×
83823××

Транспортні витрати при такому плані перевезення складають:

Перевірка всіх вільних клітин:

Отримали від’ємні значення у всіх клітинах окрім А1 В3 (5), А1 В5 (3), А2 В1 (2), А2 В5 (2), А3 В1 (3) і А3 В5 (3). Максимальне значення max(5;3;2;2;3;3)=5в клітині А1 В3 , тому заповнюємо і цикл будуємо для неї (цикл показано в таблиці7, результат дій в таблиці8).

Таблиця8- Третій крок пошуку оптимального рішення

ВиробникСпоживачЗапаси продукту
8334060
401010
5275020-1
20
54820305
1515
71570202
515
Потреба в продукті4030301515130×
833-3-2××

Транспортні витрати:

Тобто при такому плані перевезення товару транспортні витрати знизилися на 50грн. в порівнянні з попереднім планом перевезення. Але, щоб визначити є отриманий план оптимальним чи ні, виконаємо перевірку.

Перевірку всіх вільних клітин зобразимо в таблиці9, в якій для всіх вільних клітин запишемо різницю між сумою потенціалів і транспортними витратами в клітині.

Таблиця9- Перевірка плану отриманого в результаті третього кроку пошуку оптимального рішення задачі

-7-2
2-5-9-3
843
34-8

З таблиці9 видно, що додатне значення отримали для клітин А2 В1 (2), А3 В1 (8), А3 В2 (4), А3 В5 (3), А4 В1 (3) і А4 В2 (4). Максимальне значення max(2;8;4;3;3;4)=8в клітині А3 В1 , тому заповнюємо і цикл будуємо для неї (цикл показано в таблиці8, результат дій в таблиці10).

Таблиця1- Четвертий крок пошуку оптимального рішення задачі

ВиробникСпоживачЗапаси продукту
83340600
251025
5275020-1
20
5482030-3
1515
71570202
515
Потреба в продукті4030301515130×
8335-2××

Транспортні витрати:

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

Перевірка всіх вільних клітин наведена в таблиці11.

Таблиця11- Різниця між сумою потенціалів і транспортними витратами для вільних клітин

1-2
2-5-1-3
-4-8-5
340

План, зображений в таблиці10 не є оптимальним, оскільки отримали додатні значення в клітинах А1 В4 (1), А2 В1 (2), А4 В1 (3), А4 В2 (4). Заповнюємо клітину А4 В2 і будуємо опорний план (таблиця12).

Таблиця12- П’ятий крок пошуку оптимального рішення задачі

ВиробникСпоживачЗапаси продукту
83340600
25530
5275020-1
20
5482030-3
1515
7157020-2
515
Потреба в продукті4030301515130×
83352××

Транспортні витрати за отриманим планом перевезень складають:

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

Перевірка всіх вільних клітин здійснена в таблиці 13.

Таблиця13- Різниця між сумою потенціалів і транспортними витратами для вільних клітин

12
2-5-11
-4-8-1
-1-4-4

Оскільки в результаті розрахунків отримали додатні значення, то знову будуємо цикл і заповнюємо необхідну клітину. В даному випадку це буде або клітина А2 В1 або клітина А1 В5 . Вибираємо останню, оскільки транспортні витрати на перевезення в ній менші. На від’ємних кутах циклу об’єм перевезень становить 10 і 0. Оскільки min(10;0)=0, то всі клітини залишаються незмінними і лише клітина з нульовим перевезенням переходить з А4 В5 на А1 В5 .

Новий план зображено в таблиці14.

Таблиця14- Шостий крок пошуку оптимального рішення задачі

ВиробникСпоживачЗапаси продукту
83340600
25305
5275020-1
20
5482030-3
1515
71570200
1010
Потреба в продукті4030301515130×
81350××

Транспортні витрати за отриманим планом перевезень складають:

Розрахунки для перевірка всіх вільних клітин здійснені в таблиці 15:

Таблиця15- Різниця між сумою потенціалів і транспортними витратами для вільних клітин

-21
4-311
-6-8-3
1-2-2

З таблиці15 видно, що максимальне додатне значення отримали для клітини А2 В1 , тому заповнюємо її будуючи для неї цикл, який показано в таблиці14. Результат дій в таблиці16.

Таблиця16- Сьомий крок пошуку оптимального рішення задачі

ВиробникСпоживачЗапаси продукту
83340600
153015
5275020-3
1010
5482030-3
1515
7157020-4
20
Потреба в продукті4030301515130×
85350××

Транспортні витрати:

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

Перевірка всіх вільних клітин наведена в таблиці17.

Таблиця17- Різниця між сумою потенціалів і транспортними витратами для вільних клітин

21
-7-3-3
-2-8-3
-3-6-6-4

План, зображений в таблиці8 не є оптимальним, оскільки отримали додатні значення в клітинах А1 В2 (2) і А1 В4 (1). Заповнюємо клітину А1 В2 і будуємо опорний план (таблиця18).

Таблиця18- Восьмий крок пошуку оптимального рішення задачі

ВиробникСпоживачЗапаси продукту
83340600
5103015
5275020-3
20
5482030-3
1515
7157020-2
20
Потреба в продукті4030301515130×
83350××

Транспортні витрати за отриманим планом перевезень складають:

Що на 20грн. економніше попереднього варіанту розвезення продукції від постачальників до споживачів. Перевірка всіх вільних клітин здійснена в таблиці 19.

Таблиця19- Різниця між сумою потенціалів і транспортними витратами для вільних клітин

1
-2-7-3-3
-4-8-3
-1-4-4-2

Оскільки в результаті розрахунків отримали додатне значення в єдиній клітині А1 В4 , то будуємо цикл і заповнюємо її. Новий план зображено в таблиці20.

Таблиця20- Дев’ятий крок пошуку оптимального рішення задачі

ВиробникСпоживачЗапаси продукту
83340600
1030515
5275020-2
20
5482030-2
2010
7157020-2
20
Потреба в продукті4030301515130×
73340××

Розрахунки для перевірка всіх вільних клітин здійснені в таблиці 21:

Таблиця21- Різниця між сумою потенціалів і транспортними витратами для вільних клітин

-1
-1-6-3-2
-3-7-2
-2-4-5-2

Рішення, зображене в таблиці20 є оптимальним, оскільки для кожної незайнятої клітини сума потенціалів менша вартості перевезень, що знаходиться у відповідній клітинці. Транспортні витрати по оптимальному плану перевезень становлять:

Знайдений оптимальний план покращив результат діяльності у порівнянні з початковим (зменшив транспортні витрати) на 685-380=305гривень.

Список використаних джерел

1. Кузнецов Ю. Н. Математическое программирование. Учебное пособие для вузов – М.: Высшая школа, 1976.- 352с.

2. Кузнецов А. В., Холод Н. И., Костевич Л. С. Руководство к решению задач по математическому программированию.- Мн.: Высш. школа, 1978.- 256с.


1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...
Розв’язання лінійних задач методами лінійного програмування