Вход

Электронный гроссмейстер против белкового

Первый чемпион мира по шахматам среди роботов был «соотечественником» Крамника – нынешнего чемпиона среди людей

Сейчас трудно в это поверить, но первые настоящие шахматные программы стали появляться еще в конце 50-х годов прошлого столетия: о том, какими в ту лохматую старину были компьютеры и что они вообще были, поколение Интернета знает чуть ли не по сказкам. Это была удивительная эпоха, где мировая наука так сочетала сотрудничество и соревнование. С одной стороны, в науке принято публиковать достижения, ими обмениваются для общего поступательного движения. С другой — 25 лет без права переписки, сболтни чего лишнее.

Сама идея о том, что компьютер — вычислительная машина, хоть с английского переведи, хоть русское ЭВМ расшифруй — может не только «умножать столбиком», но и решать информационные, интеллектуальные задачи, была самостоятельной проблемой, причем скорее философской, чем практической. Это еще нужно было доказать. И в качестве примера такого доказательства Клод Шеннон, один из родоначальников информатики, объявил шахматы.

» Термин «искусственный интеллект» (AI) придумали Алан Тьюринг и Джон Мак-карти, загорая на пляже в Сан-Диего. Тогда же возникли знаменитый тест Тьюринга и первый алгоритм шахматной программы (который как программа никогда не был реализован). Дело было на исходе сороковых. Лишь спустя 40 лет мир узнает о рассекреченной «Энигме» — первая вычислительная машина как раз и была предназначена для решения интеллектуальной задачи — расшифровки немецких сообщений. Ее создатель А. Тьюринг в то время никому не мог о ней рассказать.

Первые слухи о создании по-настоящему играющей шахматной программы донеслись в 1958 году. Трудно сказать, кто же первым заставил компьютер «играть» — наши или американцы. Достоверно одно — это были Джон Маккарти «у них» и Владимир Арлазаров «у нас». Разработки шли в ядерных центрах — соответственно в Лос-Аламосской лаборатории и в Институте теоретической и экспериментальной физики. Оно и понятно: где еще в те годы могли быть лучшие умы и лучшая техника? В то немногое время, которое у последней оставалось свободным от решения основной задачи, первые занимались интересными вещами.

«Программы были очень слабые, — вспоминает сам Арлазаров в одном из интервью, — потому что тогда были и предельно примитивные машины, и непривычное еще к новизне наше мышление. Тогда, на заре вычислительной техники, мы только осознали, что принципиально могут делать машины».

В 1967-м состоялся первый международный матч шахматных программ СССР — США (то есть, разумеется, неофициальное состязание между ИТЭФ и Стэндфордским университетом, где к тому времени трудился «отец» искусственного интеллекта Маккарти). Ходы передавались по телеграфу — по одному в день. Попробуйте представить себе начальника почтового отделения рядом с нашим ядерным центром, передающего в Америку шахматные нотации и принимающего оттуда такие же. 25 лет запросто могли «вкатить» и ему. Наши тогда выиграли в четырех партиях — 3:1.

Матч положил начало самому длительному в истории кибернетики научному эксперименту. В 1974 году в Стокгольме состоялся первый чемпионат мира среди шахматных программ. И снова наши победили, на этот раз опередив семерых конкурентов. Чемпионаты мира среди роботов с тех пор проходят регулярно каждые три года. Советский Союз в них участвовал еще дважды — в 1977-м русская машина поделила второе-третье место, в 1980-м — четвертое-пятое. Прогресс вычислительной техники к тому времени взял умопомрачительный темп — во всем мире, но, увы, не у нас. К началу восьмидесятых отставание СССР в компьютерных скоростях достигло нескольких порядков (сотен и тысяч раз), и соревноваться потеряло всякий смысл.

Затем в мире наступила эпоха РС — персональных компьютеров. Шахматное программирование сместилось из теоретической, научной области в технику — а значит, встало на коммерческие рельсы. Достижениями, находками уже никто друг с другом не делился: что в науке открытие, то в технике ноу-хау.

Тем временем в Советском Союзе новый правитель М. Горбачев призвал страну к всеобщей компьютерной грамотности. Но вот незадача: страна и рада бы поголовно освоить ПК, да только где ж их взять? До тех пор, пока новые поколения американских процессоров строились на транзисторах и их можно было распилить, разглядеть под микроскопом и скопировать, отечественная электронная промышленность с переменным успехом эти пляски с бубном осуществляла. Но как только дело дошло до чипов на одном кристалле — и без того гробоподобный проект «отечественный компьютер» был похоронен окончательно. В общем, все, что просочилось на просторы СССР к середине 80-х, осело в основном в закрытых НИИ.

Однако наиболее изобретательные граждане вскоре обнаружили, что ПК в стране, в принципе, имеются. Только расшифровывать эту аббревиатуру следует как… программируемый калькулятор. Поскольку сравнивать было не с чем, именно «калькуляторная» грамотность и заменила на какое-то время компьютерную. Появился даже всесоюзный «Клуб компьютерных игр», обосновавшийся на страницах журнала «Техника — молодежи». Примерно до 1990-го года раздел был посвящен исключительно калькуляторам.

Что же представляла собой эта первая в нашей стране массовая игровая платформа? Самый обыкновенный инженерный калькулятор, где, кроме способности вычислять синусы и логарифмы, была возможность составить программу в 97 команд. Имелись операторы циклов, условных переходов и прочие необходимые вещи. Была и оперативная память из… 14 ячеек. Плюс некоторое количество «зашитых» в память подпрограмм. В общем, переводя на современный язык, размер ОЗУ составлял примерно 500 байт.

» Рудиментарный — наверное, один из последних — экземпляр программиру- емого микрокалькулятора довелось застать и мне, тогдашнему пятикласснику, году так в 92-м на прилавке нынешнего «Техцентра» на Марата. У нас тогда «по блату» – классный руководитель М. Лебединская была преподавателем ОИВТ — с пятого класса начались компьютерные занятия (впрочем, и те школьные компьютеры БК-0010 стоило бы взять в кавычки). Ради этого увлечения околачивался в школе на каникулах и даже с закапанными атропином глазами. Порывался было накопить денег (родители поддержали) на «бэкашку» (продавалась она почему-то в книжном магазине на Паши Савельевой), но вскоре со страной стало совсем плохо, и сбережений не хватило даже на калькулятор. А так хотелось опробовать откопанные где-то «крестики-нолики» для него.

И вот на этой «платформе» были реализованы практически все существовавшие тогда жанры компьютерных игр! Больше всего полюбились советскому народу (и программистам) симуляторы (!) и стратегии, но не были забыты аркады, логические игры и даже ролевые.

Надо сказать, что для игр на калькуляторах, не говоря уже о программистских ухищрениях, нужно было обладать недюжинной фантазией. Ведь ничего, кроме голых цифр, он отобразить не в состоянии, а игрок на их основе должен представить себе состояние управляемого объекта, свое положение в игровом мире и все остальное.

Все началось с маленькой программульки под названием «Лунолет», выросшей в «Рейс Кон-Тики». Вот ее сюжет: небольшой двухместный космический аппарат стартует с поверхности Луны и выходит на круговую орбиту. Совершает хитрые маневры по сближению с орбитальной станцией и в конце концов стыкуется с ней. Пополняет запасы топлива, отрывается от станции и совершает перелет к Земле. Входит в атмосферу, тормозится, планирует, а потом совершает мягкую посадку на поверхность океана.

Попробуйте попросить знакомого программиста (сейчас ведь программированию учат в школах) написать по этому сюжету космический симулятор, размер которого не превышал бы 500 байт. Скорее всего, он покрутит пальцем у виска: вместить столько разных вещей в такие узкие рамки невозможно. Тем не менее такая игра была сделана! Весь игровой процесс делился на шесть этапов, для каждого из которых приходилось вводить программу (вручную, с клавиатуры!) Сама игра выглядела так: вводим исходные данные, нажимаем кнопку «Старт/Стоп», машина пару минут жужжит и в итоге сообщает, например, что корабль успешно врезался в Луну.

Были и игрушки «в реальном времени», например, гонки с препятствиями: нули обозначали свободную дорогу, единицы — ямы и камни, двойки — машины соперников. Чтобы представить, на что приходилось идти программистам, чтобы реализовать такое, имейте в виду, что в процессе работы калькулятор реагирует только на клавишу «Старт/Стоп», а на экран выводит всю прогоняемую через него информацию — получается мелькание чисел. Есть соображения, как это сделать?

Решение потрясает. Калькулятор мог вычислять углы в градусах, радианах и градах, причем переключаться между режимами можно прямо в процессе вычислений. Когда нужно было узнать о действиях игрока, вычислялся какой-нибудь синус. Если угол в радианах, получается одна величина, в градусах — другая, в градах — третья. Так программа узнавала, куда, например, повернут «руль». С выводом еще проще: чтобы глаз успевал рассмотреть число на дисплее, вставлялись три пустых команды — и одни и те же цифры выводились три раза подряд.

В области логических игр дошло до совсем уж невероятного. Наши умельцы не остановились на каких-нибудь «крестиках-ноликах», а взялись за шахматы и шашки!

Первая шахматная программа под калькулятор предлагала поставить мат слоном и конем черному королю, управляемому ПК. Черные оборонялись весьма искусно, так что приходилось немало повозиться. Потом были программы, в которых ПК ставил ладьей или ладьей и слоном мат королю, управляемому человеком. Некоторые навсегда бросали шахматы после того, как «железка» ставила им мат на девятом ходу.

Успели появиться и программы, играющие полноценную партию в шашки! Если вы не забыли, шахматная доска состоит из 64 клеток (в шашках используются 32 черных), с каждой стороны участвуют по 12 шашек. Слабо уместить все это в 14 ячейках памяти, причем оставив пару-тройку для вспомогательных вычислений? Программисты умудрились запихнуть всю доску всего в два числа!

Шашки стали, так сказать, лебединой песней калькуляторов — на горизонте уже замаячили настоящие IBM PC.

» Как знать, может, калькулятор осилил бы и полноценные шахматы, но к тому времени в страну пришли, наконец, импортные бытовые компьютеры класса «ZX Spectrum», запомнившиеся тем, что с душераздирающими писками и скрипами сохраняли файлы (и читали их) с помощью обыкновенных магнитофонов. При этом чем выше был уровень воспроизведения или записи, тем надежнее получался результат. Трудно описать словами восторг домашних и соседей счастливых обладателей «Спектрумов».

5 декабря 2006 г. в Бонне «электронный шахматист» Дип Фриц одолел-таки «белкового» Владимира Крамника в серии из шести партий. Эпохальный научный эксперимент близок к завершению. Четыре года назад предыдущая версия «Фрица» сыграла с тем же Крамником вничью. Еще через несколько лет, считает чемпион среди людей, состязаться с машиной будет вовсе бесполезно. Да, человеческий мозг и машина работают по-разному. Компьютер по-прежнему перебирает варианты. Но делает это все быстрее и эффективнее. К счастью, думать, то есть выбирать для себя задачи, он вряд ли научится в обозримом будущем — на наш с вами век восстания машин не предвидится.

Довелось и мне поучаствовать в организации матча «человек-машина». То есть — где-то в среднем школьном возрасте (ближе к младшему) побывать в роли «куклы», передвигающей фигуры по решению программы. Ржевский шахматист наотрез отказался смотреть в телевизор и тыкать пальцами в кнопки. В роли «Фрица» выступали игровая приставка «Денди» и программа «The Chessmaster» на последнем, 16-м, уровне сложности (сам я пробовал играть на третьем). Матч так и не завершился — через полчаса отцу надоело ждать ответа на e2 — e4, а быстрее игрушечный процессор шевелиться не умел.

По публикациям в журналах «Хакер», «Подводная лодка», «Политехнические чтения».