чтобы принять участие в семичасовой серии партий в скрабл против компьютерной программы Maven. Матч проводился по случаю официального пятидесятилетнего юбилея этой игры. (Если говорить точнее, игра уходит корнями во времена Великой депрессии, когда она называлась Lexiko. Ее изобрел один неудачливый архитектор.) Комик Мэтт Грэм и недоучка Джоэл Шерман были друзьями-соперниками и лучшими игроками в скрабл во всей стране (среди людей), причем последний являлся чемпионом мира и победителем двух чемпионатов страны. Программу Maven, которая в тот момент работала на лэптопе Toshiba, разработал Брайан Шеппард, программист, который начал заниматься скраблом в начале 1980-х, когда был стажером в IBM.
Несмотря на недавний провал человечества в шахматах, игроки в скрабл были настроены оптимистично. «У нас есть небольшое преимущество», – сказал Грэм в интервью газете Times. Однако Maven победила со счетом 6:3. Она лихо превращала хаос находившихся в мешке фишек в такие разнообразные существительные, как TIRAMISU, десертное блюдо с кофейным вкусом, и GROSZY, польские монеты[45].
«Если бы у нас с программой были равноценные фишки, думаю, первенство было бы за нами», – сказал после окончания соревнований Грэм, приписав поражение людей невезенью.
В конце 1970-х Брайан Шеппард, который тогда учился в элитной Средней школе наук Бронкса в Нью-Йорке, был капитаном математической команды. «Отличное было время», – со смехом сказал он мне. Как часто случается у тех, кто занимается в математических кружках, он проявлял склонность к созданию компьютерных программ. У Шеппарда не было своего компьютера, и, подобно великому Алану Тьюрингу, когда тот работал над шахматной программой несколько десятилетий назад, Шеппард писал код на бумаге карандашом.
«Сколько себя помню, программирование игр всегда было частью моей жизни, – рассказывал мне Шеппард. – Первая программа, написанная мною, предназначалась для игры в блэкджек. Я скопировал ее из книги “Обыграй дилера”. У меня получилось множество страниц, на которых повторялся условный оператор if-then-else[46]. Даже в 15 лет я понимал, что это неправильный подход».
Шеппард продолжал совершенствовать свои навыки программирования и благодаря своим математическим способностям попал сначала в Гарвард, а потом в Исследовательский центр IBM на летнюю стажировку. Когда он прибыл в IBM, его научный руководитель заболел. Проходили дни, потом недели, а тот все не выходил на работу. Шеппард, как и полагалось в жесткой управленческой вертикали IBM, обратился к начальнику своего научного руководителя с вопросом, что ему делать. «Идите в библиотеку и читайте», – ответил начальник, заверив при этом Шеппарда, что научный руководитель в конце концов вернется. Это импровизированное указание оказало большое влияние на скрабл.
В библиотеке Шеппарду попалось описание одной из первых программ для игры в скрабл. Тогда таких программ было немного, одну из них разработали два специалиста по вычислительным системам из Индианского университета и опубликовали ее описание в 1979 году. Она работала на мейнфрейме производства компании Digital Equipment Corporation и играла неплохо, несмотря на ограниченный лексикон (в то время перечней оцифрованных слов еще не существовало). В приложении к статье с описанием программы сообщалось, что человек «сыграл несколько быстрых туров с программой и всякий раз набирал меньше очков, чем она».
Шеппард сразу же увидел возможности для улучшений. «Скрабл как таковой меня не особо интересовал, – сказал он. – Для меня темп этой игры всегда был низковат». Но с точки зрения программирования это была задача, за которую он мог взяться. «Мне не требовался суперкомпьютер. Я мог решить ее при наличии оперативной памяти в несколько мегабайт. В итоге тем летом я написал программу, поскольку мой научный руководитель так и не объявился. Она была на языке PL/I (одном из первых языков программирования IBM), работала на мейнфрейме IBM и играла лучше, чем все другие, описанные в литературе. А потом лето кончилось, и я вернулся в колледж».
В своем рассказе Шеппард преуменьшил объем затраченного труда. В реальности он целых две недели вручную вводил в компьютер слова из бумажного словаря для скрабла. Еще две недели ушли на проверку правильности слов. И еще две недели он «по-настоящему их проверял». А потом три недели у него ушли на ввод некоторых девятибуквенных слов из девятого издания «Университетского словаря Merriam-Webster», так как в словаре для скрабла не было слов, содержавших больше восьми букв[47]. Шеппард дал своей дозревающей программе название Maven (на идише это слово означает «эксперт»), которое нашел в словаре для скрабла. Он решил, что это судьба.
Поначалу Maven «была рядовой программой и не делала ничего особенного», – рассказывал Шеппард. Но она преподала ему бесценные уроки. Начать хотя бы с того, что наиболее важной составляющей мастерства в скрабле является знание слов. Словарь для скрабла – это не столько справочник, содержащий определения, этимологию и словоупотребление, сколько очень-очень длинный свод правил. Каждое слово является правилом: наличие в словаре указывает на его пригодность, а отсутствие – на непригодность. Чтобы играть в эту игру, нужно сначала выучить десятки тысяч правил. Это резко контрастирует с изящной простотой го. В сущности, главный поединок в скрабле идет не между игроками, а между игроком и самими правилами. «В моей программе было больше слов [чем в ранее созданных программах], поэтому она играла лучше, – пояснял Шеппард. – Кроме того, я мог воздействовать на результат, присваивая бонусы за разные комбинации фишек. Простые вещи вроде придерживания пустых фишек: не разыгрывай свою пустую фишку, пока не наберешь определенное количество очков». Интуитивное стремление Шеппарда запасать ценные фишки стало главным вкладом программы Maven в игру.
Большинство неискушенных игроков в скрабл довольно быстро понимают, что, хотя можно разыграть, допустим, слово CAT за пять очков, а CATS – за шесть, гораздо лучше будет получить пять очков за CAT и придержать S, чтобы позднее разыграть ее с гораздо большими очками. Буквы S – ценные. Умение точно определять, насколько ценной может быть S, имеет ключевое значение в стратегии скрабла. В одном из первых пособий по этой игре – вышедшей в 1986 году книге одного из лучших игроков, Джоэла Вапника, «Как выигрывать в скрабл: стратегия чемпиона» (The Champion’s Strategy for Winning at Scrabble) – представлены некоторые конкретные цифры. Например, фишке S в книге присваивается от шести до восьми очков, а пустой фишке[48] – около 40.
Не использованные после сделанного хода буквы