1. Проблема разорения богатых игроков

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

Однако что, если мы немного уравняем шансы и сделаем нашего игрока бесконечно богатым? Кроме того, давайте добавим ему немного дисциплины и поставим ему цель (скажем, k $). Достигнув этой цели, игрок решает выйти, пока все идет хорошо, и идет домой со своим выигрышем.

Конечно, теперь игрок должен в конечном итоге достичь своей цели, поскольку по определению он продолжает играть до тех пор, пока не добьется этого, и он может играть столько, сколько пожелает.

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

2. Эмпирическое наблюдение небогатых игроков с кодом

В этом разделе мы сформулируем этот процесс с помощью цепей Маркова. Это означает определение пространства состояний для игрока. Здесь мы знаем, что к игроку всегда привязан номер в любой момент времени. И это число - его общая прибыль до этого момента. Когда он впервые приходит в казино, его общая прибыль составляет 0 долларов, поскольку он не играл. И когда он достигает целевой прибыли (k), он уходит. Итак, мы можем думать о прибыли как о состоянии, в котором он находится.

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

2.1. Формирование матрицы марковских переходов

Теперь количество возможных состояний, в которых может находиться наш игрок, бесконечно (например, он может получить тысячу решек подряд, и тогда его состояние будет -1000). Итак, для упрощения давайте пока сделаем его пространство состояний конечным, предположив, что у него есть определенный банковский баланс (скажем, b $). Также помните, что его цель - k $. Итак, теперь возможные состояния, в которых он может находиться, находятся в диапазоне от - b до k (он прекращает играть и уходит домой, если он либо израсходует весь свой банковский баланс, b или достигает своей цели, k). Чтобы конкретизировать, допустим, b = 3 и k = 2.

Понятно, что его общий выигрыш может находиться в одном из следующих состояний: [-3, -2, -1, 0, 1, 2]. Кроме того, когда он начинает игру в состоянии 0, он переходит в состояние 1 с вероятностью p и -1 с вероятностью 1− p. И если он находится в каком-либо состоянии (n), кроме двух состояний поглощения (- b и k), он переходит в состояние n +1 с вероятностью p и n −1 с вероятностью 1− p.

Мы можем выразить его вероятности перехода из одного состояния в другое в виде матрицы.

Теперь, если мы можем найти вероятности того, что игра закончится в каждом из поглощающих состояний (- b и k), мы можем использовать их для определения вероятности того, что игрок выиграть. Затем, чтобы увидеть, что происходит по мере того, как игрок становится богатым, мы можем постепенно увеличивать его банковский баланс b.

2.2. Использование матрицы переходных вероятностей для определения вероятности выигрыша игрока

Обратите внимание, что цепь Маркова игрока, описанная в предыдущем разделе, включает два типа состояний. Были терминальные состояния (также известные как «поглощение» или «повторяющиеся»), вход в которые приводит к немедленной остановке игры. Это - b (банкротство) и k (достижение своей цели). И тогда все состояния между этими двумя состояниями являются нетерминальными (также известными как «переходные»), что означает, что вход в них не приводит к остановке игры, и игрок будет играть еще раз. Мы знаем, что в конечном итоге игра остановится, и поэтому игрок окажется в одном из двух повторяющихся состояний. Многие цепи Маркова (не только те, которые соответствуют игрокам) имеют эти два типа состояний. И все они попадают в одно из повторяющихся состояний (обратите внимание, что как только цепочка входит в повторяющееся состояние, она остается там; поэтому строка в матрице перехода будет иметь нули, соответствующие всем другим состояниям, и строку, в которой строка пересекает точку главная диагональ).

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

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

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

Учитывая, что мы начинаем в переходном состоянии i, вероятности того, что игра закончится в каждом из поглощающих состояний, задаются i -й строкой матрицы:

Чтобы понять причину, приведите процесс поглощения из состояния i в состояние j в зависимости от того, что происходит при первом переходе: либо поглощение происходит при первом переходе с вероятностью R_ij, или переход происходит в какое-либо другое переходное состояние k с вероятностью Q_ik и оттуда переходит до тех пор, пока в конечном итоге не будет поглощен с вероятностью u_kj . Это можно выразить в виде матричного уравнения:

где решение для u генерирует уравнение (1) выше.

Вот метод Python, который создает матрицу для процесса игрока и решает приведенное выше уравнение (зависимость, только numpy).

Этот метод позволяет нам вводить баланс банка, цель и вероятность выигрыша в каждой игре (p). Это демонстрирует, что при p≥0,5 богатый игрок (большой b) всегда достигнет своей цели, если он будет продолжать играть. Однако как только p падает ниже 0,5, даже немного, вероятность того, что он никогда не достигнет своей цели, становится конечной даже для бесконечно богатого игрока.

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