You are on page 1of 81

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Одеський національний політехнічний університет


Інститут комп'ютерних систем
Кафедра інформаційних систем

Математичні методи дослідження операцій

МЕТОДИЧНІ ВКАЗІВКИ
до лабораторних робіт
для студентів спеціальності – 122 –
«КОМП’ЮТЕРНІ НАУКИ»

Одеса ОНПУ 2018


МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Одеський національний політехнічний університет
Інститут комп'ютерних систем
Кафедра інформаційних систем

Математичні методи дослідження операцій

МЕТОДИЧНІ ВКАЗІВКИ
до лабораторних робіт
для студентів спеціальності – 122 –
«КОМП’ЮТЕРНІ НАУКИ»

Затверджено
на засіданні кафедри
інформаційних систем
Протокол № 1 від 30.08.18

Одеса ОНПУ 2018

2
Методичні вказівки до лабораторних робіт з дисципліни «Математичні методи
дослідження операцій» для студентів спеціальності – 122 – «КОМП’ЮТЕРНІ НАУКИ» /
Укл.: В.О. Болтьонков, В.І. Куваєва – Одеса: ОНПУ, 2018 — 81 с.

Укладачі: Болтьонков Віктор Олексійович,


к.т.н., доцент,
Куваєва Варвара Ігорівна,
асистент

3
Зміст
Лабораторна робота №1................................................................................................................4
Лабораторна робота №2................................................................................................................9
Лабораторна робота №3..............................................................................................................12
Лабораторна робота №4..............................................................................................................16
Лабораторна робота №5..............................................................................................................20
Лабораторна робота №6..............................................................................................................25
Лабораторна робота №7..............................................................................................................32
Лабораторна робота №8..............................................................................................................42
Лабораторна робота №9..............................................................................................................56
Лабораторна робота №10............................................................................................................62
Лабораторна робота №11............................................................................................................66
Лабораторна робота №12............................................................................................................79
ЛІТЕРАТУРА................................................................................................................................80

Лабораторна робота №1
Тема. Графічне рішення задачі лінійного програмування
Мета роботи – вивчення графічних методів вирішення задачі лінійного
програмування.
Лінійне програмування (ЛП) – це метод оптимізації моделей, в яких цільові функції
і обмеження строго лінійні. ЛП успішно застосовується у військовій області,
промисловості, сільському господарстві, транспортній галузі, економіці, системі охорони
здоров'я і навіть в соціальних науках. Широке використання цього методу також
підкріплюється високоефективними комп'ютерними алгоритмами, що реалізують даний
метод. На алгоритмах лінійного програмування (враховуючи їх комп'ютерну ефективність)
базуються оптимізаційні алгоритми для інших, більш складних типів моделей і завдань
дослідження операцій
У цій роботі на простому прикладі з двома змінними показані основні елементи
моделі ЛП. Далі цей приклад буде узагальнено в загальну задачу лінійного програмування.
1. Приклад рішення задачі ЛП графічним методом.
Компанія Reddy Mikks виготовляє два види фарб: для внутрішніх (1) і зовнішніх (2)
робіт. Продукція обох видів надходить у продаж. Для виробництва фарб використовується
два вихідних продукту - А і В. Максимально можливі добові запаси цих продуктів
складають 6 і 8 тон відповідно. Витрати А і В на 1 тонну відповідних фарб наведені нижче
в таблиці.
Таблиця 1.1.
витрата сировини
(в тонах на тону фарби) Максимально
Вихідний
можлива добова
продукт
Фарба 1 для Фарба 2 для витрата сировини, т
зовнішніх робіт внутрішніх робіт
Сировина А 6 4 24
Сировина В 1 2 6
Дохід в тис. дол.
5 4
на 1 т фарби

Відділ маркетингу компанії обмежив щоденне виробництво фарби для внутрішніх


робіт до 2 т (через відсутність належного попиту), а також поставив умови, щоб щоденне

4
виробництво фарби для внутрішніх робіт не перевищувала більш ніж на тонну
аналогічний показник виробництва фарби для зовнішніх робіт. Компанія хоче визначити
оптимальне (найкраще) співвідношення між видами продукції, що випускається для
максимізації загального щоденного доходу.
Завдання (модель) лінійного програмування, як і будь-яке завдання дослідження
операцій, включає три основних елементи.
1. Змінні, які слід визначити.
2. Цільова функція, що підлягає оптимізації.
3. Обмеження, яким повинні задовольняти змінні.
Визначення змінних – перший крок у створенні моделі. Після визначення змінних
побудова обмежень і цільової функції зазвичай не викликає труднощів.
У нашому прикладі необхідно визначити щоденні обсяги виробництва фарби для
внутрішніх і зовнішніх робіт. Позначимо ці обсяги як змінні моделі:
х1 — щоденний обсяг виробництва фарби 1 для зовнішніх робіт;
х2 — щоденний обсяг виробництва фарби 2 для внутрішніх робіт.
Використовуючи ці змінні, далі будуємо цільову функцію. Логічно припустити, що
цільова функція, як сумарний щоденний дохід, повинна зростати при збільшенні
щоденних обсягів виробництва фарб. Позначимо цю функцію через z (вона вимірюється в
тисячах доларів) і покладемо, що в відповідності з цілями компанії отримуємо задачу:
максимізувати z = 5х1 + 4х2.
Залишився невизначеним останній елемент моделі – умови (обмеження), які
повинні враховувати можливість щоденного споживання сировини і обмеженість попиту
на готову продукцію. Іншими словами, обмеження на сировину можна записати в такий
спосіб.

 Використовуваний об'єм  Максимально можливий


сировини для виробництва ≤ щоденний витрата
обох видів фарби  сировини 

З таблиці з даними маємо наступне.


Використовуваний об'єм сировини М1 = 6х1 + 4х2 (т)
Використовуваний об'єм сировини М2 = 1х1 + 2х2 (т)

Оскільки щоденний витрата сировини М1 і М2 обмежений відповідно 24 і 6


тонами, отримуємо такі обмеження.
6х1 + 4х2 ≤ 24 (сырье М1)
1х1 + 2х2 ≤ 6 (сырье М2)
Існує ще два обмеження щодо попиту на готову продукцію. Перше обмеження
вказує, що щоденний обсяг виробництва фарби для внутрішніх робіт не повинен
перевищувати щоденний обсяг виробництва фарби для зовнішніх робіт більш ніж на одну
тонну, тобто х2—х1≤1. Друге обмеження просте – максимальний щоденний обсяг
виробництва фарби для внутрішніх робіт не повинен перевищувати 2 т – і записується як
х2 ≤ 2.
Ще одне неявне обмеження полягає в тому, що змінні х1 і х2 повинні бути
невід'ємними. Таким чином, до сформульованим вище обмеженням необхідно додати
умова невід'ємності змінних: х1 ≥ 0, х2 ≥ 0.
Остаточно завдання буде записана наступним чином:
максимізувати z = 5х1 + 4х2 при виконання обмежень
6х1 + 4х2 ≤ 24,
х1 + 2х2 ≤ 6,
-х1 + х2 ≤ 1,
х2 ≤ 2,
5
х1 ≥ 0, х2 ≥ 0.
Будь-яке рішення, яке задовольняє обмеженням моделі, є допустимим. Наприклад,
рішення х1 = 3 и х2 = 1 буде допустимим, оскільки не порушує жодного обмеження,
включаючи умову невід'ємності. Щоб упевнитися в цьому, треба підставити значення х1 =
3 и х2 = 1 в ліві частини нерівностей системи обмежень і переконайтеся, що жодне
нерівність не порушується.
Значення цільової функції при цьому дорівнюватиме z = 5*3 + 4*1 = 19 .
Задача сформульована, тепер постає питання про пошук оптимального допустимого
рішення, що доставляє максимум цільової функції. Відзначимо, що в прикладі цільова
функція і всі обмеження лінійні. Властивість лінійності функцій передбачає наступне.
а) Значення лівих частин нерівностей обмежень і значення цільових функції прямо
пропорційні значенням змінних.
б) Адитивність змінних означає, що загальний внесок всіх змінних в значення
цільової функції і лівих частин нерівностей обмежень є прямою сумою вкладів кожної
окремої змінної.
Вирішимо задачу ЛП графічно. Графічний спосіб розв'язування задач ЛП
складається з двох етапів.
1. Побудова простору допустимих рішень, що задовольняють всім обмеженням
моделі.
2. Пошук оптимального рішення серед усіх точок простору допустимих рішень.
Етап 1. Побудова простору допустимих рішень.
Спочатку проведемо осі: на горизонтальній будуть вказуватися значення змінної х1
а на вертикальній — хг (рис. 1.1). Далі розглянемо умова невід'ємності змінних: х1 > 0 і хг
> 0. Ці два обмеження показують, що простір допустимих рішень буде лежати в першому
квадранті (тобто вище осі х1 і правіше осі х2).

Рис. 1.1. Простір допустимих рішень моделі

Щоб врахувати решту обмежень, найпростіше замінити нерівності на рівності


(отримавши рівняння прямих), а потім на площині провести ці прямі. Наприклад,
нерівність 6х1 + 4х2 < 24 замінюється рівнянням прямої 6х1 + 4х2 = 24. Щоб провести цю

6
лінію, треба знайти дві різні точки, що лежать на цій прямій. Якщо х1 = 0, то х2 = 24/4 = 6.
Аналогічно для х2 = 0 знаходимо х1= 24/6 = 4. Итак, наша прямая проходит через две точки
(0, 6) и (4, 0). Отже, наш прямий проходить через дві точки (0, 6) і (4, 0). Ця пряма
позначена на рис. 1.1 як лінія (1).
Тепер розглянемо, як графічно інтерпретуються нерівності. Кожні нерівність ділить
площину (х1 , х2) на два півпростору, які розташовуються по обидва боки прямий, яка, як
показано вище, відповідає даним нерівності. Точки площині, розташовані по одну сторону
прямої, задовольняють нерівності (допустиме полупространство), а точки, що лежать по
інший бік, - немає. "Тестової" точкою, яка перевіряє, точки якого полупространства
задовольняють нерівності, а якого - ні, може служити точка (0, 0). Наприклад, ця точка
задовольняє першому нерівності 6х1 + 4хг ≤ 24 (здесь 6×0 + 4×0 = 0 ≤ 24). Це означає, що
точки півпростору, що містить початкову точку (0, 0), задовольняють цьому нерівності. На
рис. 1.1 допустимі півпростору показані стрілками.
Якщо точка (0, 0) не задовольняє нерівності, допустимим півпростором буде те, яке
не містить цю точку. Якщо ж пряма проходить через цю точку, слід як "тестової" взяти
будь-яку іншу точку.
Етап 2. Пошук оптимального рішення.
Точки простору допустимих рішень, показаного на рис. 1.1, задовольняють
одночасно всім обмеженням. Це простір обмежений відрізками прямих, які з'єднуються в
кутових точках А, В, С, D, Е і F. Будь-яка точка, розміщена всередині або на кордоні
області, обмеженою ламаної ABCDEF, є допустимим рішенням, тобто задовольняє всім
обмеженням. Оскільки простір допустимих рішень містить нескінченне число точок,
необхідна якась процедура пошуку оптимального рішення.
Для того щоб знайти оптимальне рішення, необхідно визначити напрям зростання
цільової функції z = 5х1 + 4х2 (нагадаємо, що функцію z слід максимізувати). Ми можемо
прирівняти z до кількох зростаючим значенням, наприклад 10 і 15. Ці значення,
підставлені замість z в вираз цільової функції, породжують рівняння прямих; для значень
10 і 15 отримуємо рівняння прямих 5х1 + 4х2 = 10 і 5х1 + 4х2 = 15. На рис. 2.2 ці прямі
показані штриховими лініями, а напрям зростання цільової функції – жирної
стрілкою. Цільова функція може зростати до тих пір, поки прямі, відповідні зростаючому
значенням цієї функції, перетинають область допустимих рішень. Точка перетину області
допустимих рішень і прямий, відповідної максимально можливого значення цільової
функції, і буде точкою оптимуму.

Рис.1.2. Оптимальное решение задачи


7
Рис.1.2. Оптимальне рішення задачі

На рис. 1.2 видно, що оптимальне рішення відповідає точці С. Ця точка є місцем


перетину прямих (1) і (2), тому її координати х1 і х2 знаходяться як рішення системи
рівнянь, які задають ці прямі:
6х1 + 4х2 = 24,
х1 + 2х2 = 6.
Рішенням цієї системи буде х1 = 3 і х2= 1,5, при цьому значення цільової функції
дорівнює z = 5×3 + 4×1,5 = 21. Отримане рішення означає, що для компанії Reddy Mikks
оптимальним вибором буде щоденне виробництво 3 т фарби для зовнішніх робіт і 1,5 т –
для внутрішніх робіт з щоденним доходом в 21 000 дол.
Не випадково, що оптимальне рішення розташоване в кутовій точці простору
допустимих рішень, де перетинаються дві прямі. Якщо ми змінимо нахил функції z
(шляхом зміни її коефіцієнтів), то виявимо, що в будь-якому випадку рішення досягається
в одній з кутових точок (або одночасно в декількох кутових точках). В цьому і полягає
основна ідея побудови загального симплексного алгоритму.
2. Завдання.
2.1. Вирішити графічним методом наступні задачі лінійного програмування. 1.
Фармацевтична фірма Ozark кожен день виробляє не менше 800 фунтів якоїсь харчової
добавки - суміші кукурудзяного і соєвого борошна складу якої в таблиці 1.2. Дієтологи
вимагають, щоб в харчовій добавці було не менше 30% білка і не більше 5%
клітковини. Фірма Ozark хоче визначити структуру суміші мінімальної вартості з
урахуванням вимоги дієтологів. (Звернути увагу на те, що цільова функція задачі
мінімізується).

Таблиця 1.2.

Борошно Вартість в доларах за фунт В фунтах на фунт борошна


Білок Клітковина
Кукурудзяна 0,3 0,09 0,02
Соєва 0,9 0,6 0,06

2.2. Джек - студент-першокурсник. Він прийшов до висновку, що одна тільки


навчання, без щоденної гри в баскетбол, погано впливає на його розумовий, моральний і
фізичний розвиток. Тому він вирішив розподілити свій денний час (приблизно 10 годин)
для навчання і гри в баскетбол. Привабливість ігрового часу він оцінює в два рази вище,
ніж привабливість часу, витраченого на навчання. Але, маючи совість і почуття обов'язку,
Джек вирішив, що час для гри не повинно перевищувати час навчання. Крім того, він
помітив, що, якщо виконувати всі навчальні завдання, на гру залишиться не більше 4
годин на день. Допоможіть Джеку розподілити час так, щоб він отримував максимальне
задоволення і від роботи, і від гри.
2.3. Нафтова компанія OilCo будує новий нафтопереробний завод для виробництва
4 видів продуктів: дизельне паливо, бензин, мастильні матеріали і авіаційне паливо. Попит
на ці види продукції становить відповідно 14, 30, 10 і 8 тис. барелів на день. компанія
уклала контракти з Іраном і ОАЕ на поставку сирої нафти танкерами. Оскільки обсяг
видобутку нафти квотується рішеннями ОПЕК (Організація країн - експортерів нафти),
компанія розраховує, що не менше 40% нафти вона буде отримувати з Ірану, а решта - з
Арабських Еміратів. OilCo також прогнозує, що в найближчі 10 років попит на її
продукцію і квоти на сиру нафту залишаться незмінними.
8
Нафта, що поставляється з Ірану і ОАЕ, відрізняється своїми якостями. з одного
бареля іранської нафти можна зробити 0,2 бареля дизельного палива, 0,25 бареля бензину,
0,1 бареля мастильних матеріалів і 0,15 бареля авіаційного палива. Відповідні числа для
нафти з ОАЕ складають 0,1, 0,6, 0,15 і 0,1. Компанії OilCo необхідно визначити мінімальну
завантаження сирою нафтою свого нового нафтопереробного заводу.

3. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання.
5. Висновки по роботі.

Лабораторна робота №2

Тема. Ознайомлення з програмою TORA. Графічне рішення задачі лінійного


програмування в програмі TORA
Мета роботи - вивчення графічних методів вирішення задачі лінійного
програмування за допомогою програми TORA.
1. Програма TORA розроблена так, що обчислення можна проводити як в
автоматичному режимі, так і в режимі навчання (покрокового виконання), або, якщо
необхідно, можна використовувати спільно обидва режими. Меню і команди цієї програми
досить змістовні, тому керівництва користувача і довідкової системи не потрібно. Проте,
якщо у вас виникнуть якісь складнощі при роботі в цій програмі, в додатку Б наведено
короткий опис системи TORA.
Щоб отримати графічне рішення задачі лінійного програмування в системі TORA,
виконайте наступні дії.
1) Виберіть в меню Main Menu (Головне меню) пункт Linear Programming (Лінійне
програмування).
2) Вкажіть режим введення даних (завантажити дані з файлу або ввести но¬вие), а
також формат чисел.
3) Якщо вирішується нове завдання, введіть дані для неї в таблицю.
4) Клацніть на кнопці Solve Menu (Мени рішення).
5) В меню оберіть команду Solve ̶> Graphical (Вирішити > ̶ Графічно).
6) Визначте формат результату і клацніть на кнопці Go Те Output Screen (Перехід у
вікно результату).
7) З'явиться графічне і числове рішення задачі ЛП.
На рис. 2.1 показано графічне рішення задачі Reddy Mikks (дані для цього завдання
містяться в файлі ch2ToraReddyMikks.txt). Умови і алгебраїчне рішення завдання
представлені в лівій частині вікна. Справа розташована область виведення графіка, яка
спочатку порожня. У ній виведені тільки осі x і y на котрі нанесені значення в потрібному
для даної моделі масштабі. Побудувати графічне рішення можна двома способами. Можна
просто клацнути на кнопці Click here to graph LP in one stroke (Клацніть тут, щоб
побудувати графік), щоб відразу отримати рішення. Так само можна послідовно
побудувати лінії обмежень (клацніть на кожному з них в лівій частині екрана), а потім
клацнути на зображені цільової функції. У будь-якому випадку буде знайдено оптимальне
рішення.
При необхідності можна видалити графік, а потім намалювати його заново. Для
цього клацніть на записи all xj> =0 (всі змінні невід'ємні) в лівій частині вікна. Щоб
переглянути або змінити умови завдання, клацніть на кнопці View / Modify Input Data

9
(Перегляд/Зміна вхідних даних). Потім можна знову вирішити задачу з новими вихідними
значеннями.
2. Завдання.
2.1. Режим навчання в програмі TORA. У програмі TORA введіть наступні умови
задачі ЛП і вкажіть, що рішення слід отримати в графічному режимі.

Рис.2.1. Графічне рішення задачі Reddy Mikks в програмі TORA.

Максимізувати z = Зx1 + 8х2


при виконанні умов
х1 + хг>8,
2х1 - 3х2<0,
x1 + 2x2< 30,
Зх1 - х2>0,
x1 < 10,
х2>9,
x1, х2 > 0.
Далі на аркуші паперу накресліть осі х1 і х2 в потрібному для цього завдання
масштабі (в програмі TORA можна клацнути на кнопці Print Graph (Роздрукувати графік),
яка розташована у верхній правій частині вікна, щоб отримати розграфлений лист). Тепер
самостійно накресліть перше обмеження. Для перевірки можна клацнути на відповідному
обмеженні в лівій частині вікна програми. Накресліть всі інші обмеження. Потім
побудуйте цільову функцію. Перевірте, чи правильно ви засвоїли графічне рішення задачі
ЛП, повторивши всі виконані дії в системі TORA.

10
2.2. Вирішити в програмі TORA всі завдання лабораторної роботи №1.
2.3. Вирішити такі завдання.
2.3.1. Розглянемо модель Reddy Mikks (файл ch2ToraReddyMikks.txt). За допомогою
TORA покажіть, що оптимальне рішення задачі ЛП завжди пов'язане з кутовий точкою
простору рішень. Спочатку введіть (або завантажте) вихідну модель ЛП. Знайдіть її
графічне рішення. Потім, клацнувши на кнопці View / Modify Input Data (Перегляд / Зміна
вихідних даних), поверніться у вікно введення даних і введіть представлені нижче
рівняння цільових функцій. У результаті ви повинні побачити, що при зміні кута нахилу
цільової функції оптимальне рішення будуть перебувати в різних кутових точках. Мета
цієї вправи - показати, що для того, щоб знайти оптимальне рішення завдання ЛП, досить
знати кутові точки простору рішень.
a) z = 5x1 + x2.
b) z = 5x1 + 4x2.
c) z = x1 + 3x2.
d) z = - x1 + 2x2.
e) z = - 2x1 + x2.
f) z = - x1 - x2.
2.3.2. У моделі "дієти" (файл ch2ToraDiet.txt) замінити цільову функцію наступною:
мінімізувати z = 0,8х1 + 0,8х2.
Використовуючи графічні можливості системи TORA, покажіть, що оптимальне рішення
пов'язане з двома різними кутовими точками, причому в обох точках оптимальне рішення
буде однаковим. В цьому випадку говорять, що завдання має альтернативний
оптимум. Поясніть, які умови призвели до такої ситуації, і покажіть, що насправді
завдання має безліч альтернативних оптимумів. Потім напишіть формулу для визначення
всіх таких рішень
2.3.3.Рассмотрім наступну модель ЛП:
максимізуватиz = 5х1 + 4x2
при виконанні умов

6x1 + 4х2 < 24,


6x1 + Зх2 < 22,5,
x1 + х2 < 5,
х1 + 2х2 < 6,
x1 + х2 < 1,
х2 < 2,
x1 х2 > 0.
В ЛП обмеження називається надлишковим, якщо його видалення з моделі не
змінює простір допустимих подій. Використовуючи систему TORA, визначте, які
обмеження надлишкові. Потім покажіть, що їх видалення не вплине на простір рішень і
оптимум.
2.3.4. Використовуючи систему TORA, покажіть, що якщо в моделі Reddy Mikks
видалити обмеження на ресурси (перші два обмеження), то простір рішень буде
необмеженим. Що в цьому випадку можна сказати про оптимальне рішення?
2.3.5. Припустимо, що в модель Reddy Mikks додано ще одне обмеження
х2>3. Використовуючи систему TORA, покажіть, що отримана модель містить суперечливі
обмеження, які одночасно не можуть бути задоволені. Тому модель не має допустимих
рішень.
2.3.6. Фабрика Wild West виробляє два типи ковбойських капелюхів. виробництво
капелюхи першого типу вимагає в два рази більше часових ресурсів, ніж виготовлення
капелюхи другого типу. Якщо фабрика буде виробляти тільки капелюхи другого типу, то в
день вона зможе виготовити 400 таких капелюхів.

11
Ринок накладає обмеження на виробництво капелюхів: не більше 150 капелюхів
першого і 200 капелюхів другого типу. Дохід від виробництва капелюхів становить 8 дол.
На одиницю першого типу і 5 дол. – другого типу. Застосуйте графічний метод для
визначення щоденного оптимального виробництва капелюхів обох типів.
2.3.7. Компанія Show & Sell має можливість рекламувати свою продукцію по
місцевому радіо і телебаченню. Бюджет на рекламу обмежений сумою 10 000 дол. На
місяць. Одна хвилина рекламного часу на радіо коштує 15, а на телебаченні – 300 дол.
Компанія припускає, що реклама на радіо за часом повинна перевищувати рекламу на
телебаченні не менше ніж в два рази. Разом з тим, відомо, що нераціонально
використовувати більше 400 хвилин реклами на радіо в місяць. Останні дослідження
показали, що реклама на телебаченні в 25 разів ефективніше реклами на радіо.
Розробіть оптимальний бюджет для реклами на радіо і телебаченні.

3. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.

Лабораторна робота №3

Тема. Рішення задачі лінійного програмування в програмі TORA


Мета роботи – вивчення виконання завдання лінійного програмування симплекс
методом за допомогою програми TORA.
1. Симплекс-метод є основним методом вирішення завдань ЛЗ. У програмній
системі TORA можна виконати всі ітерації симплекс-методу Спочатку введіть умови
задачі. Потім з меню SOLVE / MODIFY виберіть команду Solve> Algebraic> lterations> All-
Slack. (Команда All-Slack (Всі залишкові) вказує на те, що початкове базисне рішення
складається тільки з залишкових додаткових змінних. Далі задається точність, з якою
будуть відображатися вихідні результати, залишається клацнути на кнопці Go To Output
Screen (Перейти до екрану виведення).
На рис. 3.1 представлено вікно, в якому показані результати розрахунків для кожної
ітерації для моделі Reddy Mikks (файл ch3ToraReddyMikks.txt). Щоб перейти до наступної
ітерації, клацніть на кнопці Next Iteration (Наступна ітерація, це режим покрокового
виконання). Щоб відразу отримати остаточну відповідь, на кнопці All Iterations (Всі
ітерації). Якщо ви виконуєте обчислення в покроковому режимі, то на кожній ітерації
можна вказати вводиться і исключаемую змінні, клацнувши на відповідних стовпці і
рядку. Якщо ваш вибір коректний, то стовпець закраситься зеленим кольором, а рядок -
червоним. В іншому випадку для отримання повідомлення про помилку.
Найбільш загальним способом побудови початкового допустимого базисного
рішення задачі ЛП є використання штучних змінних. Ці змінні в першій ітерації грають
роль додаткових залишкових змінних, але
на наступних ітераціях від них звільняються. Розроблено два тісно пов'язаних між собою
методу знаходження початкового рішення, які використовують
штучні змінні: М-метод і двоетапний метод.

2. Завдання.
2.1. Вирішити завдання застосувавши М-метод:

12
мінімізувати
при виконанні умов

Для вирішення завдання за допомогою програми TORA (файл ch3ToraMmethodEx3-


4-l.txt), використовуйте команду Iterations> M-method (Ітерації> М-метод). Порівняйте
рішення при М = 1, М = 10 і М = 1000. Який висновок можна зробити з цього
експерименту?

Рис . 3.1. Рішення завдання Reddy Mikks симплекс-методом.

2.2. У прикладі 2.1 знайти початкову симплекс-таблицю для кожного з наступних


(незалежних) випадків і підрахувати коефіцієнти z-рядки після визначення всіх штучних
змінних.
а) Третє обмеження має вид
b) Друге обмеження має вид
с) Друге обмеження має вид
d) Цільова функція має вигляд: максимізувати
2.3. Існує наступна множина обмежень.

13
Для кожної з таких завдань знайти коефіцієнти z-рядки симплекс-таблиці після
введення штучних змінних.
а) Максимізувати при обмеженнях (1), (3) и (4).
b) Максимізувати при обмеженнях (1), (2), (4) и (5).
c) Мінімізувати при обмеженнях (3), (4) и (5).
d) Мінімізувати при обмеженнях (1), (2) и (5).
e) Мінімізувати при обмеженнях (1) и (5).
2.4. Дано таке множина обмежень:
1.
2.
3.
При цих обмеженнях вирішите завдання ЛП для наступних цільових функцій:
а) Максимізувати ,
b) Мінімізувати ,
c) Мінімізувати ,
d) Мінімізувати .
2.5. Дана наступна задача,
Максимізувати
при обмеженнях

У цьому завданні змінні можуть виконувати роль додаткових залишкових


змінних. Вони відрізняються від залишкових змінних тим, що мають ненульові
коефіцієнти у виразі цільової функції. Тому, якщо використовувати їх як початкові базисні
змінні, перед виконанням симплекс-методу слід перетворити в симплекс-таблиці z-
рядок. Вирішити це завдання без штучних змінних, використовуючи в початковому
базисному рішенні змінні .
2.6. Без застосування штучних змінних вирішити наступне завдання,
використовуючи в початковому базисному рішенні змінні
Мінімізувати
при обмеженнях

2.7. Дана наступна задача.


Максимізувати
при обмеженнях

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

2.9 Двоетапний метод. На першому етапі двоетапного методу завжди мінімізується


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

а) Максимізувати
b) Мінімізувати
c) Максимізувати
d) Мінімізувати
2.10. Показати, що наступне завдання не має допустимого значення. Записати задачу ЛП
для першого етапу і потім застосувати програму ТОРА для пошуку її рішення:
Максимізувати
при виконанні умов

2.11. Дана наступне завдання.


Максимізувати
при виконанні умов

а ) За допомогою ТОРА, показати, що перший етап закінчитися з нульовою штучної


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

15
з ) Показати, що нульові штучні змінні можна видалити з базисного рішення на першому
етапі (до початку другого) шляхом вибору введеної перемінної за допомогою ненульового
провідного елементу в рядку штучної змінної.
2.12. Розглянути задачу.
Максимізувати
при виконанні умов

а) За допомогою програми ТОРА показати, що перший етап закінчиться з двома


нульовими штучними змінними в базисному рішенні.

3. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі..

Лабораторна робота №4

Тема. Рішення задачі цілочислового програмування


Мета роботи – вивчення методів вирішення завдань цілочисельного
програмування.
1. Для вирішення завдань ЦЛП в програмі TORA з основного меню виберіть
команду Integer Programming (Целочисленное програмування). Після введення вихідних
даних (наприклад, файл Ch9ToraCapitalBudgetEx9-ll.txt) перейдіть в вихідне вікно і для
отримання оптима льного рішення виберіть Automated B & B (Автоматичні обчислення
методом гілок і меж).
2. Завдання.
2.1. Модуль цілочисельного програмування системи TORA дозволяє інтерактивно
генерувати дерева підзадач в методі гілок і меж. Щоб скористатися цією можливістю, в
вихідному вікні модуля цілочисельного програмування виберіть опцію User-guided В & В
(Навчальний режим методу гілок і меж).
Дослідити в інтерактивному режимі наступне завдання цілочисельного лінійного
програмування:
Максимізувати 5 x1  4 x2
при обмеженнях
x 1  x 2  5,
10 x1  6 x2  45,
x1 , x2  0, целые .
2.2. Вирішити задачу розподілу капіталовкладень.
Оцінюється п'ять проектів з точки зору їх можливого фінансування на майбутній
трирічний період. Таблиця 4.1 містить очікуваний прибуток від реалізації кожного проекту
і розподіл необхідних капіталовкладень по роках.
Таблиця 4.1.

16
Передбачається , що кожен затверджений проект буде реалізований за трирічний
період. Необхідно визначити сукупність проектів, якій відповідає максимум сумарного
прибутку.
Задача зводиться до вирішення типу так-ні щодо кожного проекту. Визначимо виконавчі
змінні

Завдання ЦЛП буде записана наступні чином.


Максимізувати
при обмеженнях 5

2.3. Вирішити завдання про завантаження літака вантажами п'яти типів. Вага , об’єм

, а також вартість одиниці вантажу кожного типу наведено в таблиці 4.2.

Таблиця 4.2.

Максимальна вантажопідйомність і обсяг літака рівні 112 тонн і 109 куб. ярдів
відповідно. Сформулювати у вигляді моделі ЦЛП завдання визначення набору вантажів,
що забезпечує максимальну вартість вантажу і знайти рішення за допомогою програми
ТОРА.
2.4. Нехай є 7 пляшок вина, 7 пляшок, заповнених наполовину, і 7 порожніх
пляшок. Необхідно розподілити 21 пляшку між трьома персонами так, щоб кожен отримав
7 пляшок. У той же час кожен повинен отримати однакову кількість
вина. Сформулювати цю задачу у вигляді завдання ЦЛП з обмеженнями у вигляді
рівностей і знайти рішення, використовуючи програму ТОРА.

17
2.5.Капітан торгового судна, який хотів нагородити трьох членів команди за їх
героїчні зусилля з порятунку вантажу корабля під час несподіваного шторму, взяв деяку
суму грошей у скарбника і віддав наказ старшому помічнику розподілити їх порівну
між трьома матросами після того, як корабель досягне берега. Одного разу вночі один з
матросів вирішив взяти свою третю частину заздалегідь. Після поділу на три рівні частини
залишилася одна монета, яку матрос вирішив залишити собі (на додаток до третини
грошей). На слідуючу ніч другий матрос вирішив здійснити такий же план і, повторивши
розподіл на три частини суми, що залишилася, привласнив собі ще й монету, яка
залишалася після розподілу. На третю ніч третій матрос взяв третю частину того, що
залишилося і одну додаткову монетку. Коли корабель досяг берега, старший помічник
капітана розподілив залишок грошей порівну між трьома матросами, і знову залишилася
одна монета. Старший помічник відклав монету в сторону і вручив матросам призначені
їм рівні частини. Скільки грошей було на самому початку?
2.6.Решіть завдання про покриття. Для забезпечення безпеки студентів відділ безпеки
американського університету встановлює телефони екстреного виклику на території
студентського містечка. Відділу бажано встановити мінімальну кількість
телефонів таким чином, щоб на кожній з основних вулиць цього міста був розташований
по крайній мере один телефон. На рис. 4.1 представлені основні вулиці (від А до К)
студентського містечка.

Рис. 4.1. Схема улиц студенческого городка.


2.7. Компанія ABC займається доставкою вантажів п'яти споживачам. Можна вибрати такі
маршрути перевезення вантажів.

Ці маршрути визначаються вантажопідйомністю автомобіля,


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

18
достатню для доставки вантажів лише споживачам 1, 2, 3 і 4. Наступна таблиця містить
відстані (в милях) між терміналом компанії ABC і споживачами.

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


пройдений сумарний шлях. Оптимальне рішення може бути таким , що один і той же
споживач обслуговується більш ніж одним маршрутом. Але при реалізації такого рішення
використовується тільки один з цих маршрутів. Сформулювати задачу у вигляді завдання
ЦЛП і знайдіть оптимальне рішення, використовуючи програму TORA.
2.8. Ексцентричний шейх залишив заповіт щодо розподілу стада верблюдів між
трьома дітьми: Тарік отримує не менше половини стада, Шаріф – не менше однієї третини,
а Маїса - щонайменше одну дев'яту частину. Залишок заповідав благодійної організації. У
заповіті не згадувався розмір стада, говорилося лише, що кількість верблюдів - число
непарне і благодійна організація отримує в точності одного верблюда. Скільки верблюдів
залишив шейх і скільки отримав кожен з його дітей?
2.9. Ще одне завдання про верблюдах. За пустелі повільно йде караван верблюдів, в
каравані є одногорбий верблюди, а є двогорбий всього їх 40. Якщо перерахувати всі горби
у цих верблюдів, то вийде 57 горбів. Скільки в цьому каравані одногорбих верблюд ів ?
2.10. Завдання з постійними витратами. Три оператора мобільного зв'язку
запропонували мені підписатися на їх послуги з в межах Сполучених Штатів. Послуги
компанії MaBell стоять 16 дол. На місяць плюс 0,25 дол. За кожну хвилину
зв'язку. Компанія PaBell оцінює св ої послуги в 25 дол. На місяць, але має похвилинну
оплату в 0,21 дол. Що стосується компанії BabyBell, місячна плата дорівнює 18 дол., А
вартість хвилини зв'язку - 0,22 дол. Мої телефонні дзвінки на далекі відстані в середньому
складають зазвичай 200 хвилин в м есяц . Передбачається, що я не вношу помісячного
плати, якщо не використовую телефон для дзвінків на далекі відстані, і що я можу
розподіляти дзвінки між трьома компаніями, як мені хочеться. Як я повинен
використовувати три компанії, щоб мінімізувати свій місячнийтелефонний рахунок?
2. 11.Сокровіща короля Тута знаходяться в музеї в Новому Орлеані. План музею,
що складається з декількох кімнат, з'єднаних відкритими дверима, показаний на
рис. 4.4. Сторож, який перебуває біля дверей, може спостерігати за двома суміжними
кімнатами. Адміністрація музею за цікавився , щоб в кожній кімнаті присутній сторож, але
число сторожів має бути мінімальним. Сформулюйте задачу у вигляді завдання ЦЛП і
знайдіть її оптимальне рішення, використовуючи програму TORA.

19
Рис . 4.2. План музею.
3. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.

Лабораторна робота №5
Тема. Транспортні задачі.

Мета роботи – вивчення методів вирішення транспортних завдань.


1. Рішення транспортної задачі графічним методом

Нехай необхідно організувати оптимальні по транспортним витратам перевезення


продукції з двох складів до трьох споживачам. Щомісячні запаси продукції на складах
рівні 120 і 180 т, а щомісячні потреби покупців становлять 70, 140 і 90 т
відповідно . Транспортні витрати з доставки продукції представлені в таблиці 5.1.
Таблиця
5.1
Транспортные расходы по доставке 1 т продукции (тыс. грн.)

Споживачі
Склади
В1 В2 В3

А1 8 5 6

А2 4 9 7
ТЗ являє собою завдання лінійного програмування, яку можна вирішувати
симплекс-методом або методом потенціалів. Скористаємося найпростішим способом
вирішення – графічним методом, щоб показати на цьому прикладі, як можна
використовувати графічний мето д при вирішенні будь-якої задачі лінійного
програмування в разі двох невідомих.
Позначимо xij через кількість тон, яке буде перевезено з i-го складу до j-му
споживачеві.
Перевіримо завдання на збалансованість:
сумарне наявність на складах = 120 + 180 = 300 т;

20
сумарна потреба в продукції = 70 + 140 + 90 = 300 т.
З цього випливає, що дана ТЗ збалансована.
Збалансована транспортна матриця представлена в таблиці 5.2.

Таблиця
5.2
Транспортна матриця задачі

Споживачі
Склади Запас, т
В1 В2 В3

А1 8 5 6 120

А2 4 9 7 180

Потреба, т 70 140 90 300

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


враховуються в моделі, задається наступним виразом:

z  8 x11  5 x12  6 x13  4 x21  9 x22  7 x23  min ( тыс. грн. мес.). (5)

Задамо обмеження ТЗ:


 x11  x12  x13  120
 x  x  x  180
 21 22 23
 x11  x21  70
 (6)
 x12  x22  140
 x13  x23  90

 xij  0  i  1,2; j  1,3
Покладемо , що x11  u , x12  v. Тоді можна висловити все решта невідомі через
змінні u і v:
x13  120  u  v;
x21  70  u;
x22  140  v;
x23  90  x13  90   120  u  v   u  v  30.
Висловимо через u і v цільову функцію:
F  8u  5v  6  120  u  v   470  u   9 140  v   7  u  v  30 .
(7)
F  5u  3v  2050  min .
З огляду на те, що всі xij невід'ємні, отримаємо наступну систему нерівностей:

21
120  u  v  0
70  u  0

140  v  0
 (8)
u  v  30  0
u  0

v  0
Для того щоб знайти в першій чверті площини Оuv безліч точок, координати яких
задовольняють зазначеним вище нерівностей, необхідно спочатку побудувати такі прямі:
120  u  v  0,
70  u  0,
140  v  0,
u  v  30  0.
Нерівності (8) визначають на площині (v, u) п'ятикутник з вершинами: (0, 30), (0,
70), (50, 70), (120, 0), (30, 0) (див. Лаб. роботу №1). Лінійна функція F = f(u, v) досягає
найменшого значення в одній з вершин цього п'ятикутника. Неважко переконатися в тому,
що F = Fmin = 1690 при u = 0, v = 120. Отже, ми знайшли оптимальний план перевезень:

x11  0,
x12  120,
x13  0,
x21  70,
x22  20,
x23  90.
2. Рішення транспортних задач в системі TORA.
Щоб отримати в програмі TORA рішення транспортної задачі, в меню Main Menu
виберіть команду Transportation Model (Транспортна модель). Потім в меню
SOLVE / MODIFY виберіть команду Solve> Final solution.
Навчальний режим програми TORA. З меню Solve / Modify виберіть команду
Solve> lterations. Щоб приступити до вирішення транспортної задачі, з появи підміню
виберіть один з трьох методів вирішення (північно-західного кута, найменшою вартістю
або Фогеля). У цьому режимі можна використовувати два корисних інтерактивних кошти.
1. Будь-які значення потенціалів u і v можна прирівняти до нуля перед
обчисленням другої ітерації (за замовчуванням u1  0 ). Якщо ви прирівняли до нуля будь-
якої потенціал, відмінний від u1 , то помітите, що, незважаючи на те, що значення u i і v j
змінилися, значення в небазисних ( ui  v j  cij ) залишилися незмінними. Це означає, що
спочатку будь-які u і v можуть прирівнюватися до нуля (в дійсності можуть приймати
будь-яке значення), що не впливає на застосування умови оптимальності.
2. Можна самостійно вибрати замкнутий цикл, клацнувши (в будь-якому порядку)
на осередках, які складуть цей цикл. Якщо був зроблений правильний вибір, колір
осередків зміниться (зелений для вводяться змінних, червоний для виключаються змінних
і сірий для інших ). На рис. 5.1 представлено вирішення завдання з лекційної завдання "3
елеватора - 4 млини", отримане в системі TORA із застосуванням методу північно-
західного кута.
3. Завдання.
3.1. Вирішити в системі TORA наступні транспортні завдання. Допустиме
початкове рішення для всіх завдань вибирати трьома можливими методами.
3.1.1. Три нафтопереробні заводи з максимальною щоденної продуктивністю в
6, 5 і 8 млн. Галонів постачають три бензосховищами, щоденна потреба яких складає
22
4, 8 і 7 мільйонів галонів бензину відповідно. Бензин транспортується в
бензосховищами по трубопроводу. Вартість перекачування бензину на одну милю,
розрахована з урахуванням довжини трубопроводу, становить 1 цент на 100
галонів. У таблиці відстаней, наведеної нижче, показано, що завод 1 цієї статті
не пов'язаний зі сховищем 3. Сформулюйте відповідну транспортну задачу.
Бензосховища
1 2 3
1 120 180 -
Заводи 2 300 100 80
3 200 250 120

3.1.2. Нехай в задачі 3.1.1 продуктивність нафтопереробного заводу 3 знизилася до


6 млн. Галонів. Крім того, обов'язково повне задоволення попиту бензосховищами 1, а
недопоставки в сховища 2 і 3 штрафуються 5 центами за кожен
галон. Сформулюйте відповідну транспортну задачу.
3.1.3.Пусть в завданні 3.1.1 щоденний попит сховища 3 падає до 4 млн.
Галонів. Надлишок продукції на нафтопереробних заводах 1 і 2 повинен переправлятися
на вантажівках в інші сховища. Відповідні середні транспортні витрати складають 1,5 дол.
За 100 галонів при перевезенні з заводу 1 і 2,2 дол. При перевезенні з заводу 2. Завод 3
може використовувати надлишок бензину для потреб свого хімічного
виробництва. Сформулюйте відповідну транспортну задачу.
3.1.4.Автомобілі перевозять в трейлерах з трьох центрів розподілу п'яти
продавцям. Вартість перевезення розрахована на основі відстаней між вихідними
пунктами та пунктами призначень. У вартість туру не залежить від того, наскільки повно
завантажується трейлер. В наведеної нижче таблиці вказані відстані між центрами
розподілу і продавцями, а також величини, що характеризують щомісячний попит і обсяг
виробництва, які обчислюються кількістю автомобілів. Один трейлер може перевозити до
18 автомобілів. Сформулюй ті транспортну задачу, беручи до уваги той факт, що вартість в
розрахунку на 1 милю шляху, пройденого трейлером, дорівнює 10 дол.

Продавці Обсяги
1 2 3 4 5 поставок
Центри 1 100 150 200 140 35 400
розподілу 2 50 70 60 65 80 200
3 40 90 100 150 130 150
100 200 150 160 140
3.1.5. (Лекційна транспортна модель.) Заводи автомобільної фірми MG
розташовані в Лос-Анджелесі, Детройті та Новому Орлеані. Основні центри розподілу
продукції зосереджені в Денвері і Майамі. Обсяги виробництва зазначених трьох заводів
дорівнюють 1000, 1500 і 1200 автомобілів щоквартально. Величини квартального попиту в
центрах розподілу становить 2300 і 1400 автомобілів відповідно. Вартість перевезення по
залізниці одного автомобіля на одну милю дорівнює приблизно 8 центам. Відстані в милях
між заводами і центрами розподілу наведені в таблиці.

Денвер Майамі
Лос-Анджелес 1000 2690
Детройт 1250 1350
Новий Орлеан 1275 850

23
Відстані можна перевести в вартість перевезення одного автомобіля (перекладної
коефіцієнт, що дорівнює 0.88 дол./миля). В результаті виходить наступна таблиця
вартостей (округлених до долара), яка містить коефіцієнти сij загальної моделі.

Денвер Майамі
(1) (2)
Лос-Анджелес (1) 80 215
Детройт (2) 100 108
Новий Орлеан (3) 102 68

3.1.6. Розбалансує завдання 3.1.5. за попитом і за пропозицією і вирішите в системі


TORA.
3.1.7.Решіте завдання розподілу верстатів чотирьох різних типів по п'яти типам
робіт. Нехай є 25,30,20 і 30 верстатів відповідних типів. П'ять типів характеризуються
20,20,30,10 і 25 операціями відповідно. На верстаті 4 не може виконуватися робіт а 4.
Виходячи з коефіцієнтів вартості операції, представлених в наведеній нижче таблиці,
побудуйте модель для оптимального розподілу верстатів по роботах..

Тип робіт
1 2 3 4 5
1 10 2 3 15 9
Тип 2 5 10 15 2 4
верстатів 3 15 5 14 7 15
4 20 15 13 - 8

3.1.8. Завдання про ресторан. Директор ресторану, складаючи план роботи на


чергові N днів, повинен подбати про щоденне запасі чистих серветок. Потреба ресторану
на ці N днів дорівнює b1, b2, ... , bn і може бути задоволена трьома способами: 1)
за Купка нових серветок за ціною р1 центів; 2) пранням використаних серветок в пральні з
терміном виконання 24 год за ціною р2 центів; 3) пранням використаних серветок в
пральні з терміном виконання 48 год за ціною р3 центів. Завдання можна сформулювати в
вигляді транспортної наступним чином. Є N+1 вихідних пунктів і N пунктів призначення.
Один з вихідних пунктів відповідає джерела надходження нових серветок, інші N вихідних
пунктів розглядаються як джерела надходження серветок з праль ой в кінці кожного з N
днів. Пункти призначення відповідають кожному з N днів планованого періоду.
Коефіцієнт вартості "перевезення" дорівнює р1, якщо постачання здійснюється з
вихідного пункту, що відповідає новим серветкам; р2, якщо серветки надходять з пральні з
24- годинним терміном виконання; р3, якщо термін виконання 48 ч.
Можливий обсяг поставок нових серветок повинен бути дорівнює сумарній
величині запиту за все N днів, оскільки цілком імовірно, що весь попит припаде на нові
серветки. Крім того, величина пропозиції в кінці дня I має дорівнювати попиту в той же
самий день. Сформулюйте і вирішите відповідну транспортну задачу.
3.1.9.Покажіте, що рішення транспортної задачі не зміниться, якщо до всіх
коефіцієнтам вартості рядків або стовпчиків вартостей додати постійне число K. Як така
зміна відбитися на величині цільової функції?
3.2. Одну з задач п.3.1 вирішити графічно.
4. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.
24
Лабораторна робота №6
Тема. Завдання про призначення.

Мета роботи – вивчення методів задачі про призначення.


1. Задача про призначення (загальна інформація). "Кращий працівник для
виконання даної роботи" - ось підходяще короткий опис задачі про призначення. У цьому
завданні необхідно призначити працівників на певні роботи; кожен працівник може
виконувати будь-яку роботу , хоча і з різним ступенем майстерності. Якщо на деяку роботу
призначається працівник саме тієї кваліфікації, яка необхідна для її виконання, тоді
вартість виконання роботи буде нижче, ніж при призначенні на цю роботу працівника
невідповідної кваліфікації. Мета завдання – знайти оптимальний (мінімальної вартості)
розподіл працівників по всіх заявлених робіт.
Загальна задача призначення п працівників на п робіт представлена в табл. 6.1.
Таблиця 6.1.

Кофіцієнт сij дорівнює вартості призначення працівника i на роботу j (i, j  1,2,..., n)


Те , що кількість працівників дорівнює кількості робіт, не є обмеженням спільності,
оскільки завжди можна ввести в модель мертвих душ або фіктивні роботи. Задача про
призначення є окремим випадком транспортної задачі, в якій працівник і відповідають
пунктам відправлення, а роботи - пунктам призначення. В даному випадку все величини
попиту і пропозиції рівні 1. Вартість "транспортування" робочого i на роботу j дорівнює
сij j. Задачу про призначення можна ефективно вирішити точно так же, як і транспортну
задачу. Разом з тим той факт , що всі величини попиту і пропозиції рівні 1, призвів до
розробки спрощеного алгоритму рішення, названого угорським методом. Математична
постановка задачі має вид
n n
min : Z  ��cij xij ,
i 1 j 1
n
при обмеженнях: �xij  1, i  1, n;
j 1

n
�xij  1, j  1, n;
i 1

25
Обмеження першого виду означають, що на кожну i-ю роботу повинен бути призначений
тільки один виконавець. Обмеження другого виду означають, що кожен j-й виконавець
повинен бути призначений для виконання тільки однієї роботи.
Дана задача про призначення відноситься до транспортної за умови ai  b j  1. Як і в
транспортній, можна говорити про відкриту (незбалансованої) задачі про призначення,
якщо число робіт відмінно від числа виконавців. Якщо число робіт менше числа
виконавців (m < n) , вводять n  m фіктивні роботи (стовпці) з нульовими коефіцієнтами
матриці витрат, cim 1  0, ..., cin  0, i  1, n. В разі ж (m > n) вводять m  n фіктивних
виконавців (рядки), які не в змозі виконати запропоновані роботи, а значить, відповідні
елементи матриці витрат можна вважати дуже великими (штрафами М).

2. Рішення задачі про призначення методом Мака


Метод застосовують для розподілу функцій між елементами системи, коли кожен з них
може виконувати будь-яку з функцій з різною ефективністю. Планується виконання одним
елементом однієї функції, і на виході системи потрібно отримати максимальну
ефективність . Наприклад, в організації n працівників, між якими потрібно розподілити n
завдань так, щоб всі завдання були виконані за сумарно мінімальний час. Час виконання
завдань безпосередньо залежить від кваліфікації, властивостей характеру виконавців,
ефективні праці яких, в силу цих та інших причин, різна.
Алгоритм рішення задачі методом Мака. Для вирішення завдання методом Мака
складається матриця: нехай по вертикалі вказані номери працівників (Р) організації, по
горизонталі - номери завдань (З), що відповідають різним посадам. Таблицю заповнимо
значеннями часу виконання завдань. Будемо шукати мінімальне сумарне час виконання
всіх n завдань. Для прикладу візьмемо матрицю 5 × 5 (табл. 6.2).

Таблиця 6.2.

З1 З2 З3 З4 З5

Р1 10 5 9 18 11

Р2 13 19 6 12 14

Р3 3 2 4 4 5

Р4 18 9 12 17 15

Р5 11 6 14 19 10

Припустимо , час виконання завдань за проектом вимірюється в тижнях. Нехай xij -


участь (неучасть) i-го людини в виконанні j-го завдання. Оскільки кожна людина повинна
бути задіяний і виконувати одне завдання і воно повинно бути виконано, отримуємо
систему обмежень по рядках:

 х11  х12  х13  ...  х15  1



...
 х  х  х  ...  х  1.
 51 52 53 55

26
Аналогічно будується система обмежень по стовпцях:

х11  х21  х31  ...  х51  1



...
х  х  ...  х  1.
 15 25 55

У цільову мінімізіруемую функцію (повне час виконання завдань) в якості


коефіцієнтів при xij увійдуть відповідні значення часів: L = 10x 11 +5x 12 +…+19x 54 +10x 55
.
В основі методики, яка буде викладена далі, лежить наступне твердження:
положення оптимального вибору не змінюються, якщо до кожного елементу будь-якої
рядки або стовпці додати одне і те ж число або відняти його.
Будемо вирішувати завдання по кроках.
Крок 0. Виберемо в кожному рядку матриці мінімальний елемент і підкреслимо
його (табл. 6.3).
Розділимо множину всіх стовпців матриці на дві підмножини: А і А'. А назвемо
безліччю обраних стовпців, А'- невибраних. На самому початку ітерації множина А завжди
порожнє, А 'містить в нашому випадку все п'ять стовпців:
А'={1, 2 ,3, 4, 5}.
Крок 1. Виберемо з А' стовпець, що містить найбільшу кількість підкреслених
елементів, і переведемо його в А.
Крок 2. Праворуч від матриці навпроти рядків випишемо всі підкреслені елементи
множини А, яке містить в даному випадку один стовпець. Такий елемент може бути не у
кожного рядка. Зліва від матриці тільки для тих рядків, в яких є підкреслені елементи
і з А, запишемо різниці: мінімальний елемент множини А' для рядка мінус підкреслений
елемент з безлічі А того ж рядка. Потім знайдемо мінімальне значення цих різниць:
min(ai  bi ),

де bi – підкреслений елемент

Таблиця 6.4
9–5=4 10 5 9 18 11 b1=5
 13 19 6 12 14 
3–2=1 3 2 4 4 5 b3=2
12–9=3 18 9 12 17 15 b4=9
10–6=4 11 6 14 19 10 b5=6

Крок 3. Виділимо стовпець з А і осередок з мінімальною різницею, рівної 1.


Курсивом виділені мінімальні елементи рядків з А', з яких ми вичитали bi. За наявності
кількох однакових мінімальних різниць, можна брати будь-яку з них, але бажано ту,
котра найбільш вигідна для наділення кожного з стовпців одним підкресленим елементом.
Нагадаємо , що на даному етапі А'={1, 3, 4, 5}, А={2}.
Крок 4. Додамо отриману мінімальну різницю 1 до всіх елементів 2-го стовпця
(виділеного А). Всі підкреслення в таблиці зберігаємо.
Крок 5. У новій табл. 6.5. той елемент з А', з якого ми вичитали b3 і отримали
мінімальну різницю, відзначимо трьома крапками внизу (в подальшому буде два типи
підкреслених елементів: зі звичайним підкресленням і підкреслені трьома крапками).

27
Таблиця 6.5.
10 6 9 18 11
13 20 6 12 14
 3

18
3
10
4
12
4
17
5
15
11 7 14 19 10

Крок 6. Стовпець, що містить елемент з трьома крапками, позначимо С.


Можливі дві ситуації:
1) стовпець С не містить інших підкреслених елементів: тоді підкреслимо елемент з
трьома крапками повністю, приберемо при цьому інше підкреслення в одному рядку з
ним. Це новий елемент, який увійшов в базис замість «старого». Потім переходимо до
кроку 7;
2) стовпець С містить ще підкреслені елементи: переводимо цей стовпець в безліч
А (воно буде тепер складатиметься з двох стовпців - це затінені стовпці), «забуваємо» про
три точки і повертаємося до кроку 2.
У нашому випадку стовпець С містить тільки елемент, підкреслений трьома
крапками. Підкреслимо число «3» повністю в стовпці С і видалимо підкреслення числа
«3» в А.
Зрозуміло , що підкреслень не повинно бути більше, ніж працівників або завдань,
тобто не більш як 5.
Переходимо до кроку 6 (табл. 6.6).

Таблиця 6.6
10 6 9 18 11
13 20 6 12 14
3 3 4 4 5
18 10 12 17 15
11 7 14 19 10

Крок 7. Не кожен стовпець містить по одному підкресленому елементу: в


четвертому і п'ятому стовпчиках їх немає, у другому – цілих три. Отже, ми не знайшли
оптимум. Повертаємося до кроку 1 і починаємо нову ітерацію.
Множина А стає порожнюю, знову вибираємо стовпець для А (див. виділення в
табл. 6.6)
Додаємо «2» до виділеного одну і в новій табл. 6.7 підкреслюємо «12» трьома
крапками.

Таблиця 6.7
9–6=3 10 6 9 18 11 b1=6
 13 20 6 12 14 
 3 3 4 4 5 
 12 12–10=2 18
10–7=3 11
10
7 14
17
19
15
10
b4=10
b5=7
А С
Так як в стовпці С є ще підкреслений елемент «6», то видалимо три точки,
переводимо стовпець С в множині А (табл. 6.8) і повернемося до кроку 4 (табл. 6.9).

Таблиця 6.8
9–6=3 10 8 9 18 11 b1=6
28
 13 22 6 12 14 
 3 5 4 4 5 
12– 18 12 12 17 15 b4=10
10=2
10–7=3 11 9 14 19 10 b5=7

Таблиця 6.9
10–8=2 10 8 9 18 11 b1=8
12–6=6 13 22 6 12 14 b2=6
 3 5 4 4 5 
15–12=3 18 12 12 17 15 b4=12
10–9=1 11 9 14 19 10 b5=9
А А

Збільшимо обидва стовпці (2, 3) множини А на 1 (табл. 6.10).

Таблиця 6.10
10 9 10 18 11
13 23 7 12 14
3 6 5 4 5
18 13 13 17 15
 10 11 10 15 19

Підкреслюємо «10» повністю, видаляємо підкреслення «10» у другому


стовпці. Тепер тільки в четвертому стовпці немає підкресленого елемента. Вважаємо А
порожнім і починаємо нову ітерацію (табл. 6.11-6.13).

Таблиця 6.11
10–9=1 10 9 10 18 11 b1=9
 13 23 7 12 14 
 3 6 5 4 5 

13
13
13=0

18
11
13
10 15
17
19
15
10
b4=13

Таблиця 6.12
10–9=1 10 9 10 18 11 b1=9
12–7=5 13 23 7 12 14 b2=7
 3 6 5 4 5 
 13 15–13=2

18
11
13
10 15
17
19
15
10
b4=13

Таблиця 6.13
11–10=1 10 10 11 18 11 b1=10
12–8=4 13 24 8 12 14 b2=8
4–3=1 3 7 6 4 5 b3=3
15–
18 14 14 17 15 b4=14
14=1
 11 11 16 19 10 

Маємо три однакові мінімальні різниці, рівні 1. Виберемо ту, яка допоможе

29
«заповнити» підкресленим елементом четвертий стовпець (табл. 6.14, 6.15).

Таблиця 6.14
10 10 11 18 11
13 24 8 12 14
4 3
18
7
14
6
14 17
5
15
11 11 16 19 10

Таблиця 6.15
 10
10–10=0
– 13
10
24
11
8
18
12
11
14
– 3 7 6 4 5
14–14=0 18 14 14 17 15
– 11 11 16 19 10

Підкреслюємо повністю число «10» в першому стовпці першого рядка і отримуємо


оптимальне рішення. Тепер потрібно записати відповідь до вирішеною завданню. Для
цього на вихідну матрицю наносимо у відповідних місцях підкреслення оптимального
розташування елементів (Таблиця 6.16).
Таблиця 6.16
З1 З2 З3 З4 З5
Р1 10 5 9 18 11
Р2 13 19 6 12 14
Р3 3 2 4 4 5
Р4 18 9 12 17 15
Р5 11 6 14 19 10

Складемо всі підкреслені елементи і отримаємо мінімальний час виконання всіх


завдань:

Т=10+9+6+4+10=39.

3. Завдання.
Вирішіть наведені нижче задачі про призначення:
a) Вирішіть завдання угорським методом.
b) За допомогою програми TORA вирішите завдання як транспортні.
з ) Вирішіть завдання методом Мака.
3.1.Трое дітей Джоя Кліні – Джон, Карен і Террі – бажають підзаробити трохи
грошей на шкільну екскурсію в місцевий зоопарк. М-р Кліні вибрав три види робіт, які
діти виконати можуть за певну плату: стрижка газону, прибирання гаража і
мийка сімейного автомобіля. Щоб уникнути непотрібних суперечок між дітьми, він
попросив кожного (звичайно, по секрету), скільки за кожен вид робіт вони хочуть
отримати. Результати опитування (в дол.) представлені в табл.6.17.
Таблиця 6.17

30
Як ґрунтуючись на цій інформації, розподілити роботи між дітьми з
мінімальними (грошовими) втратами для м-ра Кліні?
3.2. Дана наступна задача розподілу чотирьох робочих за чотирма видами
робіт. Різна кваліфікація робітників обумовлює різну вартість виконання робіт. Вартість
робіт (дол.) Приведена в табл. 6.18. Відзначимо, що перший робітник не може
виконувати роботу 3, а третій – роботу №4. Знайдіть оптимальне рішення.
Таблиця 6.18.

3.3. Нехай в задачі з попередньої вправи можна ввести нового (п'ятого) робітника,
здатного виконати будь-який вид робіт з вартістю відповідно 60, 45, 30 і 80 дол. Чи буде
економічно вигідним замінити одного з "працюють" робочих новим?
3.4. Нехай в задачі з вправи 3.2. необхідно ввести новий вид роботи, який може
виконати будь-який з чотирьох робітників, з вартістю відповідно 20, 10, 20 і 80 дол. Чи
буде нова робота більш вигідною в порівнянні з наявними?
3.5. Бізнесмен повинен зробити чотири поїздки туди і назад зі свого головного
офісу в Далласі в філію в Атланті (дані про поїздки наведені в табл. 6.19). Квиток туди і
назад, тобто Даллас-Атланта-Даллас, коштує 400 дол. Знижка 25% надається тоді, коли
дати відправлення і прибуття збігаються з вихідними днями (субота та неділя). Якщо в
квитку між датами прибуття в Атланту і відправлення з неї не менше 21 дня, то знижка
збільшується до 30%. Квиток в одну сторону (в обидва напрямки) коштує 250 дол. Яку
мінімальну суму може витратити на квитки бізнесмен?
Таблиця 6.19

4. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.

Лабораторна робота №7

Тема. Оптимізаційні задачі на мережах.


Мета роботи – вивчення методів завдань оптимізації на мережах і графах.
1. Загальний план. В рамках теорії дослідження операцій розглядається велика
кількість практичних завдань, які можна сформулювати і вирішити як мережеві
моделі. Недавні дослідження показують, що не менше 70% реальних завдань
математичного програмування можна представити у вигляді мережевих
моделей. будуть розглянуті наступні п'ять алгоритмів.
31
1. Алгоритм знаходження мінімального остовного дерева.
2. Алгоритм пошуку найкоротшого шляху.
3. Алгоритм визначення максимального потоку.
2. Мінімальна кістяк.
2.1. Розглянемо таку задачу. Телевізійна компанія планує підключення до своєї
кабельної мережі п'яти нових районів. На рис. 7.1 показана структура планованої мережі і
відстані (в милях) між районами і телецентром. Необхідно спланувати найбільш
економічну кабельну мережу.

Рис. 1 Кабельна мережа телевізійної компанії

Щоб почати виконання алгоритму побудови мінімального остовного дерева,


виберемо вузол 1 (або будь-який інший вузол). Тоді

C1  1 и С1   2,3,4,5,6 .
Послідовні ітерації виконання алгоритму представлені на рис. 2. Тут тонкими
лініями показані ребра, що з'єднують вузли, що належали множинам C k і C k , серед яких
шукається ребро з мінімальною вартістю (довжиною). Це знайдене ребро показано
пункт ірной лінією. Товстими суцільними лініями позначені ребра, що з'єднують вузли
множини C k (і які раніше позначалися пунктирними лініями).

Ітерація 1 Ітерація 2

32
Ітерація 3 Ітерація 4

Ітерація 5 Ітерація 6
(Мінімальне остовне дерево)

Рис. 2 Послідовні ітерації виконання алгоритму побудови мінімального остовного


дерева

Наприклад , на першій ітерації ребро (1, 2) має найменшу вартість (тобто найменша
відстань між пунктами мережі) серед всіх інших ребер, що з'єднують вузол 1 з вузлами
множини C k (відзначимо, що вузол 6 не має ребра, безпосередньо з'єднує його з
у злом 1). Тому j = 2 і C 2  1,2 , C 2   3,4,5,6 .
Програма TORA може знаходити мінімальне остовне дерево. Для цього з меню
Main menu виберете команду Network model => Minimal spanning tree (Мережеві моделі =>
Мінімальне остовне дерево). Далі меню SOLVE / MODIFY виберіть команду Solve problem
=> Go to output screen (Вирішити завдання => Перейти до вихідного вікна). У вихідному
вікні клацніть на кнопці Starting node (Початковий вузол) і потім отримання рішення. Щоб
отримати рішення з новим початковим вузлом, клацніть на кнопці Starting node.
2.2. Завдання по розділу 1.
2.2.1. Вирішити в програмі TORA з прикладу 2.1.
2.2.2. Вирішити задачу з прикладу 2.1, починаючи з вузла 5 (замість вузла 1), і
переконатися, що отримано те ж саме рішення.
2.2.3. Знайти мінімальне остовне дерево для мережі з прикладу 6.2.1 при виконанні
кожного з наступних умов окремо:
вузли 5 і 6 пов'язані 2-мильним кабелем;
вузли 2 і 5 не пов'язані;
вузли 2 і 6 пов'язані 4-мильним кабелем;
вузли 1 і 2 пов'язані кабелем довжиною 8 миль;
вузли 3 і 5 пов'язані кабелем довжиною 2 миль;
вузол 2 не пов'язаний безпосередньо з вузлами 3 і 5.
33
2.2.4. У модульних перевезеннях навантажені трейлерні платформи перевозяться
залізницею між спеціальними перевалочними залізничними терміналами, де платформи
знову приєднуються до трейлерам і далі йдуть до споживачів по автомобільним дорогам.
На рис. 4 показані основні залізничні термінали Сполучених Штатів і існуючі залізничні
колії між ними. Виділіть сегменти залізниць так, щоб зв'язати всі залізничні термінали і
мінімізувати сумарну вартість перевезень трейлерних платформ (вартість перевезень
пропорційна довжині залізничних колій).
2.2.5. На рис. 5 показані відстані між платформами, видобувними газ у відкритому
морі, і прийомним пунктом, розташованим на березі. Оскільки платформа 1 ближчі до
берега, вона оснащена необхідним обладнанням для перекачування газу від інших
платформ до приймального пункту. Спроектуйте мережу трубопроводів мінімальної
довжини, що з'єднує приймальний пункт з усіма видобувними платформами.

Рис. 3. Рішення завдання про мінімальне остовне дерево в програмі TORA.

34
Рис. 4. Мережа для задачі 2.2.4.

від інших платформ до приймального пункту. Спроектуйте мережу трубопроводів


мінімальної довжини, що з'єднує приймальний пункт з усіма видобувними платформами.
3. Пошук найкоротшого шляху.
3.1. Пошук найкоротшого шляху в програмі TORA. Програма TORA також може
застосовувати алгоритм Дейкстри для вирішення мережевих завдань. Для цього в меню
SOLVE / MODIFY виберіть команду Solve problems> Iterations1> Dijkstra's algoritm
(Алгоритм Дейкстри). Програма TORA також може застосовувати алгоритм Флойда для
вирішення мережевих завдань. Для цього в меню SOLVE / MODIFY виберіть команду
Solve problem> Iterations1> Floyd's algoritm (Алгоритм Флойда).

Рис. 5. Мережа для задачі 2.2.5.


3.2. Завдання по розділу 3.
3.2.1. М-р Розумник щодня їздить на роботу на автомобілі. Закінчивши свого часу повний
курс по теорії дослідження операцій, він легко визначив найкоротший шлях від будинку до
роботи. На жаль, даний маршрут посилено патрулюється нарядами поліції, і автомобіль
Розумника часто зупиняють за перевищення швидкості (як йому здається, не
обґрунтовано). Таким чином, найкоротший шлях виявився не найшвидшим. Тому м-р
Розумник планує розробити новий маршрут, на якому він мав би найвищу ймовірність же
не бути зупиненим поліцією. Схема мережі доріг, по якій м-р Розумник може дістатися від
дому до роботи, показана на рис. 6. На цій же схемі наведені імовірності не бути
зупиненим для кожного сегмента мережі доріг. Імовірність же не бути про становлення на
всьому шляху проходження автомобіля Розумника дорівнює добутку ймовірностей бути
35
зупиненим на кожному сегменті обраного шляху. Наприклад, вірогідність не бути
зупиненим на маршруті 1> 3> 5> 7 дорівнює 0,9 х 0,3 х 0,25 = 0,0675. Таким чином, м-ру
Розумник необхідно вирішити задачу вибору маршруту, який максимізувати б вірогідність
не бути зупиненим.

Рис. 6. Мережева модель для задачі 3.2.1.

Цю задачу можна сформулювати як задачу знаходження найкоротшого шляху, якщо


замість ймовірностей використовувати логарифми ймовірностей. Сформулювати задачу і
знайти найкоротший шлях за алгоритмом Дейкстри.
3.2.2. На рис. 7 комунікаційна мережа між двома приймально-передавальними
станціями 1 і 7. Біля кожної дуги цієї мережі вказані ймовірності передачі повідомлень без
втрат за цими дуг. Необхідно знайти маршрут від станції 1 до станції 7 з максимальною
ймовірністю успішної передачі повідомлень. Сформулюйте це завдання як пошук
найкоротшого шляху і вирішите її за допомогою програми TORA.

Рис. 7 Мережа для задачі 3.2.2.


3.2.3. На рис. 8 показана транспортна мережа, що з'єднує вісім міст, і відстані між
ними. Знайдіть найкоротші маршрути між наступними містами:
a) Міста 1 і 8.
b) Міста 1 і 6.
c) Міста 4 і 8.
d) Міста 2 і 6.

Рис. 8 Мережа для задачі 3.2.3.

36
3.2.4. Знайдіть найкоротші шляхи між вузлом 1 та усіма іншими вузлами мережі,
представленої на рис. 9.

Рис. 9 Мережа для задачі 3.2.4.

3.2.5. У задачі з рис. 10 визначте найкоротші шляхи між наступними парами вузлів.
a) Від вузла 5 до вузла 1.
b) Від вузла 3 до вузла 5.
c) Від вузла 5 до вузла 3.
d) Від вузла 5 до вузла 2.

Рис. 10. Мережа для задачі 3.2.5.

3.2.6. Застосуйте алгоритм Флойда до мережі, показаної на рис. 11. Зауважте, що ребра (7,
6) і (6, 4) орієнтовані. Визначте найкоротші шляхи між наступними парами вузлів:
a) Від вузла 1 до вузла 7.
b) Від вузла 7 до вузла 1.
c) Від вузла 6 до вузла 7.

Рис. 11 Мережа для задачі 3.2.6.

3.2.7. Телефонна компанія обслуговує шість віддалених один від одного районів, які
пов'язані мережею, показаної на рис. 12. Відстані на схемі мережі вказані в
милях. Компанії необхідно визначити найбільш ефективні маршрути пересилання
повідомлень між будь-якими двома районами.

37
Рис. 12 Мережа для задачі 3.2.7.

4. Пошук максимального шляху.


Програма TORA дозволяє знайти максимальний потік або в автоматичному режимі, або
послідовно - так, як показано раніше. В меню SOLVE / MODIFY виберіть команду Solve
problem. Після завдання вихідного формату перейдіть в вихід ве вікно і виберіть команду
Maximum Flows (Максимальний потік) або Iterations. На рис. 13 показано вихідне вікно
TORA з першими двома ітераціями рішення задачі з прикладу ch6ToraMaxFlowEx6-4-2.txt

Рис.13. Дві ітерації програми TORA в рішенні задачі про максимальний потік.

4.1. Завдання по розділу 3.


4.2.1. Задана мережа, наведена на рис. 14.

38
Рис. 14. Мережа для пошуку максимального потоку.

a) для всіх ребер визначте величини невикористаних пропускних спроможностей;


b) знайдіть величину потоку, що проходить через вузли 2, 3 і 4;
c) можна чи збільшити максимальний потік в мережі шляхом підвищення пропускної
здатності в напрямках 3  5 і 4  5 ?
4.2.2. Найдите максимальный поток и значения потоков, проходящих через каждое ребро сети,
показанной на рис. 15.

Рис. 15. Мережа для задачі 4.2.2.

4.2.3. Три нафтоперегінних заводу транспортують свою продукцію двом


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

39
Рис.16. Нафтопровідна мережа для задачі 4.2.3.

a) Визначте щоденну продуктивність кожного нафтоперегінного заводу,


відповідну максимальної пропускної здатності мережі трубопроводів.
b) Визначте щоденну потребу кожного розподільного терміналу, відповідну
максимальної пропускної здатності мережі трубопроводів.
c) Визначте щоденну пропускну здатність кожної насосної станції, відповідну
максимальної пропускної здатності мережі трубопроводів.
4.2.4. Нехай в мережі з попередньої вправи (рис. 16) пропускна здатність насосної станції б
обмежена 60 мільйонами барелів на день. Знайдіть максимальну пропускну здатність мережі з
урахуванням цього обмеження.
4.2.5. Зерно з трьох зерносховищ доставляється на вантажівках чотирьом птахівницьким
фермам, при цьому деякі зерносховища не можуть безпосередньо поставляти зерно певним
фермам. Пропускна здатність маршрутів від зерносховищ до птахівницьких ферм обмежена
кількістю використовуваних вантажівок і числом виконуваних щодня рейсів. У цій табличці
вказано щоденні пропозиції зерносховищ і щоденний попит птахівничих ферм (в тисячах фунтів), в
осередках таблиці вказані пропускна спроможність відповідних маршрутів.

Ферми
1 2 3 4
1 30 5 0 40 20
Зерносховища 2 0 0 5 90 20
3 100 40 30 40 200
200 10 60 20

a) Знайдіть схему транспортування зерна, що забезпечує максимальний попит


птахівничих ферм.
b) Існує чи за даних умов схема транспортування, що забезпечує весь попит
птахівничих ферм?

40
4.2.6. Нехай в задачі з попередньої вправи можливе транспортування зерна між
зерносховищ 1 і 2, а також 2 і 3. Крім того, можливе транспортування між фермами 1 і 2, 2
і 3, 3 і 4. Максимальна пропускна спроможність в обох напрямках у здавалося маршрутів
складає 50 тисяч фунтів. Як дані припущення позначаться на забезпеченні поки
незадоволеного попиту птахівничих ферм?
4.2.7. Батьки мають п'ять дітей підліткового віку, яких щодня залучають до п'яти
видів домашньої роботи. Досвід трудового виховання дітей показав, що примусове
(силове) призначення на роботу здатна породжувати конфлікти. Тому діти самі
склав і список своїх переваг, котрі наведено в таблиці нижче.
Ребенок Предпочтительные работы
Ральф 3,4 или 5
Мэй 1
Бен 1 или 2
Ким 1, 2 или 5
Кен 2

Тепер батькам залишилося знайти такий розподіл робіт, який в найбільшому


ступені врахував би переваги дітей. Знайдіть максимальну кількість таких розподілів
робіт.
4.2.8. Чотири фабрики отримують замовлення на виробництво чотирьох типів
іграшок. У наступній таблиці показано, які іграшки повинна виробляти кожна фабрика.

Фабрика Тип іграшки


1 1,2,3
2 2,3
3 1,4
4 3,4
Щоденні виробничі можливості фабрик становлять 250, 180, 300 і 100 штук
іграшок відповідно. Щоденний попит на іграшки чотирьох типів становить 200, 150, 350 і
100 штук. Розробіть виробничий план, що максимально задовольняє попит на іграшки.
4.2.9. Студентська рада університету розглядає подання на шість студентів, які є членами
чотирьох студентських товариств. Студентська рада має три секції: природничих, гуманітарних і
інженерних наук. Рада може прийняти не більше двох студентів в кожну секцію. У наступній
таблиці показано членство студентів в кожному на чотирьох студентських товариств.
Суспільство Студент
1 1, 2, 3
2 1, 3, 5
3 3, 4, 5
4 1, 2, 4, 5

Наведемо також розподіл студентів по можливому прийняттю їх в різні секції ради.


Секція Студент
природних наук 1, 2, 4
гуманітарних наук 3, 4
інженерних наук 4, 5, 6

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

5. Зміст звіту.
41
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.

Лабораторна робота №8

Тема. Задача про комівояжера.


Мета роботи – вивчення методів завдання комівояжера методом гілок і меж.
1. Задача про комівояжера. Теоретичні відомості.
Є n міст, які повинен обійти комівояжер з мінімальними витратами. При цьому на
його маршрут накладається два обмеження:
 маршрут повинен бути замкнутим, тобто комівояжер повинен повернутися в
те місто, з якого він почав рух;
 в кожному з міст комівояжер повинен побувати точно один раз,
тобто потрібно обов'язково обійти всі міста, при цьому не побувавши ні в одному місті
двічі.
Для розрахунку витрат існує матриця умов, яка містить витрати на перехід з міста в
місто, при цьому вважається, що можна перейти з будь-якого міста в будь-який, крім того
ж самого (в матриці як би викреслюється діагональ). Метою рішення є
знаходження маршруту, що задовольняє всім умовам і при цьому має мінімальну суму
витрат.
У якому порядку бродячий торговець повинен об'їжджати n міст, щоб мінімізувати
загальну відстань (вартість) об'їзду, коли задані попарно відстані (вартості) між усіма
містами і потрібно, щоб в кожному місті він побував рівно один раз.
Якщо не вимагати повернення до вихідного пункту, то завдання незамкнута. Ми
будемо говорити про замкнутої задачі. У загальному випадку існує (n-1)! варіантів
маршрутів.
Приклади ситуацій, де проглядається можливе використання цього завдання: збір за
тривогою, енергопостачання, телефонний зв'язок, визначення оптимальної послідовності
обробки деталей, складні задачі теорії розкладів, балансування складальних ліній.
Введемо змінні:
0,якщо торговець не переїжджає з міста iв місто j,

xi , j  �
1,якщо переїжджає.

Цільова функція і обмеження наберуть вигляду:

min   cij xij ,


i j

 xij  1,  xij
j
 1,  xij
i , jA
 A  1,
()
i

 0 
xij  0  xij   .
 1 

В обмеженні () А – власні підмножини безлічі міст; |А| - кількість елементів такого
підмножини. Фактично умова () забороняє «передчасні цикли».
Маючи деяку матрицю відстаней, ми можемо з якого-небудь рядка (стовпчика)
відняти довільне позитивне число. Рішення завдання про комівояжера з цієї зміненої
42
матрицею відстаней збігається з рішенням без зміни, а довжина маршруту зменшується на
від’ємне число.
Якщо цю операцію виконати і для інших рядків і стовпців, то довжина маршруту
буде відрізнятися на суму всіх чисел, що віднімаються з рядків і стовпців. Сам процес
називається приведенням матриці.
Шлях - послідовність дуг, в якій кінець кожного попереднього дуги є початком
наступної. Шлях, в якому ніяка вершина не зустрічається двічі, називається
елементарним. Елементарний шлях, що проходить через всі вершини називається
Гамільтона.
Контур - кінцевий шлях, початкова вершина якого збігається з кінцевою.
Граф називається повним, якщо будь-які дві його вершини з'єднані хоча б в одному
напрямку.
Задача про комівояжера – задача відшукання гамільтонового контуру найкоротшої
довжини в повному графі.
Обмеження (), узяте для кожного підмножини безлічі дуг, забороняє утворення
«мікроконтурів», єдиний одержуваний контур – гамільтонів.
Метод гілок і меж для задачі про комівояжера. Для вирішення завдання про
комівояжера застосовується метод гілок і меж, що відноситься до методів дискретної
оптимізації. По суті, це майже повний перебір маршрутів, який оптимізується за рахунок
того, що при переборі варіантів за певними ознаками відсікаються з великою часткою
ймовірності неоптимальні безлічі перебору. Так як кількість вершин від рівня до рівня
зростає в факторіальною прогресії, то відсікання вершин верхніх рівнів значно
скорочує загальне число перебираються варіантів.
Загальна схема методу:
Вся множина розбивається на n-1 підмножин, кожне з яких характеризується
верхньої та нижньої оцінками.
Виробляється відсів неоптимальні множин з такого критерію: якщо нижня оцінка
(рішення релаксованої задачі) більше мінімальної з верхніх оцінок (рішень нерелаксованої
завдання), то множина вважається очевидно неоптимальною і відсікається, в
іншому випадку залишається до наступної ітерації.
Знаходиться безліч з кращого нижньої оцінкою (прогнозом) і дробиться на кількість
рівне розмірність вихідної матриці мінус кількість вже пройдених (фіксованих для даного
безлічі) міст.
Знаходяться мінімальні верхня і нижня оцінка. Якщо вони рівні і досягнуті на
одному й тому самому безлічі, то це означає, що отримано оптимальне рішення і алгоритм
закінчує роботу, інакше повернення до кроку 2.
Нехай задана матриця відстаней задачі про комівояжера (табл. 8.1). В осередку (i, j)
представлено відстань з міста i в місто j.
Таблиця 8.1
i j 
1  27 43 16 30 26
2 7  16 1 30 25
3 20 13  35 5 0
4 21 16 25  18 18
5 12 46 27 48  5
6 23 5 5 9 5 

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


Наприклад:

1(1, 3)–3(3, 2)–2(2, 5)–5(5, 6)–6(6, 4)–4(4, 1)–1

43
Значення відстаней беремо з вихідної таблиці (див. табл. 13.1): L = 43 + 13 + 30 + 5
+ 9 + 21 = 121.
Розглянемо алгоритм методу гілок і меж в його найпростішій реалізації.
Приведення матриці:
 по рядках - шукаємо мінімальний елемент рядка (табл. 8.2) і віднімаємо його з усіх
її елементів (табл. 8.3).
Таблиця 8.2.
mi
j
i n
1 2 3 4 5 6
1  27 43 16 30 26 16
2 7  16 1 30 25 1
3 20 13  35 5 0 0
4 21 16 25  18 18 16
5 12 46 27 48  5 5
6 23 5 5 9 5  5
 43

У правій колонці табл. 8.2 стоять мінімальні елементи рядків.


Константа приведення дорівнює 43.

Таблиця 8.3.
j min
i
1 2 3 4 5 6
1  11 27 0 14 10
2 6  15 0 29 24
3 20 13  35 5 0
4 5 0 9  2 2
5 7 41 22 43  0
6 18 0 0 4 0 

 по стовпчиках (табл. 8.4, 8.5). У нижньому рядку табл. 8.4 стоять мінімальні
елементи стовпців.
Константа приведення дорівнює 5.

Таблиця 8.4
j 
i
1 2 3 4 5 6
1 – 11 27 0 14 10 
2 6 – 15 0 29 24 
3 20 13 – 35 5 0 
4 5 0 9 – 2 2 
5 7 41 22 43 – 0 
6 18 0 0 4 0 – 
mi 5 0 0 0 0 0 5
n

Таблиця 8.5
j 
i
1 2 3 4 5 6
1  11 27 0 14 10
2 1  15 0 29 24
44
3 15 13  35 5 0
4 0 0 9  2 2
5 2 41 22 43  0
6 13 0 0 4 0 

Сума констант приведення 43 + 5 = 48 – нижня оцінка довжини маршруту (маршрут


не може бути довжиною, меншою 48).
Для кожного нуля знаходимо суму мінімальних елементів з відповідних йому рядки
і стовпці і вибираємо найбільшу суму  (табл. 8.6)..
Таблиця 8.6
1 2 3 4 5 6 θ
1
 11 27 0 14 10 10+0=10=θ
2 1  15 0 29 24 0+1=1
3 15 13  35 5 0 5+0=5
0+1=1
4 0 0 9  2 2
0+0=0
5 2 41 22 43  0 0+2=2
0+0=0
6 13 0 0 4 0  0+9=9
0+2=2

Викреслюємо рядок і стовпець, які утворили найбільшу суму   (табл. 8.7).

Таблиця 8.7
j
i
1 2 3 5 6
2 1 – 15 29 24
3 15 13 – 5 0
4 0 0 9 2 2
5 2 41 22 – 0
6 13 0 0 0 –

2. Галуження. Множина всіх циклів розіб'ємо на дві підмножини: містить і не містить


дугу i, j (рис. 8.1). Розгалуження завжди походить від кінцевої вершини з мінімальною
оцінкою.

все цициклы
Все клы

i, j i, j

k,l k,
i, lj

… …

Рис.8.1
Початок розгалуження - перша сума констант приведення (рис. 8.2). Далі зліва
додається , праворуч - h, де h - сума констант приведення такої таблиці.
3. Формування шуканого маршруту (рис. 8.3).

45
4
8
+
10
Рис.8.3
5
81,4 ,1
14,…
4

5
8
Рис. 8.2

«Зворотний шлях» необхідно заборонити (щоб уникнути утворення «передчасного


циклу»), тому в матриці число на перетині четвертого рядка і першого стовпця замінюємо
на ∞ (табл. 8.8).

Таблиця 8.8
j
i
1 2 3 5 6
2 1  15 29 24
3 15 13  5 0
4 ∞ 0 9 2 2
5 2 41 22  0
6 13 0 0 0 

Потім проводимо нове приведення (табл. 8.9, 8.10).


Таблиця 8.9
j
i min
1 2 3 5 6
2 1  15 29 24 1
3 15 13  5 0 0
4 ∞ 0 9 2 2 0
5 2 41 22  0 0
6 13 0 0 0  0
 1

Таблиця 8.10
j 
i
1 2 3 5 6
2 0 – 14 28 23
3 15 13 – 5 0
4 ∞ 0 9 2 2
5 2 41 22 – 0
6 13 0 0 0 –
min 0 0 0 0 0 0

Сума констант приведення: h = 1 + 0 = 1.

Розгалуження з вершини (1,4) представлено на рис. 8.4

46
48
+10 +1

58 1,4 1,4 49
58

… …

Рис.8.4

Знайдемо значення θ, наведеної матриці (табл. 8.11).

Таблиця 8.11
j
i θ
1 2 3 5 6
14+2=θ=1
2 0 – 14 28 23
6
3 15 13 – 5 0 5+0=5
4 ∞ 0 9 2 2 0+2=2
5 2 41 22 – 0 2+0=2
0+0=0
6 13 0 0 0 – 0+9=9
0+2=2

Розбиття множини (1,4) на два підмножини – що не містить і містить дугу (2,1)


представлено на (рис. 8.5).
4
8
+
10 +
1

5
81,4 ,4 4
1 9
58 +
16

6
52,1 2
,1

Рис. 8.5

Формування маршруту комівояжера показано на (рис. 8.6).

4
Рис.8.6.

Забороняємо зворотний шлях в табл.8.12: в «осередку» (4,2) число замінюємо на ∞.

47
Таблиця 8.12
j
i min
2 3 5 6
3 13 – 5 0 0
4 ∞ 9 2 2 2
5 41 22 – 0 0
6 0 0 0 – 0
 2

Сума констант приведення: h = 2+0=2.


Розгалуження з вершини (2, 1) представлено на рис. 8.7.

48
+10 +1

58 1,4 ,4 49
1
58 +16 +2
65 2,1 2,1 51

… …

Рис.8.7

Знайдемо значення θ (табл. 8.13).

Таблица 8.13
i j θ
2 3 5 6
3 13 – 5 0 5+0=5
4 ∞ 7 0 0 5+0=5
0+0=0
5 22+0=θ=
41 22 – 0 22
13+0=1
3
6 0 0 0 – 7+0=7
0+0=0

Розбиття множини (2,1) на два підмножини – що не містить і містить дугу (5,6) –


представлено на рис. 8.8.

48
+10 +1

58 1,4 1,4 49
58 +16 +2
65 2,1 2,1 51
+22 …

73 5,6 5,6
… …
48
Рис. 8.8.

Формування маршруту комівояжера показано на рис. 8.9.

2 6

1 5

Рис. 8.9.

Знайдемо суму констант приведення (табл. 8.14).

Таблиця 8.24
i j min
2 3 5
3 13 – 5 5
4 ∞ 7 0 0
6 0 0 0
 5

Сума констант приведення: h = 5+0=5.

48
+10 +1

58 1,4 1,4 49
58 +16 +2
65 2,1 2,1 51
+22 … +5

73 5,6 5,6 56
… …

… …

Рис.8.10
Знайдемо значення θ (табл. 8.15).

Таблиця 8.15
i j
θ
2 3 5
8+0=θ=
3 8  0 8
4 ∞ 7 0 7+0=7
0+8=8
6 0 0 ∞
0+7=7

49
Розбиття множини (5,6) на два підмножини – що не містить і містить дугу (3,5) -
представлено на рис. 8.11.

48
+10 +1

58 1,4 1,4 49
58 +16 +2
65 2,1 2,1 51

+22 +5

73 5,6 5,6 56
… …
+8

64 3,5 3,5

Рис. 8.11.

Формування маршруту комівояжера представлено на рис. 8.12.

2 6

1 5

4 3

Рис. 8.12
Матриця для вершини (3,5) приведена в табл. 8.16.

Таблиця 8.16
j
i
2 3
4 ∞ 7
6 0 ∞

Сума констант приведення: h=7+0=7.


В остаточному вигляді дерево варіантів представлено на рис. 8.13.

50
48
+10 +1

58 1,4 1,4 49
58 +16 +2
65 2,1 2,1 51
+22 … +5

73 5,6 5,6 56
… …
+8 +7

64 3,5 3,5 63

Рис. 8.13

Будуємо дуги (6,2) і (4,3) і замикаємо маршрут комівояжера (рис. 8.14).

2 6

1 5

4 3
Рис. 8.14
4. Оптимальний маршрут:

1(1,4) – 4(4,3) – 3(3,5) – 5(5,6) – 6(6,2) – 2(2,1) – 1

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


L = 16 + 25 + 5 + 5 + 5 + 7 = 63.

Але на цьому розрахунок, не закінчується: потрібно переглянути всі кінцеві


вершини. Якщо знайдеться вершина, оцінка якої менше, ніж довжина отриманого шляху,
то потрібно повернутися до цієї вершини, при цьому і до матриці, яка «породила» таке
розгалуження. Ставиться «  » на місці (k, l) у відповідній таблиці.
У нашому випадку вершина (1,4) має оцінку 58, меншу ніж 63 (рис. 8.15). Її
«породила» матриця 6 6, причому повертаємося до тієї матриці, яка вже була приведена
(табл. 8.17).

51
Рис. 8.15

Таблиця 8.17

i j
1 2 3 4 5 6
1  11 27  14 10
2 1  15 0 29 24
3 15 13  35 5 0
4 0 0 9  2 2
5 2 41 22 43  0
6 13 0 0 4 0 
При цьому необхідно «привести» відповідні рядок і стовпець: в нашому прикладі
це (1 і 4). Матриця представлена в табл.8.18

Таблиця 8.18
j
i
1 2 3 4 5 6
1  1 17  4 0
2 1  15 0 29 24
3 15 13  35 5 0
4 0 0 9  2 2
5 2 41 22 43  0
6 13 0 0 4 0 

В принципі, розгалужень може бути дуже багато (рис. 8.16).

52
Рис. 8.16

Так як мінімальне значення 63 має вершину (3,5), оптимальне рішення не


змінюється.
Отже , маршрут, представлений на рис. 8.14, є оптимальним L=63.

2. Рішення задачі комівояжера в програмі TORA. У наступній матриці записані


відстані між 4 містами завдання комівояжера,

Дана задача комівояжера формалізується як відповідна задача про призначення, а


також наступні додаткові обмеження, що виключають з вирішення часткові цикли. Всі
змінні xij двоїчні, всі змінні u i невід'ємні. Завдання вирішується як частково-
цілочисельна задача лінійного програмування.

Рішення завдання в програмі TORA (ex.ch9ToraTravellingSalepersonE9-3-3 / txt) показано


на рис. 8.17, 8.18.

53
Рис. 8.17. Вхідна форма рішення задачі про комівояжера.

Рис.8.18. Вихідна форма рішення задачі про комівояжера.

54
3. Завдання. Вирішити завдання, сформулювавши їх як завдання комівояжера,
методом гілок і меж в програмі TORA.
3.1. Денний графік роботи підприємства, що виробляє фарби, включає
виготовлення партій білої (Б), жовтої (Ж), червоною (К) і чорної (Ч) фарб. Так як
підприємство використовує один і той же обладнання для виготовлення всіх чотирьох
типів фарби, необхідна його належна чистка між виготовленням різних партій фарби.
Наведена нижче таблиця містить час чищення обладнання в хвилинах, якщо за
виготовленням фарби, зазначеної в рядку, слід виготовлення фарби, зазначеної в стовпці.
Наприклад, якщо за білою фарбою слід жовта, то час чищення дорівнює 10
хвилин. Оскільки за певним кольором фарби не може йти за такою ж колір, то відповідний
час чистки вважається рівним нескінченності. Необхідно визначити оптимальну
послідовність денного виробництва чотирьох типів фарби, яка мінімізує сумарний час
чищення обладнання.

3.2. Менеджер проектів має 10 співробітників, які працюють над шістьма


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

Менеджер повинен зустрітися з кожним із 10 співробітників один раз в тиждень


для обговорення їх проблем. Бесіда з кожним з них триває приблизно 20 хвилин, тобто на
розмови з усіма співробітниками йде 3 години 20 хвилин. Пропонується проводити
зустрічі менеджера з групами співробітників, що працюють над одним і тим же проектом,
щоб зменшити сумарний час, який витрачається на наради. Менеджер планує скласти
графік обговорення проектів таким чином, щоб зменшити рух в офісі, тобто скоротити
число співробітників, що входять і виходять з кімнати для нарад. В якій
послідовності необхідно розглядати проекти?
3.3. Продавець книг, проживає в місті А, один раз на місяць повинен відвідати
своїх чотирьох клієнтів, які проживають в містах Б, В, Г і Д відповідно. Наведена нижче
таблиця містить відстані в милях між різними містами.

55
Необхідно скласти маршрут руху продавця книг, що мінімізують сумарне
відстань. Сформулюйте задачу у вигляді задачі про призначення ЦЛП і вирішите методом
гілок і меж.

4. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.

Лабораторна робота №9
Тема: Динамічне програмування.
Мета: знайомство з завданнями динамічного програмування, вивчення різних
методів вирішення.
1. Короткі теоретичні відомості
1.1 Загальна схема розв'язання задач динамічного програмування.
Для вирішення завдань динамічного програмування необхідно виконати наступні
дії:
1. Визначити етапи.
2. Визначити на кожному етапі варіантів рішення (альтернатив).
3. Визначити стану на кожному етапі.
З перерахованих вище елементів поняття стану, як правило, є досить складним для
сприйняття. Розглянуті в цьому розділі програми послідовно показують, що визначення
стану змінюється в залежності від модельованої ситуації. При розгляді кожного додатка
корисно відповісти на наступні питання.
1. Які співвідношення пов'язують етапи разом?
2. Яка інформація необхідна для того, щоб отримати допустимі рішення на
поточному етапі без повторної перевірки рішень, прийнятих на попередніх етапах?
1.2. Задача про завантаження
Задача про завантаження – це завдання про раціональну завантаженні судна (літака,
автомашини тощо), яке має обмеження за обсягом або вантажопідйомності. Кожен
поміщений на судно вантаж приносить певний прибуток. Завдання полягає у визначенні
завантаження судна такими вантажами, які приносять найбільшу сумарну прибуток.
Перед тим як представити співвідношення динамічного програмування, зауважимо,
що розглянута тут завдання відома також як задача про спорядженні, де пілот реактивного
літака повинен визначити найбільш цінні (необхідні) предмети, які слід взяти на борт
літака, або як завдання про рюкзаку, в якій солдат (або турист) повинен визначити
найбільш цінні предмети, що підлягають завантаженню в ранець (рюкзак), Здається, що
три згаданих назви для однієї і тієї ж задачі були обрані для того, щоб гарантувати рівне
представництво військово-морського флоту, повітряних сил і армії!
Рекурентне співвідношення процедури зворотного прогону виводиться для
загальної задачі завантаження судна вантажопідйомністю W предметів (вантажів) n
найменувань. Нехай mi — кількість предметів i-го найменування, що підлягають
завантаженню, ri — прибуток, яку приносить один завантажений предмет i-го
найменування, wi — вага одного предмета i-го найменування. Загальна задача має вигляд
наступної цілочисельної задачі лінійного програмування.
Максимізувати z=r1m1+r2m2+...+rnmn за умови, що
w1m1+w2m2+...+wnmn  W,
m1,m2,...,mn  0 и целые.
Три елемента моделі динамічного програмування визначаються в такий спосіб.
56
1. Етап i ставиться у відповідність предмету i-го найменування, i = 1, 2, ..., n.
2. Варіанти вирішення на етапі i описуються кількістю mi, предметів i-го
найменування, що підлягають завантаженню. Відповідний прибуток дорівнює
rimi. Значення mi укладено в межах від 0 до [W/wi], где [W/wi] — ціла частина числа W/wi.
3. Стан xi на етапі i висловлює сумарна вага предметів, рішення про завантаження
яких прийняті на етапах i, i+1, ..., n. Це визначення відображає той факт, що обмеження по
вазі є єдиним, яке пов'язує п етапів разом.
Нехай fi(xi) — максимальна сумарна прибуток від етапів i, i+1, ..., n при заданому
стані xi. Найпростіше рекурентне співвідношення визначається за допомогою наступної
двокрокової процедури.
Шаг 1. Виразимо fi(xi) як функцію fi+1(xi+1) в вигляді
f i ( xi )  max {ri mi  f i 1 ( xi 1 )}, i  1,2..n
mi  0 ,1..[ w / wn ]
xi  0 ,1..,W

де fn+1(xn+1) = 0.
Шаг 2. Виразимо xi+1 як функцію хi для гарантії того, що ліва частина останнього
рівняння є функцією лише xi. За визначенням хi—xi+1 представляє собою вага,
завантажений на етапі i, тобто xi+xi+1=wimi або xi+1=xi–wimi. Отже, рекурентне
співвідношення набуває такого вигляду.
f i ( xi )  max {ri mi  f i 1 ( xi  wi mi )}, i  1,2..n
mi  0 ,1..[ w / wn ]
xi  0 ,1..,W

1.3. Задача планування робочої сили


При виконанні деяких проектів число робочих, необхідних для виконання будь-
якого проекту, регулюється шляхом їх найму і звільнення. Оскільки як наймання, так і
звільнення робітників пов'язано з додатковими витратами, необхідно визначити, яким
чином повинна регулюватися чисельність робітників в період реалізації проекту.
Припустимо, що проект буде виконуватися протягом n тижнів і мінімальна потреба
в робочій силі на протязі i-го тижня складе bi робітників. За ідеальних умов хотілося б
протягом i-го тижня мати в точності bi робітників. Однак в залежності від вартісних
показників може бути більш вигідним відхилення чисельності робочої сили як в одну, так і
в іншу сторону від мінімальних потреб. Якщо xi – кількість працюючих на протязі i-го
тижня, то можливі витрати двох видів: 1) C1(xi–bi) — витрати, пов'язані з необхідністю
утримувати надлишок xi–bi робочої сили і 2) C2(xi–xi-1) — витрати, пов'язані з необхідністю
додаткового найму xi–xi-1 робочих.
Елементи моделі динамічного програмування визначаються в такий спосіб.
1. Етап i видається порядковим номером тижня i, i=1,2,.., n.
2. Варіантами вирішення на i-му етапі є значення xi - кількість працюючих на
протязі i-го тижня.
3. Станом на i-му етапі є хi – кількість працюючих на протязі (i-1) -й тижні (етапу).
Рекурентне співвідношення динамічного програмування представляється у вигляді
f i ( xi 1 )  max{C1 ( xi  bi )  C 2 ( xi  xi 1 )  f i 1 ( xi )}, i  1,2,..n,
xi1  bi

де fn+1(xn)0 Обчислення починаються з етапу n при хn=bn і закінчуються на етапі 1.


1.4. Задача заміни обладнання
Чим довше механізм експлуатується, тим вище витрати на його обслуговування і нижче
його продуктивність. Коли термін експлуатації механізму досягає певного рівня, може
виявитися більш вигідною його заміна, Завдання заміни обладнання, таким чином,
зводиться до визначення оптимального терміну експлуатації механізму.
Припустимо, що ми займаємося заміною механізмів протягом n років. На початку кожного
року приймається рішення або про експлуатацію механізму ще один рік, або про заміну
його новим. Позначимо через r(t) і c(t) прибуток від експлуатації t – річного механізму
протягом року і витрати на його обслуговування за цей же період. Далі нехай s (t) –
вартість продажу механізму, який експлуатувався t років. Вартість придбання нового
57
механізму залишається незмінною протягом усіх років і дорівнює I. Елементи моделі
динамічного програмування такі.
1. Етап i видається порядковим номером року i, i = 1,2,..., п.
2. Варіантами вирішення на i-му етапі (тобто для i-го року) є альтернативи:
продовжити експлуатацію або замінити механізм на початку i-го року.
3. Станом на i-му етапі є термін експлуатації t (вік) механізму до початку i-го року.
Нехай fi(t) — максимальний прибуток, одержуваний за роки від i до п за умови, що
на початку i-го року є механізм t-річного віку. Рекурентне співвідношення має такий
вигляд.
�r  t   c  t   f i 1  t  ,якщо експлуатувати

f i  t   max �
�r  0   s  t   I  c  0   f i 1  1 ,якщо замінити
де fn+1(.)0.
2. Завдання на лабораторну роботу
2.1. Вивчити пропоновані варіанти завдань.
2.2. Відповідно до варіанта завдання, певним викладачем, скласти схеми обчислення, що
реалізують метод, і знайти рішення.
2.3. Оформити звіт про виконання завдання з приведенням умови задачі, схеми методів,
результатів рішення і висновки.

3. Варіанти завдань
1. У 6-тонний літак завантажуються предмети трьох найменувань. Наведена нижче
таблиця містить дані про вагу одного предмета wi (в тонах) і прибутку ri (в тисячах
доларів), одержуваної від одного завантаженого предмета. Як необхідно завантажити
літак, щоб отримати максимальний прибуток?
Предмет i wi r i
1 4 70
2 1 20
3 2 40
Так як вага одного предмета wi для всіх найменувань і максимальна вага W
приймають цілочисельні значення, стан xi може приймати лише цілочисельні значення.
2. Вирішіть попередню задачу про завантаження. Загальна вантажопідйомність – 4 тон.

Предмет i wi ri
1 1 30
2 2 60
3 3 80

3. Турист збирається в подорож по дикій місцевості і повинен упакувати в рюкзак


предмети трьох найменувань: їжу, засоби першої допомоги і одяг. Обсяг рюкзака
становить 3 кубічних фута. Кожна одиниця їжі займає 1 кубічний фут, упаковка засобів
першої допомоги - чверть кубічного фута, а окремий предмет одягу-приблизно половину
кубічного фута. Турист визначив свої переваги ваговими коефіцієнтами 3, 4 і 5 - для їжі,
засобів першої допомоги та одягу відповідно. Це означає, що одяг є найціннішим
предметом серед інших. Досвід підказує туристу, що він повинен взяти не менше одного
предмета кожного найменування і не більше двох комплектів засобів першої
допомоги. Скільки одиниць кожного найменування візьме турист в похід?
4. Студент повинен вибрати 10 факультативних курсів на чотирьох різних факультетах,
причому на кожному факультеті повинен бути обраний щонайменше один курс. Ці курси
розподіляються між факультетами таким чином, щоб максимізувати обсяг
"знань". Студент оцінює знання за шкалою в сто балів і приходить до висновків,
представленим в таблиці нижче.
58
Номер курсу
Факультет
1 2 3 4 5 6 7
I 25 50 60 80 100 100 100
II 20 70 90 100 100 100 100
III 40 60 80 100 100 100 100
IV 10 20 30 40 50 60 70
Які курси слід вибрати студенту?
5. У мене у дворі є невеликий город 1020 футів. Цієї весни я збираюся посадити овочі
трьох видів: помідори, зелені боби і кукурудзу. Город розбитий на ряди, довжина яких
дорівнює 20 футів. Кукурудза і помідори займають ряди шириною 2 фути, а зелені боби - 3
фути. Помідори мені подобаються більше, а боби менше. За 10-бальною шкалою переваг я
б присвоїв помідорам 10 балів, кукурудзі- 7 балів і зеленим бобам- 3 бали. Незалежно від
моїх уподобань, дружина наполягає, щоб я посадив не менше одного ряду зелених бобів і
не більше двох рядів помідорів. Скільки рядів кожного виду овочів слід мені посадити?
6. "Житло для Людства" - прекрасна благодійна організація, яка будує будинки для бідних
сімей силами добровольців. Така сім'я може вибрати собі будинок з трьох типорозмірів
1000, 1100 і 1200 квадратних футів. Будинок кожного типорозміру вимагає виконання
певного обсягу робіт силами добровольців. Філія організації в місті Файтвілл отримав
п'ять заявок на майбутні шість місяців. Комітет з нагляду дає оцінку кожній заявці в
чисельному вигляді, беручи до уваги різні чинники. Більш висока оцінка означає більш
гостру потребу в житлі. Протягом майбутніх шести місяців філія організації в цьому місті
може залучити до роботи максимум 23 добровольця. Наступна таблиця містить оцінку
кожної заявки і необхідне число добровольців для її виконання. Які заявки слід затвердити
комітету?
Заявка Розмір дому(футов2) Оцінка Необхідна кількість добровольців
1 1200 78 7
2 1000 64 4
3 1100 68 6
4 1000 62 5
5 1200 85 8
7. Шериф округу Вашингтон бере участь в переобранні на наступний термін.
Грошові кошти на передвиборну кампанію становлять приблизно 10000 доларів. Хоча
комітет з переобрання хотів би провести кампанію в усіх п'яти виборчих дільницях округу,
обмеженість коштів наказує діяти по-іншому, Наведена нижче таблиця містить дані про
кількість виборців і грошових коштах, необхідних для проведення успішної кампанії по
кожній виборчій дільниці. Кожна ділянка може або використовувати всі призначені гроші,
або зовсім їх не використовувати. Як випливає розподілити кошти?
Ділянка Число виборців Необхідні кошти ($)
1 3100 3500
2 2600 2500
3 3500 4000
4 2800 3000
5 2400 2000
8. Конструюється електронний прилад, що складається з трьох основних компонентів. Всі
компоненти з'єднані послідовно, тому вихід з ладу одного з них тягне за собою відмову
всього приладу. Надійність (ймовірність безаварійної роботи) приладу можна підвищити
шляхом дублювання кожного компонента. Конструкція приладу допускає використання
одного або двох резервних (паралельних) блоків, тобто кожен компонент приладу може
містити до трьох блоків, з'єднаних паралельно. Наступна таблиця містить дані про
надійність r і вартості компонентів приладу.
Компонент 1 Компонент 2 Компонент 3
59
Число паралельних
r1 c1, ($) r2 c2 ($) r3 с3($)
блоків
1 0,6 1000 0,7 3000 0,5 2000
2 0,8 2000 0,8 5000 0,7 4000
3 0,9 3000 0,9 6000 0,9 5000
Загальна сума, виділена на конструювання приладу, дорівнює 10000 доларів. Як випливає
сконструювати прилад? (Рада. Наша задача полягає в максимізації надійності r1r2r3
приладу. Це означає, що цільова функція є мультипликативною, а не адитивною.)
9. Будівельний підрядник оцінює мінімальні потреби в робочій силі на кожну з наступних
п'яти тижнів наступним чином: b1, b2, b3, b4 и b5 робітників відповідно. Зміст надлишку
робочої сили обходиться підряднику в 300 доларів за одного робочого на тиждень, а
наймання робочої сили протягом одного тижня обходиться в 400 доларів плюс 200 доларів
за одного робочого на тиждень. Вирішіть задачу при таких мінімальних потребах в
робочій силі.
а) b1=6, b2=5, b3=3, b4=6, b5=8.
b) b1=8, b2=4, b3=7, b4=8, b5=2.
10. Нехай в попередній задачі кожному звільненому робочому виплачується вихідна
допомога в розмірі 100 доларів. Знайдіть оптимальне рішення задачі.
11. Туристичне агентство організовує тижневі поїздки в Єгипет. Відповідно до договору на
найближчі чотири тижні агентство має забезпечити туристичні групи орендними
автомобілями в кількості сім, чотири, сім і вісім штук відповідно. Агентство укладає
договір з місцевим дилером з прокату автомобілів. Дилер призначає орендну плату за один
автомобіль 220 доларів в тиждень плюс 500 доларів за будь-яку орендну угоду. Агентство,
однак, дозволяють залишати орендовані автомобілі в кінці тижня, і в цьому випадку воно
повинно буде тільки орендну плату в 220 доларів. Яке оптимальне рішення проблеми,
пов'язаної з орендою автомобілів?
12. Компанія на наступні чотири роки уклала контракт на постачання авіаційних двигунів,
по 4 двигуна в рік. Доступні виробничі потужності і вартість виробництва змінюються від
року до року. Компанія може виготовити п'ять двигунів за 1-й рік, шість - за 2-й, три - за 3-
й і п'ять - за 4-й. Вартість виробництва одного двигуна на протязі наступних чотирьох
років дорівнює відповідно 300 000, 330 000, 350 000 і 420 000 доларів. Протягом року
компанія може виробити більше двигунів, ніж необхідно, але в цьому випадку двигуни
повинні належним чином зберігатися до їх відвантаження споживачеві. Вартість
зберігання одного двигуна також змінюється з року в рік і оцінюється в 20 000 доларів для
першого року, 30 000 доларів - для другого, 40 000 доларів - для третього і 50 000 доларів -
для четвертого. На початку першого року компанія має один двигун, готовий до
відвантаження. Розробіть оптимальний план виробництва двигунів.
12. Фірма випускає п'ять типів електронних ігор (E1, E2, ..., E5) і п'ять типів механічних
іграшок (M1, M2, ..., M5). На ринку порядок переваги електронних ігор такий: E1E2…
E5. Це означає, що клієнт буде купувати гру з більш високим перевагою, якщо вона є в
продажу. Відомий також порядок переваги механічних іграшок: M1M2…M5.
Тижневий попит на п'ять типів електронних ігор дорівнює 100, 180, 90, 250 і 190 одиниць
відповідно. Аналогічні показники для механічних іграшок рівні 300, 190, 240, 280 і 260
одиниць відповідно. Виробництво однієї гри E1, E2, ..., E5 обходиться в 10, 12, 8, 9 і 6
доларів відповідно. Виготовлення ж однієї іграшки M1, M2, ..., M5 обходиться фірмі в 4, 5,
3, 2 і 3 долари відповідно. Організація виробництва кожної електронної гри або іграшки
обходиться в 500 доларів. Визначте оптимальний план виробництва іграшок.
13. Компанія планує визначити оптимальну політику заміни наявного в даний час
трирічного механізму протягом наступних 4 років (і = 4), тобто аж до початку п'ятого
року. Наведена таблиця містить відносяться до задачі дані. Компанія вимагає заміни

60
механізму, який знаходиться в експлуатації 6 років. Вартість нового механізму дорівнює
100000 доларів..
Вартість обслуговування c(t) Залишкова вартість s(t)
Вік t (роки) Прибуток r(t) ($)
($) ($)
0 20000 200 —
1 19000 600 80000
2 18500 1200 60000
3 17200 1500 50000
4 15500 1700 30000
5 14000 1800 10000
6 12200 2200 5000
Побудуйте мережу і знайдіть оптимальне рішення в задачі в кожному з наступних
випадків.
a) На початку першого року є механізм, що знаходиться в експлуатації 2 роки.
b) На початку першого року є механізм, що знаходиться в експлуатації 1 рік.
c) На початку першого року куплений новий механізм.
14. Хлопчик займається власним бізнесом- косить газони десяти клієнтам. Кожному
клієнту він косить траву три рази в рік, отримуючи за один скошений газон 50 доларів. Він
купив косарку за 200 доларів. Протягом першого року витрати на утримання та
використання косарки рівні 120 доларів, і через рік вони збільшуються на 20%. Однорічна
косарка може бути продана за 150 доларів, і з кожним роком її вартість зменшується на
10%. Мій син планує продовжити свій бізнес, поки їй не виповниться 16 років, і вважає,
що більш вигідно змінювати косарку через кожні два роки. Він пояснює це тим, що ціна
нової косарки збільшується за рік лише на 10%. Чи справедливо його рішення?
15. Група ферм володіє трактором дворічної давності і планує розробити стратегію його
заміни на наступні п'ять років. Трактор повинен експлуатуватися не менше двох і не
більше п'яти років. В даний час новий трактор коштує 40 000 доларів, і ця ціна за рік
збільшується на 10%. Поточна річна вартість експлуатації трактора становить 1300 доларів
і, як очікується, буде збільшуватися на 10% в рік.
a) Сформулюйте задачу у вигляді завдання про найкоротшому шляху.
b) Побудуйте відповідне рекурентне співвідношення.
c) Визначте оптимальну стратегію заміни трактора на наступні п'ять років.
16. Розглянемо задачу заміни обладнання на протязі n років. Ціна нової одиниці
обладнання дорівнює з доларів, а вартість продажу після t років експлуатації дорівнює
s(t)=2(n–1) при n>t t і нулю – в іншому випадку. Річна прибуток від експлуатації є
функцією віку обладнання t і дорівнює r(i)=n2–12 при n>t і нулю – в іншому випадку.
a) Сформулюйте задачу як модель динамічного програмування.
b) Визначте оптимальну стратегію заміни обладнання дворічної давності при с = 10000
доларів, вважаючи, що n = 5.

4. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.
.

Лабораторна робота №10


Тема: Оптимальні шляхи на графах

61
Мета роботи: придбання практичних навичок в знаходженні ейлерових і
гамільтонових циклів в неорієнтованих графах, рішення задач «китайського листоноші» і
комівояжера

1. Теоретична довідка.
Ейлерові цикли
Ейлерів цикл – цикл, що містить всі ребра вихідного графа (кожне ребро
використовується рівно 1 раз).
Ейлерів граф – зв'язний граф, що містить Ейлерів цикл.
Наприклад:
G2:
G1:

2рази

Теорема Ейлера або критерій існування в графі


ейлеревого циклу

Зв'язний граф G є ейлеровим тоді і тільки тоді,


коли ступеня всіх його вершин парні
Слідство №1. Для зв'язкового графа G множину ребер можна розбити на прості цикли,
якщо граф Ейлером.
Слідство №2. Для того щоб зв'язний граф G покривався єдиним ейлеревим ланцюгом,
необхідно і достатньо, щоб він містив рівно 2 вершини з непарної ступенем. Тоді ланцюг
починається в одній з цих вершин і закінчується в інший.

Алгоритм побудови ейлерового циклу або алгоритм Флері


1. Починаючи з будь-якої вершини v, присвоюємо ребру vu №1. Викреслюємо це ребро зі
списку ребер і переходимо до вершини u.
2. Нехай w  вершина, в яку ми прийшли в результаті виконання кроку 1 і k  номер,
присвоєний чергового ребру на цьому кроці. Вибираємо довільне ребро інцидентне
вершині w, причому міст вибираємо тільки в крайньому випадку, якщо інших
можливостей вибору ребра не існує. Надаємо ребру номер k + 1 і викреслюємо
його. Процес триває до тих пір, поки всі ребра що викреслені.
Наприклад:

62
V1
9 1

V6 V2

8 5 2
7 3

6 4
V5 V3
V4

Ейлерів ланцюг – ланцюг з кінцевими вершинами (a, b), що починається в вершині


a, що закінчується в вершині b і містить кожне ребро вихідного графа рівно 1 раз.
Гамільтона цикли
Гамільтонів цикл - простий цикл, що містить кожну вершину графа.

Гамільтонів граф - граф, що містить Гамільтонів цикл..

Достатні умови існування Гамільтона


циклу в графі

Теорема Дирака
Якщо число вершин графа p  3 і для будь-якої вершини виконується умова  vi, i =
p
1, p ; deg vi  , то граф G – гамільтонів
2

Теорема Оре
Якщо число вершин графа p  3 і для будь-яких двох несуміжних вершин u і v
виконується нерівність: deg u + deg v  p, то граф G – гамільтонів

Наприклад:

3. Завдання до лабораторної роботи

Вихідні графи G1: (13, {5, 6})


63
G2: (7,{3,4})

1. Визначити, чи є граф G1 ейлеревим.


Якщо граф G1 - Ейлером, то:
• побудувати Ейлером цикл за алгоритмом Флері;
• вирішити задачу «китайського листоноші», видаливши мінімальне число ребер,
робить його не ейлеревим (в якості ваг ребер взяти 1).
Якщо G1 не є ейлеревим, то:
• побудувати ейлереві ланцюга в графі G1;
• додати мінімальне число ребер, які роблять його ейлеревим і знайти Ейлером
цикл за алгоритмом Флері;
• вирішити задачу «китайського листоноші» (в якості ваг ребер взяти 1).
• побудувати подвійний ейлерів маршрут за алгоритмом Тарра.
2. Визначити, чи є граф G2 гамільтоновим.
Якщо граф - гамільтонів, то:
• побудувати гамільтонів цикл, використовуючи дерево повного перебору;
• побудувати гамільтона цикли, використовуючи алгоритм Робертса-Флореса;
• вирішити для нього завдання комівояжера, видаливши мінімальне число ребер,
що порушують властивість гамільтоновим (в якості ваг ребер взяти 1).
Якщо граф не є гамільтоновим, то:
• вирішити задачу комівояжера (в якості ваг ребер взяти 1);
• додати мінімальне число ребер, які роблять його гамільтоновим; побудувати
гамільтонів цикл, використовуючи дерево повного перебору і алгоритм Робертса-Флореса.

4. Контрольні питання
1.Визначення ейлерева циклу, графа.
2.Сформуліровать критерій існування в графі ейлерового циклу.
3.Какой граф називається Гамільтона? Дати визначення Гамільтона циклу.
4. Сформулювати теореми Оре і Дірака
5. Що знаходять завдання китайського листоноші, завдання комівояжера?

5. Алгоритм генерації варіанту графа

GV ( p,X ) : A[1:p,1:p],где
p - кількість вершин в графі;
X - параметр генерації (множина цілих);
А - матриця суміжності неорієнтованого графа.
S = <прізвище> <ім'я> <по батькові>
n (c) - функція – номер букви в алфавіті (1..32)

1. Викреслити з S все повторні входження букв.


2. Побудувати Y = || yi j ||, i,j =1..p,
yij = | n (Si) - n (Sj) |.
3. Побудувати А = || аij ||, i,j =1..p,

�1,якщо $ x �X yij mod x  0



аij= �0, i  j
�0, інакше

4. Для кожної ізольованою (домінуючою) вершини додати (видалити) одне
ребро. Додається (видаляється) ребро пов'язує поточну вершину з наступною (за
номером). Для останньої вершини наступна - перша.
64
Приклад реалізації GV ( 7, (2,3) ).
1.Строка S = С И Д О Р О В И В А Н П Е Т Р О В И Ч.
Після викреслювання повторних входжень букв
S = С И Д О Р В А Н П Е Т Ч.
Таблиця для функції n (S)
A - 1 Д - 5 З - 9 Л -13 П -17 У -21 Ч -25 Ь -29
Б - 2 Е - 6 И -10 М -14 Р -18 Ф -22 Ш -26 Э -30
В - 3 Ё - 7 Й -11 Н -15 С -19 Х -23 Щ -27 Ю -31
Г - 4 Ж - 8 К -12 О -16 Т -20 Ц -24 Ы -28 Я -32
S С И Д О Р В А Н П Е Т Ч

N(si) 19 10 5 16 18 3 1 15 17 6 20 25

19 10 5 16 18 3 1
19 0 9 14 3 1 16 18
10 9 0 5 6 8 7 9
5 14 5 0 11 13 2 4
Y= 16 3 6 11 0 2 13 15
18 1 8 13 2 0 15 17
3 16 7 2 13 15 0 2
1 18 9 4 15 17 2 0

1 2 3 4 5 6 7
1 0 1 1 1 0 1 1
2 1 0 0 1 1 0 1
3 1 0 0 0 0 1 1
4 1 1 0 0 1 0 1
A= 5 0 1 0 1 0 1 0
6 1 0 1 0 1 0 1
7 1 1 1 1 0 1 0

G1 :

2
1

4
6

65
6. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання.
5. Висновки по роботі.

Лабораторна робота №11


Тема: Елементи теорії ігор. Матрична гра з нульовою сумою.
Мета: Вивчити основні поняття теорії ігор і отримати практичні навички рішення
матричних ігор.
1. Основні теоретичні відомості.
Теорія ігор – це математична теорія конфліктних ситуацій. Економічні змагання, спортивні
зустрічі, бойові операції - приклади конфліктних ситуацій. Найпростіші моделі
конфліктних ситуацій - це салонні і спортивні ігри.
У грі можуть стикатися інтереси двох противників (гра парна або гра двох осіб), інтереси
n (n > 2) противників (гра множинна або гра n осіб). Існують ігри з нескінченною безліччю
гравців.
Стратегією гравця називається система правил, що однозначно визначає вибір поведінки
гравця на кожному ході в залежності від ситуації, що склалася в процесі гри. Залежно від
числа можливих стратегій гри діляться на кінцеві і нескінченні.
Процес гри полягає у виборі кожним гравцем i однієї своєї стратегії si  S i . В
результаті ситуації, що склалася s гравець i отримує виграш H i (s ) .
Ігри, в яких метою кожного учасника є отримання якомога більшої індивідуального
виграшу, називаються безкоаліційних на відміну від коаліційних, в яких дії гравців
спрямовані на максимізацію виграшів колективів (коаліції) без подальшого поділу
виграшу між учасниками.
За визначенням безкоаліційної грою називається система
Г < I ,{S i }iI ,{H i }iI > ,
в який I і si (i  I ) – множина, H i – функції на множині S   S i , що приймають
iI

дійсні значення.
Безкоаліційна гра називається грою з постійною сумою, якщо існує таке постійне C,
что H
iI
i ( s )  C для всіх ситуацій s  S .

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

Матричні ігри
Гра називається парною, якщо в ній стикаються інтереси двох супротивників. Гра
називається з нульовою сумою, якщо один гравець виграє стільки, скільки другий програє
в тій же партії.
Кожна фіксована стратегія, яку може вибрати гравець, називається його чистою
стратегією.
Матричної називають парну гру з нульовою сумою за умови, що кожен гравець має
кінцеве число чистих стратегій.
Нехай перший гравець має m чистих стратегій, а другий – n.

66
Парна гра з нульовою сумою задається 'формально системою чисел - матрицею a ij mn ,
елементи якої визначають виграш першого гравця (і відповідно програш другого), якщо
перший гравець вибере i-й рядок (i-ю стратегію), а другий гравець j-й стовпець (j-у
стратегію). Матриця a ij називається платіжною матрицею або матрицею гри.
m n

Завдання першого гравця - максимізувати свій виграш.


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

Чисті стратегії
Гарантований виграш першого гравця, що застосовує чисту i-ю стратегію,
 ij  min aij
1 j  n

Число v  max  i  max{min  ij } називається нижнім значенням гри, а відповідна чиста


1i  m 1i  m 1 j  n

стратегія i0, при якій досягається v називається максиміною стратегією першого


гравця. Аналогічно, v  1min {max  ij } називається верхнім значенням гри, а j0 –
 j  n 1i  m

мінімаксною стратегією другого гравця.


Завжди v  v . Якщо v  v  v , то гра має сідлову точку в чистих стратегіях; число v
називається значенням гри (або ціною гри). Гра має седловую точку в чистих стратегіях
тоді і тільки тоді, коли існує елемент матриці ai0 j0 , мінімальний у своїй рядку і в той же
час максимальний в стовпці
0 0 0
aij  ai j  ai j
0
(1)
Будь-яка пара (i0, j0), що володіє властивістю (1), називається сідловою точкою.

67
Змішані стратегії
Якщо позначити через x1, x2, …, xm ймовірності (частоти), з якими перший гравець
вибирає відповідно першу, другу,. . ., m-ю чисту стратегію, так що через
m
xi  0, i  1,2,..., m,  xi  1 ; через y1, y2, …, yn ймовірності, з якими другий гравець
i 1
n
вибирає першу, другу, ,.., n-ю свою чисту стратегію, причому yi  0, i  1,2,..., n,  y i  1 ,
i 1
то набори чисел x=( x1, x2, …, xm) і y=(y1, y2, …, yn) називаються змішаними стратегіями
першого і другого гравців відповідно. Кожен гравець має безліч змішаних стратегій. Безліч
змішаних стратегій першого гравця позначимо через s1 і безліч змішаних стратегій другого
гравця – через s2.
Завдання першого гравця полягає у виборі такої стратегії x*  s1 щоб при відсутності
інформації про вибір іншого максимізувати свій виграш. Завдання другого гравця полягає
у виборі такої стратегії y*  s2 , щоб при відсутності інформації про поведінку першого
гравця мінімізувати виграш першого.
Якщо перший гравець застосовує стратегію x  s1 , а другий - стратегію y  s 2 то
середній виграш M(x, y) першого гравця дорівнює
m n
M ( x, y )   aij xi y j
i 1 j 1

Виграш M (x, y) називають функцією гри.


Наприклад, в задачі з матрицею
2 3 1 4
A   
5 4 3 5 
перший гравець має дві чисті стратегії x (1)
 (1,0) , x ( 2 )  (0,1) і незліченна безліч

змішаних стратегІй, таких, Як x


( 3)
 ( 1 , 1 ) , x ( 4 )  ( 1 ,16 ) x ( 5)  (12 ,13 ) І
2 2 17 17 25 25
т. д.; всі вони є елементами множини s1  {x : x  ( x1 , x2 ), x1  0, x2  0, x1  x2  1} другий
гравець має чотири чисті стратегії
y  (1,0,0,0), y  (0,1,0,0), y  (0,0,1,0), y  (0,0,0,1) і незліченна безліч змішаних
(1) ( 2) ( 2) ( 4)

стратегій, таких, як y
(5)
 ( 1 ,0, 1 , 1 ), y ( 6)  ( 1 , 1 , 1 , 1 ), y ( 7 )  ( 1 , 1 , 1 , 1 ) ,
4 4 2 3 5 4 4 20 5 2 4
що є елементами множини
s 2  { y : y  ( y1 , y 2 , y3 , y 4 ), y1  0, y 2  0, y3  0, y 4  0, y1  y 2  y3  y 4  1}

Якщо перший гравець застосовує змішану стратегію x


(0)
 ( 1 , 5 ) , а другий
6 6
застосовує стратегію y
( 0)
 ( 1 ,0, 1 , 1 ) , то середній виграш першого гравця, визна-
3 3 3
ділячи функцією гри, виявиться рівним
m n
M ( x ( 0 ) , y ( 0 ) )   aij xi  10
( 0) ( 0)
yj
i 1 j 1
9

Якщо ж перший гравець застосовує стратегію x


(0)
 ( 1 , 5 ) , а другий – стратегію
6 6
y (1)  ( 1 ,0, 1 , 1 ) , то M ( x ( 0) , y (1) )  25 . Оптимальна стратегія першого гравця
3 2 6 12
x*  ( 4 , 7 ) другого гравця y*  (0, 4 , 7 ,0) ; 5 — ціна гри.
11 11 11 11 11

Сідлова точка в змішаних стратегіях


68
Пара змішаних стратегій (х *, у *) називається сідловою функції М(х, у), якщо
M ( x, y*)  M ( x*, y*)  M ( x*, y ) (2)
Кожна матрична гра з нульовою сумою має рішення в змішаних стратегіях, тобто
існують такі змішення стратегії х* і y* першого і другого гравців відповідно, що
виконується умова (10.2). Гарантований виграш першого гравця, який застосовує змішану
стратегію
v1 ( x )  min M ( x, y )
ys 2
n
s 2  { y : y  ( y1 , y 2 ,..., y n ), y j  0,  y j  1}
j 1

Стратегія х*, при якій гарантований виграш першого гравця досягає максимального
значення, називається оптимальною стратегією першого гравця:

v1 ( x*)  min v1 ( x)  max M ( x, y ) min M ( x, y )


xs1 xs1 ys 2
m
s1  {x : x  ( x1 , x2 ,..., xm ), xi  0,  yi  1}
i 1
Гарантований програш другого гравця
u 2 ( y )  max M ( x, y )
xs1

y* – оптимальна стратегія другого гравця, якщо


u 2 ( y*)  min u 2 ( y )  min max M ( x, y )
ys2 ys2 xs1

Гарантований виграш першого гравця, що застосовує свою оптимальну стратегію,


дорівнює гарантованому програшу другого гравцеві, який застосовує свою оптимальну
стратегію: v1 ( x*)  u 2 ( y*)  v * – ціна гри.

Зведення задачі теорії ігор до задачі лінійного програмування


Завдання максимізації гарантованого виграшу першого гравця і завдання мінімізації
гарантованого програшу другого гравця зводяться до пари взаємно двоїстого завдань
лінійного програмування:

Задача першого гравця Задача другого гравця


F  v(max), F  u (max),
m n

a ij xi  v, j  1,2,..., n a j 1
ij y j  u , j  1,2,..., m
i 1
m n

 xi  1 y j 1
j 1
i 1

xi  0, i  1,2,..., m y j  0, j  1,2,..., n

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


xi yj
i  (i  1,2,..., m), j  ( j  1,2,..., n) . Это возможно, если aij  0 .
v u
Маємо:

Задача першого гравця Задача другого гравця

69
m n
f    i (min), f   j (max),
i 1 j 1
m n

a  ij i  1, j  1,2,..., n a 
j 1
ij j  1, i  1,2,..., m
i 1

 i  0, i  1,2,..., m  j  0, j  1,2,..., n

Оптимальні стратегії гравців не зміняться, якщо матрицю гри A  aij замінити на


~
A  aij  c . Цена игры при этом увеличивается на с.

Ціна гри при цьому збільшується на с.

Методи вирішення задач теорії ігор


Методи вирішення задач теорії ігор багато в чому залежать від умов завдання і від
матриці А виграшів першого гравця.
1) Якщо матриця А має сідлову точку, то рішення гри зводиться до знаходження
сідлової точки матриці А. Оптимальні стратегії гравців визначаються при цьому
координатами (i, j) сідловий точці матриці А, а ціна гри елементом aij в седловій точці.
Приклад 1. Знайти оптимальні стратегії гравців і ціну гри:
2 10 3 14 5
 
A 8 9 5 6 7
10 8 4 8 12 

Мінімізуючи елементи першого рядка, отримаємо, що –
 1  min{2,10,3,14,5}  2 ,
аналогічно,  2  min{8,9,5,6,7}  5 ,  3  min{10,8,4,8,12}  4 .
Максимізуючи елементи по стовпцях, отримаємо:
1  10,  2  10,  3  5,  4  14, 1  12 . Нижня ціна гри v визначається шляхом
максимізації  i :
v  max  i  max{2,5,4}  5
i

Верхня ціна гри визначається мінімізацією  j :


v  min  j  min{10,10,5,14,12}  5
j

Маємо v  v , так що v  5 . Гра, яка визначається матрицею A, має сідловую точку


(2, 3). Завдання можна вирішити в чистих стратегіях. Оптимальний спосіб гри
знайдений. Дотримуючись чистої другий стратегії, перший гравець забезпечує собі
виграш, не менший 5, другий гравець, застосовуючи чисту третю стратегію, програє не
більше 5. Обидві стратегії i=2 і j=3 є оптимальними для першого і другого гравців. Ціна
гри v=5.

2) Якщо матриця А має розмір m  2 а б о 2  n , то рішення задачі може бути


отримано графічно.
Іноді процес вирішення завдання можна спростити, якщо викреслити з матриці
домінованих (некорисні) стратегії. Викресленим стратегіям відповідають нульові
компоненти в змішаних стратегіях. Стратегія i 0 для першого гравця є домінованих, якщо
існує така стратегія i1 для першого гравця, що

ai1 j  ai0 j , j  1,2,..., n

або якщо існують такі числа  i  0, (i  i0 ), 


i i
 i  1 , що   i aij  ai j , j  1,2,..., n
i i
0
0 0

70
Стратегія j 0 для другого гравця є домінуючою, якщо існує така стратегія j 1 другого
гравця, що
aij1  aij0 , i  1,2,..., m

або якщо існують такі числа  j  0, ( j  j0 ), 


j j
 j  1 , что  j aij  aij , i  1,2,..., m
j j
0
0 0

Приклад 2. Знайти оптимальні стратегії гравців і ціну гри

3 7 2 1 5 8 
 
A  4 9 3 6 2 1 
2 3 1 4 9 20 

У чистих стратегіях рішення гри немає, так як
v  max min aij  1
i j

v  min max aij  3


i j

v<v
Спростимо матрицю A, помітивши, що
ai 2  ai1 , i  1,2,3
ai1  ai 3 , i  1,2,3
1 1
a1 j  a2 j  a3 j , j  3,4,5
2 2
ai 4  ai 3 , i  2,3

Задачу с матрицею A разміру 2x3 вирішимо геометрично:


3 2 1 
A   
1 9 20 
У площині змінних (x, v) побудуємо – vj(x) очікуваний середній виграш першого
(рис. 1) гравця, що застосовує першу стратегію з ймовірністю х за умови, що другий
гравець відповідає чистою стратегією j (j=1,2,3):
v1 ( x )  3 x  1(1  x )  2 x  1
v2 ( x )  2 x  9(1  x)  7 x  9, 0  x  1
v3 ( x )  x  20(1  x )  19 x  20
У точці А (див. рис.) перетину прямих v1(x) і v2(x) гарантований виграш першого
гравця (зображений жирною лінією) досягає найбільшого значення

2 x  1  7 x  9,
9 x  8,
x8 ;
9
x *  ( 8 , 1 ); y *  ( 7 , 2 ), v *  25
9 9 9 9 9
Вихідна задача з матрицею А має наступне рішення:
v*  25 ; x*  (0, 8 , 1 ); y*  (0,0, 7 ,0, 2 ,0) .
9 9 9 9 9

71
3) Якщо завдання теорії ігор не має рішення в чистих стратегіях і не може бути
вирішена графічно, то для отримання точного рішення гри використовують методи
лінійного програмування. Доцільно завдання другого гравця вирішувати симплекс-
методом. У останній симплекс-таблиці, що містить оптимальне рішення задачі другого
гравця, можна знайти і оптимальне рішення двоїстої задачі – задачу першого гравця.
Приклад 3. Отримати рішення задачі теорії ігор, якщо матриця виграшів першого
гравця відома:
 0 2 7 4 
 
A   1 1 4  2
 2 0 1 1 

Очевидно, що матриця А не має сідлової точки і що графічний спосіб вирішення
неприйнятний.
Побудуємо пару взаємно двоїстих задач лінійного програмування, еквівалентну
~
грі з матрицею A   A  2 . Маємо:
f  1   2  3   4 (max)   1   2   3 (min)
21  9 3  6 4  1 21   2  4 3  1
  3  6  1 3  2  1
1 2 3  2 3
 
41  2 2  3  3 4  1 91  6 2   3  1
 j  0, j  1,2,3,4  i  0, i  1,2,3

Зведемо задачу другого гравця до канонічної задачі мінімізації
f '  1  2 3  4 (min)
21  93  6 4  5  1
  3  6    1
1 2 3 6

41  2 2  3  3 4   7  1
 j  0, j  1,2,...,7

і складемо симплекс-таблицю, яка наведена до базису A5 , A6 , A7 опорного
рішення   (0,0,0,0,1,1,1) :
72
1 2 3 4 5 6 7 1 2 3 4 5 6 7
2 0 9 6 1 0 0 1 2 0 9 6 1 0 0 1
1 3 6 0 0 1 0 1 1/3 1 2 0 0 1/3 0 1/3
4 2 1 3 0 0 1 1 10/3 0 -3 3 0 -2/3 1 1/3
1 1 1 1 0 0 0 0 2/3 0 -1 1 0 -1/3 0 -1/3

Вибираємо позитивну оцінку  2  1 і знаходимо найменше відношення min{l/3,


1/2} = 1/3. З провідним елементом a 22  3 виконуємо жорданове перетворення
таблиці отримуємо

1 2 3 4 5 6 7
-14/3 0 15 0 1 4/3 -2 1/3
1/3 1 2 0 0 1/3 0 1/3
10/3 0 -1 1 0 -2/9 1/3 1/9
-4/9 0 0 0 0 -1/9 -1/3 -4/9

Всі оцінки базису A2 , A4 , A5 не позитивні. Отже,  3  (0, 1 ,0, 1 , 1 ,0,0) –


3 9 3
оптимальне опорне рішення канонічної задачі мінімізації. Тому   (0, 1 ,0, 1 ) є
3 9
оптимальним рішенням задачі лінійного програмування і f (  )  4 .
9
Компоненти оптимального рішення двоїстої завдання визначаються за допомогою
оціночної рядки останньої симплекс-таблиці, а саме   ( 5 , 6 , 7 ) , так що
  (0, 1 , 1 ) – оптимальне рішення двоїстої задачі. Переходячи до первинних змінних
9 3
y j   j u , xi   i v задачі, отримаємо u *  9 ; y*  (0, 3 ,0, 1 ); x*  (0, 1 , 3 ) .
4 4 4 4 4
Нарешті,
v*  u*  9 / 4  2  1 / 4
x*  (0, 1 , 3 )
4 4
y*  (0, 3 ,0, 1 )
4 4
2. Рішення матричних ігор в системі TORA.
У програмі TORA для вирішення ігр двох гравців з нульовою сумою треба вибрати
команду Zero-sum Games (Ігри з нульовою сумою> Solve. Далі вибрати> Graphical
(Графічне рішення) або> LP-based (Вирішити як задачу ЛП). На рис. 10.1,10.2,10.3
показані результати вирішення завдання прикладу (файл ch 14ToraGamesEx 14-4-3).

73
Рис. 10.1. Умова завдання гри з нульовою сумою

Рис.10.2. Графічне рішення задачі з нульовою сумою.

3. Завдання.
Вирішити такі задачі теорії ігор.

74
Рис. 10.3. Рішення гри з нульовою сумою як завдання ЛП.

3.1. Дві компанії А і В продають два види ліків проти грипу. Компанія А рекламує
продукцію на радіо (А1), телебаченні (А2) і в газетах (А3). Компанія В, на додаток до
використання радіо (B1), телебачення (В2) і газет (В3), розсилає також поштою брошури
(В4). Залежно від уміння і інтенсивності проведення рекламної кампанії, кожна з компаній
може залучити на свою сторону частину клієнтів конкуруючої компанії. Наведена нижче
матриця характеризує відсоток клієнтів, залучених або втрачених компанією А.

3.2. Дві фірми виробляють два конкуруючих товару. Кожен товар в даний час
контролює 50% ринку. Поліпшивши якість товарів, обидві фірми збираються розгорнути
рекламні кампанії. Якщо вони не будуть цього робити, то існуючий стан ринку не
зміниться. Однак якщо яка-небудь фірма буде більш активно рекламувати свої товари, то
інша фірма втратить відповідний відсоток своїх споживачів. Дослідження ринку показує,
що 50% потенційних споживачів отримують інформацію за допомогою телебачення, 30% -
через газети і 20% - по радіо. Сформулюйте задачу у вигляді гри двох осіб з нульовою
сумою і виберіть відповідні кошти реклами для кожної фірми.
3.3. На заміському пікніку дві команди, по дві особи в кожній, грають в хованки. Є
чотири місця, де можна сховатися (А, Б, В і Г), і два члени ховається команди можуть
сховатися кожен окремо в будь-яких двох з чотирьох місць. Потім інша команда має
можливість перевірити будь-які два місця. Команда, яка шукає, отримує премію, якщо
будуть виявлені обидва учасники ховається команди, коли ота жінка не виявлено жоден
учасник, то вона виплачує премію. Інакше гра закінчується внічию. Сформулюйте задачу у
вигляді гри двох осіб з нульовою сумою. Визначте оптимальні стратегії і ціну гри.
3.4. Університетські команди UA і DU визначають свої стратегії гри в
національному чемпіонаті з баскетболу для коледжів. Оцінюючи можливості своїх
"запасних лавок", кожен тренер розробив по чотири Варіант заміни гравців протягом
75
гри. Здатність кожної команди виконувати дво-, триочкові і штрафні кидки є основним
чинником, що визначає результат гри. Наведена нижче таблиця містить окуляри чистого
виграшу команди UA протягом одного володіння м'ячем в залежності від стратегій,
планованих кожною командою.

a) Вирішіть гру методами лінійного програмування та визначте виграшні стратегії.


b) Виходячи з наявної інформації, яка з двох команд може виграти чемпіонат?
c) Нехай за всю гру є 60 можливостей володіння м'ячем (30 володінь
для кожної команди). Передбачу очікувана кількість очок, з яким буде виграна гра
чемпіонату.
3.5. Армія полковника Блотто бореться з ворожою армією за контроль над
двома стратегічно важливими позиціями. Полковник має в своєму розпорядженні
два полки, а його супротивник - три. Кожен з супротивників може посилати на будь-яку
позицію тільки ціле число полків або зовсім не посилати. Позиція буде захоплена армією,
яка атакує великою кількістю полків. Інакше результат битви є нічийним.
a) Сформулюйте задачу у вигляді гри двох осіб з нульовою сумою і вирішите гру
методами лінійного програмування.
b) Яка армія виграє війну?
3.6. У старовинної італійської (або навіть давньоримської) грі двох осіб, що
іменується двухпальцевой грою Морра, кожен гравець показує один або два пальці і
одночасно вголос намагається відгадати число пальців, які покаже його
противник. Гравець, який вгадав, виграє суму, рівну сумарному числу показаних
противниками пальців. Інакше гра закінчується внічию. Сформулюйте задачу у вигляді
гри двох осіб з нульовою сумою і вирішите гру методами лінійного програмування.
3.8. Сформулювати і вирішити як гру з нульовою сумою всім відому з дитинства
гру з жестами "Камінь-Ножиці-Папір".
3.7. Вирішіть більш складну задачу. За умовами гри «Камінь-вода-ножиці-скло-
папір» гравці за звуковим сигналом викрикують одну з п'яти стратегій. Умови гри такі:
• вода змочує камінь;
• папір горить краще води;
• ножиці ріжуть папір;
• камінь розбиває ножиці;
• ножиці коштують дорожче, ніж вода;
• скло більш крихке, ніж вода і ножиці;
• камінь товщі, ніж скло і папір;
• папір гнучкіше, ніж скло.
Ці співвідношення можна виразити за допомогою наступного малюнка, на якому
стрілками вказані напрямки підпорядкування:

76
Позначивши виграш, програш і нічию відповідно як 1, -1 і 0, побудуйте платіжну
матрицю і визначте оптимальні стратегії гравців і ціну гри.
3.8. Відомий актор обмірковує, де б йому провести в поточному році відпустка. Він
розглядає 6 можливих варіантів: Монте-Карло (МК), Гавайські острови (Г), Багамські
острови (Б), Канарські острови (К), Сочі (С), озеро Байкал (ПРО). Єдиний критерій для
вибору місця відпочинку - прагнення уникнути журналістів, які можуть зіпсувати йому
відпочинок. Якщо вони його «вистежать», відпочинок буде зіпсований (корисність
дорівнює 0). В іншому випадку, все буде, як заплановано (корисність дорівнює 1).
Внаслідок різних географічних умов, журналісти можуть виявити актора з певною
(відомої) ймовірністю: в Монте-Карло з ймовірністю 0,34; на Гавайських островах з
ймовірністю 0,12; на Багамських островах з ймовірністю 0,16; на Канарських островах з
ймовірністю 0,4; в Сочі з ймовірністю 0,5; на озері Байкал з ймовірністю 0,2.
Опишіть дану ситуацію, як гру двох осіб з нульовою сумою (актор - гравець 1,
журналісти - гравець 2). Обчисліть ціну гри та визначте мінімаксні стратегії обох гравців.
Чому дорівнює максимальна очікувана корисність відпустки актора? З якою ймовірністю
актор поїде у відпустку на Байкал? Чому дорівнює верхня ціна гри? В якому з місць
найбільш ймовірно буде відпочивати актор?
3.9.Однажди на «Дикому Заході» стався такий випадок. Група з п'яти індіанців
обложила табір, що охороняється чотирма білими. У табори два входи Е1 і Е2. Білий
розвідник встановив, що перед входом Е1 знаходиться як мінімум один індіанець, а перед
входом Е2 як мінімум два індіанця. Розташування інших індіанців невідомо. Командир
обложених може розташувати себе і трьох солдатів біля входів Е1 і Е2. Причому, у
кожного входу повинен бути як мінімум одна людина. Передбачається, що чисельно
переважаюча (у кожного входу) група бере в полон всю групу супротивника без власних
втрат, в той час як при рівності сил перед будь-яким входом втрат з обох сторін немає. Як
платежу (виграшу) виступає різниця числа полонених.
а) Визначте всі чисті стратегії обох супротивників.
б) Побудуйте платіжну матрицю, вважаючи гравцем 1 обороняється сторону.
в) Спростіть матрицю наскільки це можливо і знайдіть оптимальні стратегії сторін.
г) як часто слід білим використовувати стратегію: розташувати по дві людини у
кожного входу?
д) Хто найбільший у середньому захопить полонених, білі або індіанці? (1 - білі, 2 -
індіанці)
е) яка абсолютна величина різниці числа захоплених обома сторонами полонених?
ж) з якою частотою слід білим використовувати стратегію: розташувати у першого
входу одного, а у другого трьох людини?
з) з якою частотою слід індіанцям використовувати стратегію: розташувати у
першого входу трьох, а у другого двох воїнів?

3.10.В нашому розпорядженні є три види озброєння: A1, A2, А3; у супротивника -
три види літаків: B1, В2, В3. Наше завдання - вразити літак; задача противника- зберегти
його неураженим. Літаки В1, В2 і В3 уражаються при використанні озброєння А1

77
відповідно з можливостями 0,9, 0,4 і 0,2; при використанні А2 - з вірогідністю 0,3, 0,6 і
0,8; при використанні А3 - з вірогідністю 0,5, 0,7 і 0,2.
3.11.Сельскохозяйственное підприємство виробляє картопля. Посівна площа
картоплі становить 100 га. Господарство має договір з магазином, який гарантовано
закупить весь вироблений картопля за ціною 4 у.г.о. за 1 кг. При вирощуванні картоплі
господарство може прийняти одне з трьох рішень, що розрізняються за сумою витрат на
виробництво продукції:
A1. Провести комплексну обробку рослин для запобігання ураження бур'янами,
шкідниками і хворобами (витрати - 6 млн. у.г.о.).
A2. Провести часткову обробку рослин (витрати - 4 млн. у.г.о.).
A3. Чи не проводити обробку рослин (витрати - 2.5 млн. у.г.о.).
Залежно від погодних умов, наявності та розвитку бур'янів, шкідників і хвороб
можливі наступні ситуації:
S1. Умови для розвитку бур'янів, шкідників і хвороб несприятливі.
S2. Умови для розвитку бур'янів, шкідників і хвороб звичайні.
S3. Умови для розвитку бур'янів, шкідників і хвороб сприятливі.
Значення врожайності картоплі (ц / га) залежно від рішень сільськогосподарського
підприємства і розвитку бур'янів, шкідників і хвороб наведені в таблиці
Стратегії Розвиток бур'янів, шкідників і хвороб
господарства
S1 S2 S3
A1 260 260 260
A2 255 200 1450
A3 250 100 40
Визначте найбільш оптимальну стратегію підприємства і ціну гри. Дайте
економічну інтерпретацію результатів рішення задачі.
3.12. Сторона В засилає підводний човен в один з двох районів. Сторона A, маючи в
своєму розпорядженні трьома протичовновими кораблями, прагне виявити човен
противника. Сторона В прагне цього уникнути. Ймовірність виявлення підводного човна в
1-му районі одним протичовневим кораблем дорівнює p1 = 0,4, у другому - p2 = 0,6.
Передбачається, що виявлення човна кожним кораблем є незалежною подією. Сторона А
може посилати в різні райони різну кількість кораблів (розподіл кораблів по районам і є її
стратегія). Вважаючи сторону А гравцем 1, побудувати гру і знайти оптимальний розподіл
протичовнових кораблів по регіонах.Яка ціна гри? З якою частотою стороні А слід
посилати в регіон 2 три протичовнові кораблі? З якою частотою стороні А слід посилати в
регіон 1 один протичовновий корабель? З якою частотою стороні В слід посилати
підводний човен в регіон 2?
3.13.В одному сільськогосподарському районі погода протягом вегетаційного
періоду в середньому може бути холодною або теплою. На фермі з площею в 1500 акрів
планується посів двох культур. Якщо вегетаційний період холодний, то очікуваний
прибуток від урожаю становить 20 доларів на акр для культури I і 10 доларів на акр для
культури II. Якщо ж вегетаційний період теплий, то очікуваний прибуток оцінюється в 10
доларів за акр для культури I і 30 доларів за акр для культури II. Опишіть конкуренцію між
фермером і погодою як матричну гру. Яка оптимальна стратегія фермера, коли немає ніякої
інформації щодо ймовірностей теплої або холодної погоди? Якщо погода з однаковою
ймовірністю може бути теплою чи холодною, то скільки акрів слід відвести фермеру під
кожну культуру?
3.14.В експериментах ворон і папужок навчають розпізнаванню чисел до семи.
Використовується така схема експерименту. Раціон ворони R і папужки З повинен
визначатися матричної грою. Кожній птиці показують три картки з нанесеними на них
двома, чотирма і сім'ю точками. Якщо обидві птахи вибирають одну і ту ж картку, то R
78
отримує з раціону З кількість черв'яків, рівне подвоєному числу точок на картці. Якщо
вони вибирають різні картки, то С отримує з раціону R кількість черв'яків, рівне різниці в
числі точок на картках. У припущенні, що ходи робляться незалежно (наприклад, за
допомогою двох наборів карток), потрібно описати цей експеримент як матричну гру.
Знайти оптимальні чисті стратегії гравців. Чиї шанси на виграш краще в разі чистих
стратегій? Знайти оптимальні змішані стратегії.Чиї шанси краще в цьому випадку?
3.15. Джек часто їздить між двома містами. При цьому є можливість вибрати один з
двох маршрутів: маршрут А являє собою швидкісне шосе в чотири смуги, маршрут В -
вузьку об'їзну дорогу. Патрулювання доріг здійснюється обмеженим числом поліцейських.
Якщо все поліцейські розташовані на одному маршруті, то Джек, зазвичай їде «на грані
фолу», безсумнівно, отримає штраф у 100 дол. За перевищення швидкості. Якщо
поліцейські патрулюють на двох маршрутах в співвідношенні 50 на 50, то є 50% -ва
ймовірність, що Джек отримає штраф у 100 дол. На маршруті А і 30% -ва ймовірність, що
він отримає такий же штраф на маршруті В. Крім того , маршрут У довше, тому бензину
витрачається на 15 дол. більше, ніж на маршруті А. Визначте найкращу стратегію для
Джека.
3.16. У магазині працює охоронна служба - двоє поліцейських в
штатському. Торговий зал магазину ділиться на дві умовні зони - в зоні А майже
завжди відвідувачів значно більше, ніж в зоні В. Є деяка позиція Т поза торгової
площі, в T встановлена телекамера. У кожній з двох умовних зон може перебувати
злодій. Поліцейські ж можуть перебувати в А, в В або в Т. Передбачається, що
відомі ймовірності виявлення злодія в певній зоні за умови, що поліцейський
знаходиться в фіксованому місці. Так, злодія, що знаходиться в А, поліцейський на
тому ж місці помітить з ймовірністю 0.4; із зони Т він помітить його в зоні А з
ймовірністю 0.3; і т.д. відповідно до таблиці
T A B
A 0.3 0.4 0.1
B 0.5 0.2 0.7
Так як поліцейських двоє, то вони можуть перебувати разом або в різних
місцях. Для кожної з ситуацій необхідно підрахувати ймовірність виявлення злодія в
кожній зоні і побудувати на її основі матрицю гри (назва рядка - місце злодія, стовпці -
охорони). Визначити, чи існує в грі сідлова точка. Знайти оптимальні стратегії гравців і
ціну гри.

4. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.
.

Лабораторна робота №12

Тема: Рішення задач оптимізації на мережах і графах за допомогою вільно


розповсюджуваних програмних продуктів
Мета: Вивчити алгоритми і практичні прийоми рішення задач на мережах і графах
за допомогою програм Графоаналізатор і Grin.
1. Загальні відомості.
1.1. Програма Графоаналізатор (http://grafoanalizator.unick-soft.ru/).

79
Графоаналізатор – візуальне середовище для роботи з графами. Графоаналізатор
надає можливість створювати і обробляти графи, і візуально відображати результати
роботи алгоритмів на мережах і графах. Середовище підтримує роботу з орієнтованими і
простими графами, навантаженими і ненавантаженими. Програма реалізує багато
алгоритми для вирішення задач на графах. починаючи від пошуку шляху і закінчуючи
перевіркою на планарність. Основні особливості:
1. 20 алгоритмів для обробки графа.
2. Можливість візуальної всього процесу роботи з графом.
3. Підтримка допоміжних функцій по створенню графа по карті.
4. Довідка містить опис основних завдань що вирішуються за допомогою
програмного продукту.
5. Детальна довідка, підтримка і зворотний зв'язок з автором. Програма вже існує
близько 5 років. 9 березня 2012 проект Графоаналізатор став проектом з відкритим
вихідним кодом. Вихідні файли можна завантажити зі сторінки програми на SourceForge.
1.2. Програма Grin (GRaph INterface) (http://graph-software.narod.ru/main.html).
Програма Grin також призначена для візуалізації графів і рішення задач про шляхи
на графах.
1.3. Завдання про максимальний парасочетаніі на графі вирішена в книзі: Іглін
С.П. Математичні розрахунки на базі MATLAB. БХВ, СП-б., 2005, розділ 29.1, стор. 508-
520 в системі програмування Matlab і реалізована у вигляді функції MaxMatch.
2. Завдання.
2.1. Вивчити методи роботи з програмами Графоаналізатор і Grin.
2.2. Вирішити всі демонстраційні завдання, пропоновані в цих програмах за
темами, що вивчалися в курсі.
2.3. Вирішити всі завдання по темі "Оптимізація на мережах і графах", вирішені
вами в процесі виконання лабораторних робіт 6,7,8,10 за допомогою програм
Графоаналізатор і Grin і перевірити правильність отриманих результатів.
2.4. Адаптувати програму для вирішення задачі про максимальний паросполучення
для системи Scilab.

3. Зміст звіту.
1. Титульний лист.
2. Назва та мета роботи.
3. Завдання.
4. Результати виконання завдання, включаючи екранні форми і коментарі їх вмісту.
5. Висновки по роботі.
.

ЛІТЕРАТУРА
1. Дослідження операцій. Конспект лекцій / Уклад.: О.І. Лисенко, І.В. Алєксєєва –
К: НТУУ «КПИ», 2016. – 196 с.
2. Hamdy A. Taha. Operations Research. An Introduction. Tenth Edition. – Pearson
Education Limited, 2017. – 843 p. [Електронний ресурс]: http:// bok.cc/book/3607157/b21177.
3. Великодний С. С. Математичні методи дослідження операцій: конспект
лекцій.Одеський державний екологічний університет, 2014.
– 162 с.
5. Кутковецький В. Я. Дослідження операцій: Навчальний посібник. / В. Я.
Кутковецький. – [2-ге видання, виправлене]. – К.: ВД «Професіонал», 2005. – 264 с.

80
6. Катренко А.В. Дослідження операцій: Підручник.– Львів: Магнолія Плюс, 2004.–
549 с.
7. Сікора Я. Б. Дослідження операцій. Навчально-методичний посібник для
студентів напряму 6.040302 Інформатика. – Житомир: Вид-во ЖДУ ім. Івана Франка, 2012.
– 78 с.
8. Дякон В. М. Моделі і методи теорії прийняття рішень: Підручник. / В.М. Дякон,
Л.Є. Ковальов – К.: АНФ ГРУП, 2013. – 604 с.
9. Зайченко Ю.П. Дослідження операцій / Ю.П. Зайченко – Київ : ЗАТ “Віпол”,
2007. – 688 с.
10. Математичні методи дослідження операцій: підручник / Є. А. Лавров, Л. П.
Перхун, В. В. Шендрик та ін. – Суми : Сумський державний університет, 2017. – 212 с.

81

You might also like