Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lektsiyi_Ukhanska_1

.pdf
Скачиваний:
18
Добавлен:
12.02.2016
Размер:
2.03 Mб
Скачать

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

КАФЕДРА ПРИКЛАДНОЇ МАТЕМАТИКИ

Конспект лекцій з курсу

“МЕТОДИ ОПТИМІЗАЦІЇ”

( для студентів ІІІ курсу

Інституту прикладної математики та фундаментальних наук)

Підготувала доцент кафедри ПМ Уханська О.М.

2003

ВСТУП

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

Задачі оптимізації можна поділити на такі види:

-задачі математичного програмування;

-задачі варіаційного числення;

-задачі оптимального управління.

Кожна велика система – фінансові чи банківські організації, великі промислові

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

 

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

через

x1

, x2

,..., xn - кількісні характеристики, від яких залежить досягнення мети, то зв’язок

між

z

і

x j

( j 1, n) можна подати у вигляді функціональної залежності

z

f x

, x

2

,..., x

n

 

 

1

 

 

 

(1)

Ця функція називається цільовою функцією або функцією мети.

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

gi x1 , x2 ,..., xn , , 0, i 1, m

 

 

(2)

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

x

j

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

 

нерівностей (2) називається системою обмежень або системою умов задачі.

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

Множина точок ( x1 , x2 ,..., xn ), що задовольняє систему обмежень (2), називається

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

1

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

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

1.Побудова математичної моделі задачі – визначення факторів, що вважаються невідомими; побудова системи обмежень; побудова цільової функції на основі умови оптимізації.

2.Вибір методу розв’язку задачі.

3.Коригування математичної моделі.

4.Дослідження отриманого розв’язку і прийняття рішення.

Класифікація задач математичного програмування.

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

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

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

Задачі математичного програмування поділяють на дискретні та неперервні.

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

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

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

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

2

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

3

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

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

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

їх виготовлення обмежену кількість матеріалів ( виду А і В відповідно не більше 1650 і 1200 кг ) і обладнання ( у кількості 2060 станко-годин).

Види

Об’єм

Затрати на одиницю продукції

 

 

ресурсів

ресурсів

Виріб №1

Виріб №2

 

 

 

 

А

1650 кг

10 кг

30 кг

 

 

 

 

В

1200 кг

10 кг

20 кг

 

 

 

 

Обладнання

2060 ст.-год.

23 ст.-год.

18 ст.-год.

 

 

 

 

Прибуток у

 

34

40

тис.грн..

 

 

 

 

Необхідно визначити, скільки виробів №1 і №2 повинне виготовити підприємство, щоб отримати найбільший прибуток, при умові, що виробів №1 має бути виготовлено не менше 20, а виробів №2 – не менше 15 одиниць.

Щоб розв’язати поставлену задачу, необхідно побудувати її математичну модель. Нехай x1 , x2 - відповідно кількість виробів №1 і №2, які повинне виготовити підприємство

(шукані невідомі). Очевидно, що x1 , x2 повинні задовольняти умови

10x

30x

2

1650

 

1

 

 

 

20x

 

1200

10x

2

 

1

 

 

 

23x

18x

 

2060

 

2

1

 

 

Тут перша умова вказує на те, що кількість сировини виду А, яка йде на виготовлення виробів №1 та x2 виробів №2, не повинна перевищувати загальної кількості сировини

Наведені нерівності є умовами обмеження по ресурсах. Крім того, невідомі

x1

x2 пов’язані обмеженнями по асортименту

 

x1

А.

і

x

20,

1

 

x

2

 

15

.

Очевидно, що шукані невідомі повинні задовольняти умову невід’ємності.

Записані нерівності виражають всі умови обмежень, які накладаються на x1 і x2 .

Будь-яка пара цілочисельних значень x1 і x2 , яка задовольняє системі цих нерівностей, визначає один із допустимих варіантів плану підприємства по випуску виробів №1 і №2. Таких допустимих варіантів буде безліч. Але нам, відповідно до умови задачі, необхідно

4

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

плану буде оптимальним.

 

Якщо

позначити

через L прибуток підприємства, то

L 34x1 40x2 .

Отже,

математично задачу можна сформулювати так: серед множини

розв’язків системи нерівностей

 

 

10x

30x

2

1650

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

20x

 

1200

 

 

10x

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

23x

18x

 

2060

 

 

 

2

 

 

 

1

 

 

 

 

 

 

 

 

 

 

x

20,

 

 

x

 

 

15

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

0,

 

 

x

2

0

 

 

 

1

 

 

 

 

 

 

 

 

 

знайти такий, для якого функція L 34x1 40x2

досягає найбільшого значення. Отримана

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

 

Узагальнюючи

наведений

приклад,

розглянемо задачу про максимальну

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

 

 

Запишемо загальну математичну модель задачі. Нехай

m – кількість наявних ресурсів;

n – кількість видів продукції, яку необхідно виготовити;

aij

- кількість одиниць i –го ресурсу ( i 1, m ), що використовується для виготовлення j –

 

 

го виду продукції ( j 1, n );

bi

- максимальна кількість одиниць i –го ресурсу, яку можна використати у виробництві

 

 

(запас одиниць i –го ресурсу);

c

j

- прибуток від реалізації одиниці j – го виду продукції;

 

x

j

- запланований рівень виробництва одиниць j – го виду продукції.

 

Загальна кількість одиниць i –го ресурсу, що використовується у виробництві відповідно

 

 

 

 

 

 

 

 

 

до плану,

ai1 x1 ai 2 x2 ... ain xn

(i 1, m) не може перевищувати запас i –го ресурсу,

тобто

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ai1 x1 ai 2 x2 ... ain xn bi

(i 1, m) .

 

 

 

 

 

 

 

 

 

 

Крім того,

x j 0

( j 1, n) .

 

 

 

 

 

5

Загальний прибуток від виробництва продукції дорівнює

L

де

c j

x j

термінах

змінних

c1 x1 c2 x2 ... cn xn ,

- прибуток, отриманий від виробництва ЛП поставлену економічну задачу можна x1 ,..., xn , при яких лінійна форма

x j одиниць j – го виду продукції. У

сформулювати так: знайти значення n

n

 

L c j x j

max

j 1

 

досягає максимуму за умов

n

 

 

 

 

 

 

 

 

a

ij

x

j

b

 

(i 1, m )

 

 

i

 

j 1

 

 

 

 

 

 

 

x

j

0

 

( j

1, n )

 

 

 

 

 

 

 

 

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

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

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

інші – умовою недодатності, а на знак третіх ніяких умов не накладено:

n

L c

j 1

n aij x j j 1

n

aij x j j 1

j x j max (min)

b

(i 1, k )

i

 

 

 

 

 

 

 

bi

(i k 1, l )

(1.1′ )

(1.2′ )

(1.2′′ )

6

n

 

 

 

 

 

 

aij x j

bi

(i l 1, m )

(1.2′′′)

j 1

 

 

 

 

 

 

x

j

0

( j

1, r )

 

 

 

 

 

 

 

 

 

x j

0

( j

r 1, s )

 

(1.3′ )

x j

 

( j s 1, t )

- умови не накладені.

 

Означення 2. Будь-який вектор X (x1 ,..., xn ) , компоненти якого задовольняють умови

(1.2′ )-(1.3′ ), називається планом (допустимим розв’язком) задачі лінійного програмування.

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

планів (область допустимих розв’язків).

Ранг матриці системи обмежень (1.2′) при умові,

що

i 1, m

визначає кількість

базових змінних (залежних), усі решта змінні вважаються вільними (незалежними).

Позначимо

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 j

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P

 

a

2 j

 

j 1, n,

P

 

 

b

 

,

X x , x

 

,..., x

 

 

 

 

 

 

 

2

2

n

 

 

j

 

...

 

0

 

 

...

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

amj

 

 

 

 

bm

 

 

 

 

 

 

 

 

 

Тоді систему обмежень (1.2′)-(1.2′′′) можна записати у вигляді

P1 x1 P2 x2 .... Pn xn , , P0 .

Означення 3. План Х називається опорним планом (базисним допустимим розв’язком),

якщо вектори

P

j , які відповідають додатним компонентам

x

j

плану Х,

 

 

утворюють лінійно-незалежну систему (максимальне число таких векторів не більше m).

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

7

Означення 5. Опорний план називається невиродженим, якщо він містить рівно m

додатних компонент, і виродженим, якщо додатних компонент є менше, ніж m.

Означення 6. План, що надає цільовій функції максимального значення називається

оптимальним.

§ 1.2. Канонічна форма задачі лінійного програмування.

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

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

де

a

ij

 

n

 

 

 

L c j x j

max

(1.1)

j 1

 

 

 

n

 

 

 

aij x j

bi

(i 1, m )

(1.2)

j 1

 

 

 

x j 0

 

( j 1, n ) ,

(1.3)

, bi , c j - задані постійні величини, причому bi 0,

m n .

Задача лінійного програмування вважається записаною у канонічній формі, якщо

-система обмежень зведена до системи рівностей;

-базова невідома входить лише в одне рівняння системи обмежень з коефіцієнтом 1,

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

-вільні члени системи обмежень невід’ємні;

-оптимізуюча форма залежить тільки від вільних невідомих.

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

1.Якщо необхідно знайти minL, то врахувавши. що minL=-max(-L), задача зводиться до пошуку максимуму лінійної форми -L.

2.Якщо в системі обмежень є нерівності виду

8

n

 

 

 

 

 

 

 

 

 

a

kj

x

j

b

 

 

 

 

 

ki

 

 

 

j 1

 

 

 

 

 

 

 

 

то ввівши додаткові невід’ємні змінні xn k

, перейдемо до рівності

n

 

 

 

 

 

 

 

 

aij x j xn k

bk ,

xn k 0

 

j 1

3. Якщо в системі обмежень є нерівності виду

(1.4)

(1.5)

n

 

 

 

 

 

 

a

kj

x

j

b

 

 

ki

j 1

 

 

 

 

 

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

n

 

 

 

 

 

 

 

 

 

 

 

 

a

ij

x

j

x

n k

b

,

x

n k

0

 

 

 

k

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

(1.4′ )

(1.5′ )

x

n 1

,...,

 

 

змінні

4. Якщо на змінні xi

нові змінні xi xi/

У кожному з випадків xn k - для випадків 2 і

вважаються базовими,

i 1, k, k m

не накладено умов невід’ємності, то вводимо

//

, де

/

 

//

0

i 1, k .

xi

xi

0, xi

2, 3, 4 одержимо розширену задачу з n+k змінними: x1 ,..., xn ,

3

та

/

 

/

//

 

//

, xk 1 ,..., xn

- для випадку 3. Введені нові

x1

,..., xk

, x1

,..., xk

а

змінні

x1 ,..., xn

- вільними.

 

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

L 2x

3x

2

4x

3

x

4

min

1

 

 

 

 

2x

 

 

 

x

3

2x

4

3

 

1

 

 

 

 

 

 

 

 

 

x

2x

 

x

 

 

x

 

 

2

 

2

3

4

 

1

 

 

 

 

 

 

 

 

 

3x

 

 

 

x

 

 

 

2x

 

5

 

 

 

 

3

4

1

 

 

 

 

 

 

 

 

 

 

x

2

2x

3

x

4

2

 

 

 

 

 

 

 

 

 

x1 , x3 , x4 0

1. Перейдемо до задачі на знаходження максимуму

L1 2x1 3x2 4x3 x4 max

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]