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

7.1. Класифікація задач дискретного програмування

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

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

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

  • цілочислові задачі лінійного типу;

  • задачі з бульовими змінними;

  • комбінаторні задачі.

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

У задачах з бульовими змінними накладаються додаткові умови:

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

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

Комбінаторні задачі та задачі з бульовими змінними складають клас нелінійних цілочислових задач.

Класифікацію задач дискретного програмування можна зобразити схемою (рис.7.1).

Дискретне програмування

Цілочислове лінійне програмування

Нелінійне цілочислове програмування

Повністю цілочислові задачі

Задачі з бульовими змінними

Частково-цілочислові задачі

Комбінатор-ні задачі

Рис.7.1

7.2. Лінійні цілочислові задачі

7.2.1. Метод відтинання. Додаткове обмеження

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

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

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

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

Відтинання повинно задовольняти таким властивостям:

  • проходити принаймні через одну цілочислову точку;

  • повинно бути лінійним;

  • має відтинати оптимальний розв’язок з не цілочисловою точкою;

  • не повинно виключати цілочислових точок.

Відтинання, що має такі властивості, називається правильним.

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

Розглянемо область допустимих розв’язків, яка відображена на рис.7.2 трикутником АВС.

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

Нехай не цілочислова точка

А А відповідає максимуму . Щоб

І знайти цілочислову точку, вво-

С ІІ дять додаткові обмеження І та ІІ

В один за одним так, щоб найближ-

ча точка області допустимих роз-

в’язків мала цілочислові корди-

Рис.7.2 нати. Такі послідовні відтинання

будуються доки не знайдеться оптимальна цілочислова точка.

Найпоширенішим методом, основаним на методі відтинання, є алгоритм Гоморі, який має кілька модифікацій і дозволяє:

  • розв’язувати як часткові, так і повністю цілочислові задачі лінійного програмування (І - ІІ алгоритм Гоморі);

  • знаходити розв’язок за кінцеве число кроків розв’язування;

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

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

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

Розглянемо вигляд додаткового обмеження для такої математичної моделі:

  • цільова функція

  • обмеження

усі і цілочислові.

Відповідно до наведеної постановки задача є повністю цілочисловою.

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

Тоді базисні змінні через останні вільні змінні мають вигляд

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

звідки

За умовами – ціла величина, тоді й права частина виразу також має бути цілою. Це можливо тільки тоді, коли

,

тобто

тому що

.

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