Задача о разорении игрока

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Задача о разорении игрока — задача из области теории вероятностей.

Траектории справедливой игры длиною 1000 шагов; коридор блуждания частицы обозначен горизонтальными линиями

Формулировка[править | править код]

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

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

Схема Бернулли[править | править код]

Рассмотрим схему Бернулли с испытаниями.

Пусть  — вероятностное пространство, где

  • – элементарные исходы,
  •  — алгебра подмножеств вероятностного пространства,
  • , где  — количество выпавших в данной последовательность единиц.

В выражении выше число выпавших единиц можно найти так: .

Введём последовательность бернуллиевских случайных величин:

Подзадача о нормированности вероятности[править | править код]

Доказать, что


Решение

Это справедливо в силу того, что

, поскольку по условию .

Подзадача о независимости случайных величин ξi[править | править код]

Доказать, что и независимы.


Решение

Независимость случайных величин означает, что

покажем это:

Случайное блуждание[править | править код]

Для схемы Бернулли договоримся о следующем смысле случайной величины ξ: означает, что второй игрок платит первому, а – первый игрок второму.

Введём новое обозначение:

, .

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


Пусть ,  — два целых числа, , . Требуется найти, с какой вероятностью за шагов будет осуществлён выход частицы из коридора, ограниченного и .

Далее, пусть  — целое число, . Пусть также для верно, что (что означает, что игроки начинали играть с ненулевым капиталом в распоряжении). Пусть . Условимся считать, что , если . Если частица так и не пересекла границы, то не определён.

Для каждого и момент называется моментом остановки, который является случайной величиной, определённой на пространстве элементарных событий .  — это событие, состоящее в том, что случайное блуждание , начинающееся в точке , выйдет из интервала в момент . Введём новые обозначения: , для . Пусть ,  — вероятности выхода частицы за время из интервала соответственно в точках и .

Пусть ; очевидно, что (пока игра не началась, частица находится внутри интервала с вероятностью 1). Пусть теперь . Тогда по формуле полной вероятности

Подзадача о рекуррентности[править | править код]

Доказать, что

(1) ,

(2) .

Доказательство.

(1) Докажем, что .

, где  — множество траекторий вида , которые за время впервые выходят из интервала в точке (показано на рисунке). Если случайный вектор попадает в подходящую траекторию, то он попадает в множество . Представим множество как . Дизъюнктное объединение правомерно по причине того, что у любой частицы, проходящей по траектории, .  — те траектории из , для которых .  — те траектории из , для которых . Заметим, что каждая траектория из находится в однозначном соответствии с траекторией из . Взаимно-однозначное соответствие доказывается от противного. Предположим, что (неоднозначное соответствие); тогда данная траектория не сможет вывести частицу из коридора за шагов (а только лишь за из-за изначального отдаления от верхней стенки коридора). В обратную сторону соответствие является также однозначным из определения: . Из этого следует, что (так как суть независимые одинаково распределённые случайные величины).

Существует и другой способ доказательства:

.

Это справедливо потому, что вероятности независимы (это было доказано ранее).


(2) Аналогично докажем, что .

Каждая траектория из находится в однозначном соответствии с траекторией из . Отсюда

Вывод рекуррентного соотношения[править | править код]

Из уравнения для следует, что для и верно:

, для .


Формула полной вероятности также даёт нам следующий результат: .


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

Нахождение вероятностей[править | править код]

При достаточно больших вероятность близка к  — решению уравнения при тех условиях, что (выход произошёл сразу же из точки  — конец игры, выиграл первый игрок), (первый игрок никогда не выиграет, если выход произойдёт мгновенно в точке ). Эти условия следуют из того, что . Это также будет доказано в этом разделе.

Сначала получим решение уравнения . Пусть игра несправедливая (). В таком случае найдём корни уравнения, то есть . Одно частное решение видно сразу: . Другое решение найдём, воспользовавшись тем, что  — функция. Целесообразно употребить выражение с отношением , учитывая, что : . Отсюда правомерно предположить, что . Добавление константы ничего не изменит благодаря тому, что .

Теперь рассмотрим общее решение: . Воспользуемся теми условиями, что и , и получим, что

Подзадача о единственности решения[править | править код]

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


Решение

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

Предельная сходимость[править | править код]

Рассмотрим вопрос о быстроте предельной сходимости и к и . Пусть блуждание начинается из начала координат (). Для простоты обозначим , , . Иными словами,  — это единица минус сумма вероятностей выхода частицы из коридора — вероятность того, что она останется блуждать в коридоре: . представляет собой событие . Рассмотрим число , где , и цепочку случайных величин . Если обозначить совокупное богатство за , то тогда . Этому есть разумное объяснение: если частица выходит из нуля и не пересекает границ, то тогда совершенно определённо сумма штук меньше, чем совокупный запас.

Подзадача о независимости случайных величин ζi[править | править код]

Докажем, что независимы и одинаково распределённые. Достаточно доказать, что они независимы, так как все они имеют биномиальное распределение.


Решение

Докажем, что

.


Вернёмся к рассмотрению сходимости.

Из только что доказанного следует что .

Рассмотрим дисперсию: (что вполне правомерно, так как , а  — модифицированная бернуллиевская случайная величина), поэтому для достаточно больших и верно: , где , так как если , то . Если или , то для довольно больших верно, что , поэтому неравенство верно . Из вышесказанного следует, что , где . Так как , то ; так как и , то ; при . Аналогичные оценки справедливы и для разностей и , так как можно свести эти разности к разностям и при , .

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

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

Ответ о вероятности разорения[править | править код]

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

Если , то интуитивный смысл функции  — это вероятность того, что частица, вышедшая из положения , достигнет верхней стенки () ранее, чем нуля. Из формул видно, что

.

Парадокс увеличения ставки при неблагоприятной игре[править | править код]

Что необходимо сделать первому игроку, если игра неблагоприятна для него?

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


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

Поэтому , так как умножается на дробь, которая больше единицы при .


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

Длительность случайного блуждания[править | править код]

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

Для и мы получили рекуррентное соотношение для функции : при .


Введём граничные условия: если игра начинается в точке или , то тогда она тут же и завершится — её длительность будет равна 0: .


Из рекуррентного соотношения и граничных условий можно один за другим вычислить . Так как , то существует предел , который удовлетворяет соотношению : при выполнении . Данные переходы аналогичны тем, что мы рассмотрели при переходе к в уравнении вероятности проигрыша. Для того чтобы решить данное уравнение, надо ввести ещё одно условие: матожидание количества ходов должно быть конечным, то есть , .


Решим данное уравнение. В уравнении вероятности проигрыша () уже были получены частные решения и . Здесь же появляется ещё один претендент на роль частного решения: , поэтому . С учётом граничного условия находим при помощи ранее полученных соотношений : . В случае идеальной монетки получаем следующее выражение: . Применение граничного условия даёт: . Из этого следует, что в случае равных стартовых капиталов . Например, если у каждого игрока есть по 5 рублей, а ставка — 1 рубль, то в среднем разоряться игроки будут через 25 ходов.

При рассмотрении вышеуказанных формул подразумевалась конечностью математического ожидания числа ходов: . Теперь будет предложено доказательство этого факта.

Задача о конечности ожидаемого числа ходов[править | править код]

Доказать, что .


Решение

Достаточно доказать это для случая (так как ранее было уже продемонстрировано, что случаи могут быть сведены к вариацией и ) и , а затем рассмотреть случай .

Итак, рассмотрим последовательность и введём случайную величину , где  — момент остановки.

Пусть . Интерпретация такова:  — это значение случайного блуждания в момент . Если , то ; если , то . Вспомним, что , и докажем, что , .


Для доказательства первого равенства напишем: . Совершенно очевидно, что , так как , при . Осталось доказать, что .

Для справедливо, что . Последнее событие может быть представлено в виде , где  — некоторое подмножество множества . Это множество определяется только при . Для больших значения не влияют на . Множество вида также может быть представлено в виде . Благодаря независимости (доказано в подзадаче 2) вытекает, что случайные величины и независимы. Отсюда в силу того, что первый множитель нулевой.

Установлено, что для идеальной монетки , .

В случае же имеют место соотношения (поскольку ) и , поскольку . Теперь покажем, что .

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

Компьютерное моделирование (метод Монте-Карло)[править | править код]

Для моделирования игры воспользуемся программой MATLAB.

Для начала сгенерируем последовательность , а затем при некотором первоначальном богатстве создадим цепочку :

Последовательность ξ (getXI)[править | править код]

n = 100;                             % The length of \xi_i series
U = rand(n,1);                       % Generate 100 random uniform [0;1] values
XI = zeros(n,1);                     % Reserve memory for 100 modified Bernoulli
q = 0.55;                            % Reverse probability
p = 1 - q;                           % Averse probability

                                     % The following cycle creates a Bernoulli distribution based on uniform [0;1]
for i = 1:n                          % This cycle divides the [0;1] array into 2 parts: lengths q and p, q+p=1
   if (U(i,1) < q)                        
       XI(i,1) = -1;                 % If a uniform random value falls into q then \xi=-1
   else XI(i,1) = 1;                 % If a uniform random value falls into p then \xi=+1
   end
end

x = 10;                              % Initial 1st player's budget offset

S = zeros(n,1);                      % Reserve memory for 100 S_1...S_100

for i = 1:n                          % Make S_k series according to rule S_{k+1} = S_k + \xi_{k+1}
    S(i,1) = x + sum(XI(1:i, 1));    % considering the initial welfare offset x
end

Затем введём функцию getS(n, q, x), которая бы не просто, как листинг выше, генерировала ряд сразу и мгновенно, а позволяла бы обобщённо на основе введённых значений , и построить ряд, не усложняя вычислений. Это бы упростило рабочую область.

Генерация ряда (getS function)[править | править код]

function [S] = getS(n, q, x)         % This function depends on n, q and x --- 3 variables
U = rand(n,1);
XI = zeros(n,1);

for i = 2:n                          % Uniform->Bernoulli distribution transformation
   if (U(i,1) < q)
       XI(i,1) = -1; 
   else XI(i,1) = 1;
   end
end

S = zeros(n,1);                      % Reserve memory for n S_1...S_n

for i = 2:n                          % Calculate the S_1...S_n series
    S(i,1) = sum(XI(1:i, 1));        % Sums the \xi's
end
S = x + S;                           % Adds initial welfare to each S_k of the whole matrix

Возникает разумный вопрос: зачем считать , начиная только со второй величины (for i = 2:n)? Дело в том, что это делается исключительно в целях наглядной визуализации. При построении графика в следующем коде будут строиться траектории , и если бы было написано for i = 1:n, то тогда уже с самого первого значения некоторые траектории бы выходили из , некоторые — из . Так как в данной программе из соображений оптимальности лучше не задействовать нулевое значение (из него частица выходит, но не рисуется, так как прибавление происходит сразу), то просто-напросто сдвинем нумерацию на оси абсцисс на единицу вправо. Теперь проведём серию тестов и наглядно рассмотрим возможные траектории при некоторых вероятностях, длинах игры и количестве игр.

Визуализация (graphS)[править | править код]

Три игры в 10 шагов при .
Пять игр в 100 шагов при . Видно, что частицу «тянет вниз» к точке .
Сто справедливых игр в 10000 шагов.
N = 3;                               % Number of games played
n = 10;                              % Number of tosses
q = 0.45;                            % Chance 1st player loses 1 rouble
x = 0;                               % Initial welfare offset

matrS = zeros(N, n);                 % Reserve memory for N rows n cols matrix
for i = 1:N                          % This loop fills the S matrix with S_k, yielding N trajectories
    matrS(i,:) = getS(n, q, x)';
    plot(matrS(i,:));                % Gives an image
    hold on;                         % Holds the axes for next trajectory overlay
end
hold off;                            % Clears axes for a new plot

Теперь подойдём к самой главной составляющей программной части — алгоритму, который позволил бы вычислять среднюю длину игры при заданных параметрах . Если теория верна, то нижеследующий эксперимент её лишь подтвердит. Также допишем в программу строчку, которая будет вычислять вероятность разорения первого игрока () при заданных начальных капиталах и сопоставлять её с теоретической.

Полная модель игры (Monte_Carlo)[править | править код]

N = 3000;                                 % Number of games played
n = 3000;                                 % Number of tosses
q = 0.5;                                  % Chance 1st player loses 1 rouble
p = 1-q;                                  % Chance 1st player wins 1 rouble
A = -10;                                  % 1st player budget
B = 10;                                   % 2nd player budget
x = 0;                                    % Budget offset towards 1st player
Bs = 0;                                   % amount of cases particle hits B (it will change soon)
As = 0;                                   % amount of cases particle hits A (it will change soon)

matrS = zeros(N, n);                      % Reserve memory for N rows n cols matrix
TAU1 = n * ones(N, n);                    % Fill another N rows n cols matrix with n's
for i = 1:N                               % This loop makes up N trajectories of S_k relying on input q, x, n
  matrS(i,:) = getS(n, q, x)';
  for j = 1:n
      if (matrS(i,j) == A)||(matrS(i,j) == B) % If a particle exceeds A or B, then
      TAU1(i,j) = j;                          % put the number of step into the table
      end
  end
  plot(matrS(i,:));                       % Displays a figure
  grid on;
  hold on;                                % Simultaneous plots within same axes
end
hold off;                                 % Clears axes for a new plot

TAU = (min(TAU1'))';                      % TAU = earliest step of [A;B] corridor overrun

% As [min] affects columns and gives row then we transpose TAU1,
% minimize it by rows and make it a column again
for i = 1:N                               % Our S_n series are ready; they nest in matrS
    for j=1:TAU(i)                        % Scan only till we encounter the escape step!
        if (matrS(i,j) == A);             % If a particle escaped through A (1st player busted)
        As = As+1;                        % then add +1 to 1st player's failures
        elseif (matrS(i,j) == B)          % Otherwise if its first threshold was B
        Bs = Bs+1;                        % then add +1 to 1st player's wins
        end                               % If n is not large enough, then
    end                                   % As + Bs may not make up N
end
ALPHA = As/(As+Bs)                        % Match alphas with their theoretical values
if (q == p)
   THEORALPHA = (B-x)/(B-A)
else THEORALPHA = ((q/p)^B - (q/p)^x)/((q/p)^B - (q/p)^A)
end
BETA = 1-ALPHA                            % Same for betas
if (q == p)
   THEORBETA = (x-A)/(B-A)
else THEORBETA = 1-THEORALPHA
end
meanTAU = mean(TAU)                       % Law of large numbers for great N's
if (q == p)
   THEORTAU = (B-x)*(x-A)
else THEORTAU = 1/(p-q)*(B*THEORBETA+A*THEORALPHA-x)
end

Отметим, что при небольших не все частицы вылетают из коридора, поэтому здесь надо подчеркнуть, что теория говорит: «при достаточно больших вероятность близка к ».

Тестирование[править | править код]

Нижеследующие данные рассчитаны для , .

№ теста ALPHA BETA meanTAU
1
2
3
4
5
6

В экспериментах 2 и 3 продемонстрировано свойство: если игра проигрышная для первого игрока, то увеличение ставки в модели эквивалентно сокращению , и в одно и то же число раз относительно нуля. Ставка увеличилась втрое — вероятность выскочить из коридора со значением выросла в 11 раз!

См. также[править | править код]

Примечания[править | править код]