Ход слоном

fb2

Пассажирский самолет, управляемый нейросетью… Фантастика или уже реальность? Начинающему программисту Егору выпадает шанс поработать над проектом, способным перевернуть мировую авиацию. Однако любопытство и дотошность юноши приводят к опасным последствиям, грозящим разрушить не только его карьеру, но и жизнь.

Москва. Недалекое будущее.

– А вот и наша каморка! – Милана открыла символическую дверцу кабинета, который Егор в голове уже окрестил «клеткой». Аналогия была не с тюрьмой, скорее с разлиновкой школьной тетради. Егор еще на выходе из лифта увидел план эвакуации, на котором двойные ряды квадратиков перемежались узкими линиями. В реальности напечатанные рамки оказались полупрозрачными пластиковыми перегородками, за которыми двигались силуэты людей. В коридор выходили ровные ряды дверей, сделанных из того же совсем неэкологичного материала. Хорошо хоть высота перегородок была не до потолка: маленькие закрытые помещения его нервировали. Смотреть на дневной свет полагалась только начальству, чьи кабинеты находились в конце коридоров, вдоль внешней стены. «Двенадцать клеток на одну сторону, двадцать четыре на коридор, семь умножить на двадцать четыре… Итого сто шестьдесят восемь клеток, триста тридцать шесть человек…» – Егор привычно начал считать в уме, это помогало снизить напряжение. Цифры – в них все так привычно и спокойно. Никаких сюрпризов.

– О чем задумался? – только сейчас Егор заметил, что Милана пристально смотрит на него.

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

– Что считал? – недоуменно спросила Милана.

– Сколько здесь сотрудников. Умножал количество коридоров на количество дверей и на количество мест.

– Мог бы спросить у меня! – с улыбкой произнесла Милана. – На этом этаже только Отдел разработки программного обеспечения, триста три человека, включая тебя. Программистов из них двести шестьдесят восемь. Также здесь сидят руководители групп и начальник отдела.

«Ошибка – не учел, что у начальников отдельные кабинеты».

– С Дмитрием Павловичем ты еще сегодня пообщаешься, он предпочитает знакомиться со всеми новенькими. А пока можешь располагаться!

Егор посмотрел на два одинаковых рабочих стола, на каждом из которых стояло по паре больших мониторов. Он без труда понял, где его рабочее место. Вряд ли подставка для канцтоваров в виде цветущего дерева, в нижнем отсеке которого лежало изящное зеркальце, могла принадлежать его предшественнику. Скорее, такой ерундой развлекалась Милана. Егор еще раз взглянул на девушку. Она не очень-то походила на типичную программистку, по крайней мере, никто из его сокурсниц, которых он последний раз видел два месяца назад на вручении дипломов, так не выглядел. У Миланы были темные волосы до плеч, подстриженные каскадом, лоб закрывала симпатичная челка, из-под которой выглядывали аккуратные брови и карие глаза миндалевидной формы. Форменную светло-голубую футболку «Astrexa» девушка заправляла в узкие темные джинсы, украшенные ремнем с крупной серебристой пряжкой, что подчеркивало ее стройную талию, и облегало бедра и грудь. «90/60/90» – всплыло в голове у Егора, любившего все переводить в цифры. Рост примерно 175, то есть всего на пару сантиметров ниже его. Да и вес у них примерно одинаковый, Егор с детства отличался худобой.

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

– Ты сразу после института сюда пришла? – спросил Егор, присаживаясь на кресло за второй стол, на котором не было ничего лишнего. “Поддержать разговор, обменявшись общими вопросами» – пункт из списка правил, заученный еще в школьные годы.

– Да, СПбГУ закончила. А ты МФТИ? – ответила Милана.

«Значит, ей сейчас в районе двадцати семи», – прибавил Егор четверку к своему возрасту.

– Да. Смотрела мое досье?

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

– Однако взяли меня пока только на тестировщика, – заметил Егор.

– Ну, ты недолго там проработал, через два месяца уже оказался у нас.

– Это временная замена. Пока твой коллега не выздоровеет.

Вспомнив о заболевании предшественника, ставшем причиной перевода, Егор инстинктивно убрал руки с поверхности стола.

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

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

– Не представляю, как в Москве двадцать первого века можно заразиться дизентерией.

– О, у нас в компании никто тоже этого не понял! – пожала плечами Милана. – Зато тебя будет шанс проявить себя. А там, может, и оставят. Сейчас очень сложный момент. Первый запуск беспилотного пассажирского самолета с нашей системой уже через четыре дня. Все должно быть идеально. Людей, конечно, на борт пока брать не будут, но, если все пройдет успешно, штат увеличат. Пойдут продажи, а значит, понадобится расширенная техподдержка, постоянные доработки под нужды клиентов. А пока наша основная задача – перепроверка старых багов. Систему перелопатили уже не раз, но начальство очень боится сбоев. Одно дело запуск на компьютерной модели, или на самолете с пилотом, который может подхватить управление, если произойдет сбой, а другое на реальном пассажирском лайнере. Представляешь, сколько он денег стоит? Поэтому будем сидеть до последнего.

– То есть мой шанс проявить себя – найти ошибку в многомиллиардном проекте?

Милана усмехнулась:

– Ну, вряд ли ты нароешь что-то серьезное. Мы отвечаем всего лишь за систему обратной связи. Самолет с земли не управляется, но нейросеть передает специальные сигналы, позволяющие дополнительно контролировать процесс. Все запрограммировано и делается без участия человека, но мелкие ошибки на тестовых полетах встречались, и, хотя больше они не повторялись, перед запуском решили еще раз перепроверить. К реальной системе тебя пока не допустят, твоя область – компьютерная модель полета. Проверишь в ней ошибки, которые были давно и больше не встречались. Скорее всего, они уже устранены, но для тебя это хорошая возможность разобраться в коде. Так что, заходи в программу, выбирай себе задачи и приступай. Будут вопросы, не стесняйся, задавай. Я помогу.

С этими словами Милана села на свое рабочее место и, закинув ногу на ногу, вывела компьютер из спящего режима. Егор последовал ее примеру.

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

– Зачем тебе этот хлам? Единичная ситуация два года назад, ни разу больше не повторившаяся. Взял бы лучше что-то посвежее. На этом ты точно себя не проявишь.

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

Милана демонстративно пожала плечами.

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

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

– Пойми, я ничего плохого про твой бывший отдел не говорю, но там работают в основном молодые ребята, и они тоже могли что-то не так сделать. Для каждой части полета написана определенная запускающая комбинация. То есть самолет передает, что у него все в порядке, и система с земли высылает код для перехода к следующему этапу, но в тот раз стартовая комбинация на набор высоты по какой-то причине вызвала отключение всей системы. Я помню эту историю, хотя она произошла почти два года назад. Мы перепроверяли потом много раз с самыми разными сочетаниями факторов, но ошибка так и не повторилась.

Глаз перестал дергаться. Голос Миланы удивительно успокаивал

– Ты можешь посмотреть, что делал Андрей по этой задаче, – продолжила говорить девушка. – Сбой после его доработки был выявлен, и он много потом ковырялся, но забросил, потому что так и не нашел условий, при которых бы ошибка возникла заново. А сейчас Андрей в больнице, так что ничего страшного, если задача перед запуском останется незакрытой, к тебе претензий не будет. К сожалению, тогда из-за полного отключения у нас даже переданных команд не осталось, только сами сообщения на экране бортового компьютера. Хоть самолетом у нас и управляет нейросеть, но обратная связь передается по старинке, через радиосигнал. И в последнем сообщении ничего, кроме стандартного кода, не было.

Егор задумался на секунду. «Хочу…» – крутилось у него в голове. Когда его внимание захватывала какая-то идея, то она начинала заполнять собой буквально все клеточки мозга. И сейчас ему требовалось разобраться с причинами сбоя двухлетней давности, а любые препятствия и отговорки только усиливали это желание.

– Я все-таки хотел бы заняться этой задачей, – спокойно сказал Егор. – Она интересная. Насколько мне объяснили, я могу взять любую из списка, или нет?

Милана покачала головой:

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

Милана уткнулась в монитор и произнесла как бы себе под нос, но явно, чтобы Егор ее услышал:

– Чем бы дитя ни тешилось…

Кабинет Дмитрия Павловича Мискалькова находился в конце коридора, по противоположной стороне. Когда Егора пригласили к начальнику, в «клетке» он сидел один, Милана сбежала на какое-то совещание. В окошке корпоративного мессенджера мелькнуло сообщение от HR, что начальник ждет его в 14:30. До встречи оставалось пятнадцать минут.

Егор уже часа два сидел, перечитывая команды и отправляя части кода на автоматизированную проверку. Пока найти место, в которое вкралась ошибка, не удавалось. Программное обеспечение для самолетов, которое делало «Astrexa», было основана на уникальном алгоритме обучения нейросети, позволяющем в разы увеличить скорость обработки поступающей к беспилотному кораблю внешней информации и, соответственно, свести вероятность ошибки в принятии решения к нулю. Алгоритм несколько лет назад разработал сам Дмитрий Павлович. До этого он работал тимлидом в команде программистов у конкурентов «Astrexa» – питерской компании «ЗАСЛОН». Но вдруг все бросил, уехал в Москву, устроился в «Astrexa» и там уже сделал свое открытие. Если запуск программы пройдет успешно, то новой системой можно будет оборудовать и гражданские самолеты, отказавшись от пилотов-людей и тем самым исключить трагедии, вызванные человеческим фактором. За эту гениальную разработку Дмитрий Павлович и получил повышение и возможность самому возглавить проект. А «Astrexa» здорово потеснила на рынке своих конкурентов.

Егор постучал в дверь начальника.

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

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

– Егор, очень рад приветствовать тебя в нашей команде, – произнес Дмитрий Павлович. – Проходи, садись.

Егор приземлился на стул напротив начальника и приготовился выслушать речь о важной роли каждого сотрудника в общем деле. Ожидания его не обманули. Будто по заученной шпаргалке шеф рассказал о том, как много компания вложила в этот проект, и он очень сожалеет, что предшественник Егора – Андрей оказался в больнице и не сможет поучаствовать в триумфе. Зато ему, молодому специалисту, выпал шанс проявить себя. Также начальник спросил про ощущения на новом месте. Получив короткий ответ, что все хорошо, шеф добавил, что к нему можно, не стесняясь, обращаться по всем интересующим вопросам. Егор на секунду завис. Головой он понимал, что последняя фраза – всего лишь дань вежливости, но все-таки решил поинтересоваться.

– А вы не подскажете, что означают последовательности символов, которые служат для запуска каждого нового этапа в работе системы?

Дмитрий Павлович едва заметно напрягся, но переспросил:

– А напомни, какие там символы? Я уже подзабыл, давно в исходный код не заглядывал.

– 1АA1A3, 2AB1A3, 3AC1A3… – по памяти начал говорить Егор.

– Ну, то есть там меняется только первая цифра в порядке возрастания и третья буква в алфавитном порядке?

– Нет, – возразил Егор, – На этапе горизонтального полета код чуть другой – «4AD1D3», буква «E» пропущена, а на этапах с пятого по седьмой, где снижение, посадка и руление – предпоследний символ «H» вместо «A».

Егор вновь посмотрел на шефа и увидел, что тот поморщился. «Эмоция – неудовольствие», – констатировал голос в голове.

– А к чему, вообще, этот вопрос? – произнес Дмитрий Павлович, чуть раздражаясь.

– Увидел, что при тестировании пару лет назад после получения третьего кода «3AC1A3» – на набор высоты – произошел сбой всей системы. Больше это не повторялось. Вот пытаюсь разобраться, почему спусковой крючок тогда не сработал.

– Ну, не знаю, – скривился шеф. – Я помню эту историю, но, если за последние два года ошибка не повторялась, скорее всего ее уже устранили при работе над другой проблемой. Попробуй проверить еще ряд комбинаций условий, если ошибки не будет, думаю, не стоит тратить на это время.

– Хорошо, я этим и занимаюсь. Просто подумал, раз вы писали изначальный алгоритм, то могли неслучайно выбрать эти последовательности. Они выглядят довольно странно на фоне стандартного кода.

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

– Как первый рабочий день?

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

– Да нормально, – ответил Егор, когда сосед зашел к нему комнату.

Познакомились они с Денисом шесть лет назад, когда их, первокурсников МФТИ, поселили в одну комнату в общаге, хоть и учились они на разных специальностях. Несмотря на совершенно непохожие характеры и интересы, новоиспеченные студенты быстро сдружились. Денис, как и Егор, рос без отца, но у него были младшие брат и сестра, и он со школьных лет привык себя чувствовать главой семьи. В отрыве от дома объектом его заботы стал Егор, который, хоть и был на несколько месяцев старше своего соседа, к моменту поступления в институт оставался совершеннейшим ребенком. Такое ощущение усиливала и внешность Егора: болезненная худоба, большие карие глаза на фоне тонких черт лица и русых, слегка вьющихся волос даже к окончанию института заставляли видеть в нем вчерашнего школьника, о котором так и хочется позаботиться. В их студенческие годы Денис то и дело становился кандидатом на исключение, уже с третьего курса работая системным администратором, а Егор получал повышенную стипендию и побеждал в олимпиадах. Денег ему, конечно, не хватало, но он и тратился лишь на самое необходимое.

После получения диплома, несмотря на постоянную работу, легче с деньгами не стало, Москва съедала слишком много. Так что выпускники разумно сняли крошечную двушку в двадцати минутах ходьбы от метро и обитали там уже несколько месяцев. Личной жизни у одного, ни у второго не наблюдалось. И если Денис в редкие свободные от работы моменты еще пытался решить эту проблему знакомствами в Тиндере, то Егора одиночество вполне устраивало.

Понимая, что Денис зашел услышать подробности, Егор отвлекся от ноутбука и начал перечислять:

– Мне выделили рабочее место. Посмотрел первые задачки. Познакомился с начальником. Куратор особо ко мне не лезет, и то хорошо. Видимо, у нее своих забот хватает.

– У нее? К тебе что, девку приставили?

– Ну да…

– Симпатичную хоть?

Егор задумался, вспомнив внешность Миланы.

– Я бы сказал, да. Все пропорционально, никаких видимых изъянов. Явно симпатичнее нашего начальника. Мискальков особо не впечатлил, ни внешностью, ни интеллектом.

– Мискальков? Дмитрий… – Денис напряженно вспоминал отчество.

– Павлович, – помог ему Егор. – Ты с ним знаком?

– Ну… Пересекался как-то в Питере. Помнишь, я после первого курса туда ездил? Город посмотреть и подработать заодно. «Заслон» организовывал оплачиваемую практику для студентов. Мискальков там как раз работал. Тоже не произвел особого впечатления, если честно. Вот с ним другой малый приходил – тот да, мозг. Сан Саныч. Фамилию какая-то простая была, точно не помню уже, но тоже на «А», все три инициала одинаковые. Он еще преподавал, то ли в ЛЭТИ, то ли в Политехе. Грамотный мужик. Жаль, что одним карьера, а другим…

– А что другим?

Денис напрягся:

– Да там такая история была… Я на следующий год к ним летом снова поехал. Спросил тогда, а почему все другие теперь работают? Так вот – Мискальков в Москву рванул. А тот парень умер, прям в офисе.

– Это как? – Егор окончательно отвлекся от ноутбука и внимательно посмотрел на соседа.

– Астма у него была… – поморщившись, сказал Денис. – Пришел на работу без ингалятора. Задержался, а тут приступ случился, и рядом никого. Его уборщица нашла мертвым в кабинете. Говорили, что для компании это была очень сильная потеря. Да и еще и Мискальков к конкурентам сбежал. Зато видишь… В начальниках теперь.

– В начальниках… – чуть задумавшись, протянул Егор. – Спросил у него, что обозначает комбинация символов, используемая при переходе к набору высоты, а он даже не смог ответить.

– Что за комбинация?

Егор повернул монитор к Денису, на котором в столбик были записаны символы и их расшифровка.

1AA1A3 – наземный этап

2AB1A3 – взлет

3AC1A3 – набор высоты

4AD1D3 – горизонтальный полет

5AF1H3 – снижение

6AG1H3 – посадка

7AH1H3 – наземный этап

– На каждом этапе работы системы, – начал рассказывать Егор, пока Денис рассматривал экран, – есть некая комбинация – подтверждение, что можно спокойно переходить к следующей фазе: взлет, набор высоты, посадка и так далее. Код передается с земли посредством довольно старой системы связи, где текстовое сообщение шифруется по принципу телекса. Нейросеть с самолета отправляет данные, что все в порядке, а автоматизированная система на земле подтверждает, что можно переходить к следующему этапу. Это дополнительный контроль на случай непредвиденных действий нейросети. Все-таки обучаемость и самостоятельность у нее очень высокая, надо быть уверенными, что она не будет принимать решений, к которым мы не готовы. Если система внизу видит, что самолет, например, сбился с курса, то она передаст сигнал для перехода на удаленное управление с земли. Так вот на тестировании при передаче сообщения, когда самолет взлетел, произошел сбой. Сигнал был получен, и наша нейросеть отключилась. Система тогда еще работала в тестовом режиме и заодно собирала полетные данные для обучения, а все ее действия пересматривал пилот. В один момент все вырубилось. Пилот быстро ушел на ручное управление, благо и самолет был грузовой. Но если система будет требовать участия человека, то сам проект бессмысленен, никакой новации не получится. Подобный сбой на беспилотнике, привел бы к крушению самолета или как минимум к переключению на управление с земли, которое пока для первых выпусков продукции планируют оставлять, чтобы пассажиры не пугались. Сам понимаешь, самолеты, управляемые нейросетью, для наших людей нескоро станут нормой. Ну вот я и заинтересовался, что это за символы «3AC1A3».

– Почему ты говоришь «Эс»? Вы разве не на латинице сигналы передаете?

– Вообще, обычно на латинице. Но на кириллице тоже можно, наши специально дорабатывали. Я уже посмотрел, не было ли в тот момент ошибки и не ввели ли случайно какую-нибудь из букв на кириллице. Потому что при проверке из-за сбоя мы могли посмотреть лишь итоговую команду, полученную самолетом в виде текста на экране. Я не представляю, как ее случайно можно было бы заменить. Для этого нужно лезть в исходный код, а у нас лишь у единиц есть к нему доступ. Простые программисты в основном доработками функционала занимаются. Но я все равно проверил комбинации из букв разных алфавитов на компьютерной модели, там можно посмотреть. Если код неправильный, то нейросеть просто показывает, что нужный сигнал-комбинация не получен и посылает запрос на подтверждение, продолжая при этом полет на основе собственного алгоритма действия. И никакого отключения не происходит. При многократных запросах и отсутствии связи с землей, на самолете срабатывает аварийный протокол, заставляющий самолет отправить сигнал в ближайший аэропорт для захода на посадку.

Егор прекратил говорить, заметив, что Денис уже отвлеченно смотрит по сторонам. «Эмоция – скука». Надо завершать разговор.

– В общем, буду разбираться, – произнес Егор и повернулся обратно к монитору.

– Ладно, а я перекушу пока, – с облегчением ответил Денис и быстро ушел из комнаты.

Егор откинулся на спинку кресла и в очередной раз подумал, что не отличил вежливости от настоящего интереса. Ответ: «Да ничего особенного, разберусь», на вопрос про комбинацию сэкономил бы и его время, и время Дениса. Да и информация про работу Мискалькова в Питере ему показалась абсолютно лишней. Он никогда не понимал привычки сплетничать о едва знакомых людях. Ну, узнал он, что коллега Мискалькова умер от астмы и что теперь? Сожалея о потраченных минутах, Егор вновь напряженно посмотрел на экран, где в поисковой строке браузера было написано: «3АС1А3».

– Ну что, сегодня великий день! – Милана влетела в кабинет в хорошем настроении. Было заметно, что она охвачена приятным возбуждением и выглядит сегодня как-то особенно эффектно. Черная водолазка с рукавом до локтя, сменившая привычную корпоративную футболку, подчеркивала ее безупречную фигуру, а декоративный вырез в форме капли, в котором блестел серебряный кулон, придавал строгому виду элемент изящности и сексуальности, старательно игнорируемых Егором в их ежедневном общении.

За четыре рабочих дня, проведенных вместе, Егор успел привыкнуть к своей соседке. Милана не лезла в его дела, не давала ненужных советов, зато спокойно и доходчиво отвечала на вопросы. На второй день работы Егор, проверив с десяток вариантов условий, как и говорил ему шеф, так и не смог повторить ошибку, и переключился на другие задачи, но буквы с цифрами не выходили из головы. Никакие поиски в интернете подсказок не давали. Кроме шестнадцатеричного HTML-кода цвета для монитора, он ни одной аналогичной относящейся к программированию комбинации не нашел. Милане про свои изыскания Егор не говорил. Он знал, что многие люди спокойно бросают незаконченные дела, но он так не умел. Дурацкий код не выходил из головы. Бывало, Егор вдруг оставлял нужную задачу, чтобы проверить новую идею, но безрезультатно.

Включив компьютер и залогинившись, Милана тут же убежала за кофе, она так делала каждое утро. Рабочие минуты шли, пока девушка трепалась с коллегами у кофемашины, размешивая сахар в стаканчике. Звуки включения, один привычный сигнал, другой, заработали вентиляторы в системном блоке… И вдруг что-то странное: запищали сообщения корпоративного мессенджера. Штук десять подряд. И Милана, и Егор обычно убирали звук, но, так как параметры дополнительных устройств не сохранялись, каждое утро приходилось все настраивать заново. Писк раздражал, так что Егор встал и подошел к компьютеру Миланы, чтобы отключить колонку. Он не хотел заглядывать в мессенджер, но всплывшее сообщение поневоле привлекло его внимание. На экране светилось: «Тварь, ты за все ответишь», а адресатом был «Андрей Грищенко», тот самый коллега, лежавший сейчас в больнице с дизентерией. Егор подавил желание заглянуть в чат, понимая, что, если сообщения будут прочитаны, Милана это увидит. Выключать звук он тоже не стал: не хотелось вопросов. Тем более что мессенджер замолчал, видимо Андрей успел выплеснуть свое негодование.

Когда Милана зашла в «клетку» с улыбкой на лице и кофе в руке, Егор сидел на своем месте. Он пробурчал:

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

Милана передразнила Егора: «Бе-бе-бе», но подойдя к монитору сразу напряглась.

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

– Это Андрей, – расстроенно произнесла девушка. – Злится, что в больнице, когда у нас все самое интересное.

– Понятно, – сказал Егор, не зная, как продолжить разговор. Но, на удивление, Милана сама решила пооткровенничать. Она сделала глоток кофе и вдруг сказала:

– Знаешь, а я рада, что ты сейчас здесь вместо него.

– Почему?

– С тобой спокойно, – с некой болезненностью в голосе произнесла Милана. – Ты видишь во мне коллегу, а не женщину, и это здорово.

Егор вдруг почувствовал, что покрывается потом. Что-что, а общение на тему полов у него всегда вызывало выброс гормонов: слишком некомфортно становилось. Стараясь не выдать волнение, Егор произнес:

– А Андрей кого видел?

– Женщину, которая работает в мужской профессии, где ей не место. А еще он думал, что я его должница. Типа он же помог мне освоиться в новом отделе. Однако, я к нему благодарности не испытывала.

Егор заметил злость в ее голосе и решил уточнить:

– Я правильно понял, что он делал тебе какие-то предложения не в нашей корпоративной этике? – с трудом сформулировал Егор.

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

– Хорошо, – произнес Егор. «Если сказал что-то бестактное, переведи тему», – прозвучали в голове слова психолога. – Любишь играть в шахматы? – воспользовался советом Егор.

Милана чуть вздрогнула и, видимо, только заметила, что держится пальцами за кулон. Она опустила руку.

– Да, люблю. Мне кажется, все программисты любят. Ведь наша работа – по сути, ежедневная восьмичасовая партия.

– Подарок? – спросил Егор, кивнув в сторону кулона.

– Да, – ответила Милана и после небольшой паузы произнесла. – От близкого человека.

– Понятно, – кивнул Егор и, пытаясь быть вежливым, задал следующий вопрос. – Тоже любит шахматы?

– Когда были вместе, любил.

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

E2E4! Как же он раньше не догадался!

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

1A      A1A3 – ладья

2A      B1A3 – конь

3A      C1A3 – слон

4A      D1D3 – ферзь

5A      F1H3 – слон

6A      G1H3 – конь

7A      H1H3 – ладья

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

– Ты в хорошем настроении? – с удивлением спросила она.

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

– Да так, ничего особенного, – сосредоточился и, выдавив из себя улыбку, добавил. – Просто подумал, что сегодня хороший день.

– Друзья, как радостно, что этот день настал. Буквально через пятнадцать минут начнется обратный отсчет для запуска первого в мире пассажирского самолета, полностью управляемого искусственным интеллектом. Я горжусь тем, что мы оставили позади и отечественных, и зарубежных конкурентов. Наша система умеет распознавать малейшие отклонения от стандартов и реагировать на них. Даже мелкие объекты при взлете и посадке будут попадать в ее поле видимости и включаться в процесс коррекции. Скорость принятия решения при этом в разы превосходит не только скорость человека, но и программ, которые использовали наши конкуренты. Я горжусь тем, что смог создать этот уникальный алгоритм обучения. Но мой алгоритм – ничто без нашей совместной работы по его воплощению в жизнь. Спасибо вам, друзья!

Мискальков стоял в центре большого конференц-зала, где толпились программисты, и радостно улыбался. Собрание подходило к концу, за его спиной на белой стене проектор высвечивал красивые диаграммы с цифрами, подводящие итог нескольких лет работы. Скоро здесь должно было появиться изображение в онлайн-режиме маршрута перелета «Москва – Санкт-Петербург». Символично, что город, откуда приехал сам Мискальков, был выбран конечной точкой маршрута. Вот Егор в Питере никогда не был, да и самолетами не летал – его пугала необходимость находится без опоры в небе даже короткое время. Из Челябинской области, откуда он был родом, Егор ездил в столицу на поезде.

Несколько часов до сегодняшнего собрания он провел, вновь проверяя свои теории. Нет, ничего нового не нашлось. Третья позиция в списке «3А и ход слоном» – просто кодовая комбинация. Даже при изменении вводных все работает, пусть и с ошибками. Отключения сегодня не будет ни при каком раскладе.

– За нашу победу! – Егор вздрогнул, услышав громкий возглас Мискалькова, когда казалось, что собрание уже завершается. Эту же самую надпись крупными красными буквами на фоне фотографии самолета высветил и проектор.

ЗА

НАШУ ПОБЕДУ!

В какую-то секунду Егору показалось, что люди вокруг исчезли. Оставался только он и надпись. ЗА НАШУ ПОБЕДУ. ЗА!

Даже не пытаясь извиниться, Егор растолкал всех стоящих рядом людей и побежал к выходу. Конечно! Как же он раньше не догадался! Нужно было срочно проверить. Через пару минут Егор уже влетел в кабинет, находившийся этажом ниже конференц-зала. На его удивление, Милана сидела за компьютером, хотя ему казалось, что она была на собрании, просто стояла где-то вдали. Милана недоуменно посмотрела на коллегу.

– Что случилось?

– Да так, одна мысль. Надо срочно проверить.

Егор быстро открыл программу, где висели задачи, и среди них та самая незакрытая, со злополучным шифром. Он внес нужные изменения в компьютерное моделирование полета. Проскочив этап набора скорости, он увидел, как система получила измененную комбинацию, но не отреагировала на ошибку. Нет. Сигнал был получен. Следующая минута показалась ему вечностью. Модель самолета на экране взлетела и вдруг! Система отключилась. Полностью. Егор завороженно смотрел на монитор, видя, как точка перестает мигать на заданном маршруте. Да, вот в чем была ошибка. Но как? Зачем? И тут же прошептал.

– За… Слон.

В этот момент он, наконец, оторвался от экрана и увидел, что к нему незаметно сзади подошла Милана. Девушка наклонилась вперед, также напряженно вглядываясь в монитор. Ее грудь, обтянутая водолазкой, оказалась очень близко от лица Егора, но смотрел он не на красивые изгибы тела. Из выреза вновь выскочил кулон в виде ферзя и оказался почти на уровне его глаз. С обратной стороны Егор заметил какие-то буквы. Повинуясь порыву, он быстро рванул кулон, цепочка расстегнулась, а серебряная фигурка оказалась у него в руке.

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

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

– Пожалуйста, не кричи и не сопротивляйся. Я не хочу причинить тебе боль.

Голос успокаивал. Егор глубоко задышал и попытался оттолкнуть ее, понимая, что это безуспешно. Спортом он никогда не занимался – с детства были проблемы с сердцем, а вес у них с Миланой был примерно одинаковым. Ему просто хотелось верить, что все будет хорошо и она сейчас даст объяснения. Но в этот момент Егор увидел перед глазами скотч, лежавший еще минуту назад на столе. Милана быстро прислонила липкую ленту к его щеке, провела по губам, заклеивая рот, а дальше зубами перекусила полоску. Кожу на лице неприятно стянуло. Тут же скотч оказался и у него на запястьях, завернутых за спинку кресла. Милана уверенными движениями замотала его руки и заодно вытащила из кулака цепочку с кулоном. Егор знал, что мог бы попытаться встать и оттолкнуть ее хотя бы ногами, но не стал этого делать. Просто хотел узнать, что и почему. Точнее, удостовериться, что он все понял правильно, хоть и слишком поздно.

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

«Буква З», – хотел сказать он, но вместо этого получилось лишь мычание: «УАЭ».

Но Милана все поняла.

– Да, буква «З», так похожа на тройку, верно? В тексте телетайпа их не отличить. А кроме записи с экрана у них ничего не было. Все команды уничтожились при сбое. Но мне надо было удостовериться, что код действительно работает. Саша, к сожалению, не сказал мне всего, лишь оставил подсказку.

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

– Мы познакомились в институте, – вдруг произнесла она. – Я тогда училась на предпоследнем курсе, а он вел у нас практику. Аверин Александр Александрович, кандидат наук, только-только защитился. Старше был всего на пять лет, но что тут говорить – это ж нельзя, преподаватель и студентка, – горько вздохнула она. – Поэтому мы от всех скрывались. Он тогда работал в «Заслоне» и параллельно преподавал. Очень любил рассказывать про свои разработки. Был так увлечен, что нередко и вечером дома заходил на удаленку. Помню, когда он дописал алгоритм, то сказал, что это переворот, что программа позволит в разы увеличить скорость и надежность анализа поступающей информации, а значит, и точность принятия решений нейросетью. Это открытие, которое сможет исключить человеческий фактор в транспортных катастрофах и спасти множество жизней. А еще принесет немалый доход, – горько усмехнулась Милана. – Я помнила тогда, что он рассказывал про своего тимлида Мискалькова. Не нравился тот ему: скользкий тип. И как-то заговаривал по поводу совместного перехода в «Astrexa». Но Саша не хотел бросать компанию, в которой всему научился. Да и переезжать не собирался: мы любили Питер, хотели жить там, когда я получу диплом, и мы сможем спокойно пожениться. На помолвку он мне и подарил этот кулон – нам обоим нравились шахматы. Он и каждый этап работы программы обозначил первыми ходами шахматных фигур, плюс впереди цифра и его любимая буква «А». Я предупреждала: «Будь аккуратнее со своим тимлидом, как бы он ни присвоил себе твои лавры». Но Саша смеялся. Говорит: «Не волнуйся, я там одну защиту сделал». «И какую?» – спрашиваю. «Если в одной из команд заменить мое имя так, что получится название компании, то все отключится». Я переспросила, что это значит, но он лишь снова улыбнулся. Сказал: «Вот тебе ребус, думай». А на следующий день, – Милана вновь сделала паузу, голос предательски дрожал, – он не вернулся. Умер на работе. Начался приступ астмы и не оказалось в сумке ингалятора. Но я точно помню, что утром он брал его с собой, никогда без ингалятора на работу не уходил. Я не хочу никого обвинять, но не верю, что это была случайность. Тем более что через месяц Мискальков уволился и сбежал к конкурентам. Он не знал, что вариант исходного кода остался еще где-то, поскольку Саша часто проводил вечера у меня и работал на нашем компьютере. Я не хотела использовать алгоритм, по крайней мере, тогда. Да я, вообще, ни о чем после случившегося думать не могла, еле закончила учебу. Потом только начала уже этой темой интересоваться и узнала, что «Astrexa» разрабатывает систему, которую Саша хотел запустить в «Заслоне». Меня взяла жуткая злость. Я получила диплом и уехала в Москву. Устроилась на работу в «Astrexa». Как я и думала, Мискальков ничего в исходном коде, отвечающем за алгоритм, не поменял, побоялся ошибки. Я потратила много сил, чтобы оказаться в отделе, занимающемся связью с землей. Но тогда над сложными задачами работал в основном Андрей и доступ к коду был у него. Лишь однажды мне удалось зайти в программу с его аккаунта и проверить гипотезу. Я поняла правильно. «3A» – Сашино имя, в команде нужно было заменить на «ЗА» и вместе с записью шахматного хода слоном в начале партии образовывалось название компании – «ЗАСЛОН». Все получилось. Теперь нужно было лишь притаиться и ждать. Но ближе к запуску стало понятно, что вновь влезть в компьютер к Андрею будет не так просто. Тогда я и решила, что ему стоит отдохнуть. Андрей давно проявлял ко мне нерабочий интерес, наличие жены и ребенка его не смущало. Я, наконец, согласилась с ним поужинать и подсыпала в еду один интересный порошок, отравление которым по признакам очень похоже на дезинтерию. Спасибо маме, учительнице химии, много чего интересного мне рассказывала помимо школьных знаний. Он, конечно, потом меня доставал подозрениями, но, главное, не понял, зачем я это сделала. Считает меня феминисткой, ну и пусть. В итоге у меня как у куратора нового сотрудника оказался доступ к нужным файлам. Смотри, – вдруг прервала она рассказ, – самолет заходит на взлет!

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

– Ну вот и все, сейчас они судорожно начнут переводить самолет на управление с земли, пока это еще возможно сделать. Все на глазах у потенциальных покупателей. Шах и мат.

Милана встала со своего импровизированного трона и присела на корточки перед Егором.

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

Егор почувствовал прикосновение пальцев к своему лицу, и сразу боль – вместе с клеем из кожи вырывались волоски.

– Утром я написала заявление об уходе, – продолжила говорить Милана, медленно, миллиметр за миллиметром, отрывая скотч, чтобы боль не была такой резкой. – Соврала, что с моей мамой произошел несчастный случай, и мне срочно нужно вернуться в Питер. Мискальков подписал заявление, ему не до меня. Так что я ухожу и вечером меня уже не будет в Москве. А вскоре инвесторам придет письмо с неизвестного адреса, где будет рассказано о краже алгоритма и о том, почему программа, в которую они вложили столько денег, не сработала.

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

– Я могу рассчитывать на то, что о нашем разговоре никто не узнает?

Егор чувствовал сильнейшее напряжение, и дело было не в мышцах, которые затекли от неудобного лежания. Он не понимал, что должен делать. Поведение Миланы не вписывалось ни в один алгоритм, который он знал. Умная успешная программистка разрушила свою карьеру, а еще загубила проект, на котором работали сотни людей. И ради чего? Ради некой абстрактной любви к человеку, который давно мертв? Ради ненависти к другому? Он не мог этого понять. И первое, и второе чувство хоть и были ему чуть-чуть знакомы, но точно не в той степени, в которой они владели этой девушкой. Но сейчас он смотрел ей в глаза и на уровне интуиции, в которую никогда не верил, чувствовал, что она права и должна уйти. Однако произнести вслух не мог. Это означало бы признать себя таким же виновным. Но Милана все поняла и без слов. Она быстро положила вторую руку ему на плечо и поцеловала в щеку. Губы обожгли еще горевшую от оторванного скотча кожу.

– Спасибо, – прошептала она, и, отпустив руку Егора, схватила свою сумку с кресла. А затем выбежала за дверь, из-за которой уже начались доноситься голоса возвращающихся в «клетки» сотрудников. Егор же не тронулся с места и продолжил молча смотреть в коридор.

Два месяца спустя.

– Не верится, что ты все-таки уезжаешь, – Денис стоял на перроне в конце очереди, ожидавшей открытия дверей вагона. – Как же я буду без тебя?

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

– Ты же к своей новой девушке переезжаешь. Значит, все к лучшему. Сэкономишь на оплате квартиры.

– Егор, ты неисправим, – улыбнулся Денис, но только губами, в мимике глаз читалась грусть. – У меня-то все хорошо будет. А вот как ты там один?

– Ты же знаешь, что я удаленно все собеседования прошел, так что на работу в «Заслоне» меня уже ждут. Пока перекантуюсь в хостеле, а там найду постоянную квартиру. Цены в Питере ниже, так что денег, полученных при увольнении, мне на первое время хватит.

– Да уж… После того скандала, вообще, непонятно, что будет с «Astrexa», Мискалькова хоть и сменили, но отмываться они еще долго будут.

– Поэтому и программистов им теперь столько не нужно, заказов немного, инвесторы не хотят вкладываться в компанию, которая строила бизнес на украденной программе. А снова работать тестировщиком я не хочу.

Егор обернулся, почувствовав движение за спиной. Он увидел, что двери «Сапсана» открылись и проводник начал проверять билеты.

Егор протянул руку другу, показывая, что разговор закончен, но вместо пожатия, Денис вдруг обнял его. Странно, но в этот момент Егору не захотелось отстраниться, как это было обычно при чужих прикосновениях. А даже, наоборот, он впервые обнял бывшего соседа в ответ. Но, будто коря себя за слабость, почти сразу отстранился. Не говоря ни слова, он кивнул Денису и повернулся к дверям «Сапсана», чувствуя, как вместе с единственным другом уходит куда-то в прошлое его московская жизнь.

Виновных в сбое тогда так и не нашли. Полное отключение, как и два года назад, привело к потере вводных данных. Да и Милана, видимо, успела после изменения в коде откатить систему в старую версию. По крайней мере, Егор бы сделал так, чтобы скрыть следы. Сигнал ушел с буквой «З» вместо «тройки», но изменений в отправке никто не увидел. А что система получила, отследить уже было нельзя – нейросеть полностью вышла из строя. Восстановить можно было лишь предыдущую версию. Этим и попробовал заняться Мискальков, пытаясь спасти проект, от которого стремительно отказывались потенциальные клиенты. Но вскоре пришла весть о его увольнении. Официальная версия гласила, что он не справился со своими обязанностями. Но в коридорах шепотом говорили, что до инвесторов дошла информация, будто алгоритм был украден, и настоящий разработчик внес в систему специальный код отключения, который и ввел кто-то из сотрудников в день запуска. Имя неизвестного так и не выяснили. Увольнение Миланы, конечно, вызвало много слухов. Но слухи не равно доказательства.

Через пару минут, уже сев в поезд, Егор еще раз вспомнил тот день. Как Милана убежала в коридор, а он вместо того, чтобы звать на помощь, аккуратно оторвал остатки скотча с запястий и сел за свой компьютер. Когда кто-то из программистов вбежал в «клетку», Егор спросил, что случилось, продолжая медленно и глубоко дышать, чтобы успокоиться и попытаться изобразить на лице нужные эмоции. Коллега взволнованно рассказал подробности, но, не услышав ответных вопросов, тут же поинтересовался, а куда же делась Милана.

– У нее произошло несчастье с матерью, – ответил Егор. – Еще утром зашла в отдел кадров и уволилась. Закрыла задачи и уехала, пока мы были на собрании.

«Ложь, – подумал Егор, сидя в поезде, – кажется, у меня получается все лучше и лучше». Коллега тогда ему поверил, как и сегодня Денис, считавший, что в Питере его никто не ждет. Егор достал телефон из кармана и открыл чат в Телеграме.

«Я уже в поезде», – написал он.

Сообщение было прочитано почти сразу и через несколько секунд появился ответ: «Хорошо. Буду ждать на перроне, как договаривались». Егор посмотрел на часы: до отправления оставалось десять минут. Достаточно, чтобы выйти, догнать Дениса, спрятаться назад в свою клетку. Разум говорил, что уезжать в Питер глупость. А вот что-то другое внутри кричало: «Ты все делаешь правильно». Захотелось вновь убедиться, что он ничего не упустил. Егор пролистал чат до самого верха, и в который уже раз перечитал пришедшее полтора месяца назад сообщение: «Привет! Это Милана».