Книги: февраль

Mar 07, 2015 22:35


Г. М. Адельсон-Вельский, В. Л. Арлазаров, А. Р. Битман, М. В. Донской, «Машина играет в шахматы» (1983 г.)

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

Любопытно, что про альфа-бета-отсечение нам на ВМК рассказывали, но имя Александра Брудно при этом не упоминалось, хотя авторы утверждают, что это его изобретение (есть мнение, что к нему причастны многие). Ну или взять программирование в содержательных обозначениях того же Брудно: не помню, чтобы об этом хоть что-то говорилось, хотя идея сугубо практичная и полезная. Зато говорили про операторный метод Ляпунова, а кто применял его на практике? Говорили про историю вычислительной техники, но не затрагивали Бессонова с его релейной машиной. Такое ощущение, что разные школы и разные миры, и железный занавес между ними. А может, мне просто кажется.

Пара вырезок на память:

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

Здесь хотелось бы сделать лирическое отступление о том, что такое отлаженная программа. Принято считать, что она правильно реализует задуманный алгоритм. Однако в теории алгоритмов, наоборот, для определения, что такое алгоритм, используется понятие программы, и с такими определениями мы попадаем в порочный круг. Выход из него состоит в том, чтобы отказаться от понятия отлаженной программы, постулировав наличие в ней ошибок и определяя отладку программы, как процесс изучения ее поведения, поиска ошибок программиста или неверных представлений о том, что программа должна делать.

...

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

Как же в этих условиях убедиться в правильности внесенных в программу изменений, как отлаживать программу, как проверять ее готовность к турниру? Не удивительно, что треть программы составляют алгоритмы наблюдения, не нужные для выбора хода и вообще игры машины в шахматы. Они используются для того, чтобы понимать, как и почему программа избирает тот или иной ход и, естественно, выключаются во время игры в турнирах. Однако без них последняя была бы невозможной.

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

Александр Марков, «Рождение сложности»

Берем картину мироздания, да! И тупо смотрим, что к чему. (вместо эпиграфа)

Книга про реалии современной биологии. Без знаний в органической химии и генетике читать сложно, но все равно безумно интересно. Все оказалась намного хитрее и забавнее, чем мне дилетантски представлялось. Вот и автор признается:

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

...

Это характерный «почерк» эволюции, совсем не похожий на разумное проектирование, а похожий скорее на самосборку чего получится из чего попало.

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

Александр Битман, oracle, занимательная_археология, Владимир Арлазаров, Александр Брудно, Том Кайт, генетика, Александр Марков, околокомпьютерное, Михаил Донской, книги, Георгий Адельсон-Вельский

Previous post Next post
Up