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

vm1

.pdf
Скачиваний:
32
Добавлен:
28.02.2016
Размер:
2 Мб
Скачать
☆

3) f = 12x1 + 5x2 + 3x3

!

max;

 

 

4) f = 50x1 + 65x2 + 70x3 ! max;

½

 

 

 

 

 

 

 

 

 

 

 

 

 

¸

 

 

 

 

 

 

< x1 + x2 + x3

 

240;

450;

 

4x1 + 3x2 + 2x3 + x4

¸

180;

 

 

 

8

 

 

 

 

 

·

 

600;

 

4x2 + 6x3 + 10x4

 

 

 

 

 

 

 

 

 

 

3x1 + 2x2 + 1; 5x3

·

 

 

g

 

480;

 

 

 

 

 

 

 

 

 

 

 

 

xj

¸

0; j

2 f

1; 2; 3; 4

;

 

 

 

 

 

 

 

 

 

:j ¸ 0; j 2 f1; 2; 3g:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

¸

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2: 1)

 

= ¡f = 2¹x1 + x20

¡ x200

¡ 3x30 + 3x300 ! max;

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

½

 

x¹

1

+ x0

¡

x00

¡

2x0

 

+ 2x00

+ x = 4;

 

 

 

 

 

 

 

 

¡

 

 

 

 

 

2

2

 

3

 

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

2¹x1 + x20 ¡ x200 + 4x30

¡ 4x300

= 8;

 

 

 

 

 

 

 

 

 

 

 

x¹1 ¸ 0; x20 ¸ 0; x200 ¸ 0; x30 ¸ 0; x300 ¸ 0; x4 ¸ 0;

 

 

 

 

 

 

 

2)

 

= ¡f = 4x1 ¡ 3(x20

¡ x200) ¡ 5¹x3 ! max;

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

8

3x + 2(x0

 

x00) + 3¹x = 7;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

2

 

 

2

 

 

 

 

 

3

 

¡

 

 

 

 

 

 

 

 

 

 

 

 

2x1 ¡ (x20

¡¡x200) ¡ 2¹x3 ¡ x4 = 5;

 

 

 

 

 

 

 

 

 

 

 

<

2x1 + 3(x20 ¡ x200) + x¹3 + x5 = 8;

 

 

5 ¸

 

 

 

 

 

 

 

 

:1

¸

0; x

20 ¸

0; x

200

¸

0; x¹

3

¸

 

 

4

¸

0; x

0;

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

0; x

 

 

 

 

 

 

 

 

3: 1) f~ = 3x1 + 2x3 ! max;

 

 

2) f~ = ¡2x1 ¡ 2x5 ¡ 4 ! max;

8 x1

+ x3

· 8;

 

 

 

 

 

 

 

 

 

 

 

 

8

¡x1

¡ x5

· ¡1;

 

 

 

 

 

 

<

x1

¡ x3

· 4;

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 + 5x5

· 11;

 

 

 

 

 

 

¡5x1 + x3 · 5;

 

 

 

 

 

 

 

 

 

 

 

< x1 ¡ 3x5 · ¡4;

 

 

 

 

 

 

x

¸ 0; x3 ¸ 0;

 

 

 

 

 

 

 

 

 

 

 

 

x

¸ 0; x5 ¸ 0:

 

 

 

 

 

 

:1

 

 

 

 

 

 

 

 

 

 

 

 

:1

 

 

 

 

 

 

231

§2. Властивостi задач лiнiйного програмування

Для кращого розумiння особливостей розв’язування задачi лiнiйного програмування зручно скористатися її геометричним тлумаченням.

Тому спочатку розглянемо деякi додатковi поняття й означення лiнiйної алгебри.

2.1. Опуклi множини. Множина - ½ Rn називається

опуклою, якщо вона разом з двома своїми довiльними точками X1 2 -, X2 2 - мiстить всi точки вигляду

X = ¸X1 + (1 ¡ ¸)X2; 0 · ¸ · 1:

(1)

Тут i надалi пiд ®X, ® 2 R, розумiтимемо добуток вектора на число.

Очевидно, що коли ¸ пробiгає значення вiд 0 до 1, то точка X описує вiдрiзок X2X1. Точка X, для якої виконується умова (1), називається опуклою лiнiйною комбiнацiєю точок X2 i X1. Точки X1 i X2 називаються кутовими або крайнiми точками вiдрiзка X1X2.

 

 

 

По-iншому можна сказати, що множи-

 

 

X2

на - називається опуклою, якщо вона

 

 

разом зi своїми двома довiльними точ-

 

X

 

 

 

ками X1 i X2 мiстить вiдрiзок, який їх

X1

 

 

 

 

з’єднує.

 

 

 

Прикладами опуклих множин є прямолiнiйний вiдрiзок, пряма, пiвплощина, круг, куля, куб, пiвпростiр i т.д.

 

X2

 

X2

X1

X1

X1 X1

X2 X2

Опуклi множини

Неопуклi множини

Доводиться, що перерiз довiльної кiлькостi опуклих множин є опуклою множиною.

232

Точка X називається опуклою лiнiйною комбiнацiєю

точок X1, X2, : : :, Xn, якщо виконується умова

X = ®1X1 + ®2X2 + : : : + ®nXn;

де

Xn

®i ¸ 0; i 2 f1; : : : ; ng; ®i = 1:

i=1

У вiдповiдностi з означенням опуклої множини вона мiстить опуклу лiнiйну комбiнацiю будь-яких своїх точок.

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

Опукла замкнена множина точок простору (площини), яка має скiнченне число кутових (крайнiх) точок, називається

опуклим многогранником (многокутником), якщо вона обмежена, i опуклою многогранною (многокутною) областю, якщо вона необмежена.

Кутовi точки многокутника називаються його вершинами, а вiдрiзки, що з’єднують двi вершини i утворюють його

межу – сторонами.

 

x26

Опорною прямою опуклого

Mмногокутника називається пря-

 

P B

C

 

 

ма, яка має з многокутником,

 

A

 

 

розмiщеним по один бiк вiд неї,

 

 

 

 

 

 

 

 

 

принаймнi одну спiльну точку.

 

E

D

N -

 

Прямi MN i P Q є опорними до

 

 

 

многокутника ABCDE.

 

 

 

 

O

 

Q

x1

 

 

 

 

 

 

 

2.2. Властивостi розв’язкiв задачi лiнiйного програмування. Розглянемо канонiчну задачу, записану в матричновекторнiй формi

f = CX ! max;

(2)

x1A1 + x2A2 + : : : + xnAn = A0;

(3)

233

 

X ¸ 0;

(4)

де CX – скалярний добуток векторiв C = (c1; c2; : : : ; cn) i X = (x1; x2; : : : ; xn), а вектори

A1

=

0 a21

1; A2

=

0 a22

1; : : : ; An =

0 a2n

1;

 

 

a11

 

 

a12

 

a1n

 

 

 

B a: : :

C

 

B a: : :

C

B a: : :

C

 

 

B m1

C

 

B m2

C

B mn

C

 

 

@

A

 

@

A

@

A

0 b1 1 B b C

A0 = B 2 C

@ : : : A bm

складаються вiдповiдно з коефiцiєнтiв при змiнних x1, x2, : : :, xn i вiльних членiв.

З обмежень (3), (4) випливає, що X = (x1; x2; : : : ; xn), xj ¸ 0, j 2 f1; : : : ; ng; є планом або допустимим планом

задачi (2) – (4) тодi й тiльки тодi, коли вектор-стовпчик A0 є невiд’ємною лiнiйною комбiнацiєю векторiв A1, A2, : : :, An, де коефiцiєнтами є координати вектора X.

План X = (x1; x2; : : : ; xn) задачi (2) – (4) називається опорним, якщо вектори-стовпчики Aj, якi вiдповiдають додатним xj, є лiнiйно незалежними.

З цього означення випливає, що число додатних координат опорного плану не перевищує m, бо вектори Aj, j 2 f1; : : : ; ng; є m-вимiрними, а в m-вимiрному просторi Rm максимальне число лiнiйно незалежних векторiв дорiвнює m.

Опорний план називається невиродженим, якщо число його додатних координат дорiвнює m, i виродженим, якщо воно менше m.

Базисом опорного плану називається система з m лiнiйних незалежних векторiв-стовпчикiв Aj матрицi A, що мiстить всi вектори, якi вiдповiдають додатним координатам опорного плану.

Доводиться [13], що множина планiв задачi лiнiйного програмування є опуклим многогранником (многокутником) або

234

опуклою многогранною (многокутною) областю. Надалi називатимемо цю множину многогранником (многокутником) розв’язкiв i позначатимемо символом -.

Вiдповiдь на питання, в якiй точцi многогранника (многокутника) досягається екстремум цiльової функцiї дає така теорема.

Теорема [14]. Якщо цiльова функцiя f має максимум на опуклому многограннику допустимих планiв (розв’язкiв), то вiн досягається у вершинi (кутовiй точцi) цього многогранника.

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

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

Доводиться, що вектор X = (x1; x2; : : : ; xn) є опорним планом задачi (2) – (4) тодi й тiльки тодi, коли X є вершиною многогранника - допустимих планiв.

Отже, якщо цiльова функцiя задачi лiнiйного програмування (2) – (4) обмежена на опуклому многограннику розв’язкiв, заданому умовами задачi, то iснує крайня точка (опорний план) цiєї множини, у якiй цiльова функцiя досягає максимуму. Тому для розв’язування задачi лiнiйного програмування необхiдно дослiдити тiльки вершини многогранника розв’язкiв

– опорнi плани задачi.

235

§3. Графiчний (градiєнтний) метод розв’язування задач лiнiйного програмування

В основi графiчного (градiєнтного) методу розв’язування задачi лiнiйного програмування лежить її геометричний змiст. Застосовується цей метод в основному при розв’язуваннi задач з двома незалежними змiнними i тiльки деяких задач, коли є три незалежнi змiннi, оскiльки графiчно складно побудувати многогранник розв’язкiв у n-вимiрному просторi, де n ¸ 3.

Розглянемо спочатку задачу лiнiйного програмування у випадку двох незалежних змiнних:

f = c1x1 + c2x2 ! max (min)

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

>

a11x1 + a12x2

b1;

 

 

· b2;

<

a21x1

+ a22x2

8

> . . . . . . . . . . . . . . .

·. . . . . .

>

 

 

 

:

 

+ am2x2

· bm;

> am1x1

(1)

(2)

x1 ¸ 0; x2 ¸ 0:

(3)

Вважатимемо, що система умов-обмежень (2) при виконаннi обмежень (3) сумiсна i її многокутник розв’язкiв обмежений.

Кожна з нерiвностей (2) за умов (3), як вiдомо [13], визначає

пiвплощину з межею ai1x1 + ai2x2 = bi, i 2 f1; : : : ; mg, x1 = 0, x2 = 0. Перерiз цих пiвплощин визначає опуклу множину –

многокутник допустимих планiв (розв’язкiв) -.

З геометричної точки зору розв’язати задачу лiнiйного програмування (1) – (3) означає, що треба знайти таку кутову точку або набiр точок з -, де досягається екстремум цiльової функцiї f. Для цього використовують вектор ~n = (c1; c2), який є нормальним вектором прямої f = h або c1x1 + c2x2 = h,

h 2 R. Прямi c1x1 + c2x2 = h, h 2 R, називають лiнiями рiвня функцiї f. Вони зростають найшвидше у напрямку вектора ~n.

Опишемо алгоритм графiчного методу розв’язування задачi лiнiйного програмування.

236

1)Знаходимо область допустимих розв’язкiв -. Якщо ця множина порожня, то задача розв’язку немає.

2)Будуємо вектор ~n = (c1; c2).

3)Проводимо лiнiю рiвня (f), яка перпендикулярна до ~n i проходить через початок координат. При збiльшеннi h пряма f = h зсувається паралельно у напрямку вектора ~n. Якщо A – перша точка зустрiчi прямої рiвня з многокутником розв’язкiв

-, f(A) = h0, то пряма рiвня f(x) = h при h < h0 не має спiльних точок з -. Звiдси випливає, що h0 = min f на -. Ана-

логiчно, якщо B – остання точка перетину лiнiї рiвня з -, то f(B) = max f на -.

Якщо першої точки перетину лiнiї рiвня (f) з - не iснує, тобто при всiх h з деякого промiжку (¡1; h0) пряма рiвня перетинає -, то fmin = ¡1, i задача на мiнiмум нерозв’язна. Якщо не iснує останньої точки перетину, то fmax = +1, i задача на максимум нерозв’язна.

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

X¤ = ¸X1¤ + (1 ¡ ¸)X2¤;

де 0 · ¸ · 1, X1¤ i X2¤ – оптимальнi розв’язки (кутовi точки). 4) Знаходимо координати точки екстремуму i значення цiльової функцiї в нiй. Для знаходження координат точки A екстремуму (вершини многокутника -) треба розв’язати систему

лiнiйних рiвнянь вигляду

½ai1x1 + ai2x2 = bi; aj1x1 + aj2x2 = bj;

де i та j – номера прямих, що обмежують область допустимих

розв’язкiв -, на перетинi яких знаходиться вершина A.

Приклад 1. Продаючи товари двох типiв P1 i P2 торговельне пiдприємство використовує чотири види ресурсiв S1, S2, S3 i S4. Норми витрат ресурсiв на реалiзацiю одиницi товару та обсяг ресурсiв наведено в таблицi

237

Ресурси

Норма витрат ресурсiв

Запаси

 

P1

P2

ресурсiв

S1

2

2

12

S2

1

2

8

S3

4

0

16

S4

0

4

12

Прибуток вiд реалiзацiї одиницi товару P1 становить 2 гр.од., а

товару P2 – 3 гр.од.

 

 

 

 

 

 

 

 

 

 

 

Знайти оптимальний план реалiзацiї товарiв, який забезпечує

максимальний прибуток.

 

 

 

 

 

 

 

 

 

 

J Нехай xj – кiлькiсть одиниць товару Pj, j 2 f1; 2g, яку треба

реалiзувати. Математична модель задачi має вигляд:

 

 

f = 2x1 + 3x2 ! max;

 

 

 

 

8

2x1 + 2x2

 

 

12;

 

 

 

 

 

x1 + 2x2·

 

8;

 

 

 

 

>

 

 

 

4x1

 

·16;

 

 

 

 

>

 

 

 

 

 

 

 

 

 

 

 

 

<

 

 

 

4x2

·

12;

 

 

 

 

>x

1

 

0;

x

·

 

0:

 

 

 

 

>

¸

 

 

2

¸

 

 

 

 

 

:

 

 

 

 

 

 

 

Побудуємо область допустимих розв’язкiв. Спочатку проведемо

прямi:

 

2x1 + 2x2 = 12

 

(1);

 

 

 

 

 

 

 

 

 

x1 + 2x2 = 8

 

(2);

 

 

 

 

 

 

4x1 = 16

 

(3);

 

 

 

x2

6

 

4x2 = 12

 

(4):

 

 

 

ª

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

®

 

 

 

 

¾

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

(4)

3

A

 

Á

B

 

 

 

 

 

 

 

?

 

 

 

 

C

 

?

 

 

 

~n

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

O

 

 

 

 

4 D

 

 

6

8

- x1

 

 

 

 

 

 

 

 

 

 

ª

ª

(2)

 

 

 

 

 

 

¾

 

 

 

 

(1)

 

 

 

 

 

 

 

 

 

 

 

(f)

 

 

Рис. 1

 

 

 

(3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

238

 

 

 

 

 

 

½ 2x1 + 2x2 = 12; 4x1 = 16;

Кожна з цих прямих дiлить площину Ox1x2 на двi частини. З’ясуємо, яку пiвплощину утворюють точки, координати яких задовольняють обмеження-нерiвнiсть. Розглянемо це на прикладi першої нерiвностi. Для цього вiзьмемо точку O(0; 0) i пiдставимо її координати в перше обмеження:

2 ¢ 0 + 2 ¢ 0 · 12 або 0 · 12:

Оскiльки нерiвнiсть правильна, то нерiвнiсть 2x1 + 2x2 · 12 задовольняють координати тих точок, якi знаходяться у тiй же пiвплощинi, що й точка O. Цю пiвплощину вiдзначаємо стрiлочками на прямiй (1). Аналогiчно знаходимо пiвплощини, якi визначаються другим i третiм обмеженнями-нерiвностями. Перерiз одержаних пiвплощин й визначає многокутник розв’язкiв OABCD.

Для побудови лiнiї рiвня 2x1 + 3x2 = 0 (f) вiдкладемо нормальний вектор ~n = (2; 3) i через точку O проведемо пряму, перпендикулярну до цього вектора. Пряму (f) пересуваємо паралельно самiй собi у напрямку вектора ~n. З рисунка 1 випливає, що опорною до многокутника розв’язкiв - ця пряма є в точцi C, де функцiя f набуває максимального значення. Очевидно, що точка C лежить на перетинi прямих (1), (2), (3). Знайдемо її координати, розв’язавши, наприклад, систему

звiдки одержуємо, що x1 = 4, x2 = 2.

Отже, оптимальний розв’язок X¤ = (4; 2), fmax = f(X¤) = 2 ¢ 4 + 3 ¢ 2 = 14, а це означає, що для забезпечення максимального прибутку, що становить 14 гр.од., треба реалiзувати чотири одиницi

товару P1 i двi одиницi товару P2.I

Приклад 2. Розв’язати задачу про складання кормового рацiону (приклад 2 з §1), математична модель якої має вигляд:

 

f = 4x1 + 6x2 ! min;

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

8 x1

1+ 2x2

¸ 8;

 

 

3x

+ x2

9;

 

< x1 + 6x2

¸12;

 

 

 

0; x

¸

0:

 

x

1 ¸

2 ¸

 

:

 

 

239

J Побудуємо многокутник розв’язкiв. Для цього в системi координат Ox1x2 зобразимо межовi прямi:

3x1 + x2

= 9

(1);

x1 + 2x2

= 8

(2);

x1 + 6x2 = 12

(3);

x1 = 0; x2 = 0

(4)

i з’ясуємо, яку пiвплощину визначає кожне обмеження-нерiвнiсть

вiдносно вiдповiдної прямої (рис. 2). x2 6

9*

µ B µ

~n

-

 

 

 

 

 

¸ 2

 

 

 

 

-

 

3

8

12

 

O

6(3)

x1

(1)

 

µ

 

 

(2)

 

 

(f)

Рис. 2

1

Будуємо вектор ~n = (4; 6) = 2(2; 3) i пряму рiвня 4x1+6x2 = 0 (f). Якщо рухати цю пряму у напрямку вектора ~n, то вперше вона стає опорною до многокутника розв’язкiв - у точцi B, а це означає, що в цiй точцi функцiя f набуває мiнiмального значення. Точка B лежить на перетинi прямих (1) i (2), а тому для знаходження її координат треба розв’язати систему рiвнянь:

½3x1 + x2 = 9; x1 + 2x2 = 8;

звiдки випливає, що x1 = 2, а x2 = 3.

Отже, оптимальний розв’язок X¤ = (2; 3), а fmin = f(X¤) = 4¢2+ 6 ¢ 3 = 26.

Це означає, що для забезпечення необхiдного добового рацiону при мiнiмальних витратах у 26 гр.од. треба скласти рацiон з 2 од. корму P1 i 3 од. корму P2. I

Зауваження. За допомогою графiчного методу можна розв’язувати задачi лiнiйного програмування, система обмежень яких мiстить n невiдомих i m лiнiйно незалежних рiвнянь, якщо n ¡ m = 2.

240

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