Дата конвертації12.06.2018
Розмір396.01 Kb.
Типнавчальний посібник

Скачати 396.01 Kb.

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


короткий курс

МАТЕМАТИЧНІ МЕТОДИІССЛЕДОВАНІЯ ОПЕРАЦІЙВ ЕКОНОМІЦІ

П. Конюховскій

НАВЧАЛЬНИЙ ПОСІБНИК

Санкт-Петербург

Москва • Харків • Мінськ

2000

Конюховскій П. В.

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

Серія «Короткий курс»

Головний редактор видавництва

завідувач редакції

художній редактор

літературний редактор

Верстка

В. Усманов

Л. Волкова

В. Земських

Е. Маслова

Е. Маслова

ББК22.183я7 + 65.529 УДК519.8 (075) +658.012.122 (075)

Конюховскій П. В.

К65 Математичні методи дослідження операцій в економіці - СПб .: Видавництво «Пітер», 2000. - 208 с. - (Серія «Краткійкурс»).

ISBN 5-8046-0190-3

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

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

© Конюховскій П. В., 2000.

© Серія, оформлення, ЗАТ «Видавництво« Пітер », 2000.

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

ISBN 5-8046-0190-3

Видавництво «Пітер». 196105, С.-Петербург, Благодатна вул., 67. Ліцензія ЛР № 066333 від 23.02.99.

Підписано до печаті15.09.99. Формат 60х90 / 16. Ум. п. л. 13.

Тираж 5000. Замовлення 4418.

Віддруковано з фотоформ в АТВТ «Друкарня" Правда "».

119. С.-Петербург, Соціалістична вул., 14.

ПЕРЕДМОВА

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

Формування дослідження операцій як самостійної гілки прикладної математики відноситься до періоду 40-х і 50-х років. Наступні півтора десятиліття були відзначені широким застосуванням отриманих фундаментальних теоретичних результатів до різноманітних практичних завдань і пов'язаних з цим переосмисленням потенційних можливостей теорії. В результаті дослідження операції набуло рис класичної наукової дисципліни, без якої немислиме базову економічну освіту.

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

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

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

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

¨ базові поняття предмета при їх першій появі в тексті виділяються курсивом, а найбільш важливі з них (ті, які варто не забувати і після прочитання!) - жирним шрифтом;

¨ перед фундаментальними визначеннями стоїть символ -;

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

¨ доказ теореми завершується символом -.

ВСТУП

Початок розвитку дослідження операцій як науки традиційно пов'язують з сороковими роками двадцятого століття. Серед перших досліджень в даному напрямку може бути названа робота Л. В. Канторовича «Математичні методи організації і планування виробництва», що вийшла в 1939 р У зарубіжній літературі відправною точкою зазвичай вважається вийшла в 1947 р робота Дж. Данцига, присвячена вирішенню лінійних екстремальних задач.

Слід зазначити, що не існує жорсткого, усталеного і загальноприйнятого визначення предмета дослідження операцій. Часто при відповіді на дане питання йдеться, що «дослідження операцій являє собою комплекс наукових методів для вирішення завдань ефективного управління організаційними системами» [14].

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

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

1. Постановка завдання.

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

3. Побудова математичної моделі, т. Е. Переклад сконструйованої вербальної моделі в ту форму, в якій для її вивчення може бути використаний математичний апарат.

4. Рішення задач, сформульованих на базі побудованої математичної моделі.

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

6. Реалізація отриманого рішення на практиці.

Центральне місце в цій книзі відведено питанням, що належать до четвертого пункту наведеної вище схеми. Це робиться не тому, що він є найважливішим, складним або цікавим, а тому, що інші пункти істотно залежать від конкретної природи досліджуваної системи, в силу чого для дій, які повинні проводитися в їх рамках, не можуть бути сформульовані універсальні і змістовні рекомендації . З цього приводу, наприклад, X. Таха зауважив, що дослідження операцій одночасно є як наукою, так і мистецтвом [27].

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

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

Управління портфелем активів. Розглянемо проблему прийняття інвестором рішення про вкладення наявного у нього капіталу. Набір характеристик потенційних об'єктів для інвестування, що мають кодові назви від А до F, задається наступною таблицею.

Назва Прибутковість (в%) Термін викупу (рік) Надійність (в балах)

А

5,5

2001

5

В

6,0

2005

4

З

8,0

2010

2

D

7,5

2002

3

Е

5,5

2000

5

F

7,0

2003

4

Припустимо, що при ухваленні рішення про придбання активів повинні бути дотримані умови:

a) сумарний обсяг капіталу, який повинен бути вкладений, становить $ 100 000;

b) частка коштів, вкладена в один об'єкт, не може перевищувати чверті від всього обсягу;

c) більше половини всіх коштів повинні бути вкладені в довгострокові активи (припустимо, на даний момент до таких належать активи з терміном погашення після 2004 р);

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

Приступимо до написання економіко-математичної моделі для даної ситуації. Доцільно розпочати процес з визначення структури керованих змінних. У розглянутому прикладі в якості таких змінних виступають обсяги коштів, вкладені в активи тієї чи іншої фірми. Позначимо їх як х А, х В, х C, х D, х Е, х F. Тоді сумарний прибуток від розміщених активів, яку отримає інвестор, може бути представлена ​​у вигляді

На наступному етапі моделювання ми повинні формально описати перераховані вище обмеження ad на структуру портфеля.

a) Обмеження на сумарний обсяг активів:

х A + х B + х C + х D + х E + х F ≤ 100 000. (2)

b) Обмеження на розмір частки кожного активу:

х A ≤ 25 000, x B ≤ 25 000, x C ≤ 25 000,

x D ≤ 25 000, x E ≤ 25 000, x F ≤ 25 000. (3)

c) Обмеження, пов'язане з необхідністю вкладати половину коштів в довгострокові активи:

x B + x C ≥50 000. (4)

d) Обмеження на частку ненадійних активів:

х C + х D ≤ 30 000. (5)

Нарешті, система обмежень відповідно до економічного змістом завдання повинна бути доповнена умовами невід'ємності для шуканих змінних:

х A ≥ 0, х B ≥ 0, х С ≥ 0, х D ≥ 0, х E ≥ 0, х F ≥ 0. (6)

Вирази (1) - (6) утворюють математичну модель поведінки інвестора. В рамках цієї моделі може бути поставлена задача пошуку таких значень змінних х A, x B, x C, x D, x E, x F, при яких досягається найбільше значення прибутку (т. Е. Функції (1)) і одночасно виконуються обмеження на структуру портфеля активів (2) - (6).

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

Найпростіша задача виробничого планування. Нехай є деякий економічний об'єкт (підприємство, цех, артіль і т. П.), Який може виробляти деяку продукцію n видів. В процесі виробництва допустимо використання m видів ресурсів (сировини). Застосовувані технології характеризуються нормами витрат одиниці сировини на одиницю виробленого продукту. Позначимо через а i, j кількість i-го ресурсу (i Î 1: m), який витрачається на виробництво одиниці j -го продукту (j Î 1: n). Весь набір технологічних витрат у виробництві j-го продукту можна представити у вигляді вектора-стовпця

а технологію розглянутого підприємства (об'єкта) у вигляді прямокутної матpіци pазмеpності m на n:

Якщо j -й продукт виробляється в кількості x j, то в рамках описаних вище технологій ми повинні витратити a 1, j x j першого ресурсу, a 2, j x j - другого, і так далі, a m, j x j - m -го. Зведений план виробництва по всіх продуктах може бути представлений у вигляді n мірного вектора-рядка х = (х 1, х 2,..., х j,..., х n). Тоді загальні витрати по i -му ресурсу на виробництво всіх продуктів можна виразити у вигляді суми

представляє собою скалярний добуток векторів а j і х. Очевидно, що будь-яка реальна виробнича система має обмеження на ресурси, які вона витрачає в процесі виробництва. В рамках викладається моделі ці обмеження породжуються m -мірним вектором b = (b 1, b 2, ..., b m), де b i - максимальна кількість i -гo продукту, який можна витратити впроізводственном процесі. У математичній формі дані обмеження представляються у вигляді системи m нерівностей:

Застосовуючи правила матричної алгебри, систему (7) можна записати в короткій формі, представивши ліву частину як твір матриці А на вектор х, а праву - як вектор b:

До системи (8) також повинні бути додані природні обмеження на неотрицательность компонентів плану виробництва: х 1 ≥0, ..., х j ≥0, .... х n ≥0, або, що те ж саме,

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

Формули (8) - (10) є не чим іншим, як найпростішої математичною моделлю, яка описує окремі сторони функціонування деякого економічного об'єкта, поведінкою якого ми хочемо керувати. В рамках даної моделі, взагалі кажучи, можна поставити різні завдання, але, швидше за все, самій «природною» буде завдання пошуку такого плану виробництва х Î R n, який дає найбільше значення сумарного доходу, т. Е. Функції (10), і одночасно задовольняє системі обмежень (8) - (9). Коротко таке завдання можна записати в наступному вигляді:

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

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

Транспортна задача. Розглянемо проблему організації перевезення певного продукту між пунктами його виробництва, кількість яких одно m, і n пунктами споживання. Кожен i -й пункт виробництва (i Î 1: m) характеризується запасом продукту а i ≥ 0, а кожен j-й пункт споживання (j Î 1: n) - потребою в продукті b j ≥ 0. Мережа доріг, що з'єднує систему розглянутих пунктів, моделюється за допомогою матриці с розмірності m на n, елементи якої з i, j є норми витрат на перевезення одиниці вантажу з пункту виробництва i в пункт споживання j. План перевезення вантажу в даній транспортної мережі представляється у вигляді масиву елементів розмірності m х n:

х = (x 1,1 ... x 1, n, x 2,1...., x 2, n,..., x i, 1,..., x i, n,..., x m, 1,..., x m , n). (12)

В (12) план перевезень х може розглядатися як вектор, що розпадається на m груп, по n елементів у кожній, причому i -я група відповідає обсягам вантажу, що вивозяться з j -го пункту виробництва в усі можливі пункти споживання. Якщо реальна перевезення між пунктами i та j відсутня, то вважають х i, j = 0.

Обмеження на можливі значення х Î R mn мають вигляд:

1. Обмеження на задоволення потреб у всіх пунктах споживання:

2. Обмеження на можливості вивезення запасів з усіх пунктів виробництва:

3. Умови невід'ємності компонентів вектора плану:

х, х i, j ≥ 0, i Î l: m, j Î l: n. (15)

Суттєвою характеристикою описуваної моделі є співвідношення параметрів а i і b j. Якщо сумарний обсяг виробництва дорівнює сумарному обсягу споживання, аіменно,

то система називається збалансованою. При виконанні умови збалансованості розумно накладати такі обмеження на сумарний ввезення і вивезення вантажу, при яких повністю вивозиться весь вантаж і не залишається незадоволених потреб, т. Е. Умови (13) і (14) набувають форму рівності.

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

Функція (16) і описані вище обмеження, записані в формі

задають транспортну модель. На її основі може бути сформульована задача мінімізації сумарних витрат на перевезення:

f (x) = cx → min, x Î D, (18)

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

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

Нехай на деякій множині D визначена функція f (x). Нагадаємо, що точка х *, що належить D (х * Î D), називається точкою глобального максимуму, якщо для будь-якого x Î D виконується нерівність f (x) ≤ f (x *). У цьому випадку значення f (x *) називається глобальним максимумом функції. Точка х називається точкою локального максимуму, якщо існує деяка околиця цієї точки, в будь-якій точці якої значення функції менше, ніж в х (f (x) ≤ f (x)). За аналогією, з точністю до знака нерівності, визначаються глобальний і локальний мінімуми. Узагальнюючим поняттям для максимуму і мінімуму є таксою термін, як екстремум (оптимум).

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

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

Потужним інструментом вирішення подібного роду завдань стали спеціальні методи пошуку екстремуму, що становлять зміст розділу дослідження операцій, який називається математичне програмування. В даному випадку поняття програмування вживається в значенні планування (на відміну від програмування для ЕОМ).

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

ГЛАВА 1. ЛІНІЙНЕ ПРОГРАМУВАННЯ

1.1. Постановка задачі лінійного програмування

1.1.1. Форми завдання лінійного програмування.

У загальному вигляді задача лінійного програмування * (надалі ЗЛП) може бути сформульована як задача знаходження максимального значення лінійної функції

на деякій множині D Ì R n, де х Î D задовольняють системі обмежень

і, можливо, обмеженням

х 1 ≥0, х 2 ≥0, ..., х j ≥0, ..., х n ≥0. (1.3)

* Нагадаємо, що приватні приклади, які зводяться до задачі лінійного програмування, були описані у вступі.

Не применшуючи спільності, можна вважати, що в системі (1.2) перші m обмежень є нерівностями, а наступні - l -уравненіямі. Очевидно, цього завжди можна домогтися за рахунок простого переупорядковування обмежень. Щодо направлення знака нерівності будемо припускати, що ліва частина менше або дорівнює правій. Домогтися цього можна, помноживши на (-1) обидві частини тих нерівностей, які мають протилежний знак. Обмеження (1.3), взагалі кажучи, можуть бути розглянуті як окремий випадок обмежень у формі нерівностей, але в силу особливої структури їх зазвичай виділяють окремо і називають умовами невід'ємності (або тривіальними обмеженнями).

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

еквівалентна задачі пошуку мінімуму функції

Часто умови задачі (1.1) - (1.3), що містить обмеження лише типу нерівностей, буває зручно записувати в скороченій матричної формі

f (x) = сх → max, A x b, х ≥ 0, (1.6)

де з і х - вектори з простору R n, b - вектор з простору R m, а А - матриця розмірності m х n.

Завдання лінійного програмування, записану в формі (1.1) - (1.3), називають спільним завданням лінійного програмування (ОЗЛП).

Якщо всі обмеження в задачі лінійного програмування є рівняннями і на всі змінні х j накладені умови невід'ємності, то вона називається задачею лінійного програмування в канонічної формі, або канонічної завданням лінійного програмування (КЗЛП). У матричної формі КЗЛП можна записати в наступному вигляді:

Оскільки будь-яка оптимізаційна задача однозначно визначається цільовою функцією f і областю D, на якій відшукується оптимум (максимум), будемо позначати цю задачу парою (D, f).

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

Планом ЗЛП називається всякий вектор х з простору R n.

Допустимим планом називається такий план ЗЛП, який задовольняє обмеженням (1.2) - (1.3), т. Е. Міститься в області D. Сама область D називається при цьому областю допустимих планів. Оптимальним планом х * називається такий допустимий план, при якому цільова функція досягає оптимального (в нашому випадку - максимального) значення, т. Е. План, що задовольняє умові

max f (x) = f (x *).

Величина f * = f (х *) називається оптимальним значенням цільової функції.

Рішенням задачі називається пара *, f *), що складається з оптимальним плану і оптимального значення цільової функції, а процес вирішення полягає в знаходженні безлічі всіх рішень ЗЛП.

1.1.2. Перехід до канонічної формі. Переважна більшість відомих методів вирішення завдань лінійного програмування призначені для канонічних задач. Тому початковий етап рішення будь-якої загальної задачі лінійного програмування зазвичай пов'язаний з приведенням її до деякої еквівалентної канонічної задачі.

Загальна ідея переходу від ОЗЛП до КЗЛП досить проста:

- обмеження у вигляді нерівностей перетворюються в рівняння за рахунок додавання фіктивних невід'ємних змінних х i, (i Î 1: m), які одночасно входять в цільову функцію з коефіцієнтом 0, т. Е. Не впливають на її значення;

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

- = - =

х j = х j - х j, (x j 0, х j 0).

Проілюструємо застосування цих інструкцій на прикладі. Нехай задана задача лінійного програмування (D, f) в загальній формі з цільовою функцією

f (x) = 5 х 1 + 3 x 2 + x 3 + 2 х 4 -2 х 5 → max

і безліччю допустимих планів D, певним системою рівнянь і нерівностей,

2 х 1 + 4 х 2 + 5 x 3 = 7,
- 3 x 2 + 4 x 3 - 5 x 4 - 4 x 5 ≤ 2,
3 х 1 - 5 x 3 + 6 x 4 - 2 x 5 ≤ 4,
х 1 ≥ 0, x 3 ≥ 0.

Тоді відповідно до сформульованими правилами еквівалентна канонічна задача матиме вигляд (D ', f'), де:

а безліч D 'визначено як:

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

1.2. Основні властивості ЗЛП ТА ЇЇ ПЕРША ГЕОМЕТРИЧНА ІНТЕРПРЕТАЦІЯ

1.2.1. Основні поняття лінійної алгебри і опуклого аналізу, що застосовуються в теорії математичного програмування. Коротко нагадаємо деякі фундаментальні визначення та теореми лінійної алгебри і опуклого аналізу, які широко застосовуються при вирішенні проблем як лінійного, так і нелінійного програмування.

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

Окремими випадками лінійних просторів є речова пряма, площина, геометричне тривимірний простір.

Вектор λ 1 a 1 + λ 2 a 2 + ... + λ m a m називається лінійною комбінацією векторів а 1 а 2,..., а m з коефіцієнтами λ 1, λ 2, λ m,

Система векторів лінійного простору а 1 а 2,..., а m називається лінійно залежною, якщо існують такі числа λ 1, λ 2, λ m нерівні одночасно нулю, що їх лінійна комбінація λ 1 a 1 + λ 2 a 2 + ... + λ m a m дорівнює нульовому вектору (вектору, всі компоненти якого дорівнюють нулю). В іншому випадку систему а 1, а 2,..., а m називають лінійно незалежної, т. Е. Лінійна комбінація даних векторів може бути дорівнює нульовому вектору тільки при нульових коефіцієнтах λ 1, λ 2,..., λ m

Максимально можливу кількість векторів, які можуть утворювати лінійно незалежну систему в даному лінійному просторі, називають розмірністю простору, а будь-яку систему лінійно незалежних векторів в кількості, що дорівнює розмірності, - базисом простору.

Лінійне простір зазвичай позначають як R n, де n - його розмірність.

Будь-яка підмножина даного лінійного простору, яка сама має властивості лінійного простору, називається лінійним подпространством. Безліч Н, що отримується зрушенням деякого лінійного підпростору L Ì R n на вектор a Î R n: H = L + a, називається аффінним безліччю (простором). Якщо фундаментальним властивістю будь-якого лінійного простору або підпростору є приналежність йому нульового вектора, то для афінного безлічі це не завжди так. На площині прикладом підпростору є пряма, що проходить через початок координат, а афінного безлічі - будь-яка пряма на площині. Характеристичною властивістю афінного безлічі є приналежність йому будь-якої прямої, що з'єднує дві будь-які його точки. Розмірність афінного безлічі збігається з розмірністю того лінійного підпростору, зрушенням якого воно отримано.

Якщо розглядається деякий лінійний простір R n, то його ж аффінниє безлічі розмірності 1 називаються прямими, а розмірності (n -1) - гіперплоскостямі. Так, звичайна площину є гиперплоскостью для тривимірного геометричного простору R 3, а пряма - гиперплоскостью для площині R 2. Будь-яка гіперплоскость ділить лінійне простір на два півпростору.

Безліч V векторів (точок) лінійного простору R n називається опуклим, якщо воно містить відрізок прямої, що з'єднує дві його будь-які точки, або, іншими словами, з того, що a Î V і b Î V, слід, що х = (1 λ) х а + λ х b Î V, де 0 ≤λ≤ 1.

лінійна комбінація

векторів а 1, а 2... а m називається опуклою, якщо λ i ≥0, iÎ1: m і

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

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

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

Безліч До називається конусом з вершиною в точці x 0, якщо x 0 Î К, і з того, що деяка точка х належить К (х Î К), випливає, що в До міститься і промінь, начінающійсяв х 0 і проходить через х, т. е.

або

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

1.2.2. Перша геометрична інтерпретація ЗЛП і графічний метод рішення. Розглянемо наступний приклад. Нехай дана задача максимізації лінійної цільової функції

f (x) = 3 х 1 + х 2 → max

на безлічі

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

На рис. 1.1 показано, що кожне нерівність визначає деяку полуплоскость. Відповідні області для кожного обмеження відзначені штрихами. Перетин D даних напівплощин (т. Е. Безліч точок, які одночасно належать кожній з них) є областю допустимих планів задачі. Поведінка цільової функції f (x) = 3 х 1 + х 2 в рамках двовимірної ілюстрації може бути охарактеризоване за допомогою ліній рівня.

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

Δ f (x) = df,..., df

dx 1 dx n

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

Для лінійної функції двох змінних лінія рівня являє собою пряму, перпендикулярну вектору с, який служить градієнтом цієї функції. Отже, якщо лінія рівня визначається рівнянням f (x) = c 1 x 1 + c 2 x 2 = const, то цей вектоp має вигляд

і вказує напрямок зростання функції.

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

На рис. 1.1 зображений деякий окремий випадок, для якого рішення ЗЛП досягається в кутовій точці х * = (0, 6) області D. Неважко уявити, що можливі й інші варіанти. Вони зображені на рис. 1.2.

Малюнок (а) ілюструє ситуацію необмеженість цільової функції f (x) = cx на множині D, тобто скільки б ми не переміщалися по лініях рівня в напрямку вектора с, її значення буде зростати.

У разі, зображеному на малюнку (b), лінія рівня, що відповідає максимальному значенню f (x), стосується межі безлічі D, і, відповідно, всі точки, що лежать на цій межі, є оптимальними планами.

У всіх розглянутих ілюстраціях допустимі плани ЗЛП представлялися у вигляді деякого багатогранного опуклого безлічі на площині. Таке їх подання до літературі отримало назву першої геометричній інтерпретації завдання лінійного програмування.

Зауважимо також, що аналогічним чином можуть бути побудовані інтерпретації ЗЛП для випадку тривимірного простору R 3, де безлічі D буде відповідати певний обмежений або необмежений багатогранник, а поведінка цільової функції буде характеризуватися поверхнями (площинами) рівня.

Незважаючи на свою очевидну обмеженість, графічний метод рішення ЗЛП часто виявляється корисним. Зокрема, він може бути застосований не лише до завдань з двома змінними та обмеженнями у вигляді нерівностей, але і до канонічним завданням виду (1.7), у яких n - m = 2, де n - кількість змінних, а m - ранг матриці А.

Дійсно, можна вибрати дві довільні змінні х j1, x j2 і, використовуючи систему рівнянь, висловити через них інші змінні

де φ j (x j 1, x j 2) -лінійні функції.

Підставивши вирази (1.9) в цільову функцію, ми отримаємо еквівалентну задачу

при обмеженнях

Остання ЗЛП може бути вирішена графічно.

1.2.3. Основні теореми лінійного програмування. Розглянемо деякі теореми. Що відображають фундаментальні властивості задач лінійного програмування і лежать в основі методів їх вирішення. Вони по суті узагальнюють на випадок задач з будь-якою кількістю змінних ті властивості, які ми спостерігали в двовимірному випадку.

Теорема 1.1. Якщо цільова функція f приймає максимальне значення в деякій точці безлічі допустимих планів D, то вона приймає це значення і в деякій кутовій точці даного безлічі.

Доведення.

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

Для доказу скористаємося наступним відомим властивістю обмежених опуклих множин:

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

* Суворе доказ цього твердження см., Наприклад, в [14].

Нехай х 1, х 2,..., х m - кутові точки безлічі D, а х * - точка, в якій цільова функція f досягає максимуму.

На основі сформульованого вище твердження точку х * можна представити у вигляді випуклої комбінації кутових точок х 1, х 2,..., x m

Так як х * - точка максимуму, то для будь-якого х Î D сх * ≥ сх. Функція f (x) - лінійна, тому

Cледовательно,

де x r - кутова точка, яка задовольнить умові

З (1.10) видно, що сх * ≤ сх r У той же час справедливо зворотне нерівність: сх * сх r. Звідки випливає, що сх * = сх r, т. Е. Існує принаймні одна кутова точка х r, в якій цільова функція приймає максимальне значення. -

Теорема 1.2. Якщо цільова функція f приймає максимальне значення в декількох точках безлічі D, то вона приймає це ж значення в будь-якій точці, що є їх опуклою комбінацією.

Доведення.

Нехай максимальне значення функції f досягається в точках х 1, х 2,..., x s, т. Е. Сх ~ i = f *, i Î l: s. Розглянемо довільну опуклу комбінацію цих точок

Знайдемо значення цільової функції в точці х *

Отже, для довільної опуклою комбінації х * точок х 1, х 2,..., x ~ s справедливо рівність

1.3. БАЗИСНІ РІШЕННЯ І ДРУГА ГЕОМЕТРИЧНА ІНТЕРПРЕТАЦІЯ ЗЛП

1.3.1. Векторна форма запису КЗЛП і її застосування. Розглянемо канонічну задачу лінійного програмування

Позначимо через а j стовпці матриці А і будемо розглядати їх як вектори простору R m. Тоді кожному допустимому плану КЗЛП - n -мірним вектору х - відповідає неотрицательная лінійна комбінація стовпців а j, рівна колонки b Î R m:

Таке уявлення обмежень КЗЛП зазвичай називають векторної формою записи.

Вектори а j, j Î l: n будемо називати векторами вимог завдання (D, f), а вектор b - вектором обмежень. Безліч всіх невід'ємних лінійних комбінацій стовпців а j з геометричної точки зору може бути представлено як багатогранний випуклість, натягнутий на систему векторів а j в просторі R m (рис. 1.3).

Відповідно, питання про існування допустимого плану завдання (D, f) рівнозначне питанню про приналежність вектора b даному конусу, а компоненти х j деякого допустімогоплана х Î D є не чим іншим, як коефіцієнтами розкладання вектора обмежень задачі b по векторах, вимог а j.

Таке уявлення КЗЛП отримало назву другої геометричній інтерпретації.

Надалі без обмеження спільності можемо припускати, що число рівнянь, які задають безліч D, менше або дорівнює числу змінних задачі (m ≤ n). Дійсно, якщо це не так, то або система рівнянь Ах = b несовместна (і, отже, безліч D пусте), або містить надлишкові (лінійно залежні) рівняння.

Якщо деякі т стовпців а j 1, а j 2,..., а jm матриці A є лінійно незалежними, то вони утворюють базис в просторі R m, і їх, взагалі кажучи, буде досить для подання вектора b у вигляді лінійної комбінації зазначених стовпців. Це означає, що інші стовпці увійдуть в даний розкладання з нульовими коефіцієнтами. Якщо до того ж коефіцієнти лінійної комбінації виявляться невід'ємними, то ми отримуємо так званий базисний допустимий план х, у якого не більше m компонентів відмінні від нуля. Сформулюємо визначення базисного плану більш строго, так як це одне з фундаментальних понять теорії лінійного пpогpаммиpования.

- Нехай задана деяка канонічна ЗЛП (D, f), А матриця системи обмежень задачі, і β = {а j 1, аj2, ..., а j m} лінійно незалежна система стовпців матриці А, утворює базис R m. Позначимо безліч номерів стовпців, що входять в систему b, через N (β) = {j 1, j 2, ..., j m}. План х називається базисним планом задачі (D, f), якщо його компоненти, що відповідають базисним стовпцями і звані базисними компонентами, більше або дорівнюють нулю (х j 0, j Î N (β)}, а всі інші компоненти (небазисних) - дорівнюють нулю (x j = 0, j Ï N (β)).

- Базовий план х називається невироджених, якщо всі його базисні компоненти строго

позитивні, і виродженим в іншому випадку.

1.3.2. Властивості базисних планів. Наступна теорема трактує поняття базисного плану в термінах першої геометричній інтерпретації ЗЛП.

Теорема 1.3. Кожен допустимий базисний план є кутовий точкою множини допустимих планів D.

Доведення.

Заради простоти покладемо, що базисними векторами є перші m стовпців матриці A, т. Е. Β = {a l, a 2,..., a m}. Тоді твердження теореми 1.3 може бути переформулювати наступним чином:

Якщо існує такий n -мірний вектор

що x 1 a 1 + х 2 а 2 + ... + x k a k = b, то х є кутова точка безлічі D.

Проведемо доказ від протилежного, т. Е. Припустимо, що даний базисний план х не є кутовий точкою множини D. Тоді її можна представити у вигляді випуклойкомбінаціі деяких двох різних допустимих планів х 1 і х 2:

x = λ x 1 + (1-λ) x 2, 0 <λ <1.

У координатної формі останнє твердження означає

Оскільки останні (n - k) компоненти вектора х за припущенням рівні 0, а числа х j 1, x j 2 ≥ 0 і λ, (1 -λ)> 0, то ці ж компоненти в векторах x 1 і х 2 є рівними 0. Тому, з урахуванням допустимості планів х 1 і х 2, можна стверджувати, що

Віднімаючи з (1.15) (1.16), отримаємо

Так як вектори а 1, а 2,..., а k - лінійно незалежні, то коефіцієнти х 1 1 - х 2 1 = 0, ..., х 1 k х 2 k = 0, з чого випливає, що x 1 = х 2. Це суперечить припущенню, що х 1 і х 2 є різними кутовими точками безлічі D. Отже, х не може бути представлений у вигляді випуклої комбінації двох точок D і за визначенням є кутовий точкою даної множини. -

Цікаво відзначити, що справедливо і зворотне твердження, яке наведемо без доведення:

Якщо х - кутова точка безлічі D, то вона є допустимим базисним планом задачі (D, f).

На завершення параграфа необхідно відзначити практичне значення встановленої зв'язку між кутовими точками і допустимими базисними рішеннями: вона дозволяє формалізувати (і тим самим істотно спростити) процес переходу від однієї кутової точки до іншої.

1.4. СІМПЛЕКС-МЕТОД

1.4.1. Основні етапи симплекс-методу. Виходячи з властивостей лінійних екстремальних задач, розглянутих у попередніх параграфах, можна зробити висновок, що на принциповому рівні пошук їх рішень зводиться до послідовного перебору кутових точок безлічі допустимих планів або, що те ж саме, перебору відповідних допустимих базисних планів. Слід підкреслити, що такий перебір для реальних багатовимірних задач можливий тільки в теоретичному плані і на практиці неможливий (або вкрай неефективний) навіть за умови іспользованіямощной обчислювальної техніки. Засобом вирішення цієї проблеми з'явилися прикладні оптимізаційні методи, засновані на послідовному, цілеспрямованому переборі базисних планів ЗЛП.

Класичним методом вирішення ЗЛП став симплекс-метод, що отримав також в літературі назву методу послідовного поліпшення плану, розроблений в 1947р. американським математиком Джорджем Данцигом.

Ідея такого переходу від одного базисного плану до іншого, при якому відбувається «покращення» значення цільової функції, може бути продемонстрована для випадку m = 2 за допомогою рис. 1.4. Якщо вектор обмежень b належить конусу, натягнутому на деякі два базисних вектора умов {а j 1, а j 2}, то існує такий базисний план х з базисними компонентами х j1, х j2, що b = х j1 a j1 + х j2 a j2. Зрозуміло, таких планів може бути декілька залежно від вибору системи базисних векторів. Щоб розрізняти їх за відповідною величиною цільової функції f (x) = c j 1 x j 1 + з j 2 х j 2, вводяться так звані розширені вектори умов і обмежень. У загальному випадку розширений стовпець умов ā j виходить з'єднанням коефіцієнта цільової функції з j і шпальти а j:

розширений вектор обмежень визначимо як

Надалі для зручності нумерації елементів будемо вважати, що додається коефіцієнт цільової функції з j є нульовим елементом j -го розширеного стовпця умов, т. Е. Ā 0, j = з j. При зображенні розширених векторів нульова координата відкладається вздовж вертикальної осі - осі аплікат.

Розглянемо також вектор

=

Геометрично визначення вектора b означає, що він належить конусу, натягнутому на розширені вектори, а вектор служить його проекцією. Нульова координата вектора b має вигляд:

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

З геометричної ілюстрації слід, що для вирішення завдання ми повинні серед векторів а j вибрати такий набір {а j 1, а j 2}, щоб, пряма, проведена через кінець вектора паралельно осі аплікат, перетинала конус, натягнутий на систему відповідних розширених стовпців { ā j 1, ā j 2}, в «найвищої» точці.

На рис. 1.4 виділено конус, натягнутий на систему розширених стовпців ā 2 і ā 3, що відповідають поточним допустимому базису. Неважко помітити, що даний базис не є оптимальним, наприклад, для базису 3, а 4} точка перетину відповідного конуса і прямий буде знаходитися вище. Можна, навпаки, вказати базис з «найгіршим» значенням цільової функції: 1 а 2}. Нарешті, розглянута геометрична інтерпретація КЗЛП ілюструє і загальну ідею критерію, який використовується в симплекс-методі для визначення оптимальності (або неоптимальности) поточного плану: якщо існують вектори-стовпці, що лежать вище площині, що проходить через вектори поточного базису, то він не є оптимальним і може бути «поліпшений».

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

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

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

При цьому N r(q)) = j r - номер стовпця, що займає r -ю позицію в базисі. Тоді поточний базисний план х має вигляд:

Позначимо через Δ (ß (q)) матрицю, складену з стовпців {а j 1, а j 2,..., а jm}, що утворюють базис, через Δ (ß (q)) матрицю, утворену з відповідних розширених стовпців і доповнену зліва стовпцем спеціального виду:


а через Δ -1(q)) і Δ -1(q)) - матриці, зворотні по відношенню до них. Також представляється зручним ввести окремі позначення для елементів матриці Δ -1(q)):

δ i(q)) - i-я рядок матриці Δˉ -1(q)), (i Î 0: m);

δ ij(q)) - елемент матриці Δ -1(q)), що знаходиться в i -му рядку j-го стовпця (i Î 0: m, j Î 0: m).

Розширений вектор обмежень b представляється у вигляді лінійної комбінації розширених векторів умов з коефіцієнтами, рівними базисним компонентів поточного базисного плану:

Якщо інтерпретувати компоненти векторів а j і b як координати в ортогональному базисі, то їх стовпці координат щодо довільного базису (β (q)), доповненого одиничним вектором (-1,0, ..., 0), спрямованим протилежно осі аплікат візьмуть вид :

а для розширеної матриці завдання в цілому можна записати

Нульова рядок даної матриці a 0(q)) містить координати розширених векторів умов по осі аплікат. Згідно побудови, елементи цього рядка мають такі знаки:

- a 0, j(q)) <0 - для розширених векторів умов, розташованих вище площині, натягнутої на систему розширених базисних векторів;

- a 0, j(q))> 0 - для розширених векторів умов, розташованих нижче площини, натягнутої на систему розширених базисних векторів;

- a 0, j(q)) = 0 - для розширених базисних векторів.

Підсумовуючи сказане, сформулюємо критерій оптимальності допустимого базисного плану в симплекс-методі:

- план є оптимальним, якщо для всіх j Î1: n a 0, j(q)) ≥ 0, і неоптимальним в іншому

випадку, т. е. якщо існує таке l Îl: n, що a 0 l(q)) <0.

Значення a 0, j(q)) також називають оцінками стовпців матриці А щодо поточного базису, або симплекс-різницями.

У разі неоптимальности поточного базису в алгоритмі симплекс-методу здійснюється перехід до наступного базису. Це робиться за рахунок виведення одного стовпчика з базису і введення іншого. Для забезпечення поліпшення значення цільової функції в базис повинен бути введений вектор-стовпець, що має негативну оцінку. Якщо таких стовпців кілька, то для введення рекомендується вибирати стовпець, що має максимальну по модулю оцінку. Відзначимо, що дане правило носить відносний характер і не гарантує найкращого вибору вводиться стовпчика. Одночасно на цій стадії потрібно прийняти рішення про те, який стовпець слід вивести з базису. Зробити це потрібно таким чином, щоб новоформований базис опинився допустимим. Дана вимога може бути легко проілюстровано для випадку m = 2.Наприклад, на рис. 1.3 вектори 2, а 3} утворюють допустимий базис, а вектори 3, a 4} -недопустімий, т. К. Розкладання b по а 3 і а 4 містить один негативний компонент плану, що суперечить умовам КЗЛП.

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

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

відносини

і визначається такий рядок r, що

Отриманий індекс r визначає номер стовпця в N(q)), що виводиться з базису, а саме, N(q)).

Таким чином, якщо базис на q -й ітерації включав стовпці з номерами

то базис на ітерації q + 1 складатиметься з стовпців з номерами:

Окремо слід обговорити той випадок, коли стовпчик a l(q)), що претендує на введення в базис, не містить позитивних компонентів a l(q)) ≤ 0). Це означає, що цільова функція в задачі не обмежена на безлічі допустимих значень, т. Е. Може досягати скільки завгодно великого значення. Останнє, очевидно, означає завершення процесу обчислень через відсутність оптимального плану. Геометрично ситуація, коли a l(q)) ≤ 0, відповідає тому, що вісь ординат виявляється всередині конуса, натягнутого на систему розширених стовпців а j, а значить, пряма, проведена через кінець вектора b паралельно осі аплікат, одного разу «увійшовши »в цей конус, більш ніколи з нього« не виходить ».

Взагалі кажучи, після переходу від базису β (q) до базису β (q +1) ми можемо заново сформувати матриці Δ (β (q + 1)), Δ -1(q +1)) і, обчисливши А(q +1)) = Δ -1(q +1)) A, робити висновки про його оптимальності. Однак, з огляду на, що β (q +1) відрізняється від β (q) всього лише одним стовпцем, з точки зору техніки обчислень представляється раціональним безпосередньо переходити від A(q)) і b(q)) до A ( β (q +1)) і b(q +1)). Справа в тому, що у матриць типу A(q)) стовпці, що відповідають базисним векторам, складаються з нулів, за винятком одного елемента, рівного одиниці. Позиція цього ненульового елемента визначається порядковим номером базисного стовпчика в N(q)). Тому для отримання матриці A(q +1)) досить за допомогою лінійних операцій над рядками матриці A(q)) привести її стовпець, відповідний вводиться в базис вектора, до «базисному» виду.

Для це застосовується перетворення Жордана-Гаусса (так званий метод повного виключення). В даному випадку воно полягає в тому, що ми повинні «заробити» одиницю на місці елемента a r, l(q)) (він зазвичай називається провідним) * і нулі на місці інших елементів стовпця a l(q)). Перше досягається за допомогою розподілу r -го рядка на провідний елемент, друге - шляхом додавання знову отриманої r -го рядка, помноженої на відповідний коефіцієнт, до інших рядках матриці A(q)).

* Нагадаємо, що l - номер стовпця, що вводиться в базис, а r - номер рядка в симплекс-таблиці, яка визначає номер стовпчика, що виводиться з базису.


Формально результат виконання даного перетворення над елементами A(q)) і b(q)) може бути виражений в наступному вигляді


Слід особливо відзначити сенс елементів вектора b(q)). Його нульовий компонент b 0(q)) відповідно до побудовою містить значення цільової функції, що досягається нею на поточному плані

а інші елементи - ненульові компоненти цього плану:

Назва методу походить від поняття симплекса. Нагадаємо, що m -сімплексом називають опуклий багатогранник, аффинная оболонка * якого є Афінний безліч розмірності m. В даному випадку можна вважати, що система розширених базисних стовпців j 1, а j 2,..., а jm}, що розглядаються як точки в R m +1, породжує (m -1) -мірний симплекс в просторі R m +1.

* Аффинной оболонкою безлічі називають найменше Афінний безліч, в якому міститься дане безліч.

На закінчення цього пункту узагальнимо викладені питання і наведемо схему алгоритму симплекс-методу для розв'язання задачі максимізації. Вона включає одноразово виконується 0-етап і повторюваний кінцеве число раз I-етап (стандартну ітерацію).

0-етап. Знаходження допустимого базисного плану (див. П. 1.4.5). Результатом 0-етапу є допустимий базисний план х(1)), а також відповідні йому матриця A(1)) і вектор b(1)), які будуть використані на першій ітерації. Вважаємо номер поточної ітерації q рівним 1 і переходимо до I-етапу.

I -етап. Стандартна ітерація алгоритму - виконується для чергового базисного плану x(q)).

1 °. Перевірка оптимальності поточного базисного плану: здійснюється перегляд рядка оцінок а 0(q)). Можливі два варіанти:

1 '. a 0(q)) ≥0 - план, що відповідає поточному базису завдання, оптимальний. Обчислювальний процес закінчений. Відповідно до формул (1.33) і (1.32) виписуються оптимальний план завдання х * = x(q)) і значення цільової функції f (x *) = f (x(q))).

1 ". У рядку оцінок а 0(q)) існує щонайменше один елемент а 0, j(q)) <0, т. Е. Має негативну оцінку. Отже, план x(q)) - неоптимальний. Вибирається стовпець з номером l, що має мінімальну (максимальну по абсолютній величині) негативну оцінку

Він називається провідним і повинен бути введений в черговий базис. Переходимо до пункту 2 ° алгоритму.

2 °. Визначення стовпця, що виводиться з базису. Розглядається провідний стовпець а l(q)) Можливі два варіанти:

2 '. Для всіх i Î1: m а i, l(q)) ≤0. Робиться висновок про необмеженість цільової функції і завершується обчислювальний процес.

2 ". Існує принаймні один рядок з номером i Î1: m, для якої а i, l(q))> 0. Згідно з правилом (1.27) визначаються місце r і номер N r(q)) = j r для стовпця, що виводиться з базису. Переходимо до пункту 3 ° алгоритму.

3 °.Перерахунок елементів матриці А і стовпця b щодо нового базису. Відповідно до формулами (1.28) - (1.31) здійснюємо розрахунок елементів матриці завдання А і вектора обмежень b щодо базису β (q + 1), який виходить після введення в базис β (q) стовпчика а l і виведенням з нього стовпчика а r. Вважаємо номер поточної ітерації q: = q + l і переходимо до першого пункту алгоритму.

рис.1.5

1.4.2. Таблична реалізація симплекс-методу. З точки зору забезпечення раціональності і наочності обчислювального процесу виконання алгоритму симплекс-методу зручно оформляти у вигляді послідовності таблиць. У різних джерелах наводяться різні модифікації симплекс-таблиць, що відрізняються один від одного розташуванням окремих елементів. Однак це не повинно викликати збентеження у читача, так як всі вони базуються на одних і тих же принципах. Зупинимося на структурі таблиці, показаної на рис. 1.5. *

* Справжня структура симплекс-таблиць будується на ідеях і принципах їх організації, запропонованих в [1].

Симплекс-таблиця Т (q), зображена на рис. 1.5, відповідає допустимому базису КЗЛП β (q)), що отримується на q -й ітерації. Стовпець N(q)), в кімнаті конференцій базисних стовпців (в тій послідовності, в якій вони входять в базис), стовпець b(q)) -компоненти вектора обмежень щодо поточного базису β (q), A(q)) - компоненти матриці завдання щодо поточного базису β (q). Нарешті, в рядку а 0(q)) знаходяться поточні оцінки стовпців, а осередок b 0(q)) містить значення цільової функції, що досягається для поточного плану.

Безумовно, слід додати, що таблична модифікація симплекс-методу має важливе практичне значення не стільки як зручна форма організації ручного рахунку, скільки як основа для реалізації даного алгоритму в рамках програмного забезпечення ЕОМ.

1.4.3. Приклад рішення ЗЛП симплекс-методом. Розглянемо на конкретному прикладі процес вирішення КЗЛП табличним симплекс-методом. Нехай дана канонічна задача ЛП:

Як видно, стовпці матриці з номерами {5, 2, 3} є лінійно незалежними. І можна отримати розкладання за даними стовпцями вектора обмежень з позитивними коефіцієнтами. Останнє означає, що стовпці {5, 2, 3} утворюють допустимий базис, з якого можна почати вирішення задачі. З стовпців, що входять в базис, з урахуванням нульових елементів формується матриця Δ (β (1)) і зворотна по відношенню кнейΔ -1(1)):

Використовуючи їх, по формулі (1.26) отримуємо

-84 0 0 -88 0
1/3 0 0 1/3 1
= 2 1 0 3 0 ;
-2/3 0 1 -4/3 0


Використовуючи отримані значення A(1)) і b(1)), заповнюємо симплекс-таблицю T (1), що відповідає першій ітерації (q = 1).

Оскільки рядок оцінок a 0(1)) в першому і четвертому стовпцях містить негативні елементи (a 0,1(1)) = -84, a 0,4(1)) = -88), план х(1)) = (0,14,17 / 3,0,4) не є оптимальним, і значення цільової функції f (x(1))) = -226 може бути покращено. Дотримуючись рекомендації п.1˝ алгоритму симплекс-методу, вважаємо номер вводиться в черговий базис стовпця l = 4 (тому що | -88 |> | -84 |). Розглядаємо провідний стовпець (виділено пунктирною рамкою)

Він містить два позитивних елемента. Застосовуючи рекомендацію п. 2 "алгоритму, отримуємо λ 1 = 4 / (1/3) = 12, λ 2 = 14/3, і, отже r = 2. Отже, стовпець з номером N 2(1)) = 2 повинен бути виведений з базису. Таким чином, отримуємо черговий допустимий базис завдання N(2)) = {5, 4, 3}. Елемент a 2,3(1)) є провідним (обведений кружком). застосувавши формули (1.28) - (1.31), переходимо до симплекс-таблиці, що відповідає другій ітерації T (2), і вважаємо індекс поточної ітерації q = 2.

В ході виконання другої ітерації знову-таки визначаються вводиться стовпець а 1, виведений а 4 і ведучий елемент a 2,1(2)). Перейшовши до ітерації q = 3, маємо таблицю T (3).

Як видно з T (3), рядок оцінок містить тільки невід'ємні значення, тому досягнутий базис N(3)) = {5, 1, 3} є оптимальним. У підсумку ми отримуємо, що вектор х * = (7, 0, 31/3, 0, 5/3) є оптимальним планом (точкою максимуму) завдання (1.34) - (1.35), максимальне значення цільової функції дорівнює f * = f *) = 362, а рішення КЗЛП має вигляд ((7, 0, 31/3, 0, 5/3); 362).

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

Легко помітити, що проблеми зі збіжністю симплекс-методу потенційно можуть виникнути на етапі вибору значення r (п. 2 ") в разі, коли однакові мінімальні значення відносини

будуть досягнуті для кількох рядків таблиці Т (q) одночасно. Тоді на наступній ітерації стовпець b(q +1)) буде містити нульові елементи. Нагадаємо, що

- допустимий базисний план канонічної задачі ЛП, відповідний базису β (q), називається виродженим, якщо деякі його базисні компоненти дорівнюють нулю, т. Е. Вектор b(q)) містить нульові елементи.

Завдання ЛП, що має вироджені плани, називається вироджених. При «виході» на вироджений план ми фактично отримуємо розкладання стовпця b по системі з меншого, ніж m, кількості стовпців а j і, отже, позбавляємося можливості коректно визначити, введення якого стовпця в базис призведе до зростання значення цільової функції. Подібні ситуації, в кінцевому рахунку, можуть привести до зациклення обчислювального процесу, т. Е. Нескінченного перебору одних і тих же базисів.

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

З точки зору другий геометричній інтерпретації ЗЛП вирожденність означає «потрапляння» лінії, що проходить через вершину вектора b паралельно осі аплікат, в ребро конуса, натягнутого на систему розширених векторів поточного базису. Так, у разі, зображеному на рис. 1.6, ця лінія потрапляє в ребро, яке визначається вектором а j 2, т. Е., Не дивлячись на те що поточний базис містить стовпці а j 1 і а j 2, для подання вектора b досить тільки одного а j 2.

З даної інтерпретації випливає і ідея методу вирішення вироджених задач ЛП, який отримав назви методу збурень: при виході на вироджений план здійснюється незначний зсув вектора b і вирожденність (як це видно з ілюстрації) усувається.

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

1.4.5. Знаходження допустимого базисного плану. У розглянутому вище прикладі вихідний базисний план, необхідний для початку обчислень по симплекс-методу, був підібраний за рахунок особливостей матриці умов. Дійсно, дана матриця вже містила необхідну кількість «майже базисних» стовпців. Очевидно, що для переважної більшості завдань ЛП неможливо так само відразу і в явному вигляді вказати вихідний допустимий базисний план. Взагалі кажучи, існують різні прийоми вирішення даного завдання. Ми зупинимося на одному з них, що отримав назву методу мінімізації нев'язок. Його сильною стороною, безумовно, є універсальність. Хоч, в деяких окремих випадках, він може виявитися занадто громіздким.

Ідея методу мінімізації нев'язок полягає в побудові відповідної допоміжної завдання, для якої можна в явному вигляді вказати вихідний базисний план, і вирішенні її за допомогою процедури симплекс-методу.

Не применшуючи спільності, можна вважати, що вектор обмежень у вихідній задачі неотрицателен, т. Е. B i ≥ 0, i Î 1: m. Тоді для КЗЛП максимізації функції

на безлічі, що визначається обмеженнями

будується допоміжна задача

Як видно з (1.36) - (1.39), завдання ( , ) Відрізняється від завдання (D, f) матрицею, одержуваної в результаті додавання кісходной матриці А одиничної матриці, якій відповідають додаткові (фіктивні) змінні х n +1,..., х n + m. Даним змінним (власне кажучи, їх і називають невязке) в цільової функції відповідають коефіцієнти (-1), а змінним х 1,..., х n, які є загальними для обох завдань, - нульові коефіцієнти. Суттєвою особливістю ( , ) Є наявність в ній очевидного вихідного базису, утвореного доданими стовпчиками, і відповідного плану з базисними компонентами х n + i = b i ≥ 0, i Î 1: m. В силу структури цільової функції f в процес пошуку її максимуму процедурою симплекс-методу фіктивні змінні (нев'язки) х n + i повинні мінімізуватися бажано до нуля, що може бути досягнуто за рахунок послідовного перекладу їх в небазисних компоненти плану. Якщо в оптимальному плані х, отриманому в результаті рішення допоміжної задачі, останні m компонент (т. Е. Невязки) дорівнюють нулю, то його початкові n компонент задовольняють системі обмежень, що визначають область D, і легко (простим відкиданням невязок) може бути перетворений в стартовий допустимий план основного завдання (D, f). При цьому всі рядки симплекс-таблиці, отриманої на останній ітерації допоміжної завдання (за винятком нульової), можуть бути перенесені в першу таблицю основного завдання. Елементи ж нульовий рядки для знову формованої симплекс-таблиці обчислюються за формулами:

де β (*) - базис, отриманий на останній ітерації допоміжної завдання.

У разі, коли оптимальний план допоміжної завдання х все ж містить нерівні нулю фіктивні компоненти (т. Е. ( ) <0), ми приходимо до висновку про відсутність допустимих планів у вихідній задачі (D, f), т. Е. D = Ø.

1.5. МОДИФІКОВАНИЙ СІМПЛЕКС-МЕТОД

1.5.1. Обчислювальна схема, заснована на перетворенні зворотних матриць. Аналізуючи обчислювальну процедуру симплекс-методу з позицій оцінки трудомісткості, неважко помітити, що найбільш критичним в цьому плані є етап перерахунку значень А і b при переході від одного базисного плану до іншого (п. 3 алгоритму). Однак в тому випадку, коли число обмежень завдання m явно менше кількості змінних n, можна домогтися суттєвої «економії», виконуючи на черговій ітерації q перетворення Жордана-Гауссане над матрицею А(q)), а над матрицею Δ -1(q)). При цьому враховується і те, що при необхідності, застосовуючи формулу (1.26), завжди можна отримати А(q)) по Δ -1(q)). Більш того, для виконання описаних вище дій симплекс-процедури нам насправді не була потрібна матриця А(q)) цілком. Реально в ній використовувалися тільки рядок оцінок a 0(q)) і провідний стовпець a l(q)). Дані міркування покладені в основу обчислювальної схеми симплекс-методу, заснованої на перетворенні зворотних матриць, яку також називають модифікованим симплекс-методом. Вперше даний алгоритм був запропонований в 1951 р в роботах Л. В. Канторовича.

Обчислювальної схемою модифікованого симплекс-методу відповідає система таблиць T 1 і Т 2 (q). Таблиця T 1 (рис. 1.7) є спільною для всіх ітерацій і служить для полученіястрокі оцінок поточного базисного плану a 0(q)). Якщо позначити через δ i(q)) (i Î 0: m) рядки матриці Δ -1(q)), то з (1.26), зокрема, випливає, що

Як видно з рис. 1.7, T 1 складається з трьох блоків:

- в центрі міститься матриця А;

- в лівому блоці таблиці на кожній ітерації дописують нульові рядки матриці Δ -1(q)) для поточного базису;

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

Симплекс-таблиця Т 2 (q), зображена на рис. 1.8, відповідає допустимому базису КЗЛП β (q), що отримується на q -й ітерації. Стовпець N(q)), в кімнаті конференцій базисних стовпців (в послідовності входження в базис); стовпець b(q)) - компоненти вектора обмежень щодо поточного базису β (q); Δ -1(q)) - матриця, зворотна по відношенню до матриці розширених стовпців поточного базису β (q); графа а l містить розширений вектор умов, що вводиться в базис на поточній ітерації, а наступна графа - координати а l(q)) цього ж стовпчика в поточному базисі β (q).

За аналогією з п. 1.4.1 опишемо формальну схему алгоритму модифікованого симплекс-методу.

0-етап. Знаходження допустимого базисного плану.

1. Для пошуку допустимого базису може бути застосований метод мінімізації нев'язок, розглянутий в п. 1.4.5. При цьому для вирішення допоміжної задачі використовується процедурамодіфіцірованного симплекс-методу. В результаті 0-етапу ми отримуємо допустимий базисний план x(1)) і відповідні йому матрицю Δ -1(1)) і вектор b(1)).

2. Заповнюємо центральну частину таблиці T 1, яка містить матрицю А.

3. Вміст матриці Δ -1(1)) і вектора b(1)), отриманих на етапі пошуку допустимого базисного плану, переноситься в таблицю T 2 (1).

4. Вважаємо номер поточної ітерації q рівним 1 і переходимо до I-етапу.

1 етап. Стандартна ітерація алгоритму - виконується для чергового базисного плану x(q)).

1 °. Перевірка оптимальності поточного базисного плану. Вміст нульовий рядки таблиці T 2 (q) - δ 0(q)) переписується у відповідну графу таблиці T 1. За формулою (1.42) розраховуємо і заповнюємо рядок a 0(q)). Здійснюємо перегляд рядка оцінок a 0(q)). Можливі два варіанти:

1. a 0(q)) ≥0-план, що відповідає поточному базису завдання, оптимальний. Обчислювальний процес закінчений. Відповідно до формул (1.33) і (1.32) виписуються оптимальний план завдання х * = x(q)) і оптимальне значення цільової функції f *) = f (x(q))).

1 ". У рядку оцінок a 0(q)) існує щонайменше один елемент a 0, j(q)) <0, т. Е. Має негативну оцінку. Отже, план x(q)) - неоптимальний. Вибирається номер l, відповідний елементу, що має мінімальну (максимальну по абсолютній величині) негативну оцінку:

l -й стовпець матриці A стає провідним і повинен бути введений в черговий базис.Переходимо до пункту 2 ° алгоритму.

2 °. Визначення стовпця, що виводиться з базису. Переписуємо провідний стовпець а l з таблиці T 1 в поточну таблицю Т 2 (q). За формулою а l(q)) = Δ -1(q)) а l заповнюємо відповідний стовпець в таблиці Т 2 (q). Можливі два варіанти:

2 '. Для всіх i Î 1: m а i, l(q)) ≤0. Робиться висновок про необмеженість цільової функції і завершується обчислювальний процес.

2 ". Існує принаймні один індекс i Î 1: m, для якого а i, l(q))> 0. Згідно з правилом (1.27) визначаються місце r і номер N r(q)) для стовпця , виведеного з базису. Переходимо до пункту 3 ° алгоритму.

3 °. Перерахунок щодо нового базису елементів стовпця b і матриці Δ -1. Перехід до нового базісуβ (q +1), який виходить введенням в базис β (q) стовпчика а l і виведенням з нього стовпчика а r, здійснюється за формулами, аналогічним формулами (1.28) - (1.31). Вони мають вигляд:

Вважаємо номер поточної ітерації q: = q + l і переходимо до першого пункту алгоритму.

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

1.5.2. Приклад рішення ЗЛП модифікованим симплекс-методом. Наведемо рішення розглянутої раніше завдання (1.34) - (1.35), засноване на використанні процедури модифікованого симплекс-методу. За аналогією з п. 1.4.3оно починається з вибору очевидного вихідного базису, утвореного стовпцями {5,2,3}. Для нього вже були обчислені Δ -1(q)) і b(q)), тому заповнення початкових таблиць T 1 і Т 2 (1) не становить труднощів.

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


з Т 2 (1) в T 1 і, помноживши її на матрицю A, отримуємо рядок оцінок

Так як a 0(1)) містить негативні елементи, то робимо висновок про неоптимальности плану, відповідного базису β (1), і, вибравши найменшу негативну оцінку (-88), отримуємо номер стовпчика, що вводиться в базис, l = 4 .

переписуємо стовпець

з таблиці T 1 в Т 2 (1) і перераховуємо його координати щодо поточного базису, т. е. множимо матрицю Δ -1(q)), розташовану в таблиці Т 2 (1) зліва, на а 4.

Після заповнення таблиці Т 2 (1) даними по вводиться в новий базис колонки можна перейти до визначення номера виведеного стовпчика. Ця процедура здійснюється в повній аналогії зі звичайним симплекс-методом. Розглянувши відносини елементів b i(1)) і a i, l(1)) для {i Î1: m | a i, l(1))> 0} і визначивши мінімальне з них, знаходимо, що r = 2. Отже, стовпець з номером N 2(q)) = 2 повинен бути виведений з базису. Таким чином, отримуємо черговий допустимий базис завдання з N(2)) = {5, 4, 3}. Елемент a 2,3(1)) є провідним (обведений кружком). Застосувавши формули (1.43) - (1.46), переходимо до симплекс-таблиці, що відповідає другій ітерації Т 2 (2), і вважаємо індекс поточної ітерації q = 2.

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

1.6. ТЕОРІЯ подвійності в лінійному програмуванні

1.6.1. Поняття двоїстої задачі ЛП. Нехай задана КЗЛП (1.7). Якщо цільова функція f (x) = cx досягає максимального значення на множині D, то обгрунтованим є питання про те, яким чином можна побудувати верхню оцінку для неї. Очевидно, що якщо через та позначити деякий m -мірний вектор, то

Припустимо, що і можна вибрати таким чином, щоб иА с. Тоді при будь-яких х ≥ 0 справедливо нерівність

Прагнучи отримати найкращу оцінку (1.47), ми приходимо до формулювання деякої нової кстремальной завдання, яка в певному сенсі логічно пов'язана із завданням (1.7) називається двоїстою. Обмовимося, що наведені міркування не носять суворого характеру і призначені тільки для того, щоб підготувати читача до приводиться нижче формального визначення двоїстої задачі лінійного прoграммірованія.

- Якщо задана канонічна задача ЛП

то задача ЛП

називається двоїстої по відношенню до неї. Відповідно, завдання (D, f) no відношенню до

(D *, f *) називається прямим (або вихідної).

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

- Якщо задана загальна задача ЛП

f (x) = c 1 x 1 + ... + з j х j + з j +1 х j + 1 + ... + з n x n max, x Î D, (1.50)

де D визначається системою рівнянь і нерівностей:

то двоїстої по відношенню до неї називається спільне завдання ЛП

де D * визначається системою рівнянь і нерівностей:

Правила побудови завдання, двоїстої по відношенню до ОЗЛП, наочно представлені схемою, показаної на рис. 1.9.

Як випливає з наведеної схеми при переході від прямої задачі ЛП до двоїстої:

1. Тип оптимуму змінюється на протилежний, тобто. Е. Максимум на мінімум, і навпаки.

2. Вектор коефіцієнтів цільової функції з і стовпець обмежень b міняються місцями.

3. Матриця обмежень завдання A транспонується.

4. Безліч індексів змінних, на які накладено умова позитивності в прямій задачі (наприклад, х j ≥ 0 або u j ≥ 0), визначають номера обмежень, що мають форму нерівностей в двоїстої завданню (a j uз j або a i xb j).

5. Безліч номерів обмежень, що мають форму нерівностей в прямій задачі (наприклад, a i xb j або a j uз j), визначають безліч індексів змінних, на які накладається умова невід'ємності, в двоїстої завданню (u i ≥ 0 або x i ≥ 0).

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

Тим самим має сенс говорити про пару взаємно двоїстих задач.

У матричної формі пара двоїстих загальних завдань лінійного програмування може бути коротко записана як:

Розглянемо процес побудови двоїстої завдання на конкретному прикладі.Нехай задана ОЗЛП (D, f):

тоді двоїстої до неї буде завдання (D *, f *):

1.6.3. Теореми подвійності і їх застосування. Фундаментальні властивості, якими володіють двоїсті задачі лінійного програмування, можуть бути сформульовані у вигляді наведених нижче тверджень. Їх зазвичай називають теоремами подвійності.

Теорема 1.4. Якщо х, и- допустимі плани для пари двоїстих задач (D, f) і (D *, f *), т o f (x)f (u).

Доведення.

Досить довести теорему для випадку, коли задача (D, f) є канонічною. Розглянемо пару двоїстих задач

З того, що вектор і є допустимим планом задачі (D *, f *), випливає, що иАс. Помноживши ліву і праву частини даного нерівності на вектор х ≥ 0, отримаємо рівносильну систему нерівностей

Одночасно для вектора х, що є допустимим планом задачі (D, f), справедливо рівність Ax = b. Тим самим доведено, що і b ≥ сх. -

Зауваження. Теорема 1.4, зрозуміло, вірна і для оптимальних планів взаємно двоїстих задач: f (x *) ≤ f * (u *), де х * й u * - будь-які оптимальні плани завдань (D, f) і (D *, f * ). Насправді, як буде видно з подальшого, справедливо рівність f (x *) = f * (u *).

Теорема 1.5. Якщо для деяких допустимих планів і взаємно двоїстих задач (D, f) і (D *, f *) виконується рівність f ( ) = f * ( ), То і є оптимальними планами для цих завдань.

Доведення.

Згідно з теоремою 1.4, для всіх допустимих планів х завдання (D, f) справедливо нерівність сх < b. За умовою теореми f ( ) = f ( ) Або, що те ж саме, з = b. Отже, вірне твердження: для будь-якого x ÎD з > сх, т. е. х є оптимальним планом для завдання (D, f).

Міркування, що доводять оптимальність плану для завдання (D *, f *), проводяться аналогічно. -

Теорема 1.6. Якщо цільова функція f в завданню (D, f) не обмежена зверху, то двоїста до

ній завдання (D *, f *) не має допустимих планів.

Доведення.

Якщо припустити, що у двоїстої задачі (D *, f *) існує хоча б один допустимий план і, то, відповідно до теореми 1.4, для будь-якого допустимого плану х завдання (D, f) справедливо нерівність f (x)f * ( ) <+ ∞. Останнє означає, що цільова функція f завдання (D, f) обмежена зверху. Оскільки це суперечить умові теореми, припущення про існування допустимих планів двоїстої завдання (D *, f *) невірно. -

Наступне твердження, відоме як теорема рівноваги, використовується при перевірці оптимальності планів ЗЛП.

Теорема 1.7. Нехай х * й u * - оптимальні плани канонічної задачі (D, f) і двоїстої по відношенню до неї завдання (D *, f *). Якщо j -я компонента плану х * строго позитивна (x j *> 0), то відповідне je обмеження двоїстої задачі виконується як рівність: а 1, j u 1 * + ... + а m, j u m * = з j ; якщо ж j -й компонент плану х * має нульове значення (х j * = 0), то je обмеження двоїстої задачі виконується як нерівність: а 1, j u 1 * + ... + а m, j u m * ≥ з j.

Доведення.

Вектори х * й і *, будучи допустимими планами відповідних завдань, задовольняють умовам: Ах * = b, х *> 0 і і * А-з 0. Знайдемо скалярний добуток

Згідно зауваженням до теоремі 1.2, оптимальні значення цільових функцій взаємно двоїстих задач збігаються, т. Е. u * b = сх *. Останнє означає, що (u * А-С) х * = 0. Однак скалярний добуток двох невід'ємних векторів може дорівнювати нулю тільки в тому випадку, коли всі попарні твори їх відповідних координат дорівнюють нулю. Отже, якщо x j *> 0, то u * а j - з j = 0, якщо ж x j = 0, то можливо u * а j - з j ≥ 0, що і затверджується в теоремі. -

Практичне значення теорем подвійності полягає в тому, що вони дозволяють замінити процес вирішення основного завдання на рішення двоїстої, яке в певних випадках може виявитися більш простим. Наприклад, завдання, область допустимих значень якій описується двома рівняннями, що зв'язують шість змінних (m = 2, n = 6), не може бути вирішена графічним методом. Однак даний метод може бути застосований для вирішення двоїстої до неї завдання, яка має тільки дві змінні.

Ще раз повернемося до таблиці Т 2 (q) (рис. 1.8), що отримується на фінальній ітерації процедури модифікованого симплекс-методу. Більш докладно розглянемо нульову рядок матриці Δ -1(q)), для якої було введено позначення δ 0(q)). Поелементно вона може бути записана в наступному вигляді:

введемо вектор = (δ 0,1(q)), δ 0,2(q)),..., δ 0, m(q))). Неважко перевірити, що рядок оцінок a 0(q)) може бути представлена наступним чином:

Згідно з критерієм оптимальності, на останній ітерації даний рядок неотрицательна, т. Е. Ũ А с. Отже, вектор і є допустимим планом двоїстої задачі.

У той же час елемент b 0(q)), що містить поточне значення цільової функції і рівний на останній ітерації f (x *), допускає подання

Згідно з теоремою 1.5 з рівності f (х *) = f * (ũ) випливає, що вектор ũ служить оптимальним планом двоїстої задачі: u = ũ.

Остаточно можна стверджувати, що для оптимального базису

- Таким чином, істотною перевагою модифікованого симплекс-методу є те, що він дозволяє одночасно знайти оптимальні плани як, прямий, так і двоїстої задачі.

Читачеві в якості самостійного вправи пропонується побудувати завдання, двоїсту до (1.34) - (1.35), рішення якої було приведено в п. 1.5.2, і переконатися, що вектор u = (-10, 32, 2), отриманий в таблиці Т 2 (3), є для неї допустимим і оптимальним планом.

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

Припустимо, що для деяких значень A, b і з знайдений оптимальний план х *, який максимізує сумарний дохід max {cx} = cx *. Досить природним є питання: як буде змінюватися оптимальний план х * при зміні компонент вектора обмежень b і, зокрема, при яких варіаціях b оптимальний план х * залишиться незмінним? Дане завдання отримала назву проблеми стійкості оптимального плану. Очевидно, що дослідження стійкості х * має і безпосереднє практичне значення, так як в реальному виробництві обсяги доступних ресурсів b i; можуть істотно коливатися після прийняття планового рішення х *.

Коли вектор обмежень b змінюється на Δ b або, як ще кажуть, від нього бере зріст Δ b, то виникають відповідні варіації для оптимального плану х * (b + Δ b) і значення цільової функції f * (b + Δ b)). Припустимо, приріст Δ b таке, що воно не призводить до зміни оптимального базису завдання, т. Е. Х * (b + Δ b) ≥0. Визначимо функцію F (b), що повертає оптимальне значення цільової функції задачі (D (b), f) для різних значень вектора обмежень b

Розглянемо відношення її збільшення F (b + Δ b) -F (b) до приросту аргументу Δ b. Якщо для деякого i спрямувати Δ b i 0, то ми отримаємо

З огляду на, що відповідно до теореми 1.5

і підставивши (1.57) в (1.56), приходимо до виразу

- З формули (1.58) випливає економічна інтерпретація оптимальних змінних двоїстої задачі. Кожен елемент u i * може розглядатися як гранична (миттєва) оцінка вкладу i -го ресурсу в сумарний дохід F при оптимальному рішенні х *. Грубо кажучи, величина u i * дорівнює приросту доходу, що виникає при збільшенні ресурсу i на одиницю за умови оптимального використання ресурсів.

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

На основі теорем подвійності для пари задач ЛП в загальній формі можуть бути сформульовані деякі важливі (з точки зору економічної інтерпретації) слідства.

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

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

- Якщо при використанні оптимального плану двоїстої задачі je обмеження виконується як суворе нерівність, то оптимальне значення відповідної змінної прямої задачі має дорівнювати нулю, т. Е. Якщо a 1, j u 1 * + ... а m, j і m - з j> 0, то х j * = 0.

З огляду на економічний зміст двоїстих оцінок u 1 *, ..., u m, вираз а 1, j u 1 * + ... a m, j u m * може бути інтерпретовано як питомі витрати на j -й технологічний процес. Отже, якщо ці витрати перевищують прибуток від реалізації одиниці j -го продукту, то виробництво j-го продукту є нерентабельним і не повинно бути присутнім в оптимальному виробничому плані (x j * = 0).

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

1.6.5. Аналіз параметричної стійкості рішень ЗЛП. У попередньому пункті ми торкнулися деяких аспектів чутливості і стійкості оптимального плану по відношенню до зміни вектора обмежень b. Очевидно, що аналогічні питання можуть бути поставлені для випадку варіації коефіцієнтів цільової функції з j, j Î1: n.

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

Також зміст проблеми стійкості оптимального плану ЗЛП по відношенню до варіацій цільової функції може бути проілюстровано за допомогою першої геометричній інтерпретації. На рис. 1.10 зображено безліч допустимих планів D деякої задачі ЛП. Як видно з малюнка, цільова функція f (її поведінка відображає лінія рівня, показана жирним пунктиром) досягає екстремального значення в точці х *, а зміни її коефіцієнтів від с до с 'або з "на малюнку відповідає поворот лінії рівня щодо х *. Активним , т. е. які звертаються в рівність, обмеженням в точці х * відповідають лінії (1) і (2). до тих пір, поки при повороті, викликаному зміною вектора с, лінія рівня цільової функції не виходить за межі утвореного лініями обмежень конуса, х * залишається оптимальним планом. Як показ ано на рис. 1.10, цей план не змінюється при переході від с до с ', і, навпаки, при переході від с до с "лінія рівня цільової функції f (x) = c" x перетне лінію (2), що викличе зміна оптимального базисного плану, яким тепер стане точка .

Використовуючи умови оптимальності плану ЗЛП

неважко отримати кількісні оцінки для меж коливань коефіцієнтів цільової функції, при яких не відбувається зміна оптимального плану. Припустимо, варіації піддався деякий елемент з r: з r '= з r + ε r. Можливі два випадки:

1. Стовпець r не входить в оптимальний базис (r Î N(q))). Тоді для незмінності оптимального плану необхідно і достатньо виконання умови

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

2. Стовпець r входить в оптимальний базис (r Î N(q))). В цьому випадку для збереження оптимальності поточного плану буде потрібно виконання для всіх небазисних стовпців (j Ï N(q))) умов

Отже, в цьому випадку допустима варіація повинна задовольняти умовам

Наведений приклад дослідження чутливості оптимального плану по відношенню до зміни параметрів задачі є досить простим. Очевидно, що існують і більш складні завдання, в яких, наприклад, досліджуються спільні варіації параметрів різних типів. Вони складають предмет спеціального розділу дослідження операцій, що отримав назву параметричного програмування. Зацікавлений читач може отримати додаткову інформацію з даного предмету в [1, 6].

1.7. Подвійний симплекс-МЕТОД

1.7.1. Основні ідеї подвійного симплекс-методу. Безпосереднє додаток теорії подвійності до обчислювальних алгоритмів лінійного програмування дозволило розробити ще один метод вирішення ЗЛП, що отримав назву двоїстого симплекс-методу, або методу послідовного уточнення оцінок. Вперше він був запропонований Лемке в 1954 р

У процесі викладу ідей, покладених в основу двоїстого симплекс-методу, ще раз скористаємося другий геометричній інтерпретацією ЗЛП. Розглянемо деяку КЗЛП (1.48). На рис. 1.11 зображений конус До позитивних лінійних комбінацій розширених векторів умов а j для випадку m = 2, n = 6, а на рис. 1.12 - (для більшої наочності) - поперечний переріз даного конуса деякої площиною L, що проходить паралельно осі аплікат.

З кожним планом і завдання, двоїстої по відношенню до (1.48), можна взаємно однозначно пов'язати гіперплоскость, що проходить через початок координат і перпендикулярну вектору (-1, і). Допустимі плани двоїстої задачі (1.49) повинні задовольняти умовам иАс, які можна переписати у вигляді (1, і) А ≥ 0. Останнє означає, що всякий розширений вектор умов а j лежить «нижче» площині, яка визначається вектором (-1, і). Таким чином, будь-якого допустимого плану двоїстої задачі в розглянутому прикладі відповідає деяка площина, розташована вище всіх розширених векторів, а отже, і конуса До. На рис. 1.12, де зображено поперечний переріз, конусу До відповідає багатогранник, а «гіперплоскостей двоїстих планів» - пунктирні лінії, які є їхніми слідами.

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

З геометричної ілюстрації видно, що площині, не стикаються з конусом К, свідомо не представляють інтересу, так як для будь-якої з них легко вказати площину, у якій шукана точка перетину лежить нижче. Таким чином, процес пошуку екстремуму зводиться до послідовного перебору площин, що стосуються «верхніх» граней конуса, або, як ще кажуть, опорних по відношенню до конусу. Для випадку, зображеного на рис. 1.12, такими є гиперплоскости π 1,2, π 2,3, π 3,4 і π 4,5. Як можна помітити, кожна з розглянутих гіперплоскостей натягнута на деякий базовий набір розширених векторів а j, що, власне, і використано для їх позначення (π 1,2 ~ 1, а 2} і т. Д.).

- Надалі систему β = {a j 1, a j 2, ..., a jm} з т лінійно-незалежних стовпців матриці умов прямої задачі А будемо називати зв'язаним базисом, або двояко допустимим базисом, якщо всякий вектор і Î R m , що задовольняє умовам, задовольняє також умовам иа j ≥c j (j Î1: n), т. е. є допустимим планом двоїстої задачі (1.49).

План двоїстої задачі і, відповідний сопряженному базису β = {a j 1, a j 2, ..., a jm}, називають опорним планом. Його «опорность» полягає в тому, що в системі обмежень u а jc j (j Î1: n), які задають область визначення двоїстої задачі D *, т нерівностей з номерами j Î N (β) звертаються в рівності.

Слід звернути увагу на те, що не всім зв'язаних базисам відповідають допустимі базисні плани прямої задачі. Зокрема, вектор b не може бути розкладений з невід'ємними коефіцієнтами по базисам 1, а 2}, 3, а 4} або 4, а 5}. У зв'язку з цим систему коефіцієнтів розкладання вектора b по парному базису називають псевдопланом. У той же час базис {а 2, а 3} є допустимим для прямої задачі, і, більш того, з ілюстрації видно, що він, з одного боку, визначає максимум прямої задачі (найвищу точку перетину прямої, що проходить через кінець b, з конусом К), а з іншого - мінімум двоїстої (нижчу точку перетину цієї прямої з лежачої над до опорної гиперплоскостью):

Останній факт є не чим іншим, як геометричній ілюстрацією твердження теореми 1.5.

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

* У даному пункті використовується та ж система позначень, що і в п. 1.4.1.

- Критерій оптимальності псевдоплан х в неоднозначному симплекс-методі полягає в тому,

що х одночасно повинен бути допустимим планом прямої задачі, т. е. все його

компоненти повинні бути невід'ємні j ≥ 0).

Назад, якщо хоча б одна з компонент псевдоплан є негативною, то процес поліпшення значення цільової функції може бути продовжений. Геометрична ілюстрація даної ситуації наведена на рис. 1.13. Тут на площині (для m = 2) зображена система стовпців обмежень КЗЛП, з яких 1, а 2} утворюють поточний базис. Як видно з малюнка, вектор обмежень має негативну координату у напрямку, що задається вектором а 1. У той же час є й ті базиси (наприклад, 2, а 3}), в яких b матиме всі позитивні координати. Однак це не завжди так. Приклад на рис. 1.14 ілюструє випадок відсутності допустимих планів у прямій задачі: вектор b має негативну компоненту в поточному базисі 1, а 2} у напрямку а 2, а для всіх інших небазисних стовпців 3, а 4) дана координата є позитивною, т. е. b і стовпці, які є кандидатами на введення в черговий базис, лежать в різних півплощинах, утворених прямий, що проходить через вектор а 1,

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

- Таким чином, в неоднозначному симплекс-методі ознакою відсутності допустимих планів у

розв'язуваної КЗЛП є неотрицательность будь-яких r х компонент у всіх шпальтах а j,

представлених в поточному базисі β (a r, j (β) ≥ 0, j Î1: n) якщо b r (β) <0 l. *

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

З іншого боку, якщо b r (β) <0 і в рядку а r (β) існують негативні координати, то псевдоплан можна поліпшити виводячи з базису стовпець, що знаходиться на r-му місці, і вводячи в нього деякий вектор a l, що має негативну r координату. При наявності в векторі b (β) кількох негативних компонент номер вектора, що виводиться з базису, зазвичай визначається рядком, що містить найменшу (найбільшу за модулем і негативну) компоненту.

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

а 0, j (β) = - c j + c (β) а j (β)

(Див. (1.26)), залишалися позитивними. Це, в свою чергу, означає, що номер вводиться стовпця l повинен бути визначений таким чином. щоб

Після вибору виведеного і вводиться векторів проводиться звичайний перерахунок симплекс-таблиці за формулами, аналогічним формулами (1.28) - (1.31), і процес итеративно повторюється. В результаті через кінцеве число кроків буде знайдений оптимальний план КЗЛП або встановлено факт порожнечі безлічі допустимих планів.

1.7.2. Алгоритм і таблична реалізація двоїстого симплекс-методу. Узагальнюючи сказане в попередньому пункті, наведемо в стислому вигляді алгоритм двоїстого симплекс-методу для вирішення КЗЛП.

0-етап. Знаходження початкового сполученого (двояко допустимого базису). Результатом 0-етапу є пов'язаний базісβ (1) і відповідні йому псевдоплан x(1)), матриця A(1)) і вектор b(1)), які будуть використані на першій ітерації. Вважаємо номер поточної ітерації q рівним 1 і переходимо до I-етапу.

I -етап. Стандартна ітерація алгоритму - виконується для чергового сполученого базису β (q).

1 °. Перевірка оптимальності поточного псевдоплан: здійснюється перегляд значень b i(q)), i Î1: m. Можливі два варіанти:

1. Для всіх i Î1: m, b i(q)) ≥ 0. Тоді поточний псевдоплан x(q)) одночасно є допустимим планом розв'язуваної задачі, т. Е. Її оптимальним планом. Обчислювальний процес закінчений. Елементи оптимального плану х * визначаються за формулою

а що досягається на ньому значення цільової функції дорівнює

1 ". Існує щонайменше один номер рядка r Î1: m, для якого b r(q)) <0. Отже, псевдоплан x(q)) - неоптимальний. Вибирається рядок з номером r, така, що

Вона стає провідною і визначає номер стовпця N r(q)), який повинен бути виведений з базису. Переходимо до пункту 2 ° алгоритму.

2 °. Визначення стовпця, вводиться в базис. Розглядається провідна рядок а r(q)). Можливі два варіанти:

2 '. Для всіх j Î1: n а r, j(q)) ≥ 0. Робиться висновок про відсутність допустимих планів у розв'язуваної задачі (D = Ø) і завершується обчислювальний процес *.

* Очевидно, що для визначення порожнечі безлічі допустимих планів досить знайти повністю неотрицательную рядок а i(q)), відповідну b i(q)) <0.

2 ". У рядку а r(q)) існує принаймні один елемент а r, j(q)) <0. Згідно з правилом (1.62) визначаються l - номер стовпця, що вводиться в черговий базис. Переходимо до пункту 3 ° алгоритму.

3 °. Перерахунок елементів матриці А і стовпця b щодо нового базису. Відповідно до формулами (1.28) - (1.31) здійснюємо розрахунок елементів матриці завдання A і вектора обмежень b щодо нового базису β (q +1), який виходить в результаті виведення з базису β (q) стовпчика а r і введення в нього стовпчика а l. Вважаємо номер поточної ітерації q: = q + 1 і переходимо до першого пункту алгоритму.

За аналогією зі стандартним симплекс-методом обчислювальну процедуру подвійного симплекс-методу зручно оформляти у вигляді таблиць, наведених на рис. 1.5. Очевидно, що з формальної сторони їх структура залишається незмінною. Іноді вважається доцільним додати до двоїстої симплекс-таблиці рядок, що містить рядок зі значеннями λ j, які обчислюються на етапі визначення стовпця, вводиться в базис.

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

Розглянемо задачу мінімізації:

при обмеженнях

де

Наведемо завдання (1.66) - (1.68) до канонічної формі, ввівши фіктивні змінні х n +1, х n +2, ..., х n + m:

Завдання, двоїста до (1.70) - (1.72), буде мати вигляд:

З (1.74) - (1.75) очевидний допустимий план двоїстої задачі

і вихідний пов'язаний базис, утворений векторами а n + 1, а n + 2,...., а n + m. При цьому початковий псевдоплан дорівнює

Таким чином, при вирішенні завдання виду (1.66) - (1.68) двоїстий симплекс-метод має безсумнівні переваги в порівнянні з прямим.

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

- зміна компонент вектора обмежень b, що, припустимо, може бути інтерпретовано як коригування обсягів доступних ресурсів в процесі управління економічним об'єктом;

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

У першому випадку, т. Е. При зміні вектора b, гідності двоїстого симплекс-методу очевидні, так як раніше знайдений оптимальний базис можна використовувати в якості вихідного сполученого базису при продовженні рішення. Другий випадок більш докладно буде розглянуто в гл. 4 при розгляді методів вирішення цілочислових задач.

На закінчення відзначимо, що в цьому параграфі було розглянуто варіант подвійного алгоритму, відповідний стандартному симплекс-методу. Неважко здогадатися, що існує і варіант, побудований на базі модифікованого симплекса (схеми, пов'язаної з перетворенням зворотних матриць), але, оскільки це питання становить інтерес в основному з точки зору техніки організації обчислень, ми на ньому зупинятися не будемо. При бажанні з глибоким і детальним описом даної версії алгоритму можна ознайомитися в [1]. Відзначимо лише, що вона володіє тими ж принциповими перевагами, що і модифікований симплекс-метод.

1.7.4. Приклад рішення ЗЛП двоїстим симплекс-методом. Розглянемо на конкретному, прикладі процес вирішення КЗЛП двоїстим симплекс-методом. Для цього, знову-таки, повернемося до задачі (1.34) - (1.35), вирішеною в п. 1.4.3 та п. 1.5.2. Припустимо, що відбулися зміни в векторі обмежень b в результаті яких


Зміст вихідної симплекс-таблиці T (1) (за винятком стовпця b(1))) буде ідентичне змісту таблиці, що виходить на останньому кроці алгоритму, розглянутого в п. 1.4.3. Для обчислення значень b(1)) в даному випадку можна скористатися зворотною матрицею, отриманою на останній ітерації в п. 1.5.2:

В результаті маємо:

Як видно з таблиці Т (1), в стовпці b(1)) містяться негативні елементи b 1(1)) = - 1/3 <0), тобто базис β (1) = { 5, 1, 3} не є оптимальним, але в той же час легко переконатися, що він має властивості сполученого базису. Негативний елемент в b(1)) є єдиним, тому номер стовпчика, що виводиться з базису, визначається однозначно - r = 1 і N 1(1)) = 5. Далі розглядаємо рядок a 1(1)) = (0, -1/6, 0, -1/6, 1). У ній є негативні елементи. Обчислюємо λ 2 = 42: (- (- 1/6)) = 252, λ 4 = 38: (- (- 1/6)) = 228. λ 2> λ 4, отже, номер стовпця, що вводиться в базис - l = 4. Здійснюємо перетворення і виходить симплекс-таблицю T (2).

Оскільки b(2))> 0, то досягнутий базис N(2)) = {4,1,3} є оптимальним. З Т (2) можна виписати оптимальний план х * = (6, 0, 32/3, 2, 0) і відповідне йому значення цільової функції f (x *) = 444.

КЛЮЧОВІ ПОНЯТТЯ

- Загальна задача лінійного програмування (ОЗЛП).

- Канонічна задача лінійного програмування (КЗЛП).

- Допустимий план.

- Оптимальний план.

- Перша геометрична інтерпретація ЗЛП.

- Базове рішення ЗЛП.

- Друга геометрична інтерпретація ЗЛП.

- Вироджений і невироджених план ЗЛП.

- Симплекс-метод - метод послідовного улучшеніяплана.

- Критерій оптимальності допустимого базисного плану.

- Метод мінімізації нев'язок.

- Модифікований симплекс-метод - вичіслітельнаясхема, пов'язана з перетворенням зворотних матриць.

- Подвійна задача лінійного програмування.

- Симетричність відносини подвійності.

- Теореми двоїстості.

- Економічна інтерпретаціядвойственних оцінок.

- Параметрична стійкість рішення ЗЛП.

- Подвійний симплекс-метод - метод послідовного уточнення оцінок.

- Сполучений (двояко допустимий) базис.

- Опорний план і псевдоплан.

КОНТРОЛЬНІ ПИТАННЯ

1.1. Сформулюйте задачу лінійного програмування.

1.2. Дайте визначення для наступних понять: план, допустимий план, оптимальний план,

рішення завдання.

1.3. Чим відрізняється спільне завдання лінійного програмування від канонічної?

1.4. Чи завжди загальну задачу лінійного програмування можна привести до канонічного виду?

1.5. Дайте визначення для наступних понять: Афінний безліч, гіперплоскость, базис.

1.6. Чим відрізняється опуклий багатогранник від багатогранного опуклого безлічі?

1.7. У чому відмінність понять «лінійна оболонка» і «опукла оболонка»?

1.8. Чи кожен конус є опуклим безліччю?

1.9. Яка точка опуклого безлічі називається кутовий?

1.10. У чому полягає перша геометрична інтерпретація задачі лінійного програмування?

1.11. У чому полягає друга геометрична інтерпретація задачі лінійного програмування?

У чому її відмінність від першої?

1.12. Який план називається базисним?

1.13. Як пов'язані базисні плани і кутові точки області визначення задачі лінійного

програмування?

1.14. Який план задачі лінійного програмування називається виродженим?

1.15. Як з точки зору другий геометричній інтерпретації можна уявити процес пошуку

оптимального плану в завданню лінійного програмування?

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

симплекс-методі.

1.17. Сформулюйте основні етапи стандартної ітерації симплекс-методу.

1.18. Для чого застосовується перетворення Жордана-Гаусса?

1.19. Який елемент симплекс-таблиці називається провідним?

1.20. За яких умов робиться висновок про необмеженість цільової функції в розв'язуваної задачі?

Яка геометрична інтерпретація відповідає даним випадком?

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

завдання симплекс-методом? Чи можна знайти верхню межу для даної величини?

1.22. Яке завдання називається виродження? За якими ознаками можна дізнатися, що поточний план

є виродженим?

1.23. Які проблеми виникають при вирішенні вироджених задач?

1.24. Яку економічну інтерпретацію має ситуація вирожденність?

1.25. У чому основна ідея методу збурень?

1.26. Для чого призначений метод мінімізації нев'язок?

1.27. Сформулюйте основні відмінності модифікованого симплекс-методу по відношенню до

стандартному.

1.28. Перерахуйте переваги модифікованого симплекс-методу.

1.29. Чи буде відрізнятися кількість ітерацій при вирішенні однієї і тієї ж задачі при вирішенні її

стандартним і модифікованим симплекс-методом?

1.30. Дайте визначення двоїстої задачі.

1.31. Якими основними властивостями володіє пара двоїстих задач?

1.32. В чому полягає економічна інтерпретація змінних двоїстої задачі?

1.33. Який сенс вкладається в поняття «параметричну стійкість»?

1.34. Сформулюйте умови для припустимих змін цільової функції завдання, при яких її

оптимальний план залишається незмінним.

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

1.36. Дайте визначення сполученого базису.

1.37. Що таке псевдоплан?

1.38. Сформулюйте критерій оптимальності, який використовується в алгоритмі двоїстого симплекс

методу.

1.39. За якими ознаками можна визначити, що безліч допустимих планів задачі, розв'язуваної

двоїстим симплекс-методом, порожньо?

1.40.В яких ситуаціях можуть бути реалізовані переваги подвійного симплекс-методу?

ГЛАВА 2. нелінійного програмування

2.1. МЕТОДИ РОЗВ'ЯЗАННЯ ЗАДАЧ

НЕЛІНІЙНОГО ПРОГРАМУВАННЯ

2.1.1. Постановка задачі. Як уже згадувалося у вступі, припущення про можливість описати залежності між керованими змінними за допомогою лінійних функцій далеко не завжди адекватно природі об'єкта, що моделюється. Наприклад, в розглянутих в розділі 1 моделях ціна товару вважається незалежною від кількості виробленого продукту, проте в повсякденному житті ми постійно стикаємося з тим, що вона може залежати від обсягу партії товару. Аналогічні зауваження можуть бути зроблені і з приводу технологічних обмежень: витрата певних видів сировини і ресурсів відбувається не лінійно, а стрибкоподібно (в залежності від обсягу виробництва). Спроби врахувати ці чинники призводять до формулювання більш загальних і складних оптимізаційних задач. Вивчення методів їх вирішення становить предмет наукової області, що отримала назви нелінійного програмування.

Загальна задача нелінійного програмування (ОЗНПО) визначається як завдання знаходження максимуму (або мінімуму) цільової функції f (x 1, х 2,..., x n) на множині D, який визначається системою обмежень

де хоча б одна з функцій f або g i є нелінійної.

За аналогією з лінійним програмуванням ЗНП однозначно визначається парою (D, f) і коротко може бути записана в наступному вигляді

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

Як і в ЗЛП, вектор х * = (x 1 *, x 2 *,..., x n *) Î D називається допустимим планом, а якщо для будь-якого x Î D виконується нерівність f (x *) ≥ f (x), то х * називають оптимальним планом. В цьому випадку х * є точкою глобального максимуму.

З точки зору економічної інтерпретації f (x) може розглядатися як дохід, який отримує фірма (підприємство) при плані випуску х, а g i (х) ≤ 0 як технологічні обмеження на можливості випуску продукції. В даному випадку вони є узагальненням ресурсних обмежень в ЗЛП i х - b i ≤ 0).

Завдання (2.2) є досить загальною, т. К. Допускає запис логічних умов, наприклад:

або запис умов дискретності множин:

Набір обмежень, що визначають безліч D, при необхідності завжди можна звести або до системи, що складається з одних нерівностей:

або, додавши фіктивні змінні у, до системи рівнянь:

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

1. Безліч допустимих планів D може мати дуже складну структуру (наприклад, бути неопуклого або незв'язним).

2. Глобальний максимум (мінімум) може досягатися як всередині безлічі D, так і на його кордонах (де він, взагалі кажучи, буде не збігатися ні з одним з локальних екстремумів).

3. Цільова функція f може бути недиференційованої, що ускладнює застосування класичних методів математичного аналізу.

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

2.1.2. Рішення задач умовної оптимізації методом Лагранжа. Одним з найбільш загальних підходів до вирішення завдання пошуку екстремуму (локального максимуму або мінімуму) функції при наявності сполучних обмежень на її змінні (або, як ще кажуть, завдання умовної оптимізації) є метод Лагранжа. Багатьом читачам він повинен бути відомий з курсу диференціального обчислення. Ідея даного методу полягає в зведенні задачі пошуку умовного екcтремума цільової функції

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

до задачі безумовної оптимізації функції

де u Î R m - вектор додаткових змінних, які називаються множниками Лагранжа. Функцію Ф (х, і), де x Î R n, u Î R n, називають функцією Лагранжа. У разі диференційованої функції f і g i справедлива теорема, яка визначає необхідну умову існування точки умовного екстремуму в задачі (2.3) - (2.4). Оскільки вона безпосередньо відноситься до предмету математичного аналізу, наведемо її без доведення.

Теорема 2.1. Якщо х * є точкою умовного екстремуму функції (2.3) при обмеженнях

(2.4) і ранг матриці перших приватних похідних функцій

дорівнює т, то існують такі і 1 *, і 2 *, ..., і m *, нерівні одночасно нулю, при яких

З теореми (2.1) випливає метод пошуку умовного екстремуму, який отримав назву методу множників Лагранжа, або просто методу Лагранжа. Він складається з наступних етапів.

1. Складання функції Лагранжа Ф (х, і).

2. Знаходження приватних похідних

3. Рішення системи рівнянь

щодо змінних x і u.

4. Дослідження точок, що задовольняють системі (2.7), на максимум (мінімум) за допомогою достатнього ознаки екстремуму.

Присутність останнього (четвертого) етапу пояснюється тим, що теорема (2.1) дає необхідне, але не достатня умова екстремуму. Стан справ з достатніми ознаками умовного екстремуму все набагато складніше. Взагалі кажучи, вони існують, але справедливі для набагато більш приватних ситуацій (при досить жорстких передумовах щодо функцій f і g i) і, як правило, труднопріменіми на практиці.

Ще раз підкреслимо, що основне практичне значення методу Лагранжа полягає в тому, що він дозволяє перейти від умовної оптимізації до безумовної і, відповідно, розширити арсенал доступних засобів вирішення проблеми. Однак неважко помітити, що завдання вирішення системи рівнянь (2.7), до якої зводиться даний метод, в загальному випадку не простіше вихідної проблеми пошуку екстремуму (2.3) - (2.4). Методи, які передбачають таке рішення, називаються непрямими. Вони можуть бути застосовані для дуже вузького класу задач, для яких вдається отримати лінійну або зводиться до лінійної систему рівнянь (2.7). Їх застосування пояснюється необхідністю отримати рішення екстремальної задачі в аналітичній формі (припустимо, для тих чи інших теоретичних викладок). При вирішенні конкретних практичних завдань зазвичай використовуються прямі методи, засновані на ітеративних процесах обчислення і порівняння значень оптимізуються функцій.

2.1.3. Градієнтні методи розв'язання задач безумовної оптимізації. Провідне місце серед прямих методів вирішення екстремальних задач займає градієнтний метод (точніше, сімейство градієнтних методів) пошуку стаціонарних точок диференціюється. Нагадаємо, що стаціонарної називається точка, в якій f (x) = 0 і яка відповідно до необхідною умовою оптимальності є «підозрілою» на наявність локального екстремуму.Таким чином, застосовуючи градієнтний метод, знаходять безліч точок локальних максимумів (або мінімумів), серед яких визначається максимум (або мінімум) глобальний.

Ідея даного методу заснована на тому, що градієнт функції вказує напрямок її найбільш швидкого зростання в околиці тієї точки, в якій він обчислений. Тому, якщо з деякої поточної точки х (1) переміщатися в напрямку вектора f (x (1)), то функція f буде зростати, по крайней мере, в деякій околиці х (1). Отже, для точки х (2) = х (1) + λ f (x (1)), (λ> 0), що лежить в такий околиці, справедливо нерівність f (x (1))f (x (2)). Продовжуючи цей процес, ми поступово будемо наближатися до точки деякого локального максимуму (див. Рис. 2.1).

Однак як тільки визначається напрямок руху, відразу ж постає питання про те, як далеко слід рухатися в цьому напрямку або, іншими словами, виникає проблема вибору кроку λ в рекуррентной формулe

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

Залежно від способу її вирішення розрізняють різні варіанти градієнтного методу. Зупинимося на найбільш відомих з них.

Метод найшвидшого спуску

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

Нехай f (x) = f (x 1, x 1,... x n) -діфференціруемая функція, задана на R n, а х (q) = (x 1 (q), x 2 (q),.. ., x n (q)) - деяка поточна точка. Обмовимося, що будь-яких загальних рекомендацій, що стосуються вибору вихідної точки (або, як ще кажуть, початкове наближення) х (0), не існує, проте по можливості вона повинна знаходитися близько від шуканого оптимального плану х *. Як вже говорилося вище, якщо х (q) - нестаціонарна точка (т. Е. | f (x (q)) |> 0), то при русі в напрямку f (x (q)) функція f (х) на деякому проміжку обов'язково буде зростати. Звідси виникає природна ідея такого вибору кроку, щоб рух у зазначеному напрямку тривало до тих пір, поки зростання не припиниться. Для цього висловимо залежність значення f (x) від крокової множника λ> 0. вважаючи х = х (q) + λ f (x (q))

або, в координатної формі,

Щоб домогтися найбільшого з можливих значень f при русі у напрямку f (x (q)), потрібно вибрати таке значення , Яке максимізує функцію φ (λ) (φ ( ) = Max (φ (λ)). для обчислення , Використовується необхідна умова екстремуму d φ (λ) / d λ = 0. Зауважимо, що якщо для будь-якого λ> 0 d φ ( ) / D λ> 0, то функція f (х) не обмежена зверху (т. Е. Не має максимуму). В іншому випадку, на основі (2.10) отримуємо

що, в свою чергу, дає

Якщо вважати, що наступна точка х (q + 1) відповідає оптимальному значенню λ = , То в ній повинно виконуватися умова d φ ( ) / D λ = 0, і слід знаходити з умови f (x (q +1)) f (x (q)) = 0 або

Умова (2.13) означає рівність нулю скалярного твори градієнтів функції f точках x (q +1) і x (q). Геометрично воно може бути інтерпретовано як перпендикулярність векторів градієнтів функції f в зазначених точках, що і показано на рис. 2.2. Продовжуючи геометричну інтерпретацію методу найшвидшого спуску, відзначимо, що в точці x (q +1) вектор f (x (q +1)), будучи градієнтом, перпендикулярний лінії рівня, що проходить через дану точку. Стало бути, вектор f (x (q)) є дотичним до цієї лінії. Отже, рух в напрямку градієнта f (x (q)) слід продовжувати до тих пір, поки він перетинає лінії рівня оптимізується функції.

Після того як точка x (q +1) знайдена, вона стає поточної для чергової ітерації. На практиці ознакою досягнення стаціонарної точки служить досить мале зміна координат точок, що розглядаються на послідовних ітераціях. Одночасно з цим координати вектора Δ f (x (q)) повинні бути близькі до нуля.

Метод дроблення кроку

Для знаходження кроку λ в методі найшвидшого спуску потрібно вирішити рівняння (2.13), яке може виявитися досить складним. Тому часто обмежуються «підбором» такого значення λ, що φ (λ)> φ (0). Для цього задаються деяким початковим значенням λ 1, (наприклад, λ 1 = l) і перевіряють умову φ (λ 1)> φ (0). Якщо воно не виконується, то вважають

λ 2 = 1/2 λ 1

і т. д. до тих пір, поки не вдається знайти відповідний крок, з яким переходять до наступної точки x (q +1). Критерій завершення алгоритму, очевидно, буде таким же, як і в методі найшвидшого спуску.

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

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

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

- Функція f (x) = f (x 1, x 2,..., x n) називається опуклою в області D, якщо для будь-яких двох точок х (1),

х (2) Î D і будь-якого λ Î [0,1] виконується нерівність

якщо ж

то функція називається увігнутою.

Геометричний сенс понять опуклості і угнутості для випадку функції однієї змінної представлений на рис. 2.3. З нього, зокрема, видно, що графік опуклою функції лежить нижче відрізка, що з'єднує точки (1), f (x (1))) і (2), f (x (2))), а графік увігнутою - вище.

Можна довести, що достатньою умовою опуклості функції f (x 1, x 2,..., x n) є позитивна визначеність матриці

званої також матрицею Гессе, у всіх точках х Î D. Відповідно, достатньою умовою угнутості є негативна визначеність матриці Гессе. Зокрема, для функцій однієї змінної достатньою умовою опуклості (угнутості) є виконання нерівності f n (x) ≥0 (f n (x) ≤0).

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

Теорема 2.2. Якщо f (x) опукла (увігнута) на R n функція і f (x *) = 0, то х * - точка глобального мінімуму (максимуму).

Доведення.

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

Нехай х - довільна точка, відмінна від точки х *.Тоді, для будь-якого λ Î [0,1], в силу угнутості функції f (x) буде виконуватися

отож

Якщо ввести вектор l = х - х * й позначити Δ х = λ (x - х *) = λ l, то довжина вектора Δ х буде дорівнює || Δ x || = λ || l ||. отже,

Спрямувавши λ → 0 і враховуючи, що вектор l сонаправлени з Δ х, отримаємо

За умовою теореми f (x *) = 0. Це означає, що для будь-якого вектора l (а, отже, для будь-якої точки х) згідно з формулою, що виражає похідну по напрямку через градієнт,

Отже, для будь-якої точки х, не рівної х *, справедливо нерівність f (x) -f (x) ≤ 0 <=> f (x) ≤ f (x *), тобто х * - точка глобального максимуму. -

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

2.1.5. Метод допустимих напрямів. Даний метод також називається методом можливих напрямків або ж на ім'я автора-методом Зойтендейка, см. [16]. Його основну ідею буде зручно продемонструвати на прикладі ЗНП з обмеженнями у формі нерівностей:

У зазначеному методі так само, як і в градієнтних методах, знаходиться послідовність точок х (0) х (1),..., х (q)..., таких, що f (q +1))f (x (q)) *. При цьому перехід від точки x (q)) до точки х (q +1)) відбувається за певним обраним напрямом s (q) з кроковим множником λ q:

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

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

- Напрямок s називається допустимим (можливим) в точці x (q) Î D, якщо існує таке

λ> 0, що x (q +1) = x (q) + λ s Î D.

- Напрямок s називається прогресивним в точці x (q) Î D, якщо існує таке λ> 0, що

f (x (q) + λ s)>> f (x (q)) для завдання максимізації і f (x (q) + λ s) (x (q)) для завдання мінімізації.

На основі даних визначень досить просто сформулювати критерій перевірки оптимальності точки (так званий критерій оптимальності в термінах допустимих і прогресивних напрямків):

- точка х * є оптимальним планом задачі (2.16), якщо в ній жодне допустиме

напрямок не є прогресивним.

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

1 °. Точка х (q) лежить всередині області D, т. Е. Для всіх i Î 1: m g i (q)) <0 (див. Рис. 2.4). Очевидно, що для внутрішньої точки будь-який напрямок буде допустимим (при виборі досить малого кроку), тому природним видається рух в сторону «гарантованого» зростання значення функції, а саме в напрямку градієнта. Значить, для внутрішньої точки х (q) доцільно вибрати s (q) = f (q)).

Кроковий множник λ q вибирається так, щоб, з одного боку, нова точка х (q +1) належала D, а з іншого боку - значення цільової функції в ній f (q +1)) було якомога більшою.

З цією метою спочатку знайдемо проміжок [0, ] З умови для чого необхідно вирішити систему нерівностей:

Знаючи проміжок [0, ], Визначаємо значення крокової множника λ q з умови максимізації значення функції в напрямку s (q):

Знову знайдена точка x (q +1) може перебувати або всередині області D, або на її кордоні. У першому випадку (на рис. 2.4 йому відповідає точка (Q +1) переходимо до початку даного пункту і повторюємо вищеописані дії, а в другому (точка (Q +1) на рис. 2.4) - діємо по розглянутій далі схемою.

2 °. Точка x (q) знаходиться на кордоні області (див. Рис. 2.5). Це означає, що одне або кілька нерівностей з системи обмежень задачі (2.16) виконуються як строгі рівності: g i (x (q)) = 0. Наприклад, на рис. 2.5 і g 1 (x (q)) = 0 і g 3 (x (q)) = 0.

Обмеження, яке в поточній точці виконується як рівність, називають активним. Безліч номерів активних обмежень в точці x (q) будемо позначати як I (x (q)). У прикладі, зображеному на рис. 2.5, I (x (q)) = {1, 3}. Також з малюнка видно, що всі допустимі напрямки, які виходять із точки x (q), повинні утворювати тупі кути з векторами градієнтів функцій, які задають активні обмеження в даній точці. Остання умова може бути виражено через завдання обмежень на значення скалярних творів вектора напрямку s на градієнти функції обмежень:

де I л - безліч номерів індексів лінійних обмежень, I н - безліч номерів індексів нелінійних обмежень. Відповідно, I (x (q))I л -номери лінійних активних обмежень, а I (x (q))I н - номера нелінійних активних обмежень. Відмінність умов (2.20) від умов (2.21) полягає в тому, що в разі лінійного обмеження напрямок, який утворює прямий кут з градієнтом обмежує функції (т. Е. Їх скалярний добуток дорівнює нулю), буде свідомо допустимим, а в разі нелінійного обмеження - можливо, немає.

Всі можливі напрямки в точці x (q) утворюють так званий конус допустимих напрямків, і з них для наступного переходу, очевидно, потрібно вибрати прогресивне. Якщо такого не існує, то згідно сформульованому вище критерієм точка x (q) є оптимальною! Для прискорення максимізації функції бажано, щоб кут між шуканим допустимим прогресивним напрямком s (q) і градієнтом цільової функції ∇ f (x (q)) був якомога менше або, що те ж саме, як можна більшої була б проекція s на∇ f (x (q)) (за умов нормування вектора s (q)). Іншими словами, бажано, щоб нерівність s (q)f (x (q)) + σ≥0 виконувалося при мінімально можливому σ∈ R. Тоді задачу відшукання найкращого допустимого прогресивного напрямку s (q) можна звести до задачі мінімізації параметра σ:

за умов

де s 1 2 + s 2 2 + ... + s n 2, ≤ l-умова нормування, що забезпечує обмеженість рішення;

τ - деякий досить мале число, що характеризує «суворість» виконання нерівностей.

На відміну від всіх інших, остання умова в системі (2.23) є нелінійним, що істотно ускладнює процес вирішення завдання (2.22) - (2.23). Тому на практиці дляопределения напрямки s (q) (можливо, не кращої) переходять від даного завдання до завданню лінійного програмування шляхом заміни зазначених вище умов нормування на обмеження виду -l ≤ s j, ≤1:

Після того як прогресивний напрямок s (q) знайдено, кроковий множник визначається за методом, описаним в п.1 °.

На закінчення відзначимо, що при практичних розрахунках алгоритм завершується при досягненні такої точки х *, у якій | ∇ f (x *) | <ε, де ε -досить мале число.

Корисним є звернути увагу читача і на те, що застосовуваний для вирішення завдань лінійного програмування симплекс-метод може бути розглянуто як окремий випадок методу допустимих напрямів. Зокрема, етап вибору стовпця, вводиться в черговий базис, відповідає визначенню допустимого прогресивного напрямку. Більш докладно про такий концепції симплекс-методу можна прочитати в [1].

2.1.6. Приклад рішення ЗНП методом допустимих напрямів. Розглянемо процес застосування методу допустимих напрямків на конкретному прикладі. Нехай дана ЗНП:

Ітерація 1. В якості початкового наближення візьмемо точку х (1) = (0,0). Неважко помітити, що вона удовлетворяетсістеме нерівностей (2.27), т. Е. Х (1)D. Для х (1) всі нерівності виконуються як строгі, т. Е. Безліч індексів активних обмежень I (1)) = ∅. Отже, в х (1) будь-який напрямок є допустимим, і нам залишається визначити, з яким кроком λ 1 можна рухатися уздовж градієнта цільової функції s (1) = ∇ f (x (1)) = (1, 1). Система нерівностей типу (2.18), з вирішення яких визначається інтервал допустимих значень для λ, для даної задачі матиме вигляд:

тоді

досягається при λ 1 = 3. Звідси отримуємо наступну точку

Ітерація 2. Шляхом підстановки координат точки x (2) в (2.27) визначимо безліч активних обмежень в точці x (2): I (x (2)) = {2}. Відповідно, завдання (2.24) - (2.25), яку потрібно вирішити для визначення допустимого прогресивного напрямку s (2) з урахуванням того, що ∇ f (x (2)) = (1, 1) і ∇ g 2 (x (2 )) = (0, 1) набуде вигляду:

В даному випадку оптимальний план ЗЛП знаходиться досить просто і дорівнює (σ, s 1, s 2) * = (- 1,1, 0). Відкинувши додаткову змінну σ, отримуємо вектор s (2) = (1,0), т. Е. Чергова точка буде визначатися як

Діючи за аналогією з попередньою итерацией, для визначення проміжку допустимих значень крокової множника λ складаємо систему нерівностей (2.18):

Остаточно маємо λ∈ [0; 1].

тоді

досягається при λ 2 = 1. Звідси отримуємо наступну точку x (3) = (3,4).

Ітерація 3. В точці x (3) безліч активних обмежень буде мати вигляд I (x (3)) = {1,2}. Знайдемо значення градієнтів: ∇ f (x (3)) = (1, 1), ∇ g 1 (x (3)) = (2 x 1 (3), 2 x 2 (3)) = (8, 6) і ∇ g 2 (x (2)) = (0,1).

Завдання визначення допустимого прогресивного напрямку (2.24) - (2.25) буде мати вигляд:

Значення τ з практичних міркуванні слід брати досить малим, наприклад τ = 0,001. Опускаючи рішення даного завдання, наведемо цікаві для нас компоненти її оптимального плану: s (3) = (0,0). Отже, не існує прогресивного напрямку, що виходить з точки х (3) Таким чином, оптимальний план розглянутої задачі (2.26) - (2.27) х * = (4,3), а максимальне значення цільової функції f * = х 1 (3) + х 2 (3) = 7.

Графічна ілюстрація проведеного процесу рішення представлена графічно на рис. 2.6.

2.2. Двоїстість В нелінійного програмування

2.2.1. Поняття сідловий точки. У цьому параграфі ми коротко зупинимося на деяких фундаментальних моментах теорії нелінійного програмування. Відправною точкою для них є поширення методу Лагранжа для вирішення ЗНП з обмеженнями у формі нерівностей:

де X - деяка область в просторі R n.

За аналогією з п. 2.1.2 визначимо для завдання (2.28) функцію Лагранжа:

- Пара векторів (х, u) називається сідловою функції Ф (х, і) в деякій області X x U, якщо

для будь-яких x X і u U

Нерівності (2.30) також називають нерівностями сідлової точки.

Як приклад сідлової точки може бути приведена точка (0, 0) для функції Ф (х, і) = - х 2 + і 2, визначеної на множині R х R. Справді, Ф (0,0) = 0, Ф (х, 0) = - х 2, Ф (0, і) = і 2, а для будь-яких x ε R і u ε R виконуються нерівності - х 2 ≤ 0 і 0 ≤ і 2.

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

2.2.2. Теорема Куна-Таккера. Центральне місце в теорії нелінійного програмування займає теорема Куна- Таккера, яка пов'язує рішення ЗНП з наявністю сідлової точки у відповідній функції Лагранжа.

Теорема 2.3. (Достатня умова екстремуму).

Якщо (х, і) - сідлова точка функції Лагранжа, в області x ε X D, і≥ 0, то х є оптимальним планом задачі (2.28), причому справедливо так зване правило доповнює нежорсткості:

Доведення.

За визначенням сідлової точки

при всіх x ε X, і≥ 0. З другого нерівності в (2.32) випливає, що


Однак (2.33) може мати місце тільки тоді, коли g i (x) ≤0 при всіх i ε1: m. Дійсно, якщо існує таке k, що g k (x)> 0, то, поклавши і i = 0 для всіх i ≠ k і вибравши досить велике і k> 0, можна домогтися того, що значення

виявиться більше постійного вираження

З того, що для всіх i ε1: m виконуються нерівності g i (x) ≤0, слід, що х є допустимим планом задачі (2.28).

Якщо в ліву частину нерівності (2.33) підставити значення u i = 0, i ε1: m, то отримаємо, що

Разом з тим з того що, g i (x) ≤0 і u i ≥0, слід оцінка

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

Тоді на підставі лівій частині нерівності сідлової точки (2.32) маємо, що для всіх х ε Х (в тому числі і для х ε D)

Але умові ЗНП для будь-яких х ε D вірні нерівності g i (x) ≤0, що, в поєднанні з умовою u i ≥0, дозволяє записати

значить,

Остаточно отримуємо, що для будь-яких х ε D справедливо співвідношення f (x)f (x), т.е. х - оптимальний план завдання (2.28). -

Твердження, зворотне теоремі (2.3), т. Е. Необхідна умова екстремуму в ЗНП, справджується лише при виконанні додаткових умов, яким повинна задовольняти завдання (2.28). Найважливішим із них є так зване умова регулярності Слейтера:

- Кажуть, що функція g i (х), що задає обмеження в задачі (2.28), задовольняє умові регулярності Слейтера, якщо існує така точка , Що належить області допустимих планів D, що

т. е. є внутрішньою точкою щодо обмеження g i (x). Тому дана умова також називають умовою тілесності.

Взагалі кажучи, існують різні варіанти необхідної умови Куна-Таккера. Наведемо один з них.

Теорема 2.4. (Необхідна умова наявності екстремуму).

Якщо (D, f) є завданням опуклого програмування з рішенням х, її цільова функція f (x) і функції обмежень g i (x) - похідні, нелінійні обмеження у формі нерівностей задовольняють умові регулярності Слейтера, то існує такий вектор і0, що (х, і) - сідлова точка функції Лагранжа Ф (х, і).

Ми не будемо тут приводити доказ теореми (2.4), яке є досить складним. Зацікавлений читач може знайти його в таких джерелах, як [1, 13].

Значення теореми Куна-Таккера полягає в тому, що вона дозволяє зв'язати процес вирішення оптимізаційної задачі з пошуком сідлових точок функції Лагранжа, т. Е., Грубо кажучи, з максимізацією цієї функції по х і мінімізацією з футболу.

Визначимо F (x) як функцію, яка ставить у відповідність кожному значенню х мінімальне значення функції Ф (х, і) по і:

і за аналогією

Розглянемо задачу відшукання максимуму функції F (x)

і завдання мінімізації G (u)

Очевидно, що

Звідси випливає, що максимум F (x) знаходиться в допустимої області D і збігається з максимумом цільової функції f (x) завдання (2.28):

Таким чином, завдання (2.34), в певному сенсі, рівносильна (2.28). Аналогічні висновки можуть бути отримані і для (2.35). Завдання (2.34) і (2.35) утворюють подвійну пару. Як неважко здогадатися, дане відношення є узагальненням відносини подвійності для задач лінійного програмування. Відповідно, при певних умовах пара двоїстих задач нелінійного програмування має властивості, аналогічними властивостями подвійних лінійних задач. Зокрема, при будь-яких х ε Х, і ≥0

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

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

На закінчення відзначимо, що можливий варіант виведення виразів для цільових функцій і обмежень пари двоїстих задач лінійного програмування із загального визначення відносини подвійності для нелінійних задач. Також відзначимо, що в процесі формування нелінійних двоїстих задач існує велика неоднозначність: їх вид можна варіювати, включаючи в безліч Х частина обмежень g i (x) ≤0.

КЛЮЧОВІ ПОНЯТТЯ

- Загальна задача нелінійного програмування.

- Умовна і безумовна оптимізація.

- Прямі та непрямі методи вирішення оптимізаційних задач.

- Стаціонарна точка.

- Градієнтні методи.

- Метод найшвидшого спуску і методи дроблення кроку.

- Опукла і увігнута функції.

- Матриця Гессе.

- Достатня умова опуклості (угнутості).

- Завдання опуклого програмування.

- Допустиме напрям.

- Прогресивне напрям.

- Сідлова точка.

- Теорема Куна-Таккера.

- Умова регулярності Слейтера.

КОНТРОЛЬНІ ПИТАННЯ

2.1. За яких умов оптимізаційна задача може бути віднесена до класу нелінійних?

2.2. Наведіть приклад економічної моделі, що зводиться до задачі нелінійного програмування.

2.3. Перерахуйте основні труднощі, що виникають в процесі виконання завдання нелінійного

програмування.

2.4. Який сенс вкладається в поняття «умовна оптимізація»?

2.5. Для чого призначений метод множників Лагранжа і в чому він полягає?

2.6. Яка точка називається стаціонарною?

2.7. Які принципові етапи входять в градієнтні методи?

2.8. Для вирішення яких завдань призначені метод найшвидшого спуску і метод дроблення кроку?

2.9. Дайте визначення опуклою (увігнутою) функції.

2.10. Сформулюйте достатню умову опуклості (угнутості) функції.

2.11. У чому полягає специфіка завдань опуклого програмування?

2.12. Перерахуйте основні етапи, що входять в метод допустимих напрямів.

2.13. Сформулюйте задачу, яка повинна бути вирішена при визначенні кроку в методі

допустимих напрямів.

2.14. Виходячи з яких міркувань визначається допустиме прогресивний напрямок?

2.15. Яке умова використовується для визначення оптимальності поточної точки в методі

допустимих напрямів?

2.16. Дайте визначення сідлової точки. Наведіть приклад функції, що має седловую точку.

2.17. Сформулюйте необхідну і достатню умови теореми Куна-Таккера. Яке значення

вони мають для вирішення завдань нелінійного програмування?

2.18. У чому полягає умова регулярності Слейтера? Поясніть його зміст.

2.19. Яке умова отримало назву «правила доповнює нежорсткості»?

2.20. Наведіть приклад пари двоїстих задач нелінійного програмування.

2.21. Які властивості пари нелінійних двоїстих задач можуть бути застосовані для їх вирішення?

ГЛАВА 3. ТРАНСПОРТНІ І МЕРЕЖЕВІ ЗАВДАННЯ

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

3.1. ТРАНСПОРТНА ЗАВДАННЯ І МЕТОДИ ЇЇ ВИРІШЕННЯ

3.1.1. Транспортна задача в матричної постановці і її властивості. Повернемося до транспортної задачі в матричної, постановці, про яку ми вже згадували при розгляді питань побудови математичних моделей. Нагадаємо, що дана задача зводиться до визначення такого плану перевезень деякого продукту з пунктів його виробництва в пункти споживання (║ x i, jm x n), який мінімізує цільову функцію

на безлічі допустимих планів

при дотриманні умови балансу

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

Якщо привести умови транспортної задачі до канонічної формі завдання лінійного програмування, то матриця завдання матиме розмірність (m + n) х mn. Матриці систем рівнянь в обмеженнях (3.2) і (3.3) мають ранги, рівні відповідно m і n. Однак, якщо, з одного боку, підсумувати рівняння (3.2) по m, а з іншого - рівняння (3.3) по n, то в силу (3.5) отримаємо одне і те ж значення. З цього випливає, що одне з рівнянь в системі (3.2) - (3.3) є лінійною комбінацією інших. Таким чином, ранг матриці транспортної задачі дорівнює m + n -1, і її невироджених базисний план повинен містити m + n -1 ненульових компонент.

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

Рядки транспортної таблиці відповідають пунктам виробництва (в останній клітині кожного рядка зазначений обсяг запасу продукту а i), а стовпці - пунктам споживання (остання клітина кожного стовпця містить значення потреби b j). Всі клітини таблиці (крім тих, які розташовані в нижній частині і правій колонці) містять інформацію про перевезення з i -го пункту в j -й: в лівому верхньому кутку знаходиться

Вартість перевезення одиниці продукту, а в правому нижньому - значення обсягу перевезеного вантажу для даних пунктів. Клітини, які містять нульові перевезення i, j = 0), називають вільними, а ненульові - зайнятими (x i, j> 0).

3.1.2. Побудова вихідного допустимого плану в транспортній задачі. За аналогією з іншими завданнями лінійного програмування рішення транспортної задачі починається з побудови допустимого базисного плану. Найбільш простий спосіб його знаходження грунтується на так званому методі північно-західного кута.Суть методу полягає в послідовному розподілі всіх запасів, наявних в першому, другому і т. Д. Пунктах виробництва, по першому, другому і т. Д. Пунктам споживання. Кожен крок розподілу зводиться до спроби повного вичерпання запасів в черговому пункті виробництва або до спроби повного, задоволення потреб у черговому пункті споживання. На кожному кроці q величини поточних нерозподілених запасів позначаються а i (q), а поточних незадоволених потреб - b j (q). Побудова допустимого початкового плану, згідно з методом північно-західного кута, починається з лівого верхнього кута транспортної таблиці, при цьому вважаємо а i (0) = а i, b j (0) = b j. Для чергової клітини, розташованої в рядку i і стовпці j, розглядаються значення нерозподіленого запасу в i-му пункті виробництва та незадоволеної потреби j -му пункті споживання, з них обирається мінімальне і призначається в якості обсягу перевезення між даними пунктами: x i, j = min i (q), b j (q)}. Після цього значення нерозподіленого запасу і незадоволених потреб у відповідних пунктах зменшуються на цю величину:

Очевидно, що на кожному кроці виконується хоча б одне з рівності: а i (q +1) = 0 або b j (q +1) = 0. Якщо справедливо перше, то це означає, що весь запас i-го пункту виробництва вичерпаний і необхідно перейти до розподілу запасу в пункті виробництва i +1, т. Е. Перейти до наступної клітці вниз по стовпчику. Якщо ж b j (q +1) = 0, то значить, повністю задоволена потреба для j -го пункту, після чого слід перехід на клітку, розташовану праворуч по рядку. Знову обрана клітка стає поточної, і для неї повторюються всі перераховані операції.

Грунтуючись на умови балансу запасів і потреб (3.5), неважко довести, що за кінцеве число кроків ми отримаємо допустимий план. В силу того ж умови число кроків алгоритму не може бути більше, ніж m + n -1, тому завжди залишаться вільними (нульовими) mn - (m + n -1) клітин. Отже, отриманий план є базисним. Не виключено, що на деякому проміжному етапі поточний нерозподілений запас виявляється рівним поточної незадоволеної потреби i (q) = b j (q)). У цьому випадку перехід до наступної клітці відбувається в діагональному напрямку (одночасно змінюються поточні пункти виробництва і споживання), а це означає «втрату» однієї ненульовий компоненти в плані або, іншими словами, вирожденність побудованого плану.

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

Особливістю допустимого плану ,, побудованого методом північно-західного кута, є те, що цільова функція на ньому бере значення, як правило, далеке від оптимального. Це відбувається тому, що при його побудові ніяк не враховуються значення з i, j. У зв'язку з цим на практиці для отримання вихідного плану використовується інший спосіб - метод мінімального елемента, в якому при розподілі обсягів перевезень в першу чергу займаються клітини з найменшими цінами.

3.1.3. Критерій оптимальності. Розглянемо більш докладно структуру матриці транспортної задачі. Схематично вона показана на рис. 3.2.

З нього видно, що матриця має розмірність (m + n) х mn, складається з нулів і одиниць і розпадається на дві групи однотипних блоків. Перша (верхня) відповідає обмеженням на

обсяги вивезення з пунктів виробництва, а друга - обмеженням на задоволення потреб в пунктах виробництва.

Побудуємо двоїсту задачу. З урахуванням специфічної структури матриці транспортної задачі вектор двоїстих змінних матиме розмірність m + n, причому його компоненти, відповідні першої групи обмежень, позначимо через (- u i), i ε1: m, а другий - через v j, j ε1 : n (рис. 3.2). Тоді двоїста завдання буде мати вигляд:

Змінні u i називають потенціалами пунктів виробництва, а v j - потенціалами пунктів споживання. Застосовуючи доведені в розділі 1 теореми подвійності (див. Теорему1.7), можна отримати критерій оптимальності для плану транспортної задачі:

- Для того, щоб допустимий план транспортної задачі х i, j був оптимальним, необхідно і достатньо, щоб знайшлися такі потенціали і i, v j, для яких

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

3.1.4. Алгоритм методу потенціалів для транспортної задачі. Критерій (3.8) - (3.9) покладено в основу одного з методів рішень транспортної задачі, що отримав назву методу потенціалів. Вперше він був запропонований в 1949р. Л. В. Канторовичем і М. К. Гавуріним. Пізніше на базі загальних ідей лінійного програмування аналогічний метод був запропонований Дж. Данцигом.

Точно так само як транспортна задача є окремим випадком завдання ЛП, так і метод потенціалів, взагалі кажучи, може трактуватися як різновид симплексних процедур. Він являє собою ітеративний процес, на кожному кроці якого розглядається деякий поточний базисний план, перевіряється його оптимальність, і при необхідності визначається перехід до «кращого» базисного плану.

Алгоритм починається з вибору деякого допустимого базисного плану (методи його побудови були розглянуті в п. 3.1.2). Якщо даний план не вироджених, то він містить m + n -1 ненульових базисних клітин, і по ньому можна так визначити потенціали u i і v j, щоб для кожної базисної клітини (т. Е. Для тієї, в якій х i, j > 0) виконувалася умова

Оскільки система (3.10) містить m + n -1 рівняння і m + n невідомих, то один з потенціалів можна задати довільно (наприклад, прирівняти v j або u i до нуля). Після цього інші невідомі u i і v j визначаються однозначно.

Розглянемо процес визначення потенціалів поточного плану транспортної задачі на прикладі. У табл. 3.3 переписані умови задачі з табл. 3.1 і її допустимий базисний план, побудований методом північно-західного кута (див. Табл. 3.2).

Потенціал першого пункту споживання приймаємо рівним нулю (v 1 = 0). Тепер, знаючи його, ми можемо визначити потенціали для всіх пунктів виробництва, пов'язаних з першим пунктом ненульовими перевезеннями. В даному випадку їх два (це перший і другий пункти), отримуємо:

Маючи u 2 і враховуючи, що у другому рядку таблиці існують ще ненульові компоненти х 2,2 і х 2,3, можна визначити v 2 = u 2 + c 2,2 = -10 + 17 = 7 і v 3 = u 2 + c 2,3 = -10 + 15 = 5, після чого з'являється можливість розрахувати u 3 = v 3 - c 3,3 = 5-25 = -20 і, нарешті, v 4 = u 3 + c 3,4 = -20 + 21 = 1. В результаті отримуємо повну систему потенціалів, показану в табл. 3.3.

Для вільних клітин транспортної таблиці обчислюються величини α i, j = v j - u i, звані різницями потенціалів. У табл. 3.4 вони виписані для всіх небазисних клітин під цінами.

Різниця потенціалів α i, j можна трактувати як збільшення ціни продукту при його перевезенні з пункту i в пункт j. Згідно з критерієм оптимальності (3.8) - (3.9), якщо все α i, jз i, j, то план оптимальний, в іншому випадку, якщо існує хоча б одна різниця потенціалів α i, j> з i, j, то він може бути поліпшений. Процес «поліпшення» плану полягає у визначенні вводиться і виводиться клітин, в чому простежується змістовна аналогія з відповідними пунктами симплекс-процедур.

Кандидатом на введення, очевидно, може бути будь-яка клітина, в якій α i, j> з i, j, оскільки після введення в базис буде забезпечено рівність α i, j = з i, j. Для визначеності зазвичай рекомендується брати ту клітку, в якій оцінка α i, j - з i, j максимальна. У розглянутому нами прикладі це буде клітка (3, 1).

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

Логіка алгоритму побудови ланцюжка досить проста: «вийшовши» з клітки (3,1) в горизонтальному напрямку, ми повинні «зупинитися» в тій зайнятої клітці плану, з якої зможемо рухатися далі по вертикалі.В даному прикладі цій вимозі задовольняють як клітина (3,3), так і клітина (3,4). Однак ланцюжок від (3,4) не може бути продовжена далі, в той час як рухаючись від (3,3) по вертикалі до (2,3) і далі до (2,1), ми повертаємося до вихідної клітці (3, 1) і утворимо замкнутий цикл.

У побудованій ланцюжку, починаючи з введеної клітини (яка вважається першою), позначаються вершини: непарні - знаком «+», а парні знаком «-». Знаком «+» відзначаються ті клітини, в яких обсяги перевезень повинні збільшитися (такий, зокрема, є клітина, що вводиться в план, оскільки вона повинна стати базисної). Знаком «-» - ті клітини, в яких перевезення зменшуються з метою збереження балансу. Серед безлічі клітин, помічених знаком «-», вибирається клітина з найменшим значенням х i, j (позначимо його θ). Вона і стає кандидатом на висновок, т. К. Зменшення обсягу перевезень на велику величину може привести до негативних значень х i, j в інших «мінусових» клітках. Потім проводиться перерахунок плану по ланцюжку: до обсягів перевезень в клітинах, позначених знаком «+», додається обсяг θ, а з обсягів клітин, помічених знаком «-», він віднімається. В результаті введення однієї клітини і виведення інший виходить новийбазісний план, для якого на наступній ітерації описані вище дії повторюються.

У нашому прикладі знаком «-» відзначені клітини (2,1) і (3,3), причому x 2,1 = 6, x 3,3 = 26. Обчисливши значення θ = min {x 2,1, x 3,3} = 6, здійснюємо перетворення і переходимо до наступного базисного плану, показаному в табл. 3.6.

Для знову отриманого плану повторюються дії стандартної ітерації: розраховуються потенціали і оцінки для небазисних клітин транспортної таблиці. Як можна бачити, план в табл. 3.6 також не є оптимальним (в клітці (1,3) α i, j = 25> з i, j = 21), тому знову будуємо ланцюжок перетворення плану і переходимо до наступного базисного плану (табл. 3.7).

З транспортної таблиці 3.7 видно, що отриманий план оптимальний, так як всі різниці потенціалів для небазіснихклеток α i, j = v j - u i не перевищують відповідних цін з i, j. За цим планом обчислюється оптимальне (найменше) значення сумарних витрат на перевезення

Завершуючи розмову про метод потенціалів, слід окремо зупинитися на ситуації виникнення виродженого плану. Можливість отримання виродженого плану вже відзначалася при описі методу північно-західного кута. Неважко помітити, що вироджений план також може вийти на етапі перетворення поточного плану по ланцюжку: якщо однакове мінімальне значення буде досягнуто відразу на декількох клітинах, позначених знаком «-», то при відніманні переміщуваного по ланцюжку обсягу в новому плані буде менше ніж m + n -1 ненульових компонент. Спосіб подолання вирожденність в транспортній задачі досить простий, а саме: пропонується доповнити поточний план необхідною кількістю нульових клітин (фіктивними перевезеннями) таким чином, щоб вони дозволяли розрахувати повну систему потенціалів, і далі діяти відповідно до правил описаного вище алгоритму. Фактично тут ми маємо справу не з чим іншим, як з аналогом методу збурень для транспортної задачі як окремого випадку ЗЛП. До такого висновку легко прийти, якщо покласти, що додаються фіктивні клітини містять деякий малий обсяг ε.

3.2. МЕРЕЖЕВІ ЗАВДАННЯ

3.2.1. Основні поняття і визначення. Багато економічні завдання, такі як перевезення вантажів, перекачування нафти і газу по трубопроводах, управління запасами і т. П., Зручно моделювати і вирішувати в термінах мереж і потоків. Основою подібного роду моделей служать орієнтовані або неорієнтовані графи. Наведемо деякі визначення.

- Орієнтованим графом називається трійка (I, D, G), в якій I - непорожня безліч вершин, D - безліч дуг і G - відображення, яке кожній дузі d ε D ставить у відповідність впорядковану пару вершин (i, j), де i , j ε I.

- неорієнтовані графів називається трійка (I, D, G), в якій I - непорожня безліч вершин, D - безліч ребер і G - відображення, яке кожному ребру d ε D ставить у відповідність неупорядковану пару вершин [i, j], де i , j ε I.

Граф (I, D, G) називається кінцевим, якщо безлічі I і D кінцеві.

Геометрично граф може бути представлений у вигляді безлічі точок (що зображують вершини) і з'єднують їх ліній (зі стрілками), відповідних ребрах (дуг) (рис. 3.3, 3.4). Очевидно, що з кожним орієнтованим графом можна однозначно пов'язати неорієнтовний, замінивши дуги на ребра. Якщо будь-які дві вершини графа з'єднуються не більше ніж однією дугою (ребром), то граф називається простим і може бути заданий за допомогою пари (I, D). У цьому випадку кожна дуга (ребро) d повністю визначається парою з'єднуються вершин (i, j), що умовно записується у вигляді: d = (i, j). Упорядкована пара вершин (i, j), яка ставиться у відповідність деякій дузі d, задає її орієнтацію: i називається початком дуги, а j - її кінцем, а сама дуга вважається инцидентной даними вершин.

Шляхом довжини п в орієнтованому графі (I, D) називається впорядкована послідовність різних дуг (d 1, d 2,..., d n), для яких початок кожної наступної збігається з кінцем попереднього. Кінцевий шлях, у якого початкова вершина збігається з кінцевою, називається контуром.

Для неорієнтованого графа аналогом поняття шлях є ланцюг, а контуру - цикл.

Якщо дві будь-які вершини неориентированного графа можуть бути з'єднані ланцюгом, то він називається зв'язковим. Орієнтований граф називається зв'язковим, якщо йому відповідає зв'язний неорієнтований граф.

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

Якщо YD, а відображення G Y є звуженням відображення G на безліч Y, то граф (I, Y, G Y) називають частковим графом (ребровим подграфом) графа (I, D, G).

Розглянемо задачу: є кінцевий граф (I, D, G), кожній вершині i якого співставлено деяке число b i, зване інтенсивністю вершини. Граф (I, D, G), вершинам якого зіставлені значення інтенсивностей b i, будемо називати мережею. Якщо b i> 0, то вершина i називається джерелом, якщо b i <0, то - стоком, а якщо b i = 0, то - нейтральної вершиною. Безліч джерел, стоків і нейтральних вершин позначимо відповідно I +, I -, I 0.

Для певної вище мережі потоком називається така сукупність величин, заданих на множині дуг, Х = d} d ε D, що

де D i + - безліч дуг, що виходять з вершини i, a D i - - безліч дуг, що входять в неї. Величина х d називається значенням потоку по дузі d і змістовно інтерпретується як кількість продукту, що пропускається по даній дузі.

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

На базі введеної термінології може бути сформульовано багато різних завдань. Розглянемо найбільш відомі з них. Для кожної дуги d ε D визначимо значення c d ≥ 0, звані вартістю переміщення одиниці продукту по дузі, тоді сумарна вартість потоку Х набуде вигляду

Завдання мінімізації функції (3.13) при обмеженнях (3.11) - (3.12) зазвичай називають лінійної мережевий завданням. Очевидно, що вона є задачею лінійного програмування. Якщо додатково для кожної дуги мережі d ε D визначити величини r d ≥ 0, звані пропускними здатностями, то, додавши обмеження

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

Наведені формулювання завдань спеціально дано в такому абстрактному вигляді, що дозволяє підкреслити їх універсальність. До очевидною сфері їх застосування відноситься організація вантажоперевезень в транспортній мережі. У таких моделях вершини i трактуються як пункти, з'єднані мережею доріг, і характеризуються потребами в деякому продукті (b i <0) або його запасами (b i> 0). Завдання визначення плану, що мінімізує витрати на перевезення, які з математичної точки зору повністю ідентичні (3.11) - (3.13), (3.14), також називають транспортними завданнями в мережевий постановці.

3.2.2. Метод потенціалів для транспортної задачі в мережевий постановці. Розглянемо задачу визначення оптимального потоку Х в деякій мережі (I, D, G), для якого

при обмеженнях

де r d ≥ 0. Передбачається також, що мережа є збалансованою, т. е.

Для завдання (3.15) - (3.17) справедливий критерій оптимальності:

- Для того, щоб допустимий потік Х = {х d} d ε D (т. Е. Що задовольняє умовам (3.16) - (3.17)) був оптимальним, необхідно і достатньо існування для кожної вершини i ε I такого числа v i, званого потенціалом, що для всіх дуг d = (i, j)

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

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

Оскільки завдання (3.15) - (3.17) є окремим випадком задачі лінійного програмування, її можна привести до канонічної формі. При цьому досить просто встановлюється, що ранг матриці завдання дорівнює m -1, де m - кількість вершин в мережі. Введемо додатково ще деякі поняття, використовувані при описі властивостей мережевих завдань.

Кістяком мережі (I, D, G) називається будь-яке її часткове дерево (частковий граф, який є деревом). Справедливо твердження:

- довільні остову мережі (I, D, G) відповідає базис завдання (3.15) - (3.17) і навпаки.

Нехай є деякий потік Х = {х d} d ε D. Розглянемо безліч дуг D (X) = {d ε D | 0 d d}. Опорою потоку Х називається частковий граф (I, D (X), G). Кажуть, що потік Х невирождени, якщо його опора (7, D (X), G) є кістяком мережі (I, D, G). Іншими словами, використовуючи термінологію транспортної задачі, в невиродженому потоці, якому відповідає допустимий базисний план завдання, дороги, по яким здійснюються перевезення вантажу, що не досягають за обсягом обмеження на пропускну здатність, утворюють остов (пов'язану підмережа без циклів) розглянутої транспортної мережі.

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

1 °. Передбачається, що на початку чергової ітерації q є деякий допустимий невироджених потік Х = {х d (q)} d ε D (про методи його генерації на початковому етапі буде сказано надалі).

За наявного потоку Х (q) будується система потенціалів пунктів мережі. Для цього вибирається довільний пункт i 0, потенціал якого покладається v i 0 = 0. Безліч вершин, суміжних з i 0, позначимо через I (i 0). Тоді для будь-якої вершини j ε I (i 0) потенціали розраховуються за правилом

якщо (i 0, j) ε D (X (q)) (дуга спрямована від i 0), і

якщо (j, i 0) ε G (D (X (q))) (j, i 0) ε D (X (q)) (дуга спрямована до i 0).

Отримавши чергову групу вершин з відомими потенціалами, ми маємо можливість на основі (3.22) - (3.23) обчислити потенціали для наступної групи суміжних вершин і т. Д., Поки не будуть визначені всі потенціали. Можливість зробити це єдиним чином випливає з властивості відсутності циклів у остова мережі.

Маючи повну систему потенціалів, для всіх дуг слід перевірити умови критерію оптимальності (3.19) - (3.21). Якщо вони виконуються, то поточний потік Х (q) - оптимальний і, отже, алгоритм завершено; в іншому випадку - переходимо до побудови наступного «поліпшеного» потоку.

2 °. За аналогією з іншими методами послідовного поліпшення плану черговий потік виходить за рахунок «введення» в нього однієї дуги і «виведення» інший. Якщо умови критерію оптимальності порушуються відразу для декількох дуг, то для введення має сенс вибрати ту, на якій досягається максимальне відхилення ціни від різниці потенціалів, що з'єднуються вершин. Нехай для введення обрана деяка дуга d l = (s, t), спрямована з вершини s у вершину t. З правил побудови потенціалів слід, що в остові існують два ланцюги, одна з яких з'єднує базову вершину i 0, потенціал якої був прийнятий рівним нулю, з s, а інша - i 0 з t. Якщо доповнити остов дугою d l, утворюється єдиний цикл. Построеннийцікл є аналогом ланцюжка перетворення плану в методі потенціалів для транспортної задачі в матричної постановці. Позначимо через D + (s, t) безліч дуг даного циклу, орієнтація яких збігається з орієнтацією дуги d l = (s, t), а через D - (s, t) - безліч дуг, що мають протилежну орієнтацію. Визначимо величину можливого коректування обсягів вантажоперевезень, «що переміщуються» по циклу

Ідея формули (3.24) досить прозора: при циклічному перетворенні поточного потоку збільшуються обсяги вантажоперевезень на тих дугах, які сонаправлени вводиться дузі, і зменшуються на дугах, що мають зворотну орієнтацію. Відповідно, при додаванні ми повинні стежити за тим, щоб не перевищити обмеження на пропускні спроможності (θ ≤ r d - х d (q)), а при відніманні - за невід'ємністю х d (q). Після визначення θ відбувається перерахунок компонент поточного потоку по формулі

В результаті ми отримуємо новий допустимий потік х d (q +1)), вважаємо номер поточної ітерації q +1 і переходимо до п. 1 °.

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

Окремо слід зупинитися на методах генерації вихідного допустимого потоку. Найбільш простий з них (хоча, можливо, і найменш раціональний) заснований на ідеях, схожих з ідеями методу мінімізації нев'язок, використовуваного для побудови допустимого базисного плану ЗЛП. Даний метод передбачає вирішення відповідної допоміжної завдання, яка виходить з основної в результаті наступних перетворень:

1. До сили-силенної вершин мережі додається фіктивна нульова вершина з нульовою інтенсивністю (b 0 = 0).

2. Всі вершини, що мають негативну інтенсивність (попит) b i <0, з'єднуються з доданою вершиною 0 входять дугами (0, i), а вершини, що володіють позитивною інтенсивністю (запасом) b i> 0, - вихідними дугами (i, 0 ). Обмеження на пропускні спроможності для додаються дуг відсутні.

3. Вартості переміщення одиниці продукту для знову доданих дуг покладаються рівними 1, а для дуг, відповідних транспортної мережі основного завдання, - 0.

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

3.2.3. Задача про найкоротший шлях. Класичним прикладом мережевих завдань є визначення найкоротшого шляху між вершинами мережі. Нехай заданий граф (I, D, G), кожній дузі якого поставлено у відповідність число c d, зване довжиною. Також нехай виділені дві вершини графа s і t, і потрібно знайти шлях найменшої довжини, що веде з вершини s у вершину t.

Якщо в графі є «кратні» дуги, що з'єднують однакові початок і кінець, то достатньо залишити одну - з найменшою довжиною, а решта відкинути. Таким чином, досить розглядати задачу про найкоротший шлях для простогографа (I, D), в якому дуги визначаються впорядкованими парами вершин d = (i, j). Тоді природно шлях L, що йде з вершини s у вершину t, задавати у вигляді впорядкованого набору вершин, через які проходить даний шлях:

а довжини дуг позначати як c d = c i, j.

Довжина описаного вище довільного шляху L визначається за формулою

Легко помітити, що завдання про найкоротшому шляху є окремим випадком транспортної задачі в мережевий постановці (або, що те ж саме, завдання про оптимальному потоці). Для цього досить привласнити вершині s одиничний запас, вершині t одиничну потреба, всі інші вершини покласти нейтральними, а дугам привласнити необмежені пропускні спроможності. Однак, як правило, більш раціональним виявляється використання конкретних властивостей даного завдання і рішення її спеціальними (приватними) методами. До їх числа належить, наприклад, метод Мінті, основні ідеї якого ми викладемо нижче.

Метод Мінті рішення задачі про найкоротший шлях в мережі є ітеративний процес, в ході якого будується шлях L = (s = i 0, i 1,..., i p- 1, i p = t).

На попередньому (нульовому) етапі алгоритму:

- формується масив значень так званих модифікованих довжин i, j, які перед початком першої ітерації покладаються рівними з i, j ≥0;

- здійснюється відмітка вершини i 0 = s числом m i 0 = 0.

Стандартна ітерація включає етапи:

1 °. Відмітка вершин мережі. Позначимо безліч вершин Мережі, зазначених на попередніх ітераціях, як (На першій ітерації = {I 0}). Для кожної вершини i ε шукаються дуги, що з'єднують її з ще не поміченими вершинами-нащадками j, модифікована довжина яких i, j = 0.Знайдені таким способом вершини j позначаються числом m j = i, що вказує на «батька». У тому випадку, коли відразу кілька дуг, що мають i, j = 0, закінчуються в одній і тій же вершині j, значення для її позначки вибирається довільно.

Якщо серед знову помічених вершин виявиться вершина t, то, значить, знайдений шуканий шлях (i 0, i 1,..., i (p- 1), i p), де

на чому алгоритм завершується.

У разі, якщо вершини t немає серед відзначених, і одночасно не можна відзначити жодної нової вершини, то переходимо до етапу 2.

2 °. Перетворення значень модифікованих довжин дуг. Для кожної вершини i ε шукаються дуги, що з'єднують її з ще не поміченими вершинами j, і знаходяться

Далі модифіковані довжини всіх дуг, які з'єднують відмічені вершини з невідзначеними (i ε , J ), Зменшуються на величину

в результаті чого найкоротші невикористані дуги отримують нульову модифіковану довжину.

Потім відбувається перехід до наступної ітерації.

Шлях, побудований за методом Мінті, буде найкоротшим. Це можна довести за допомогою індукції по номеру ітерації, на якій була позначена вершина t, або, що те ж саме, за кількістю дуг, що складають найкоротший шлях. Якщо це сталося на першому кроці (що можливо тільки в разі, якщо початкова і кінцева вершини з'єднані дугою нульової довжини), то доводимо твердження очевидно. Припустимо,

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

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

Розглянемо викладений метод на конкретному прикладі, а саме: визначимо найкоротший шлях з вершини 1 у вершину 6 для неориентированной мережі, показаної на рис. 3.5.

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

Ітерація 1. Так як з вершини 1 не виходять дуги нульової довжини, подальша оцінка вершин неможлива. Переходимо до етапу 2. Суміжними з вершиною 1 є вершини 2 і 3. Для них визначаємо Δ = min { 1,2, 1,3} = 2 і віднімаємо її з 1,2, 1,3. Після перетворення маємо 1,2 = 0, 1,3 = 1.

Ітерація 2. Позначаємо вершину 2 m 2 = 1 (див. Рис. 3.6). Подальша позначка неможлива, тому переходимо до етапу 2. Суміжними з позначеними вершинами 1 і 2 є вершини 3,4,5. З чого визначаємо Δ = min { 1,3, 2,3, 2,4, 2,5} = 1 іпосле відповідного перетворення маємо

Ітерація 3. У вершину 3 ведуть дуги нульової довжини як з вершини 1, так і з вершини 2. Оскільки вибір тут може бути довільним, пометим вершину 3 числом m 3 = 1 (рис. 3.7). Подальша позначка неможлива, тому переходимо до етапу 2. Суміжними з раніше зазначеними вершинами є вершини 4,5. З чого визначаємо Δ = min { 2,4, 2,5, 3,4, 3,5} = 1 і після перетворення маємо 2,4 = 8, 2,5 = 0, 3,4 = 3, 3,5 = 5.

Ітерація 4. Позначаємо вершину 4 m 4 = 2 (див. Рис. 3. 8). Подальша позначка неможлива, тому переходимо до етапу 2. Суміжними з раніше позначеними вершинами є вершини 5,6. З чого визначаємо Δ = min { 2,5, 3,5, 4,5, 4,6} = 3 і після перетворення маємо 2,5 = 5, 3,5 = 0, 4,5 = 0, 4,6 = 5.

Ітерація 5. У вершину 5 ведуть дуги нульової довжини як з вершини 3, так і з вершини 4. Із тих же міркувань, що і на ітерації 3, позначимо вершину 5 числом m 5 = 3 (рис. 3.9). Подальша позначка неможлива, тому переходимо до етапу 2. суміжних з раніше зазначеними вершинами є вершина 6. З чого визначаємо Δ = min { 4,6, 5,6} = 2 і після перетворення маємо 4,6 = 3, 5,6 = 0.

Ітерація 6. У вершину 6 веде дуга нульової довжини з вершини 5, тому помічаємо її числом m 6 = 5 (див. Рис. 3.10). Оскільки ми відзначили кінцеву вершину маршруту, то алгоритм завершено і ми можемо, використовуючи значення відміток для батьків, виписати шуканий найкоротший шлях (1, 3, 5, 6).

Слід також додати, що якби наш вибір на ітераціях 3 і 5 був іншим, то ми отримали б альтернативний шлях тієї ж довжини (1, 2, 4, 5, 6), т. Е. Розглянута задача має кілька рішень.

КЛЮЧОВІ ПОНЯТТЯ

- Транспортна таблиця

- Метод північно-західного кута.

- Потенціал.

- Ланцюжок перетворення плану.

- Граф (орієнтований і неорієнтований).

- Ребра і вершини.

- Шлях і контур.

- Ланцюг і цикл.

- Можливості підключення.

- Дерево.

- Частковий граф.

- Транспортна мережа.

- Потік.

- Лінійна мережева завдання.

- Остов мережі.

- Опора потоку.

- невироджені потік.

- Завдання про найкоротший шлях.

- Алгоритм Мінті.

КОНТРОЛЬНІ ПИТАННЯ

3.1. Які специфічні властивості дозволяють виділити транспортні завдання в окремий клас з

безлічі завдань лінійного програмування?

3.2. Опишіть метод побудови допустимого плану транспортної задачі.

3.3. Скільки ненульових елементів повинен містити невироджених базисний план транспортної

завдання?

3.4. Сформулюйте критерій оптимальності для допустимого плану транспортної задачі.

3.5. Що покладено в основу методу потенціалів?

3.6. З чого випливає критерій оптимальності допустимого плану транспортної задачі?

3.7. Перерахуйте основні етапи методу потенціалів.

3.8. Які умови повинні бути дотримані при побудові ланцюжка перетворення плану в методі

потенціалів?

3.9. Що слід робити при виникненні ситуації вирожденність поточного плану в транспортній

задачі?

3.10. Наведіть формулювання лінійної мережевий завдання.

3.11. Покажіть, що транспортна задача в матричної постановці є окремим випадком

транспортної задачі в мережевий постановці.

3.12. Дайте визначення поняття «остов мережі». Який зв'язок існує між остовом мережі і

базисом транспортної задачі в мережевий постановці?

3.13. Який потік називають невиродженим?

3.14. Перерахуйте основні етапи методу потенціалів для транспортної задачі в мережевий

постановці.

3.15. Яким способом можна отримати допустимий потік в транспортній мережі?

3.16. В чому полягає завдання про найкоротшому шляху?

3.17. Перерахуйте основні етапи методу Мінті.

ГЛАВА 4. дискретного програмування

4.1. ТИПИ ЗАВДАНЬ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ

4.1.1. Основні поняття. Багато економічні завдання характеризуються тим, що обсяги керованих ресурсів (в силу тих чи інших об'єктивних властивостей) можуть приймати тільки цілі значення. Математична формалізація даних ситуацій призводить до моделей дискретного програмування. У загальному вигляді задача дискретного програмування може бути сформульована як задача знаходження максимуму (або мінімуму) цільової функції f (x 1, x 2, ..., x n) на множині D, який визначається системою обмежень

де Ω- деякий кінцеве, або рахункове *, безліч. Умова х εΩ. називається умовою дискретності. Особливе місце серед дискретних задач займає целочисленная завдання лінійного програмування в канонічної формі (ЦКЗЛП):

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

де Z + = {0; 1; 2; ...} - безліч невід'ємних цілих чисел.

Зауважимо, що в деяких ситуаціях вимога «целочисленности» може бути накладено лише на деякі змінні x j, що кардинально не змінює характеру завдання.

Принципова складність, що викликається наявністю умов целочисленности в системі обмежень оптимізаційної задачі, полягає в тому, що в значній кількості випадків неможливо замінити дискретну задачу її безперервним аналогом і, знайшовши відповідне рішення, округлити його компоненти до найближчих цілих значень. Приклад, показаний на рис. 4.1, демонструє, що при округленні оптимального плану х * звичайної задачі ЛП до цілих значень виходить точка ([х 1 *], [x 2 *]), яка не належить області допустимих планів задачі D. Домовимося цілу частину числа х j. позначати j], а дробову - як j}. Тоді х j = j] + j}. Окремо слід додати, що якщо навіть оптимальний план безперервної завдання, округлений до цілих значень компонент, виявиться припустимим, то цільова функція може вести себе так, що її значення буде на ньому істотно «гірше», ніж на оптимальному плані целочисленной завдання.

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

- завдання з неподільних;

- екстремальні комбінаторні задачі;

- завдання з розривними цільовими функціями;

- завдання на незв'язних і неопуклих областях і ін.

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

Класичним представником завдань даного класу стала так звана задача про ранці. Її фабула носить досить умовний характер і полягає в тому, що солдат (або турист), що збирається в похід, може нести вантаж вагою не більше W кг. Цей вантаж може складатися з набору предметів n типів, кожен предмет типу j важить w j кг і характеризується деякою «корисністю» u j, j ε 1: n. В рамках описаної ситуації цілком природним є питання: скільки предметів кожного виду потрібно покласти в ранець, щоб його сумарна корисність була максимальною? Якщо в якості компонент плану х j. прийняти кількість укладаються предметів типу j, то це завдання можна записати:

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

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

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

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

Планом завдання є маршрут комівояжера, і його можна задати за допомогою так званої матриці суміжності

елементи якої визначаються наступним чином:


1, якщо в маршруті передбачено переїзд з пункту i в j,

x i, j = 0, якщо в маршруті не передбачений переїзд з пункту i в j,


причому за умовою задачі x ii = 0, i ε1: n.

Допустимими планами служать зв'язкові маршрути, однозначно визначаються впорядкованим набором відвідуваних пунктів:

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

З урахуванням сказаного завдання комівояжера набирає вигляду целочисленной завдання лінійного програмування:

Умови (4.8) і (4.9) з змістовної точки зору означають, що в кожен пункт можна в'їхати і виїхати тільки один раз. Наведена форма запису задачі комівояжера (4.6) - (4.10) не є самою раціональною і призначена тільки для того, щоб підкреслити її спільність з іншими завданнями дискретного програмування. Існує і інша форма, яка більш яскраво відображає комбінаторний характер даної проблеми:

де D - безліч перестановок чисел від 1 до n.

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

4.1.4. Завдання з розривними цільовими функціями. Як уже згадувалося вище, багато економічні системи характеризуються наявністю так званих постійних витрат, які повинні бути зроблені незалежно від обсягу виробництва. Облік в моделях цих та подібних факторів призводить до появи в них цільових функцій, що не володіють властивістю безперервності. Як приклад може бути наведена транспортна задача з фіксованими доплатами. Вона відрізняється від транспортної задачі в матричної постановці, розглянутої в розділі 3, тим, що в ній витрати з перевезення вантажу з i -го пункту виробництва в j -й пункт споживання визначаються як

де з i, j - як і раніше витрати на перевезення одиниці вантажу;

d i, j - фіксована доплата за оренду транспортнихсредств.

При таких передумовах цільова функція сумарних витрат на перевезення

містить «стрибкоподібні» розриви, що істотно ускладнює її мінімізацію, тому стандартний метод рішення заснований на наступному перетворенні. Якщо ввести допоміжні змінні у i, j, такі, що

то цільова функція набуде вигляду

Дійсно, якщо у i, j = 0, то змінні х i, j = 0, а при у i, j = 1 нерівності (4.15) стають несуттєвими, оскільки вони і так справедливі для будь-якого опорного плану. Отже, завдання (4.16) еквівалентна вихідної задачі (4.13). Через свій характер обмежень (4.14) - (4.15) завдання (4.16) є завданням частково-цілочисельного програмування.

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

У наступних параграфах ми зупинимося на способах вирішення найбільш відомих і добре вивчених дискретних задач. Викладені нижче методи не мають універсального характеру, з кожним з них пов'язані певні обмеження і, відповідно, відповідь на питання про вибір того чи іншого з них залежить від конкретних особливостей розв'язуваної задачі. Більш того, мета викладу полягає в тому, щоб створити у читача загальні уявлення про основні ідеї та підходи, не заглиблюючись далеко в обчислювальні і математичні тонкощі, якими буквально рясніють алгоритми дискретного програмування. Зауважимо також, що досить ефективний і широко застосовуваний підхід до вирішення цілочислових задач заснований на зведенні їх до завдань транспортного типу. Це пояснюється тим, що якщо в умовах транспортної задачі значення запасів i) і потреб (b j) є цілочисельними, то цілочисельним буде і оптимальний план.

4.2. МЕТОД Гомора

4.2.1. Основні ідеї та принципи *. Даний метод, який також носить назву методу відтинають площин, призначений для вирішення ЦЗЛП в канонічній формі (4.2) - (4.3). Коротко представимо його основні ідеї.

* Вперше був запропонований Р.Гоморі в 1957-1958 рр.

Відправною точкою для вирішення завдання (4.2) - (4.3) є рішення її безперервного аналога, т. Е. КЗЛП без урахування умов целочисленности. Якщо отримується в результаті оптимальний план х * містить тільки цілі компоненти, то ми автоматично отримуємо і відповідне рішення ЦЗЛП. В іншому випадку до системи обмежень задачі повинно бути додано таке обмеження, для якого:

- знайдений нецілочисельне оптимальний план х * не задовольняє знову додає обмеження;

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

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

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

Тепер необхідно трохи більш докладно зупинитися на принципах формування відтинають обмежень. Скористаємося системою позначень, які застосовувались при викладі обчислювальних методів лінійного програмування. Нехай β (q) - оптимальний базис, отриманий на останній ітерації рішення нецілочисельне ЗЛП. Якщо позначити через α i, j і ά i коефіцієнти матриці завдання і вектора обмежень в поточному базисі (A(q)) і b(q)))

то i -е рівняння в системі обмежень задачі набуде вигляду:

Так як план x(q)) є базисним, то в кожному рівнянні всі коефіцієнти α i, j, що відповідають базисним стовпцях (j ε N(q))), дорівнюють нулю за винятком деякого α i, ji = 1 , на основі чого з (4.18) отримуємо:

Якщо уявити кожен коефіцієнт α i, j у вигляді суми цілої та дробової частин α i, j = [α i, j] + {α i, j}, то отримаємо

або

З (4.21) випливає, що якщо все х j, j ε1: n є цілими, то цілим буде і вираз

стоїть в лівій частині (4.21), і, отже, права частина даного рівняння:

також повинна бути цілою. Припустимо, що

тоді, в силу того, що 0 ≤ {ά i} <1, а {α i, j} ≥ 0, x j ≥ 0, повинна виконуватись нерівність

Однак нерівності (4.22) і (4.23) суперечать необхідної целочисленности правій частині (4.21) x j(q)). Отже, для цілочисельних рішень повинно виконуватися умова, протилежне нерівності (4.22), або, що те ж саме,

У той же час (4.24) не виконується для будь-якого нецілочисельне базисного плану х. Дійсно, небазисних компоненти плану дорівнюють нулю: х j = 0, j ε N(q)), і (4.24) набуває вигляду {ά i} ≤0 <=> {ά i} = 0, але це суперечить припущенню про нецілочисельне плану х, т. к. в базисному плані х i = ά i. Все сказане дозволяє стверджувати, що обмеження (4.24) задає правильний відсікання.

Таким чином, з точки зору організації техніки, обчислень для здійснення правильного відсікання ми повинні до системи обмежень нецілочисельне лінійної задачі, розв'язуваної на q -й ітерації, додати умова

де x n +1 ≥0 - фіктивна змінна, що додається для перетворення нерівності в суворе рівність. Їй відповідає нульовий коефіцієнт в цільової функції.

Даному перетворенню умов завдання буде відповідати перетворення симплекс-таблиці, показане на рис. 4.2. На ньому з міркувань забезпечення наочності використані позначення (4.17) і передбачається, що поточний базис β (q) складається з перших m стовпців.

Індекс i відповідає обраній для формування відсікання рядку симплекс-таблиці, що містить нецелочисленное значення b i(q)).

Як видно з рис. 4.2, технічно перетворення таблиці зводиться до дописування одного рядка і одного стовпця. При цьому легко переконатися, що модифіковані стовпці

спільно з доданим стовпцем

утворюють пов'язаний (двояко допустимий) базис для сформованої завдання, а (ά 1,..., ά m, - {ά i}) є ненульовими компонентами відповідного псевдоплан. Виходячи з цього, приходимо до того, що для рішення знову отриманої завдання може бути ефективно застосована процедура подвійного симплекс-методу (див. Параграф 1.7).

Оскільки в початковому псевдоплане є тільки одна негативна компонента (- {ά i}), то з базису повинен бути виведений відповідний їй вектор а n +1. Далі, дотримуючись рекомендацій алгоритму двоїстого симплекс-методу, знаходимо оптимальний план. Якщо він не є цілочисельним, то описані дії итеративно повторюються.

Якщо в ході рішення додаткова змінна х n +1 знову стає базисної, її значення виявляється байдужим для основних змінних. Тому рядок і стовпець, що відповідають їй, викреслюють. З геометричної точки зору це можна обгрунтувати так: якщо псевдоплан виявляється всередині півпростору х n +1 ≥0, то додаткове обмеження, яке визначається гиперплоскостью х n +1 = 0, стає несуттєвим і опускається.

4.2.2. Опис алгоритму. Наведемо узагальнену схему алгоритму Гомори. Структурно він ділиться на так звані великі ітерації. Кожна велика ітерація містить етапи:

1. Рішення «поточної» завдання методами лінійного програмування (малі ітерації). На першій ітерації як «поточної» завдання виступає нецілочисельне аналог вихідної ЦЗЛП.

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

3. Побудова для знайденої компоненти умови відсікання згідно з правилом (4.24), додавання сформованого обмеження до системи обмежень поточного завдання, т. Е. Формування нової поточної задачі. Перехід на початок наступної великої ітерації.

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

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

Як істотного зауваження з приводу методу Гоморі слід додати, що при його практичної реалізації на ЕОМ слід рахуватися з помилками округлення, т, к. В умовах машинної арифметики практично жоден план не буде цілочисельним. Крім того, що накопичуються похибки можуть внести обурення в алгоритм і «відвести» від оптимального цілочисельного плану.

4.2.3. Приклад рішення ЦЗЛП методом Гоморі. Розглянемо особливості застосування методу Гоморі на конкретному прикладі. Нехай дана задача з наступними умовами:

Ітерація 1. Використовуючи звичайний симплекс-алгоритм, вирішуємо безперервний аналог вихідної задачі, в якому ігноруються умови целочисленности (4.28). В якості вихідного базису можна взяти перший і другий стовпці. На його основі заповнюється таблиця T (1,1) (перший індекс в позначенні таблиці відповідає «великий» ітерації, а другий - «малої»).

Як видно з рядка оцінок, даний базис є оптимальним, однак відповідний йому план х = {11 / 5,17 / 5, 0) не є цілочисельним, тому вибираємо з таблиці T (1,1) рядок, що містить перший нецілі елемент, і згідно з формулою (4.25) будуємо відтинає обмеження:

після чого переходимо до наступної «великий» ітерації.

Ітерація 2. З урахуванням сформованого відсікаючого обмеження заповнюємо симплекс-таблицю T (2,1).

Відповідно до алгоритму двоїстого симплекс-методу переходимо до наступного базису N(2,2)) = {1, 2, 3}.

План, досягнутий в таблиці T (2,2), є не тільки оптимальним (b(2,2))> 0), а й повністю складається з цілочисельних компонент, т.е. рішення задачі знайдено: х * = (1, 2,1) і f (x) = 7.

4.3. МЕТОД ГІЛОК І МЕЖ

4.3.1. Загальна схема методу «гілок і меж». Іншим широко застосовуваним для вирішення задач дискретного програмування методом є метод гілок і меж. Вперше даний метод для вирішення ЦЗЛП запропонували в 1960 р Ленг іДойг, а його «друге народження» відбулося в 1963р. в зв'язку з виходом роботи Літтла, Мурті, Суїні і Керел, присвяченій вирішенню задачі про комівояжера [33].

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

Наприклад, потрібно:

де D - кінцеве безліч.

Алгоритм є ітеративним, і на кожній ітерації відбувається робота з деяким підмножиною множини D. Назвемо це підмножина поточним і будемо позначати його як D (q), де q - індекс ітерації. Перед початком першої ітерації як поточний безлічі вибирається все безліч D (D (1) = D), і для нього деяким способом обчислюється значення верхньої оцінки для цільової функції max f (x) ≤ ξ (D (1)). Стандартна ітерація алгоритму складається з наступних етапів:

1 °. Якщо можна вказати план x (q) ε D (q), для якого f (x (q)) ≤ξ (D (q)), то x (q) = х * - рішення задачі (4.29).

2 °. Якщо такий план не знайдений, то область визначення D (q) деяким чином розбивається на підмножини D 1 (q), D 2 (q),..., D lq (q), що задовольняють умовам:

Для кожного підмножини знаходяться оцінки зверху (верхня межа) для цільової функції ξ D 1 (q), ξ D 2 (q),..., ξ D l 1 (q), уточнюючі раніше отриману оцінку ξ D (q), то є ξ D i (q) ≤ ξ D (q), i ε1: l q. Можливо одне з двох:

2.1. Якщо існує такий план х (q), що

то цей план оптимальний.

2.2. Якщо такий план не знайдений, то вибирається одне з множин D i (q), i ε1: l q (як правило, має найбільшу оцінку

Всі наявні до поточного моменту кінцеві підмножини, т. Е. Ті підмножини, які ще не зазнали процесу дроблення, переобозначаются як D 1 (q +1), D 2 (q +1),..., D l (q +1 ) (q +1), після чого процес повторюється.

Схема дроблення безлічі D представлена на рис. 4.3 у вигляді графа. Існують і більш складні системи індексації підмножин, при яких не потрібно їх переобозначеніе на кожному кроці.

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

4.3.2. Рішення ЦЗЛП методом гілок і меж. Розглянемо застосування алгоритму методу гілок і меж для вирішення ЦЗЛП (4.2) - (4.3). Як уже згадувалося, через D (q) позначається підмножина безлічі допустимих планів задачі. Перед початком першої ітерації (q = 1) в якості поточного безлічі береться все безліч D (D (1) = D), після чого вирішується стандартна задача лінійного програмування (D (1), f). Неважко помітити, що вона є безперервним аналогом

вихідної задачі (4.2) - (4.3). Якщо знайдений оптимальний план (1) містить тільки цілочисельні компоненти, то він є і оптимальним планом для (4.2) - (4.3): (1) = x *. В іншому випадку значення f ( (1)) стає оцінкою (верхньою межею) значення цільової функції на множині D (1), і ми переходимо до виконання стандартної ітерації алгоритму. Наведемо що входять до неї етапи.

1) Вибирається деяка нецілочисельне компонента плану k (q). Оскільки в оптимальному плані вона повинна бути цілою, то можна накласти обмеження x k ≤ [ k (q)] і x k ≥ [ k (q)] +1. Таким чином, D (q) розбивається на підмножини

Графічна інтерпретація такого розбиття множини D (q) приведена на рис. 4.4.

2) Вирішуються завдання лінійного програмування

Відповідні максимальні значення цільової функції приймаються як її оцінки на цих множинах:

Якщо оптимальний план для однієї з вирішених завдань задовольняє умові

і містить тільки цілі компоненти, то, значить, знайдено рішення основного завдання (4.2) - (4.3). В іншому випадку серед усіх кінцевих підмножин, отриманих як на попередніх (D i (q)), так і на поточному (D 1 (q), D 2 (q)) етапі, вибирається область з найбільшою оцінкою ξ (D i (q)). Вона стає поточним даним підмножиною (D (q +1)). Далі проводиться перенумерація кінцевих множин і обчислювальний процес итеративно повторюється.

При вирішенні завдань (D 1 (q), f) і (D 2 (q), f) можна скористатися результатами рішення попередньої задачі (D (q), f). Розглянемо варіант організації обчислювального процесу на прикладі задачі ( 1 (q), f) (для ( 2 (q), f) він виглядає аналогічно з точністю до знаків нерівностей).

Припустимо, що на останньому етапі рішення задачі (D (q), f) був отриманий оптимальний базис β. Без обмеження спільності можна вважати, що він складається з перших m стовпців матриці завдання. Дане припущення робиться виключно для забезпечення наочності подальшого викладу і очевидно, що його виконання можна завжди домогтися за рахунок простої перенумерации векторів а j. За аналогією з попереднім параграфом введемо позначення для елементів матриці завдання (D (q), f) і її вектора обмежень щодо базису :

Тоді система обмежень задачі (D (q), f) може бути представлена як

а отримується на її основі система обмежень задачі ( 1 (q), f) як

або

де х n +1 ≥ 0 - фіктивна змінна, якій відповідає нульовий коефіцієнт в цільової функції, що додається для перетворення нерівності в суворе рівність.

Очевидно, що 1≤ k≤m, т. К. Небазисних компоненти оптимального плану (m + 1≤ j≤n) дорівнюють нулю, т. Е. Є свідомо цілочисельними. Тоді з урахуванням зроблених припущень про вид базису можна записати:

Як видно з (4.39), в k -му стовпці є всього два відмінних від нуля елементи: в k -й і (m +1) -й рядках. Якщо відняти з (m +1) -го рівняння k -e, то, з огляду на, що [ά k] - ά k = - {ά k}, отримаємо еквівалентну систему:

Проведені перетворення системи обмежень D 1 (q) дозволили явно виділити пов'язаний базис, утворений стовпцями з номерами 1, ..., m, n +1, і відповідний йому псевдоплан (ά 1,..., ά m, 0, ...., 0, - {ά k}), тобто для вирішення завдання (D 1 (q), f) може бути застосований алгоритм двоїстого симплекс-методу. Практично обчислювальний процес для даного етапу зводиться до перетворення до симплекс-таблиці, показаному на рис. 4.5.

Для випадку завдання (D 2 (q), f) перетворення симплекс-таблиці, що отримується на базі аналогічних міркувань, наведено на рис. 4.6.

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

Підкреслимо, що наведена реалізація методу гілок і меж є однією з багатьох. Крім неї, наприклад, дуже популярна версія методу розв'язання задачі комівояжера, в якій для розгалуження і побудови оцінок використовують специфічні властивості даної моделі. При бажанні про неї можна прочитати в [1, 14].

КЛЮЧОВІ ПОНЯТТЯ

- Завдання з неподільних.

- Екстремальні комбінаторні задачі.

- Завдання з розривними цільовими функціями.

- Правильне відсікання.

- Метод Гоморі.

- Методи гілок і меж.

КОНТРОЛЬНІ ПИТАННЯ

4.1. Які основні проблеми виникають при вирішенні дискретних задач?

4.2. Сформулюйте задачу про ранці.

4.3. Які економіко-математичні моделі можуть бути зведені до задачі про комівояжера?

4.4. Наведіть приклад моделей з розривними цільовими функціями.

4.5. Який принцип використовується для побудови правильного відсікання в методі Гоморі?

4.6. Перерахуйте основні етапи, що входять в «велику» ітерацію методу Гоморі.

4.7. Яку роль відіграє алгоритм двоїстого симплекс-методу при вирішенні целочисленной

лінійної задачі методом Гоморі?

4.8. Перерахуйте принципові ідеї, що лежать в основі методів гілок і меж.

4.9. Як проводиться побудова відсікання при вирішенні целочисленной лінійної задачі методом

гілок і меж?

4.10. Опишіть схему вирішення целочисленной завдання лінійного програмування методом гілок і

кордонів.

4.11. За рахунок яких перетворень вдається побудувати пов'язаний базис при додаванні

відсікаючого обмеження?

ГЛАВА 5. ДИНАМІЧНЕ програмування

5.1. ЗАГАЛЬНА СХЕМА МЕТОДІВ

ДИНАМІЧНОГО ПРОГРАММИРОВАНИЯ

5.1.1. Основні ідеї обчислювального методу динамічного програмування. Деякі завдання математичного програмування мають специфічні особливості, які дозволяють звести їх рішення до розгляду деякого безлічі більш простих «подзадач». В результаті питання про глобальну оптимізації деякої функції зводиться до поетапної оптимізації деяких проміжних цільових функцій. У динамічному програмуванні * розглядаються методи, що дозволяють шляхом поетапної (багатокрокової) оптимізації отримати загальний (результуючий) оптимум.

* Динамічне програмування як науковий напрям виникло і сформувалося в 1951-1953 рр. завдяки роботам Р. Беллмана і його співробітників.

Зазвичай методами динамічного програмування оптимізують роботу деяких керованих систем, ефект якої оцінюється адитивної, або мультиплікативної, цільовою функцією. Адитивної називається така функція кількох змінних f 1, x 2, ..., х n), значення якої обчислюється як сума деяких функцій f j, що залежать тільки від однієї змінної х j:

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

Оскільки логарифм функції типу (5.2) є адитивною функцією, достатньо обмежитися розглядом функцій виду (5.1).

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

при ограніченіяx

Відзначимо, що на відміну від завдань, розглянутих в попередніх розділах, про лінійність і диференційованої функції f j (x j) не робиться ніяких припущень, тому застосування класичних методів оптимізації (наприклад, методу Лагранжа) для вирішення задачі (5.3) - (5.4) або проблематично, або просто неможливо.

Змістовно завдання (5.3) - (5.4) може бути інтерпретована як проблема оптимального вкладення деяких ресурсів j, що приводяться до єдиної розмірності (наприклад, грошей) за допомогою коефіцієнтів a j, в різні активи (інвестиційні проекти, підприємства і т. П.), характеризуються функціями прибутку f j, т. е. такого розподілу обмеженого обсягу ресурсу (b), яке максимізує сумарний прибуток. Уявімо ситуацію, коли вона вирішується послідовно для кожного активу. Якщо на першому етапі прийнято рішення про вкладення в n -й актив x n одиниць, то на інших кроках ми зможемо розподілити ba n x n одиниць ресурсу. Абстрагуючись від міркувань, на основі яких приймалося рішення на першому кроці (припустимо, ми з яких-небудь причин не могли на нього вплинути), буде цілком природним вчинити так, щоб на що залишилися кроки розподіл поточного обсягу ресурсу відбулося оптимально, що рівнозначно вирішення завдання

при обмеженнях

Очевидно, що максимальне значення (5.5) залежить від розміру розподіляється залишку, і якщо залишкова кількість ресурсу позначити через ξ, то величину (5.5) можна виразити як функцію від ξ:

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

Якби була можливість впливати на x n, то ми для отримання максимального прибутку повинні були б максимізувати Ω n по змінної x n, т. Е. Знайти Λ n (b) і фактично вирішити задачу:

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

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

Якщо у виразі (5.9) замінити значення b на ξ, і п на k, то його можна розглядати як рекуррентную формулу, що дозволяє послідовно обчислювати оптимальні значення цільової функції при розподілі обсягу ресурсу ξ за k кроків:

Значення змінної x k, при якому досягається розглянутий максимум, позначимо k (ξ).

При k = 1 формула (5.11) приймає вид

т. е. допускає безпосереднє обчислення функцій Λ 1 (ξ) та 1 (ξ).

Скориставшись (5.12) як базою рекурсії, можна за допомогою (5.11) послідовно обчислити Λ k (ξ) та k (ξ), k ε2: n. Поклавши на останньому кроці ξ = b, в силу (5.9), знайдемо глобальний максимум функції (5.3), що дорівнює Λ n (b), і компоненту оптимального плану х n * = n (b). Отримана компонента дозволяє обчислити нерозподілений залишок на наступному кроці пріоптімальном плануванні: ξ = b - а n х * n, і, в свою чергу, знайти х * n- 1 = n- 1n- 1). В результаті подібних обчислень послідовно будуть знайдені всі компоненти оптимального плану.

Таким чином, динамічне програмування являє собою цілеспрямований перебір варіантів, який призводить до знаходження глобального максимуму. Рівняння (5.11), що виражає оптимальне рішення на k-му кроці через рішення, прийняті на попередніх кроках, називається основним рекурентним співвідношенням динамічного програмування. У той же час слід зауважити, що описана схема рішення при настільки загальній постановці завдання має суто теоретичне значення, так як замикає обчислювальний процес на побудову функцій Λ k (ξ) (k ε1: n), т. Е. Зводить вихідну задачу ( 5.3) - (5.4) до іншої вельми складної проблеми. Однак при певних умовах застосування рекурентних співвідношень може виявитися дуже плідним. В першу чергу це відноситься до завдань, які допускають табличное завдання функцій Λ k (ξ).

5.1.2. Завдання динамічного програмування, що допускають табличное завдання рекурентних співвідношень. Розглянемо процес вирішення модифікованого варіанту завдання (5.3) - (5.4), в якому змінні х j і параметри a j, b можуть приймати тільки цілочисельні значення, а обмеження (5.4) має вигляд рівності. В рамках запропонованої в п. 5.1.1 інтерпретації про вкладення коштів в активи ці причини цілком реалістичні і, більш того, можуть бути навіть посилені вимогою про кратності значень х j, наприклад, 1000 одиниць.

Щоб не ускладнювати позначення, домовимося операції цілочисельний арифметики записувати стандартним чином, вважаючи, що проміжні результати піддаються правильному округлення. Так, наприклад, будемо вважати, що 12/5 = 2.

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

Оскільки ξ≤ b, x 1 приймає кінцеве число цілих значень від 0 до b / a 1. Це дозволяє, наприклад, шляхом перебору значень f 1 (x 1) знайти функцію Λ 1 (ξ) і задати її в формі таблиці наступної структури (табл. 5.1).

Остання колонка табл. 5.1 ( 1 (ξ)) містить значення x 1, на якому досягається оптимальне рішення першого кроку. Його необхідно запам'ятовувати для того, щоб до останнього кроку мати значення всіх компонент оптимального плану.

На наступному (другому) етапі можна приступити до обчислення функції Λ 2 (ξ), значення якої для кожного окремо взятого ξε 0: b знаходяться як

де значення

беруться з табл. 5.1. В результаті обчислень формується таблиця значенійΛ 2 (ξ), що містить на одну колонку більше в порівнянні з табл. 5.1, так як тепер необхідно запам'ятати оптимальні рішення першого ( 1 (ξ)) і другого кроків ( 2 (ξ)).

На наступних кроках з номером k (k ε2: (nl)) здійснюються аналогічні дії, результатом яких стають таблиці значень Λ k (ξ), де ξ ε {0, 1, ..., b} (див. Табл. 5.2 ).

На останньому n -му кроці немає необхідності табулювати функцію Λ n (ξ), так як досить визначити лише Λ n (b) = f ( n (b)). Одночасно визначається і оптимальне значення n -й компоненти оптимального плану x * n = n (b). Далі, використовуючи таблицю, сформовану на попередньому кроці, визначаємо оптимальні значення інших змінних:

і т. д. або, в загальному вигляді,

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

Виграш, який дає застосування розглянутого алгоритму, може також бути оцінений за допомогою наступного простого прикладу. Порівняємо приблизно по числу операцій (що складаються, в основному, з обчислень цільової функції) описаний метод з прямим перебором допустимих планів задачі (5.3) - (5.4) при а 1 = a 2 = ... а n = 1.

Кількість допустимих планів такого завдання збігається з кількістю цілочисельних рішень рівняння

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

У разі застосування методу динамічного програмування для обчислення таблиці значень функції Λ k (ξ) при фіксованому ξ необхідно виконати (ξ + 1) операцій. Тому для заповнення однієї таблиці необхідно виконати

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

операцій, що при великих n і b істотно менше, ніж у першому випадку. Наприклад, якщо п = 6 і b = 30, то безпосередній перебір вимагатиме виконання 324 632 операцій, а метод динамічного програмування - тільки 2511.

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

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

- об'єктом дослідження повинна служити керована система (об'єкт) з заданими припустимими станами і допустимими управліннями;

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

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

- стан системи на кожному кроці має описуватися однаковим (за складом) набором параметрів;

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

Розглянемо питання застосування моделі динамічного програмування в узагальненому вигляді. Наприклад, потрібно управління деяким абстрактним об'єктом, який може перебувати в різних станах. Поточний стан об'єкта ототожнюється з деяким набором параметрів, що позначається надалі ξ і іменований вектором стану. Передбачається, що задано безліч Ξ всіх можливих станів. Для об'єкта визначено також безліч допустимих управлінь (керуючих впливів) X, яке, не применшуючи спільності, можна вважати числовим безліччю. Керуючі впливи можуть здійснюватися в дискретні моменти часу k (k ε1: n), причому управлінське рішення полягає у виборі одного з управлінь x k ε Х. Планом завдання або стратегією управління називається вектор х = 1, х 2,.., x n -1), компонентами якого служать управління, обрані на кожному кроці процесу. З огляду на передбачуваного відсутності післядії між кожними двома послідовними станами об'єкта ξ k і ξ k +1 існує відома функціональна залежність, що включає також вбрання управління: ξ k +1 = φ k (x k, ξ k), k ε1: п -1. Тим самим завдання початкового стану об'єкта ξ 1 εΞ і вибір плану х однозначно визначають траєкторію поведінки об'єкта, як це показано на рис. 5. 1.

Ефективність управління на кожному кроці k залежить від поточного стану ξ k, вибраного управління x k і кількісно оцінюється за допомогою функцій f k k, ξ k), що є складовою частиною адитивної цільової функції, що характеризує загальну ефективність управління об'єктом. (Відзначимо, що в визначення функції f k k, ξ k) включається область допустимих значень х k, і ця область, як правило, залежить від поточного стану ξ k.) Оптимальне керування, при заданому початковому стані ξ 1, зводиться до вибору такого оптимального плану х *, при якому досягається максимум суми значень f k на відповідній траєкторії.

Основний принцип динамічного програмування полягає в тому, що на кожному кроці слід прагнути не до ізольованої оптимізації функції f k k, ξ k), а вибирати

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

Позначимо Λ k (ξ) максимальне значення суми функцій f k протягом кроків від k до п (отримується при оптимальному управлінні на даному відрізку процесу), за умови, що об'єкт на початку кроку k знаходиться в стані ξ. Тоді функції Λ k (ξ) повинні задовольняти рекурентному співвідношенню:

де ξ k +1 = φ k (x k, ξ)

Співвідношення (5.14) називають основним рекурентним співвідношенням динамічного програмування. Воно реалізує базовий принцип динамічного програмування, відомий також як принцип оптимальності Беллмана:

- Оптимальна стратегія управління повинна задовольняти наступні умови: яким би не було

початковий стан ξ k на k-му кроці і вбрання на цьому кроці управління х k ,, наступні управління (управлінські рішення) повинні бути оптимальними по відношенню до стану ξ k +1 = φ k (x k, ξ k), отримує в результаті рішення, прийнятого на кроці k.

Основне співвідношення (5.14) дозволяє визначити функції Λ k (ξ) тільки в поєднанні з початковою умовою, яким в нашому випадку є рівність

Порівняння рекуррентной формули (5.14) з аналогічними співвідношеннями в розглянутих вище прикладах вказує на їх зовнішню відмінність. Ця різниця зумовлена ​​тим, що в задачі розподілу ресурсів фіксованим є кінцевий стан керованого процесу. Тому принцип Беллмана застосовується не до наступних, а до початкових етапах управління, і початкове співвідношення має вигляд

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

У той же час, кажучи про динамічному програмуванні як про метод вирішення оптимізаційних задач, необхідно відзначити і його слабкі сторони. Так, в запропонованій схемі рішення задачі (5.3) - (5.4) істотно використовується той факт, що система обмежень містить тільки одне нерівність, і, як наслідок, її стан задається одним числом - нерозподіленим ресурсом ξ. При наявності декількох обмежень стан керованого об'єкта на кожному кроці характеризується вже набором параметрів ξ 1, ξ 2,..., ξ m, і табулювати значення функцій Λ k1, ξ 2,..., ξ m) необхідно для багаторазово більшої кількості точок. Остання обставина робить застосування методу динамічного програмування явно нераціональним або навіть просто неможливим. Дану проблему його основоположник Р. Беллмана ефектно назвав «прокляттям багатовимірності». В даний час розроблені певні шляхи подолання зазначених труднощів. Детальну інформацію про них можна знайти в спеціальній літературі [4, 5].

5.2. Приклади ЗАВДАНЬ ДИНАМІЧНОГО ПРОГРАММИРОВАНИЯ

5.2.1. Завдання про наймання працівників. Приступимо до розгляду питань застосування методів динамічного програмування в конкретних економіко-математичних моделях.Отдельно відзначимо, що дані обчислювальні схеми, взагалі кажучи, досить часто використовуються для вирішення деяких завдань, які вже були порушені в інших розділах. Це, перш за все, завдання про ранці, завдання про найкоротшому шляху, завдання транспортного типу.

Одним з найважливіших класів задач, для яких застосування динамічного програмування виявляється плідним, є завдання послідовного прийняття рішень. Їх особливістю є те, що шукані змінні х 1, x 2,.., х k,... повинні визначатися в суворій часовій послідовності і не повинні мінятися місцями. Як приклад опишемо так звану задачу про наймання працівників (завдання про використання робочої сили).

У цьому завданню розглядається деякий економічний об'єкт (фірма, магазин, завод і т. П.), Що функціонує протягом кінцевого числа періодів, що позначаються номерами k (k ε l: n). Кожен період k характеризується нормативної потребою в певній кількості однотипних працівників m k. Той же обсяг робіт може бути виконаний іншою кількістю співробітників ξ k, що, однак, вимагають додаткових витрат або за рахунок нераціонального використання робочої сили, або через підвищення оплати за інтенсивну працю. Розміри цих додаткових витрат описуються функціями g kk - m k), де (ξ k - m k) - відхилення фактичної чисельності працюючих ξ k, від планово необхідної m k, причому g k (0) = 0. Управлінське рішення на кроці k полягає у виборі величини зміни числа співробітників х k ε Z, що однозначно визначає кількість працюючих протягом наступного періоду: ξ k +1 = ξ k + х k. Витрати по зміні кількості працівників (найму і звільнення) при переході від періоду k до періоду (k +1) задаються функцією u k k), де також u k (0) = 0. Тоді сумарні витрати, викликані прийнятим на кроці k рішенням, характеризуються значенням функції

План завдання (стратегія управління) х = (x 1,..., х n -1, 0) полягає у виборі поетапних змін кількості працівників, а його сумарна ефективність описується адитивною функцією

На основі сформульованої моделі ставиться завдання мінімізації цільової функції (витрат) (5.15). Додамо, що постановка завдань не буде коректною, якщо не поставити початкова умова на кількість працівників. Існують дві модифікації даного завдання, які визначаються типом початкової умови: в першому випадку задається початкове значення на першому етапі m 1, а в другому - необхідна кількість в n-му періоді m n.

Розглянемо перший випадок. Оскільки фіксованим є початкова кількість працівників і, навпаки, нічого не відомо про те, яким ця кількість повинна бути на останньому етапі, то розгляд процесу прийняття рішень зручніше почати з кінця. Оптимальне керування на останньому етапі п за умовою одно х * n = n (ξ) = 0, тому мінімальні витрати повністю визначаються кількістю працівників в останньому періоді:

Для інших попередніх кроків основне рекурентне співвідношення набуде вигляду

де Λ k (ξ) - мінімальні витрати з k -го по п -й періоди, в припущенні, що кількість працівників в k -й період одно ξ. точки л (ξ), в яких досягаються мінімуми (5.17), визначають умовне оптимальне керування на кожному кроці.

послідовно визначаючи л (ξ) і дійшовши до етапу 1, ми зможемо знайти безумовне оптимальне керування x 1 * з того умови, що на початок першого періоду чисельність працівників повинна составлятьξ 1 * = m 1, a саме

Інші компоненти оптимального плану х k * і стану ξ k *, що утворюють оптимальну траєкторію, послідовно знаходяться по рекурентним формулами

після чого не складає труднощів обчислити оптимальне значення цільової функції (5.15).

Зупинимося тепер на другому випадку, коли задано фінальне стан керованого об'єкта, т. Е. Бажане кількість працівників на останньому періодеξ n * = m n. Очевидно, що в даній ситуації слід вчинити з точністю «до навпаки» і розглянути процес прийняття рішень від початку до кінця. Найкраще умовне управління на першому кроці 1 (ξ) буде знайдено в процесі обчислення функції

де состояніеξ ≥0 є можливою кількістю працівників на початковому етапі. Відповідно, основне рекурентне співвідношення висловить мінімальні витрати аж до k -го періоду через такі для попередніх періодів (з першого по (k -1) -й) за умови, що чисельність працівників в k -й період буде дорівнює ξ:

Попутно будуть знайдені функції k (ξ), k ε2: n, що визначають умовні оптимальні керування. На останньому періоді, в силу початкової умови, ξ n * = m n. Звідси шляхом послідовного вирішення рекурентних рівнянь можуть бути знайдені оптимальні чисельності работніковξ * k і безумовні оптимальні управління:

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

Узагальнюючи викладені схеми рішення, можна прийти до висновку:

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

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

Для функціонування деякого підприємства протягом чотирьох місяців (нумерованих від 1 до 4) за нормами потрібні наступні кількості працівників однакової кваліфікації:

причому перед початком першого місяця (в нульовому місяці) фактично імеетсяξ 0 = 2 співробітників. Адміністрація планує в кінці кожного місяця k (крім останнього) коригувати кількість працюючих на величину x k, k ε0: 4, х 4 = 0. На прийом одного співробітника необхідно затратити 9 у.о., а на звільнення - 6 у. е. Передбачається, що витрати на утримання надлишкового працівника становлять 8 у. е., а в разі нестачі персоналу доводиться нести витрати в розмірі 12 у. е. за кожне вакантне місце.

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

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

Оцінки ефективності управління на кожному кроці мають вигляд:

Оскільки в поставленому завданню задано початкове умова ξ * 0 = 2, її рішення починається з кінця, і, отже, будуть застосовуватися рекурентні співвідношення (5.17). З технічної точки зору буде зручно на кожному кроці складати дві таблиці значень: функції витрат, одержуваних починаючи з поточного кроку в залежності від поточного стану і управління,

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

Для скорочення обсягу табуліруемих значень можна скористатися властивістю опуклості функції Ω k (x k, ξ), що випливають з опуклості f і g. З опуклості функції Ω k (x k, ξ) слід, що заповнювати таблицю її значень необхідно лише до тих пір, поки вони зменшуються, т. Е. Можна зупинитися, як тільки чергове значення виявляється більше попереднього. Відзначимо, що подібні прийоми дуже широко використовуються в динамічному програмуванні. Зрозуміло, иллюстрируемое методи не розраховані на ручний рахунок, оскільки пов'язані з дуже великим обсягом рутинних обчислень. Радікраткості нижче наведені лише фрагменти таблиць, що містять питання, що цікавлять нас значення.

Ітерація 1. Вважаємо k = 4. На даному етапі функція стану Λ 4 (ξ) може бути знайдена безпосередньо, якщо врахувати, що x 4 * = 0 і u (0) = 0:

Таблиця значень даної функції і умовні оптимальні керування мають вигляд

Ітерація 2. Вважаємо k = 3. Попередньо заповнимо таблицю значень функції Ω 3 (x 3, ξ) для досить великого безлічі аргументів згідно з формулою:

Вибираючи мінімальні по х 3 значення Ω 3 (x 3, ξ) складемо таблицю Λ 3 (ξ) та відповідні значення умовних оптимальних управлінь 3 (ξ):

Ітерація 3. Вважаємо k = 2. Так само, як на попередній ітерації, заповнимо таблицю значень функції Ω 2 (x 2, ξ) згідно з формулою:

Вибираючи мінімальні по х 2 значення Ω 2 (x 2, ξ), складемо таблицю Λ 1 (ξ) та відповідні значення умовних оптимальних управлінь 2 (ξ):

Ітерація 4. Вважаємо k = 1. Аналогічно до попереднього, заповнимо таблицю значень функцііΩ 1 (x 1, ξ) згідно з формулою:

Вибираючи мінімальні по х 1, значеніяΩ 1 (x 1, ξ), складемо таблицю Λ 1 (ξ) та відповідні значення умовних оптимальних управлінь 1 (ξ):

Ітерація 5. На останній ітерації, в зв'язку з наявністю початкового умови ξ * 0 = 2, досить обчислити

і знайти 0 (2) як точку мінімуму Ω 0 (x 0, 2). Прості обчислення показують, що мінімум

досягається при x 0 (2) = 1.

Отже, x * 0 = 0 (2) = 1, після чого зворотним ходом послідовно обчислюються оптимальні управління і оптимальні стану (оптимальна траєкторія):

Отже, результати розрахунку свідчать, що при заданій системі розцінок в третьому місяці вигідніше не брати 5-го працівника, а компенсувати його відсутність додатковими виплатами за понаднормову роботу наявним співробітникам.

5.2.2. Динамічні задачі управління запасами. Однією з найбільш відомих сфер додатка методів динамічного програмування є така область математичної економіки, як теорія управління запасами. Її предметом є розробка і дослідження математичних моделей систем, що займають проміжне положення між джерелами (виробниками) тих чи інших ресурсів та їх споживачами. При математичної формалізації процесів управління запасами дуже часто доводиться використовувати стрибкоподібні, недиференційованої і кусочно-безперервні функції. Як правило, це обумовлюється необхідністю обліку ефектів концентрації, фіксованих витрат і плати за замовлення. У зв'язку з цим одержувані завдання практично не піддаються аналітичному рішенням класичними методами, проте можуть бути успішно вирішені за допомогою апарату динамічного програмування. Розглянемо досить типову задачу, що виникає в процесі планування діяльності системи постачання, - так звану динамічну задачу управління запасами.

Нехай є деяка система постачання (склад, оптова база і т. П.), Яка планує свою роботу на п періодів. Її діяльність зводиться до забезпечення попиту кінцевих споживачів на деякий продукт, для чого вона здійснює замовлення виробнику даного продукту. Попит клієнтів (кінцевих споживачів) в даній моделі розглядається як деяка інтегрована величина, приймаюча задані значення для кожного з періодів, і він повинен завжди задовольнятися (т. Е. Не допускаються заборгованості та відмови). Також передбачається, що замовлення, що посилається виробнику, задовольняється їм повністю, і часом між замовленням і його виконанням можна знехтувати (т. Е. Розглядається система з миттєвим виконанням замовлення). Введемо позначення:

y k - залишок запасу після (k -1) -го періоду;

d k - заздалегідь відомий сумарний попит в k -му періоді;

х k - замовлення (поставка від виробника) в k -му періоді;

з k k)-витрати на виконання замовлення обсягу x k в k -му періоді;

s kk) - витрати на зберігання запасу обсягу ξ k в k -му періоді.

Після отримання поставки і задоволення попиту обсяг товару, що підлягає зберіганню в період k, складе ξ k = y k + х k - d k. З огляду на зміст параметра y k, можна записати співвідношення:

Витрати на отримання і зберігання товару в період k описуються функцією

Планом завдання можна вважати вектор х = 1, х 2,..., х n), компонентами якого є послідовні замовлення протягом аналізованого проміжку часу. Співвідношення між запасами (5.24) в поєднанні з деякими початковою умовою пов'язує стану системи з обраним планом і дозволяє висловити сумарні витрати за все п періодів функціонування керованої системи постачання в формі адитивної цільової функції:

Природною в рамках сформульованої моделі представляється задача знаходження послідовності оптимальних управлінь (замовлень) x * k і пов'язаних з ними оптимальних станів (запасів) ξ * k, які звертають в мінімум (5.25). В якості початкового умови використовуємо вимога про збереження після завершення управління заданої кількості товару y n +1, а саме

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

оскільки

Система зворотних співвідношень (5.27) - (5.28) дозволяє визначити послідовність функцій стану Λ 1 (ξ), Λ 2 (ξ), ..., Λ n (ξ) та умовних оптимальних управлінь 1 (ξ), 2 (ξ), ..., n (ξ). На n-му кроці за допомогою початкового умови (5.26) можна визначити х * n = n (y n +1).Решта значення оптимальних управлінь x * k визначаються за формулою:

Особливий інтерес представляє окремий випадок завдання (5.24) - (5.25), при якому передбачається, що функції витрат на поповнення запасу з k k) є увігнутими по х k, а функції витрат на зберігання s kk) є лінійними щодо обсягу збереженої запасу, т. е. s kk) = s k ξ k. Паралельно зауважимо, що обидві передумови є досить реалістичними.

Позначимо функцію витрат протягом k -ro періоду через

або, що те ж саме,

В силу зроблених припущень всі функції витрат f k (x k, y k +1) є увігнутими (як суми увігнутою і лінійної функцій). Дана властивість значно спрощує процес вирішення, так як для пошуку мінімуму увігнутих функцій f k (x k, y k +1) досить розглянути тільки дві крайні точки безлічі, на якому відшукується мінімум. З урахуванням введеного позначення завдання (5.24) - (5.25) можна записати у вигляді:

за умов

Розглянемо процедуру вирішення (5.32) - (5.33). Так як шукається мінімум суми увігнутих функцій f k (x k, y k +1), то рішення буде досягатися на одній з крайніх точок множини, що визначається умовами (5.33). Загальна кількість змінних x k і y k в системі (5.33) дорівнює 2п. Однак, з огляду на те, що в ній тільки п рівнянь, в оптимальному плані буде не більше п ненульових компонент, причому для кожного періоду k значення x k і y k не можуть дорівнювати нулю одночасно (в силу необходімостіудовлетворенія попиту або за рахунок замовлення, або за рахунок запасу). Формально це твердження можна представити у вигляді умови доповнює нежорсткості:

де

З точки зору змістовної інтерпретації умови (5.34) - (5.35) означають, що при оптимальному управлінні замовлення постачальнику на нову партію не повинен чинити, якщо на початку періоду є ненульовий запас, або розмір замовлення повинен дорівнювати величині попиту за ціле число періодів. Звідси випливає, що запас на кінець останнього періоду повинен дорівнювати нулю: у * n +1 = 0. Останнє дозволяє вирішувати задачу в прямому напрямку, застосовуючи рекурентне співвідношення

де ξ = у k +1 = х k + у k - d k.

З огляду на (5.34) - (5.35) і увігнутість f k (x k, ξ), робимо висновок, що мінімум (5.36) досягається в одній з крайніх точок x k = 0 або x k = ξ + d k тому

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

на Oсновой чого в загальному вигляді отримуємо модифіковану форму для рекурентного співвідношення

При подальших конкретних припущеннях про вигляді функцій f k (x k, у k +1) можна отримати ще більш компактні форми для рекурентних співвідношень. Однак ці питання носять досить приватний характер, і ми їх розглядати не будемо. Відзначимо лише, що наведені в даному пункті перетворення непогано ілюструють загальні підходи, що застосовуються в динамічному програмуванні, а також ті властивості задач, які відкривають можливості, для ефективного і плідного використання відповідних методів.

КЛЮЧОВІ ПОНЯТТЯ

- Аддитивна і мультиплікативна функція.

- рекурентні співвідношення.

- Принцип оптимальності Беллмана.

- Відсутність післядії.

- Завдання про наймання працівників.

- Динамічна задача управління запасами.

КОНТРОЛЬНІ ПИТАННЯ

5.1. Для вирішення яких завдань призначений метод динамічного програмування?

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

5.3. Яким умовам повинна задовольняти завдання, щоб для її вирішення міг бути застосований

алгоритм динамічного програмування?

5.4. Які труднощі пов'язані з обчислювальними алгоритмами динамічного програмування?

5.5. Що визначає напрямок вирішення завдання в алгоритмах динамічного програмування?

5.6. Сформулюйте математичну модель для задачі про наймання працівників.

5.7. Випишіть основне рекурентне співвідношення, яке використовується під час вирішення завдання про наймання

працівників.

5.8. З якими особливостями завдань управління запасами пов'язане застосування при їх вирішенні

апарату динамічного програмування?

5.9. Який вигляд має цільова функція в динамічної задачеуправленія запасами?

5.10. Випишіть основне рекурентне співвідношення, яке використовується при вирішенні динамічної

завдання управління запасами.

ГЛАВА 6. КОРОТКИЙ ОГЛЯД

ІНШИХ РОЗДІЛІВ ДОСЛІДЖЕННЯ ОПЕРАЦІЙ

Дана глава займає особливе положення серед інших. Її мета - представити читачеві гранично коротку характеристику так званих додаткових розділів дослідження операцій. Пояснимо кілька сенс слова «додатковий». Справа в тому, що існують різні підходи до класифікації цих наукових галузей: іноді їх вважають складовими частинами дослідження операцій, а іноді розглядають як самостійні дисципліни. Обидві точки зору мають право на існування, але навіть якщо дотримуватися другий, розділи, про які піде мова в цій главі, можна трактувати як суміжні галузі знання, апарат яких застосуємо для вирішення завдань дослідження операцій. Ще раз підкреслимо, що кожен параграф цієї глави лише оглядово зачіпає загальні питання відповідних тем, а повні навчальні курси по ним істотно перевищують обсяг даної книги.

6.1. ТЕОРІЯ ІГОР

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

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

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

Теорія ігор бере початок від робіт Е. Бореля (1921 г.), а важливим етапом в її становленні як самостійного наукового напрямку стала монографія Дж. Неймана, що вийшла в 1944 р [25].

6.1.2. Термінологія і класифікація ігор. Особливістю теорії ігор як наукової дисципліни стала вживана в ній специфічну термінологію. Термін «гра» застосовується для позначення сукупності правил і угод, якими керуються суб'єкти, поведінка яких ми вивчаємо. Кожен такий суб'єкт k, де k εl: K, або гравець, характеризується наявністю індивідуальної системи цільових установок і стратегій s 1 k, s 2 k,..., s mk k, т. Е. Можливих варіантів дій в грі.

Досить поширений спосіб математичного опису гри заснований на завданні функцій f k (s 1 i 1, s 2 i 2,..., s k ik,..., s K ik), кожна з яких визначає результат (платіж, виграш) , одержуваний k -м гравцем в залежності від набору стратегій S = (s 1 i 1, s 2 i 2,..., s k ik,..., s K ik), застосованого усіма учасниками гри. Функції f k, k εl: K також називають функціями виграшу, або платіжними функціями. У тому випадку, якщо для будь-яких S

гра називається грою з нульовою сумою. Гру з двома учасниками і нульовою сумою називають антагоністичної. Антагоністичні гри, т. Е. Гри, в яких виграш одного учасника дорівнює програшу іншого, в силу відносно простий постановки задачі є найбільш вивченим розділом теорії ігор. Однак зміст теорії ігор, безумовно, не вичерпується ними. У класифікації ігрових моделей виділяють гри з кінцевими і нескінченними наборами стратегій у гравців, виділяють гри по можливим кількостей ходів у учасників. Також гри ділять на некооперативного і кооперативні, т. Е. Ті, в яких функції виграшу учасників залежать від утворених ними коаліцій. Крім цього гри можна розрізняти за обсягом інформації, наявної у гравців щодо минулих ходів. У зв'язку з цим вони поділяються на ігри з повною і неповною інформацією.Зацікавлений читач може звернутися до таких джерел, як [17, 23].

6.1.3. Матричні гри і поняття сідловий точки. Розглянемо більш докладно антагоністичні гри і їх основні властивості. Зручним способом завдання гри двох учасників з нульовою сумою є платіжна матриця. Звідси, до речі, відбувається ще одне їх назва - матричні гри. Кожен елемент платіжної матриці а ij містить числове значення виграшу гравця I (програшу гравця II), якщо перший застосовує стратегію i, а другий - стратегію j. Терміни виграш і програш слід розуміти в широкому сенсі, т. К. Вони можуть приймати негативні значення і з життєвої точки зору означати протилежне. Нетривіальність завдання перш за все полягає в тому, що кожен з гравців робить свій вибір, не знаючи про вибір іншого, що істотно ускладнює процес оптимізації обраній стратегії.

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

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

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

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

Як уже зазначалося, найважливішим в теорії ігор є питання про оптимальність рішення (вибору стратегії) для кожного з гравців. Проаналізуємо з цієї точки зору деяку матричну гру, для якої задана платіжна матриця А = ║ a ijm x n. При виборі гравцем I стратегії i його гарантований дохід незалежно від дій гравця II складе min a i, j. Оскільки він може вибирати i самостійно, то доцільно цей вибір зробити таким, щоб він при будь-якої стратегії супротивника максимізувати величину гарантованого доходу, т. Е. Забезпечував отримання max (min a i, j). Такий принцип вибору стратегії отримав назву «принцип максимина». З іншого боку, аналогічні міркування можуть бути проведені з приводу дій другого гравця. Його найбільший програш при виборі стратегії j складе max a i, j, і, отже, йому слід вибирати стратегію так, щоб мінімізувати величину програшу при будь-яких діях суперника, т. Е. Забезпечити min (max a i, j). в цьому суть принципу минимакса.

Можна довести справедливість наступного співвідношення:

Однак очевидний інтерес представляє ситуація, при якій значення виграшу (платежу), одержуваного гравцем I при виборі їм максиминной стратегії, так само платежу (програшу) II-го гравця при мінімаксної стратегії

У цьому випадку говорять, що гра має сідлової крапку. Збіг значень гарантованих виграшів гравців при максиминной і мінімаксної стратегії означає можливість досягнення в грі деякого оптимального (стабільного, рівноважного) стану, від якого невигідно відхилятися жодному з учасників. Поняття «оптимальність» тут означає, що жоден розумний (обережний) гравець не прагне змінити свою стратегію, так як його супротивник, в принципі, зможе вибрати таку стратегію, яка дасть найгірший для першого результат. Стратегії i * і j *, що утворюють седловую точку, називаються оптимальними, а значення v = a i * j * називають ціною гри. Трійка (i *, j *, v) вважається рішенням матричної гри з сідловою.

Неважко помітити, що не всяка гра має сідлової точкою. Зокрема, як гра (6.1), так і гра (6.2) сідловий точки не мають. Прикладом гри, що має седловую точку, є гра з платіжною матрицею (6.5).

У даній матриці мінімальні (гарантовані) виграші першого гравця по рядках рівні 1, 5 і (-3). Отже, його максимина вибору відповідатиме стратегія 2, що гарантує виграш 5. Для другого гравця максимальні програші по стовпцях матриці складуть 8, 10, 5, 17, тому має сенс зупинитися на стратегії 3, при якій він програє тільки 5. Таким чином, друга стратегія першого гравця і третя стратегія другого утворюють седловую точку зі значенням 5, т. е. для гри з матрицею (6.5) має рішення (2; 3; 5).

6.1.4. Змішані стратегії. Подальший розвиток теорії матричних ігор грунтується на дослідженні гри як деякого повторюваного процесу. Дійсно, навряд чи можна дати змістовні рекомендації з такого питання, як слід чинити учасникам одноразово проводиться гри, яка не має сідлової точки. У разі ж її багаторазових повторів природною і плідної представляється ідея рандомізації вибору стратегій гравцями, т. Е. Внесення до процесу вибору елемента випадковості. Дійсно, систематичне відхилення, наприклад, гравця I від максиминной стратегії з метою збільшення виграшу може бути зафіксовано другим гравцем і покарано. У той же час абсолютно хаотичний вибір стратегій не принесе в середньому найкращого результату.

- Змішаної стратегією гравця I в грі з матрицею A = ║ a i, jm x n називається упорядкований набір дійсних чисел x i, i ε1: m, що задовольняють умовам

Числа інтерпретуються як ймовірності застосування гравцем I стратегій 1, 2, ..., m, які, на відміну від змішаних, також називають чистими стратегіями.

Аналогічно вводиться поняття змішаних стратегій гравця II, які визначаються як набір чисел у j, j ε1: n, що задовольняють умовам

Тоді, якщо гравець I застосовує змішану стратегію х = 1, х 2,..., х m) а гравець II змішану стратегію y = (y 1, y 2,..., y n), то математичне очікування виграшу гравця I (програшу гравця II) визначається співвідношенням

*

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

Надалі через Х будемо позначати безліч допустимих змішаних стратегій гравця I, яке визначається умовою 6.7, а через Y - визначається умовою 6.8 безліч допустимих змішаних стратегій гравця II.

До пошуку рішення гри в змішаних стратегіях, так само як і в п. 6.1.3, можуть бути застосовані критерії максимина-минимакса. Відповідно до них гравець I буде вибирати свою змішану стратегію х = 1, х 2,..., х m) таким чином, щоб максимізувати найменший середній виграш:

який, як можна довести, дорівнює

а гравець II - свою змішану стратегію так, щоб мінімізувати найбільший середній програш:

також рівний

За аналогією з (6.3) для будь-яких х ε Х і y ε Y справедливо нерівність

- Стратегії х * ε Х і y * ε Y називають оптимальними змішаними стратегіями, якщо для будь-яких х ε Х і y ε Y справедливо рівність

v = F (x *, у *) називають ціною гри, і якщо х * й у * існують, то кажуть, що гра має рішення в змішаних стратегіях *, у *, v).

Справедлива фундаментальна теорема Дж. Неймана, яку ми наведемо без доведення.

Теорема 6.1 (основна теорема матричних ігор). Будь-яка матрична гра має рішення в змішаних стратегіях.

Значення і нетривіальність теореми (6.1) обумовлені перш за все тим, що, як було показано в п. 6.1.3, в загальному випадку матричні гри в чистих стратегіях рішення не мають.

6.1.5. Рішення матричних ігор методами лінійного програмування. Розглянемо деякі способи вирішення матричних ігор. Завдання, яке вирішується першим гравцем, (6.10) була сформульована як максимізація найменшою з сум

але якщо визначити деякий х m +1, для якого виконується

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

при обмеженнях

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

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

Досить легко перевірити, що завдання (6.16) - (6.17) і (6.18) - (6.19) утворюють подвійну пару. Тут в певному сенсі ми повернулися до проблем, вже розглядалися у другому розділі, а саме до взаємозв'язку між наявністю рішення у деякій оптимізаційної задачі і існуванням сідлової точки у відповідній функції Лагранжа. В даному випадку аналогічна зв'язок простежується між сідловою гри і рішенням пари задач оптимізації.

6.1.6. Графічні методи вирішення ігор. Слід зазначити, що застосування для вирішення завдань (6.16) - (6.17), (6.18) - (6.19) стандартних алгоритмів лінійного програмування далеко не завжди є раціональним. Крім цього існують інші методи, які ґрунтуються на використанні специфіки даних завдань. У цьому пункті ми зупинимося на дуже простому класичному способі пошуку оптимальних змішаних стратегій в матричних іграх, де один з учасників має тільки дві стратегії (це так звані 2 х п і т х 2 гри).

Для визначеності покладемо, що гравець I має можливість вибирати між двома стратегіями з вірогідністю x 1 і x 2 = 1 x 1, тоді його очікувані виграші, що відповідають чистим стратегіям гравця II, візьмуть вид

або

т. е. очікувані виграші можуть бути представлені у вигляді графіків лінійних функцій, що залежать від змінної x 1 ε [0; 1] (рис. 6.1, де передбачається, що гравець II має три стратегії).

Лінії, зображені на рис. 6.1, задають залежності середнього виграшу гравця I від значення ймовірності x 1, з якої він вибирає свою першу стратегію, для випадків, коли його супротивник вибирає першу, другу або третю чисту стратегію. Тоді значенням мінімального гарантованого доходу першого гравця відповідає нижня огинає всіх трьох прямих. Відповідно до принципу максимина, оптимального вибору гравця I буде відповідати найвища точка, що лежить на даній обвідної, зазначена на малюнку як (x 1 *, z *). Знаючи її, можна визначити оптимальну змішану стратегію першого гравця х * = (x 1 *, 1 x 2 *) і ціну гри, рівну z *.

Виходячи з відносини подвійності, яким, як було встановлено в п. 6.1.5, пов'язані завдання обох гравців, по оптимальної стратегії першого учасника х * однозначно определяетсяоптімальная стратегія його супротивника у *. Оскільки у * є результатом виконання завдання лінійного програмування, то він має всі властивості допустимого базисного плану, т. Е. У разі 2 х п гри має не більше ніж дві ненульових компоненти і не менше ніж (п -2) нульових. Номери ненульових елементів у * визначаються номерами ліній, перетин яких визначило оптимальну стратегію першого гравця. Дійсно, гравець II знає оптимальну стратегію суперника, і застосування їм стратегій, відповідних прямим, що проходить вище точки (х1 *, z *), тільки збільшило б його програш.

У розглянутому прикладі це лінії z 2 і z 3, і, отже, в своїй оптимальній стратегії другий гравець повинен з ненульовими можливостями застосовувати другу і третю чисті стратегії 2> 0, у 3> 0). На основі цього, а також з огляду на умова нормування

можемо висловити: y 3 = l - y 2 тоді оптимальне значення y 2 * може бути знайдено з умови

або

В результаті отримуємо оптимальну стратегію гравця II у * = (0, у 2 *, у 3 *).

Очевидно, що пошук рішення в грі т х 2 осуществляетсяаналогічним чином з точністю до навпаки: будуються графіки очікуваного програшу гравця II, знаходиться їх верхня огинає і т. Д.

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

6.2. ТЕОРІЯ ОПТИМАЛЬНОГО УПРАВЛІННЯ

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

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

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

* Функціоналом називається числова функція, аргументами якої, як правило, служать інші функції.

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

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

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

- завдання управління з зосередженими параметрами;

- завдання управління об'єктами з розподіленими параметрами.

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

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

За характером зміни керованої системи в часі розрізняють завдання:

- з дискретно мінливих часом;

- з безперервно змінюється часом.

Аналогічно класифікуються завдання управління об'єктами з дискретним або безперервним безліччю можливих станів. Завдання управління системами, в яких час і стану змінюються дискретно, отримали назву завдань управління кінцевими автоматами. Нарешті, при певних умовах можуть ставитися завдання управління змішаними системами.

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

Розглянемо два найпростіших прикладу завдань управління економічними об'єктами.

Завдання розподілу ресурсів. Є т складів з номерами i (i ε1: m), призначених для зберігання однорідного продукту. У дискретні моменти часу t ε0 :( T -l) відбувається його розподіл між об'єктами-споживачами (клієнтами) з номерами j, j ε1: n. Поповнення запасу в пунктах зберігання продукту в t -й момент часу визначається величинами a i t, i ε1: m, а потреби клієнтів в ньому дорівнюють b j t, j ε1: n. Позначимо через c t i, j - витрати на доставку одиниці продукту з i -го складу j -му споживачеві в момент часу t. Також передбачається, що продукт, що надійшов на склад в момент t, може бути використаний, починаючи з наступного моменту (t + l). Для сформульованої моделі ставиться завдання знайти такий план розподілу ресурсів t i, j} T m x n, який мінімізує сумарні витрати на доставку споживачам продукції зі складів протягом повного періоду функціонування системи.

Позначивши через х t i, j кількість продукту, що поставляється j -му клієнту з i -го складу в t -й момент часу, а через z t i - загальна кількість продукту на i-му складі, описану вище проблему можна уявити як задачу знаходження таких сукупностей змінних

які звертають в мінімум функцію

за умов

де обсяги початкових запасів продукту на складах z 0 i = ž i.передбачаються заданими.

Завдання (6.20) - (6.23) називають динамічної транспортної завданням лінійного програмування. З точки зору Наведений вище термінології незалежні змінні х t i, j є параметри управління системою, а залежать від них змінні z t i - сукупність параметрів стану системи в кожен момент часу t. Обмеження z t i ≥ 0 гарантують, що в будь-який момент часу з будь-якого складу не може бути вивезений обсяг продукту, що перевищує його фактичну кількість, аограніченія (6.21) задають правила зміни цієї кількості при переході від одного періоду до іншого. Обмеження даного виду, які задають условіяна значення параметрів стану системи, прийнято називати фазовими.

Відзначимо також, що умова (6.21) служить найпростішим прикладом фазових обмежень, оскільки зв'язуються значення параметрів стану для двох суміжних періодів t і t + l. У загальному випадку може встановлюватися залежність для групи параметрів, що належать кільком, можливо несуміжних, етапам. Така потреба може виникнути, наприклад, при обліку в моделях фактора запізнювання поставок.

Найпростіша динамічна модель макроекономіки. Уявімо економіку деякого регіону як сукупність п галузей (j ε1: п), валовий продукт яких в грошовому вираженні на деякий момент t може бути представлений у вигляді вектора z t = (z t 1, z t 2,..., z t n), де t ε0 :( Т -1). Позначимо через A t матрицю прямих витрат, елементи якої a t i, j, відображають витрати продукції i -й галузі (в грошовому вираженні) на виготовлення одиниці продукції j -й галузі в t -й момент часу. Якщо X t = ║ x t i, jn x m - матриця, що задає питомі норми продукції i -й галузі, що йде на розширення виробництва в j -й галузі, а у t = t 1, у t 2,..., у t n) - вектор обсягів продукції галузей споживання, що йде на споживання, то умова розширеного відтворення можна записати як

де z 0 = ž - вихідний запас продукції галузей передбачається заданим і

У моделі величини z t є параметрами стану системи, а X t - керуючими параметрами. На її базі можуть бути поставлені різні завдання, типовим представником яких є завдання оптимального виведення економіки на момент Т до деякого заданого стану z *. Дане завдання зводиться до відшукання послідовності керуючих параметрів

які відповідають умовам (6.24) - (6.25) і мінімізують функцію

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

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

Специфіка умов завдання (6.27) - (6.29) полягає в тому, що функції якості управління (6.27) і обмеження (6.28) є лінійними щодо z t, в той же час функція g (t, х t), що входить в (6.28) , може бути довільною. Остання властивість робить задачу нелінійної навіть при t = 1, т. Е. В статичному варіанті.

Загальна ідея рішення задачі (6.27) - (6.29) зводиться до її «розщеплення» на підзадачі для кожного окремо взятого моменту часу, в припущенні, що вони успішно розв'язати. Побудуємо для завдання (6.27) - (6.29) функцію Лагранжа

де λ t вектор множників Лагранжа (t ε0: Т). Обмеження (6.29), що носять загальний характер, в функцію (6.30) в даному випадку не включені. Запишемо її в дещо іншій формі

Необхідні умови екстремуму функції Ф (х, z, λ) за сукупністю векторів z t задаються системою рівнянь

яка називається системою для сполучених змінних. Як можна помітити, процес знаходження параметрів λ t в системі (6.32) здійснюється рекурентним чином в зворотному порядку.

Необхідні умови екстремуму функції Лагранжа по змінним λ t будуть еквівалентні обмеженням (6.28), і, нарешті, умови її екстремуму за сукупністю векторів х t ε Х t, t ε1 :( Т -1) повинні бути знайдені як результат рішення задачі

Таким чином, завдання пошуку оптимального управління зводиться до пошуку управлінь, підозрілих на оптимальність, т. Е. Таких, для яких виконується необхідна умова оптимальності. Це, своєю чергою, зводиться до знаходження таких t, t, t, що задовольняють системі умов (6.28), (6.32), (6.33), яка називається дискретним принципом максимуму Понтрягіна.

Справедлива теорема.

Теорема 6.2. сукупність векторів t, t, t, що задовольняють системі (6.28), (6.32), (6.33), утворює седловую точку функції Ф (х, z, λ) (6.30), т. е. при будь-яких допустимих х, z, λ виконуються нерівності

Доведення.

нехай t, t, t, задовольняють системі (6.28), (6.32), (6.33). Тоді з (6.31) і (6.32) випливає, що

і оскільки t задовольняє (6.33), то

З іншого боку, в силу (6.28) з (6.30) випливає, що при будь-якому векторі t

отже,

Застосовуючи теорему (6.2), а також положення теорії нелінійного програмування, що стосуються зв'язку між рішенням екстремальної задачі і існуванням сідлової точки (див. П. 2.2.2), приходимо до висновку про те, що вектори t, t є рішенням найпростішої завдання оптимального управління (6.27) - (6.29).

В результаті ми отримали логічно просту схему вирішення даного завдання: з співвідношень (6.32) визначаються пов'язані змінні t, потім в результаті виконання завдання (6.33) знаходяться управління t і далі з (6.28) - оптимальна траєкторія станів t,.

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

КЛЮЧОВІ ПОНЯТТЯ

- Гра, гравець, стратегія.

- Ігри з нульовою сумою.

- Матричні ігри.

- Антагоністичні ігри.

- Принципи максимина і мінімакcа.

- Сідлова точка гри.

- Ціна гри.

- Змішана стратегія.

- Основна теорема матричних ігор.

- Динамічна транспортна задача.

- Найпростіша динамічна модель макроекономіки.

- Найпростіша задача оптимального управління.

- Дискретний принцип максимуму Понтрягіна.

КОНТРОЛЬНІ ПИТАННЯ

6.1. Коротко сформулюйте предмет теорії ігор як наукової дисципліни.

6.2. Який сенс вкладається в поняття «гра»?

6.3. Для опису яких економічних ситуацій може бути застосований апарат теорії ігор?

6.4. Яка гра називається антагоністичною?

6.5. Чим однозначно визначаються матричні гри?

6.6. У чому полягають принципи максимина і мінімакcа?

6.7. За яких умов можна говорити про те, що гра має сідлової крапку?

6.8. Наведіть приклади ігор, які мають седловую точку і в яких вона відсутня.

6.9. Які підходи існують до визначення оптимальних стратегій?

6.10. Що називають «ціною гри»?

6.11. Дайте визначення поняттю «змішана стратегія».

СПИСОК ЛІТЕРАТУРИ

1. Абрамов Л. М., Капустін В. Ф. Математичне програмування. Л., 1981.

2. Ашманов С. А. Лінійне програмування: Учеб. допомога. М., 1981.

3. Ашманов С. А., Тихонов А. В. Теорія оптимізації в задачах і вправах. М., 1991.

4. Беллмана Р. Динамічне програмування. М., 1960.

5. Беллмана Р., Дрейфус С. Прикладні задачі динамічного програмування. М., 1965.

6. Гавурін М. К., Малоземов В. Н. Екстремальні задачі з лінійними обмеженнями. Л., 1984.

7. Гасс С. Лінійне програмування (методи і додатки). М., 1961.

8. Гейл Д. Теорія лінійних економічних моделей М., 1963.

9. Гілл Ф., Мюррей У., Райт М. Практична оптимізація / Пер. з англ. М., 1985.

10. Давидов Е. Г. Дослідження операцій: Учеб. посібник для студентів вузів. М., 1990..

11. Данциг Дж. Лінійне програмування, його узагальнення і застосування. М., 1966.

12. Єрьомін І. І., Астаф'єв Н. Н. Введення в теорію лінійного і опуклого програмування. М., 1976.

13. Ермольев Ю.М., Ляшко І.І., Михалевич В.С., Тюптя В.І. Математичні методи дослідження операцій: Учеб. посібник для вузів. Київ, 1979.

14. Зайченко Ю. П. Дослідження операцій, 2-е вид. Київ, 1979.

15. Зангвілл У. І. Нелінійне програмування. Єдиний подход.М., 1973.

16. Зойтендейк Г. Методи можливих напрямків. М., 1963.

17. Карлін С. Математичні методи в теорії ігор, програмуванні та економіці. М., 1964.

18. Карманов В. Г. Математичне програмування: Учеб. допомога. М., 1986.

19. Корбут А.А., Фінкелиітейн Ю. Ю. Дискретне програмування. М., 1968.

20. Кофман А., Анрі-Лабордер А. Методи і моделі дослідження операцій. М., 1977.

21. Кюнце Г.П., Крелль В. Нелінійне програмування. М., 1965.

22. Ляшенко І.М., Карагодова Е.А., Чернікова Н.В., Шор н.3. Лінійне і нелінійне програмування. Київ, 1975.

23. Мак-Кінсі Дж. Введення в теорію ігор. М., 1960.

24. Мухачева Е. А., Рубінштейн Г. Ш. Математичне програмування. Новосибірськ, 1977.

25. Нейман Дж., Моргенштерн О. Теорія ігор і економічна поведінка. М, 1970.

26. Оре О. Теорія графів. М., 1968.

27. Таха X. Введення в дослідження операцій / Пер. з англ.М., 1985.

28. Фіакко А., Маккормік Г. Нелінійне програмування. Методи послідовної безумовної мінімізації. М., 1972.

29. Хедлі Дж. Нелінійне і динамічне програмування. М., 1967.

30. Юдін Д.Б., Гольштейн Є.Г. Лінійне програмування (теорія, методи та програми). М., 1969.

31. Юдін Д.Б., Гольштейн Є.Г. Лінійне програмування. Теорія і кінцеві методи. М., 1963.

32. Lapin L. Quantitative methods for business decisions with cases . Fourth edition. HBJ, 1988.

33. Liitle IDC, Murty KG "Sweeney DW, Karel C. An algorithm for traveling for the traveling salesman problem.- Operation Research , 1963, vol.11, No. 6, p. 972-989 / Рос. пер .: Літл Дж., Мурті К., Суїні Д., Керель К. Алгоритм для вирішення задачі про комівояжера. - В кн .: Економіка і математичні методи, 1965, т. 1, № 1, с. 94-107.

зміст

ПЕРЕДМОВА ................................................. .................................................. .................................................. .................................................. .. 2

ВСТУП................................................. .................................................. .................................................. .................................................. .......... 3

ГЛАВА 1. ЛІНІЙНЕ ПРОГРАМУВАННЯ ............................................. .................................................. ........................................ 8

1.1. Постановка задачі лінійного програмування .............................................. ............................................ 9

1.2. Основні властивості ЗЛП ТА ЇЇ ПЕРША ГЕОМЕТРИЧНА ІНТЕРПРЕТАЦІЯ .......................................... .............. 11

1.3. БАЗИСНІ РІШЕННЯ І ДРУГА ГЕОМЕТРИЧНА ІНТЕРПРЕТАЦІЯ ЗЛП ........................................... ....................... 15

1.4. СІМПЛЕКС-МЕТОД ............................................... .................................................. .................................................. .................................. 17

1.5. МОДИФІКОВАНИЙ СІМПЛЕКС-МЕТОД .............................................. .................................................. .................................. 26

1.6. ТЕОРІЯ подвійності в лінійному програмуванні ............................................. ....................................... 30

1.7. Подвійний симплекс-МЕТОД .............................................. .................................................. ................................................ 37

КЛЮЧОВІ ПОНЯТТЯ ................................................ .................................................. .................................................. ................................... 42

КОНТРОЛЬНІ ПИТАННЯ................................................ .................................................. .................................................. ............................ 43

ГЛАВА 2. нелінійного програмування ............................................. .................................................. ............................... 44

2.1. МЕТОДИ РОЗВ'ЯЗАННЯ ЗАДАЧ НЕЛІНІЙНОГО ПРОГРАМУВАННЯ ............................................. ...................................... 44

2.2. Двоїстість В нелінійного програмування .............................................. .................................................. 55

КЛЮЧОВІ ПОНЯТТЯ ................................................ .................................................. .................................................. ................................... 59

КОНТРОЛЬНІ ПИТАННЯ................................................ .................................................. .................................................. ............................ 59

ГЛАВА 3. ТРАНСПОРТНІ І МЕРЕЖЕВІ ЗАВДАННЯ ........................................... .................................................. ................................ 60

3.1. ТРАНСПОРТНА ЗАВДАННЯ І МЕТОДИ ЇЇ ВИРІШЕННЯ ............................................ .................................................. ....................... 60

3.2. МЕРЕЖЕВІ ЗАВДАННЯ ................................................ .................................................. .................................................. .................................... 66

КЛЮЧОВІ ПОНЯТТЯ ................................................ .................................................. .................................................. ................................... 73

КОНТРОЛЬНІ ПИТАННЯ................................................ .................................................. .................................................. ............................ 73

ГЛАВА 4. дискретного програмування ............................................. .................................................. ................................. 74

4.1. ТИПИ ЗАВДАНЬ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ .............................................. .................................................. .................. 74

4.2. МЕТОД Гомора ................................................ .................................................. .................................................. ........................................ 78

4.3. МЕТОД ГІЛОК І МЕЖ .............................................. .................................................. .................................................. ..................... 81

КЛЮЧОВІ ПОНЯТТЯ ................................................ .................................................. .................................................. ................................... 86

КОНТРОЛЬНІ ПИТАННЯ................................................ .................................................. .................................................. ............................ 86

ГЛАВА 5. ДИНАМІЧНЕ програмування ............................................. .................................................. ......................... 86

5.1. ЗАГАЛЬНА СХЕМА МЕТОДІВ ДИНАМІЧНОГО ПРОГРАММИРОВАНИЯ ............................................. ................................. 86

5.2. Приклади ЗАВДАНЬ ДИНАМІЧНОГО ПРОГРАММИРОВАНИЯ .............................................. .................................................. . 93

КЛЮЧОВІ ПОНЯТТЯ ................................................ .................................................. .................................................. ................................. 101

КОНТРОЛЬНІ ПИТАННЯ................................................ .................................................. .................................................. ......................... 101

ГЛАВА 6. КОРОТКИЙ ОГЛЯД ІНШИХ РОЗДІЛІВ ДОСЛІДЖЕННЯ ОПЕРАЦІЙ ......................................... ..................... 101

6.1. ТЕОРІЯ ІГОР ................................................ .................................................. .................................................. ............................................... 101

6.2. ТЕОРІЯ ОПТИМАЛЬНОГО УПРАВЛІННЯ ............................................... .................................................. ....................................... 108

КЛЮЧОВІ ПОНЯТТЯ ................................................ .................................................. .................................................. ................................. 112

КОНТРОЛЬНІ ПИТАННЯ................................................ .................................................. .................................................. ......................... 112

СПИСОК ЛІТЕРАТУРИ................................................ .................................................. .................................................. ................................. 112