
- •1.1. Введение.
- •1.2. Оптимизационные задачи в 2.
- •1.4. Понятие о nр-полноте.
- •Условие целочисленности решения задачи лп.
- •Критерий полной унимодулярности.
- •Задача о назначениях.
- •Задача коммивояжера.
- •2. Принятие решений и элементы теории игр.
- •2.1. Задачи многокритериальной оптимизации.
- •2.3. Игры.
- •Дележи.
- •3. Сетевые модели.
- •3.1. Способы задания графов.
- •3.2. Изоморфизм графов.
- •Поиск простейших узких мест графа за o(|e|).
- •3.3. Остовные деревья.
- •Описание алгоритма Прима:
- •Корректность алгоритма Прима.
- •3.4. Кратчайшие пути в графах. Волновой алгоритм построения дкп (Дейкстра)
- •Нахождение кратчайшего пути для ациклического орграфа
- •3.5. Потоковые задачи Задача о максимальном потоке (змп).
- •На входе: матрицы а –пропускных способностей, и c – цен, c ij 0 - стоимость пропуска единицы потока по ребру (I,j), f0 - ограничение на величину потока.
- •3.6. Приближенное решение np-полных задач.
- •Задача о максимальной клике.
- •3.7. Точные методы решения np-полных задач.
- •4. Элементы теории массового обслуживания.
- •4.1. Пуассоновский поток событий
- •4.2. Моделирование простейшего потока.
- •4.3. Процессы гибели и размножения.
- •Классификация систем массового обслуживания:
- •4.4. Открытая система м | м | 1 (один врач).
- •4.5. Замкнутые системы с резервированием. Будем различать горячий и холодный резервы, т.Е. Исправные, но включенные или выключенные приборы.
- •4.6. Задачи проектирования сетей технического обслуживания.
- •3.5. Алгоритм Тарьяна (для планарных графов мод строится за o(n)).
2.3. Игры.
Пусть есть n игроков, X1,X2,…,Xnмножества их стратегий, f1(x),…, fn(x) их функции выигрыша, x=(x1,…,xn)совокупная стратегия игроков и xjXi ,.
Принципы рационального поведения в играх:
-
Принцип Парето x
y, если i fi (x) fi (y) i0: fi0 (x) fi0 (y).
-
Принцип пессимиста: он считает, что цель соперниковнавредить ему
. Стратегия называется максиминной.
-
Принцип равновесия (Нэша): совокупная стратегия x*=(x1*,…,xn*) оптимальна по Нэшу (равновесна), если всем игрокам невыгодно отступать от своих частей совокупной стратегии, т.е. i fi (x*) fi (x1*,…,xi,…,xn*).
Пример
Гермейера: nигроков,
множества стратегий Xi=[0,1],
функции выигрыша:
.
Оптимальной по Нэшу и максимину является
стратегия, при которой все выбирают 1 и
выигрывают 1. Оптимальными по Парето
являются стратегии, когда все выбирают
0 и выигрывают n-1,
или когда i-й
игрок выбирает 1,а остальные – 0; при
этом i-й
получает n,
а остальные – n-2.
№12. Биматричная игра
Число игроков = 2, множества стратегий конечны. Функции выигрыша = две матрицы. Один игрок выбирает номер строки матриц, другой номер столбца.
Пример: Пусть. fxij=fx(xi,yj) – выигрыш игрока х, если он играет по xi ,а y по yj .
-
fx
y1
y2
miny
fy
y1
y2
maxy
x1
5
1
1
x1
3
3
x2
2
6
2
x2
4
5
x3
1
4
1
x3
8
2
maxx
=2
minx
3
2
=3
-
максиминные стратегии существуют всегда:
xопт=argmax{min fx(xi,yj)} = x2 yопт=argmax{min fy(xi,yj)} = y1
xi
yj
yj
xi
-
оптимальны по Парето только совокупные стратегии {( x2 ,y2), (x3 ,y1)}:
в правом верхнем квадранте от них нет других точек.
Точки с максимальными координатами fx и fy всегда оптимальны по Парето.
-
Н
эш. Рассмотрим условные оптимумы:
xопт(y) = argmaxx fx(x,y), yопт(x) = argmax y fy(x,y). Представим эти функции в виде двудольного орграфа. Оптимуму по Нэшу соответствует неориентированное ребро.
Таких может не быть. У нас – это ребра {( x1 ,y1), (x2 ,y2)} .
Заметим, что оптимумы по Нэшу и по Парето не совпали.
Def: Играантагонистическая, если увеличение выигрыша одного из игроков ведет к уменьшению выигрыша другого (интересы противоречивы). Если fx(x,y)+fy(x,y)=const, то игра – с постоянной суммой (в т.ч. с нулевой).
Лемма 1: Пусть x [ f1(x) f2(x) ], x1=arg max f1, x2=arg min f2.
max f1 (x)= f1 (x1) f2 (x1) max f2 (x), min f1 (x) f1 (x2) f2 (x2)= min f2 (x).
Лемма 2: Пусть f1 (x) + f2 (x)=0, т.е. f2 (x) = f1 (x) x.
max f2 (x)=max {f1 (x)}=min f1 arg max f2=arg min f1.
№13. Матричные игры.
Игра двух лиц с конечными множествами стратегий и нулевой суммой, когда f1+f2=0, задается одной матрицей. Пусть Z* - множество всех совокупных стратегий, оптимальных по Нэшу; Zопт – множество оптимумов по максимину.
-
Оптимальными по Парето являются все совокупные стратегии.
-
Zопт , т.е оптимум по максимину существует всегда.
-
Z* Zопт.= Z*, т.е. оптимум по Нэшу может не существовать, но если он существует, то совпадает с оптимумом по максимину.
Лемма
3: Пусть
,
v1
≤
v2
f.
Доказательство:
Имеем
и по лемме 1
Числа v1 и v2 называются нижним и верхним значениями игры.
Теорема: Утверждения Z* , v1=v2 и Z* = Zопт эквивалентны, т.е. матричная игра имеет решение по Нэшу тогда и только тогда, когда v1=v2. При этом оптимумы по максимину и по Нэшу совпадают.
Доказательство.
1) Пусть (x*,y*)
Z*,
т.е.
т.е.
v2<
v1.
Но по лемме 3 v1<
v2
,
v2
= v1
и все неравенства суть равенства
и
,
т.е. Z*
Zопт.
2)
Пусть v1=v2
и
,
.
Тогда
,
т.е.
для всех x
и
y.
Полагая сначала x=xопт,
а потом y=yопт,
получим
Zопт
Z*,
т.е. любое решение по максимину оптимально
по Нэшу
Z*
.
5 |
4 |
3 |
3 |
6 |
1 |
2 |
1 |
0 |
5 |
1 |
0 |
6 |
5 |
3 |
|
|
y1 |
y2 |
y3 |
miny |
x1 |
3 |
6 |
2 |
-6 |
x2 |
1 |
4 |
3 |
-3 |
maxx |
3 |
4 |
2 |
|
цикл x2 y2 x3 y1 x2, но x1 y3. p=(0,1/2,1/2), q=(2/5,3/5,0)?
Пример2: xопт=x2, yопт=y3 , v1 = -3 ≠ 2= v2.
решения в чистых стратегиях нет, его нужно искать в смешанных стратегиях.
Д
P1
Pn
Игра в смешанных стратегиях.
Пусть {fij} матрица игры размера nm, т.е. fij=f(xi,yj) – выигрыш игрока x, если он играет по стратегии xi, а его соперник по стратегии yj. Смешанными стратегиями игроков назовем векторы p и q, задающие распределение вероятностей на множествах чистых стратегий игроков, т.е. pi, qj0, pi=qj=1. Разобьем один интервал [0,1] на n отрезков с длинами p1,…,pn, а другой - на m отрезков с длинами q1,…,qm . Датчиком равномерного распределения - функцией СлЧис() разыграем две случайных точки. Попадание в iый отрезок первого интервала (с вероятностью pi) соответствует выбору стратегии xi, в jый отрезок второго интервала (с вероятностью qj) - выбору стратегии yj. Свой выбор соперники осуществляют независимо друг от друга.
Посчитаем математическое ожидание выигрыша первого игрока:
Определим
и
.
Тогда
,
.
Сведение
матричной игры к ЛП
Заметим,
что
.
v v*=min
Aj
Aj
Тогда
Нахождение
v1
является задачей линейного программирования,
т.к. ограничения
и
линейны относительно переменных v
и pi.
Кроме того,
задачей ЛП, двойственной к предыдущей,
является нахождение v2:
.
Лемма 4: Матричная игра всегда имеет решение в смешанных стратегиях.
Т.к. значения функционалов в прямой и двойственной задачах ЛП совпадают, то в смешанных стратегиях v1=v2, игра имеет решение по Нэшу.
Если
pопт
найдена (например, графоаналитическим
методом), то qопт
находят по теореме о доп. нежесткости:
pi(Bi(q)2)=0,
qj(Aj(p)1)=0.
Графоаналитический метод решения для игр 2n и n2
Пример: |
q1 |
q2 |
q3 |
min |
|
формула |
p1: 0 1 |
|
p |
3 |
6 |
2 |
6 |
A1(p)=3p1-1p2 A2(p)=-6p1+4p2 A3(p)=2p1-3p2 |
1 4 3 |
3 6 2 |
|
p |
1 |
4 |
3 |
3 |
||||
max |
3 |
4 |
2 |
v1 < v2 |
максимум нижней огибающей лежит на пересечении прямых А2 и А3,
т.е. 6p1+4p2=2p13p2 8p1=7p2. Но p1+p2=1 pопт= (7/15, 8/15). Проверим:
A1(pопт) = 13/15 > 2/3 = A2(pопт) = A3(pопт)
нижняя огибающая в окрестности pопт
в самом деле сформирована прямыми А2(p)
и А3(p).
Производная огибающей меняет в точке
pопт
знак с + на - : A3'(pопт) = 5,
а A2'(pопт) = 10
pопт
является точкой max.
Цена игры
= A2(pопт) = – 2/3.
Для нахождения qопт
графоаналитический метод неприменим:
функции Bi(q)
и их верхнюю огибающую сложно нарисовать
(в равенстве q1+q2+q3=1
две переменные свободны). Воспользуемся
ТДН:
pi·[Bi(q) v2] = 0 = qj·[Aj(p) v1].
A1(pопт) > v1
q1 = 0,
но p1, p2 > 0
-6q2 +2q3 = B1(q) = v2 = B2 (q) = 4q2 – 3q3.
5q3 = 10 q2,
но q2+q3 =1,
qопт = (0, 1/3, 2/3)
и v2 = B1(qопт) = – 2/3.
Замечание: Если матрица игры кососимметрична (т.е. квадратная и ƒij=ƒji), то игроки равносильны и их оптимальные стратегии совпадают.
!!! При решении игр размера 2n алгоритмом Меджидо не нужно предварительно удалять доминируемые строки и столбцы (это требует O(n2) операций, а они удаляются алгоритмом автоматически), I–= для p, I+= для q, интервал [u1,u2] = [0,1] сразу.
Пример
М3. v1v2
Решаем в смешанных стратегиях.
Пример: |
Y1 |
Y2 |
Y3 |
Y4 |
min |
X1 |
7 |
3 |
6 |
5 |
3 |
X2 |
2 |
4 |
8 |
3 |
2 |
X3 |
4 |
1 |
5 |
4 |
1 |
max |
7 |
4 |
8 |
5 |
|

Y3 > Y2 отбрасываем Y3 (больший проигрыш хуже)
A1(p)=7p1+2p2 , Из графика получаем A4= A2,
A2(p)=3p1+4p2, 5p1+3p2=3p1+4p2 2p1=p2 , p1+p2 = 1
A4(p)=5p1+3p2. p1= 1/3 , p2= 2/3.
v=A4(p)=5p1+3p2= 5+6=11/3. A1(p)=7p1+2p2 = v. Все прямые пересекаются в точке.
Ищем q опт по ТДН: p1, p2>0 B1(q)=v=B2(q) 7q1+3q2+5q4=2q1+4q2+3q4 q1+q2+q4 =1 q2 =5q1 +2q4 6q1 +3q4 = 1. q4 = 1/3 - 2q1 , q2=5q1 +2(1/3-2q1) = 2/3+q1. qопт= (q1 , 2/3+q1 , 0, 1/3-2q1) 0 q1 [0, 1/6]
Пример
М4: Задача проверки. Можно ли
отбросить Y1,
полагая q1
=0?
|
Y1 |
Y2 |
Y3 |
Bi (q) |
X1 |
3 |
5 |
7 |
B1=5q2+7q3 |
X2 |
2 |
4 |
8 |
B2=4q2+8q3 |
X3 |
1 |
6 |
2 |
B3=6q2+2q3. |
X4 |
8 |
2 |
1 |
B4=2q2+q3. |
B(q) - верхняя огибающая семейства прямых Вi., qопт- точка минимума функции B, в ней B3=B1
5q2+7q3 = 6q2+2q3 или q2=5q3. Но q2+q3 =1,
q2=5/6 , q3 = 1/6. qопт =(0, 5/6, 1/6), v = 32/6.
B2(q) < v p2=p4=0 5p1+6p3 = 7p1+2p3, pопт=(2/3,0,1/3,
0 ).
Но
A1(p)
= 7/3 < v
по ТДН это не решение игры
отбросить Y1 нельзя.
Эта игра легко решается в EXCEL командами Сервис+Поиск решения при следующих ограничениях:
В качестве параметра
выбираем тип модели – линейная.
pопт=(3/4,0,0, 1/4), qопт=(3/8, 5/8, 0), v = 4 1/4 .
Бесконечные антагонистические игры со счетным числом стратегий.
J\I |
y1 |
y2 |
y3 |
… |
x1 |
0 |
-1 |
-1 |
… |
x2 |
1 |
0 |
-1 |
… |
x3 |
1 |
1 |
0 |
… |
… |
… |
… |
… |
0 |
Иначе возможны следующие «плохие» случаи.
Случай
1:
.
Члены ряда равномерно
ограничены,
в чистых стратегиях существуют maxmin
и minmax,
но
.
Перейдем
к смешанным стратегиям:
,
npk
0.
монотонно
убывает по j
и
стремится
к –1.
Т.о.
не существует, но
.
J\I |
y1 |
y2 |
y3 |
… |
x1 |
0 |
-1 |
-2 |
… |
x2 |
1 |
0 |
-1 |
… |
x3 |
2 |
1 |
0 |
… |
… |
… |
… |
… |
0 |











Случай
2:
.
Члены ряда не ограничены, поэтому в
чистых стратегиях maxmin
и minmax
не существуют, как и supinf
и infsup.
Если p
=
(½, ¼, 0, ⅛, 0,
0, 0, 1/16,
…), т.е. pi
= {2-(k+1)
при i
= 2k
и
0 при i
≠ 2k},
то
вообще не имеет смысла.
.
№14. Игра на квадрате.
Игра с нулевой суммой, f(x,y)функция выигрыша первого игрока; x,y[0,1].
Чтобы существовали 1 и 2, достаточно, чтобы были выполннены условия:
1) f непрерывна; 2) f строго вогнута? по x, строго выпукла? по y.
Теорема: При выполнении условий 1-2 существует решение в чистых стратегиях.
Доказательство:
Определим непрерывные
(докажите!)
функции
.
Пусть x* неподвижная точка их непрерывной! суперпозиции, т.е. ((x*))=x*.
Обозначим y*=(x*) (y*)=x* и y* неподвижная точка функции ((y)).
П
окажем,
что f(x,y*)f(x*,y*)f(x*,y):
(x*,y*) седловая точка (ситуация равновесия), оптимальная стратегия.
Пример: f(x,y)= -2x2+y2+3xy-x-2y. Теорема применима. Найдем функции и .
Сначала найдем точки абсолютных max и min и проверим условие «[0,1]?».
∂f/∂x = -4x+3y-1=0 xабс = 3y-1/4 [-¼,+½] при y[0,1].
А
(y)= 0 при
y[0,⅓) , (x)= 2-3x/2 при
x[0,⅔] 3y-1/4 при
y[⅓,1] 0 при
x(⅔,1]
Предположим, что y* = ψ(x*)=0 х>⅔, но х*= (y*) = (0) = 0. Противоречие. Предположим, что х*= (y*)=0 y<⅓, но y* = ψ(x*) = ψ (0) = 1. Противоречие. Нужно брать функции и не по этим веткам.
х* = (y*) = (3y*-1)/4 при y⅓, но y* = ψ(x*) = (2-3x*)/2; получаем 17x*=4 x*=4/17 y*=1-3/2* 4/17=11/17. Получили решение игры ( 4/17, 11/17).
№15. Позиционные игры.
Def: Под позиционной игрой n лиц понимается:
-
ориентированное дерево Г с выделенным корнем А (Аначальная позиция, невисячие вершины промежуточные позиции, а висячиезаключительные);
-
для висячих вершин заданы nмерные векторы выигрышей игроков;
-
задано разбиение невисячих вершин на n+1 подмножество очередности хода Si, и в каждой вершине vSi ход делает игрок с номером i (0 означает, что ход делается случайно);
-
для позиций из S0 заданы распределения вероятностей на исходящих дугах;
-
задано разбиение Si (i0) на информационные подмножества Sij (Si= Sij), причем позиции одного информационного подмножества имеют одинаковое количество дочерних позиций; а материнские позиции находятся в разных информационных подмножествах с дочерними;
-
для каждой позиции sSij существует нумерация дочерних позиций, и ход игрока состоит в выборе номера дочерней позиции (даже не зная самой позиции, выбор будет однозначным).
Def: Игра называется игрой с полной информацией, если каждое информационное подмножество состоит из одной позиции, а случайный ход может быть сделан только из корня.
Пример игры с полной информацией. Одномастка.
Есть два игрока, стол и колода из 2n пронумерованных карт. Случайно карты раздаются поровну между игроками и определяется ХОДЯЩИЙ игрок. Игроки знают свои карты знают карты соперника, т.е. игра идет “в открытую”. ХОДЯЩИЙ выбирает и кладет на стол одну из своих карт, а соперник ОТВЕЧАЕТ своей. Хозяин старшей карты стола получает очко и право ХОДА, карты стола удаляются из игры. Цель игры – набрать максимум очков.
Каждой карте припишем индекс – разность числа своих и чужих карт; старших или равных этой карте. Пусть – вектор индексов карт ХОДЯЩЕГО, – вектор соперника. При оптимальной игре индексы, как правило, сохраняются. Правила редукции:
при ОТВЕТЕ
рассматриваем только два варианта: бить
(самой младшей бьющей картой–если
есть) или отдать (самую младшую),
причем если после взятия хозяин
старшей карты не меняется, то ответ
отдать отбрасываем;
при ХОДЕ отбрасываем мажорируемые по Парето карты (если их индекс не меньше & они младше), ход с одиночки (если это не самая младшая карта ХОДЯЩЕГО) и ход с туза (если остались другие варианты ХОДА). Двойные стрелки отмечают лучший ход. Жирные цифры помечают карты игроков, ? – варианты хода, * - ХОД, цифры внизу – последовательность ходов в игре без вариантов.
На этом построение дерева можно закончить. Число висячих вершин равно 4. (6!)2 ≈500 000.
На дереве игры для S1 мы использовали процедуру отсечений.
Сколько вообще может быть таких отсечений? Что такое - отсечение?
Объем дерева игры = mn. Пусть есть кто-то, кто подсказывает вариант игры, тогда получим рекуррентное соотношение для трудоемкости:
Tnсп=Tn1+(m1)Tn2; Tnсп=O(n(m+1)/2) для сокращенного перебора;
Tпп=mTn1=m2Tn2=…=mn для полного перебора.
Пример: n=10, m=7. Полный перебор требует 107, а с α–β отсечениями 104 операций.
Если цена игры одинакова при двух вариантах хода, надо учитывать, что соперник может сыграть неверно. Поэтому выбирается ход, максимально обладающий "ловушечными" свойствами. Антиловушечный метод игроки избегают ситуации, в которых сами могут сделать ошибку.
Игрок |
Оптимальная игра игроков |
Игра с ловушками |
Игра с антиловушками |
"+" |
max |
max |
M(мат.ожидание) |
"" |
min |
M |
min |
Способы игры:
Интересные позиции:
+0110000111 – старшая единица активна (должна взять очко) ход с нее плох – ее побьют.
+0110001011 – оба хода верные, но ход с младшей лучше – это «антиловушка».
+0110000101011011 – ход со старшей (активной) единицы плох – ей отдадут, но промежуточные карты уменьшат свой индекс и число активных карт уменьшится.
+011000111001 – просто интересная позиция. Верный розыгрыш – ход со старшей, бить, старшая (ловушка), отдать, старшая (ловушка), бить.
+110010110100, 100011001110, 1001011010, 1000111010, 0110011010, 10010101, 01100101.
Стратегии позиционной игры.
Def: Стратегия это правило однозначного выбора хода в любой возможной позиции.
В терминах дерева игры стратегия iого игрока это поддерево, в котором в позициях с ходом iого игрока есть только одна дочерняя, а в позициях с ходом других игроков все дочерние из дерева Г. Число стратегий число различных таких поддеревьев дерева игры.
Правило
подсчета числа стратегий:
в позициях со своим ходом числа стратегий суммируются,
а в позициях с ходом соперника - перемножаются.
Пример: Посчитаем число стратегий в игре «крестики - нолики» размера 3*3.
S9 – число стратегий игрока, делающего первый ход.
= 9 ветвей, их нужно суммировать. Затем ходит соперник умножаем.
S9=9*S78, S7=7* S56, S5=5*S34, S3=3*S12, S1=1
S9=9*(7*S56)8=9*78*S56*8=9*78*56*8*S34*6*8=9*78*56*8*34*6*8*12*4*6*8
Теорема: Любая позиционная игра с полной информацией при сведении ее к матричной игре имеет седловую точку (т.е. решение в чистых стратегиях).
Практически это никогда не делается, т.к. число стратегий очень большое.
№16. Коалиционные игры.
При
числе игроков больше двух задаются
функции выигрыша всех игроков. Для игры
трех лиц используем обозначения
без индексов:
xX,
yY,
zZ
fx(x,y,z),
fy(x,y,z),
fz(x,y,z).:
Пусть
- максиминные
стратегии игроков (при этом каждый игрок
считает, что он в одиночку играет против
всех остальных). Если игроки Y
и X
образуют коалицию
и согласовывают все свои действия, их
рассматривают как одного игрока со
стратегиями w=(x,y)W=X
Y
и функцией
выигрыша
fw(x,w) = fy(x,y,z) + fz(x,y,z).
Максимальные выигрыши, на которые могут
рассчитывать игроки y
и z,
играя в
одиночку, и
их коалиция,
таковы:
,
,
Лемма
1.
а)
,
б)
.
Пусть
.
Для max
.
Лемма
2. а)
,
б)
.
Сложив
два очевидных неравенства
и
,
получим
.
Теперь применим лемму 1а. Для max
аналогично.
Лемма
3.
,
.
Лемма
4.
.
Сложив
два неравенства
и
,
получим
.
Лемма 2б здесь неприменима, т.к. в ней
стоит знак «меньше». Однако первое
слагаемое справа не зависит от z,
а второе от y.
Дважды применив леммы 1б и 3, получим
утверждение леммы 4.
Теорема. В коалицию вступать выгоднее, чем играть против всех: υw ≥ υy + υz.
Имеем fw(x,w) = fy(x,y,z) + fz(x,y,z). Взяв от суммы сначала min по x (лемма 2а), а затем max по y, z (леммы 1б и 4), получим утверждение теоремы.
Всего
в игре n лиц существует
2n коалиций.
Пусть SN={1,
2,…, n}.
Рассмотрим игру двух коалиций S
и N\S.
Выигрыш коалиции S
определим так:
.
Легко показать, что
.
Def: Говорят, что коалиционная игра задана в редуцированной форме, если задана произвольная функция : 2N, обладающая свойствами:
1) ()=0; 2) если S1S2=, то (S1+S2)(S1)+(S2).
Def: Коалиционная игра существенна, если (N)>({i}).
Если игра несущественна, то создавать коалиции не имеет смысла.
Def. Игра называется простой, если выигрыш любой коалиции равен 0 или 1.
Игрок i называется болваном, если, присоединяясь к любой коалиции S, он ничего ей не приносит (т.е. v(S) = v(S \ {i})). Очевидно, что его вес i()=0.
Def: Коалиционная игра имеет постоянную сумму, если (S)+ (N\S)=C SN.
Пример К1. Есть 3 игрока, ({i})=2 i, ({1,2})=({1,3})=({2,3})=2, ({1,2,3})=(0)=0. Это игрa с нулевой суммой.