Слово и число – вот краеугольные камни, на которых зиждется все здание человеческой цивилизации. Слово прямо указано в этой ипостаси Библией: «Вначале было Слово. И Слово было от Бога. И Слово было Бог». Не менее важную роль в цивилизационном развитии играет число. Недаром одна из книг Библии так и называется «Книга Чисел». Без него невозможны познавательная и созидательная деятельность.
Число – одно из сложнейших понятий. И в процессе цивилизационного развития перед человечеством возникали все новые задачи, которые требовали развития числовой институции.
Вот почему так важно, чтобы понятие числа было адекватным практическим потребностям и человеческой деятельности. Отсутствие такой адекватности грозит самому существованию цивилизации, ибо результатом может стать крушения искусственных сооружений, разнообразные катастрофы, человеческие жертвы, крупномасштабное уничтожение природы и конечным результатом может стать гибель самой цивилизации.
В настоящее время появляется все больше признаков того, что такая адекватность нарушается или уже нарушилась. Свидетельством этому может служить вал так называемых техногенных катастроф, всякого рода аварий. Обычно эти аварии и катастрофы относят на так называемый «человеческий фактор». Конечно, человек несовершенен. Он может ошибаться. Но не слишком ли часто на него списываются все эти происшествия. Считается, что альтернативой ошибкам человека являются лишь сбои и неполадки техники. Но, думается, что есть и третий источник аварий и катастроф – неадекватность понятия числа современным требованиям. О возможности такой неадекватности в настоящее время только начинают подозревать гнаиболее прозорливые, незашоренные специалисты в области компутинга. И на основе этих подозрений уже делаются первые, пока еще робкие шаги в направлении нахождения более адекватных понятий числовой институции.
Думается, мир стоит на рубеже новых глобальных перемен в числовой области. И это связано с новым этапом использования числа. Этот этап связан с колоссальным увеличением объема числовой обработки. В настоящее время для получения единственного числа приходится делать миллиарды, триллионы операций числовой обработки. И инструмент человеческой интуиции, здравого смысла, который до сих пор используется для оценки конечных результатов этих обработок, уже отказывается работать.
В процессе цивилизационного развития человечество решало все новые и новые задачи, и в соответствии с этим требовалось развитие институции числа.
Можно выделить ряд числовых и вычислительных эпох в этом развитии.
1. Начальная эпоха. Эпоха натурального числа. Числа зачастую не имели сохраняющихся изображений, а представлялись набором некоторых подручных предметов – пальцев, камешков, бусинок и т.д. Вычисления сводились к манипуляциям с этими предметами. Остатки этой эпохи можно видеть на развитии понятия числа у детей, а также на таком вычислительном устройстве, как счеты.
2. Древний мир и средневековье. В течение этого исторического этапа произошло новое развитие понятие числа до дробного числа. Такое число представлялось совокупностью двух целых чисел. Вычисления с дробными числами составили предмет специальной науки – арифметики. В ходе этой числовой эпохи дробного числа были осуществлены сложнейшие расчеты, например, расчеты движения планет и Луны, созданы самые разнообразные сооружения – здания, мосты, ирригационные системы и системы водоснабжения и т.д. В эту эпоху в основном использовалось так называемое аддитивное представление чисел, представителем какового является римская система записи. Главным недостатком этого представления было то, что в нем невозможно было записать произвольно большое число. В каждый момент существовали предельно большие числа, которые можно было записать. Сложными также были алгоритмы умножения и особенно деления.
3. Новый этап в развитии институции числа связан с позиционной системой представления чисел. В этой системе можно было уже записать любое число. Возникло фактически, два понятия числа. В математической теории основным стало понятие действительного числа, а в вычислительной практике – приближенного числа. Для действий с приближенными числами были разработаны простые, но чрезвычайно эффективные «Правила приближенных вычислений».
4. Наконец, нынешняя вычислительная эпоха связана с компьютерными вычислениями. Но при этом изменилось и само понятие числа. То, что вместо десятичной системы счисления стала использоваться двоичная, Но это не самое главное. Главное отличие в понимании числа между компьютерной эпохой и предшествующей числовой эпохой ручного счета состоит в том, что вместо приближенного числа стало использоваться рациональное число. Современная числовая и вычислительная эпоха на много порядков увеличила «вычислительную мощь» человека и человечества в целом. Благодаря компьютерам можно уже говорить о создании «искусственного разума», который нередко уже заменяет человеческий, а порой и многократно его превосходит. Ног тем ни менее, в последнее время появляется осознание, что в сфере числовых представлений и вычислительных технологий происходит что-то не то.
Представление, запись рационального и приближенного числа совершенно одинаковы. Например, число 1.345 в прошедшей числовой эпохе воспринималось как приближенное, а в современной – как рациональное. Какая же между ними разница? А разница громадная. Дело в том, что если число 1.345 воспринимается как рациональное число, то числа 1.3450, 1.34500, 1.345000 есть просто разные записи одного и того же рационального числа. Но если число 1.345 есть приближенное, то числа 1.3450, 134500, и все подобные являются уже разными приближенными числами. И это является важнейшим фактором. Можно сказать, что величайшим несчастьем для всей вычислительной культуры явился тот факт, что для представления приближенных чисел не использовалась метка, которая позволяла бы сразу же отличать приближенные числа от рациональных. Мы предлагаем исправить этот недостаток и использовать специальную метку в виде апострофа, который размещается сразу же за значащими разрядами приближенного числа. Если же никаких помет нет, то будем считать, что это есть рациональное число. Так, число 123.5’ есть приближенное число. В принципе его можно записать и в виде 1235Е-1’, и в виде 0.1235Е3’. А запись 123.5 считать рациональным числом, которое может быть также записано в виде 123.500000 или 123500000Е-6 и т.д..
Думается, что если бы помета приближенного числа была введена ранее, могла бы иначе развиваться даже сама компьютерная вычислительная технология. Ведь именно отсутствие таких помет привело к представлению, что компьютерная вычислительная технология есть прямое продолжение докомпьютерной, а между понятием числа в компьютерную и докомпьютерную эпохи нет разницы. На самом деле разница велика и принципиальна.
Рассмотрим пример осуществления одной и той же операции в докомпьютерную эпоху на основе понятия приближенного числа, используя «Правила приближенных вычислений», и в компьютерную, воспользовавшись калькулятором MS WINDOWS.
Решим задачу 1.234’ * 9.875’. На основе «Правил приближенных вычислений» получаем результат: 1.234’ * 9.875’ = 12.2’. А теперь решим задачу на множестве рациональных чисел. Получаем: 1.234 * 9.875 = 12,18575. Легко видеть, что это различные результаты. В рациональном результате отличны 5 разрядов от результата приближенных вычислений.
Иногда возражают, что мол это не разные результаты, а более точные и менее точные. Но это не так. Результаты просто разные, так как они сделаны в различных системах представлений чисел, самого их понимания.
Решим еще одну задачу. На множестве приближенных чисел 12.338’ / 9.7’ = 1.3’. Аналогичная задача на множестве рациональных чисел дает (решаем на калькуляторе MS WINDOWS): 12.338 / 9.7 = 1.2719587628865979381443298969072. Легко видеть, насколько различны результаты операций. Более того, отсюда же видна еще одна принципиальная разность между исчислением приближенных и рациональных чисел. Исчисление приближенных чисел однозначно. Т.е. действия с одинаковыми числами дают результат, не зависящий от того, кто, где и когда их осуществлял. Правда, последовательность операций может приводить к разным результатам в зависимости от порядка исполнения операций. Математика приближенных чисел неассоциативна. Но отдельные операции всегда определены.
На множестве рациональных чисел результат действий над рациональными числами, как правило, не определен. Он зависит от используемых технических средств, например, от компьютера, от программы и т.д.
И вопрос о том, какие из этих результатов «верны» бессмыслен. Оба верны в своей системе представлений. Но можно поставить вопрос: а какие из них более адекватны запросам практики. Ведь конечная цель компьютерных расчетов вовсе не сами вычисления, а получения информации, на основе которой можно предпринимать определенные действия или решения.
И вот теперь представим себе, что числа, которые мы использовали при умножении в первой задаче, есть значения тока и сопротивления в некоторой электрической сети. Необходимый нам результат состоит в вычислении напряжения в ней.
Рассмотрим сначала результат, полученный в системе приближенных вычислений. Как можно проверить его адекватность? Естественно, измеряя контрольным прибором искомое напряжение.
Сразу же, рассматривая результат, мы видим, что результат получен с точностью 3 разряда и для его проверки достаточно иметь прибор класса 0.01 или 0.005. Это вполне нормальные приборы, имеющие относительную точность один или пол процента.
Для того, чтобы оценить адекватность вычислений в идеологии рациональных вычислений, как легко видеть, нам нужно иметь прибор класса 0.0000001. Такой прибор, может быть и можно найти в каком-нибудь метрологическом институте, в котором хранятся и создаются эталоны и эталонные измерительные приборы, но уж на обычном производстве таких приборов, конечно быть не может. Ведь стоимость его может во много раз превышать стоимость самого производства, в котором измеряется данная величина. А кроме того, такая точность просто и не нужна. Но и самое главное, даже если мы и найдем прибор требуемого класса точности, то можем ли мы гарантировать, что показанный им отсчет совпадет с результатом вычислений? Конечно, нет. Если мы знаем исходные величины с точностью четыре разряда, то как можно предполагать, что из это можно узнать жестко скоррелированную с ними величину с точностью до седьмого разряда? И наш опыт, и наука об измерениях – метрология – говорят, что нельзя. Другими словами, шансов на то, что поверяемая величина совпадет с расчетной, практически нет, а совпадение может быть только случайным.
Но если это так, то отсюда следует простой вывод: вычисления в системе рациональных чисел НЕВЕРНЫ. Действительно, если они не совпадают с независимо проводимой поверкой, то можно это назвать только так. Иногда, правда, используют более мягкую формулировку «недостоверны». Но, думается, надо ставить все точки над «и» и говорить о том, что числовые расчеты с использованием представления рационального числа НЕВЕРНЫ. Они неверны не с точки зрения самой математики. Они неверны с точки зрения того, кто заказывает (и оплачивает) производство расчетов, с точки зрения их потребителя. А то, что они верны с точки зрения математика – то это не может играть никакой роли, ибо «потребитель всегда прав».
Но можно сказать, что ведь в результате рациональных вычислений адекватный ответ в некотором роде содержится. Действительно, если округлить рациональный результат на четыре разряда, то мы получим результат, совпадающий с результатом, даваемым приближенными вычислениями. Но спрашивается, откуда конечный потребитель, получающий результат рациональных расчетов, может знать, что для получения адекватного результата он должен получаемое число округлить именно на 4 разряда, а не два, не три, не пять? Дает ли нынешняя вычислительная технология такую информацию? Нет. Максимум, что она говорит, что в тех числах, которые она дает конечному пользователю, адекватный результат содержится и его можно извлечь. Но как – компьютерная наука не знает.
Правда, порой некоторые исполнители сами по своей инициативе, пользуясь лишь интуицией, пытаются представить конечные результаты в адекватном виде, сами задавая программное округление и выдачу результатов с заданным заранее количеством разрядов. Но думается, что тут позиция абсолютно очевидная. Интуиция вещь, конечно, хорошая. Но есть пределы, за которой она не работает. Если для получения одного конечного числа в современных суперкомпьютерах, решающих наиболее сложные (и часто чрезвычайно ответственные) задачи требуется совершить миллиарды, а то и триллионы и квадриллионы отдельных вычислений, то тут уже позволительно не доверять никакой человеческой интуиции.
Но на самом деле ситуация может быть еще более тягостная и опасная. В результате рационального компутинга может вообще не содержаться адекватный результат ни в каком виде и никоим образом. Приведем пример [1]
Пусть даны два вещественных вектора xи y: x = (1020, 1223, 1018, 1015, 3,?1012), y = (1020, 2,?1022, 1013, 2111, 1016).Обозначим скалярное произведение x и y через x * y (соответственные элементы перемножаются и эти произведения складываются). В точной целочисленной арифметике имеем: x *y = 1040 + 2446 ? 1040 + 1028 + 6333 ? 1028 = 8779. Однако арифметика чисел с плавающей точкой на любом современном компьютере (включая те, на которых арифметика реализована в соответствии со стандартом IEEE 754 даст для такого скалярного произведения нулевое значение
Что отсюда следует? А следует, что расчеты на современном компьютере в идеологии рационального числа, осуществляемые в соответствии со стандартом IEEE 754, могут приводить уже к АБСОЛЮТНО неверным результатам, т.е. вообще не содержащим даже хоть как-то похожего числа. Правда, можно спросить, а что в этом случае дадут приближенные вычисления. Ответим, НИЧЕГО. Здесь нет приближенных чисел, потому и считать по технологии приближенных вычислений здесь нечего. Это же только в идеологии рационального числа целые числа есть подмножество рациональных, и потому обрабатывать целые числа можно и процессором целых, и процессором рациональных чисел.
Фактически, это катастрофа. Катастрофа современного компутинга. Ее еще можно назвать «рациональной катастрофой». Ведь если нынешние компьютерные вычисления могут при соответствующих стандартам настройках компьютера приводить к неверным результатам, то такое устройство по всем правилам должно быть НЕМЕДЛЕННО запрещено к использованию. Если с помощью компьютеров прокладываются трассы самолетов, рассчитываются сами самолеты, мосты, аквапарки, то где гарантия, что эти расчеты не содержат фатальных ошибок. Таких гарантий нет. И это не только мой вывод.
Постепенно у критически настроенных исследователей все чаще стал возникать вопрос, вынесенный в заголовок обобщающей статьи немецкого математика проф. К. Никеля: «Can we trust the results of our computing?» («Можем ли мы доверять результатам наших вычислений?») [2]. Действительно, беспристрастный анализ традиционного подхода к численным вычислениям и соответствующего инструментария (алгоритмов, языков программирования и аппаратного обеспечения), проведенный специалистами в области вычислительной математики, привел к неутешительному выводу о том, что алгоритм, сформулированный в столь привычных нам терминах, попросту недоопределен и потому обладает, вообще говоря, непредсказуемыми свойствами. (На одной из крупных научных конференций ректор Технического университета Вены проф. П. Скалички наполовину с юмором, а наполовину всерьез заявил, что с тех пор, как подробнее узнал о принятых способах выполнения машинных вычислений, очень опасается ходить по мостам и оказываться внутри других сложных инженерных сооружений…)
В классическом анализе погрешностей принято оценивать погрешности, возникающие при каждой отдельной операции численных алгоритмов. Конечно, для такого алгоритма, в котором за час выполняется 1015 операций с плавающей точкой, это уже практически неосуществимо. Поэтому реалистичный анализ погрешностей обычно и не производится. В действительности, сам факт, что вычисленный результат может вообще не иметь верных цифh, редко принимается во внимание. [3]
Это действительно катастрофа, всего объема которой мы пока не поняли. Причина в том, что даже если и есть основания подозревать в тех или иных авариях и катастрофах компьютер, то у нас нет средств выяснить это. Ни целочисленным, ни ручным счетом проверить работу современного компьютера невозможно. Современный компьютер НЕПРОВЕРЯЕМ. Мы должны ему только полностью и абсолютно довериться. А все катастрофы и аварии лучше всего относить на «человеческий фактор».
Итак, подводя итоги этого рассмотрения, мы приходим к выводу: концепция рационального числа неадекватна современным числовым реалиям, а рациональный компутинг неверен и не исключает фатальных ошибок. Причем чем больше сложность вычислений, тем выше вероятность ошибочных вычислений. Это уже становится опасным, причем уровень опасности нами может только предполагаться. Но в дальнейшем, по мере увеличения производительности вычислительных машин и сложности вычислений эти опасности будут нарастать, причем, наиболее вероятно, в геометрической прогрессии.
Дуглас Н.Арнольд, директор Института математики и ее применений в Минеаполисе, США [4] утверждает, что целый ряд крупнейших аварий с человеческими жертвами и миллиардными убытками всецело обязан нынешней технологии компьютерных вычислений. «Некоторые катастрофы, связываемые с неправильными числовыми вычислениями: Взрыв ракеты "Пэтриот» в Саудовской Аравии 25 февраля 1991, который привел к гибели 28 человек, связан с ошибками. округления.
Взрыв ракеты Ариан-5 сразу после старта при ее первом испытании во Французской Гвиане 4 июня 1996 был следствием переполнения числовой сетки компьютера.
Слейпнер, оффшорная платформа в Гандсфиорде около Ставангера в Норвегии, затонула 23 августа 1991, что привело к убытку почти в один миллиард долларов. Это, как предполагается, было результатом inaccurate finite element analysis»» – Перевод автора».
Осознание неадекватности и даже неверности нынешней вычислительной технологии привело к появлению новой компьютерной вычислительной технологии, так называемых «достоверных» вычислений. В системе достоверных вычислений используется не числа, а математические интервалы
В настоящее время это уже весьма развитая область компутинга. Запись численного алгоритма осуществляется на языке программирования, специально спроектированном с учетом требований интервальных вычислений. Такие языки были названы SC-языками — от английского словосочетания «Scientific Computations», т. е. «Научные Вычисления» (разумеется, обозначение «SC» условно — не в меньшей степени эти языки пригодны и для программирования инженерных расчетов). За 70–90-е гг. было разработано (преимущественно в Германии и Швейцарии) целое семейство таких языков: FORTRAN-SC и -XSC, PASCAL-SC и -XSC, MODULA-SC, OBERON-XSC. Введение в базовый язык дополнительных конструкций и реализация специальных численных модулей позволили создать новые системы программирования на основе Фортрана, Паскаля, Модулы-2 и Оберона — популярных и хорошо изученных множеством пользователей языков.
В настоящее время с помощью SC-языков разработаны различные пакеты численных методов, написанные на этих языках программы активно используются для решения научно-технических задач. Наиболее же известен на сегодня среди SC-языков PASCAL-XSC: он тщательно описан, имеет реализации для самых различных платформ, широко применяется в учебном процессе многих западных университетов, накоплен определенный опыт его применения и в ряде научных и высших учебных заведений СНГ (Санкт-Петербургский государственный университет, Красноярский ВЦ CO РАН, Львовский государственный университет, Московский институт стали и сплавов, Саратовский государственный университет и др.) .
Fortran 95 — первый и пока единственный «интервализованный» язык численного программирования с промышленным компилятором, созданным фирмой мирового уровня. «Интервализации» своего основного языка для численных приложений Sun Microsystems придает большое значение. Как сказано в информационном сообщении, помещенном на официальном сайте фирмы и обращенном ко всем потенциальным пользователям системы Sun Studio, «поддержка интервальной арифметики в Fortran 95 способна изменить тот подход, который вы применяете, когда думаете о вычислениях» [5].
Отметим, что сам термин «достоверные вычисления» чрезвычайно ответственен. И если со стороны компьютерного сообщества не появилось протестов на это название, то это означает, что оно признало, что здесь мы действительно имеем дело с «достоверными» вычислениями, а все иные являются недостоверными. Но ведь это же приговор обычной (числовой) вычислительной технологии. Признать ее недостоверной – это означает признать ее полную ничтожность. Ибо нет и не может быть места недостоверным вычислениям, если от них зависят жизни многих людей, порою тысячи и даже миллионы (например, при управлении атомными электростанциями), если от их правильной работы зависит благосостояние множества людей и т.д. Вот почему любой ответственный проект, в котором использовались числовые компьютерные вычисления, должен быть обязательно снабжен примечанием: «Данный проект основан на недостоверных компьютерных вычислениях».
Осознание этого факта широкими массами может явиться буквально шоком для множества людей, которые в настоящее время абсолютно уверены, что, чтобы в мире не происходило, но компьютер вне подозрений (если он исправен). И что будет, если они по примеру проф. П.Скалички станут «опасаться ходить по мостам и оказываться внутри других сложных инженерных сооружений»?
Но является ли технология «достоверных» вычислений адекватной потребностям практики? Увы, можно твердо утверждать, что «достоверные» вычисления – мертворожденная технология. Она некорректна и неадекватна.
1. Интервальные исчисления увеличивают затраты компьютерных ресурсов на порядки, а многие задачи становятся попросту недоступными для выполнения. При вычислении интервальной функции от n интервальных переменных необходимо вычислить 2n числовых функций. Например, простейшая задача вычисления дискриминанта матрицы 10x10 необходимо выполнить 2100 числовых вычислений дискриминанта матрицы, а если учесть, что сама это вычисление требует порядка 220 элементарных операций, то общий объем составит порядка 1040 элементарных операций, что для современных компьютеров пока недоступно.
2. Если монофункциональные зависимости еще понятно, как считать на интервальном множестве, то полифункциональные зависимости зачастую даже не понятно, как и считать. Например, как обратить матрицу на интервальном множестве, как осуществлять произведение матриц и многие другие операции становятся непрозрачными и неясными и для них надо каждый раз разрабатывать какую-то свою теорию. Таким образом, создать всю математику на множестве интервалов вряд ли удастся даже теоретически.
3. Возникает и центральный вопрос – а достоверность это хорошо или плохо? Чтобы перевести разговор ближе к практической плоскости, поставим вопрос так – надежность это хорошо или плохо? Например, у вас есть прибор, который имеет гарантию на тысячу лет. Нужен ли вами такой прибор? Ведь такая гарантия надо даром не дается. Надо использоваться высококачественные материалы, использовать высокоточную сборку, изготовление и т.п. Это все затраты. И не лучше ли иметь прибор, имеющий гарантию всего на пять лет, но который дешевле в пять раз? Такими образом надежность, как и достоверность не тот товар, которого «много не бывает». Например, интервал от нуля до бесконечности с абсолютной достоверностью вмещает в себя все результаты любых расчетов. Таким образом, много достоверности также плохо, как и мало. И с этой точки зрения центральный порог «достоверных» вычислений состоит в их слишком высокой достоверности.
Действительно, пусть мы имеем задачу о последовательном сложении и вычитании тысячи чисел с интервалом погрешности 1 мм. Какова будет погрешность результата? В системе «достоверных» вычислений погрешности при сложении и вычитании складываются. Следовательно, погрешность результата будет 1 м. Это означает, что мы рассчитываем самый максимально неблагоприятный случай, когда все частные погрешности складываются самым наинеблагоприятнейшим образом. Но такая вероятность для 1000 чисел, как легко подсчитать по теории вероятностей, ничтожно, а для практики просто исчезающе мала. Но если мы используем эту задачу в практических целях, то «достоверные» вычисления вынуждают нас принимать решения в расчете именно на этот редчайший почти невероятный случай. Т.е. имеем заведомо завышенную достоверность, которая не менее вредна, чем заниженная.
Но и это еще не все. А чему же будет равно среднее в предыдущей задаче? Так как в ней происходит и сложение, и вычитание, то среднее значение результирующего результата может оказаться и 0.1 м. Итак, мы получаем очень забавный результат. Имеем размер 0.1 м с ошибкой 1 м.
4. В основе «достоверных» (интервальных) вычислений лежат обычные числовые (рациональные) вычисления по стандарту IEEE 754. Но ведь эти вычисления недостоверны, как убедительно показано самими творцами «достоверных» вычислений. Как же они могут гарантировать достоверность «достоверных» вычислений, если они основаны на недостоверных? Как недостоверным может быть число, так недостоверным может оказаться и интервал – одна или обе его границы. На недостоверных вычислениях создать достоверные, по крайней мере, гарантировано достоверные – невозможно. Таким образом, мы приходим к странному результату: «достоверные» вычисления обладают либо излишней, завышенной достоверностью, либо никакой. Причем различить эти случаи у нас нет никаких возможностей. Но достоверность, которая иногда может быть недостоверной, не может считаться достоверной. Так что термин «достоверные вычисления» вряд ли корректен.
5. Цель компутинга, естественно, решать практические задачи. Конечно, на нем можно решать и задачи чисто математического характера. Но ясно, что вычислительная технология, претендующая стать базовой для всего компутинга, должна рассчитываться именно на практику. И если с это точки зрения посмотреть на «достоверные» вычисления, то мы увидим, что эта вычислительная технология имеет мало контактов с практическими потребностями. Например, выражение (0.001234568764546, 12468.978000069865755) есть добротный числовой интервал, который вполне может появиться в практике «достоверного» расчета. Но имеет ли такой интервал какой-нибудь смысл в современной практической числовой деятельности? Нет. Ни малейшего. А интервал (1.000, 1.003) вполне может иметь практический смысл. Таким образом, числовые интервалы могут использоваться и используются на практике, но только интервалы особого вида, а отнюдь не любые. Отсюда следует, что интервальная вычислительная технология может использовать числовые интервалы только особого вида, которые имеют практический смысл. Другими словами, она может быть определена только на некотором подмножестве множества числовых интервалов, каковое нужно сначала четко определить и на этом подмножестве создавать вычислительную математику. А интервальное исчисление на полном множестве числовых интервалов просто не нужно никому. Потому и разработка такой вычислительной технологии есть бесполезная и ненужная вещь. И это нынешняя практика демонстрирует в полной мере. Несмотря на призывы сторонников и пропагандистов «достоверной» математики, что-то не очень появляется много желающих использовать ее в своей практической деятельности. И если бы дело шло только об инженерах и бухгалтерах. Увы, даже сами ученые в своей практической деятельности не спешат ее использовать, хотя даже аббревиатура SC (Scientific Computations), присутствующая в интервализированных языках, как бы прямо призывает использовать ее в науке. Увы, нет, реально эта технология за рамки нескольких университетских лабораторий так и не вышла. И мы понимаем, что и не выйдет, что удел этой технологии – стать лишь базой писания диссертаций.
6. Аналогично тому, как звук не является самостоятельным объектом человеческого общения, а таким объектом является слово, так и в числовом пространстве отдельное число становится лишь частью некоторого числового объекта, но самостоятельное значение теряется. В этой технологии отвергается само понятие числа для описания нецелочисленных числовых артефактов – измерений, расчетов и т.п. Для конечного описания этих феноменов в данной вычислительной технологии используется не институция математического числа (не играет роли какого), а институцию математического интервала. Другими словами, эта технология провозглашает, фактически, смерть числа как институции, пригодной для описания числовых феноменов, не могущих быть описанными через целые числа.
Это уже такая революция, которая, фактически, разрывает со всей прошлой числовой культурой. Проведение ее в жизнь чревато буквально полной перестройкой сознания и всей практики. Только представим, что на интервалы мы перевели все цены, все складские записи, все измерения, всю бухгалтерию. Как действовать и принимать решения в такой системе даже непонятно. Если заменить все нецелые числа числовыми интервалами, то это станет крушением устоев всей вычислительной культуры и цивилизации.
Итак, приходим к заключению: Технология «достоверных вычислений», основанная на концепции интервала, сверхзатратна по компьютерным ресурсам, не все задачи в ней имеют прозрачное описание, она одновременно и слишком достоверна и недостоверна, не отвечает потребностям реальной практики, а ее внедрение означает разрыв с многовековой числовой культурой человечества.
Таким образом, интервальное исчисление проблему «рациональной катастрофы» не решает, и мы можем уже говорить о всеобщей вычислительной катастрофе в компутинге.
Итак, компьютерная вычислительная катастрофа есть реальность современного этапа цивилизационного развития. В ее основе лежит неадекватное требованиям практики понятие числа. Попытка перейти от числа к интервалу оказывается ничтожной.
Вычислительная катастрофа выражается в неожиданных сбоях техники, приводящая к авариям и катастрофам. Попытки выяснить их причину, как правило, оказываются безуспешными и приходится сваливать все на «человеческий фактор». Причем наибольшая опасность подстерегает в наиболее современных и продвинутых областях, в сфере использования суперкомпьютеров и суперкомпутинга. Мы можем перечислить только некоторые из последних катастроф и аварий: аквапарк, сбитый украинской ракетой самолет, несколько аварий самолетов в России, неудачи с запуском баллистических ракет и космических кораблей и др. Можем мы быть уверены, что хотя бы в некоторых из них определяющую роль не сыграл именно компьютер? На наш взгляд нельзя даже исключить влияние вычислительной катастрофы на гибель «Курска».
Мы еще раз повторим слова австрийского математика – нахождение внутри сложных сооружений, прогулки по мостам, полеты на самолетах сопряжены…
Сейчас, когда идет обсуждение и даже подготовка новых крупнейших проектов типа полетов к Луне и Марсу, сооружения величайшей плотины на Янцзы, запуск в эксплуатацию. новых лайнеров на 800 человек было бы слишком легкомысленно осуществлять их на нынешней числовой и вычислительной базе. А какую опасность могут представить сбой компьютера на атомных станциях?
Переход к новой числовой эпохе, смена понятия числа есть настоятельная необходимость. И думается, что в этой числовой и вычислительной революций опыт предшествующей числовой эпохи – эпохи приближенного числа – окажет определяющее воздействие [6].
Выход состоит в переходе к новой числовой и вычислительной эпохе – эпохе метрологических чисел и метрологического компутинга. Метрологическое число есть числовой объект, получаемый в результате измерения либо обработкой этих результатов.
Метрологическое число есть число, т.е. элемент, аналогично числу в числовой технологии, а не множество элементов, как в интервальной математике. Но эти числа не являются известными математическими числами, такими, как целое, рациональное или действительное число.
Поэтому метрологические вычисления есть числовые вычисления, а не интервальные. Количество операций при метрологических вычислениях одинаково с таковым же при производстве числовых вычислений. Хотя сами операции могут различаться.
Но с другой стороны каждому вычислительному элементу в метрологической математике может быть сопоставлен некоторый числовой интервал. Более того, каждому числовому интервалу может быть сопоставлено некоторое метрологическое число. Этим самым метрологическая математика сближается с интервальной математикой. Но связь между интервалами и метрологическими числами не является взаимно однозначной, отображение множества числовых интервалов на множество метрологических чисел есть не изоморфизм, а лишь гомоморфизм. На одно метрологическое число может быть отображено множество интервалов. Таким образом, с метрологическим числом можно сопоставить не множество чисел (интервал), а, множество множеств чисел (интервалов).
Таким образом, метрологическая математика объединяет в себе черты нынешней числовой компьютерной вычислительной культуры и системы достоверных (интервальных) вычислений.
Наиболее идейно близка к метрологической математике математика приближенных вычислений, которая была основной вычислительной системой в эпоху ручных вычислений с числами в формате позиционного представления.
Отметим, однако, что разрушение системы приближенных вычислений началось еще до появления компьютеров. Началось оно с появления логарифмической линейки, продолжилось при появлении механических вычислительных машин, и компьютер завершил этот процесс. Но компьютер может и повернуть этот процесс вспять, но уже на более высоком теоретическом и практическом уровне.