Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по ДО.doc
Скачиваний:
13
Добавлен:
26.10.2018
Размер:
1.56 Mб
Скачать

29. Спеціалізовані пакети оптимізації і розв'язування задач дослідження операцій.

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

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

Розглянемо можливості двох представників даної групи пакетів - спеціалізованого пакету Lingo та Lindo.

Пакет Lingo – це простий і в той же час потужний інструмент, який використовує арсенал методів лінійної та нелінійної оптимізації для формулювання складних проблем прийняття рішень, їх розв’язування та аналізу оптимального розвязку.

Після запуску пакета програм у відповідності з загальними правилами роботи в середовищі операційної системи Windows на екрані дисплея з’являється вікно з найменуванням LINGO, іменем сформованого файла і рядками: меню та інструментів. Дане вікно є головним вікном пакету. В границях зовнішнього вікна можуть знаходитися ряд інших вікон - LINGO Model, Solution Report, Range Report, Generated Model Report тощо. В загальному випадку, у вікні LINGO Model можна побачити текстові коментарі та математичні вирази, записані мовою моделювання пакету.

Система дозволяє вводити дані як з клавіатури, так і з зовнішніх файлів, електронних таблиць і баз даних. Кожний рядок в Lingo8 повинен закінчуватися знаком ″;″. Текстові коментарі виділяються на початку знаком ″!″, а в кінці ″;″. Коментарі можуть знаходитися також і в середині математичного виразу.Службові слова пакету виділяються синім кольором, математичні вирази – чорним, а текстові коментарі мають зелений колір.

Після введення моделі необхідно обрати команду Solve в меню LINGO або натиснути відповідну кнопку на панелі інструментів.

Для розв’язування задач оптимізації Lingo8 має чотири типи розв’язувачів (solvers): прямий, лінійний, нелінійний та гілок і меж.

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

Однією з цінних особливостей пакету Lingo8 є можливість подання оптимізаційних моделей як через набір стандартних математичних виразів, так і спеціальною мовою математичного моделювання. Використання цієї мови дозволяє вводити модель в компактному структурованому вигляді. Наявність груп подібних за структурою та змістом обмежень і змінних дає можливість об’єднувати їх в множини (sets). До таких множин можна застосовувати функції циклу, що спричинює компактне подання цільової функції і обмежень задачі

Пакет Lindo – ще один представник сімейства оптимізаційних пакетів. В порівнянні з пакетом Lingo він є більш вузькоспеціалізованим і дозволяє розв’язувати задачі лінійного, цілочисельного та квадратичного програмування. Переваги цього пакета полягають в тому, що за його допомогою можна отримати найширшу інформацію щодо оптимального розв'язку задачі, проаналізувати проміжні етапи розв’язування , здійснити варіантні розрахунки.

Введення моделі до пакету Lindo6.1 розпочинається одним із операторів MAX або MIN, за якими йде математичний вираз, що відповідає цільовій функції.

Для введення системи обмежень спочатку записують ST, SUCH THAT, S.T. або SUBJECT TO, після чого перераховують необхідні обмеження.

Закінчує введення моделі оператор END.

Додатково до трьох обов’язкових структурних компонентів моделі (цільової функції, змінних та обмежень) Lindo6.1 використовує набір факультативних операторів, які в основному уточнюють значення змінних та записуються в моделі після END

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

Взагалі, існує три основні стилі застосування пакету.

Для задач малого і середнього розміру використовують клавіатуру.

Можлива робота з файлами, створеними поза Lindo6.1, які вміщують коди команд і вхідні дані, а файли, отримані в пакеті, можуть використовуватись будь-якими текстовими процесорами при створенні звітів.

Підпрограми користувача можуть бути об’єднані з Lindo6.1 у форму єдиної інтегрованої програми.

Математичні вирази в пакеті Lindo6.1 записуються за допомогою арифметичних операторів: + (додавання), – (віднімання) та логічних: = (дорівнює), > (більше, сприймається пакетом як аналог ≥), < (менше, сприймається пакетом як аналог ≤). Константи, що йдуть за цими операторами та словами MAX або MIN, сприймаються пакетом як коефіцієнти. Числа, що розташовані безпосередньо за літерою (без пропуску) вважаються продовженням імені змінної.

30. Загальна ідея комбінаторних методів для розв язування задач цілочисельного програмування. Метод гілок і меж.

Методи цієї групи спираються на скінченність числа допустимих планів задачі і засновані на ідеї перебору, але не простого, а обмеженого, з відсіюванням множин неперспективних допустимих планів. Одним з ефективних методів комбінаторного типу є метод гілок та меж. Конкретизацією цього методу для задачі комівояжера є алгоритм Літтла, Мурті, Суїні та Керола. Ідейно близький до методу гілок та меж адитивний алгоритм Балаша для розв’язування дискретний задач з булевими змінними. До комбінаторних методів належить також алгоритм, що походить від ідеї динамічного програмування стосовно деяких дискретних задач.

Розглянемо ідею методу на прикладі загальної задачі дискретного програмування

(4.4.1)

, (4.4.2)

де - скінчена множина.

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

Оцінкою множини називається таке число , що для всіх .

Якщо є підмножиною множини , тоді очевидно

,

тому .

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

Критерій оптимальності. Нехай і в результаті розв’язування задачі

знайдемо розв’язок який задовольняє умові (4.4.2). Якщо не більше оцінок ще не розгалужених підмножин , тоді

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

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