Об этой книжке нам впервые рассказал Васильич на одном из занятий радиокружка.
‒ Мальчики! ‒ говорил он, высоко поднимая книжку над головой, чтобы всем было видно, ‒ мальчики, прошу обратить внимание!
‒ В книжных магазинах нашего города (далее были названы адрес номер 1 и адрес номер 2) замечена в продаже вот такая книжка. Настоятельно рекомендуется к приобретению и внимательному прочтению. Может быть весьма полезной в вашем техническом творчестве. Записывайте название и авторов.
Книжка называлась "Кибернетика в самоделках", авторы Б. М. Игошев и Д. М. Комский. Тонкий бумажный переплёт, красно-белая обложка. На обложке нарисован смешной робот, словно из мультфильма "Ну, погоди!".
[Читать или скачать книжку в формате .PDF]
Дело было в середине 80-х. И хоть в те годы в нашем городе книжные магазины не пустовали, хорошая техническая литература появлялась на прилавках не так уж часто.
А в отличие от произведений классиков марксизма-ленинизма, собраний сочинений вождей и материалов очередных съездов и пленумов, надолго она там не залеживалась.
Поэтому сразу после занятий мы с товарищем прошагали лишние пару кварталов в сторону ближайшего книжного и приобрели по экземпляру рекомендованного Васильичем издания. По 60 копеек за штуку.
Следующие два-три дня ушли на чтение. Специально читал медленнее, растягивая удовольствие "на подольше". В книжке описывались несколько радиоэлектронных кибернетических конструкций, собранных на доступных в то время радиоэлементах, в основном на транзисторах, диодах и электромагнитных реле.
Больше всего по содержимому и стилю изложения книга напомнила одну из любимых, "Радиоэлектронные игрушки" Войцеховского, только в гораздо меньшем объёме. Так они потом и стояли рядом на технической книжной полке в домашней библиотеке много лет.
Я не помню, что собирал какие-либо конструкции, описанные в этой книжке. Кроме одной.
Причём для неё даже не понадобились радиодетали. Как говорится, в процессе сборки ни один транзистор не пострадал.
Впрочем, расскажу историю по порядку.
В 1961 году, за пару месяцев до исторического полёта Юрия Гагарина и всего через девять лет после появления на просторах могучего и нерушимого лозунгов "Кибернетика ‒ лженаука" и "Кибернетика ‒ «наука» мракобесов" далеко за океаном американский учёный Дональд Мичи (Donald Michie) сконструировал автомат для игры в крестики-нолики.
Примечательно, что автомат этот был построен не на радиолампах, не на реле, не на транзисторах и даже не на микросхемах.
Мичи построил его из трёхсот спичечных коробков.
Автомат был обучаемым, то есть вначале он "вообще ничего не умел". Для обучения требовалось проводить с ним сеансы игры, "наказывая" за проигранные автоматом партии и "вознаграждая" за выигранные. В качестве "вознаграждения" и "наказания" использовались разноцветные бусинки, добавляемые в тот или другой спичечный коробок, соответствующий очередному ходу игры. Подробнее об этом можно прочитать, например здесь или здесь.
В книжке, посоветованной Васильичем, рассматривался более простой автомат, работающий по тем же принципам и обучающийся игре Баше.
Именно его и будем сегодня собирать.
Для постройки данного автомата нам потребуется всего 7 пустых спичечных коробков...
... и 18 бусинок трёх цветов.
Бусинки приобретались в ближайшем магазине товаров для рукоделия и шитья "Иголочка".
Я выбрал пластиковые бусинки в 4 мм диаметром, для большей наглядности и удобства лучше использовать бусинки большего размера. Бусинки диаметром 6-7-8 мм вполне подойдут.
Чтобы бусинки не раскатывались по столу удобно использовать крышки от пластиковых бутылок.
Для читателей не из нашей реальности кратко поясню правила игры Баше.
Играют двое. Из кучки мелких предметов, лежащих на столе (спички, камушки или других подобных) игроки поочерёдно берут, по желанию, один, два или три предмета. Выигрывает тот, кто возьмёт последний предмет из кучки.
В нашем случае играть будем спичками, начинать будем с 8-ми штук, первый ход за нами, второй за автоматом.
Кроме спичечных коробков и бусинок потребуется также пошаговый алгоритм игры, приведенный в виде семи схем из той же книжки.
Эти схемы соответствуют позициям, которые могут возникать во время игры перед очередным ходом машины, причём начинать игру всегда должен человек.
Размер каждой картинки 35 х 50 мм. Можно скачать, подобрать размер и и распечатать на принтере, можно нарисовать обычной шариковой ручкой или цветными карандашами.
[Скачать схему в формате .PNG]
[Скачать схему в формате .ODG для LibreOffice Draw]
В верхней части схемы кружком обведено число, показывающее, сколько камешков остаётся в куче.
В дальнейшем я буду именовать спичечные коробки по номеру, указанному в верхнем кружке каждого из них: седьмой коробок, шестой, пятый...
Стрелками на схеме обозначены варианты ходов машины в данной позиции. Рядом со стрелками записано число камешков, которые берёт "своим" ходом машина, а острие стрелки указывает, сколько камешков останется после этого.
Для большего удобства я сделал стрелки схем пошагового алгоритма цветными ‒ по цвету используемых бусинок.
В нижней части каждой схемы римскими цифрами от I до IV указывается, перед каким по счёту ответным ходом машины возможно возникновение данной позиции. Так, например, первые две схемы изображают ситуацию, которая может возникнуть только после первого хода человека; третья схема соответствует позиции, которая возможна как после первого, так и после второго хода, и т.д.
Каждую из схем нужно распечатать (или нарисовать), вырезать и наклеить на один из спичечных коробков.
В коробки нужно положить бусинки ‒ на каждую стрелку определённый цвет.
Закладываем в каждый из коробков по бусинке, соответствующей цвету нарисованной на схеме данного коробка стрелки.
Пять коробков получат по три бусинки трёх цветов, еще один коробок получит две разноцветные бусины и последний коробок получает всего одну бусинку.
После этого наша "машина" готова к работе.
Дальше начинаем играть, проводя попутно обучение автомата. Или обучаем автомат, заодно играя в своё удовольствие. В общем, совмещаем приятное с полезным.
Процесс обучения происходит следующим образом. Сделав первый ход...
Здесь, в качестве первого хода, я забрал две спички из кучки. В кучке осталось шесть спичек.
...выберите тот из коробков с цифрами I или I‒II, на котором изображена возникшая позиция. Встряхните коробок и, закрыв глаза, вытащите наугад из него одну бусинку. Затем посмотрите, какого цвета эта бусинка, и сделайте за машину ответный ход, взяв указанное соответствующее стрелкой число камешков из кучи.
Вытащенная наугад не глядя из шестого коробка бусинка оказалась красного цвета. Рядом с красной стрелкой на схеме стоит единичка. Соответственно ход машины ‒ одна вытащенная из кучи спичка.
Теперь снова ваш ход. Сделав его, повторяют ту же самую процедуру с одним из коробков, обозначенных цифрами I‒II, II‒III, II‒III‒IV. Так следует продолжать, пока партия не закончится.
Дальше снова хожу я. Выбираю из кучки одну спичку.
В кучке осталось 4 спички. Значит следующий ход машины будет определяться бусинкой, вытащенной из четвертого коробка.
Бусинка, извлечённая из четвёртого коробка случайным образом оказалась светло-голубого цвета. В соответствии с цифрой у стрелки голубого цвета вытаскиваем за машину из кучки две спички.
Далее снова мой ход. Я забираю из кучки две оставшиеся спички и выигрываю первую партию.
Если выиграет машина, положите все вынутые бусинки на место и играйте снова. Если же машина проиграет, то "накажите" её, забрав из коробка ту бусинку, которая представляла последний ход машины. Все остальные бусинки положите на место и продолжайте курс обучения ‒ играйте снова.
В соответствии с инструкцией возвращаю в коробок номер шесть красную бусинку и изымаю у машины за проигрыш из четвертого коробка бусинку светло-голубого цвета.
Возвращаю спички в кучку для очередной игры.
Партия номер два.
В этот раз я начинаю игру, достав из кучки одну спичку.
В кучке остаётся семь спичек, значит ход машины будет определяться коробком номер семь.
На этот раз из коробка была не глядя извлечена синяя бусинка. То есть ход машины ‒ три вынутые из кучки спички.
Мой ход. Из четырёх оставшихся спичек я выбираю одну.
Осталось три спички в кучке. Трясу коробком с номером три, извлекаю из него наугад светло-голубую бусинку и делаю ход за машину: выношу из кучки две спички.
Последнюю спичку из кучки забираю себе. Ура! Я снова выиграл.
Время разбора полетов. Спички снова на исходную. Синяя бусинка возвращается в коробок номер семь. Голубая бусинка изымается из коробка номер три, в крышку, к своей одноцветнице.
Партия номер три.
Делаю первый ход, забрав из кучки три спички.
В кучке остаётся пять спичек.
Трясу пятым коробком, извлекаю, отвернувшись, из него красную бусинку, в соответствии с красной стрелкой достаю за машину одну спичку из кучки.
Мой ход. Убираю из кучки одну спичку.
Ход машины. Три спички в кучке.
Из третьего коробка извлечена не глядя и наугад синяя бусинка.
В соответствии с цветом синей стрелки машина забирает три оставшиеся спички из кучки. Она победила.
При очередном анализе ситуации машине возвращены красная бусинка в коробок номер пять и синяя бусинка в коробок номер три.
Мне же, как игроку сделано (само)внушение, с просьбой играть внимательнее.
Спички снова возвращены на исходную позицию.
Таким образом я провёл еще несколько партий. Не считал точно, сколько их было.
В процессе игры ваш противник быстро накапливает опыт и обучается. Система наказаний построена так, чтобы свести к минимуму время, необходимое для обучения; но последнее зависит от мастерства партнёра машины: чем лучше он играет, тем быстрее "вырастит" достойного "противника".
Расчёт показывает, что для того, чтобы усвоить алгоритм победы, спичечной ЭВМ нужно потерпеть поражение не более чем в 12 партиях игры.
И ещё:
Если во время очередной партии какой-то коробок окажется пустым, то это значит, что дальнейшие ходы машины ведут к её проигрышу и она сдаётся. В этом случае надо её "наказать", забрав бусинку из предыдущего коробка.
Это правило, насколько я понял, нужно толковать следующим образом: не из предыдущего коробка, с большим номером, стоящего на столе, а из коробка, который был предшествующим и задействованным в ходе игры. То есть забирается бусинка с предыдущего хода.
Так или иначе, но после нескольких проведенных партий при соблюдении алгоритма действий мы получим обученный автомат со следующим расположением бусинок:
- Коробок номер семь ‒ одна синяя бусинка
- Коробок номер шесть ‒ одна светло-голубая бусинка
- Коробок номер пять ‒ одна красная бусинка
- Коробок номер четыре ‒ пуст, нет бусинок
- Коробок номер три ‒ одна синяя бусинка
- Коробок номер два ‒ одна светло-голубая бусинка
- Коробок номер один ‒ одна красная бусинка
И это настоящий монстр по игре Баше из восьми предметов! Спичечный монстр, которого вырастили и обучили мы сами!
В качестве примера вот три последующие партии. Так как в коробках осталось не больше одной бусинки мы можем играть в открытую.
Он побеждает во всех последующих партиях. Эта картонно-спичечная штука просто не оставляет нам ни одного шанса на выигрыш!
Контрольная партия номер 1.
Контрольная партия номер 2.
Контрольная партия номер 3.
В заключение хочу ответить на вопрос, возможно возникший у читателя этой статьи: "Как и где это можно применять? А, главное, зачем? Особенно сегодня, в век повсеместно разрабатываемого искусственного интеллекта и доступных простому пользователю нейросетей".
Поймите меня правильно, данной статьей я вовсе не призываю вернуться на 60 лет назад, к камням и палкам, к технологиям прошлого.
А всего лишь хочу напомнить, что принципы, проверенные и отработанные ещё в 60-х годах прошлого века с успехом можно применять (и они успешно применяются) и сегодня, на сегодняшних технологиях и элементной базе.
Замените спичечный коробок ячейкой памяти, а цветные бусинки соответствующими цифрами ‒ весовыми коэффициентами, напишите на любом из доступных вам языков программирования небольшую программку, работающую по данному алгоритму ‒ и получите возможность построения комбинаторной обучаемой системы с конечным количеством шагов.
Или робота (чат-бота), бегающего по ответвлениям прописанных скриптов, выдающего конечный результат, необходимый пользователю-собеседнику.
Уж чего-чего, а ячеек памяти в любом доступном гаджете сегодня не просто много, а ужасно много, в гигабайтах и терабайтах можно измерять.
И принципы эти становятся важны и востребованы "особенно сегодня, в век повсеместно разрабатываемого искусственного интеллекта и доступных простому пользователю нейросетей".
Разве вы откажетесь от своей, карманной, собственноручно разработанной, Алисы или Сири?
28 сентября 2020 года.
С уважением, Ваш @mp42b.
<-- Предыдущая статья | Содержание 2019-2020 | Следующая статья -->
#простые вещи #вычисления на коленке #mp42b