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

26. Загальна ідея методів відтинання для розв'язування лінійних задач цілочисельного програмування. Перший алгоритм Гоморі.

Методи відтинання. Ідея цих методів полягає в наступному: відкидаємо умову дискретності змінних і розв’язуємо ЗЛП. Якщо одержаний розв’язок задовольняє умові дискретності, тоді задача розв’язана. Якщо це не так, тоді необхідно виконати перехід до цілочисельного розв’язку. Цей перехід не може бути досягнутий простим заокругленням компонент одержаного нецілочисельного розв’язку.

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

Перший алгоритм Гоморі застосовується для розв’язування повністю цілочисельних лінійних задач виду:

,

(4.3.1)

,

(4.3.2)

,

(4.3.3)

- цілі, .

(4.3.4)

Згідно з загальною ідеєю методів відтинання спочатку розв’язуємо задачу (4.3.1)-(4.3.3). Якщо ця задача нерозв’язувана, то буде нерозв’язуваною і задача (4.3.1)-(4.3.4).

Нехай - оптимальний розв’язок задачі (4.3.1)-(4.3.3). Якщо компоненти вектора задовольняють умові (4.3.4), тоді вектор - оптимальний розв’язок задачі (4.3.1)-(4.3.4). У противному випадку необхідно побудувати правильне відтинання.

Позначимо через сукупність небазисних змінних відносно розв’язку . Можна записати розклад базисної змінної за небазисними змінними, а саме

,

де — базисні компоненти вектора ,

— компоненти розкладу небазисного вектора за базисом, ,

небазисні змінні, .

Нехай - оптимальний розв’язок задачі (4.3.1)-(4.3.3), у якого змінна не відповідає умові цілочисельності, і базисний вектор, який відповідає цій змінній, стоїть на -му місці в базисі. Тоді обмеження виду

,

(4.3.5)

, - ціле, буде правильним відтинанням.

  1. Математичні пакети прикладних програм і розв'язування задач дослідження операцій.

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

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

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

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

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

Пакети прикладних програм, які використовуються для розв’язування задач оптимізації, можна умовно поділити на системи загального призначення (математичні (Mathematica, Maple, Mathcad, Matlab та ін.) і табличні процесори (M. Excel, Lotus тощо)), спеціалізовані пакети (Lingo та ін.) та прикладні програми, що реалізують окремі методи математичного програмування.

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

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

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

28. Сучасні табличні процесори і розв'язування задач дослідження операцій.

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

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

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

Розглянемо табличні процесори як інструмент для розв’язання задач математичного програмування на прикладі широко відомої системи Microsoft Excel.

З метою розв’язування задач оптимізації в систему Excel вбудований спеціалізований „розв’язувач задач”, який викликається з меню Сервіс і має назву Поиск решения. При використанні цієї команди необхідним є розуміння трьох термінів: цільова клітинка, змінювані клітинки та обмеження.

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

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

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

Послідовність розв’язування будь-якої задачі з використанням команди Поиск решения є стандартною та складається з наступних необхідних етапів.

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

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

Після введення всієї необхідної інформації викликається команда Выполнить. Система відшукає оптимальний розв’язок задачі і у відповідних клітинках відобразить результати розрахунків.