Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
879.1 Кб
Скачать

6.7 Застосування еом для розв'язання задач лп

Аналіз попереднього матеріалу свідчить, що без застосування ЕОМ розв'язання задачі ЛП є дуже складним, потребує багато часу і проведення багаточисельних однотипових розрахунків. Обсяг роботи особливо зростає при збільшенні числа змінних задачі. Тому практичне застосування ЛП неможливо без використання ЕОМ, що мас відповідне програмне забезпечення.

Одним з найбільш простих і універсальних програмних продуктів, за допомогою якого можливе вирішення задач ЛП, є пакет програм сімейства ЕXCEL фірми Microsoft. В даний час найбільш популярними є версії ЕXCEL - 6, 7, 97, що працюють під управлінням операційної системи Windows 95/98. Зокрема, для вирішення задач оптимізації в EXCEL є програмний інструмент SOLVER (Пошук рішення), що здійснює пошук оптимуму згідно формули, що введена в так звану "цільову клітинку" електронної таблиці EXCEL. Цільова клітинка має посилання на деякі клітинки, де знаходяться змінні, що оптимізуються. Крім того, є також чекілька обмежувальних клітинок, що задовольняють відповідним умовам обмеження на змінні, що оптимізуються. Розглянемо підготовчий етап вводу даних, а потім процедуру пошуку оптимуму за допомогою програми SOLVER.

Вихідні дані вводяться в стандартну електронну таблицю EXCEL (див. рис.6.2)

£айл Правка Вид Вставка Формат Сервис Данньїе Окно ?

All

*|

s

A

В

c

D

E

F

G

H

I

1 Xj

Cj

a1j

a2j

a3j

a4j

a5j

a6j

2 0

5

2

1

-1

0

0

0

3 0

1

0

1

0

0

0

0

4 0

-1

3

2

1

0

0

0

5 0

4

0

0

1

0

0

0

й 0

2

1

0

0

0

0

0

7 0

1000

0

0

0

0

0

0

8 L-

0

bi-

0

0

0

0

0

0

9

Рис.6 2 Приклад програмування задач ЛП у середовищі EXCEL-97

Ця таблиця є заготівкою для розв'язання задач ЛП (в даному випадку для п < 6, що відповідає кількості рядів, і для m <, 6, що відповідає кількості колонок а^).

Перший ряд є інформаційним і містить інформацію про призначення кожної колонки.

В першу колонку (А) заносяться початкові значення х,...х6 в клітинки від А2 до А7. Клітинки від В2 до В7 призначені для запису відповідних коефіцієнтів цільової функції (від с1, до с6), колонки D, E, F, G, Н, І в відповідних клітинках містять коефіцієнти обмежень аij (спочатку перше обмеження, потім друге і т.д.).

Восьмий ряд (клітинка В8) містить значення цільової функції L, у клітинках від D8 до 18 містяться вільні члени обмежень (праві частини кожного обмеження).

В якості приклада в таблицю рис.6.2 занесена задача ЛП згідно (6.34) і (6.35), що має розмірність n = 5 і m = 3. В початковій таблиці, оскільки ми не знаємо ще оптимальних значень хij в колонку А заносимо нулі. В

колонці В для неіснуючих змінних (при і > п) заносяться великі значення Cj (наприклад, 1000) при пошуку MIN, або - 1000 при пошуку МАХ. Коефіцієнти а. для неіснуючих змінних і обмежень приймаються нульовими також.

Праві частини обмежень (значення bj) можуть бути введені чи

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

В клітинці В8 заноситься формула для розрахунку цільової функції:

=А2*В2 + АЗ*ВЗ + ... + А7*В7

В клітинках D8...I8 вводяться ідентичні обмеженням формули Напишемо тільки перше обмеження в клітинці D8):

=A2*D2 + A3*D3 + ... + A7*D7, і т.д.

Після внесення початкових даних і формул за допомогою "миші" активізується клітинка цільової функції (в даному випадку В8), потім в верхньому рядку стандартного EXCEL вікна вибирається "Tools" ("Сервіс"). В пропонованих опціях активізуємо Solver ("Пошук рішення"). При цьому з'являється діалогове вікно Solver Parameters ("Пошук рішення"). В текстове поле Set Target Cell ("Встановити цільову ячейку") звести адресу цільової клітинки (в даному випадку В8). В групі Equal to ("Рівний") встановлюється необхідний перемикач (MAX, MIN) та опція Value of ("Значення"), що дорівнює нулю. В поле By changing Cell ("Змінюючи ячейки") ввести адреси клітинок, що мають оптимізуватися (від А2 до А7, відокремлюючи їх комою). В полі обмежень ввести, починаючи з D8, характер обмеження (>, <, =, = <, = >) і значення обмежень. Максимальне число обмежень дорівнює 100, число змінних, що оптимізується не повинно перевищувати 200.

Після того, як всі необхідні обмеження виконані, натиснути на кнопку Solve ("Виконати"), при цьому з'явиться діалогове вікно Solver Results ("Результат пошуку рішення"), з інформацією про те, знайдено чи не найдено оптимальне рішення. Якщо Solver знайде оптимальне рішення, можливо встановити опцію Keep Solver Solution ("Зберегти знайдене рішення") і натиснути кнопку ОК. Для відмови від нових рішень вибрати Restore Original Values ("Відновити початкове значення") і натиснути кнопку або ОК або Cancel ("Відмінити").

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

A3 => Х2 = 1,333; А4 => Х3 = 3,333; А5 => Х4 = 1,666

Решта значень залишиться рівними нулю. При цьому в клітинках обмежень з'являться:

D8=> b1, =10; E8=> b2 =8; F8=> b3 =4,

а в клітинці цільової функції В8 => L = 0,666.

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

усіх можливих процесів складання базового рішення, його перетворен шляхом заміни базових і вільних змінних згідно з індексним рядом таблиці, з вказівкою кожного разу ключового ряду, ключової колонки та ключового числа, з вказівкою змінних, що замінюють поточне значення цільової функції, що поступово має наближатися до свого оптимуму (МАХ чи MIN за бажанням оператора ЕОМ). Програма побудована за принципом діалогу ЕОМ і оператора, роль якого в процесі рішення зводиться до необхідних вказівок ЕОМ щодо можливих шляхів розв'язання задачі.

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

  • симплекс-метод рішення задач ЛП;

  • транспортна задача;

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

  • оптимізація раціону харчування;

- оптимізація завантаження обладнання при виробництві деякої продукції;

- оптимізація режимів різання металів;

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

Після вибору першої задачі "симплекс-метод" з'являється табло вводу даних. Введенню підлягають: кількість змінних, що оптимізуються (n); кількість обмежень (m); величини обмежень (bi) та коефіцієнти обмежень (aij). Зауважимо, що програма OPTIMA розв'язує лише задачі ЗЗЛП, тому при наявності обмежень у вигляді нерівностей необхідно вводити додаткові змінні, що переводять нерівності в рівності.

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

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

Можливо і найбільш просто вирішувати задачі ЛП за допомогою програмного продукту MATHCAD. В цьому випадку існує декілька методів складання програми розрахунків, серед яких найбільш поширеним і простим є метод розрахунків за допомогою вбудованого оператору Given. Приклад складання програми пошуку оптимальних значень рішення задачі ЛП у середовище MATHCAD-2000 наведено на рис.6.3.

Рішення задач лінійного програмування

X1:=0 X2:=0 X3:=0

Given

R:=Maximize(f, X1, X2, X3)

Рис.6.3 Приклад програми розрахунків задачі ЛП у середовищі MATHCAD-2000

Програма написана натуральною математичною мовою і не потребує податкових пояснень. Цільова функція при цьому ма€ вигляд:

,

при обмеженнях

Вектор оптимального рішення R = {Х1,Х2,ХЗ} має при цьому складові, що дорівнюють: Х1=10; Х2=35,59; ХЗ=130,505.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]