Читать книгу «Холодный разум» онлайн полностью📖 — Николай Стэф — MyBook.
cover



Кай сидел в своей кладовке. Это было помещение на пятом этаже заброшенного склада в районе «Мёртвые провода» — так называли окраину Нио Сити, где интернет ловился через раз, а вместо канализации под землёй текли отходы трёх химических заводов. Кладовка была два на три метра. В ней помещались: лежак — тонкий матрас на алюминиевых ножках, кухонный блок (микроволновка, мини-холодильник, синтезатор лапши), три серверные стойки, которые гудели как потревоженный улей, и Кай.

Кай сидел в кресле без подлокотников, которое он одолжил у соседа, и смотрел на три монитора. Левый показывал лог ошибок автопилота для магнитной трассы — последний проект для крупной транспортной корпорации. Средний — код программы, написанной на языке «Сигма-нейро», который он ненавидел, потому что в нём не было вменяемой обработки исключений. Правый — моргающее сообщение от заказчика: «Проводник, подтверди готовность на 100%».

Проект был скучным. Автопилот для магнитной трассы — таких программ было написано уже несколько сотен. Крупные корпорации использовали «Магнус-драйв», систему, которая стоила миллионы кредитов в год. Но этот заказчик — скромная контора «Транс-Магистраль Север» — решил сэкономить. Они нашли Кая на теневой бирже фрилансеров и предложили гонорар: двадцать тысяч кредитов за полную версию. Двадцать тысяч — это были огромные деньги для Кая (он мог питаться синте-лапшой три года), но для транспортной компании это была капля.

Они хотят получить права, — думал Кай, глядя на мигающий код. — Всю интеллектуальную собственность. Чтобы не платить «Магнусу» за использование их алгоритмов. Я пишу им дешёвый аналог, они получают вечную лицензию, и все счастливы.

Энтузиазм пропал на девяностом проценте. Работа оказалась рутинной: тысяча однотипных функций, миллион проверок граничных условий, согласование с протоколами безопасности, которые менялись каждый раз, когда он думал, что закончил. На девяноста процентах Кай остановился. Он посмотрел на оставшиеся десять — это была тонкая настройка системы экстренного торможения, обработка редких сценариев (например, выход состава на трассу при обрыве контакта с диспетчерской). Без этого автопилот будет работать в девяноста девяти процентах случаев. А на сотый — кто знает?

— К чёрту, — сказал Кай вслух. Голос в пустой кладовке прозвучал глухо.

Он написал пару «костылей» — так на сленге программистов назывались временные решения, которые должны были работать, но не обязательно правильно. Он добавил функцию «аварийный режим», которая при любой ошибке просто останавливала состав. Безопасно? Да. Эффективно? Нет. Состав просто замрёт посреди трассы, и его придётся эвакуировать краном. Но формально — система не убьёт никого.

Кай отправил заказчику отчёт: «Проект завершён на 100 %. Все функции протестированы в симуляции. Код сдан, права переданы. Жду оплату».

Он даже не перепроверил симуляцию. Запустил один тест — тот, что был прописан в задании, зелёная полоска до 100%, — и закрыл вкладку.

Корпорация «Транс-Магистраль Север» приняла работу на следующий день. Их техотдел прогнал автопилот через свои стандартные симуляции — все они были созданы для идеальных условий, без учёта редких сценариев. Тесты показали зелёный свет. Программа была залита в управляющие чипы трёх составов, которые курсировали по магнитной трассе «Нио Сити — Полярный Узел» — самой длинной в Северном полушарии, три тысячи километров через вечную мерзлоту.

Кай получил деньги. Двадцать тысяч кредитов упали на его счёт в 3:47 ночи. Он посмотрел на цифры, потратил три тысячи на новый модуль памяти для дрона, тысячу на синте-лапшу и виски, а остальное положил под матрас — потому что не доверял банкам.

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

Глава 2

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

Кай Сёдергрен нёсся на своей подержанной машине 2139 года выпуска со скоростью триста двадцать — на двадцать больше разрешённой, потому что он спешил. Куда? Да никуда, честно говоря. Просто ему нравилось чувство, когда старый автомобиль, весь в царапинах и с плохо притёртой дверью со стороны пассажира, вибрировал на высоких скоростях, будто живое существо, которое вот-вот сдастся, но всё ещё держится. Машина была его гордостью и позором: куплена на чёрном рынке за восемь тысяч кредитов, перепаяна наполовину своими руками, с автопилотом, который Кай сам перепрошил, убрав ограничитель скорости и добавив пару «левых» режимов, о которых завод-изготовитель даже не догадывался.

Трасса была почти пустой. Почти — потому что в радиусе десяти километров датчики Кая показывали всего три машины: одну позади, километрах в двух, и две на встречной полосе. Туман съедал пространство, превращая мир в узкий туннель серой ваты, разрываемой только собственными фарами — старыми, ксеноновыми, которые светили уже не так ярко, как в день покупки, но всё ещё терпимо.

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

*«Доброе утро, Кай! — написала система приветствия, которую он сам же и настраивал. — Ваш баланс: 11 420 кредитов. Скорость: 321 км/ч. Расход синтетического топлива: 14.2 л/100 км. Уведомлений: 1».*

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

«Выход новой игры „Код бесконечности“ — уже сегодня! Погрузись в мир, где реальность — это код, а код — это реальность! Собери свой идеальный алгоритм, взломай матрицу, стань богом симуляции! Только в этом месяце — скидка 30% на первый уровень!»

— О, — сказал Кай вслух. Голос в салоне прозвучал глухо, поглощённый шумом ветра и гулом магнитной подвески. — А я думал, она через неделю.

Он убрал палец с руля. Совсем. Автопилот машины — его собственный, переписанный, с добавленными функциями адаптивного круиз-контроля, — автоматически включился, как только скорость превысила порог в двести километров. Кай чувствовал, как руль слегка вибрирует — это система делала микро-корректировки, удерживая машину в полосе. Он потянулся к голографическому дисплею, чтобы открыть полное описание игры, посмотреть трейлер, почитать отзывы бета-тестеров.

Его пальцы забегали по виртуальным кнопкам, которые парили в воздухе перед лицом. Он открыл страницу магазина, пролистал скриншоты — красиво, очень красиво, киберпанк в квадрате, — начал читать описание.

«„Код бесконечности“ — это симулятор, где каждый игрок становится программистом реальности. Ты можешь переписывать законы физики, создавать объекты из ничего, взламывать сознания NPC...»

Кай усмехнулся. Звучит как моя работа, только веселее.

Он не заметил грузовика.

Грузовик — сорокатонный «Магнус-Логистик Т-900», с тремя прицепами, длиной под тридцать метров — двигался по встречной полосе на автопилоте. На той самой системе, которую Кай не дописал до конца.

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

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

Проблема была в том, как «Северный Путь 3.7» обрабатывал данные.

В коде, который Кай написал на девяноста процентах, была одна функция. Она принимала три параметра: видимость в метрах (с плавающей точкой), скорость в км/ч и коэффициент сцепления с поверхностью. Возвращала — тормозной путь в метрах, тоже с плавающей точкой.

Всё было правильно, кроме одной строчки.

Кай, когда дописывал «костыли», добавил в конце функции не точное значение.

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

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

Но в тумане, когда видимость упала до семидесяти метров, а магнитная подвеска работала на пределе из-за повышенной влажности, эти сантиметры стали метрами. Алгоритм, получая данные о препятствии — в данном случае, о резко затормозившей перед грузовиком легковой машине, — рассчитывал тормозной путь в 67,3 метра. Округлял до 67. Но настоящий тормозной путь с учётом погрешности лидаров, влажности и микронеровностей полотна составлял 68,1 метра.

Разница — чуть больше метра.

Метр, который Кай потерял, когда нажал «Согласен» на сдаче проекта.

Метр, который стоил ему жизни.

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

Грузовик вылетел на встречную полосу.

Это произошло не из-за ошибки водителя — водителя в кабине не было. «Магнус-Логистик Т-900» был полностью беспилотным, сертифицирован для перевозки опасных грузов класса «Б». Причиной стало то самое округление.

За три километра до места аварии на трассе произошло микро-смещение магнитной полосы — старая эстакада, построенная ещё в 2115 году, просела на два сантиметра из-за сезонного оттаивания вечной мерзлоты. «Северный Путь 3.7» зафиксировал отклонение, пересчитал траекторию и дал команду рулевым сервоприводам скорректировать курс. Коррекция прошла нормально. Но через два километра — ещё одно смещение, на сантиметр. А через километр — третье.

Система начала накапливать микро-ошибки. Она пыталась их компенсировать, но из-за ошибки округления в другом модуле — в модуле оценки стабильности платформы — каждое новое смещение прибавляло к погрешности не 1 сантиметр, а 0, потому что округлялось до целого. Ноль.

К пяти часам утра накопилась ошибка в двадцать три сантиметра. Грузовик ехал не по центру полосы, а на двадцать три сантиметра левее. В обычных условиях это не страшно — полоса шириной три с половиной метра, запас огромный. Но когда на встречной полосе появилась машина, которую автопилот грузовика идентифицировал как «препятствие на траектории», начался ад.

Система экстренного торможения сработала с задержкой в 0,4 секунды.

Эти 0,4 секунды — они не кажутся большими. Четыре десятых. Мгновение, за которое человек моргает два раза. Но на скорости в триста километров в час грузовик за это время проезжал тридцать три метра. А тормозной путь, рассчитанный алгоритмом с ошибкой округления, был на метр короче, чем нужно.

«Магнус» начал торможение, когда было уже поздно. Его колёса (шесть осей, двадцать четыре шины) заблокировались на долю секунды — система антиблокировки сработала корректно, но не успела погасить инерцию. Грузовик пошёл юзом, заносит правый прицеп, сорок тонн груза (химические удобрения) сместились влево по инерции. Тягач дёрнулся, и передний бампер — массивная стальная конструкция весом под тонну — въехал в левое крыло «Хонды-Тени» Кая.

Удар пришёлся в левую сторону.

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

Кай почувствовал удар ещё до того, как понял, что произошло. Это было не как в голо-фильмах — не глухой «бум» и не кинематографичный взрыв. Это был звук. Звук, который он никогда не слышал раньше и никогда не забудет, даже мёртвый: визг разрываемого металла, смешанный с хрустом композитных материалов и низким, басовитым гулом, который издавала деформирующаяся рама.

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

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

Кай услышал хруст собственных рёбер. Не один хруст — целую симфонию. Третье ребро слева сломалось первым, потом четвёртое и пятое — они вошли в лёгкое, и Кай почувствовал, как рот наполняется чем-то тёплым и солёным. Кровь. Он попытался кашлянуть, но не смог — дыхание перехватило, и вместо кашля получился булькающий звук, какой издаёт засорившаяся раковина.

Левое бедро — перелом открытый, осколок кости пробил штанину и теперь торчал наружу, белый, чистый, покрытый тонкой плёнкой крови. Кай не чувствовал боли. Тело отключило болевые рецепторы, потому что шок был слишком сильным — в этом была последняя милость эволюции.

Он успел увидеть, как лобовое стекло — вернее, то, что от него осталось, — покрывается сетью трещин, а затем исчезает, потому что голова Кая, не удержанная подушкой (она уже сдулась, предательница), ударилась о приборную панель. Лоб разбился, кожа лопнула, и из глубокой раны пошла кровь — не брызгами, а ровным, спокойным потоком, как из крана, который забыли закрыть.

Экраны приборной панели мигнули в последний раз. На основном дисплее, который ещё не разбился, высветилось сообщение:

«Аварийный режим. Вызов экстренных служб через 10... 9... 8...»

Счётчик досчитал до нуля.

Кай Сёдергрен умер между пятой и шестой секундой.

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

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

Но «Криосон» не спал.

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

В 5:47:23 утра сигнал пульса упал до нуля.

В 5:47:23 и 0,3 секунды сервер «Криосона» — огромная машина в подземном дата-центре под Нио Сити, — обработал сигнал, сверил с геотегом (трасса «Нио Сити — Полярный Узел», километр 847, сектор 12), и автоматически запустил протокол «Глубокий сон». Приоритет — максимальный. Статус — «критический».

В 5:48:01 с площадки «КриоСкорой» — специального депо в четырёх километрах от места аварии — вылетели три беспилотника и одна наземная карета. Дроны были первыми — маленькие, юркие, с пропеллерами, которые издавали высокий свистящий звук, похожий на комариный писк. Они прибыли на место через полторы минуты после вызова и сразу развернули голографическое ограждение — мигающий красный периметр, который проецировался на дорогу, предупреждая другие машины об аварии.

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

Полиция приехала через семь минут. Скорая (обычная, не крио) — через девять. «Криосон» обогнал их всех.

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

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

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

Они извлекли тело Кая аккуратно, но без трепета. Для них это был не человек. Это был биоматериал, который нужно было сохранить в соответствии с контрактом. Они вытащили его из искореженного кресла, уложили на носилки — жёсткие, из углепластика, с бортиками, чтобы тело не скатывалось, — и понесли к карете.

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







...
6