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

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