РефератыМатематикаСиСимплексний метод лінійного програмування

Симплексний метод лінійного програмування

Завдання 1



Кондитерська фабрика для виробництва трьох видів карамелі А1
, А2
, А3
використовує три види сировини: цукор-пісок, патоку і фруктове пюре. Норми використання сировини кожного виду на виробництво однієї тони карамелі подано в таблиці, відома також загальна кількість сировини кожного виду і прибуток від реалізації 1 тонни карамелі певного виду.


































Вид сировини


Норми витрат сировини (т) на 1 т карамелі


Об’єм сировини, т


А1


А2


А3


Цукор-пісок


0,8


0,5


0,6


1000


Патока


0,4


0,4


0,3


800


Фруктове пюре


-


0,1


0,1


150


Прибуток від реалізації 1 т продукції (грн. од.)


21


23


25



Розв’язок


Складаємо математичну модель задачі. Позначимо через х1
кількість карамелі 1-го виду, що виготовляє підприємство за деяким планом, а через х2
кількість карамелі 2-го виду та через х3
кількість карамелі 3-го виду. Тоді прибуток, отриманий підприємством від реалізації цих виробів, складає


∫ = 21х1
+23х2
+25х3
.


Витрати сировини на виготовлення такої кількості виробів складають відповідно:


CI
=0,8х1
+0,5х2
+0,6х3
,


CIІ
=0,4х1
+0,4х2
+0,3х3
,


CIІІ
=0х1
+0,1х2
+0,1х3
.


Оскільки запаси сировини обмежені, то повинні виконуватись нерівності:


0,8х1
+0,5х2
+0,6х3
≤1000


0,4х1
+0,4х2
+0,3х3
≤800


0х1
+0,1х2
+0,1х3
≤150.


Оскільки, кількість виробів є величина невід'ємна, то додатково повинні виконуватись ще нерівності: х1
> 0, х2
> 0, х3
>0.


Таким чином, приходимо до математичної моделі:


Знайти х1
, х2
, х3
такі, що функція ∫ = 21х1
+23х2
+25х3
досягає максимуму при системі обмежень:



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


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


0,8x1
+ 0,5x2
+ 0,6x3
+ 1x4
+ 0x5
+ 0x6
= 1000


0,4x1
+ 0,4x2
+ 0,3x3
+ 0x4
+ 1x5
+ 0x6
= 800


0x1
+ 0,1x2
+ 0,1x3
+ 0x4
+ 0x5
+ 1x6
= 150


де х1
,...,х6
>0


Матриця коефіцієнтів A = a(ij) цієї системи рівнянь має вигляд:



Базисні змінні це змінні, які входять лише в одне рівняння системи обмежень і притому з одиничним коефіцієнтом.


Вирішимо систему рівнянь відносно базисних змінних:


x4
, x5
, x6


Вважаючи, що вільні змінні рівні 0, отримаємо перший опорний план:


X1 = (0,0,0,1000,800,150)


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


Складаємо симплекс-таблицю:

























































План


Базис


В


x1


x2


x3


x4


x5


x6


min


1


x4


1000


0.8


0.5


0.6


1


0


0


1666.67


x5


800


0.4


0.4


0.3


0


1


0


2666.67


x6


150


0


0.1


0.1


0


0


1


1500


Індексний рядок


F(X1)


0


-21


-23


-25


0


0


0


0



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

























































План


Базис


В


x1


x2


x3


x4


x5


x6


min


2


x4


100


0.8


-0.1


0


1


0


-6


125


x5


350


0.4


0.1


0


0


1


-3


875


x3


1500


0


1


1


0


0


10


0


Індексний рядок


F(X2)


37500


-21


2


0


0


0


250


0



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

























































План


Базис


В


x1


x2


x3


x4


x5


x6


min


3


x1


125


1


-0.13


0


1.25


0


-7.5


0


x5


300


0


0.15


0


-0.5


1


0


2000


x3


1500


0


1


1


0


0


10


1500


Індексний рядок


F(X3)


40125


0


-0.63


0


26.25


0


92.5


0



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

























































План


Базис


В


x1


x2


x3


x4


x5


x6


min


4


x1


312.5


1


0


0.13


1.25


0


-6.25


0


x5


75


0


0


-0.15


-0.5


1


-1.5


2000


x2


1500


0


1


1


0


0


10


1500


Індексний рядок


F(X4)


41062.5


0


0


0.63


26.25


0


98.75


0



Оскільки всі оцінки >0, то знайдено оптимальний план, що забезпечує максимальний прибуток: х1
=312.5, х2
=1500. Прибуток, при випуску продукції за цим планом, становить 41062,5 грн.



Завдання 2


Записати двоїсту задачу до поставленої задачі лінійного програмування. Розв’язати одну із задач симплексним методом і визначити оптимальний план іншої задачі. Оптимальні результати перевірити графічно.




Розв’язок


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


Визначимо мінімальне значення цільової функції F(X)=5x1
+3x2
при наступних умовах-обмежень.


8x1
-14x2
≥14


3x1
+2x2
≥27


x2
≤11


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


8x1
-14x2
-1x3
+ 0x4
+ 0x5
= 14


3x1
+ 2x2
+ 0x3
-1x4
+ 0x5
= 27


0x1
+ 1x2
+ 0x3
+ 0x4
+ 1x5
= 11


Введемо штучні змінні x.


8x1
-14x2
-1x3
+ 0x4
+ 0x5
+ 1x6
+ 0x7
= 14


3x1
+ 2x2
+ 0x3
-1x4
+ 0x5
+ 0x6
+ 1x7
= 27


0x1
+ 1x2
+ 0x3
+ 0x4
+ 1x5
+ 0x6
+ 0x7
= 11


Для постановки задачі на мінімум цільову функцію запишемо так:


F(X) = 5x1
+3x2
+Mx6
+Mx7
=> min


Вважаючи, що вільні змінні рівні 0, отримаємо перший опорний план:


X1 = (0,0,0,0,11,14,27)

























































План


Базис


В


x1


x2


x3


x4


x5


х6


х7


0


х6


14


8


-14


-1


0


0


1


0


x7


27


3


2


0


-1


0


0


1


х5


11


0


1


0


0


1


0


0


Індексний рядок


F(X0)


0


0


0


0


0


0


0


0



Переходимо до основного алгоритму симплекс-методу.






























































План


Базис


В


x1


x2


x3


x4


x5


x6


х7


min


1


х6


14


8


-14


-1


0


0


1


0


1.75


x7


27


3


2


0


-1


0


0


1


9


х5


11


0


1


0


0


1


0


0


0


Індексний рядок


F(X1)


0


0


0


0


0


0


0


0


0



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






























































План


Базис


В


x1


x2


x3


x4


x5


x6


х7


min


2


х1


1.75


1


-1.75


-0.125


0


0


0.125


0


0


x7


21.75


0


7.25


0.375


-1


0


-0.375


1


3


х5


11


0


1


0


0


1


0


0


11


Індексний рядок


F(X2)


0


0


0


0


0


0


0


0


0



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

























































План


Базис


В


x1


x2


x3


x4


x5


x6


х7


3


х1


7


1


0


-0.0345


-0.2414


0


0.0345


0.2414


x2


3


0


1


0.0517


-0.1379


0


-0.0517


0.1379


х5


8


0


0


-0.0517


0.1379


1


0.0517


-0.1379


Індексний рядок


F(X3)


0


0


0


0


0


0


0


0



Оптимальний план можна записати так:


x1
= 7


x2
= 3


x5
= 8


F(X) = 5*7 + 3*3 = 44


Складемо двоїсту задачу до поставленої задачі лінійного програмування.


8y1
+3y2
≤5


-14y1
+2y2
+y3


≤3


14y1
+27y2
+11y3
=> max


y1
≥ 0


y2
≥ 0


y3
≤ 0


Рішення двоїстої задачі дає оптимальну систему оцінок ресурсів. Використовуючи останню інтеграцію прямої задачі знайдемо, оптимальний план двоїстої задачі. Із теореми двоїстості слідує, що Y = C*A-1
.


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



Визначивши обернену матрицю А-1
через алгебраїчне доповнення, отримаємо:



Як видно із останнього плану симплексної таблиці, обернена матриця A-1
розміщена у стовбцях додаткових змінних.


Тоді Y = C*A-1
=


Запишемо оптимальний план двоїстої задачі:


y1
= 0.02


y2
= 1.62


y3
= 0


Z(Y) = 14*0.02+27*1.62+11*0 = 44


Завдання 3


Розв’язати транспортну задачу.






























5


2


3


6


1


200


1


1


4


4


2


150


4


3


1


2


1


350


110


170


200


180


110



Розв’язок


Побудова математичної моделі
. Нехай xij
— кількість продукції, що перевозиться з і-го пункту виробництва до j-го споживача . Оскільки , то задачу треба закрити, тобто збалансувати (зрівняти) поставки й потреби:




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


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


Занесемо вихідні дані у таблицю


















































В1


В2


В3


В4


В5


Запаси


А1


5


2


3


6


1


200


А2


1


1


4


4


2


150


А3


4


3


1


2


1


350


А4


0


0


0


0


0


70


Потреби


110


170


200


180


110



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



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


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



Загальні витрати, пов’язані з транспортуванням продукції, визначаються як сума добутків обсягів перевезеної продукції на вартості транспортування од. продукції до відповідного замовника і за умовою задачі мають бути мінімальними. Тому формально це можна записати так:


minZ=5x11
+2x12
+3x13
+6x14
+1x15
+1x21
+1x22
+4x23
+4x24
+2x25
+4x31
+3x32
+1x33


+2x34
+ +1x35
+0x41
+0x42
+0x43
+0x44
+0x45
.


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


minZ=5x11
+2x12
+3x13
+6x14
+1x15
+1x21
+1x22
+4x23
+4x24
+2x25
+4x31
+3x32
+1x33


+2x34
+ +1x35
+0x41
+0x42
+0x43
+0x44
+0x45
.


за умов:



Запишемо умови задачі у вигляді транспортної таблиці та складемо її перший опорний план у цій таблиці методом «північно-західного кута».




















































Ai


Bj


ui


b1
= 110


b2
= 170


b3
= 200


b4
=180


b5
=110


а1
= 200


5


110


2


[-] 90


3


6


1


[+]


u1
= 0


а2
= 150


1


1


[+] 80


4


[-] 70


4


2


u2
= -1


а3
= 350


4


3


1


[+] 130


2


180


1


[-] 40


u3
= -4


а4
= 70


0


0


0


0


0


70


u4
= -5


vj


v1
= 5


v2
= 2


v3
= 5


v4
= 6


v5
= 5



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


Підрахуємо число зайнятих клітин таблиці, їх 8, а має бути m+n-1=8. Отже, опорний план є не виродженим.


Перевіримо оптимальність опорного плану. Знайдемо потенціали ui
, vi
. по зайнятих клітинам таблиці, в яких ui
+ vi
= cij
, вважаючи, що u1
= 0:


u1
=0, u2
=-1, u3
=-4, u4
=-5, v1
=5, v2
=2, v3
=5 v4
=6, v5
=5.


Ці значення потенціалів першого опорного плану записуємо у транспортну таблицю.


Потім згідно з алгоритмом методу потенціалів перевіряємо виконання другої умови оптимальності ui
+ vj
≤ cij
(для порожніх клітинок таблиці).


Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui
+ vi
> cij


(1;3): 0 + 5 > 3


(1;5): 0 + 5 > 1


(2;1): -1 + 5 > 1


(2;4): -1 + 6 > 4


(2;5): -1 + 5 > 2


(4;4): -5 + 6 > 0


Тому від нього необхідно перейти до другого плану, змінивши співвідношення заповнених і порожніх клітинок таблиці. Вибираємо максимальну оцінку вільної клітини (А1
B5
): 1. Для цього в перспективну клітку (1;5) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.


Тепер необхідно перемістити продукцію в межах побудованого циклу. З вантажів хij
що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (3;5) = 40. Додаємо 40 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 40 з хij
, що стоять в мінусових клітинах. В результаті отримаємо новий опорний план.


Для цього у порожню клітинку А1
B4
переносимо менше з чисел хij
, які розміщені в клітинках зі знаком «–». Одночасно це саме число хij
додаємо до відповідних чисел, що розміщені в клітинках зі знаком «+», та віднімаємо від чисел, що розміщені в клітинках, позначених знаком «–».


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


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




















































Ai


Bj


ui


b1
= 110


b2
= 170


b3
= 200


b4
=180


b5
=110


а1
= 200


5


110


2


[-] 50


3


6


1


[+] 40


u1
= 0


а2
= 150


1


1


[+] 120


4


[-] 30


4


2


u2
= -1


а3
= 350


4


3


1


[+] 170


2


[-] 180


1


u3
= -4


а4
= 70


0


0


0


0


[+]


0


[-] 70


u4
= -1


vj


v1
= 5


v2
= 2


v3
= 5


v4
= 6


v5
= 1



Перевіримо оптимальність опорного плану. Знайдемо потенціали ui
, vi
. по зайнятих клітинам таблиці, в яких ui
+ vi
= cij
, вважаючи, що u1
= 0.


Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui
+ vi
> cij


(1;3): 0 + 5 > 3


(2;1): -1 + 5 > 1


(2;4): -1 + 6 > 4


(4;1): -1 + 5 > 0


(4;2): -1 + 2 > 0


(4;3): -1 + 5 > 0


(4;4): -1 + 6 > 0


Вибираємо максимальну оцінку вільної клітини (А4
B4
): 0


Для цього в перспективну клітку (А4
B4
) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.


З вантажів хij
що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (А2
B3
) = 30. Додаємо 30 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 30 з Хij
, що стоять в мінусових клітинах. В результаті отримаємо новий опорний план.




















































Ai


Bj


ui


b1
= 110


b2
= 170


b3
= 200


b4
=180


b5
=110


а1
= 200


5


[-] 110


2


20


3


6


1


[+] 70


u1
= 0


а2
= 150


1


1


150


4


4


2


u2
= -1


а3
= 350


4


3


1


200


2


150


1


u3
= 1


а4
= 70


0


[+]


0


0


0


30


0


[-] 40


u4
= -1


vj


v1
= 5


v2
= 2


v3
= 0


v4
= 1


v5
= 1



Перевіримо оптимальність опорного плану. Знайдемо потенціали ui
, vi
. по зайнятих клітинам таблиці, в яких ui
+ vi
= cij
, вважаючи, що u1
= 0.


Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui
+ vi
> cij


(2;1): -1 + 5 > 1


(3;1): 1 + 5 > 4


(3;5): 1 + 1 > 1


(4;1): -1 + 5 > 0


(4;2): -1 + 2 > 0


Вибираємо максимальну оцінку вільної клітини (А4
B1
): 0


Для цього в перспективну клітку (А4
B1
) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.


З вантажів хij
що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (А4
B5
) =40. Додаємо 40 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 40 з Хij
, що стоять в мінусових клітинах.


В результаті отримаємо новий опорний план.




















































Ai


Bj


ui


b1
= 110


b2
= 170


b3
= 200


b4
=180


b5
=110


а1
= 200


5


[-] 70


2


[+] 20


3


6


1


110


u1
= 0


а2
= 150


1


[+]


1


[-] 150


4


4


2


u2
= -1


а3
= 350


4


3


1


200


2


150


1


u3
= -3


а4
= 70


0


40


0


0


0


30


0


110


u4
= -5


vj


v1
= 5


v2
= 2


v3
= 4


v4
= 5


v5
= 1



Перевіримо оптимальність опорного плану. Знайдемо потенціали ui
, vi
. по зайнятих клітинам таблиці, в яких ui
+ vi
= cij
, вважаючи, що u1
= 0.


Опорний план не є оптимальним, тому що існують оцінки вільних клітин для яких ui
+ vi
> cij


(1;3): 0 + 4 > 3


(2;1): -1 + 5 > 1


Вибираємо максимальну оцінку вільної клітини (А2
B1
): 1


Для цього в перспективну клітку (А2
B1
) поставимо знак «+», а в інших вершинах багатокутника чергуються знаки «-», «+», «-». Цикл наведено в таблиці.


З вантажів хij
що стоять в мінусових клітинах, вибираємо найменше, тобто у = min (А1
B1
) =70. Додаємо 70 до обсягів вантажів, що стоять в плюсових клітинах і віднімаємо 70 з Хij
, що стоять в мінусових клітинах.


В результаті отримаємо новий опорний план.




















































Ai


Bj


ui


b1
= 110


b2
= 170


b3
= 200


b4
=180


b5
=110


а1
= 200


5


2


90


3


6


1


110


u1
= 0


а2
= 150


1


70


1


80


4


4


2


u2
= -1


а3
= 350


4


3


1


200


2


150


1


u3
= 0


а4
= 70


0


40


0


0


0


30


0


110


u4
= -2


vj


v1
= 2


v2
= 2


v3
= 1


v4
= 2


v5
= 1



Перевіримо оптимальність опорного плану, тобто повторюємо описані раніше дії.


Знайдемо потенціали ui
, vi
. по зайнятих клітинам таблиці, в яких ui
+ vi
= cij
, вважаючи, що u1
= 0.


Перевірка останнього плану на оптимальність за допомогою методу потенціалів показує, що він оптимальний.


Розрахуємо значення цільової функції відповідно до другого опорного плану задачі:


F(x) = 2*90 + 1*110 + 1*70 + 1*80 + 1*200 + 2*150 + 0*40 + 0*30 = 940


За оптимальним планом перевезень загальна вартість перевезень всієї продукції є найменшою і становить 940 грн.


симплексний прибуток транспортування витрати


Завдання 4


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






.


Розв’язок


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



Межі області



Цільова функція F(x) => min


Розглянемо цільову функцію завдання F = 3X1+6X2 => min.


Побудуємо пряму, що відповідає значенню функції F = 0: F = 3X1+6X2 = 0. Будемо рухати цю пряму паралельним чином. Оскільки нас цікавить мінімальне рішення, тому рухався прямо до першого торкання позначеної області. На графіку ця пряма позначена пунктирною лінією.



Рівний масштаб



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


Пряма F(x) = const перетинає область у точці C. Оскільки точка C отримана в результаті перетину прямих 4 i 2, то її координати задовольняють рівнянням цих прямих:


x2=0


x1+2x2≥2


Вирішивши систему рівнянь, одержимо: x1 = 2, x2 = 0


Звідки знайдемо мінімальне значення цільової функції:


F(X) = 3*2 + 6*0 = 6


Оскільки функція мети F(x) паралельна прямій 2, то на відрізку CA функція F (x) буде приймає одне і теж мінімальне значення.


Для визначення координат точки A вирішимо систему двох лінійних рівнянь:


x1+2x2≥2


x1=0


Вирішивши систему рівнянь, одержимо: x1 = 0, x2 = 1


Звідки знайдемо мінімальне значення цільової функції:


F(X) = 3*0 + 6*1 = 6

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:5721
Символов:65102
Размер:127.15 Кб.