Материал: 12_Зюзин_Дмитрий_02

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

Лабораторная работа №2.

Задача 1.

Игроки А и В записывают цифры 1 и 2. Игра состоит в том, что, кроме своей цифры каждый игрок записывает еще и ту цифру, которую по его мнению, записал соперник. Если оба игрока угадали или оба ошиблись, то партия заканчивается вничью; если же угадал только один, то он получает столько очков, какова сумма записанных им цифр.

Платежная матрица игры имеет вид:

B1(1;1)

B2(1;2)

B3(2;1)

B4(2;2)

A1(1;1)

0

2

-3

0

A2(1;2)

-2

0

0

3

A3(2;1)

3

0

0

-4

A4(2;2)

0

-3

4

0

С помощью статистического моделирования убедительно(!) подтвердите и проиллюстрируйте графиками, что оптимальные смешанные стратегии игроков описываются следующими законами распределения:

p*=[0 3/5 2/5 0] и q*=[0 3/5 2/5 0] Что можно сказать о цене игры?

Решение:

Обратим внимание, что задача не имеет решения в чистых стратегиях. Нижняя цена игры (максмин) равна -2, а верхняя цена (минмакс) равна 2.

Проверим решение в смешанных стратегиях.

Сначала просто смоделируем случай игры без стратегии: рассмотрим результаты игры игрока А, состоящей из 1000 партий по 5 раундов

Теперь пусть p = p* = [0 3/5 2/5 0] и q = q* = [0 3/5 2/5 0] - оба игрока придерживаются стратегии (1,2) или (2,1), в итоге получили ничью.

График - прямая в 0.

Выберем случай, когда

q = [0 3/5 2/5 0] ;

p = [1/4 1/4 1/4 1/4];

Из графика видно, что игрок отклонившийся от оптимальной стратегии проигрывает.

Получаем вывод: Цена игры лежит в пределах от -2 до 2, а в смешанных стратегих существует оптимальная, приводящая к цене игры равной нулю.

Код:

q = [3/5 0 2/5 0];

p = [2/5 0 0 3/5];

test_q_and_p(q, p)

function [] = test_q_and_p(q,p)

myrand([0.5, 0.5]);

strategy = [[1, 1];

[1, 2];

[2, 1];

[2, 2]];

x = 1:1000;

res = zeros(length(x),1);

for i = x

for j = 1:5

res(i)=res(i)+game(strategy(myrand(q)+1,:),strategy(myrand(p)+1,:));

end

end

grid on; hold on;

plot(x, res)

disp(["Sum fail: ", sum(res)])

end

function res = game(A, B)

if A(2)==B(1) && B(2)==A(1)

res = 0;

elseif A(2)~=B(1) && B(2)~=A(1)

res = 0;

elseif A(2)==B(1) && B(2)~=A(1)

res = sum(A);

else

res = -sum(B);

end

end

function res = myrand(q)

res = sum(rand >= cumsum(q));

end

Задача 2.

Проверьте, что платежная матрица этой игры для n=5 и С=100 имеет вид:

B1

B2

B3

B4

B5

A1

250

100

200

300

400

A2

400

200

100

200

300

A3

300

300

150

100

200

A4

200

200

200

100

100

A5

100

100

100

100

50

С помощью статистического моделирования убедительно(!) подтвердите и проиллюстрируйте графиками, что оптимальные смешанные стратегии игроков описываются следующими законами распределения:

p*=[3/7 0 2/7 2/7 0] и q*=[0 2/7 4/7 1/7 0] Что можно сказать о цене игры?

Решение:

Обратим внимание, что задача не имеет решения в чистых стратегиях. Нижняя цена игры (максмин) равна 100, а верхняя цена (минмакс) равна 200.

Проверим решение в смешанных стратегиях.

Эмитируем доход фирмы А за 1000 сезонов по оптимальной стратегии:

Получаем средний доход:

"Avg: " "186.15"

Эмитируем доход фирмы А за 1000 сезонов по не оптимальной стратегии:

Получаем средний доход:

"Avg: " "160.15"

Отсюда вывод:

Данные в задании векторы вероятностей описывают оптимальную стратегию. Средняя цена игры равна 183, что принадлежит промежутку (100, 200). Любое отклонение от оптимальной стратегии приводит к уменьшению среднего выигрыша.

Код:

p = [3/7 0 2/7 0 2/7];

q = [0 2/7 4/7 1/7 0];

test_q_and_p_task2(p, q)

function [] = test_q_and_p_task2(q,p)

n=5; C=100;

matrix = zeros(5,5);

for i=1:5

for j=1:5

if i<j

matrix(i,j)=C*(j-i);

end

if i>j

matrix(i,j)=C*(n-i+1);

end

if i==j

matrix(i,j)=C*(n-j+1)/2;

end

end

end

x_max = 1000;

res = 1:x_max;

for i = 1:x_max

res(i) = matrix(myrand(q)+1, myrand(p) + 1);

end

grid on; hold on;

plot(1:x_max, res)

disp(["Avg: ", sum(res)/x_max])

end

function res = myrand(q)

res = sum(rand >= cumsum(q));

end

Задача 3.

Проверьте Вашу платежную матрицу этой игры:

П1(6)

П2(7)

П3(8)

A1(6)

-45

-54

-64

A2(7)

-52.5

-52.5

-62

A3(8)

-60

-60

-60

Подтвердите статистическим моделированием верное решение арендатора.

Решение:

В данной задаче не существует решение в чистых стратегиях. Нижняя цена игры равна -60 , а верхняя -45.

Код:

function [] = test_q_and_p_task3(q,p)

c=7.5;

S=[8.5, 9, 9.5];

N=[6,7,8];

matrix = zeros(3,3);

for i=1:3

for j=1:3

if i<j

matrix (i,j) = -c *N(i)-S(j)*(j-i);

else

matrix (i,j) = -c *N(i);

end

end

end

x_max = 1000;

res = 1:x_max;

for i = 1:x_max

res(i) = matrix(myrand(q)+1, myrand(p) + 1);

end

grid on; hold on;

plot(1:x_max, res)

disp(["Avg: ", sum(res)/x_max])

end

function res = myrand(q)

res = sum(rand >= cumsum(q));

end

Задание 4.

Используя команду linprog решите следующие задачи линейного программирования(найти максимум и минимум целевой функции)для неотрицательных переменных х

1.

2.

3.

Используя графический метод решения задачи линейного программирования найдите решение и подтвердите ответы.

Усложните условия первых двух задач, преобразовав ограничения в виде ограничений равенств и смешанные (неравенства и равенства). Естественно размерность задачи возрастет.

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

Решение:

1)

А). Ищем минимум

Optimization terminated.

x =

1.0e-09 *

0.3018

0.5191

fv =

1.9435e-09

Ответ: fv = 0.

Б). Ищем максимум

Optimization terminated.

x =

3.0000

2.0000

fv =

-13.0000

Ответ: fv = 13

2)

А). Ищем минимум

Optimization terminated.

x =

1.0e-09 *

0.5238

0.7896

fv =

2.1029e-09

Ответ: fv = 0.

Б). Ищем максимум

Optimization terminated.

x =

1.4604

2.7698

fv =

-7.0000

Ответ: fv = 7

3)

А). Ищем минимум

Exiting: One or more of the residuals, duality gap, or total relative error

has stalled:

the dual appears to be infeasible (and the primal unbounded).

(The primal residual < TolFun=1.00e-08.)

x =

1.0e+16 *

0.0000

7.4273

fv =

-1.4855e+17

Ответ: Решений нет.

Б). Ищем максимум

Optimization terminated.

x =

1.0000

0.0000

fv =

1.0000

Ответ: fv = 1

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