Машины едут не туда по команде бортовых компьютеров
Наталья Бокарева
23 мая 2010 года, 19:01
То, что мы не можем объяснить обвал рынка, произошедший 6 мая, показывает, насколько трудно прогнозировать, а впоследствии реконструировать ситуации, вызываемые странными совпадениями маловероятных событий. В своей книге «Черный лебедь: Под знаком непредсказуемости» Насим Николас Талеб (Nassim Nicholas Taleb) утверждает, что для всех таких отклонений от нормы можно выделить три общих черты: это некие аномалии, совершенно неожиданные, они имеют очень существенные последствия, и мы ретроспективно ищем рациональные объяснения, благодаря которым они могут выглядеть прогнозируемыми (либо мы просто хотим так думать).
Недавно компания Toyota пережила целую серию таких непредсказуемых событий, которые Насим Талеб называет «черными лебедями». Японский автопроизводитель категорически отрицает, что проблемы с самопроизвольным ускорением, а также с тормозной системой в целом ряде моделей, могли быть связаны с компьютерной технологией управления автомобилем «drive-by-wire». И тем не менее сам характер подобных сбоев таков, что они практически невоспроизводимы. Поэтому невозможно сказать, связано ли это с какими-то отказами программного обеспечения или нет, пишет The Economist.
Но в одном программисты сходятся: программ без ошибок не бывает. Да, можно написать программу в пять строк, которая будет выдавать на экран приветственную строку, например, и не сомневаться: ошибок в ней нет. Но в любую программу, решающую какую-нибудь содержательную задачу, могут закрасться сотни или даже тысячи невыявленных ошибок, пишет The Economist.
Одна из самых «чистых» программ, когда-либо созданных разработчиками и содержащих менее 0,1 ошибки на 1000 строк, была написана специалистами американского космического агентства NASA. Но ни одна коммерческая организация не может себе позволить такие скрупулезные разработки и тесты. Microsoft, например, на этапе внутренних тестирований обнаруживает 10-20 ошибок на 1000 строк кода и сокращает этот показатель до 0,5 на 1000 строк к тому моменту, когда программное обеспечение поступает к пользователям. В любом случае, такая программа, как Windows XP, на 40 млн строк исходного кода при запуске может содержать 20 тысяч ошибок.
В коммерческом смысле все хорошо, лучше не бывает. В целом по отрасли, программы, создаваемые для внутреннего пользования, содержат от 5 до 50 ошибок на 1000 строк кода, в зависимости от выбранного языка программирования, сферы применения и временного ресурса, который может потратить разработчик с учетом цены, которую готов заплатить заказчик. В исследовании от 2002 года для Национального института стандартов и технологий был сделан вывод, что ошибки в программах так распространены и ущерб их настолько существенный, что они обходятся американской экономике в 59 млрд долларов в год, что на момент исследования было эквивалентно 0,6% ВВП, пишет The Economist.
Раньше машины были в основном без цифровых технологий и управлялись посредством кабелей, пружин, стержней, рычагов, гидравлических клапанов и электромоторов. Разумеется, они ломались, и очень часто. Но в данном случае дефекты, в отличие от проблем с программным обеспечением, было легко определить и устранить.
Сегодня на электронику приходится до 40% стоимости машины. В типичном автомобиле от 30 до 50 электронных элементов управления (в люксовых моделях вдвое больше), они выполняют многие функции, которые до этого были реализованы за счет механических или электрических соединений. Сейчас компьютерные чипы управляют всем — от воздушных подушек, дверных замков и регулировки сиденья до момента зажигания, подачи топлива, переключения передачи, круиз-контроля и все в большей степени — тормозов.
Консалтинговая компания Frost and Sullivan прогнозирует, что вес компьютерной составляющей в автомобиле в среднем будет расти экспоненциально — с 10 млн до 30 млн строк программного кода уже в ближайшие десять лет. Но даже если работать будут лучшие программисты мира, среднестатистический автомобиль завтрашнего дня будет выпускаться примерно с 150 тысячами ошибок в программном обеспечении. И для автомобилей выпускать «заплатки» придется даже чаще, чем для компьютеров.
В некоторых случаях ошибки могут быть несущественными и только влиять на механизм работы программы и, соответственно, управляемого ею компонента. В других случаях они могут вызвать торможение или сбой программы и неправильное функционирование какого-либо компонента. Когда так происходит с компьютером, его нужно перезапустить. С машиной это не так просто, если она бесконтрольно разгоняется или не получается ее остановить, комментирует The Economist.
В то время как машины становятся все более «компьютерными», наступает время пересмотреть правила безопасности. Конгресс взялся за эту проблему после фатальных аварий с участием неуправляемых автомобилей Toyota. Слушания в палате представителей начались шестого мая, вскоре аналогичные сессии начнутся и в Сенате. Предлагаемые инициативы должны быть утверждены в законодательном порядке уже в этом году.
Помимо карательных штрафов за сокрытие информации и непроведение своевременных отзывов, новое законодательство будет включать требование об обязательном оснащении всех автомобилей «черными ящиками» — самописцами, которые фиксируют события, начиная с момента за 60 секунд до аварии и в течение 15 секунд после нее. Также для автопроизводителей станет обязательным требование о внедрении на автомобилях приоритетных тормозных систем с технологией «перехвата», когда при одновременном нажатии газа и тормоза приоритет получает тормоз и машина переводится на холостой ход.
Но такие изменения в законодательстве о безопасности больше представляются политическим жестом, чтобы успокоить общественность, потрясенную сообщениями о неисправностях тормозной системы и акселератора Toyota. Всего японскому автопроизводителю пришлось отозвать около 9,5 млн машин по всему миру. Рано или поздно, и скорее раньше, чем позже, компания отладит неисправную программу, и нынешние проблемы тихо уйдут в прошлое.
Более сложный вопрос, однако, в том, что автомобили стремительно переводятся на преимущественно электронные цифровые механизмы управления и вместе с этим получают все преимущества и недостатки компьютерных технологий. Значит, необходимо при разработке сделать их максимально устойчивыми к «цифровым» сбоям. Если происходит событие из разряда «черных лебедей», это не должно ставить под угрозу безопасность машины. В то же время обновление программного обеспечения должно производиться на постоянной основе через Интернет, а не откладываться всякий раз до очередной поездки в сервис.
Но важнее всего то, что с каждым новым компонентом электроники снижается степень контроля водителя, управляющего машиной. В перспективе машины становятся практически автономными, способными самостоятельно управлять движением без вмешательства человека, пишет The Economist.
Но в конструкторской философии, которая дает приоритет реакции механизма над опытом человека и стремится максимально вывести человека из поля управления, заключена фатальная ошибка. Если авария на атомной станции Three Mile Island 1979 года чему-то научила, то урок был в том, что операторы, управляющие какой-либо сложной машиной, должны быть полностью включены в процесс управления.
Из всех ошибок, допущенных на Three Mile Island, самая ужасная заключалось в том, что роль операторов реактора свелась только к функциям менеджеров, наблюдающих сверху за работой автоматических систем. Во внештатной ситуации никто из них не обладал ни знаниями, ни опытом для того, чтобы взять все под контроль. Неуправляемые автомобили с цифровыми двигателями становятся своевременным напоминанием об опасностях, подстерегающих нас там, где машине дается слишком большой контроль, пишет The Economist.