Шрифт:
Интервал:
Закладка:
Даже получив «в режиме ручного управления» добавочные инструкции, программа время от времени либо упускала реальные шансы, либо вела себя непоследовательно. Эта проблема хорошо знакома математикам. В 1930 году Курт Гёдель, годом раньше получивший докторскую степень, доказал теорему, согласно которой формальная арифметика не может быть одновременно полной и непротиворечивой. Его открытие потрясло научную общественность. Ведущие математики того времени работали над построением надежной системы правил и аксиом. С ее помощью ученые надеялись объяснить некоторые недавно вскрытые ими логические аномалии. Под руководством Дэвида Гилберта, немецкого наставника фон Неймана, исследователи составляли исчерпывающий комплекс правил, достаточных для доказательства любого утверждения и однозначных, то есть не содержащих внутренних противоречий. Но теорема Гёделя о неполноте показала, что это невозможно: любая теория рано или поздно потребует дополнения.
Логический ригоризм Гёделя создал для него проблемы и вне академического пространства. В 1948 году, готовясь к экзамену на получение американского гражданства, Гёдель заявил своему спонсору, Оскару Моргенштерну, что обнаружил в Конституции США некоторые противоречия, по мнению Гёделя, чреватые созданием предпосылок для легального установления в стране диктатуры. На что Моргенштерн заметил, что это не лучшая тема для обсуждения на собеседовании.
К счастью для Фоллека, команда разработчиков технологии Soar сумела обойти теорему Гёделя. Когда программа сталкивалась с трудностями, она самостоятельно усваивала новую инструкцию. Таким образом, если бот Фоллека не знал, как поступить в определенной ситуации, он мог выбрать произвольный вариант действий и добавить его к набору имеющихся инструкций. Если аналогичная ситуация возникала снова, программа обращалась к своей памяти и делала то же, что в прошлый раз. Такое «машинное обучение» с добавлением новых инструкций по ходу функционирования программы позволило избежать описанных Гёделем ловушек.
Вскоре Фоллек дал SoarBot сразиться в покер с человеком и компьютером, и выяснилось, что чемпион из его бота вряд ли получится. «Он играл гораздо лучше, чем самые слабые игроки-люди, – рассказал программист, – но намного хуже, чем лучшие игроки-люди и компьютеры». На самом деле по уровню мастерства SoarBot приблизительно соответствовал самому Фоллеку. Хотя он специально изучал покерные стратегии, но оставался слабым игроком, что накладывало ограничения на эффективность созданного им бота.
Начиная с 2004 года благодаря появлению дешевого программного обеспечения, позволяющего желающим самостоятельно конструировать ботов, роботы-картежники становятся все популярнее. Меняя настройки, игрок может решить, каким инструкциям будет следовать программа. Боты с хорошо подобранными инструкциями способны победить даже нескольких соперников. Но, как убедился Фоллек, программы, ограниченные жестким сводом правил, в принципе не способны играть лучше своих создателей. А судя по результатам этих ботов на покерных сайтах, большинство их авторов – игроки довольно посредственные.
Поскольку тактика, основанная на наборе жестких правил, оказалась далека от совершенства, авторы покерных программ обратились за помощью к теории игр. Однако найти оптимальную тактику для техасского холдема непросто. Из-за большого количества возможных комбинаций рассчитать идеальную стратегию на основе равновесия Нэша очень трудно. Решить эту проблему можно методом упрощения, создав условную версию игры. Так же как «урезанный» покер помог фон Нейману и Фергюсону понять основной принцип игры, упрощение способно подсказать тактику, близкую к подлинно оптимальной стратегии.
Самый распространенный прием заключается в сборе и группировке схожих рук по «корзинам»[3]. Например, можно просчитать вероятность того, что определенная пара карманных карт побьет другую пару карт, и объединить ее с руками, имеющими схожий потенциал. Подобная аппроксимация позволяет существенно снизить число потенциальных сценариев, нуждающихся в анализе.
Группирование данных встречается и в других азартных играх. Поскольку главное в блек-джеке – максимальное приближение к числу 21, – знание достоинства следующей карты дает игроку существенное преимущество. Бетторы, которые занимаются подсчетом карт, пытаются угадать достоинство следующей карты, отслеживая, какие карты крупье уже раздал и, следовательно, какие остались в колоде. Но в казино при игре используется до шести колод одновременно, и запоминать появление каждой карты бессмысленно. Вместо этого счетчики карт группируют их по категориям. Например, они разбивают их на три корзины – старшие, младшие и нейтральные. Во время игры они следят за тем, карты какого типа уже выходили. Если сдается старшая карта – счетчик прибавляет в уме единицу, если младшая – вычитает.
В блек-джеке группирование данных обеспечивает лишь приблизительный подсчет: чем меньше корзин использует игрок, тем меньше точность прогноза. Идеальной стратегии группирование не дает, оно скорее приводит к «почти равновесным стратегиям», из которых одни ближе к оптимуму, чем другие. Так же как отклонение от чистой стратегии дает пенальтистам больше шансов забить мяч, эти не-совсем-идеальные покерные стратегии, каждая по-своему, помогают игроку победить, меняя тактику.
Но даже с учетом группирования данных разработчику почти равновесной покерной стратегии предстоит много работы. Справиться с ней помогает техника «минимизации сожалений». Вначале мы создаем виртуального игрока и заставляем его придерживаться случайно выбранной первоначальной стратегии. Например, в заданной ситуации он может половину игры сбрасывать карты, а вторую половину – делать ставки, при этом ни разу не пропуская ход. Затем мы моделируем множество игр и предоставляем нашему герою возможность корректировать стратегию на основе сделанных ошибок. Скажем, если противник преждевременно сбросил карты, игрок пожалеет, что сделал большую ставку. Спустя какое-то время виртуальный покерист минимизирует количество своих сожалений и приблизится к оптимальной стратегии.
Минимизировать сожаления – значит спрашивать себя: «Что было бы, если бы я поступил по-другому?» Оказывается, способность ответить на этот вопрос чрезвычайно важна в азартных играх. В 2000 году ученые из Университета Айовы опубликовали результаты исследований, которые показали: люди с повреждением участка головного мозга, ответственного за чувство сожаления, – орбитофронтальной коры – за игровым столом ведут себя иначе, чем люди без такого повреждения. И не потому, что они хуже запоминают предыдущие ошибочные решения. Во многих случаях пациенты с повреждениями орбитофронтальной коры сохраняют достаточно хорошую рабочую память и не испытывают особых трудностей, если их просят разложить картинки по порядку или совместить изображения. Проблемы начинаются, когда пациенты сталкиваются с неопределенностью и необходимостью использовать прошлый опыт, чтобы оценить степень риска. Ученые обнаружили: если в процессе принятия решения не участвует чувство сожаления, пациент склоняется к большему риску. Выходит, с надеждой смотреть вперед, стараясь получить максимальную прибыль, недостаточно – иногда нужно оглянуться назад, оценить события в ретроспективе и уже с этих позиций пересмотреть стратегию. Такой подход идет вразрез с экономической теорией, в рамках которой акцент часто ставится на ожидаемую выгоду и стремление максимально увеличить будущий доход.