IEEE754-тика угрожает человечеству

Юровицкий В.М. МФТИ, РГСУ, Москва, www.yur.ru

(спасено отсюда)

Компьютерная дьяволиада

Представим, что в наши дни на Землю сошел Сатана, и решил он извести род человеческий. Причем сделать это совершенно незаметно и «естественно».

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

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

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

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

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

Но этого делать совсем не надо.

Потому что это уже есть.

Типы числовой информации и программы их обработки

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

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

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

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

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

Эту информацию мы назвали метрологической по источнику ее появления и практического использования.

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

Часто используемое терминологическое описание данного типа информации как «числа с плавающей точкой (запятой)» неверно и бессмысленно математически.

Действительно, в стандарте IEEE 754 эти числа имеют стандартное представление мантиссы вовсе не с плавающей, а наоборот, фиксированной левоприжатой точкой. А что такое «число с плавающей точкой»? Математическая наука вообще не знает такого вида чисел. Нет в математике ни арифметики, ни алгебры, ни функционального анализа «чисел с плавающей точкой».

Еще одно часто употребляемое название для этого класса числовой информации – «вещественные» числа. Но и это неадекватная терминология. Термин «вещественный» используется в математике для различения от понятия «мнимый». С этой точки зрения и целые числа также являются вещественными. А «мнимости» в компутинге в ее базисной (арифметической) системе обработки вообще не используются.

Поэтому на основе используемых средств обработки (стандарт IEEE 754) элементы этого типа числовой информации надо по праву назвать IEEE754-числами.

IEEE754-числа и IEEE754-тика

Математической базой использования IEEE754-чисел есть математическая теория функций действительного переменного. Действительно, компьютерная работа с IEEE754-числами представляет собой отражение теоретической математики на множестве действительных чисел. Поэтому представляется, казалось бы, логичным IEEE754-числа называть «действительными» числами». Этот термин также используется в компутинге.

К сожалению, и термин «действительные» не отражает адекватно сущность и свойства IEEE754-чисел.

Стандарт IEEE 754 определяет двухсловное представление IEEE754-чисел в виде степени и мантиссы. Стандартное представление имеет левоприжатую мантиссу и степень, указывающую двоичный показатель степени крайне левого разряда мантиссы (существуют некоторые тонкости, не представляющие интереса для нашего рассмотрения). При этом стандарт устанавливает три формата представления по длинам:

Форматы IEEE754-чисел

Тип

Общая длина представления

Длина мантиссы

Число десятичных разрядов мантиссы

Одинарной точности

32 бит

23 бит

7

Двойной точности

64 бит

52 бит

16

Расширенной точности

80 бит

64 бит

20

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

В настоящее время используются приборы точности не выше класса 0.1%. Это соответствует 4-5 десятичным разрядам. Потому большая часть мантисс IEEE754-чисел, особенно в форматах двойной и расширенной точности, несодержательна, фактически, есть информационный шум. Отсюда следует, что современный IEEE754-процессинг есть процессинг, обработка преимущественно шумов. И соответственно выходные данные этого процессинга являются сверхзашумленными. Фильтрация этих шумов, выделение содержательной части IEEE754-чисел осуществляется человеком (например, программистом при планировании вывода результатов) по интуиции, а не на основе твердых правил и алгоритмов. Понятно, насколько все это далеко от научных представлений теории информации – информатики. Область работы с метрологическими данными оказывается наименее научно обоснована и примитивна.

Рассмотрим теперь, насколько обосновано отождествление IEEE754-чисел с математическими действительными числами.

Пусть имеем IEEE754-число 1.0 в представлении ординарной точности. Это число будет иметь мантиссу в виде 10000000 (в десятичном представлении) и некоторую степень.

Но легко видеть, что действительные числа с той же самой степенью и мантиссами 1000000023456, 1000000045, 1000000000007654 и т.п. будут представлены тем же самым действительным числом 1.0. Таким образом, между действительными и IEEE754-числами существует соответствие – одно IEEE754-число соответствует бесконечному множеству действительных чисел. Можно показать, что это множество имеет древовидную структуру.

В теории функций действительного переменного нет таким структур действительных чисел, Аргументы и функции в этой теории есть действительные числа, а не их множества. Все действия в математике действительных чисел осуществляются над множествами самих действительных чисел, а не над множеством множеств действительных чисел. Поэтому между IEEE754-числами и действительными числами нет соответствия. И недопустимо эти числа отождествлять и называть IEEE754-числа действительными числами.

Покажем также, что действия над IEEE754-числами по стандарту IEEE 754 могут вообще не иметь ничего общего с математикой. Один пример мы возьмем из монографии

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

А вот в вычислительном стандарте IEEE 754 это уравнение имеет решение при любом α. Ответ зависит от типа IEEE754-чисел. Найдем, к примеру, решение этого уравнения при α=100 в формате расширенной точности (используем калькулятор WINDOWS, работающий, естественно, в стандарте IEEE 754). Результат легко вычисляется: x=2,7342203691457758866577330101202e+32.

Именно поэтому действия над IEEE754-числами по стандарту IEEE 754 нельзя называть математикой. Эти действия по праву должны называться IEEE754-тикой. IEEE754-тика иногда дает результаты более или менее близкие к математическим, а иногда не имеющие ничего общего с ними. И примеров второго рода каждый может самостоятельно построить сколько угодно.

И отсюда мы можем понять, для чего в IEEE754-тике желательно использовать большие форматы. Дело в том, что расхождение IEEE754-тики с математикой зачастую (но не всегда) отмечается появлением больших чисел, как это видно по приведенному примеру. Причем чем больше формат IEEE754-числа, тем большие возникают числа. Например, при использовании формата одинарной точности в предыдущей задаче х имело бы уже значение по порядку величины 108, Ясно, что чем больше неверные результаты выбивается из среднего уровня, тем легче их идентифицировать. Но это возможно лишь при допущении вмешательстве человека в управляемую и контролируемую компьютером систему. Второй важный момент состоит в том, что при резком увеличении сложности и объемов вычислительной работы этот идентифицирующий признак теряет свое значение. А направление развития современной цивилизации как раз и состоит и в исключении человека как «слабого звена» и полной автоматизации, и в увеличении объемов вычислительной работы и мощностей компьютеров. Таким образом, цивилизационное развитие идет в направлении увеличения вероятности неправильных, «аматематических» результатов компьютерных расчетов и уменьшении вероятности их идентификации и «обезвреживания». А воздействие на управляемую компьютером систему «аматематики» может иметь самый различный характер. Этот результат может пройти без последствий, но может привести и к самым существенным воздействиям вплоть до катастрофических.

Вот мнение авторитетных исследователей

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

А директор Института математики и ее применений в Миннеаполисе, США Дуглас Н.Арнольд утверждает, что целый ряд крупнейших аварий с человеческими жертвами и миллиардными убытками всецело обязан нынешней технологии компьютерных вычислений и представлений данных по стандарту IEEE 754:

Очень большое число техногенных аварий и катастроф произошло за последнее десятилетие (обрушение крыш аквапарков, рынков и стадионов, авиационные катастрофы, сбои при запуске ракет и при работе спутников на орбите, взрывы и пожары на химических производствах и многое другое). И можем ли мы полностью исключить из числа причин этих катастроф работу компьютера по стандарту IEEE 754? Тем более, что идентифицировать эту причину аварии чрезвычайно сложно, а нередко и вообще невозможно. Дуглас Н.Арнольд смог идентифицировать четыре крупнейшие катастрофы в первой половине девяностых годов прошлого века. А сколько их неидентифицированных произошло после этого? Мы не знаем. Можем только догадываться.

А в будущем вероятность таких аварий и их тяжесть будет лишь увеличиваться. Что мы можем еще ожидать? Нового Чернобыля из-за ошибки при управлении атомной станцией? Самозапуска ракеты с ядерным зарядом? Самопроизвольного взрыва термоядерного заряда из-за ошибки, допущенной при его конструктивном расчете? Да чего угодно.

Закладка Сатаны приведена в действие.

«Достоверные» вычисления

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

Но чем же ответило передовое компьютерное сообщество на эти вызовы?

Оно ответило созданием концепции и софтвером так называемых «достоверных вычислений».

Уже в самом этом названии содержится уничтожающая характеристика нынешней вычислительной технологии. Ибо этим самым эта группа специалистов открыто признает нынешнюю вычислительную технологию «недостоверной». Но разве имеет право на существование «недостоверная» вычислительная технология? А если она и предлагается потребителям компьютеров и вычислительного программного обеспечения, то не обязаны ли эти фирмы прямо и открыто информировать потребителей, покупателей и заказчиков о недостоверности этих техник и технологий? В принципе. вполне можно подавать иск к фирмам Интел и Майкрософт за утаивание существенного факта о характеристиках их товаров..

Но посмотрим, действительно ли ответ на вызов адекватен самой угрозе и нейтрализует недостатки IEEE754-тики?

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

Эта критика сводилась к нескольким моментам.

Исходные погрешности данных в процессе интервальных вычислений расширяются совершенно недопустимым образом. Ведь в этой технологии происходит суммирование всех ошибок при любых операциях. Например, при сложении и вычитании 1000 чисел величиной порядка 100 с ошибкой 1 суммарная ошибка будет 1000, в то время как сам результат может быть, к примеру, 500.. Получаем бессмысленный результат – ошибка числа больше самого числа.

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

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

Рассмотрим две совокупности числовых данных (201, 203) и (5, 12345.6574809). Спросим, можно ли интерпретировать оба набора как математические интервалы? Ответ бесспорно положительный. Но спросим, имеют ли эти математические интервалы практический смысл, существуют ли области науки и техники, данные в которых могли бы быть ими представлены? Ответ: первый интервал имеет практический смысл, например, это интервал для величины электрического напряжения, расстояния и т.д. Но мы не можем найти никакого примера использования второго интервала. Нет ни одной области (нематематической) науки, техники и практики, в которых ннтервал второго типа мог бы использоваться. Таким образом, в практике используются математические интервалы, но отнюдь не произвольные, а лишь определенные, специфицированные. Потому и система математической обработки должна предусматривать возможность обработки не любых интервалов и выдавать в качестве результатов также не любые интервалы, а лишь определенные, специфицированные. Использования любых математических интервалов есть главнейший порок интервального анализа.

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

Интервальная вычислительная технология является чрезвычайно затратной по используемым ресурсам. Объем операций растет экспоненциально по мере роста количества аргументов. В настоящее время разработано достаточно много искусственных приемов для уменьшения объемов вычислительной работы при интервальных вычислениях. Но это все касается лишь отдельных задач и программ. А стандарт, увы, увеличивает потребность в вычислительных ресурсах на порядки.

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

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

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

Заключение

Главная ошибка самого подхода к математической обработке числовых данных на компьютере состоит в попытке воспроизвести на нем невозможное – объекты теоретической математики, такие как действительные числа и интервалы действительных чисел. Компьютеринг нуждается в принципиально новых математических конструкциях, которые более адекватно отражали бы как потребности практики, так и возможности компьютеров. И первым шагом должны стать признание некорректности стандарта IEEE 754, а затем и разработка новых стандартов обработки нецелочисленных данных.

Где же искать эти новые принципы и концепции? Куда направить свой взор для поиска?

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

FrBrGeorge/IEEE754-666 (последним исправлял пользователь FrBrGeorge 2022-02-12 16:19:00)