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

У машины есть две щели, куда каждый из двух игроков помещает монеты, чтобы их посчитали. Карты обоих игроков выкладываются в нужную позицию на поле. Еще есть зона карточного стола, где играют в карты, и зона, куда складывают карты дома. Итоговую карту раунда кладут в последнюю зону — зону выхода. Выбирают из двух итоговых карт, на одной стоит 0, а на второй — 1.
Игра идет слева направо следующим образом. Мы сдаем небольшое произвольное число карт двум игрокам и дому — это, соответственно, И1, И2 и Д. Потом мы играем серию раундов. Каждый игрок должен положить монету в щель, чтобы получить право сыграть раунд. Сделав это, игроки открывают карты — И1 и И2. Эти карты отправляются в зону карточного стола (там они складываются, и мы получаем сумму — С). Сумма играет против дома. Если у игроков больше карт, чем у дома (С >Д), то они выиграли. В этой ситуации выход равен 1. Нам нужно, чтобы в конечном итоге это означало «Есть две монеты». Если выигрывает дом, то выход равен 0, и мы надеемся, что это будет означать «Двух монет НЕТ». В любом случае карты игроков отправляются в начальную точку и начинается следующий раунд.
Поскольку мы сдаем произвольное количество карт и оно определяет результат, мозг настольной игры тоже будет действовать произвольно. Нам необходимо, чтобы после многократного повторения игры наш мозг научился менять изначальное случайное число карт на число, которое всегда дает нужный результат. То есть в конце выход должен быть равен 1, только если присутствует две монеты. Результат, которого мы хотим добиться, представлен на рис. 45.
Машина учится это делать в ходе серии раундов, и после каждого раунда мы применяем следующие простые порождающие правила,где М1 обозначает число монет, которое положил игрок 1 (одну монету или ни одной), а М2 — число монет, которое положил игрок 2.
Правило П1:
ЕСЛИсыгранная партия дает правильный выход,
ТОне делайте ничего — не меняйте число карт.

Правило П2:
ЕСЛИсыгранная партия дает на выходе 1, но мы хотели получить 0, чтобы это соответствовало таблице выходов,
ТОзаберите М1 карт у игрока 1 и М2 карт у игрока 2.
Правило П3:
ЕСЛИсыгранная партия дает на выходе 0, но мы хотели получить 1,
ТОдобавьте М1 карт игроку 1 и М2 карт игроку 2.
Эти правила — обучающий алгоритм для нашего мозга. Пора оценитьих, поэтому давайте посмотрим на примеры.
Представим, что сейчас в игре три карты, сданные игроку 1, четыре — игроку 2 и три — дому (И1 = 3 ,И2 = 4 ,Д = 5). В щели 1 есть монета (М1 = 1), а в щели 2 монеты нет (М2 = 0). Мы запишем, что (М1 ,М2) = (1 ,0).
Поскольку в щели 1 есть монета (М1 равно 1), то три карты И1 выкладываются на стол, а карты И2 — не выкладываются, потому что М2 равно 0. Соответственно, на карточном столе у нас три карты (рис. 46).
Можно обобщитьколичество карт (С), которое отправляется на стол. Оно вычисляется с помощью уравнения:
С = ((М1 ×И1) + (М2 ×И2)) .

В нашем примере получается (1 ×3 + 0 ×4) = (3 + 0) = 3. Из операции умножения следует, что значения М1 и М2 определяют, будут ли сложены соответствующие суммы. Если М равно 0, то значение И не учитывается в сумме, а если оно равно 1, то значение остается.
Таким образом, сумма С для нашего мозга равна 3, и это меньше, чем Д, равное 5 (3 <5), поэтому карта, помеченная как 0, помещается в зону выхода: «Двух монет НЕТ». Это выход, который мы хотим получить, когда в игре только одна монета. В этом случае мы применяем правило П1 и ничего не делаем.
Теперь попробуем другой вариант. Все карты возвращаются туда, откуда они взяты. Однако на этот раз давайте поместим по монете в обе щели: (М1 ,М2) = (1 ,1). Теперь карты обоих игроков идут на стол, поскольку в обеих щелях есть монеты. И остается семь карт: (1 ×3 + 1 ×4) = 7.
Теперь 7 >5, и на выходе 1, как нам и нужно: «Есть две монеты». И снова мы следуем правилу П1 и не делаем ничего.
Более того, если мы попробуем все четыре комбинации монет в щелях, то каждая из них даст правильный выход. Ура! Обучения не потребовалось. Но в данном случае нам повезло. Нам случайно сдали столько карт (три, четыре и пять), что машина сработала правильно. С таким количеством карт она всегда может правильно сказать, присутствуют две монеты или нет. Но что будет, если не повезет? Тогда придется играть по-другому и учиться необходимому поведению. Давайте рассмотрим другую игру.
Мы снова начинаем с того, что произвольно сдаем игрокам и дому небольшое количество карт. На этот раз у игрока 1 на столе шесть карт, у игрока 2 — четыре карты, и у дома тоже четыре карты.
Ситуация, когда ни в одной щели нет монет, а значит, М1 и М2 равны 0, легкая. Карты не перемещаются, для дома мы получаем 0 <4, и на выходе 0: «Двух монет НЕТ». Условие (М1 ,М2) = (0 ,0) корректно. Это показано на рис. 47.
Если монета есть только в щели 2, значит, (М1 ,М2) = (0 ,1). Тогда карты игрока 2 идут вперед. Игрок 1 остается на месте, и на стол попадают четыре карты. На выходе мы имеем 0: «Двух монет НЕТ». Помните, что для получения 1 на выходе нам нужно, чтобы сумма карт на столе была больше (а не просто равна) Д. То есть ничего не меняется, и мы снова следуем правилу П1. Условие (М1 ,М2) = (0 ,1) корректно.

Теперь поместите одну монету в щель М1 и ни одной — в щель М2. И снова мы хотим получить на выходе 0, однако посмотрите на карты! На карточном столе у нас 6 ≥4, а значит, на выходе 1, и это неверно! Нужно применить правило П2. В нем говорится:
Читать дальшеИнтервал:
Закладка: