Читаем ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда полностью

Копии и схожесть

Давайте теперь снова взглянем на График G. Возможно, читатель помнит, что во введении мы говорили о разных формах канонов. Каждый тип канона использовал основную тему и копировал ее с помощью изоморфизма, или сохраняющей информацию трансформации. Иногда копии получались вверх ногами, иногда задом наперед, а иногда растянутые или сокращенные… В Графике G есть все эти типы трансформации, и даже больше. Отображение всего графика в его частях требует изменения размеров, искажения, отражения и так далее. И все же мы можем говорить о некоей основной тождественности, которую при определенном усилии можно заметить — особенно, если ваш глаз уже натренирован на INT.

Эшер использовал идею о частях объекта, являющихся копией самого этого объекта, в своей гравюре на дереве «Рыбы и чешуйки» (Рис. 36). Конечно, эти рыбы и чешуйки схожи только в том случае, если мы рассматриваем картину на достаточно абстрактном уровне. Каждый знает, что рыбьи чешуйки — вовсе не уменьшенные копии самой рыбы, так же как и клетки рыбы не являются ее крохотными копиями. Однако ДНК, содержащаяся в каждой из рыбьих клеток, и есть, в действительности, сильно уменьшенная «копия» самой рыбы — таким образом, гравюра Эшера правдивее, чем кажется.


Рис. 36. М. К. Эшер. Рыбы и чешуйки. (Гравюра на дереве, 1959).


Что именно делает всех бабочек «похожими» друг на друга? Отображение одной бабочки на другую не совпадает по клеткам; скорее, оно совпадает по функциональным органам, отчасти на макроскопическом и отчасти на микроскопическом масштабе. Вместо точных пропорций сохраняются функциональные отношения частей. Именно этот тип изоморфизма связывает между собой бабочек на гравюре Эшера «Бабочки» (рис. 37). То же верно и для более абстрактных бабочек Графика G, связанных между собой математическими отображениями одной функциональной части в другую. При этом полностью игнорируются пропорции линий, углы, и тому подобное.


Рис. 37. М. К. Эшер. «Бабочки» (гравюра на дереве, 1950).

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

Когда два предмета схожи между собой?

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

Программирование и рекурсия: модульность, петли, процедуры

Одна из основных способностей, необходимых в компьютерном программировании, — это умение заметить, когда два явления схожи в широком смысле, поскольку это ведет к модуляризации — разбиванию задачи на несколько естественных подзадач. Представьте, например, что вам надо исполнить одну за другой серию схожих операций. Вместо того, чтобы записывать каждую из них, мы можем написать петлю (или цикл), которая говорит компьютеру, что, выполнив некое множество операций, он должен вернуться к началу и повторять тот же процесс снова и снова, пока не будет выполнено некое условие. Тело петли — определенные повторяющиеся команды — не должно быть жестко установленным; в нем допустимы предсказуемые вариации. Примером может служить несложная проверка того, является ли число N простым. Вначале вы делите число N на 2, потом на 3, 4, 5, и так далее, до N-1. Если N не делится ни на одно из этих чисел, то N — простое число.

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже