Гурвич Владимир Александрович : другие произведения.

Компьютер, шахматы и поэзия

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:

  Компьютер, шахматы и поэзия.
  [Машиный, комбинаторный и поэтический перевод.]
  
  ---
  
  "Кажется, он стал поэтом - для математики у него не хватало воображения."
  Давид Гильберт об одном из своих учеников
  
  ---
  
  Помнится, в 60-70е годы в моде были диспуты на романтические
  ("Хоть романтизма тут нимало не вижу я...") темы:
  "Есть ли жизнь на Марсе?", "Нужна ли в космосе ветка сирени?" и "Может ли машина мыслить?",
  например, играть в шахматы, сочинять стихи, прозу и музыку.
  Участники поделились на два лагеря: "физики" и "лирики".
  Но даже и многие "физики" говорили: "Нет! Нипочем не сможет!"
  Все эти виды деятельности сугубо "творческие", а значит, не доступны для "бездушного" механизма.
  К творчеству компьютер не способен "по определению". По определению чего? Алгоритма или творчества?
  Некоторые, впрочем, счтали, что перводить стихи и прозу, а также доказывать теоремы, компьютер, возможно, и сумеет когда-нибудь.
  
  Кстати, профессионалы склонны ограничивать возможности компьютера не меньше, чем "лирики".
  Просто они лучше осведомлены, что трудно на самом деле.
  
  Со времён Курта Гёделя известны алгоритмичаские неразрешимые задачи.
  А чуть позже оказалось, что таковы некоторые вполне разумные (и даже не такие уж "заумные") математические задачи.
  Никакой компьютер в принципе не сможет их решить ни за какое (конечное) время.
  А ещё чуть позже, в 70е годы, выяснилось, что некоторые "уж совсем детские задачи"
  хотя и решаются очевидным образом за конечное время, но ни за какое "разумное" время они не решаются.
  Например, одна из знаменитых семи математических задач тысячелетия предлагает доказать,
  что даже самый быстрый комьпютер будущего не сможет решить такую "простенькую" задачу:
  Есть 1000 человек, некоторые знакомы друг с другом, некоторые - нет, найдется ли 300 попарно знакомых?
  Решить, конечно, можно, но на это уйдет > 1000 лет. Даже если начать подсчеты не сейчас, а через 1000 лет,
  на "сверх-мощных и сверх-распараллеленных супер-процессорах" будущего.
  Вам кажется, что это будет попроще, чем написать гениальные стихи? Думаю, вы ошибаетесь.
  
  Тогда говорил и сейчас повторю:
  "Тут (со стихами и музыкой) конечно, много очень сложных проблем, но по-настоящему серьёзная только одна - финансирование!".
  Дадут денег - будут и стихи, и проза, и музыка, и шахматы, и теоремы."
  А вот выяснить за год, есть ли 300 попарно знакомых - тут никакие деньги, увы, не помогут.
  
  Первым решился вопрос с шахматами. IBM вложилась и Deep Blue обыграла Каспарова в 1997м, 3 1/2 - 2 1/2.
  Я помню послематчевое интервью Каспарова, CNN, кажется. Гроссмейстер был явно "не в форме".
  (Устал после Карлсбадского турнира?) Говорил, что программа играет не в шахматы, а в "шахматы против Каспарова".
  Насколько я помню, он в последней партии "отмочил такую штуку": поставил дебютную ловушку.
  Пошёл на теоретически програнный вариант, но не простой, а очень хитрый.
  Чтобы выиграть, противнику необходимо было пожертвовать фигуру без какой-либо очевидной
  немедленной компенсации, она вырисовывалась только ходов через 15-20.
  Но "натасканный на Каспарова" Deep Blue был начеку, не долго думая, фигуру пожертвовал и выиграл.
  
  Гарри Кимович, конечно, гений, но бывает иногда простоват!
  (Не будем даже вспоминать "Современную Хронологию" и пр. идеи, которые он с энтузиазмом поддерживает.)
  Но раз ты Чемпион Мира, ну зачем тебе "блефовать"?! Просто играй в свою игру!
  А если уж хочешь именно перехитрить, так не забывай, что у компьютера, как у одноглазого любителя из "12и стульев",
  "все ходы записаны" и все-все-все дебютные справочники аккуратно внесены в память.
  
  Теперь на турнире любого уровня строже всего следят за тем, как бы какой-нибудь
  гроссмейстер не попросил подсказки у какого-нибудь удаленного компьютера.
  В 70-е до этого было ещё далеко.
  
  У меня до сих пор хранится приглашение на работу во Всесоюзный НИИ Электро-энэргетики
  (он тогда находился на острове между "Домом на набережной" и "Красным Октябрём")
  в лабораторию Михаила Моисеевича Ботвинника, где в 1973-1987 годах создавалась
  (да так и не была создана) шахматная программа "Пионер". Над ней тогда работали выпускники МИИТа.
  Все не ниже КМС по шахматам и одновременно профессиональные программисты.
  Видимо, эта одновременность и стала одной из причин неудачи. Но были и другие...
  Я как раз в 75-м заканчивал Физ-Тех с дипломом по "теории позиционных игр" и у меня даже было четыре
  статьи на эту тему в академических журналах. А также был и 1й разряд по шахматам.
  (Наверное, самый слабый 1й разряд во всём Дворце Пионеров на Ленинских Горах, но это уже другая история.)
  С человеком, не умеющим играть, ММ и разговаривать не стал бы. А так, он со мной разговаривал.
  И разговоры эти были интересны и поучительны. Он твердо верил в безграничные возможности компьютера
  и в этом, главном, я с ним соглашался. Но верил также, что он и его команда за пару лет научит компьютер играть в силу мастера спорта.
  (Сильнейшая тогда в СССР программа "Каисса" Адельсона-Вельского, Арлазарова и Донского не дотягивала ещё
  до 3-го разряда, но это не помешало ей стать чемпионкой мира в 1974 и второй в 1977.)
  Более того, ММ считал, что это только начало. Научившись так играть в шахматы "Пионер" станет
  "Искусственным Интеллектом", будет решать ключевые вопросы планирования.
  Стихи, музыка, теоремы (в свободное время) - тоже не за горами.
  Против желания (и интересов) мне опять вспоминалась деревня Васюки.
  
  Хотя я и соглашался с мнением ММ о глобальных возможностях компьютера, но только в целом.
  "Детали" я критиковал решительно и "на грани хамства".
  Надо сказать, что в отличие от штатных сотрудников ВНИИЭ, людей
  в какой-то степени подневольных, я на эту работу пока (да и потом тоже, как оказалось) не устроился
  и, имея степень "магистра по теории позиционных игр", как теперь бы сказали, мог "строить из себя независимого эксперта".
  
  Теперь я вспоминаю с благодарностью, и не без удивления, как ММ меня выслушивал и терпеливо сносил мои выпады,
  несмотря на огромную разницу в возрасте (> 40 лет) и в статусе.
  Я спрашивал: "ММ, объясните мне в деталях, как должен работать ваш алгоритм".
  ММ: "Идея принадлежит Капабланке..."
  И обяснял, как надо считать, сколько раз бьются ключевые поля белыми и черными.
  Я: "Слишком просто; для этого вовсе не нужен компьютер! Давайте я сам буду всё это подсчитывать на бумажке.
  Неужели Вы думаете, что я стану играть в силу мастера спорта?!"
  ММ: "Владимир! мне ничего не стоит обучить тебя играть в силу мастера. На это уйдет месяц-другой. Но не это моя цель!
  Я: "ММ, просто с ваших вершин уровень мастера виден плохо и кажется ничтожным.
  Поэтому Вы думаете, что можете 'вывести на него кого (и что) угодно'. Меня - за месяц. Компьютер - за год.
  Пылесос или холодильник - за 10 лет, а на самом деле далеко не каждый может его достигнуть.
  Помните, как Ходжа Насреддин обещал падишаху обучить за двадцать лет ишака читать Коран?"
  ММ не соглашался...Но, к сожалению, я оказался прав. Пионер не заиграл в шахматы ни через год, ни через двадцать.
  Наверное, хитрый Капабланка вычислял (или просто знал и применял) ещё что-то, кроме кратности контроля ключевых полей белыми и черными.
  
  MM давал программиистам-шахматистам в качестве теста какой-нибудь знаменитый шахматный этюд,
  в котором выигрыш достигался ходов через 30 в результате уникальных и красивейших маневров.
  Они подстраивали под него все параметры программы и через неделю-другую упорной работы "Пионер" этот этюд успешно решал.
  Но... в результате в обычных позициях он начинал вытворять что-то несусветное. Они снова перестраивали параметры.
  Наконец, "Пионер" решал этюд и приемлемо играл в обычных позициях. Но тут ММ приносил другой этюд. Процесс не сходился...
  
  ММ был чемпионом мира по шахматам в 1948-1963, с двумя годовыми перерывами; Талю и Смыслову удалось его по разу победить.
  Но тогда чемпион мира имел право на матч-реванш и оба раза ММ через год уверенно возвращал свой титул.
  Он также был доктором технических наук по электро-энергетике с 1951 и шахматным алгоритмистом с 1973 по 1987.
  На полном серьёзе он считал, что эти три занятия занимают примерно равное место в его жизни,
  причем последнее, на самом деле, гораздо важней остальных, из-за описанных выше перспектив.
  (Они и в самом деле реальны, но только в далёком будущем.)
  
  Конечно, он был гениальным шахматистом. В этом нет никаких сомнений.
  Ничего толком не знаю про его достижения в электро-энергетике. Думаю, их нет.
  У него просто не было времени этим заниматься.
  Да, он защитил докторскую в 1951-м, когда уже был чемпионом мира. Впрочем, не знаю. Я в ЭЭ совсем не разбираюсь.
  Но про шахматный алгоритм, знаю точно. ММ (как и 90% людей) не понимал, что такое алгоритм.
  Что его нельзя переделывать под каждый новый этюд. Наоборот, он должен быть универсальным, в рамках поставленной задачи, разумеется.
  Например, шаматный алгоритм должен делать разумный ход в КАЖДОЙ возможной шахматной позиции.
  
  Вспоминаю, как Леонид Хачиян (1952-2005) беседовал с "алгоритмистами-любителями".
  Он ещё в молодости, в 1979 году, решил одну знаменитую алгоритмическую проблему
  (доказал, что метод эллипсоидов Шора решает линейное программирование за полиномиальное время) и
  к нему, как к эксперту, присылали энтузиастов с их "супер-эффективными алгоритмами".
  Один раз очень секретный полковник принес алгоритм, решающий так называемую задачу коммивояжёра (или почтальона).
  Надо за кратчайшее время обойти несколько домов, все попарные расстояния между которыми известны, и вернуться на почту.
  Полковник начал бойко объясниать, как надо действовать, но Хачиян прервал.
  Давайте рассмотрим специальный случай, когда все расстояния равны либо единице, либо бесконечности.
  Получится задача на вид попроще. Имеется ли в данном графе простой цикл, проходящий через все вершины?
  Так называемый Гамильтонов цикл." Хитрый профессор знал, что для этой задачи быстрый алгоритм вряд ли существует.
  Если б такой был, то он решил бы и упомянутую выше "задачу тысячелетия" (про 300 попарно знакомых).
  Полковник с готовностью достал другую папку: "Для этой задачи у меня есть отдельный ещё более замечательный алгоритм!"
  "Нет, так не пойдёт! 'Ещё более замечательный' обсудим потом". (До этого, к счастьйю, не дошло.)
  "А пока объясните как ваш 'коммивояжёр управляется с Гамильтоном?"
   Полковник не понимал, почему нельзя в каждом новом случае доставать новую папку,
  а ММ - почему нельзя перестраивать параметры "Пионера" под каждый новый этюд.
  
  Впрочем, мы совсем отвлеклись от темы. И ММ, и Хачиян были интереснейшими личностями,
  но сочинением компьютерных стихов не занимались.
  Однако, раз уж столько времени потрачено, надо бы хоть какое-нибудь извлечь нравоучение.
  Например такое: Как правило, добытое своими силами, в результате упорной работы,
  человек склонен ценить гораздо выше талантов, которые ему досталось от Бога даром.
  Например Набоков, считал себя писателем, энтомологом и шахматным композитором в равной мере.
  
  Теперь, когда вопрос о "творческой природе" шахмат окончательно прояснился, "лирики" закрепились на дальних рубежах:
  поэзия и музыка. При этом они почему-то сдали без боя другие игры, например, "го" и "бридж".
  По-моему, - зря. Если бы я был лириком, нипочем не сдал бы. Конечно поэзия сильно отличается от шахмат. Но го, поверьте, - тоже!
  Успехи компьютера в этой игре к 2000 году были более, чем скромные.
  Правда, как раз сейчас (последние лет 5-7) Берлекамп (эксперт по теории игр и по комбинаторным играм) активно этим занимается.
  Кажется, даже переселился в Южную Корею.
  В январе 2011 в Беркли была конференция по комбинаторным играм и го стала главной темой.
  Я посмотрел их статьи. Основной метод на данном этапе - вовсе не классической перебор вариантов.
  Они вводят "распределение температур" на доске. Ходить надо в самой горячей точке.
  [Справедливость требует признать, что это чем-то похоже на идеи Капабланки-Ботвинника.
  У них поле тем горячее, чем большим числом фигур оно контролируется...]
  Я вовсе не хочу углубляться здесь в текущие идеи программирования го.
  Но заметьте, что речь пошла уже не о переборе вариантов, а о каких-то температурах.
  Почему бы что-нибудь эдакое не могло пригодиться при написании компьютерных стихов.
  "Поле температур в сердце" ценителя поэзии...А?!
  
  Кстати, резкое усиление игры "Каиссы" (да и вообще всех шахматных программ) было достигнуто, когда разработчики поняли,
  что надо просчитывать ВСЕ "форсированные" варианты. Всех вообще вариантов слишком много и они просчитываются лишь частично.
  Например, на некоторую глубину; скажем, на 7 полуходов.
  Но варианты, состоящие только из шахов и взятий фигур (пешки не считаются) противника надо просчитывать до конца.
  Какой смысл обрывать анализ и считать текущую позицию выигранной, если следующим же ходом противник забирает у вас ферзя и всё поменяется?
   В шахматах форсированных вариантов немного и просчитывать их всё время до конца, компьютеру ничего не стоит.
  Но что считать форсированным вариантом в го?
  Только взятия групп? Или угрозу взять в один ход (атари) тоже? А может, и в два хода? В три?
  Но так постепенно снова приходим к перебору всех вариантов.
  Почему го ближе к шахматам, чем стихи? Может и так, но не очевидно.
  Конечно, в играх, в отличие от стихов, правила лучше формализованы и, кто выиграл, в конце партии известно.
  Но с этим "слабым доводом" читатель и сам "разберется" или разберемся вместе, когда продолжим.
  
  Кстати, пока я всё это пишу и обновляю, компьютер в го играть научился и обыграл знаменитого Ли Седола 4:1.
  Была написана самоубучающаяся программа, которая играет сама с собой и анализирует результаты.
  Это ли не искусственный интелект. Кстати, похожий приём был применён к восточной игре нарды.
  В ней есть случайные ходы (бросают кости) и кажетя, что компьютеру сложнее приноровиться. Однако это не так.
  Идея само-обучения проходит и тут, причём гораздо легче, чем в го. Пишется программа позволяющая играть средненько.
  Это нетрудно. В каждой позиции программа предлагает несколько (скажем, три) сильных хода.
  Наилучший - наверняка среди них, но чтобы его выбрать нужен гроссмейстер. Среднего уровня недостаточно. Ну и не надо!
  Программа фиктивно разыгрывает по тысяче партий сама с собой, после каждого из трёх ходов и смотрит где результаты лучше.
  Тут тебе и случайность и обучение "в одном флаконе".
  
  
  Помню один раз Миша Донской меня пригласил посмотреть партию Каиссы.
  Она, будучи уже чемпионкой мира, играла с переменным успехом в турнире третьего разряда Московского Дворца Пионеров.
  Но игры проходили не там, а в здании ВНИИСИ. Если Каисса не идёт к пионеру, то пионер идёт к Каиссе.
  (Не "Пионер" Ботвинника, а самый обычный пионер.) Он и явился, такой симпатичный лопоухий мальчишка.
  Толпа взрослых, наблюдавших за партией, его явно смущала.
  (Там были алгоритмисты, программисты, шаматные эксперты и пр. зрители, вроде меня.)
  Пионер вертел головой и почти не смотрел на доску. Один раз он вообще сделал ход не по правилам.
  Донской не стал этот вводить, а просто вернул назад фигуру на доске.
  "Непорядок" - сказал я - "Каисса" сама должна была отвергнуть.
  "Ну вот ещё!" - парировал Донской - "В таких вещах я и сам разберусь. Зачем утруждать программу?"
  Между тем, пока пионер вертел головой во все стороны и хлопал ушами,
  "Каисса" методично съела все его фигуры, кроме ферзя. Везунчик мог запросто сделать ничью.
  В шахматах это называется "бешеный ферзь". Но он ничего не заметил, как впрочем и зрители,
  кроме шахматных экспертов (и меня :-). После партии я не преминул заметить Донскому:
  "Что же твоя Каисса мышей, т.е. бешеных ферзей, не ловит?"
  Тот ответил в своём обычном стиле:
  "Ну вот ещё! Зачем переутруждать программу "лишними" проверками? От этого станет только хуже."
  Наверное, он был прав. Экзотические проверки отнимают время и программа хуже играет в обычных позициях.
  А сильный игрок никаких бешеных ферзей всё равно не допустит.
  В общем, Донской относился к Каиссе с нежностью и перерабатывать ей не позволял.
  Но не всегда. На Чемпионате Мира 1974-го года он одним махом увеличил быстродействие вдвое.
  Все прочие программы начинали анализировать позицию только после хода противника, а Каисса думала всё время.
  Вообще, Донской был человеком большой практической сметки.
  
  Продолжение следует...
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"