- •Навчальне видання Вітлінський Вальдемар Володимирович Наконечний Степан Ількович терещенко Тетяна Опанасівна математичне програмування
- •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. Основні терміни та поняття
Задача 3.2.
До наведеної далі задачі
лінійного програмування записати
двоїсту задачу. Розв’язавши двоїс-
ту
задачу графічно, визначити оптимальний
план прямої за-
дачі.
Z = x1 + 2x2 + 2x3 min;
Розв’язування. За відповідними правилами побудуємо двоїсту задачу:
F = y1 + 4y mах;
Зауважимо, що задачі несиметричні, і тому змінна у1, що відповідає рівнянню в системі обмежень прямої задачі, може мати будь-який знак, а змінна у2 — лише невід’ємна.
Двоїста задача має дві змінні, а отже, її можна розв’язати графічно (рис. 3.1).
Рис. 3.1
Найбільшого значення цільова функція двоїстої задачі F досягає в точці В многокутника ABCD. Її координати:
тобто Y * = (–2/3; 4/3); mах F = 1 (–2/3) + 4 4/3 = 14/3.
Оптимальний план прямої задачі визначимо за допомогою співвідношень другої теореми двоїстості.
Підставимо Y * у систему обмежень двоїстої задачі і з’ясуємо, як виконуються обмеження цієї задачі:
Оскільки перше обмеження для оптимального плану двоїстої задачі виконується як строга нерівність, доходимо висновку, що перша змінна прямої задачі дорівнюватиме нулю х1 = 0 (перша частина другої теореми двоїстості).
Тепер проаналізуємо оптимальний план двоїстої задачі. Оскільки друга компонента плану у2 = 4/3 додатна, доходимо висновку, що друге обмеження прямої задачі для X * виконуватиметься як строге рівняння (друга частина другої теореми двоїстості).
Об’єднуючи здобуту інформацію, можна записати систему обмежень прямої задачі як систему двох рівнянь, в якій х1 = 0, та визначити решту змінних:
тобто X * = (0; 5/3; 2/3), min Z = 1 0 + 2 5/3 + 2 2/3 = 14/3.
Умова min Z = max F = 14/3 виконується, і тому X * = (0; 5/3; 2/3); Y * = (–2/3; 4/3) є оптимальними планами відповідно прямої та двоїстої задач.
Задача 3.3.
Визначити, чи оптимальні
такі плани сформульованої
задачі лінійного програмування:
Z = 12x1 – 4x2 + 2x3 min;
а) х = (8/7; 3/7; 0); б) х = (0; 1/5; 8/5); в) х = (1/3; 0; 1/3).
Розв’язування. Принцип розв’язування задач такого типу ґрунтується на використанні другої теореми двоїстості. Необхідно побудувати двоїсту задачу та припускаючи, що відповідний план Х є оптимальним, визначити оптимальний розв’язок двоїстої задачі. Якщо при цьому екстремальні значення цільових функцій збігатимуться, то припущення правильне. Протилежного висновку можна дійти в таких випадках.
1. Якщо запропонований план Х недопустимий, тобто не задовольняє систему обмежень прямої задачі.
2. Якщо визначений план двоїстої задачі недопустимий, тобто не задовольняє всі обмеження двоїстої задачі.
3. Якщо визначений план двоїстої задачі допустимий, але для нього екстремальне значення цільової функції F не дорівнює значенню функції Z, тобто не виконується умова першої теореми двоїстості.
Запишемо двоїсту задачу до прямої задачі лінійного програмування:
F = y1 + 2y2 max;
Перевіримо запропоновані плани на оптимальність.
1. X = (8/7; 3/7; 0). Підставимо його в систему обмежень прямої задачі:
Обидва обмеження виконуються і тому Х = (8/7; 3/7; 0) є допустимим планом прямої задачі. Припустимо тепер, що зазначений план є оптимальним планом прямої задачі. Тоді для нього Z = 12 8/7 + 4 3/7 + 2 0 = 12.
Скористаємося другою теоремою двоїстості та визначимо відповідний план двоїстої задачі. Оскільки x1 = 8/7 > 0; x2 = 3/7 > 0, то згідно з другою частиною другої теореми двоїстості можна записати перше та друге обмеження як рівняння і визначити у1 і у2:
Підставимо ці значення в третє обмеження системи двоїстої задачі:
;
.
Для визначених значень у1 = 4; у2 = 4 це обмеження не виконується, і тому відповідний план Y = (4; 4) є недопустимим планом двоїстої задачі. Унаслідок цього наше припущення, що Х = (8/7; 3/7; 0) є оптимальним планом вихідної задачі, виявилося помилковим.
2. Х = (0; 1/5; 8/5). Підставимо цей план в систему обмежень прямої задачі:
План допустимий і для нього Z = 12 0 – 4 1/5 + 2 8/5 = 12/5.
Визначимо відповідний план двоїстої задачі. Оскільки компоненти x3 та x2 додатні, то друге та третє обмеження двоїстої задачі можна записати як рівняння:
Перевіримо, що виконується перше обмеження двоїстої задачі для визначених значень у1 та у2: 2 8/5 + 2/5 = 18/5 < 12. Отже, перше обмеження виконується, і тому Y = (8/5; 2/5) є допустимим планом двоїстої задачі. Для нього F = 8/5 + 2 2/5 = 12/5 = Z. З огляду на викладене можна зробити висновок, що Y * = (8/5; 2/5) є оптимальним планом двоїстої задачі, а X * = (0; 1/5; 8/5) — оптимальним планом прямої задачі.
Наше припущення відносно запропонованого плану виявилося правильним.
3. Х = (1/3; 0; 1/3). Для цього плану обмеження прямої задачі виконуються так:
Оскільки Х = (1/3; 0; 1/3) є недопустимим планом, то він не може бути також оптимальним планом прямої задачі.
Отже, перевірка запропонованих планів на оптимальність дала такі результати: а) ні; б) так, Y * = (0; 1/5; 8/5), min Z = 12/5; в) ні.
3.4. ПРИКЛАДИ ТА ЗАВДАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ
У наведених далі задачах записати двоїсту задачу до поставленої задачі лінійного програмування. Розв’язати одну із задач симплекс-методом і визначити оптимальний план іншої задачі.
Задача
3.4.
Задача
3.5.
Задача
3.6.
Задача
3.7.
Задача
3.8.
Задача
3.9.
Задача
3.10.
Задача
3.11.
Задача
3.12.
Задача
3.13.
Задача
3.14.
Задача
3.15.
Задача
3.16.
Задача
3.17.
Задача
3.18.
Задача
3.19.
Задача
3.20.
У наведених задачах (3.21—3.30) до поставленої задачі лінійного програмування записати двоїсту і розв’язати її графічно. Визначити оптимальний план прямої задачі, застосовуючи другу теорему двоїстості.
Задача
3.21.
Задача
3.22.
Задача
3.23.
Задача
3.24.
Задача
3.25.
Задача
3.26.
Задача
3.27.
Задача
3.28.
Задача
3.29.
Задача
3.30.
У наведених задачах (3.31—3.35) визначити, чи є для сформульованої задачі лінійного програмування оптимальними запропоновані плани.
Задача
3.31.
а) х = (0; 4; 2); б) х = (14/5; 18/5; 0); в) х = (5/3; 7/3; 1/3).
Задача
3.32.
а) х = (2; 3; 0); б) х = (3; 0; 1); в) х = (0; 1; 2).
Задача
3.33.
а) х = (10; 10/3); б) х = (20; 10); в) х = (10/3; 10/3).
Задача
3.34.
а) х = (1; 1/3; 1); б) х = (2; 1; 0); в) х = (1/8; 0; 13/8).
Задача
3.35.
а) х = (16; 3; 0; 0); б) х = (4; 0; 0; 15); в) х = (0; 0; 4; 3).
3.5. ЗАКЛЮЧНІ ЗАУВАЖЕННЯ
Поняття двоїстості задач математичного програмування має велике значення не лише в теоретичному плані, а також широко використовується на практиці. Двоїстість у лінійному програмуванні була розроблена академіком Л. В. Канторовичем ще в 1939 році. У 1975 році Канторович і американський математик Т. Купманс за відкриття двоїстості та її застосування в економічних дослідженнях одержали Нобелівську премію. Значні теоретичні дослідження в цій галузі мали В. В. Ново- жилов, В. С. Нємчинов, А. Л. Лур’є, В. С. Михалевич, Ю. М. Ер- молєв та інші вчені.
Двоїсті задачі мають чітку геометричну та економічну інтерпретацію. Теореми двоїстості широко використовуються в еконо- мічних дослідженнях. У 70-х роках у Радянському Союзі велась дискусія з приводу використання двоїстих оцінок в економіці. Економісти того часу недооцінювали цю важливу економічну категорію. Проблема полягала ще й у тому, що ціни в Радянському Союзі не були обґрунтованими, не враховувались реальні витрати живої та уречевленої праці, попит і пропозиція на продукцію. Радянські економісти не розуміли, що недефіцитні ресурси мають нульову оцінку.
Для поглибленого вивчення теорем двоїстості можна скористатися літературними джерелами [5; 15; 26; 34; 35].