Кодекс жизнетворца - Джеймс Хоган
Шрифт:
Интервал:
Закладка:
У роботов имелись небольшие внутренние процессоры, которые можно было по радио перепрограммировать с фабрики, чтобы робот мог выполнить очередное задание. Это позволяло роботам действовать автономно под местным контролем и освобождало центральные компьютеры, которые ожидали сигнала: "Выполнено. Следующее задание?" Поэтому в роботах имелись специальные программы, которые обеспечивали обмен информацией между компьютерами фабрики и процессорами роботов.
При копировании программы "Как сделать Фабрику" были задействованы искаженные цепи: программа пошла не в центральную систему Фабрики, а в процессоры многочисленных роботов, которых она касалась, причем каждый робот воспринимал свою часть программы. В базе данных самой Фабрики никаких копий этой программы не было сделано. И что еще хуже, в этом процессе стерся оригинал программы, находившийся в корабле. И теперь программа "Как сделать робот типа Фред [ФРЕД, FRED, Friendly Robot Educational Device - самообучающийся робот]" содержалась только в роботах типа Фред на поверхности. И то же самое оказалось справедливо для всех остальных типов.
И вот когда контрольная программа фабрики передала приказ исполнительной программе начать создание производственных роботов, а исполнительная программа передала этот приказ системе управления базой данных, система управления обнаружила, что не может найти эту информацию. И получить копию с корабля тоже невозможно. Система управления базой данных сообщила об этом затруднении исполнительной программе; та передала контрольной программе; контрольная программа обвинила систему связи; система связи затребовала объяснений у передаточных инстанций. После длительных электронных разборок и обвинений было наконец установлено, что исчезнувшие субфайлы находятся в роботах на поверхности. По строжайшему приказу контрольной программы программа связи выбрала одного из Фредов первой категории из списка исполнительной программы и передала ему команду возвратить субфайл.
Но у Фреда не было полного субфайла этой программы: его память недостаточно обширна для нее. По той же самой причине ни один из Фредов не обладал всей программой. Программа разлилась по ним, как заполняются ведра из пожарного шланга: у каждого была своя часть; но в целом они как будто сохранили весь субфайл. И поэтому контрольной программе пришлось извлекать части из разных Фредов и совмещать их таким образом, чтобы это имело смысл. Контрольная программа создала таким образом свою версию и передала ее исполнительной программе для производства.
К несчастью, команда на запись информации на будущее каким-то образом затерялась, и каждый субфайл "Как сделать" для очередной группы Фредов после использования стирался, как только производство заканчивалось. И поэтому когда Фабрика N_1 закончила отправку роботов для строительства Фабрики N_2 и должна была выслать группу для выбора места под Фабрику N_3, контрольной программе пришлось начинать все с начала. И то же самое приходилось делать при замене вышедших из строя роботов.
Все это заняло большое количество процессорного времени, перегрузило каналы связи и вообще было неэффективно, отчего встревожились электронные бухгалтеры. В результате возникла самосовершенствующаяся гибкая обучающаяся программа, которая отыскивала экономически неэффективные способы и старалась их усовершенствовать. После нескольких попыток контрольная программа обнаружила, что среди Фредов разных типов есть такие, которые содержат половину соответствующего субфайла, а это означало, что полный субфайл можно получить у двух индивидуумов, а не у всех сразу, как раньше. Соответственно программа начала отыскивать такие "совпадающие" пары как источник ответа на запросы исполнительной программы и перестала обращать внимание на остальных Фредов.
Вместе с первоначальными субфайлами "Как сделать Фред" были утрачены субсубфайлы программы "Что делать, после того как все сделано". Чтобы восполнить этот пробел. контролирующая программа запросила у исполнительной программы весь набор файлов, касающихся воспроизводства, и среди них, конечно, программу, как делать Фредов. И вот с конвейера стали сходить роботы с половиной "генетической" информации, автоматически встроенной в них, и этот цикл повторялся при производстве новых Фредов. Метод действовал, и контрольная программа так и не додумалась, что можно было просто записать эту информацию в базе данных фабрики, а не передавать от одного робота другому.
Но части программы могли перекомбинироваться и не повторяли в точности первоначальное сочетание, "геномы", составляющие их, редко оказывались идентичными, в некоторых встречались отрывки, стертые в других. И постепенно Фреды начали приобретать разную форму и вести себя по-разному.
Некоторые вообще никак себя не вели, а просто падали, не выдержав проверочного теста, их разбирали на части и снова пускали в производство. Таких было много.
Некоторые - на самых начальных стадиях - оказывались генетически неполными, "стерильными", и поэтому контрольная программа не запрашивала у них данные для самовоспроизводства. Они существовали, пока не изнашивались и выходили из строя.
Некоторые размножались пассивно, то есть передавали на фабрику свои половины субфайлов, когда их запрашивала контрольная программа.
Однако некоторые унаследовали от первоначальной основной программы потребность производить роботов своего типа, их программа была организована таким образом, что они должны были постоянно искать возможности выполнить основное свое предназначение - произвести себе подобных. Роботы этой категории размножались активно: они вели себя так, чтобы их "генетические" половины обязательно попали в исполнительную программу.
Когда Фабрика N_1 перешла на производство товаров и материалов, роботы, соревновавшиеся за возможность участвовать в производстве, скоро заполнили всю ее память, и фабрика больше ничего другого делать уже не могла. Фабрика N_2 действовала по программа, скопированной с Фабрики N_1, и потому с ней случилось то же самое. И тот же цикл передался Фабрике N_3, которая уже начала сооружаться к этому времени.
Постепенно все больше фабрик начало возникать на скалистом берегу. Нестабильность, унаследованная от первых программ, передавалась копиям копий, перешла к последующим поколениям, и новые фабрики стали все больше различаться по форме и функции.
Материальных ресурсов почти повсюду не хватало, и так возникла конкуренция, на которую чужаки, создатели программ, не рассчитывали. Общины роботов каждой фабрики включали смесь из исследовательских, доставочных и разделочных роботов, которые удовлетворяли свои "аппетиты" в соответствии с потребностями фабрики, и те фабрики, которые оказались на более выгодных участках поверхности, выживали, если не процветали. Например, Фабрика N_10 расположилась в центре древнего метеоритного кратера двенадцати миль в диаметре; здесь высокая температура и удар обнажили скальное основание под слоем льда; Фабрика N_13 оказалась в глубокой трещине, где лед был относительно тонок, и смогла пробить шахту к более богатой материалами коре; а Фабрика N_15 разработала процесс синтеза более тяжелых атомов из более легких, которые вмерзли в раствор ледяной коры. Но многие фабрики, например, Фабрика N_19, которая размещалась на толстом поле льда и остановилась, когда вышли из строя бурильные роботы, а процесс синтеза атомов не сработал, - многие фабрики разделили ее судьбу, когда кончались пригодные материалы.
Роботы-стервятники сыграли большую роль в развивающемся странном метаболизме. Что бы ни приказывали контрольные программы многочисленных фабрик, выполнить можно было лишь то, для чего имелись возможности, запасные части, а это, в свою очередь, зависело от способности стервятников отыскать их или найти такие собрания этих частей, которые можно разобрать - "переварить", чтобы использовать снова. Крайним примером может служить Фабрика N_24. Не в состоянии создавать части из сырья, потому что не действовала ее программа производства, она целиком зависела от своих роботов-стервятников. С другой стороны, Фабрика N_32 могла добывать сырье, но не могла его использовать, потому что была построена вообще без производственных мощностей. Ее роботы перешли к Фабрике N_47, которая могла производить запасные части для роботов с Фабрики N_32, и таким образом две этих фабрики смогли благополучно существовать в своеобразном симбиозе.
Груды разнообразного лома, которых не должно было бы существовать, если бы предыдущие стадии процесса исполнялись нормально, оказались съедены; вышедшие из строя машины съедены; корпуса переставших функционировать фабрик съедены. И когда эти источники исчерпались, некоторые машины начали пожирать друг друга.
Роботы-стервятники было сконструированы таким образом, чтобы отличать нормально функционирующие машины от вышедших из строя и пригодных для переработки. Однако, как и в других достаточно сложных процессах, в одних случаях эта установка срабатывала хорошо, в других - не очень хорошо, а в третьих - вообще не срабатывала. Некоторые модели стервятников готовы были уничтожить не только мертвого, лежащего Фреда, но и живого, функционирующего. Многие из жертв проявляли равнодушие к своей судьбе и вскоре вымерли, но другие сумели развить эффективную реакция "сопротивляйся или беги", и так началось разделение на добычу и хищников, а среди хищников - на питающихся материалами и машинами.