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

Эффективное применение информационных технологий при реализации сложных программ теория игр. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

Максимизация цены игры v эквивалентна минимизации вели-

чины 1v .

Задача линейного программирования может быть сформулирована так: определить значения переменных xi 0, i = 1, ..., m таким образом, чтобы они удовлетворяли линейным ограничениям (1.24), и при этом линейная функция

Z = x1 + x2 + ... + xm

(1.25)

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

(p10, p20, ..., pm0 ) и оптимальную стратегию SA0 .

Для определения оптимальной стратегии SB0 =(q10, q20, ..., qn0 ) следуетучесть,чтоигрокBстремитсяминимизироватьгарантиро-

ванный выигрыш, т. е. найти max 1v. Переменные q1, q2, ..., qn удовлетворяют неравенствам

a q +a q

 

+...+a

q

n

v;

 

11 1

12

2

 

1n

 

 

 

 

 

a21q1 +a22q2 +...+a2nqn v;

(1.26)

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

 

 

 

 

 

 

 

 

 

 

 

 

a q

+a

 

q

2

+...+a q

n

v,

 

m1 1

m2

 

 

mn

 

 

 

которыеследуютизтого,чтосреднийпроигрышигрокаBнепревосходитценыигры,какуюбычистуюстратегиюнеприменялигрокA.

Если обозначить

y

=

q1

, y

=

q2

, ..., y=

qn

,

v

v

 

1

 

2

 

n

v

то получим систему неравенств

a y +a y +...+a y ≤1;

 

11 1

12 2

 

1n

n

≤1;

a y +a y

2

+...+a

y

n

 

21 1

22

 

2n

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

a y

+a

y

2

+...+a y

n

≤1.

 

m1 1

m2

 

mn

 

 

(1.27)

(1.28)

51

Переменныеyj ( j =1,...,n)удовлетворяютусловиюy1 + y2 +...+

1

+ yИграn = v .свелась к следующей задаче: определить значения переменных yj 0, j = 1, ..., n, которые удовлетворяют системе неравенств (1.28) и максимизируют линейную функцию

Z' = y1 + y2 + ... + yn.

(1.29)

Решение задачи линейного программирования (1.27), (1.28) определяет оптимальную стратегию SB0 =(q10, q20, ..., qn0 ).

Таким образом, цена игры

v =

1

=

1

.

(1.30)

max Z

minZ

 

 

 

 

Составив расширенные матрицы для задач (1.24)–(1.25) и (1.28)–(1.29), убеждаемся, что одна матрица получилась из другой транспонированием:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a21

...

am1

 

1

 

 

 

a12

...

a1n

 

1

 

 

 

 

a11

 

 

 

a11

 

 

a12

a22

...

am2

 

1

 

 

a21

a22

...

a2n

 

1

 

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

 

...

 

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

 

...

 

 

a2n

...

amn

 

1

 

 

 

am2

...

amn

 

1

 

a1n

 

 

 

am1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

...

1

 

 

 

 

 

1

...

1

 

 

 

1

minZ

 

1

max Z

Таким образом, задачи линейного программирования (1.24)– (1.25) и (1.28)–(1.29) являются взаимно двойственными. Очевидно, при определении оптимальных стратегий в конкретных задачах следует выбрать взаимно двойственную задачу с менее трудоемкимрешением,адругуюзадачурешитьспомощьютеорем двойственности. Приведем пример задачи, которая описывается игровыми моделями m×n и может быть решена методами линейного программирования.

Задача 1.26. Построить прямую и двойственную задачи линейного программирования и решить матричную игру, заданную

52

платежной матрицей

 

 

 

 

 

3

3

6

8

 

 

9

10

4

2

 

 

.

 

7

7

5

4

 

 

 

Решение. Задача сводится к игровой модели, в которой игра задана платежной матрицей (табл. 1.10).

Прежде чем решать задачу, можно попытаться упростить игру, проведя анализ платежной матрицы и отбросив стратегии, заведомо невыгодные или дублирующие.

Так,элементывторогостолбцабольшеэлементовпервогостолбца. Соответственно, вторая стратегия (см. второй столбец матрицы в табл. 1.10) является явно невыгодной для игрока B по сравне- ниюспервой,таккакцельигрокаB–уменьшитьвыигрышигрока A. Поэтому второй столбец можно отбросить.

Получим матрицу размера 3×3:

 

 

 

 

 

3

6

8

 

 

 

 

9

4

2

 

 

 

P =

.

 

 

 

7

5

4

 

 

 

 

 

Таблица 1.10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bj

 

 

B1

 

B2

B3

B4

Ai

 

 

 

 

 

 

 

 

 

 

A1

 

 

3

 

3

6

8

A2

 

 

9

 

10

4

2

A3

 

 

7

 

7

5

4

 

 

 

 

 

 

Таблица 1.11

 

 

 

 

 

 

 

 

Bj

 

 

B1

 

B3

B4

αi

Ai

 

 

 

A1

 

 

3

 

6

8

3

A2

 

 

9

 

4

2

2

A3

 

 

7

 

5

4

4

βj

 

 

9

 

6

8

4

 

 

 

6

 

 

 

 

 

 

 

53

Определим нижнюю и верхнюю цены игры в табл. 1.11. Если α ≠ β, то седловая точка отсутствует и оптимальное решение сле-

дует искать в смешанных стратегиях игроков: SA0 =(p10, p20, p30 ) и

SB0 =(q10, q20, q30 ).

Обозначив xi = pνi , i = 1, 2, 3 и yj = qνj , j = 1, 2, 3, составим

две взаимно двойственные задачи линейного программирования

(см. (1.23)–(1.24) и (1.27)–(1.28)):

 

3x +9x

2

+7x ≥1

 

3y +6y

2

+8y ≤1

 

 

1

 

3

 

 

1

 

3

1)

6x1 +4x2 +5x3 ≥1 ;

2)

9y1 +4y2 +2y3 ≤1 ;

 

 

 

+2x2

+4x3 ≥1

 

 

 

+5y2

+4y3 ≤1

 

8x1

 

7y1

 

x1 ≥0, x2 ≥0, x3 ≥0 ;

 

y1 ≥0, y2 ≥0, y3 ≥0;

 

Z = x1 + x2 + x3 → min;

 

Z' = y1 + y2 + y3 → max.

Решаем вторую задачу симплексным методом, поскольку для нее первое базисное решение является допустимым. Введем добавочные переменные и перейдем к уравнениям:

3y1 +6y2 +8y3 + y4 =19y1 +4y2 +2y3 + y5 =1;7y1 +5y2 +4y3 + y6 =1

yj ≥0, =j 1,2,...,6.

Первый шаг. Основные переменные ( y4, y5, y6) и неосновные переменные (y1, y2, y3).

y

=1

−3y

−6y

−8y

4

 

1

2

3

y5 =1−9y1 −4y2 −2y3;

y

=1

−7y

−5y

−4y

6

 

1

2

3

Z ′= y1 + y2 + y3.

Базисное решение Y1 = (0; 0; 0; 1; 1; 1) – допустимое. Переводим y2 в основные, y4 – в неосновные переменные.

54

Второй шаг. Основные переменные ( y2, y5, y6) и неосновные

переменные (y1, y3, y4).

Получим после преобразований:

y

2

=

1

3 y

 

8 y 1 y

 

 

 

 

 

 

 

6

 

 

6

1

 

6

3

6

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

−7y1 +

10

y3 +

2

y4 ;

 

 

 

y5 =

3

3

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

=

1

27 y

 

16 y

+

5 y

 

 

 

6

 

6

 

 

 

6

 

 

1

 

 

6

 

3

 

 

6

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

2

 

 

 

1

 

 

 

 

 

 

Z ′= 6

+

2 y1 6 y3

6 y4.

 

 

 

 

Базисным решением является

Y2

 

 

0;

1

;0;0;

1

;

1

=

6

3

. Переводим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

y4 в основные y1 =min

1

;

 

1

 

;

 

 

1

 

 

1

 

. Переводим y6 в неоснов-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

21

 

 

 

 

27

 

ные переменные.

 

 

 

 

 

27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Третий шаг. Основные переменные ( y1, y2, y5) и неосновные

переменные (y1, y3, y4, y6):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y =

1

16 y

+

 

5

 

y

4

 

6

y

 

 

 

 

 

 

 

 

 

1

 

27

 

 

 

27

 

3

 

 

27

 

 

 

 

 

 

27

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

4

 

 

28

y3

 

7

 

 

 

 

 

+

1

 

 

 

 

y2

 

 

 

 

 

 

 

 

 

 

 

y4

 

 

 

y6

 

;

27

 

27

 

27

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

=

 

2

+

 

202 y

17 y

 

 

+14 y

 

 

 

 

5

 

27

 

 

27

 

3

 

27

 

4

 

 

 

9

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

17

 

 

 

2

 

 

 

 

 

 

1

 

 

 

Z ′=

 

27 y3

 

y4

9 y6.

27

27

 

 

 

 

 

 

 

 

 

1

 

 

4

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

Базисное решение: Y3

=

 

 

;

 

 

 

;0;0;

 

 

 

 

;0

.

27

 

27

27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так как отсутствуют положительные коэффициенты при неосновных переменных, то критерий оптимальности выполнен,

 

5

 

 

1

 

4

 

2

 

 

 

max Z' =

 

и базисное решение Y3

=

 

;

 

;0;0;

 

;0

 

является

27

27

27

27

 

 

 

 

 

 

 

 

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

55

Установим соответствие между переменными взаимно двойственных задач и определим оптимальное базисное решение задачи с помощью теорем двойственности:

 

 

 

 

 

 

 

 

 

 

 

 

x1 x2 x3 x4 x5 x6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y4 y5 y6 y1 y2 y3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

0

1

1

0

17.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

 

9

2

 

27

 

 

 

 

 

 

 

 

 

 

Оптимальное базисное решение

 

2

 

; 0;

1

;

1

;0;

17

 

, причем

 

 

 

 

 

 

 

 

 

27

9

2

 

27

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min Z = max Z' =

 

 

. Из соотношений (1.30) находим цену игры:

27

 

 

 

1

 

1

 

27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v =

 

=

 

 

=

=5,4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max Z

 

minZ

 

5

 

=(p10,

p20, p30 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оптимальную стратегию SA0

 

находим,

используя

(1.23):

p0 = x . v, т. е.

p0

= 5,4

 

2

=0,4,

 

p0

= 5,4

.0=0,

p0 = 5,4 1 =

 

 

 

 

 

i

 

i

 

 

 

 

1

 

 

 

 

27

 

 

 

2

 

 

 

 

 

 

 

3

9

= 0,6, SA0 = (0,4; 0; 0,6).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оптимальная стратегия спроса SB0

 

определяется аналогично:

qj = yj . v,

j = 1, 2, 3, т. е. SB0

=(0,2; 0; 0,8; 0). В данном случае вто-

рой столбец исходной матрицы был отброшен как невыгодный.

Ответ: SA0 =(0,4; 0; 0,6); SB0 =(0,2; 0; 0,8; 0); v = 5,4.

Прирешениипроизвольнойконечнойигрыразмераm×n рекомендуется придерживаться следующей схемы.

1.Исключить из платежной матрицы заведомо невыгодные стратегиипосравнениюсдругимистратегиями.Такимистратегиями для игрока A (игрока B) являются те, которым соответствуют строки (столбцы) с элементами, заведомо меньшими (большими) по сравнению с элементами других строк (столбцов).

2.Определить верхнюю и нижнюю цены игры и проверить, имеет ли игра седловую точку. Если седловая точка есть, то соот-

56

ветствующие ей стратегии игроков будут оптимальными, а цена совпадет с верхней (нижней) ценой.

3. Если седловая точка отсутствует, то решение следует искать в смешанных стратегиях. Для игр размера m×n рекомендуется симплексный метод, для игр размера 2×2, 2×n, n×2 возможно геометрическое решение.

ЗАДАЧИ

Задача 1.27. Решить матричную игру, заданную приведенной ниже матрицей, сведя ее к паре двойственных задач линейного программирования:

5

−8

7

−6

0

 

 

8

−5

9

−3

2

 

P =

.

 

−2

7

−3

6

−4

 

 

 

Решение.Проверим,имеетлиплатежнаяматрицаседловуюточ-

ку (табл. 1.12).

 

 

 

 

 

 

 

Таблица 1.12

 

 

 

 

 

 

 

 

Ai

Bj

B1

B2

B3

B4

B5

αi

 

 

 

 

 

 

 

 

A1

 

5

–8

7

–6

0

–8

A2

 

8

–5

9

–3

2

–5

A3

 

–2

7

–3

6

–4

–4

βj

 

8

7

9

6

2

α = –4

 

β = 2

 

 

 

 

 

 

 

Согласно табл. 1.12, α < β, следовательно, седловой точки нет. Находим решение игры в смешанных стратегиях: игроки не могут объявить противнику свои чистые стратегии – им следует скрывать свои действия. Игру можно решить, если позволить игрокам выбирать свои стратегии случайным образом (например, смешивать чистые стратегии).

57

Проверим платежную матрицу на доминирующие строки и доминирующие столбцы. Вторая строка доминирует первую, отбросим первую строку и получим

5

−8

7

−6

0

 

8 −5

9 −3 2

 

8

−5

9

−3

2

 

 

 

~

−2 7

−3 6 −4

.

 

−2

7

−3

6

−4

 

 

 

 

 

 

 

 

 

С точки зрения проигрышей игрока В стратегия B5 доминирует над стратегией B1 (все элементы столбца 5 меньше элементов столбца 1), следовательно, исключаем 1-й столбец матрицы

−5

9

−3

2

 

 

7

−3

6

−4

.

 

 

Вероятность q1 = 0. С точки зрения проигрышей игрока В стратегия B5 доминирует над стратегией B3 (все элементы столбца 5 меньше элементов столбца 3), следовательно, исключаем третий

столбец матрицы

 

 

 

 

−5

−3

2

 

 

7

6

−4

.

 

 

Вероятность q3 = 0.

Так, мы свели игру 3×5 к игре 2×3. Если игроки выбирают свои чистые стратегии случайным образом, то выигрыш игрока 1 будет случайной величиной. Тогда игрок 1 должен выбрать свои смешанные стратегии так, чтобы получить максимальный средний выигрыш. Аналогично, игрок 2 должен выбрать свои смешанные стратегии так, чтобы минимизировать математическое ожидание игрока 1. В матрице присутствуют отрицательные элементы. Для упрощения расчетов добавим к элементам матрицы 5

0

2

7

 

 

12

11

1

.

 

 

Данная замена не повлияет на решение игры, только ее цену (по теореме фон Неймана). Найдем решение игры в смешанных стратегиях.

58

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

 

12x

2

1

 

2y2 +7y3

1

 

 

 

 

1)

2x1

+11x2 1

2)

 

+ y3 1

 

+ x2 ≥1

12y1 +11y2

 

7x1

 

y1 ≥0, y2 ≥0, y3 ≥0

 

x1 ≥0, x2 ≥0

 

 

 

 

 

Z = x1 + x2 →min;

Z ′= y1 + y2 + y3 →max.

Решим прямую задачу линейного программирования симплексным методом, с использованием симплексной таблицы. Для построенияпервогоопорногопланасистемунеравенствприведем ксистемеуравненийпутемвведениядополнительныхпеременных (переход к канонической форме):

2y

 

+7y

+ y

=1

.

 

2

3

4

 

12y1 +11y2 + y3 + y5 =1

 

Решимсистемууравненийотносительнобазисныхпеременных y4, y5. Исходя из того что свободные переменные равны 0, получим первый опорный план: Y0 = (0, 0, 0, 1, 1) (табл. 1.13).

 

 

 

 

 

 

Таблица 1.13

 

 

 

 

 

 

 

 

Базис

b

y1

y2

y3

y4

 

y5

y4

1

0

2

7

1

 

0

y5

1

12

11

1

0

 

1

Z'

0

1

1

1

0

 

0

Переходим к основному алгоритму симплекс-метода. Итерация № 0. Текущий опорный план неоптимален, так

как индексная строка содержит отрицательные коэффициенты. Вкачествеведущеговыберемстолбец,соответствующийпеременной y3. Вычислим значения Di по строкам как частное от деления

b

 

1

1

 

1

 

i

и выберем наименьшее

min

 

; =

 

 

. Следовательно,

ai3

7

7

 

 

1

 

 

59

 

 

 

 

 

 

Таблица 1.14

 

 

 

 

 

 

 

 

Базис

b

y1

y2

y3

y4

 

y5

y4

1

0

2

7

1

 

0

y5

1

12

11

1

0

 

1

Z'

0

1

1

1

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.15

 

 

 

 

 

 

 

 

Базис

b

y1

y2

y3

y4

 

y5

y3

1

0

2

1

1

 

0

7

7

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y5

6

12

75

0

1

 

1

 

7

 

7

 

7

 

 

Z'

1

1

5

0

1

 

0

 

7

 

7

 

7

 

 

первая строка является ведущей. Разрешающий элемент равен 7 и находится на пересечении ведущего столбца и ведущей строки (табл. 1.14).

Формируем следующую часть симплексной таблицы. Вместо переменной y4 в текущий опорный план войдет переменная y3. Таким образом, получаем новую симплекс-таблицу (табл. 1.15).

Итерация № 1. Текущий опорный план неоптимален, так как индексная строка содержит отрицательные коэффициенты. Вкачествеведущеговыберемстолбец,соответствующийпеременной y1, как наибольший коэффициент по модулю. Вычислим зна-

чения Di по строкам в форме частного от деления

bi

и из них вы-

 

 

 

1

 

ai1

берем наименьшее

. Следовательно, вторая строка является

14

 

 

 

 

ведущей.Разрешающийэлементравен12инаходитсянапересечении ведущего столбца и ведущей строки (табл. 1.16).

60

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