
Онлайн книга «Рой»
— Эй, ребята! — окликнул нас Бобби Лембек. — Как там у вас дела? — Разбираемся тут, что к чему. А что? — Ветер ослабевает. — Какая сейчас скорость ветра? — спросил я. — Пятнадцать узлов. А было восемнадцать. — Пятнадцать — не так уж мало, — сказал я. — Все в порядке. — Я знаю. Просто предупреждаю вас. В соседней комнате Рози спросила: — Что такое термит? — она держала в руках пластиковую коробку, наполненную металлическими цилиндриками размером с большой палец. — Поосторожнее с ними, — сказал Дэвид. — Наверное, это осталось после строителей. Видимо, они делали термитную сварку. — Но что это такое? — Термит — это смесь алюминия и оксида железа, — пояснил Дэвид. — Он дает очень высокую температуру горения — три тысячи градусов — и горит так ярко, что смотреть невозможно. Термитом плавят сталь для сварки. — Много там таких штук? — спросил я у Рози. — Возможно, они нам пригодятся сегодня ночью. — Там их четыре ящика. — Она достала один цилиндрик из коробки. — А как их поджигают? — Осторожнее, Рози. Они в магниевой оболочке. Могут вспыхнуть от любого случайного источника тепла. — Даже спичкой можно поджечь? — Если хочешь остаться без руки. Лучше использовать сигнальные ракеты или осветительные патроны. Что-нибудь с фитилем. — Понятно, — сказала Рози и скрылась за углом. Счетчик радиации все еще щелкал. Я повернулся к умывальнику. Мае уже закрыла контейнер с изотопом и теперь переливала золотистую жидкость в бутылку из-под «Виндекса». — Эй, ребята, слышите меня? — это снова был Бобби Лембек. — Я наблюдаю некоторую нестабильность. Ветер затихает. Скорость уже упала до двенадцати узлов. — Хорошо, — сказал я. — Не нужно сообщать нам о малейшем изменении, Бобби. — Просто я заметил нестабильность, вот и все. — Я думаю, пока нам ничего не угрожает, Бобби. Как бы то ни было, Мае должна справиться за несколько минут. Я подошел к компьютерному терминалу и включил его. Экран засветился, появилось меню. Я спросил: — Рики, могу я вывести код роя на этот монитор? — Код? — переспросил Рики. В его голосе мне послышались тревожные нотки. — Зачем тебе понадобился код? — Я хочу посмотреть, что вы, ребята, туда наворотили. — Зачем? — Рики, бога ради, могу я его увидеть или нет? — Можешь, конечно, можешь. Все версии кода в директориях через слэш после кода. Они запаролированы. Я нашел нужную директорию. Но войти в нее не смог. — Какой пароль, Рики? — Пароль — л-а-н-г-т-о-н, все буквы строчные. — Хорошо. Я ввел пароль. И вошел в директорию, в которой были собраны все модификации программы, с указанием размера файла и даты изменений. Все документы были больших размеров. Это означало, что в них — все программы для разных аспектов системы роя. Потому что коды самих частиц обычно бывают маленькими — всего несколько строчек, на восемь-десять килобайт, не больше. — Рики. — Да, Джек. — Где коды частиц? — Их там нет? — Черт тебя дери, Рики, перестань увиливать! — Слушай, Джек, это не я занимался архивами… — Рики, это рабочие файлы, а не архивы, — сказал я. — Скажи мне, где они? Он помолчал немного, потом сказал: — Там должна быть субдиректория Си-Ди-Эн. Коды в ней. Я прокрутил страничку вниз. — Вижу. В этой директории я нашел список файлов, все — очень маленькие. Судя по датам модификаций, они начали создаваться около шести недель назад. А за последние две недели ничего нового не появилось. — Рики, вы не меняли коды последние две недели? — Да, примерно столько. Я открыл самый последний документ. — Вы делали краткие сводки? Когда эти ребята работали в моей группе, я всегда требовал, чтобы они составляли краткое описание структуры программы на обычном языке. Такую сводку просмотреть гораздо проще, чем документацию внутри самого программного кода. К тому же, когда требуется сжато описать структуру программы, нередко удается решить логические проблемы. — Они должны быть там же, — сказал Рики. Я увидел на экране следующее: /*Инициализировать*/ Для j=1 до LxV выполнить Sj=0 /*установить начальный запрос до 0/ Закончить для Для i=L до z выполнить Для j=1 до LxV выполнить Sij = (состояние (x,y,z))/*пороговые параметры агента*/ 0ij = (требуемые (Сj,Нj))/*требуемые параметры агента*/ Реакция = 0/*начало реакции агента*/ Зона = z(i)/*начальная зона, не изученная агентом*/ Охват = 1/*активация перемещения агента*/ Закончить для Закончить для /* Главное*/ Для k1=1 до RVd выполнить Для tm=1 до nv выполнить Для S=L до j выполнить/*выслеживание окружающего*/ 0ij = (требуемые (Сj,Нj))/*требуемые параметры агента*/ Sij (состояние (x,y,z))/*агент находится в движении*/ SikL = (действительное(x,y,z))/*отслеживать ближайшие агенты*/ Я какое-то время изучал записи, пытаясь понять, что они в них изменяли. Потом я пролистал вниз, до описания окончательного кода, чтобы посмотреть, как в конце концов они это выполнили. Но самого главного кода в папке не было. Вся совокупность поведения частиц была обозначена как объект со ссылкой на нечто под названием «комп. стат.». — Рики, — сказал я. — Что такое «комп. стат.»? Где это? — Должно быть там… — Его здесь нет. — Ну, я не знаю… Может, его скомпилировали. — Но мне-то от этого не легче, правда? — Скомпилированный код прочитать невозможно. — Рики, я хочу увидеть этот чертов модуль. В чем проблема? — Да нет никакой проблемы… Мне придется его поискать, вот и все. — Хорошо… — Я сделаю это, когда вы вернетесь. Я посмотрел на Мае. — Ты можешь найти код? Она покачала головой. По выражению ее лица я понял, что кода мне не видать как своих ушей, что Рики будет придумывать все новые и новые отговорки, чтобы не допустить меня к нужной информации. Я только не понимал почему. В конце концов, я ведь затем сюда и приехал, чтобы помочь им разобраться с кодом. Я эксперт в этой области. |