- •Навчальне видання Вітлінський Вальдемар Володимирович Наконечний Степан Ількович терещенко Тетяна Опанасівна математичне програмування
- •03680, М. Київ, просп. Перемоги, 54/1
- •Рекомендована література 245
- •1.1. Предмет курсу «математичне програмування»
- •Тема 1. Предмет, особливості та сфери застосування математичного програмування в економіці. Класифікація задач
- •Тема 9. Задачі динамічного програмування
- •Розділ 2
- •2.1. Загальна математична модель лінійного програмування
- •Приклад 2.1.
- •2.2. Форми запису задач лп
- •2.3. Геометрична інтерпретація злп
- •2.5. Графічний метод розв’язування задач лінійного програмування
- •Задача 2.1.
- •Задача 2.2.
- •Задача 2.3.
- •Задача 2.4.
- •2.5.3. Приклади та завдання для самостійної роботи
- •Задача 2.5.
- •Задача 2.6.
- •Задача 2.7.
- •Задача 2.8.
- •Задача 2.9.
- •Задача 2.35.
- •Задача 2.36.
- •§ 2.6. Симплексний метод розв’язування задач лп
- •Задача 2.41.
- •Задача 2.42.
- •Задача 2.43.
- •Задача 2.44.
- •2.6.3. Приклади та завдання для самостійної роботи
- •Задача 2.45.
- •Задача 2.46.
- •Задача 2.47.
- •Задача 2.48.
- •Задача 2.49.
- •2 .8. Контрольні запитання
- •2.9. Теми рефератів
- •2 .10. Основні терміни та поняття
- •Тема 10. Моделі та методи стохастичного програмування
- •Тема 11. Елементи теорії ігор
- •Розділ 3 двоїстість у лінійному програмуванні
- •3.2. Теореми двоїстості
- •3.3. Навчальні завдання
- •Задача 3.1.
- •Задача 3.2.
- •Задача 3.3.
- •3 .6. Контрольні запитання
- •3 .7. Теми рефератів
- •4.1. Економічна інтерпретація двоїстої задачі
- •4.2. Навчальні завдання
- •Задача 4.1.
- •Задача 4.2.
- •Задача 4.3.
- •Задача 4.4.
- •Задача 4.5.
- •Задача 4.6.
- •Задача 4.7.
- •Задача 4.8.
- •Задача 4.9.
- •Задача 4.10.
- •Задача 4.11.
- •Задача 4.12.
- •Задача 4.13.
- •Задача 4.20.
- •Задача 4.21.
- •4.4. Заключні зауваження
- •5.2. Метод потенціалів
- •5.3. Навчальні завдання
- •Задача 5.1.
- •Задача 5.2.
- •Задача 5.3.
- •Задача 5.4.
- •Задача 5.37.
- •Задача 5.38.
- •Задача 5.39.
- •Задача 5.40.
- •5.5. Заключні зауваження
- •5.6. Контрольні запитання
- •5 .7. Теми рефератів
- •5 .8. Основні терміни та поняття
- •4.5. Контрольні запитання
- •4 .6. Теми рефератів
- •4 .7. Основні терміни та поняття
- •Розділ 6
- •6.1. Цілочислове програмування
- •6.1.1. Постановка задачі
- •6.1.2. Метод Гоморі
- •Задача 6.1.
- •6.1.3. Метод «віток і меж»
- •6.1.4. Приклади цілочислових економічних задач
- •Задача 6.2.
- •Задача 6.3.
- •Задача 6.4.
- •Задача 6.5.
- •Задача 6.6.
- •6.1.5. Приклади та завдання для самостійної роботи
- •Задача 6.7.
- •Задача 6.8.
- •Задача 6.9.
- •Задача 6.10.
- •Задача 6.11.
- •Задача 6.11.
- •Задача 6.11.
- •2) Максимізації комплектів, до яких деталі входять відповідно 6.2. Дробово-лінійне програмування
- •6.2.1. Постановка задачі та алгоритм розв’язування
- •6.2.2. Приклади дробово-лінійних задач
- •Задача 6.14.
- •Задача 6.15.
- •Задача 6.16.
- •6.2.3. Приклади та завдання для самостійної роботи
- •Задача 6.17.
- •Задача 6.18.
- •6.3. Нелінійне програмування
- •6.3.1. Постановка задачі
- •6.3.2. Труднощі розв’язування задач нелінійного програмування
- •6.3.3. Метод множників Лагранжа
- •Задача 6.19.
- •6.3.4. Приклади задач нелінійного програмування
- •Задача 6.20.
- •6.3.5. Приклади та завдання для самостійної роботи
- •Задача 6.21.
- •Задача 6.22.
- •6.4. Динамічне програмування
- •6.4.2. Методика розв’язування динамічних задач
- •6.4.3. Приклади розв’язування динамічних задач
- •Задача 6.23.
- •Задача 6.24.
- •6.4.4. Приклади та завдання для самостійної роботи
- •Задача 6.25.
- •Задача 6.26.
- •Задача 6.27.
- •Задача 6.28.
- •Задача 6.29.
- •Задача 6.30.
- •Задача 6.31.
- •Задача 6.32.
- •Задача 6.33.
- •6.5 Теорія ігор
- •6.5.1. Основні поняття теорії ігор
- •Задача 6.34.
- •Задача 6.35.
- •6.5.3. Приклади та завдання для самостійної роботи
- •Задача 6.36.
- •6.6. Стохастичне програмування
- •6.6.1 Постановка задач і методи розв’язування
- •6.6.2. Приклади стохастичних економічних задач
- •Задача 6.37.
- •Задача 6.38.
- •Задача 6.39.
- •Задача 6.40.
- •Задача 6.41.
- •Задача 6.42.
- •Задача 6.43.
- •6.6.3. Приклади та завдання для самостійної роботи
- •Задача 6.44.
- •Задача 6.45.
- •Задача 6.46.
- •Задача 6.45.
- •Задача 6.46.
- •6.7. Заключні зауваження
- •6.8. Контрольні запитання
- •6 .9. Теми рефератів
- •6 .10. Основні терміни та поняття
6.1.3. Метод «віток і меж»
Ефективнішим за метод Гоморі розв’язування задач цілочислового програмування є метод «віток і меж». Спочатку, як і в разі методу Гоморі, розв’язується послаблена (відкиданням умови цілочисловості) задача.
З цією метою застосовується симплексний метод.
Нехай потрібно знайти хj — цілочислову змінну, значення якої в оптимальному плані послабленої задачі є дробовим. Тоді можна стверджувати, що в інтервалі цілих значень немає.
Наприклад, якщо дістаємо інтервал (2,3), де, очевидно, немає хj, яке набуває цілого значення.
Значенню відповідає інтервал (–3; –2), де також не існує цілого значення хj. Отже, допустиме ціле значення xj має задовольняти одну з нерівностей
або .
Приписавши кожну з цих умов до задачі з послабленими обмеженнями, дістанемо дві не пов’язані між собою задачі. Тобто початкову задачу цілочислового програмування (6.1)—(6.4) розіб’ємо на дві задачі з урахуванням умов цілочисловості змінних, значення яких в оптимальному плані послабленої задачі є дробовими. Це означає, що симплекс-методом розв’язуватимемо дві такі задачі:
(6.5)
за умов
(6.6)
,
, (6.7)
— цілі, (6.8)
; (6.9)
(6.10)
за умов
(6.11)
,
, (6.12)
— цілі, (6.13)
, (6.14)
де — компонент розв’язку задачі (6.1)—(6.4).
Далі симплекс-методом розв’язуємо послаблені задачі (6.6)—(6.9) і (6.10)—(6.14), тобто з відкиданням обмежень (6.8) і (6.13). Якщо знайдені оптимальні плани задовольняють умови цілочисловості, то ці плани є розв’язками задачі (6.1)—(6.4). Інакше пошук розв’язку задачі триває. Для подальшого розгалуження беремо задачу з найбільшим значенням цільової функції, якщо йдеться про максимізацію, і навпаки — з найменшим значенням цільової функції в разі її мінімізації. Подальше розгалуження виконується доти, доки не буде встановлено неможливість поліпшення розв’язку. Здобутий план — оптимальний.
Розв’язування цілочислових задач методом «віток і меж» можна значно прискорити, приєднавши обмеження виду (6.9) і (6.14) до останньої симплекс-таблиці не початкової (6.1)—(6.4), а відповідних задач.
Розв’яжемо методом «віток і меж» задачу 6.1.
Відкинувши умову цілочисловості, дістанемо розв’язок х1 = 1, х2 = . Отже, допустиме ціле значення х2 має задовольняти одну з нерівностей або . Далі приєднуємо до задачі кожне з обмежень, нехтуючи умовою цілочисловості, і розв’язуємо по черзі обидві утворені задачі. Для першої (з обмеженням ) оптимальним буде розв’язок , , , а для другої (з обмеженням ) — розв’язок , , . Оскільки цілочислового плану не знайдено, процес необхідно продовжити, узявши для наступного розгалуження першу задачу, оптимальний план якої дає більше значення функціоналу. Далі розв’язуємо задачу, приєднуючи до неї обмеження і , звідки й знаходимо оптимальний план , , що збігається з розв’язком, здобутим за методом Гоморі.
6.1.4. Приклади цілочислових економічних задач
Задача 6.2.
Задача лінійного розкрою.
У цеху розрізують прути завдовжки
6 м на заготівки 1,4; 2 і 2,5 м. Усього
в цеху мають 200 прутів. Потрібно дістати
не менше як 40, 60 і 50 заготівок завдовжки
відповідно 1,4; 2 і 2,5 м.
Побудувати загальну і числову модель лінійного розкрою. За критерій оптимізації є сенс узяти мінімум відходів.
Розв’язування. Нехай — вид заготівки. Кожний прут можна розрізати різними способами.
Скористаємося такими позначеннями:
— вихід заготовок і-го виду в разі розрізування прута j-м способом;
cj — відходи в разі розрізування прута j-м способом;
А — кількість наявних прутів;
Bi, Di — відповідно нижня і верхня межі потреби в і-й заготівці;
xj — кількість прутів, які розрізані за j-м варіантом.
Запишемо загальну економіко-математичну модель лінійного розкрою.
Критерій оптимальності:
за умов
,
,
,
— цілі .
Побудуємо числову економіко-математичну модель розрізування прутів, розглянувши можливі варіанти такого розрізування:
Довжина заготівки, м |
Варіанти розрізування прутів |
||||||
|
|
|
|
|
|
|
|
1,4 |
4 |
— |
— |
1 |
1 |
2 |
2 |
2 |
— |
3 |
— |
1 |
2 |
1 |
— |
2,5 |
— |
— |
2 |
1 |
— |
1 |
1 |
Довжина відходів, м |
0,4 |
0 |
1 |
0,1 |
0,6 |
1,2 |
0,7 |
Бажано, щоб у множину ввійшли всі можливі варіанти, навіть такі, які на перший погляд здаються неефективними, наприклад x6.
Запишемо числову економіко-математичну модель розрізування прутів:
за умов
а) щодо кількості заготівок завдовжки 1,4 м:
;
2 м:
;
2,5 м:
;
б) щодо кількості наявних прутів:
;
в) щодо невід’ємності змінних:
;
г) щодо цілочисловості змінних:
— цілі числа.
Пропонуємо розв’язати цю задачу одним із методів цілочислового програмування.