Книга: Вычислительное мышление: Метод решения сложных задач
Назад: Жизнь как игра
Дальше: Глава 10 Видим за деревьями лес

Игры, в которые играют люди

Любите играть в слова?
В игре Конвея не было двух конкурирующих игроков, то есть отсутствовал соревновательный момент, который часто привлекает нас в играх. Вот простая игра под названием «Бусы, хлеб, хлеб», в которую мы сейчас попробуем сыграть (возможно, вас порадует, что в баню идти не придется). Сначала рассмотрим правила. Запишите слова:
БУСЫ, ХЛЕБ, БАНЯ, ПЛУГ, СНЕГ, ГАТЬ, УРОН, ОРЕХ, МАРС.
Вот правила:
1. Первый игрок выбирает слово из списка, вычеркивает его из списка и записывает.
2. Второй игрок делает то же самое с еще не вычеркнутым словом.
3. Игроки продолжают ходить до тех пор, пока кто-нибудь не выиграет. Победителем становится тот, кто первый сможет собрать три слова с одной и той же буквой.
Например, игра может пойти так:

 

игрок 1 берет БУСЫ,
игрок 2 берет ХЛЕБ,
игрок 1 берет БАНЯ,
игрок 2 берет ГАТЬ,
игрок 1 берет ПЛУГ,
игрок 2 берет ОРЕХ,
игрок 1 берет УРОН...

 

…и выигрывает, собрав БУСЫ, ПЛУГ и УРОН. Это три слова, в которых есть буква У.

 

Сыграйте несколько партий, чтобы понять принцип. А потом читайте дальше — и найдете хитрый способ выигрывать… а может, догадаетесь сами? Мы вернемся к этому чуть позже.
ПОДСКАЗКА. Подумайте, как расположить слова в квадрате, чтобы было легче заметить выигрышный набор слов. Вы уже знаете очень похожую игру!
Как обыграть человека
Мы знаем, что компьютеры творят чудеса, и одно из таких чудес — умение выигрывать у людей в игры. Компьютер может победить чемпиона мира по шахматам, но как? А может ли обычный листок бумаги действовать столь разумно, что будет играть так же хорошо, как человек? Да. Если правила будут верными. И сейчас у вас есть шанс сыграть против такого листка и посмотреть, что получится.
Крестики-нолики — популярная игра на основе сетки, позволяющая быстро развлечься и посоревноваться. Давайте сыграем — и заодно рассмотрим базовые принципы, благодаря которым компьютеры могут участвовать в играх. В игре «Крестики-нолики» участники по очереди делают ход на поле 3×3. Один ставит нолики, другой — крестики. Сделать ход — значит написать X или 0 в пустой клетке на доске. Первый, кто поставит три символа в одну линию по горизонтали, вертикали или диагонали, выигрывает. Если никому не удастся это сделать, получается ничья.

 

 

Игра со страницей, на которой напечатан рис. 60, будет нелегкой! Когда настанет ее очередь ходить, делайте, что сказано в инструкциях к рисунку. Потом делайте любой ход. Страница начинает первой и играет крестиками.
Ну что, выиграла страница? Или получилась ничья? Или вам все же удалось обыграть этот листок бумаги?
В лучшем случае (если вы не мухлевали) будет ничья. Удалось ли странице сыграть достойную партию? Она немного разбирается в крестиках-ноликах и действует осмысленно. Как и в игре «Жизнь», для выигрыша здесь тоже требуются тщательно продуманные и проверенные инструкции — знакомый нам теперь алгоритм. Обычно такие инструкции хранятся в памяти компьютера, чтобы он им следовал.
Но компьютеры делают только то, что придумал программист. Если что-то пойдет не так, его действия окажутся не слишком разумны. Мы написали правила, приведенные выше, в расчете на то, что страница будет ходить первой… а если она начнет второй? Попробуете? Так ли умно она играет? Мастерство программиста заключается в том, чтобы написать правила для любой вероятности. Хотите написать хорошие инструкции для игрока 2? Позаимствуйте знания у нашего листка бумаги, и вы будете непобедимы.
Но действительно ли это интеллект? Ведь тут просто выполняются кем-то написанные правила. Может быть, надо обращать внимание на результат. Лист бумаги и правда играет так же хорошо, как лучшие игроки-люди, и он непобедим — по крайней мере когда ходит первым. В более сложных играх, например в шахматах, алгоритмы должны быть более изощренными, но идея остается прежней. Для этого алгоритма человек разработал точную последовательность ходов. Однако шахматы слишком сложны, чтобы заранее определить все необходимые для победы правила. Поэтому компьютерам-шахматистам необходим алгоритм, указывающий, как прийти к победе самостоятельно.
Сегодня компьютеры обыгрывают в шахматы гроссмейстеров. Раньше мы считали, что шахматы — самый сложный тест для компьютерного интеллекта. Однако если у вас есть быстрая и достаточно изощренная программа плюс достаточный объем памяти, чтобы компьютер мог просчитать тысячи и тысячи возможных комбинаций для любой позиции на доске, то следует выбрать ту, которая открывает возможности для наилучших позиций — и таким образом позволяет обыграть человека. Это называется поиском по дереву. Мы использовали подобный алгоритм при разработке инструкции для безупречной партии в крестики-нолики. Однако в шахматах слишком много вариантов, чтобы подобным образом охватить все. Шахматные компьютеры смотрят на много ходов вперед, но не до конца игры. Хороший шахматист-человек не просто просчитывает абсолютно все ходы — он ищет знакомые комбинации и формирует определенную последовательность. Он играет путем сопоставления с образцом.
Существуют и более сложные настольные игры, которые ставят перед компьютерами новые задачи, — например, древняя игра го. В отличие от шахмат, го — популярная стратегическая игра для двоих, у которой простые правила и в которую играют на поле-сетке 19 на 19. Однако число возможных сочетаний на доске огромно, и, чтобы провести такой анализ, о котором мы говорили выше, нужно просчитать число ситуаций, превышающее число атомов во вселенной. Компьютеры не могут выиграть в го, как выигрывают в шахматы.
Поэтому исследователи подошли к го иначе, чем к шахматам, для которых компьютер запрограммировали именно на хорошую игру. Чтобы победить мастера го, компьютерную программу AlphaGo снабдили мощным обучающим алгоритмом общего назначения, в котором использовали уже рассмотренные нами методы. Алгоритм AlphaGo извлекал победные комбинации из сыгранных партий и совершенствовал навыки с каждым выигрышем или поражением. В итоге в 2015 г., многому научившись, AlphaGo выиграла у профессионального игрока в го в турнире из нескольких партий. В 2016 г. она победила одного из лучших мастеров мира Ли Седоля в турнире из пяти партий со счетом 4 : 1. Это еще один успех на счету искусственного интеллекта, который играет в игры.
Компьютер играет и в другие типы игр без доски, например в покер. Предназначенные для этой игры покерные боты могут выиграть у человека, но им приходится иметь дело с иным типом игровой сложности. В отличие от шахмат и го, где все на виду, покер — игра с неполной информацией. Вам неизвестно, какие карты есть у других игроков и какие карты сдадут. Покерные боты часто обращаются к вероятности, чтобы сделать наиболее верную догадку, — почти как искусные игроки. Исследования в этой области помогают ученым понять, как мы, люди, справляемся с риском и принимаем решения.
Совершенствуем игру
Четко описанные наборы правил для ИИ вроде нашего алгоритма для крестиков-ноликов постоянно возникают в настоящих играх. Часто они стоят за компьютерными версиями настольных игр, в которые играют против компьютера. В многопользовательских играх бывают так называемые «несобственные персонажи» (за которыми не стоят игроки). В них интегрированы правила для искусственного интеллекта, контролирующие их взаимодействие с настоящими игроками, что делает игровой процесс интересным и достоверным. Также ИИ часто следит за показателями игроков-людей, чтобы игра была достаточно сложной и интересной. В зависимости от этого, например, выбирается уровень сложности. Иногда искусственный интеллект скрыт и решает другие задачи — например, выясняет, на какой телефон и экран какого размера загружается приложение, или проверяет, достаточно ли хорошо работает сетевое соединение. Еще он фиксирует, насколько хорошо справляются игроки, какие роли они выбирают чаще всего и реже всего, по каким причинам они прекращают игру и что оказывается слишком трудным для большинства игроков. Все эти данные позволяют разработчикам адаптировать игровой процесс к потребностям и повысить объем покупок в игре.
Как выиграть в «Бусы, хлеб, баню»
Давайте вернемся к нашей игре. Проследить, какие слова выиграют, довольно сложно, если не знать один трюк. Разместите слова в квадрате, как показано на рис. 61 (проследите, чтобы противник этого не увидел). Вычеркивайте слова по ходу игры, используя X для своих ходов и O — для ходов другого игрока.
Сыграйте несколько партий. Теперь гораздо легче решить, куда двигаться. Если у вас три слова на одной линии, то окажется, что есть и три одинаковые буквы. Если у противника любые два слова в одной линии, то нельзя допустить, чтобы он поставил туда третье. Теперь вы просто играете в крестики-нолики, а ваш противник режется в «Бусы, хлеб, баню». Это абсолютно одинаковые игры — на победу работает один и тот же принцип!
Расположение слов в квадрате играет важную роль. Слова с одной и той же буквой стоят в одну линию. Это значит, что, выбирая три слова с одной буквой, вы ищете линии (визуальный образец), а не читаете слова. Если вы отлично умеете играть в крестики-нолики (используя инструкции, то есть алгоритм, приведенный выше), то в игре «Бусы, хлеб, баня» вам тоже не будет равных. Один алгоритм выигрывает в обеих играх.

 

 

Итак, мы провернули трюк с вычислительным мышлением, который использовали в головоломке с экскурсоводом. Мы определили, что, если изменить представление, задача окажется такой же, как уже решенная. В этом случае берут решение из предыдущей задачи и применяют его к новой. Задачи обобщают до одного уровня, а значит, и решения тоже.
Как мы видим
Почему игра становится легче, когда слова вписаны в сетку, а не показаны списком? Разница исключительно в том, что информация теперь представлена так, что мозгу легче ее обрабатывать. Наш мозг отлично выделяет визуальные закономерности — для этого требуются совсем небольшие усилия (мы вернемся к этому в следующей главе). Это гораздо проще, чем искать буквы и запоминать слова в списке. Способ структурирования и представления информации играет большую роль. Это еще один пример, который показывает, почему выбор подходящего представления данных так важен. Он упрощает сложную задачу.
Это одна из причин, по которой графические интерфейсы пользователей — усовершенствование по сравнению со старыми системами, которые требовали ввода команд. Благодаря графическому интерфейсу вы обрабатываете информацию визуально, не прибегая к словам. Сопоставление с образцом при поиске необходимого — это зрительное сопоставление, не связанное с обработкой и пониманием слов.
В наши дни игры необходимо разрабатывать с учетом ощущений пользователя. Например, приложения должны привлекать ваше внимание и быть понятными сразу, в противном случае их удалят. Дизайнеру необходимо знать, как работает мозг, и обязательно учитывать это — таким образом можно гарантировать, что пользователю легко вступить в игру и что игровой процесс интуитивно понятен.
Игры, игры повсюду
«Жизнь» Конвея — это игра, но настоящая жизнь сегодня тоже превращается в игру. Философия игр и их популярность находят новое применение благодаря идее геймификации. В ходе этого процесса элементы и принципы игры используются в новых нетипичных сферах, например чтобы людям было увлекательнее учиться, заниматься спортом, производительно работать в офисе. Элементы игры даже применяют для борьбы с пассивностью избирателей.
Эти приемы эксплуатируют естественную склонность многих к конкуренции, совершенствованию навыков, стремлению к достижениям или повышению статуса в группе друзей. В играх могут участвовать «игроки», работающие вместе или соревнующиеся друг с другом. Они зарабатывают награды в виде баллов, знаков отличия, виртуальной валюты или перехода на новый уровень. Награды видимы для всех, например в таблице лидеров, что поощряет игроков выполнять задания. Однако этот выраженный соревновательный элемент нравится не всем, поэтому многие приложения в плане геймификации рассчитаны на то, чтобы человеку было интересно заниматься предложенным и чтобы это было похоже на игру.
Также существуют игры, которые не просто доставляют удовольствие игрокам, но и помогают решить важные научные и культурные задачи. Например, сегодня одни игры помогают сортировать огромные объемы данных о форме галактик, разрабатывать лекарства или каталогизировать древние рукописи. Другие помогают тегировать изображения в сети хорошими описаниями, чтобы облегчить слабовидящим восприятие изображений. Таким образом коллективные интеллектуальные ресурсы и навыки людей-игроков помогают компьютеру сортировать для обработки сложные данные. Человеческий мозг все еще справляется с этим лучше.
Компьютеры уже могут победить лучших игроков-людей в шахматы и го, однако еще есть игры, в которых люди сильнее. Обычно в них играют на сетке, и они ближе к настоящей жизни.
Назад: Жизнь как игра
Дальше: Глава 10 Видим за деревьями лес