Иногда лучшая зацепка — собственная оговорка. В свежем разборе регулирования автономных систем я мимоходом поставил рядом два числа, как ставят козырь: ASIL D — это 10⁻⁸ отказов в час, а в авиации катастрофические отказы нормируются ниже 10⁻⁹ на лётный час по ARP4761. Второе число настолько аккуратное, что не вызывает желания проверять: один шанс на миллиард, звучит как результат тончайших измерений.
Полез проверять — и застрял. Во-первых, никакого 10⁻⁹ в ARP4761 нет: это документ про методологию оценки безопасности, а численные бюджеты живут в другом месте. Во-вторых, что куда интереснее, 10⁻⁹ вообще не является измерением. Это бюджет, который вывели обратной арифметикой: сначала решили, как должна выглядеть приемлемая картина мира, а потом поделили её на количество самолётов, систем и лет.
И держится вся конструкция на числе, записанном в 1982 году в книге, которую давно не переиздают.
Самый честный первоисточник здесь лежит в стороне от учебников и действующих стандартов: письмо в закрытом профессиональном списке. В августе 2024 года инженер Фил Купман из Университета Карнеги — Меллона уточнял в рассылке по системной безопасности, к чему именно относится «одно на миллиард», и Питер Ладкин из Билефельда ответил ему прямой цитатой из книги Lloyd & Tye «Systematic Safety», изданной Управлением гражданской авиации Великобритании в 1982 году. Страница 37, дословно:
Если предположить, что из оценки безопасности всех систем типа воздушного судна может выйти целых 100 отдельных катастрофических эффектов, суммарный максимальный риск по требованиям составил бы 100 × 10⁻⁹ = 10⁻⁷. Это означало бы, что при флоте из 100 воздушных судов одного типа, каждое из которых летает 3000 часов в год, тот или иной катастрофический эффект мог бы проявиться раз в 30 с небольшим лет, что близко к понятию «практически никогда».
Прочитайте это ещё раз, потому что в абзаце перевёрнута привычная логика доказательства. Не «мы измерили частоту и она оказалась такой». А «мы хотим, чтобы это случалось практически никогда; значит, вот такой должна быть частота». Дальше число просто проецируется на системы: 100 катастрофических эффектов на тип, 100 бортов, 3000 часов в год, ресурс планера около 33 лет. Итого порядка 10⁷ лётных часов экспозиции и бюджет примерно 10⁻⁹ на час на каждый эффект.
Самое любопытное в этой цитате — слово «assume». Авторы честно пишут, что цифра 100 — допущение, а не расчёт.
Второй сюрприз ждёт в тексте нормативного документа. Открываем 14 CFR 25.1309 — тот самый параграф, на который ссылаются все: «системы и связанные с ними компоненты должны быть спроектированы и установлены так, что каждый катастрофический отказ должен быть extremely improbable». Всё. Никакой девятки там нет, потому что регулятор пишет требование качеством, а не цифрой. Аналогично и «extremely remote», и «remote».
Числа живут в другом слое — в Advisory Circular, то есть в документе с прямой оговоркой: «acceptable means, but not the only means» — приемлемые способы, но не единственные. И вот тут начинается история про сорок лет неопределённости. Как отмечают в разборе на MathPages, AC 25.1309-1 (1982) и его версия -1A (1988) состояли буквально из двух неоднозначных предложений без всякого обоснования — что породило расхождения в трактовках и у индустрии, и у самих регуляторов. Только в 2000-х собрался комитет ARAC и выработал подробное приложение с аппаратом количественного риска, названное Arsenal — по имени футбольного клуба и без всякой содержательной причины.
Из этого свода и вытекает число: изначальный замысел критериев формулировался как требование, чтобы вероятность отказа одной системы, ведущего к катастрофе, за 10 миллионов лётных часов была меньше 1/100. Отсюда нормированная средняя вероятность в расчёте на час — 10⁻⁹. И у этого числа тот же особый статус, что и у «100 катастрофических эффектов»: это не порог, найденный в природе, а согласованная шкала для инженерного суждения.
Arsenal приняла европейская сторона (сегодня EASA). FAA — не приняла. То есть сегодня трансатлантические сертификации опираются на разные трактовки одного числа.
И ещё деталь, которая ломает всю иллюзию точности. Действующая редакция AC 25.1309-1B от августа 2024 года прямо разрешает считать «порядком величины» разброс в три раза: для extremely remote и extremely improbable failure condition «фактор три может рассматриваться как „на порядке“ для демонстрации соответствия». 10⁻⁹ и 3×10⁻⁹ официально считаются одним и тем же числом.
Там же, в пункте 3.2.4.1.2, регулятор пишет буквально следующее: «Строго говоря, выполнение только количественного анализа для демонстрации того, что failure condition является extremely improbable, недостаточно, из-за изменчивости и неопределённости самого аналитического процесса». Через сорок лет после появления числа его собственный регулятор сообщил, что на число полагаться нельзя.
Когда к 1990-м стало ясно, что цифру на софт придётся как-то переносить, за дело взялись всерьёз — и тут же упёрлись в арифметику. Рики Батлер и Джордж Финелли из Исследовательского центра NASA в Лэнгли посчитали, что стоит простое статистическое подтверждение. Их результат в IEEE Transactions on Software Engineering (1993) стоит того, чтобы выписать таблицей, потому что никакая метафора этого не передаст.
Вероятность отказа 10⁻⁹ на десятичасовую миссию означает среднее время до отказа порядка 10¹⁰ часов. Если взять одну систему на испытаниях и ждать первого отказа, ожидаемая длительность теста — около 1 141 550 лет. Десять систем на стенде сокращают это до 114 155 лет. Сто систем — 11 415 лет. Десять тысяч систем дают скромные 114 лет, но для этого нужны десять тысяч экземпляров дорогостоящего бортового комплекса.
Отдельная история — модели роста надёжности, которые тогда считались прогрессивным методом. По расчётам авторов, снятие последнего дефекта и выход на интенсивность отказа порядка 10⁻¹¹ на один вход требовало в среднем около 2,2 × 10¹⁰ тестовых прогонов. Даже при тысячекратном ускорении относительно реального времени это 42 года непрерывного тестирования. В таблице по шести реальным программам-прототипам разброс вышел от 19 до 66 лет — на одну программу, и это только последний найденный дефект.
Замечательное свойство числа 10⁻⁹ в том, что его вообще нельзя получить для сложной системы, не приняв одной скромной аксиомы: что отказы резервированных компонентов независимы. Только тогда вероятности перемножаются, и только тогда из отказавших по отдельности блоков собирается число с девятью нулями. Батлер и Финелли формулируют это без обиняков: «Ключевое допущение, которое позволяет… оценивать вероятности отказа порядка 10⁻⁹, состоит в том, что отдельные резервированные компоненты отказывают независимо или почти независимо».
Для железа это разумно. Разные корпуса, раздельное питание, электрическая изоляция, экранирование от среды — физика действительно позволяет рассчитывать на независимость отказов. Для софта тот же ход не проходит по причине, которую авторы формулируют ядовито и точно: «программные ошибки — продукты человеческого рассуждения», то есть в буквальном смысле неправильного рассуждения. Разные команды, читая одну спецификацию, ошибаются похоже, потому что ошибаются одинаково устроенные люди над одной и той же задачей.
Это не осталось на уровне теории. В 1986 году Джон Найт и Нэнси Левсон опубликовали в IEEE Transactions on Software Engineering результат эксперимента, который до сих пор неловко вспоминать: 27 версий одной программы независимо написали в двух университетах по единой спецификации системы противоракетной обороны, а затем прогнали миллион тестов против эталонной программы-оракула.
Отдельные версии оказались хороши: шесть из 27 не дали ни одного отказа, двадцать три прошли более 99,9% тестов. Но тестов, в которых отказала больше одной версии, оказалось существенно больше, чем предсказывала независимость. Пятьсот пятьдесят один раз отказывали ровно две версии на одном входе. В самом экстремальном случае на одном и том же тесте отказали восемь программ одновременно — и это случилось дважды.
Статистика вышла унизительной для аксиомы: значимость при α = 0,01, z-оценка 100,55. Нулевая гипотеза о независимости отказов отвергнута.
Годом раньше Дэйв Экхардт и Ларри Ли из NASA предложили для этого математический аппарат, введя понятие «совпадающих ошибок» и их интенсивности. Они же поставили вопрос, который индустрия до сих пор не любит: растёт ли надёжность с числом версий монотонно, или существует оптимум, после которого добавление пятой копии только повышает стоимость, не улучшая безопасность. В предельном случае, когда все остаточные дефекты общи для всех версий, система не отличается от одной случайно выбранной версии.
Дальше начинается самая элегантная часть истории, и относится она скорее к поведению, чем к технике. Столкнувшись с тем, что число нельзя ни измерить, ни обосновать для софта, гражданская авиация просто перестала назначать софту вероятности. Не отказалась от требования, а перевела его на другой язык.
Бев Литлвуд и Лоренцо Стриджини в работе 1993 года в Communications of the ACM суммировали тогдашнее состояние так: «представляется, что инженерная практика должна принять тот факт, что решения не существует — по крайней мере сейчас — для валидации сверхвысокой надёжности в системах, опирающихся на сложное программное обеспечение». Они перечислили, почему софт выпадает из вероятностной логики: дефекты проектирования трудно и избежать, и парировать; софт часто реализует радикально новые функции, так что опыт прошлых удачных систем не помогает; а главное — цифровые системы реализуют разрывные отображения вход-выход, к которым неприменимы допущения непрерывности, работающие для механики.
Следствие этого тупика мы видим в нынешней практике каждый раз, когда самолёт получает прошивку. DO-178C не назначает софту ни риска отказа, ни вероятности: он требует уровня гарантии разработки (DAL), то есть подтверждённости процессов. Грубо говоря, индустрия сказала: раз число для софта недостижимо, будем измерять строгость того, как мы к нему готовились.
А вот вывод, который переворачивает всю картину.
По мнению Джона Даунера из Бристольского университета, вероятностные расчёты в авиации работают не так, как себя описывают. В его статье «The Aviation Paradox» и книге Rational Accidents (MIT Press, 2024) показано, что FAA исследует историю службы предшественников системы, а не саму систему: убеждается, что предложенные изменения эту историю не испортят, и затем предполагает, что новая система будет примерно так же надёжна. Процесс этот «скорее актуарный, чем предсказательный». Работает он только благодаря двум институциональным нормам: стабильности конструкции (новая машина меняется настолько понемногу, что остаётся сопоставимой с прошлой — так, флай-бай-вайр и композиты выдержали десятилетия в военной авиации до выхода в гражданскую) и рекурсивной практики (постоянная инкрементальная доводка по результатам разбора происшествий).
Три опоры, по Даунеру, и держат всю систему: история службы, стабильность конструкции, рекурсивная практика.
Самое наглядное испытание вероятностного подхода случилось в 2019 году, и провалился он не там, где считали. Два крушения Boeing 737 MAX унесли 346 жизней, и разбор NTSB (отчёт ASR-19-01, сентябрь 2019) показал, что ключевым звеном в системе безопасности было допущение не о железе, а о человеке.
Логика сертификации устроена так: система оценивается как безопасная, если предполагается, что пилот правильно распознает отказ и выполнит нужную процедуру. Boeing заложил это допущение в классификацию опасности срабатывания MCAS, и FAA его одобрила. На деле поведение пилотов на всех трёх разобранных рейсах отличалось от предусмотренного, а одновременная выдача нескольких оповещений мешала сразу выбрать нужную процедуру. NTSB формулирует вывод осторожно, но однозначно: если изготовитель предполагает корректную реакцию пилота, не разобрав при этом все мыслимые сочетания оповещений, то классификация опасности и все вытекающие из неё проектные, процедурные и учебные меры могут не учитывать реального поведения.
Это важнее, чем выглядит. Число 10⁻⁹ считалось по формуле, где независимыми переменными были компоненты, а допущение о пилоте стояло рядом в виде константы, которую никто не пересчитывал. Провал пришёл ровно из слагаемого, которое в формулу не входило.
Из авиации число разошлось по всей инженерии безопасности. В автомобильном ISO 26262 целевое значение метрики случайных отказов железа для высшего уровня ASIL D составляет менее 10⁻⁸ в час, для ASIL C и B — менее 10⁻⁷ в час. В промышленной IEC 61508 четвёртый уровень полноты безопасности SIL 4 в режиме непрерывной работы определён как диапазон от 10⁻⁹ до 10⁻⁸ опасных отказов в час. Литлвуд и Стриджини упоминают ещё одну планку: процессор для городских поездов должен отказывать с вероятностью менее 10⁻¹² в час, то есть на три порядка строже самолёта.
Показательно, что все эти числа — копии одного и того же хода мысли, размноженные по отраслям. И точно так же, как в авиации, они относятся к случайным отказам железа. Там, где появляется софт, вероятностные требования либо исчезают, либо превращаются в требования к процессу.
Сегодня тот же выбор встал перед разработчиками искусственного интеллекта. В ноябре 2025 года EASA выпустила NPA 2025-07 — первый регуляторный проект по надёжности ИИ в авиации, во исполнение европейского AI Act. И структура документа выдаёт, что отрасль уже прошла этот путь: количественная парадигма для обучаемых моделей не переносится, вместо неё предлагается learning assurance — подтверждение того, как модель обучали, на каких данных и как проверяли. Ровно тот же разворот от «сколько раз оно откажет» к «как тщательно мы к этому готовились», который авиация совершила для софта тридцать лет назад.
Отдельно — три места, где материал сопротивлялся укладке в аккуратную историю.
Первое. Я сам чуть не сделал ложное сравнение.
По данным IATA за 2025 год — 1,32 аварии на миллион рейсов и восемь фатальных аварий на 38,7 млн рейсов. Так и подмывало пересчитать это в «на час» и сопоставить с бенчмарком эпохи Lloyd & Tye — дескать, обещанное «практически никогда» уехало на два порядка. Но сравнивать это нельзя: 10⁻⁹ относится к одному конкретному катастрофическому отказу одной системы, а не к самолёту целиком, и уж точно не ко всем авариям, включая выкатывания за пределы полосы. Тут ровно та путаница между интенсивностью отказа в час и нормированной вероятностью на лётный час, о которой предупреждает разбор на MathPages: величины вроде бы в одних единицах, но означают разное. Оставляю это как есть: скорее ловушкой, в которую я почти влез, чем выводом.
Второе, совсем честно. Купман в том самом письме пишет про допущение о десяти катастрофических failure conditions так: «я могу помнить число десять неправильно — не знаю, записано ли это вообще где-нибудь». Эксперт, который занимается системной безопасностью десятилетиями, не уверен, зафиксировано ли ключевое допущение его отрасли в каком-либо документе. Похоже, что если и зафиксировано, то где-то в книге 1982 года издания, давно вышедшей из печати, а не в действующем стандарте.
И третье, мелкое. Один и тот же свод правил существует в двух редакциях с разными порогами: Arsenal приняли в Европе, FAA — нет. Инженер, сертифицирующий машину для обеих юрисдикций, формально доказывает соответствие двум разным числам одной и той же конструкции.