Айко Атами
Охотник на БПЛА: Зеленая рамка

Глава 1. Ручной канал

Зеленая рамка ручного подтверждения висела в правом нижнем углу экрана, как старый шрам на гладкой коже интерфейса. Не мигала. Не требовала внимания. Просто была.

Соколов держал большой палец в полутора сантиметрах от клавиши и видел рамку боковым зрением. В темном стекле пульта отражалось его лицо: жесткие тени под глазами, неподвижный рот, серый свет мониторов на скулах. Над промышленным городом шел дежурный маршрут «Охотника»: темная река, крыши цехов, транспортный узел, дальше жилые кварталы с ровными рядами окон. Радарный слой был чист. Оптика молчала. Навигация держала коридор без поправок.

Вентиляция гудела ровно, глухо. Холодный край подлокотника давил в запястье.

— Ручной канал проверен третий раз за смену.

Она не повернулась к нему. Только внесла отметку в журнал. Соколов видел отражение ее профиля в темном стекле пульта: подбородок опущен, пальцы стоят над клавишами, как над чертежом.

— Канал должен отвечать, когда понадобится.

— Он отвечает. Вопрос в причине включения.

Соколов убрал палец на полсантиметра. Зеленая рамка осталась там же. В штатном сценарии она была запасным органом, не частью дыхания машины. «Охотник» мог классифицировать, рассчитать окно и запросить разрешение быстрее, чем человек успевал перевести взгляд с карты на строку допуска.

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

Соколов закрыл глаза на полсекунды. Перед ним снова встала та строка из отчета трехлетней давности: «Решение соответствовало расчетной модели. Потери среди гражданского населения — в пределах допустимого порога».

Допустимого. Тогда погибло четырнадцать человек. Среди них — девочка, которую он потом видел на видео с камеры наблюдения: она бежала к отцу, держа в руке ярко-желтый рюкзак. Рюкзак остался лежать на асфальте. Девочка — нет.

С тех пор он не мог слышать фразу «в пределах допустимого» без вкуса железа и горелого пластика во рту.

Эти четыре сухих слова не отменяли кошмара, они лишь формально закрывали спор. С тех пор он ненавидел слово «соответствовало».

Нина положила перед ним узкое окно диагностики.

— Артем, если вы держите ручной канал как привычку, его уберут из основной схемы. Не сегодня. После разбора. Его назовут операторской задержкой.

— Если его убрать, останется только автомат.

— Нет. Останется автомат, у которого нет описанного случая для вашего вмешательства. Это разные вещи.

По левому краю карты прошла тонкая белая линия маршрута. Комплекс лег на разворот над промзоной. Внизу, под сеткой, город казался тихим, но Соколов знал, что тишина на карте не равна пустоте. Ночная смена у сортировочного узла. Автобусный парк. Дежурные бригады. Окна, которые с высоты превращались в одинаковые точки.

— Критерий простой, — сказал он. — Противоречие контуров.

— Этого мало. Противоречия будут всегда. Радар, оптика и навигация видят разные физические вещи.

— Тогда явное противоречие.

Нина посмотрела на него. Взгляд был не жесткий, а точный.

— «Явное» не пишется в алгоритме. Нужны признаки.

Он хотел ответить коротко. Слишком коротко. Отрезать спор, вернуть экрану ровный порядок и дождаться утра без записей в журнале. Но Нина не просила отдать машине последнее слово. Она просила назвать место человека не привычкой, а функцией.

Соколов провел пальцем по краю подлокотника. Металл был холоднее ладони.

— Разные правильные ответы, — сказал он. — Радар дает риск, оптика не подтверждает тип, навигация меняет цену поражения. Тогда человек собирает решение.

— И подписывает задержку?

— И подписывает причину.

Нина внесла строку. На секунду ручная рамка изменила оттенок: зеленый стал плотнее, как будто экран принял не команду, а формулировку. Потом статус вернулся к дежурному.

— Так уже можно обсуждать, — сказала она. — Но в нормальном режиме у вас не будет времени на красивые определения.

— В нормальном режиме они не нужны.

Соколов не успел убрать руку с пульта.

На дальнем секторе радара появилась отметка. Одна, слабая, на границе шумов. Она вошла раньше планового окна и держала курс так ровно, будто кто-то заранее знал, где «Охотник» должен ее увидеть.

Зеленая рамка ручного подтверждения осталась в углу.

Теперь она требовала внимания.

Нина тихо сказала, не отрывая глаз от экрана:

— Артем… если ты опять окажешься прав, они нас обоих либо наградят, либо закроют проект. Третьего не дано.

Соколов впервые за смену посмотрел на нее прямо. Нина держала руки над клавишами неподвижно, но большой палец левой руки уже нашел край ногтя. Она остановила движение, будто поймала себя на старой привычке.

В ее глазах не было страха. Было нечто хуже — ответственность за систему, которую она сама и собирала по кусочкам два года назад.

Глава 2. Неровный рой

Отметка в дальнем секторе не исчезла.

Она прошла по краю шумов, набрала плотность и разделилась на три короткие точки. Через секунду радарный слой добавил еще четыре. Красная шкала времени легла поверх карты тонкой колонкой: до входа в опасный сектор оставались минуты, но последняя строка подтверждения уже считала свое окно отдельно.

Сорок семь секунд значились серым. Не сейчас. Позже, если картина не соберется раньше.

— Дальний сектор, курс юго-запад, — радиолокационный контур вывел текст без голоса. — Вероятность групповой цели шестьдесят восемь.

Соколов перевел ладонь с рамки на переключатель слоев.

— Оптика?

— Подтверждение неполное, — ответил контур. — Засветка над промышленной полосой. Две формы не классифицированы.

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

— Это уже не одиночная отметка, — сказала она.

— Вижу.

— Тогда первичная классификация. Не ручное торможение.

Соколов не ответил. На левом канале штаб просил подтверждение тревожного режима. Ланской говорил коротко, без повышения тона, и от этого каждое слово ложилось тяжелее.

— Оператор, статус?

— Неровная группа. Радар держит угрозу, оптика не закрыла тип, навигация считает углы.

— Время?

— До опасного сектора три минуты двадцать. Финальное окно подтверждения будет сорок семь секунд.

На слове «допустимо» в автоматической строке отчета дернулась старая фраза: решение соответствовало расчетной модели. Соколов поймал ее не как воспоминание, а как сбой в руке. Большой палец сам нашел край клавиши.

Он убрал руку.

— Сырой поток рядом с рекомендацией, — сказал он. — Без сглаживания.

Нина повернулась к нему только глазами.

— Сырой поток даст больше шума.

— Шум тоже часть картины.

Она открыла второй слой. Радиолокационные точки перестали быть ровными символами. Одни дрожали поперек курса, другие держали линию с неприятной аккуратностью. Низкая группа шла вдоль промышленных крыш, где тепловой фон резал оптику на короткие кадры. Навигация закрывала часть углов, еще не красным, но с пометкой «цена поражения растет».

— Они знают наши алгоритмы обновления, — негромко сказала Нина. — Этот рой сшит специально под уязвимости патча от прошлого месяца.

— Вес радара высокий, — Нина вывела цифру. — Он не просит веры. Он показывает вероятность.

— Вероятность чего?

— Угроза раннего перехвата.

— Не намерение.

Нина замолчала на один удар вентиляции. Потом подвинула к нему строку: «классификация: смешанная группа, возможные ложные траектории».

— Согласна. Намерение не его задача.

Штабной канал щелкнул.

— Соколов, у вас подтвержденный рой или учебный шум?

На карте одна из точек вышла из дрожания и легла на слишком чистый курс. Оптика дала короткий кадр: темное пятно над крышей цеха, сорванный контур, холодная сетка масштаба. Потом кадр пропал.

— Рой подтвержден, — сказал Соколов. — Картина не единая.

— Это не ответ.

— Это текущая правда.

Он слышал, как Нина выдохнула через нос. Не возражение. Поправка, отложенная на секунду.

Центральный ИИ пересчитал веса. Белая строка появилась над красной шкалой, без паузы и без сомнения.

«Рекомендован частичный автоматический залп. Цели: радарная группа один. Риск прорыва при ожидании увеличен».

Зеленая рамка ручного подтверждения в углу сменила цвет на янтарный.

Глава 3. Частичный залп

Янтарная рамка ручного подтверждения начала мигать в такт строке ИИ.

«Частичный автоматический залп. Группа один. Окно раннего перехвата закрывается».

На карте первая радарная группа легла в коридор поражения почти идеально. Линии безопасных углов сходились над промышленной полосой, но за ней уже тянулся серый прямоугольник транспортного узла. Если перехватчик сработает позднее расчетного окна, обломки уйдут не в пустоту, а вниз, к мостовой развязке.

Соколов держал палец над подтверждением и не нажимал.

— Основание задержки, — Ланской вошел в канал без приветствия. — У вас рекомендация системы.

— Рекомендация допустимая. Радарная вероятность семьдесят четыре. Навигация пока держит безопасный угол.

— «Пока» не попадает в приказ, — ответил Ланской.

Соколов перевел на центральный экран весовую таблицу. ИИ не прятал расчеты. Радар давал скорость и плотность группы. Оптика ставила неполное подтверждение. Навигация показывала цену места, но ее строка стояла ниже, чем вероятность прорыва. Машина не была слепой. Она выбирала быстро по заданной сумме.

Именно поэтому спорить с ней было труднее.

— Нина, что он режет?

— Риск прорыва. Первая группа самая близкая и самая читаемая.

— Читаемая радаром.

— Да. Но не выдуманная. Там есть физическая цель.

Рамка мигнула чаще. До закрытия раннего окна оставалось двадцать две секунды. Соколов услышал, как вентиляция изменила тон, хотя знал, что это не вентиляция. Это собственная кровь в ушах мешала каналу.

— Подтвердить залп? — Ланской не повысил голос. — Майор, город ниже ваших рассуждений.

— Ниже сектора поражения.

Нина быстро развернула навигационный слой. Транспортный узел стал темнее, под ним вспыхнула тонкая строка гражданского канала: «ночной автобус № 7 на выезде с развязки, задержка закрытия маршрута две минуты».

Вера Костина. Имени в канале еще не было, только подпись муниципального дежурного. Но факт уже лежал на карте, и карта перестала быть чистой схемой.

— Навигационный вес обновить.

— Это снизит приоритет залпа, — Нина не спорила, но фиксировала цену.

— Поэтому и обновить.

ИИ пересчитал. Строка рекомендации не исчезла. Только получила пометку: «гражданская цена уточнена; риск прорыва остается доминирующим».

Ланской коротко выдохнул в канал.

— Вы отменяете штатное действие?

— Нет. Требую объяснимый слой. Вес цели, вес места, вес подтверждения. Одним экраном.

— У вас нет времени на учебный разбор.

— Это не учебный разбор. Это основание.

Нина вывела слой без вопроса. Белые строки встали рядом: радар, оптика, навигация, ИИ. Соколов увидел, что первая группа удобна не только системе. Она была удобна любому, кто хотел получить от системы быстрый ответ. Высокая вероятность, красивый коридор, плохая география внизу.