Идеальная ставка | страница 48
Он решил не угадывать наобум, а использовать марковское свойство, чтобы предположения раз за разом становились все более точными. Для начала требовалось оценить качество каждого предположения. Корам загрузил в компьютер роман «Война и мир» и проанализировал, как часто в тексте встречаются различные пары букв. Это помогло ему понять, с какой вероятностью эти сочетания букв должны появляться в зашифрованных письмах.
Корам раз за разом случайным образом включал в шифр пару букв и проверял, улучшилась ли его догадка. Если полученное буквосочетание больше, чем предыдущее, походило на фрагмент осмысленного текста, Корам двигался дальше, если нет – возвращался к предыдущему предположению. Иногда его ставили в тупик невероятные сочетания. Стоявшая перед Корамом задача напоминала сборку кубика Рубика, где самый быстрый путь к решению иногда включает шаг, который на первый взгляд ведет в неправильном направлении. Как и в случае с кубиком Рубика, этот шифр невозможно было разгадать, предпринимая шаги лишь «в сторону улучшения».
Идея комбинирования метода Монте-Карло с марковскими свойствами впервые зародилась в лабораториях Лос-Аламоса. Когда в 1943 году Ник Метрополис присоединился к команде, он работал над проблемой, которая занимала еще Пуанкаре и Бореля: Метрополис пытался понять механизм взаимодействия между отдельными молекулами. Для этого необходимо было решать уравнения, описывающие столкновение частиц, – почти невыполнимая задача, учитывая уровень вычислительной техники тех времен.
Метрополис и его коллеги мучились над этой проблемой годами, прежде чем осознали: соединив метод перебора Монте-Карло с цепью Маркова, они смогут сделать заключение о свойствах вещества, исходя из взаимодействия его частиц. Путем последовательных и продуманных предположений можно будет постепенно получить представление о величинах, которые невозможно наблюдать напрямую. Прием, получивший название «марковской цепи Монте-Карло», по сути, основывался на том же подходе, который использовал Корам для расшифровки тюремных сообщений.
Для взлома тюремного кода Кораму потребовалось проверить несколько тысяч вариантов буквосочетаний, что заняло намного меньше времени, чем расшифровка сообщения путем обычного перебора. Одна из тюремных записок повествовала о драке: «Тот парень орал как ненормальный а я говорю por favor[1] чувак завали дупло я тут в шахматы играю».
Чтобы расшифровать тюремные письма, Кораму необходимо было рассмотреть набор ненаблюдаемых величин (букв, каждая из которых соответствовала определенному символу) и проанализировать их в составе буквосочетаний – той единицы, которую он мог выделить. В лошадиных скачках игроки в тотализатор сталкиваются с похожей проблемой. Они не знают ни того, насколько непредсказуем каждый участник забега, ни того, как каждый возможный фактор повлияет на прогноз. Но для отдельно взятого уровня неопределенности и ограниченной комбинации факторов можно вычислить степень совпадения прогнозируемого результата с реальными итогами забега. Этот метод отражает классический подход Улама: вместо того чтобы решать набор сверхсложных уравнений, игроки поручают эту работу компьютеру.