=====================================================
(101) Фуко М. Слова и вещи.- С. 96 - 97.
(102) Анализ рекурсивного строения зтого произведения сделан в кн.: Анисимов А. В. Информатика. Творчество. Рекурсия.- С. 136 - 151,
=====================================================
Наиболее яркий современный рекурсивный роман, удостоенный Нобелевской премии в области литературы, - "Сто лет одиночества" Г. Маркеса. Рекурсивно повторяются события поколений семейства Буэндиа. Последний из рода Буэндиа заканчивает расшифровывать рукопись волшебника Мелькиадеса, которая оказывается тем же описанием "Ста лет одиночества". По мере прочтения поднимается и нарастает ураган. Прочитывается последняя страница, книга заканчивается, и все исчезает в бушующем смерче. В "Защите Лужина" В. Набокова герой с удивлением узнает пласты рекурсивного повторения реальности, преследующей его. В романе "Время и место" Ю. Трифонова писатель создает роман о писателе, пишущем роман о писателе, который что-то тоже пишет о писателе. О рекурсивных снах Н. В. Гоголя, М. Ю. Лермонтова и Ф. М. Достоевского мы уже говорили. Из сказанного можно сделать вывод, что литература в своем моделировании мира все ближе и ближе подходит к алгоритмической технике. В последнее время наиболее явно проявляется тяготение литературы к использованию рекурсии. Многие авторы интуитивно применяли этот прием как отражение реального развития мира. И это было признано читателями. Теперь, когда рекурсия узнана, возможно сознательное применение сложных рекурсивных конструкций, хорошо известных в теории алгоритмов и программировании. Например, возможно определение рекурсивного порождения процесса, в создании которого участвуют одновременно несколько процессов (смешение отражений разных зеркал, снов и реальности) (103). Это малоисследованная область даже в теории алгоритмов. Это интеллектуальные игры недалекого будущего. Некоторое (все же слабое) представление об этом может дать "Сон китайского императора". В этом фрагменте рекурсия все-таки слабо зависит от процессов.
МОДЕЛЬ МИРА
Компьютеры вошли в жизнь человека - он все больше и больше полагается на них. Компьютеры печатают документы, управляют сложными технологическими процессами, проектируют технические объекты,
=====================================================
(103) См.: Анисимов А. В. Рекурсивные преобразователи информации //Дискретная математика - 1989.- Э 3.- С. 3 - 18.
=====================================================
развлекают детей и взрослых. Естественно стремение человека как можно полнее выразить себя в алгоритмических устройствах, преодолеть языковый барьер, разделявший два разных мира. Как уже неоднократно отмечалось, язык, человек и реальность неразрывно связаны между собой. Поэтому обучение компьютера естественному языку - задача чрезвычайно сложная, связанная с глубоким проникновением в законы мышления и языка. Научить компьютер понимать естественный язык - это то же, что научить его чувствовать мир. Многие ученые считают решение этой задачи принципиально невозможным. Но так или иначе процесс сближения человека и его электронного детища начался, и кто знает, чем он закончится. Во всяком случае, человек, пытаясь моделировать задачу языкового общения, начинает понимать себя гораздо полнее. Существуют отдельные программы, имитирующие генерацию осмысленного текста. Например, программа Mark Chainy, созданная американскими программистами Б. Эллисом и Д. Митчелом, анализирует заданный текст и для каждой пары соседних слов вычисляет вероятность появления третьего слова, если эта пара уже появилась. Затем, используя зти вероятности и датчик псевдослучайных чисел для "случайного" выбора символов, генерируют сам текст. Название программы отражает связь с цепями Маркова. Такие игры с вероятностью порождают интересные тексты, напоминающие речь шизофреника, и иногда сбивают с толку компьютерных собеседников. Прочитав учебник по математике, программа может сказать: "Зачем они начали отсчитывать четвертями. Огромная бутыль, вмещающая четыре четверти - это уже трехзначное число..." Эллис подключил свою программу к многопользовательской сети ЭВМ. Программа обрабатывала имеющиеся в сети сообщения и выдавала сумбурные тексты. Некоторые пользователи требовали убрать программу с ее чудовищным бредом, другие чувствовали в ней родственную душу, и им нравилась подобная болтовня. Такие попытки нельзя использовать для серьезных научных разработок - нет и намека на понимание языка. Правильный подход должен начинаться с моделирования мира. Любое языковое сообщение проявляет двойственную сущность. С одной стороны, это отражение фрагмента реальности с одновременными изменениями и взаимодействиями многих величин. С другой текст разворачивается в виде последовательной линейной цепочки символов, задающей запись текста и его восприятие.
"Если бы ум был способен выражать идеи так, "как он их воспринимает", то, без всякого сомнения, он "выражал бы их все сразу". Но это совершенно невозможно, так как если "мысль - простое действие", то "ее высказывание последовательное действие". этом состоит специфика языка, отличающая его и от представления (представлением которого он, однако, в свою очередь является), и от знаков (к которым он принадлежит на равных правах). Язык не противостоит мышлению как внешнее - внутреннему, или как экспрессия рефлексии. Он не противостоит другим знакам - жестам, пантомимам, переводам, изображениям, эмблемам, как произвольное или коллективное - естественному или единичному. Но он противостоит им всем как последовательное одновременному. По отношению к мышлению и знакам он то же самое, что и алгебра по отношению к геометрии: одновременное сравнение частей (или величин) он заменяет таким порядком, степени которого должны быть пройдены последовательно, одна за другой. Именно в этом строгом смысле язык оказывается анализом мысли: не простым расчленением, но основополагающим утверждением порядка в пространстве" (104).
Таким образом, в представлении разума текст возникает как динамический параллельный процесс, определяющий активности и взаимодействия одновременных алгоритмических структур, и выражается интерпретацией такого представления в виде линейной последовательности символов. Для того чтобы уметь автоматически генерировать тексты, необходимо прежде всего описать взаимодействующую модель мира, затем научиться строить последовательную интерпретацию модели на уровнях отдельных фрагментов и предложений (рис. 14). Язык появился как особое отражение параллельной реальности. Компьютеры исторически возникали в обратном порядке. Сначала осваивались последовательные ЭВМ, затем начался активный переход к параллельным вычислительным комплексам. Поэтому программисты сначала обжились в мире последовательных языков программирования, а сейчас перешли к параллельным языкам. В любом литературном произведении выделяются герои, объединяемые между собой сильными ассоциативными связями. Например, в романе Л. Н. Толстого "Анна Каренина" Анна связана с Вронским, Кити с
=====================================================
(104) Фуко М. Слова и вещи. - С. 136-137.
=====================================================
* Рис. 14. Модель языка
Левиным, в "Мастере и Маргарите" М. А. Булгакова Мастер связан с Маргаритой, Иешуа с Пилатом, Воланд со своей темной веселой компанией. Такое неразрывное объединение объектов в одну действующую стрктурную единицу в программировании называется процедурой или процессом. В случае параллельного программирования, когда разрешаются одновременные действия разных объектов, обычно говорят о процессах. Так как литературное произведение описывает фрагмент реальности с возможными одновременными событиями, то, следуя устоявшейся в программировании традиции, мы тоже будем рассматривать в литературных текстах процессы. Итак, Анна Каренина и Вронский, Кити и Левин, Мастер и Маргарита, Иешуа и Пилат, Воланд и компания представляют собой отдельные замкнутые главные процессы. Процессы взаимодействуют между собой, изменяя значения собственных параметров. В свою очередь, каждая единица такого процесса также может содержать подчиненные взаимодействующие процессы. Так, у Маргариты есть домработница Наташа, тоже участвующая в событиях, у Пилата - воины, начальник тайной службы, Иешуа имеет ученика Левия Матвея и оказался в одной компании с двумя разбойниками. Все они могут в определенной степени существовать и действовать самостоятельно. Неделимый элементарный процесс - это структурная единица текста с элементами собственного независмого развития, но уже без таковых подчиненных объектов. Нос майора Ковалева из повести Н. В. Гоголя образует главный процесс, нос Буратино - просто константа, входящая в процесс Буратино. Состояния героев внутри процессов описываются глобальными и локальными переменными. Значения глобальных переменных известных другим процессам, могут изменяться в моменты взаимодействия процессов, значения локальных изменяются только внутри процесса, которому они принадлежат. В настоящее время программисты заняты активными поисками выразительных, удобных языковых средств для описания параллельных взаимодействующих процессов. Такие языки уже существуют и реализованы на параллельных ЭВМ. В США по заказу министерства обороны разработан язык АДА, по-видимому, сдающий свои позиции, в Европе доминирует язык ОККАМ, созданный английской фирмой INMOS для транспьютерных систем. ОККАМУ, кажется, сопутствует звезда удачи. Автор этой книги участвует в разработке ПАРУС-технологии программирования (ПАРУС расшифровывается как Параллельные Асинхронные Рекурсивные Управляемые Системы). ПАРУС-системы программирования дают возможность расширять любые языки развитыми средствами параллельного взаимодействия и рекурсивного подчинения объектов друг другу. ПАРУС удачно описывает процессы лингвистической обработки информации. ОККАМ вписывается в ПАРУС как частный, но реализованный практически на транспьютерах случай. Анализ литературных текстов с позиций алгоритмических процессов позволяет выявить закономерности и приемы, применяемые разными авторами при построении литературных форм. С другой стороны - и это то, к чему мы стремимся, создавая параллельные программы, генерирующие текст, и пропуская их через последовательную моделирующую программу, - можно надеяться на создание автоматических генераторов текстов.