Материал: Бородакий Нелинейное программирование в современных задачах оптимизации 2011

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

3. Выбираем множество H s , в котором будет производиться поиск ситуации равновесия. Определяем исходную точку

(X 0 ,Y 0 ) :

 

 

 

 

Y 0

 

 

 

 

 

 

 

 

 

 

 

 

=

0, 0, ..., 0,

1 l , 0, ..., 0

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s-япозиция

 

 

где l = a *

s

 

= min(a1s ,a2s ,...,ams ) , т.е. минимум в s -й строке табли-

i

 

 

i

 

 

 

 

 

 

 

 

 

цы A;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X 0

 

 

0, 0, ..., 0,

1 k,

 

,

 

 

 

 

=

0, ..., 0

 

 

 

 

 

 

 

 

 

 

 

i*-япозиция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где k = b

*

j

* = min

(b

*

,b *

2

,...,b *

), т.е. минимум в строке с номе-

i

 

 

j

i

1

i

i n

 

 

 

ром i* таблицы B.

 

 

 

 

 

 

 

 

 

Таким образом,

(X 0 ,Y 0 ) выбрана так,

чтобы она была крайней

точкой множества Ζ . Согласно теореме 2.6 (X 0 ,Y 0 ) H s , где H s состоит из точек множества Χ ×Υ , удовлетворяющих уравнениям

( fi , X )((ai ,Y ) 1) = 0 , i =1,..., m ,

(e j ,Y )((b j , X ) 1) = 0 , j =1,..., n , j s ,

и, возможно, уравнению (es ,Y * )((bs , X * ) 1) = 0 .

4. Если последнее уравнение выполнено для точки (X 0 ,Y 0 ) , то

это – ситуация равновесия. Переходим к шагу 13. В противном случае переходим к следующему шагу.

5. Изменяем базисы p0 и q0 , для этого найдем множества p(X 0 ) ={ fi , b j | ( fi , X 0 ) = 0, (b j , X 0 ) =1} ,

q(Y 0 ) ={e j , ai | (e j ,Y 0 ) = 0, (ai ,Y 0 ) =1}.

126

6. Выписываем таблицы AN и B N ( N – номер итерации) для новых базисов так же, как в симплекс-методе []. Чтобы получить

таблицу AN , надо исключить из базиса вектор es и ввести вектор ai* . Для этого из всех строк таблицы необходимо вычесть s

строку, умноженную на множители, подобранные таким образом, чтобы во всех строках, кроме s-й, i*-й элемент обратился в нуль. Затем разделить s-ю строку на ai*s .

Таблица AN

Базис

a1

a2

...

am

e1

e2

...

en

λ

 

α11

α21

...

αm1

q11

q12

...

q1n

λ1

q(Y N )

α12

α22

...

αm2

q21

q22

...

q2n

λ2

...

... ... ...

... ... ... ...

...

 

 

α1n

α2n

...

αmn

qn1

qn2

...

qnn

λn

 

ξ1 1

ξ2 1

...

ξm 1

y N

y N

...

y N

 

 

 

 

 

 

1

2

 

n

 

В таблицу AN добавляется снизу строка и справа один столбец. Значения ξi = (ai ,Y 0 ) , причем ai берется из таблицы, полученной на предыдущем шаге вычислений; y0j j -я компонента вектора

Y 0 ; заметим, что

ξi

1 , i =1,..., m , так как Y 0 Υ . Значение λ j

для j -й строки получается следующим образом:

1) вычисляются

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

ξk 1

 

 

N

 

 

 

 

 

 

 

 

 

yr

 

 

λ

=

 

min

 

 

 

,

 

 

 

0 ,

 

α

 

 

q

 

 

 

αkj <0,q jr <0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

kj

 

 

jr

 

 

 

k =1,m,r=1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

**

 

 

 

 

 

 

ξk 1

 

 

N

 

 

 

 

 

 

 

 

 

yr

 

 

 

λ =

 

min

 

 

 

,

 

 

 

0

;

 

α

 

 

q

 

 

αkj >0,q jr >0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

kj

 

 

jr

 

 

 

k =1,m,r=1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2) так как (X 0 ,Y 0 ) – крайняя точка, можно показать, что либо λ* , либо λ** равно нулю. В столбец λ в качестве λ j добавляет-

127

ся то из чисел λ* и λ** , которое отлично от нуля. Если они оба равны нулю, добавляется нуль.

Аналогично формируется таблица B N . Из базиса исключается fi* и на его место вводится b j* . В нижней строке таблицы поме-

щаются числа η j = (b j , X N )

 

без единицы и компоненты xiN . Чис-

ла μi рассчитываются аналогично λ j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица B N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис

 

b1

b2 ...

 

bn

 

f1

f2

...

fm

 

μ

 

 

 

 

 

 

 

β11

β12 ...

 

β1n

 

p11

p12

...

p1m

 

μ1

 

 

p(X N )

 

β21

β22 ...

 

β2n

 

p21

p22

...

p2m

 

μ2

 

 

 

... ... ... ...

 

... ... ... ...

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

βm1

βm2 ...

 

βmn

 

pm1

pm2

...

pmm

 

μm

 

 

 

 

 

 

 

 

η1 1

η2 1 ...

 

ηn 1

 

x N

x N

...

x N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

m

 

 

 

7. Утверждаем, что Y = Y 0 + λ j q j , где

q j

j -я строка входя-

щей в таблицу матрицы

 

 

 

qij

 

 

 

, является крайней точкой множества

 

 

 

 

Υ . Покажем, прежде всего, что Y Υ , т.е. что

 

 

 

 

 

 

 

 

 

 

 

 

 

(ak ,Y 0 + λ j q j ) 1 .

 

 

 

 

 

 

Матрица

 

 

 

qij

 

является обратной матрице, столбцами которой слу-

 

 

 

жат векторы базиса, поэтому справедливы соотношения

 

 

 

 

 

 

 

 

 

(ak , q j ) = αkj ,

k =1,2,..., m ,

j =1,2,..., n .

 

 

 

Таким образом,

(ak ,Y 0 ) + λk (ak , q j ) = ξk + λ j αkj ,

причем правую часть равенства преобразуем следующим образом:

 

 

 

 

 

 

 

 

 

ξ

k

1

 

 

(ξ

k

1) + λ

j

α

kj

= −α

 

 

 

 

− λ

.

 

α

 

 

 

 

 

 

kj

 

 

 

 

 

j

 

 

 

 

 

 

 

 

 

 

 

kj

 

 

128

Если λ j > 0 , то

ξk

1

 

*

 

 

 

− λ j 0 по определению для

λ , и пото-

αkj

 

 

 

 

му при αkj

< 0 имеем

 

 

 

 

 

 

 

(ξk 1)+ λ j αkj 0 ,

 

т.е.

 

 

 

 

 

 

 

 

 

(ak ,Y 0 ) + λk (ak , q j ) 1.

 

Если же λ j

> 0 и αkj

> 0 , то λ j αkj > 0 , поэтому вновь

 

 

 

 

(ak ,Y 0 ) + λk (ak , q j ) 1,

 

т.е. доказали, что Y Υ .

 

 

При λ j

< 0 – аргументация аналогична. Таким образом, Y Υ .

Точка Y определена так, что она является крайней точкой множества Υ . Ввиду того, что Y – конец ребра, другим концом которого

является Y 0 , числа λ* и λ** не могут одновременно отличаться от нуля, так как в противном случае

(Y 0 + λ*q j ) Υ , (Y 0 + λ**q j ) Υ , λ* > 0 , λ** < 0 ,

вопреки тому, что Y 0 – крайняя точка.

Таким образом, на данном шаге алгоритма рассчитываем край-

нее точки

 

X i = X 0 + μi pi ,

i =1,2,..., m ,

Y j = Y 0 + λ j q j ,

j =1,2,..., n .

Точки (X 0 ,Y j ) и (X i ,Y 0 ) являются смежными с точкой

(X 0 ,Y 0 ) .

8.Находим q(Y j ) и p(X i ) в соответствии с определением базиса (п. 5 настоящего алгоритма).

9.Для каждой пары (X 0 ,Y j ) и (X i ,Y 0 ) формируем множество

M :

129

 

, f

 

er

M , еслиer

q(Y

j

),br

p(X

 

M (X i ,Y j ) = e

 

 

r

 

k

f

 

M , еслиf

 

p(X i ), a

 

q(Y

 

 

 

 

k

 

k

 

 

 

k

 

 

 

 

 

 

 

 

 

10. Если для некоторой пары (X i ,Y j )

M (X i ,Y j ) ={e1, e2 ,..., en , f1 ,..., fm } ,

то процесс вычислений заканчивается. В этом случае ситуация равновесия, т.е.

(X * ,Y * ) = (X i ,Y j ) .

i), j ).

(X i ,Y j ) –

Переходим к шагу 13.

Если такой пары не найдется, то переходим к следующему шагу. 11. Выбираем точку Z = (X ,Y ) , для которой в M (X ,Y ) недос-

тает вектора es . Тогда (X ,Y ) H s . По теореме 2.7 найдется пара таких точек Z1, Z2 , являющихся концами ребер, которые пересе-

каются в (X 0 ,Y 0 ) . Если к точке (X 0 ,Y 0 ) примыкает неограниченное ребро, такая точка будет одна.

12. Выбираем ту из найденных точек Z1, Z2 , которая не была

включена в s -путь на предыдущих итерациях, изменяем базис p(X ) или q(Y ) и возвращаемся на шаг 6. (При этом на шаге 6 ме-

няется лишь одна из таблиц A или B .)

Согласно теореме 2.8 через конечное число шагов процесс закончится или в ситуации равновесия, или в исходной точке

(X 0 ,Y 0 ) , если произойдет зацикливание. В последнем случае выбираем новое s и начинаем поиск сначала.

13. Нормируем пару (X * ,Y * ) :

 

 

 

 

X 0 =

X *

 

,

Y 0 =

 

Y *

.

(X * , Lm )

 

 

 

 

 

 

(Y * , Ln )

Вычисляем выигрыши игроков:

 

 

 

 

для игрока 1

 

 

1

 

 

 

 

V1 = d

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

(Y * , Ln )

130

Источник: https://studfile.net/preview/16708738/