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