Текст книги "ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда"
Автор книги: Даглас Хофштадтер
Жанры:
Философия
,сообщить о нарушении
Текущая страница: 55 (всего у книги 64 страниц)
Разница между треугольником и квадратом в том, что у первого 3 стороны, а у второго – 4.
4 схоже с 3.
Круг – это замкнутая кривая.
У замкнутой кривой есть внутренний и внешний районы. «Внутри» и «снаружи» противоположны.
Рис. 123. Небольшая часть сети понятий программы для решения задач Бонгарда. «Узлы» соединены между собой «связями», которые, в свою очередь, могут быть связаны. Принимая связи за глаголы, а соединенные ими узлы за подлежащие и дополнения, можно построить на основе этой диаграммы разные русские предложения.
Сеть понятий очень широка. Кажется, что знания закодированы в ней только статистически, или декларативно, – но это верно лишь наполовину. На самом деле, ее знания граничат с процедурными, потому что сходство в сети действует как гид, или «подпрограммы», сообщая основной программе, как лучше понимать картинки в рамках.
Например, какая-нибудь из первых догадок может оказаться ошибочной, но при этом содержать зерно правильного ответа При первом взгляде на ЗБ #33 (рис. 124) можно подумать, что класс I содержит «колючие» фигуры, а класс II – «гладкие». Однако, если присмотреться, эта догадка оказывается неверной. Все же в ней есть ценная информация, и можно попытаться развить эту идею дальше, работая с теми понятиями сети, которые связаны с «колючим». Это понятие схоже с «острым», которое и оказывается отличительной чертой класса I. Таким образом, одна из основных функций сети понятий состоит в том, чтобы позволять модификацию ранних ошибочных идей и переход к вариациям, которые могут оказаться правильными.
Рис. 124 Задачи Бонгарда.
Переход и пробность
Понятие перехода между похожими предметами родственно понятию восприятия одного предмета как вариации другого. Мы уже видели прекрасный пример этого – «круг с тремя выемками», который на самом деле вовсе не круг! Наши понятия должны быть до определенной степени гибкими. Ничто не должно оставаться совершенно неизменным. С другой стороны, они также не должны быть настолько бесформенными, что в них пропадет всякое значение. Все дело в том, чтобы знать, когда одно понятие может перейти в другое.
Такой переход лежит в основе решений задач Бонгарда ##85 – 87 (рис. 125). ЗБ #85 довольно проста. Предположим, что наша программа в процессе предварительной обработки данных узнает некий «отрезок». После этого ей легко посчитать отрезки и найти различие между классом I и классом II в ЗБ #85.
Теперь программа переходит к задаче #86. Ее основная методика состоит в том, чтобы опробовать все недавние идеи, оказавшиеся удачными. В реальном мире повторение сработавших ранее приемов часто увенчивается успехом, и Бонгард в своих задачах не стремится перехитрить этот тип эвристики—к счастью, он даже поощряет его. Таким образом, мы переходим к ЗБ #86, имея на вооружении две идеи («считать» и «отрезок»), слитые в одну: «считать отрезки». Но оказывается, что в ЗБ #86 вместо отрезков нужно считать последовательности линий. Последовательность линий здесь означает сцепление (одного или более) отрезков. Программа может догадаться об этом, например, благодаря тому, что ей известны оба понятия, «отрезок прямой» и «последовательность прямых», и что они расположены близко друг от друга в сети понятий. Другим, способом было бы изобретение понятия «последовательность прямых» – задача, мягко выражаясь, не из простых.
Далее следует ЗБ #87, в которой понятие «отрезок» обыгрывается по-иному. Когда один отрезок становится тремя? (См. рамку II-А.) Программа должна быть достаточно гибкой, чтобы переходить взад и вперед между различными описаниями данного фрагмента рисунка. Разумно сохранять в памяти старые описания, вместо того, чтобы их забывать и затем составлять снова, поскольку нет гарантии того, что новое описание окажется лучше прежнего. Таким образом, вместе с каждым старым описанием программа должна запоминать его сильные и слабые стороны. (Не правда ли, это начинает звучать довольно сложно?)
Рис. 125. Задачи Бонгарда ##85 – 87 (Из книги Бонгарда «Проблема узнавания»).
Мета-описания
Теперь мы подошли к другой жизненно важной части процесса узнавания; она имеет дело с уровнями абстракции и мета-описаниями. Для примера давайте вернемся к ЗБ #91 (рис. 121). Какой эталон можно здесь построить? С таким количеством вариантов трудно знать, откуда начинать. Но это уже само по себе является подсказкой! Это говорит нам, что различие между классами, скорее всего, существует на уровне, высшем чем уровень геометрических описаний. Это наблюдение подсказывает программе, что она может попытаться рассмотреть описания описаний – то есть мета-описания. Может быть, на этом втором уровне нам удастся обнаружить какие-либо общие черты, и, если повезет, найти достаточно сходства для того, чтобы создать эталон для мета-описаний. Таким образом, мы начинаем работу без эталона и создаем описания нескольких рамок; после того, как они закончены, мы описываем сами эти описания. Какие гнезда будут у нашего эталона для мета-описаний? Может быть, следующие:
использованные понятия: —
повторяющиеся понятия: —
названия гнезд: —
использованные фильтры: —
Существует множество других гнезд, которые могут быть использованы в мета-описаниях; это просто пример. Предположим теперь, что мы описали рамку I-Д в ЗБ #91. Ее «безэталонное» описание может выглядеть так:
горизонтальный отрезок.
вертикальный отрезок, находящийся на горизонтальном отрезке.
вертикальный отрезок, находящийся на горизонтальном отрезке.
вертикальный отрезок, находящийся на горизонтальном отрезке.
Разумеется, множество сведений было отброшено: то, что три вертикальных отрезка одинаковой длины, отстоят друг от друга на одно и то же расстояние и т. п. Но возможно и подобное описание. Мета-описание может выглядеть так:
использованные понятия: вертикальный-горизонтальный, отрезок, находящийся на
повторяющиеся понятия: 3 копии описания «вертикальный отрезок, находящийся на горизонтальном отрезке».
названия гнезд: —
использованные фильтры: —
Не все гнезда мета-описания должны быть заполнены: на этом уровне тоже возможно отбрасывание информации, как и на уровне «простого описания». Если бы мы теперь захотели составить описание и мета-описание любой другой рамки класса I, то гнездо «повторяющиеся описания» каждый раз содержало бы фразу «три копии ...» Детектор сходства заметил бы это и выбрал бы «тройничность» в качестве общей абстрактной черты рамок класса I. Таким же образом, путем мета-описаний может быть установлено, что «четверичность» – отличительная черта класса II.
Важность гибкости
Вы можете возразить, что использование мета-описаний в данном случае напоминает стрельбу по мухам из пушки, поскольку тройничность и четверичность могли быть найдены уже на первом уровне, если бы мы построили наше описание немного иначе. Это верно, но для нас важно иметь возможность решать эти задачи различными путями. Программа должна быть очень гибкой; она не должна быть обречена на провал, если ее «занесет» не туда. Я хотел проиллюстрировать общий принцип: когда построение эталона затруднено, потому что препроцессор запутывается среди различных деталей, это показывает, что здесь задействованы понятия на высших уровнях, о которых препроцессор ничего не знает.
Фокусирование и фильтрование
Теперь давайте рассмотрим другой вопрос: каким образом можно отбрасывать информацию. Ответ на этот вопрос включает два родственных понятия, которые я называю «фокусированием» и «фильтрованием». Фокусирование означает составление описания так, что оно сосредотачивается на каком-то одном районе картинки и «сознательно» оставляет без внимания все остальные. Фильтрование означает составление описания так, что оно видит содержимое картинки под каким-то определенным углом, и сознательно игнорирует все другие аспекты.
Таким образом, они дополняют друг друга: фокусирование имеет дело с объектами (грубо говоря, с существительными), а фильтрование – с понятиями (грубо говоря, с прилагательными).
Рис. 126. Задача Бонгарда #55 (Из книги Бонгарда «Проблема узнавания»).
Для примера фокусирования рассмотрим ЗБ #55 (рис. 126). Здесь мы сосредотачиваемся на выемке и маленьком круге около нее, и оставляем без внимания все остальное. ЗБ #22 – это пример фильтрования. Мы отбрасываем все понятия, кроме размера. Для решения ЗБ #58 (рис. 128) требуется комбинация фокусирования и фильтрования.
Одним из важных способов получения идей для фокусирования и фильтрования является другой тип «фокусирования»: детальный анализ какой-либо особенно простой рамки – скажем, рамки с наименьшим количеством предметов. Очень полезным может оказаться сравнение между гобой простейших рамок обоих классов.
Но каким образом программа определяет, какие рамки самые простые, до того, как она производит их описание? Одним из способов определения простоты является поиск рамки с наименьшим количеством черт, найденных препроцессором. Это может быть сделано на ранних стадиях работы, поскольку для этого не нужен готовый эталон; на самом деле, это может быть использовано как поиск черт для включения в эталон. ЗБ #61 (рис. 129) – пример случая, когда такая техника дает плоды очень быстро.
Рис. 127. Задача Бонгарда #22 (Из книги Бонгарда «Проблема узнавания»).
Рис. 128. Задача Бонгарда #58. (Из книги Бонгарда «Проблема узнавания»).
Рис. 129. Задача Бонгарда #61. (Из книги Бонгарда «Проблема узнавания»).
Наука и мир задач Бонгарда
Задачи Бонгарда можно интерпретировать как крохотную модель мира, занимающегося «наукой» – то есть поисками упорядоченных структур. В процессе этих поисков создаются и переделываются эталоны, гнезда переносятся с одного уровня обобщения на другой, используются фокусирование и фильтрование и т. д.
На каждом уровне сложности делаются свои открытия. Теория американского философа Куна о том, что странные события, которые он называет сдвигами парадигмы, отмечают границу между «нормальной» наукой и «концептуальными революциями», не кажется подходящей к нашему случаю, поскольку в данной системе сдвиги парадигмы происходят все время и на всех уровнях. Это объясняется гибкостью описаний.
Разумеется, некоторые открытия более «революционны», чем другие, поскольку они производят больший эффект. Например, мы можем обнаружить, что задачи #70 и #72 представляют из себя «одну и ту же задачу», рассмотренную на достаточно абстрактном уровне. Основная идея здесь в том, что в обеих задачах используется понятие «вложения» на глубине 1 и 2. Это новый уровень открытия в задачах Бонгарда. Существует еще более высокий уровень, касающийся всех картинок как целого. Если кто-либо не видел этого собрания, интересной задачей для него было бы попытаться представить себе, как эти картинки выглядят. Это было бы революционным открытием, хотя механизмы, которые при этом оперируют, не отличаются от механизмов, помогающих нам решать отдельные задачи Бонгарда.
По той же причине, настоящая наука не делится на «нормальные» периоды и периоды «концептуальных революций», сдвиги парадигм происходят в ней постоянно, большие и маленькие, на различных уровнях. Рекурсивные графики INT и график G (рис. 32 и 34) дают нам геометрическую модель этой идеи. Их структура полна скачков на всех уровнях, причем чем ниже уровень, тем меньше скачки.
Рис. 130. Задачи Бонгарда ##70-71 (Из книги Бонгарда «Проблема узнавания»).
Связи с другими типами мысли
Чтобы поместить эту программу в контекст, я хочу упомянуть о том, как она соотносится с другими аспектами познания. Она зависит от других аспектов познания, а те, в свою очередь, зависят от нее. Поясню сначала ее зависимость от других аспектов познания. Интуиция, подсказывающая нам когда имеет смысл стереть различия, попытаться составить иное описание, вернуться по собственным следам, перейти на другой уровень и так далее, приходит только с общим опытом мышления. Поэтому так трудно определить эвристику для этих основных аспектов программы. Иногда наш опыт реального мира сложным образом влияет на то, как мы описываем и переописываем рамки. Например, кто может сказать, насколько знакомство с настоящими деревьями помогает в решении задачи #70? Маловероятно, что человеческая сеть понятий, относящихся к решению этих задач, может быть легко отделена от остальной сети понятий. Скорее интуиция, которую мы получили от созерцания и контакта с реальными предметами – расчески, поезда, цепочки, кубики, буквы, резинки и т. д., и т. п. – играет незаметную, но важную роль в решении подобных задач.
И наоборот, понимание ситуаций реального мира наверняка в большой степени зависит от зрительных образов и пространственной ориентации – таким образом, гибкий и эффективный способ представлять различные структуры (такие, как задачи Бонгарда) может только способствовать общей эффективности мыслительных процессов.
Мне кажется, что задачи Бонгарда были разработаны очень тщательно: в них есть некая универсальность, в том смысле, что у каждой из них – единственный правильный ответ. Разумеется, с этим можно спорить, утверждая, что то, что мы считаем «правильным», зависит от того, что мы – люди. Инопланетянин может совершенно с нами не согласиться. Несмотря на то, что у меня нет никакого конкретного свидетельства в пользу той или иной теории, я все-таки считаю, что задачи Бонгарда зависят от некоего чувства простоты и что люди – не единственные существа, обладающие этим чувством. То, что для этого важно быть знакомым с типично земными предметами, такими как расчески, поезда, резинки и тому подобное, не противоречит утверждению о том, что некое чувство простоты универсально, поскольку здесь важны не отдельные предметы, а тот факт, что вкупе они покрывают некое широкое пространство. Скорее всего, другие цивилизации будут обладать таким же большим репертуаром предметов и натуральных объектов и таким же обширным опытом. Поэтому мне кажется, что умение решать задачи Бонгарда находится близко к тому, что можно назвать «чистым» разумом – если таковой существует. Следовательно, с них можно начинать, если мы хотим изучить умение находить некое присущее схемам или сообщениям значение. К несчастью, мы привели здесь только небольшую часть этого замечательного собрания. Надеюсь, что многие читатели познакомятся со всем собранием, приведенным в книге Бонгарда (см. Библиографию).
Некоторые проблемы узнавания структур, которые полностью вросли в наше подсознание, довольно удивительны. Они включают:
узнавание лиц (неизменность лиц при возрастных изменениях, различных выражениях, разном освещении, разном расстоянии, под другим углом зрения и так далее);
узнавание тропинок в лесах и в горах – почему-то это всегда казалось мне одним из наиболее удивительных случаев узнавания схем. Однако это умеют делать и животные…
прочтение текста, написанного сотней, если не тысячей различных шрифтов.
Языки, рамки и символы, передающие сообщения
Одним из способов решения проблемы узнавания структур и других сложных проблем ИИ является так называемый «актерский» формализм Карла Хьюитта, подобный языку «Smalltalk», разработанному Аланом Кэйем и другими. Он заключается в том, что программа пишется в виде набора взаимодействующих актеров, которые могут обмениваться сложными сообщениями. Это чем-то напоминает гетерархическое собрание процедур, вызывающих друг друга. Основное различие состоит в том, что процедуры передают друг другу небольшое количество информации, в то время как сообщения, которыми обмениваются актеры, могут быть сколь угодно длинными и сложными.
Благодаря своему умения передавать сообщения, актеры становятся в каком-то смысле автономными агентами – их можно даже сравнить с самими компьютерами, а сообщения – с программами. Каждый актер может интерпретировать данное сообщение по-своему; таким образом, значение сообщения будет зависеть от актера, его получившего. Это объясняется тем, что в актерах есть часть программы, которая интерпретирует сообщения; поэтому интерпретаторов может быть столько же, сколько и актеров. Разумеется, интерпретаторы многих актеров могут оказаться идентичными; в действительности, это может быть большим преимуществом (так же важно, чтобы в клетке было множество плавающих в цитоплазме идентичных рибосом, каждая из которых будет интерпретировать сообщение – в данном случае, мессенджер ДНА – одинаковым образом).
Интересно подумать, как можно соединить понятие фреймов с понятием актеров. Давайте назовем фрейм, способный создавать и интерпретировать сложные сообщения, символом:
фрейм + актер = символ
Мы будем говорить здесь о том, как можно представить те неуловимые активные символы, которые обсуждались в главах XI и XII; поэтому в данной главе «символ» будет иметь то же значение. Не расстраивайтесь, если вы не сразу поймете, каким образом может произойти этот синтез. Это, действительно, неясно, – но это одно из самых многообещающих направлений исследований в ИИ. Более того, несомненно, что даже наилучшие синтетические представления будут менее мощными, чем символы человеческого мозга. В этом смысле, пожалуй, еще рановато называть объединения фреймов с актерами «символами», но это – оптимистический взгляд на вещи.
Давайте вернемся к темам, связанным с передачей сообщений. Должно ли данное сообщение быть направлено на определенный символ, или же оно должно быть брошено наугад, так же как мРНК брошен наугад в цитоплазму, где он должен найти свою рибосому? Если у сообщений есть предназначение, то у каждого символа должен быть адрес, по которому будут посланы соответствующие сообщения. С другой стороны, может существовать некая центральная «станция» для получения сообщений, где каждое сообщение будут храниться, как письмо до востребования, пока оно не понадобится какому-либо символу. Это – альтернатива доставке писем адресатам. Возможно, наилучшее решение – сосуществование обоих типов сообщений и возможность разных степеней срочности: сверхсрочное, срочное, обычное и так далее. Система почтовой связи – богатый источник идей для языков, передающих сообщения; она включает такие возможности как письмо с оплаченным ответом (сообщения, чьи отправители хотят срочно получить ответ), бандероли (очень длинные послания, которые могут быть посланы несрочным путем) и тому подобное. Когда вы исчерпаете запас почтовых идей, вашему воображению может дать толчок система телефонной связи.
Энзимы и ИИ
Другой источник идей для передачи сообщений – и обработки информации вообще – это, разумеется, клетка. Некоторые объекты клетки можно сравнить с актерами – в частности, эту роль выполняют энзимы. Активный центр каждого энзима работает как фильтр, который узнает только определенные типы субстратов (сообщений). Можно сказать, что у энзима есть «адрес». Благодаря своей третичной структуре, энзим «запрограммирован» так, чтобы провести некоторые операции с этим «сообщением» и затем снова выпустить его «в мир». Таким образом, путем передачи сообщения химическим путем от энзима к энзиму можно сделать очень многое. Мы уже описали сложные способы обратной связи в клетке (путем торможения или подавления). Эти механизмы показывают, что сложный контроль процессов может возникнуть из клеточного типа передачи сообщений.
Один из самых удивительных фактов, касающихся энзимов. – это то, что они бездействуют в ожидании нужного субстрата. Когда субстрат появляется, энзим внезапно начинает действовать, наподобие венериной мухоловки – насекомоядного растения. Подобная программа-триггер была использована в ИИ, где она получила название демона. Здесь важна идея наличия многих различных «семейств» подпрограмм, ожидающих активации. В клетке все сложные молекулы и органоиды строятся постепенно, шаг за шагом. Некоторые из этих новых структур сами являются энзимами и участвуют в построении новых энзимов – которые, в свою очередь, начинают строить другие типы энзимов и так далее. Подобные рекурсивные каскады энзимов очень сильно влияют на то, что делается в клетке. Было бы хорошо перенести подобный простой, ступенчатый процесс в ИИ – в построение полезных подпрограмм. Например, повторение – это способ вмонтировать некие структуры в аппаратуру нашего мозга, так что часто повторяемое поведение становится закодировано на подсознательном уровне. Было бы полезно найти аналогичный способ создания эффективных кусочков кода, которые могли бы производить такую же последовательность операций, как и нечто, выученное на высшем уровне «сознания». Каскады энзимов могут служить моделью того, как это может быть сделано. (Программа под названием «Hacker», написанная Геральдом Суссманом, создает и отлаживает небольшие подпрограммы способом, не слишком отличным от каскада энзимов.) Детектор сходства в программе, решающей задачи Бонгарда, мог бы сыграть роль такой энзимообразной подпрограммы. Подобно энзиму, этот детектор бродит вокруг, иногда натыкаясь на небольшие фрагменты данных. Когда пара его «активных центров» заполняется схожими структурами, детектор посылает сообщение другим частям программы (актерам). Пока программы соединены последовательно, иметь несколько копий детектора сходства не имеет смысла; однако в параллельном компьютере регулировка количества копий подпрограммы была бы способом регулировки также и предполагаемого времени до конца программы. Таким же образом, регулировка количества копий данного энзима в клетке регулирует скорость данного процесса. Создание новых детекторов было бы сравнимо с просачиванием обнаружения структур на низшие уровни нашего разума.
Расщепление и синтез
Две интересные дополнительные идеи, касающиеся взаимодействия символов, – это расщепление и синтез. Расщепление – это постепенное отделение нового символа от символа-родителя (то есть символа, послужившего эталоном для создания нового символа). Синтез – это то, что происходит, когда два ранее не связанных символа участвуют в «совместной активации», передавая сообщения между собой так интенсивно, что они становятся слитными; после чего эта комбинация начинает действовать как один символ. Расщепление – процесс более или менее неизбежный. Как только новый символ произведен на основе старого, он становится автономным, и его взаимодействие с окружающим миром отражается в его собственной внутренней структуре. Таким образом, то, что началось как совершенная копия, вскоре становится неточным, и все меньше и меньше походит на первоначальный символ. Синтез – вещь более тонкая. Когда два понятия сливаются в одно? Можно ли указать точный момент, когда это происходит? Понятие совместной активации открывает Пандорин ящик вопросов. Например, слышим ли мы отдельно слова «пар» и «ход», когда говорим о пароходе? Когда немец думает о перчатках («Handschuhe»), слышит ли он слова «Hand» и «Schuhe» («рука» и «обувь»)? А как насчет китайцев, чье слово «донг-хи» («восток-запад») означает «вещь»? Эта проблема переходит в область политики, когда некоторые люди высказывают мысль, что слова типа «медсестра» выражают недостаток уважения к женщинам. То, в какой степени в целом звучат отдельные части, варьируется, скорее всего, в зависимости от человека и от обстоятельств.
Основная проблема с понятием «синтеза» символов заключается в том, что очень трудно найти алгоритм, создающий новые значимые символы из символов, сталкивающихся между собой. Это подобно двум соединяющимся цепочкам ДНК. Каким образом можно взять части каждой из них и соединить их в новую значимую цепочку, в которой была бы закодирована особь того же класса? Или нового класса? Почти невероятно, что случайная комбинация ДНК окажется жизнеспособной, – вероятность этого такая же, как вероятность того, что перемешанные слова двух книг создадут третью книгу. Скорее всего, рекомбинация ДНК будет бессмысленна на всех уровнях, кроме самого низшего, именно потому, что в ДНК так много уровней значения… То же самое верно и для «рекомбинаций символов».
Эпигенез «Крабьего канона»
Мой Диалог «Крабий канон» кажется мне прототипом того, как две идеи столкнулись у меня в голове, соединились по-новому и вызвали к жизни новую словесную структуру. Разумеется, я все еще могу думать о музыкальных канонах и о диалогах раздельно; эти символы все еще могут быть активированы у меня в голове независимо друг от друга. Однако у этого синтетизированного символа для крабоканонических диалогов также есть собственный характерный вид активации. Чтобы проиллюстрировать понятие синтеза или «символической рекомбинации» более подробно, я хотел бы использовать пример создания «Крабьего канона». Во-первых, это мне хорошо известно, а во-вторых, это интересно и типично для того, чтобы показать, как далеко можно пойти в развитии какой-либо идеи. Я изложу это по стадиям, названным в честь мейоза – деления клеток, в котором участвует скрещивание хромосом, или генетическая рекомбинация, – источники разнообразия в эволюции.
ПРОФАЗА: Я начал с довольно простой идеи – что музыкальное произведение, например, канон, можно проимитировать словесно. Это было основано на наблюдении, что кусок текста и кусок музыкальной пьесы могут быть соотнесены между собой путем использования одной и той же абстрактной формы. Следующим шагом была попытка воплотить в жизнь некоторые возможности этой туманной идеи: здесь мне пришло в голову, что «голоса» канонов могут быть отображены в «действующих лицах» диалогов, – мысль все еще довольно очевидная.
Далее я стал перебирать специфические виды канонов и вспомнил, что в «Музыкальном приношении» был ракоходный канон. Тогда я только начинал писать Диалоги, и в них было лишь два действующих лица: Ахилл и Черепаха. Поскольку Баховский ракоходный канон – двухголосный, соответствие было полным: Ахилл был бы первым голосом, идущим вперед, а Черепаха – вторым, идущим назад. Однако здесь возникла следующая трудность: на каком уровне должно происходить обращение? На уровне букв? Предложений? После некоторого раздумья я заключил, что самым подходящим является уровень реплик, то есть драматического действия.
После того, как «скелет» Баховского канона был переведен, по крайней мере, в черновике, в словесную форму, оставалась одна проблема. Когда оба голоса встречались в середине, то получался период крайнего повторения – довольно серьезный недостаток. Как можно было поправить дело? Тут произошла странная вещь – типичное для творчества скрещение уровней: мне в голову пришло слово «краб» из названия канона, несомненно, из-за некоей его общности с понятием «черепахи». Я тотчас сообразил, что повторение в середине может быть предотвращено, если ввести туда реплику, произнесенную новым действующим лицом – Крабом! Так в «профазе» «Крабьего канона» из скрещивания Ахилла и Черепахи на свет появился Краб. (См. рис. 131).
Рис. 131. Схематическая диаграмма Диалога «Крабий канон».
МЕТАФАЗА: Итак, скелет моего «Крабьего канона» был готов. Я перешел ко второй стадии – «метафазе,» – в которой моей задачей было облечь скелет в плоть. Разумеется, это было нелегкой задачей. Мне пришлось изрядно попотеть в поисках пар фраз, которые имели бы смысл при прочтении в обратном порядке, и фраз с двойным значением, которые помогли бы мне создать подобную форму (например, «не стоит»). Два ранних варианта получились интересными, но слабоватыми. Когда, после годичного перерыва, я вернулся к работе над книгой, у меня было несколько новых идей для «Крабьего диалога». Одной из них было упоминание какого-либо Баховского канона в самом Диалоге. Сначала я собирался упомянуть о каноне под названием «Canon per augmentationem, contrario motu» из «Музыкального приношения» (этому канону у меня соответствует Диалог «Канон ленивца»). Однако это выглядело глуповато, так что в конце концов я решил, скрепя сердце, что в «Крабьем каноне» я могу говорить собственно о ракоходном каноне Баха. На самом деле, это оказалось поворотным пунктом в работе над Диалогом, о чем я тогда еще не догадывался.
Но если одно действующее лицо упоминает о Баховской пьесе, не будет ли звучать нелепо, если в соответствующем месте Диалога второе действующее лицо скажет точно то же самое? В книге и в мыслях у меня Эшер играл роль, подобную роли Баха; нельзя ли было немного изменить соответствующую реплику так, чтобы во второй раз она относилась к Эшеру? В конце концов, в строгом искусстве канонов ради красоты и элегантности иногда допускаются отступления от точного повторения темы. И как только я об этом подумал, мне тут же пришла в голову картина «День и ночь» (рис. 49). «Ну конечно!» – сказал я себе. «Ведь это тоже что-то вроде ракоходного канона, где два взаимно дополняющих голоса проводят одну и ту же тему направо и налево, гармонируя друг с другом!» Здесь мы снова сталкиваемся с понятием единой «концептуальной схемы», воплощенной в различных контекстах, – в данном случае, в музыке и в графике. Таким образом, я позволил Ахиллу говорить о Бахе, а Черепахе – об Эшере, но в параллельных выражениях, безусловно, это небольшое отступление от точного повторения не угрожало духу ракоходного канона.
Примерно тогда же я заметил, что случилось нечто удивительное: Диалог стал автореферентным, хотя я ничего подобного не планировал! Более того, это была косвенная автореферентность, поскольку герои нигде не упоминали о Диалоге, действующими лицами которого они в данный момент являлись. Вместо этого они говорили о структурах, на некотором абстрактном уровне изоморфных этому Диалогу. Иными словами, мой Диалог теперь имел тот же самый «концептуальный скелет», как и Гёделево утверждение G, и, таким образом, мог быть отображен на G примерно так же, как и Центральная Догма Типогенетики. Это было замечательно: нежданно-негаданно я нашел пример эстетического единства Гёделя, Эшера и Баха.
АНАФАЗА: Следующий шаг был довольно удивительным. У меня давно лежала монография Каролины Макгилаври, посвященная мозаичным работам Эшера; однажды, когда я стал ее перелистывать, мое внимание привлекла гравюра 23, которую я вдруг увидел в неожиданном свете: передо мной был самый настоящий крабий канон, как по форме, так и по содержанию! Эшер оставил эту картину без названия, и поскольку у него есть множество подобных мозаик с другими животными, возможно, что это совпадение формы и содержания было только моей случайной находкой. Так или иначе, эта безымянная гравюра была миниатюрной версией главной идеи моей книги – объединения формы и содержания. Так что я радостно окрестил гравюру «Крабьим каноном», поставил ее на место «Дня и ночи» и соответствующим образом изменил реплики Ахилла и Черепахи.