Материал: 18_Гришова_03

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

Гришова П., МП-40

Лабораторная работа 3.

Задание 1.

Проработайте файл ДемоРеш_01_01.doc с частью решения (для игрока В) задачи №1 из задания_01.

Решение.

Демонстрация решения 1-й игры из задания 1 сведением ее к задаче линейного программирования.

Платежная матрица:

>> A=[0 2 -3 0;-2 0 0 3;3 0 0 -4;0 -3 4 0]

A =

0 2 -3 0

-2 0 0 3

3 0 0 -4

0 -3 4 0

Ранее мы установили, что эта игра без седловой точки, т.к. точная нижняя цена игры равна -2, а точная верхняя цена игры равна 2. Следовательно, можно искать решение игры в оптимальных смешанных стратегиях.

Сначала преобразуем платежную матрицу игры, чтобы среди ее элементов не было отрицательных.

>> A=A+4

A =

4 6 1 4

2 4 4 7

7 4 4 0

4 1 8 4

Выпишем необходимые и достаточные условия (4) теоремы 1:

что представляет собой произведение матрицы А на вектор q, т.к. v > 0, то можно обе части неравенства поделить на v и произвести замену .

Игрок В стремится к минимальному проигрышу, т.е. к v min или .

Задача ЛП для игрока В принимает вид:

Коэффициентами в целевой функции f будут четыре единицы. Однако поскольку linprog ищет минимум целевой функции, первым аргументом следует взять –f. Далее условие неотрицательности надо учесть дополнением матрицы А снизу диагональной матрицей с четырьмя минус единицами на главной диагонали, а столбец правой части четырьмя нулями.

>> f=ones(1,4); b=ones(4,1);

>> [y,fmin]=linprog(-f,[A;-diag(ones(4,1))],[b;zeros(4,1)])

Optimization terminated.

y =

-0.0000

0.1441

0.1059

-0.0000

fmin =

-0.2500

Интересующий нас максимум получится как v=-1/fmin. Почему нужен знак минус?

Из-за работы ф-ии linprog : она находит минимум, а нам нужно найти максимум, следовательно мах=-мin.

>> v=-1/fmin

v =

4.0000

>> q=v*y

q =

-0.0000

0.5764

0.4236

-0.0000

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

Цена игры = 4.

Решение для игрока А.

A=[0 2 -3 0;-2 0 0 3;3 0 0 -4;0 -3 4 0];

f=ones(1,4);b=ones(4,1);

A=A'+4;

[y,fmax]=linprog(f,-[A;diag(ones(4,1))],-[b;zeros(4,1)])

v=1/fmax

q=v*y

Optimization terminated.

y =

0.0000

0.1468

0.1032

0.0000

fmax =

0.2500

v =

4.0000

q =

0.0000

0.5874

0.4126

0.0000

Задание 2.

Решите задачу №2 из задания_02. Оформите решение в виде отчета, выполните статистическое моделирование этой игры с проверкой утверждений теорем лекции 3 и также включите в отчет.

Решение.

Конкурирующие фирмы А и В производят однородный сезонный товар, пользующийся спросом в течение n единиц времени. Доход от продажи товара в единицу времени составляет С ден. ед. Фирма В, будучи более состоятельной, в ходе конкурентной борьбы стремится вытеснить фирму А с рынка сбыта, способствуя своими действиями минимизации ее дохода, не считаясь при этом с временными потерями части своего дохода в надежде наверстать упущенное в будущем. Действующее законодательство не позволяет использовать для этого заведомое занижение цены на товар (прибегать к демпинговым ценам). Единственным допустимым способом достижения своей цели для фирмы В (как и для фирмы А в целях защиты своих интересов на рынке сбыта) остается повышение качества товара и надлежащий выбор момента времени поставки его на рынок сбыта. Уровень спроса на товар зависит от его качества, и в данный момент реализуется тот товар, качество которого выше. Повышение же качества требует дополнительных затрат времени на совершенствование технологии его изготовления и переналадку оборудования. Поэтому будем предполагать, что качество товара тем выше, чем позже он поступает на рынок.

Платежная матрица.

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

Задача ЛП.

Фирма В стремится к максимальному доходу, т.е. к или v min.

Задача ЛП для игрока В принимает вид:

Решение в matlab.

A = [ 250 100 200 300 400;

400 200 100 200 300;

300 300 150 100 200;

200 200 200 100 100;

100 100 100 100 50];

f=ones(1,5);b=ones(5,1);

D=zeros(5,5);

[y,fmin]=linprog(-f,[A;D-diag(ones(5,1))],[b;zeros(5,1)])

v=-1/fmin

q=v*y

Optimization terminated.

y =

0

0.0015

0.0031

0.0008

0

fmin =

-0.0054

v =

185.7143

q =

0

0.2857

0.5714

0.1429

0

Во 2й лаб.раб. рассмотрели случай p*=[3/7 0 2/7 2/7 0] и q*=[0 2/7 4/7 1/7 0], при этом доход фирмы после 100 сезонов составил: 180,5. Заметим, что найденное q->q*

Для игрока А.

A=A-500;

[y,fmax]=linprog(f,[A;D-diag(ones(5,1))],-[b;zeros(5,1)])

v=1/fmax;

p=v*y

Optimization terminated.

y =

0.0000

0.0009

0.0018

0.0005

0.0000

fmax =

0.0032

p =

0.0000

0.2857

0.5714

0.1429

0.0000

А найденное p->p* (p*=[3/7 0 2/7 2/7 0]).

Проверка теории.

Т.к. получили решения для обоих игроков значит утверждение о решении двойственных задач верно.

Проверим утверждение о том что если {p*,q*,v} решение системы с платежной матрицей А, то {p*,q*,b*v+c} решение системы с платежной матрицей B*A+C. Для этого в последней задаче добавим строку A=10*A+100 тогда результаты будут другими

Игрок В.

Optimization terminated.

y =

1.0e-003 *

0.0000

0.1460

0.2920

0.0730

-0.0000

fmin =

-5.1095e-004

v =

-1.9571e+003

p =

-0.0000

-0.2857

-0.5714

-0.1429

0.0000

Сравниваем с решением предыдущего:

>> v1 = - 185.7143*10 - 100

v1 =

-1.9571e+003

Игрок А.

y =

1.0e-003 *

0.2190

0.0000

0.1460

0.1460

0

fmax = 5.1095e-004

v = 1.9571e+003

q =

0.4286

0.0000

0.2857

0.2857

0

Видим, что опять цена игры для обоих игроков одинакова и равна 1957 что соответствует 10*185.7+100, что опять же хорошо согласуется с теорией изложенной на лекции

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