Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mat_prog / Верстка / Р_3-5_3-7.doc
Скачиваний:
9
Добавлен:
21.02.2016
Размер:
1.59 Mб
Скачать

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

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

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

(3.36)

(3.37)

(3.38)

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

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

Таблиця 3.2

і

Базис

Сбаз

План

с1

с2

...

сm

cm+1

...

cn

x1

x2

...

xm

xm+1

...

xn

1

x1

с1

1

0

...

0

...

2

x2

с2

0

1

...

0

...

m

xm

сm

0

0

...

1

...

m + 1

F0

0

0

...

0

...

3.5.1. Аналіз діапазону зміни компонент вектора обмежень

Допустимо, що деяке k-те обмеження () має в правій час­тині початкове значення — . Нехай початкова величина змінилась на величину. Отже,k-те обмеження в системі (3.37) буде мати вигляд:

. (3.39)

Для зведення (3.39) до канонічного виду необхідно ввести додаткову змінну xn+k (якщо обмеження має вигляд рівняння, то як таку змінну можна розглядати невід’ємну штучну змінну).

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

З першої теореми двоїстості відомо, що оптимальний план прямої задачі (як і кожен поточний опорний план) можна подати у вигляді:

(3.40)

де D — матриця, що складена з компонент векторів останнього базису;— оптимальний план задачі (3.36)—(3.38);В — вектор, що складається з вільних членів системи обмежень в останній симплексній таблиці.

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

Вектор подамо у вигляді:

, (3.41)

де ek — одиничний вектор-стовпчик, а в ньому одиниця — k-та компонента. Тоді, використовуючи (3.40), маємо:

, (3.42)

де dk — (добуток матриці D–1 на одиничний вектор ek) k-ий стовп­чик матриці D–1.

Позначимо елементи k-го стовпчика матриці через, тоді:

або

Остання симплексна таблиця буде мати вигляд:

Таблиця 3.3

і

Базис

Сбаз

План

с1

с2

...

сm

cm + 1

...

cn + k

...

cn + m

x1

x2

...

xm

xm + 1

...

xn + k

...

xn + m

1

x1

с1

1

0

...

0

a1, m + 1

...

a1, n + k

...

a1, n + m

2

x2

с2

0

1

...

0

a2, m + 1

...

a2, n + k

...

a2, n + m

m

xm

сm

0

0

...

1

am, m + 1

...

аm, n + k

...

amn + m

m + 1

F

0

0

...

0

Δm + 1

...

Δn + k

...

Δn + m

Оскільки необхідно, щоб план також був оптимальним, має виконуватися умова невід’ємності всіх компонент даного век­тора, отже,

(3.43)

Звідси:

. (3.44)

Тоді нижньою та верхньою границями зміни значення bk відповідно будуть:

;

Якщо не існує жодного для, то, а якщо не існує ні одногодля, то.

Для задачі знаходження мінімального значення цільової функ­ції та обмежень системи типу «≥» значення Δbk змінює знак, оскільки замість нерівності можна розглянути рівносильну нерівність.

Отже, для за будь-якого значення, що відповідає додатковій небазисній змінній, структура оптимального плану задачі (3.36)—(3.38) залишиться постійною.

В. Розглянемо випадок, коли додаткова змінна — базисна.

Якщо додаткова змінна xn+k базисна, то це означає, що у виразі (3.42) dk –одиничний вектор з k-ою компонентою, рівною одиниці, отже, система нерівностей (3.43) перетвориться в таку:

Очевидно, що значення додаткової базисної змінної визначає діапазон змін, в якому відповідна компонента bk може зменшуватись (збільшуватись для обмежень типу «≥»).

Оптимальний план залишається незмінним у діапазоні bk + Δbk для тих , яким відповідають додаткові базисні змінніxn + k, де

(3.45)

для обмежень системи (3.37) типу «≥».

Для задачі знаходження мінімального значення цільової функції та обмежень системи (3.37) типу «≥» можливі зміни компонент правої частини системи обмежень визначаються з нерівності:

де,. (3.46)

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

,

де Е — одинична матриця. Якщо позначити елементи матриці через, тоді:

або .

Оскільки необхідно, щоб план також був оптимальним, має виконуватися умова невід’ємності всіх компонент вектора, отже:

,

тобто:

(3.47)

Якщо значення задовольняють всі нерівності системи (3.47), то структура оптимального плану задачі (3.36)—(3.38) залишається постійною.

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

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

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

.

Нехай величина br змінилась на Δbr. Визначимо, як необхідно змінити bs, щоб значення цільової функції залишилось тим самим. Зміна br означає, що , аналогічно за зміни намаємо:. Аби значення функ­ціонала залишалось незмінним, необхідно, щоб

.

Звідси виразимо шуканий вплив на:

. (3.48)

При відповідній заміні величин br та bs значення цільової функ­ції задачі (3.36)—(3.38) не зміниться, проте оптимальний план буде іншим. Нехай задача (3.36)—(3.38) описує визначення оптимального плану виробництва за умов обмежених ресурсів.

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

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

3.5.2. Аналіз діапазону зміни коефіцієнтів цільової функції

Розглянемо задачу лінійного програмування (3.36)—(3.38). Допустимо, що коефіцієнт цільової функції при деякій k-ій змінній з початковим значеннямзмінився на величину. Отже, цільова функція (3.36) набуде вигляду:

, (3.49)

де С, Х — відповідно вектор компонент цільової функції та вектор змінних, ek — одиничний вектор-рядок, де одиниця відповідає k-ій компоненті.

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

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

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

Для оптимального плану задачі (3.36)—(3.38), як відомо з § 2.7.4, оцінки векторів розраховують так:

.

Якщо цільова функція має вигляд (3.49), то оцінки векторів розраховуватимуться за формулою:

,

де аkj — елементи вектора-рядка, який є результатом множення ek на Х.

Остання симплексна таблиця набуває вигляду:

Таблиця 3.4

і

Базис

Сбаз

План

с1

с2

...

сk + Δck

...

сm

cm + 1

...

cn

x1

x2

...

xk

...

xm

xm + 1

...

xn

1

x1

с1

1

0

...

0

...

0

a1, m + 1

...

a1, n

2

x2

с2

0

1

...

0

...

0

a2, m + 1

...

a2n

...

...

...

...

...

...

...

...

...

...

...

...

...

k

xk

ck + Δck

0

0

...

1

...

0

ak, m + 1

akn

...

...

...

...

...

...

...

...

...

...

...

...

...

m

xm

сm

0

0

...

0

...

1

am, m + 1

...

amn

m + 1

Fj – cj ≥ 0

F

0

0

...

0

...

0

Δm + 1

...

Δn

Для того, щоб план задачі з цільовою функцією (3.49) та системою обмежень (3.37), (3.38) також був оптимальним, має виконуватися умова:

(3.50)

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

. (3.51)

Тоді нижньою та верхньою границями змін значення сk відповідно будуть:

;

.

Якщо не існує жодного для, то, а якщо не існує ні одногодля, то.

Отже, за змін сk, що відповідає базисній змінній, в інтервалі , якщо, структура оптимального плану задачі (3.36)—(3.38) залишиться тією самою.

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

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

,

де — оцінка вектора при зміннійзадачі (3.36)—(3.38). Дана оцінка має бути невід’ємною, отже:

.

Для небазисної змінної діапазон стійкості оптимального плану визначається нерівністю:

. (3.52)

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

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

Для того, щоб план задачі з цільовою функцією, в якій одночасно змінюються кілька чи всі значення , та системою обмежень (3.37), (3.38) також був оптимальним, має виконуватися умова, аналогічна (3.50):

(3.53)

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

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

3.5.3. Аналіз діапазону зміни коефіцієнтів матриці обмежень

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

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

Розглянемо k-ту небазисну змінну () і відповідний їй стовпчик з компонентами. Якщо деякаl-та компонента

() (чи кілька компонент) даного вектора зміниться на величину, то за алгоритмом симплексного методу це приведе до зміни значення оцінки відповідного вектора —.

Для оптимального плану задачі (3.36)—(3.38), як відомо з §2.7.4, оцінки векторів розраховують так:

, (3.54)

або якщо , маємо:.

Позначимо через k-й вектор-стовпчик матриці сис-

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

. (3.55)

Розрахуємо значення оцінки вектора, підставляючи в (3.54) нові значення:

. (3.56)

Для того, щоб план нової задачі також був оптимальним, має виконуватися умова:

. (3.57)

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

, якщо; (3.58)

, якщо. (3.59)

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

3.6. Двоїстий симплексний метод

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

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

Нехай необхідно розв’язати задачу лінійного програмування, подану в канонічному виді:

, (3.60)

, (3.61)

. (3.62)

Тоді двоїстою до неї буде така задача:

(3.63)

. (3.64)

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

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

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

У прямому симплекс-методі спочатку виявляють змінну, яку слід ввести у базис, а в двоїстому симплекс-методі навпаки — спочатку визначають змінну, яку виключають з базису, а потім змінну, яку вводять у базис.

У літературі [19, 22, 28, 31] зустрічаються різні варіанти двоїстого симплексного методу, які не мають принципових відмінностей. Розглянемо такий алгоритм двоїстого симплексного методу:

1. Необхідно звести всі обмеження задачі до виду «», ввести додаткові невід’ємні змінні, визначити початковий базис та перший опорний план .

2. Якщо всі оцінки векторів і компоненти вектора-стовпчика «План»для всіх, то задача розв’язана. Інакше необхідно вибрати найбільшу за модулем компонентуі відповідну зміннувиключити з базису.

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

(),

що дає змогу вибрати вектор, який буде включено в базис.

4. Виконавши крок методу повних виключень Жордана—Гаусса, переходять до наступної симплексної таблиці (Переходять до пункту 2).

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

Детальне доведення всіх кроків алгоритму двоїстого симплекс­ногометоду розглянуто в [10].

Знайти мінімальне значення функції

за умов:

.

Розв’язання: Помножимо другу нерівність на (– 1) і введемо додаткові змінні.

.

Початковий базис — вектори А4 та А5. Псевдоплан .

Складемо початкову симплексну таблицю.

Базис

Сбаз

План

– 2

1

5

0

0

x1

x2

x3

x4

x5

x4 x5

0 0

4 – 5

1 –1

1 5

–1 –1

1 0

0 1

Fjcj  0

0

2

–1

–5

0

0

Оскільки , то з базису необхідно вивести векторА5 і відповідну змінну .

Для визначення вектора, що вводиться в базис, розрахуємо значення . В другому рядку містяться два від’ємних коефіцієнти, які відповідають векторамА1 та А3. Визначимо, який з цих векторів необхідно вводити в базис.

.

Отже, , значить, у базис слід ввести векторА1. Розв’язувальним елементом буде а21 (–1).

У результаті реалізації методу повних виключень Жордана—Гаусса за два кроки отримаємо оптимальний план.

х4 х1

0 –2

–1 5

0 1

6 –5

–2 1

1 0

1 –1

Fjcj  0

–10

0

9

–7

0

2

x3 x1

5 –2

1/2 9/2

0 1

–3 –2

1 0

–1/2 1/2

–1/2 –1/2

Fjcj  0

–13/2

0

–12

0

–7/2

–3/2

Згідно з останньою симплексною таблицею маємо такий оптимальний план початкової задачі:

,

та оптимальний план двоїстої задачі:

, .

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

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

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

3.7. Параметричне програмування*

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

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

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

3.7.1. Параметричні зміни вектора обмежень

Розглянемо задачу лінійного програмування у разі лінійної залежності компонентів вектора обмежень від параметра t. Нехай:

,,. (3.65)

Тоді задачу лінійного програмування сформулюємо у вигляді:

(3.66)

(3.67)

. (3.68)

Очевидно, що для кожного фіксованого значення задача (3.66)—(3.68) є звичайною задачею лінійного програмування і може бути розв’язана симплексним методом.

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

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

, (3.69)

де D — матриця, що складена з компонент векторів останнього базису; — оптимальний план задачі (3.66)—(3.68);В — вектор, що складається з вільних членів системи обмежень в останній симплексній таблиці.

Отже, якщо змінюються компоненти вектора В, то змінюються також значення вектора . У векторній формі (3.65) має вигляд:

, (3.70)

де В — вектор з компонентами bi, а вектор Р складається з компонент рі виразу (3.65). Використовуючи (3.69), маємо:

. (3.71)

Добутком буде вектор, який позначимо через, а результатом множенняна— вектор, тоді:

. (3.72)

Допустимо, що задачу (3.66)—(3.68) розв’язано, і остання симплексна таблиця має вид:

Соседние файлы в папке Верстка