Игра в имитацию. О шифрах, кодах и искусственном интеллекте — страница 17 из 25

иями, необходимыми последнему для выполнения рассматриваемых операций.

Расширение программы на случай автоматов, которые производят автоматы

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

Основные определения

Как и в предыдущем случае, здесь тоже весьма важно дать строгое определение того, что следует понимать под автоматом в рамках нашего исследования. Прежде всего необходимо составить полный список тех элементарных частей, которые будут использоваться. Этот список должен содержать не только перечисление всех элементарных частей, но и полный набор сведений о том, как работает каждая элементарная часть в отдельности. Относительно легко составить такой список, т. е. написать каталог «машинных деталей», который был бы достаточно обширен, для того чтобы из них можно было строить множество нужных механизмов, и который удовлетворял бы требованиям аксиоматической строгости, необходимой в рассмотрениях этого рода. Этот список даже необязательно делать длинным. Его можно, конечно, сделать произвольно длинным или произвольно коротким. Список получится длинным, если в качестве элементарных частей в него будут включены объекты, которые можно получить в виде комбинаций других элементарных частей. Но список можно сделать и коротким – фактически можно устроить даже так, чтобы в нем была только одна-единственная деталь, – если каждую элементарную часть наделить разнообразными свойствами и функциями. Поэтому любое утверждение относительно числа необходимых элементарных частей представляет собой некоторый разумный компромисс, при котором ни от одной элементарной части не ожидается ничего слишком сложного и ни одна элементарная часть не предполагается выполняющей несколько явно не связанных друг с другом функций. В этом смысле, как можно показать, достаточно около дюжины элементарных частей. После этого проблему самовоспроизведения автоматов можно сформулировать следующим образом. Можно ли из указанных элементов построить такой агрегат, что, если его поместить в резервуар, где в большом количестве «плавают» все эти элементы, он начнет строить другие агрегаты, каждый из которых в конце концов станет новым автоматом, в точности подобным первоначальному? Оказывается, это возможно, и принцип, на котором эта возможность основана, тесно связан с очерченным ранее принципом Тьюринга.

Основная идея доказательства теоремы о самовоспроизведении

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

Автомат A, который отличается тем, что если в него ввести описание любого другого автомата в терминах соответствующим образом подобранных функций, он построит этот автомат. В данном случае описание совсем необязательно должно представлять собой ленту с нанесенными на ней пометками (как это было необходимо для машин Тьюринга), потому что, как правило, мы вряд ли выберем ленту в качестве структурного элемента. Однако совсем нетрудно описать такие комбинации структурных элементов, которые будут обладать всеми свойствами ленты, как устройства для кодирования, содержащего ячейки, в которых можно делать пометки. Описание в этом смысле мы будем называть инструкцией и обозначать буквой J.

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

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

Автомат В, который может копировать любую введенную в него инструкцию J. Инструкция J есть агрегат элементарных частей в смысле, указанном в а), заменяющий бумажную ленту машины Тьюринга. Указанная особенность автомата В будет использоваться в случае, когда J представляет собой описание другого автомата. Иначе говоря, автомат В является не чем иным, как «копировальной машиной», которая может, просматривая введенную в нее перфорированную ленту, производить другую перфорированную ленту, тождественную первой. Заметим, что и этот автомат может производить объекты, превосходящие его по размерам и сложности. Отметим также, что в этом нет ничего удивительного. Поскольку автомат В может только копировать, то чтобы получить на его выходе некоторый объект, нам следует лишь подать на его вход объект в точности таких же размеров и такой же сложности, что и объект, построения которого мы от него ожидаем.

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

Соединим автоматы А и В друг с другом и с механизмом управления С, который выполняет следующие действия. Пусть в автомат А введена инструкция J (понимаемая опять-таки в смысле а) и b)). После этого механизм управления С прежде всего заставит А построить автомат, который описан этой инструкцией J. Затем С заставит В скопировать указанную выше инструкцию J и введет копию в автомат, только что построенный А. Наконец, С отделит это устройство от системы А + В + С и «даст ему жизнь» уже как самостоятельному объекту.

Обозначим весь агрегат А + В + С через D.

Для того чтобы агрегат D = А + В + С мог функционировать, его следует снабдить некоторой инструкцией J, как это описано выше. Как мы уже отмечали, эта инструкция должна быть введена в автомат А. Образуем теперь инструкцию JD, которая описывает этот автомат D, и введем JD в автомат А, составляющий часть всего агрегата D. Назовем получившийся при этом агрегат Е.

Очевидно, что Е обладает способностью к самовоспроизведению. Заметим, что никакого порочного круга при этом не возникает. Решающий этап работы агрегата Е наступает тогда, когда инструкция JD, описывающая D, построена (скопирована) и присоединяется к D. При этом автомат D уже существует к тому времени, когда возникает необходимость построить (скопировать) JD, и построение JD никак не может изменить его. JD просто добавляется к D, в результате чего образуется новый агрегат Е, подобный первоначальному. Таким образом, существует определенный хронологический и логический порядок, в котором должно происходить образование D и JD, и этот процесс согласуется с правилами логики.


Осмысление полученного результата и его непосредственных обобщений

Описание автомата Е обладает и некоторыми другими интересными сторонами, о которых я не буду говорить здесь слишком подробно. Например, совершенно очевидно, что инструкция JD в основном выполняет функцию генов. Ясно также, что копирующий механизм В выполняет основной акт воспроизведения – дупликацию генетического материала, что, очевидно, является основной операцией в процессе деления живых клеток. Нетрудно также видеть, что произвольные изменения системы Е и в особенности инструкции JD могут породить некоторые типичные черты, проявляющиеся в живых организмах в связи с мутациями, которые хотя и являются летальными, как правило, тем не менее содержат в себе возможность дальнейшего самовоспроизведения организмов, уже не вполне тождественных первоначальным. Разумеется, ясно и то, в каком пункте эта аналогия нарушается. По-видимому, природный ген не содержит полного описания объектов, создание которых стимулируется его присутствием. Он содержит, вероятно, только общие указания, общие наметки.

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

Небольшое изменение предыдущей схемы позволяет нам также построить автомат, который сможет воспроизводить самого себя и, кроме того, строить другой автомат. (Если говорить более подробно, автомат такого рода выполняет, по-видимому, одну из самых типичных – если не самую типичную – функцию гена, состоящую в самовоспроизведении плюс производстве – или стимуляции производства – некоторых специфических ферментов. Действительно, для этого достаточно заменить инструкцию JD инструкцией JD+F, которая описывает автомат D плюс некоторый данный автомат F. Обозначим D вместе с инструкцией JD+F (которая помещена в автомат A, являющийся частью автомата D) через EF. Очевидно, что автомат EF обладает вышеописанным свойством. Он будет воспроизводить себя и, кроме того, строить F.