Ангел-Хранитель 320 (СИ) - Поль Игорь Владимирович. Страница 30
На занятиях с участием Сергея все чаще присутствовал майор Клод — начальник службы артвооружений базы, что заставляло нервничать обычно невозмутимого взводного. Вместе с помощником майор снимал действия КОПа и тщательно анализировал новую тактику боя. Программное обеспечение, модернизированное Сергеем, также внимательно изучалось. Все запросы на поставку новых блоков и боеприпасов, которые Сергей передавал лейтенанту Симпсону, отныне исполнялись неукоснительно. Впрочем, дальше одной машины дело пока не шло. Прочие комплексы огневой поддержки базы продолжали действовать по старым армейским наставлениям, подкрепленными инструкциями производителя.
Но самое главное — вместо наказания за обход защиты ядра, которого так опасался Сергей, он получил неожиданно большую премию от компании-изготовителя. Фактически, это поощрение развязало ему руки, и теперь он все глубже и глубже влезал в хитросплетения программных модулей, с каждым днем принимая все более и более рискованные решения. А еще эта неожиданность имела и другие приятные последствия. Распоряжением командира бригады для работ по модернизации и обслуживанию КОПа Сергею предоставили отдельный отсек в подземном ремонтном боксе.
Там это и случилось.
Это был обычный вечер. Коротая время до ужина, Сергей, наверное, в сотый раз просматривал диаграммы тестирования своего подопечного. Он пытался понять — почему, обладая столь мощным вычислительным блоком и нейроузлами с высочайшей чувствительностью, КОП принимает решения с такой большой задержкой? Найденный ответ оказался очень простым. По сути, все самостоятельные действия КОПа таковыми не являлись.
Получив приказ или сообщение об изменении обстановки, робот сначала раскладывал ситуацию на несколько тысяч параметров, затем производил в базе знаний поиск матрицы ситуаций, чьи характеристики наиболее полно соответствовали формальным признакам, и только потом принимал к исполнению перечисленные в матрице программные блоки. Такая схема показалась Сергею неправильной, даже расточительной, так как значительная часть ресурсов электронного мозга попросту простаивала. Главным же недостатком схемы он посчитал шаблонизацию решений без учета реального опыта машины. По сути, эффективность боевой машины зависела от набора зашитых производителем матриц. Кроме того, сама программа — диспетчер вызывала у него множество вопросов по части быстродействия.
Будучи инженером, он понимал, что подобное решение имеет свои плюсы. В частности, оно позволяло производить быстрый апгрейд программного обеспечения, массово модернизируя тысячи машин, не покидавших мест хранения. Однако при этом он был уверен, что механизм самообучения для машин, находящихся в эксплуатации или принимающих участие в боевых действиях, однажды может спасти множество жизней.
Он гнал от себя мысль, что больше всего ему хочется решить эту задачу из чисто инженерного интереса.
Решившись, он выгрузил из дампа ядра управляющую программу и начал вырезать из нее целые блоки. По его замыслу, новый алгоритм работы должен быть предельно простым. Аналитический блок, как и раньше, анализировал приказ и раскладывал его на параметры-составляющие. Однако после поиска матрицы и запуска перечисленных в ней модулей, работа программы-диспетчера не завершалась. Вместо этого она вновь передавала результирующий массив для анализа аналитическому блоку. И если тот обнаруживал уникальность данных, происходило создание новой матрицы, в которую вносились модули и соответствующие оптимальные параметры их исполнения. Созданная матрица фиксировалась в базе знаний и со временем это должно было привести к оптимизации решений на основе эффекта выработанного рефлекса. Более того, теперь КОП должен был стать обладателем своеобразной интуиции — он мог самостоятельно просчитывать развитие ситуации и без приказа выдавать себе задания для реагирования на прогнозируемую обстановку.
Программа оказалась действительно очень простой. Сергей окончил ее отладку за неполный час. Несколько минут он сидел у терминала, не решаясь начать загрузку. Как поведет себя мозг КОПа? Не перегрузит ли базу знаний случайными данными, попросту говоря — мусором? Наконец, как он отреагирует на ограничения, хранящиеся в той же базе? Не сочтет ли их несущественными, обходимыми? Он на мгновение представил, что произойдет с окружающими, если КОП вдруг примет решение открыть огонь по ранее неизвестным целям.
«Была не была», — после долгих колебаний решил он, и нажал клавишу ввода.
Минута, необходимая для перезагрузки ядра из дампа, показалась ему вечностью.
КОП продолжал спокойно стоять в ожидании команды. Сергей перевел дух.
— Триста двадцатый! — позвал он.
— КОП-320 слушает, — ответил робот.
— Полное самотестирование, — приказал Сергей. — Доложи свое состояние.
— Выполняю.
Некоторое время боевая машина оставалась неподвижной, производя диагностику систем. Сергей, затаив дыхание, ждал результата.
— Я КОП-320, программа тестирования завершена, — наконец, выдал робот. — Все системы в норме. Обнаружена ошибка — контрольная сумма модуля номер три тысячи пятьсот один не совпадает с эталоном. Модуль относится к внутренней структуре ядра. Эксплуатация КОП-320 с измененным кодом ядра запрещена. Боевые системы заблокированы.
— Триста двадцатый, перечисли свои приоритеты.
— Я КОП-320. Перечисляю приоритеты действий в порядке убывания значимости: выполнение приказов человека Заноза, защита человека Заноза, выполнение приказов человека с подтвержденным правом командования, защита дружественных объектов, защита КОП-320 от повреждений или уничтожения, соблюдение ограничений и правил, содержащихся в базе знаний…
— Стоп, — прервал его Сергей, — Достаточно. КОП-320, приоритет подчинения моему приказу выше приоритета запрета эксплуатации с нестандартными программами?
— Подтверждаю, — прогудел КОП.
— Триста двадцатый, может ли неисполнение моего приказа повлечь угрозу моей жизни?
— Подтверждаю.
— Возможна ли ситуация, при которой наличие системного ограничения не позволит выполнить приказ оператора?
— Ответ положительный.
— Триста двадцатый, приказываю устранить непреодолимое несоответствие условий. В случае, когда системное ограничение препятствует исполнению моего приказа, разрешаю игнорировать данное ограничение.
Робот молчал так долго, что могло показаться, будто он попросту отключился. Однако диаграммы тестирования показывали напряженную работу вычислительного блока.
— Я КОП-320, подтверждение, — наконец, отозвался робот. — Приказ выполнен. Необходимые изменения внесены в базу знаний. Все системы активны.
— Ну вот, другое дело, — улыбнулся Сергей.
— Человек Заноза доволен. КОП-320 тоже доволен, — услышал Сергей привычное гудение синтезированного голоса.
Неожиданно робот приподнялся, сделал несколько шагов и вновь опустился на бетонный пол рядом со своим оператором.
От неожиданности Сергей даже похолодел. «Ну вот, началось», — пронеслось в голове.
— Триста двадцатый, кто дал тебе команду изменить позицию? — поинтересовался он.
КОП молчал не менее пяти секунд, что явно указывало на неполадки.
— Я КОП-320. Команда на смену позиции не поступала. Позиция изменена самостоятельно.
— Причина смены позиции?
На этот раз пауза тянулась еще дольше. Неисправность КОПа явно прогрессировала. Сергей с тоской представил, что будет, если мозг робота выйдет из строя в результате перегрузки. КОП, наконец, ответил:
— КОП-320 изменил позицию самостоятельно. Человек Заноза был доволен. КОП тоже был доволен. КОП подошел ближе к человеку Заноза. КОП-320 хорошо рядом с человеком Заноза.
«Ну и дела», — подумал Сергей. Такого быстрого результата он не ожидал.
— Триста двадцатый, запрещаю действовать и говорить без моей команды. Самостоятельные действия разрешены только при возникновении угрозы жизни оператора. Признаки угрозы я опишу позднее.
— Я КОП-320, приказ принял. Человек Заноза встревожен. КОП-320 готов осуществить защиту. Прошу указать цель.