Архивы: по дате | по разделам | по авторам

Культ карго, дифференцирование и математические модели

Архив
автор : АНДРЕЙ КОЛЕСОВ    30.06.1997

 

Появление этих заметок связано с публикацией в "Компьютерре" #22 от 2 июня 1997 года статьи преподобного Михаила Ваннаха "Компьютеры и культ карго". В ней есть немало интересных сведений и размышлений, но все же после прочтения у меня создалось впечатление, что сам автор из-за не совсем верного представления о компьютерной теории попал в какой-то степени под действие этого самого культа карго. В первую очередь бросились в глаза явные передержки автора в отношении "дифференцирования" и математических аспектов прогнозирования. К сожалению, примечание редакции ""Шумный" компьютер" по этому поводу также не расставило точки над i.

Цифровая и аналоговая техника

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

Мы сейчас довольно редко имеем дело с ABM (аналоговые вычислительные машины), поэтому, возможно, будет полезно вспомнить некоторые их принципиальные отличия от ЦВМ (цифровые).

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

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

С увеличением сложности математической задачи объем аппаратуры АВМ растет, по крайней мере, линейно, а ЦВМ - остается неизменным. Но скорость получения решения на АВМ очень слабо зависит от сложности задачи (условно говоря, решение получается мгновенно), а на ЦВМ - весьма существенно. Однако при этом следует иметь в виду, что реальный цикл решения задачи определяется не только самими вычислениями: есть еще ввод программы (АВМ - коммутация схемы; ЦВМ - чтение файла с диска), подготовка и ввод данных (установка напряжений; ввод файла) и пр. Здесь АВМ явно отстает от ЦВМ.

Результатом является то, что аналоговые вычислители уже давно потеряли актуальность в качестве универсальных ЭВМ. Это произошло естественным образом еще в 60-х годах по мере роста производительности ЦВМ и снижения их стоимости. Реально АВМ сейчас используются только при решении относительно простых задач, для которых жесткая аппаратная реализация является вполне допустимой. Примером такого рода задач является и простейший спидометр, и схема управления зениткой по данным радиолокационных наблюдений: один раз проектируется, "зашивается" и работает пока не выбросят. При этом постоянное вытеснение аналоговых устройств цифровыми является совершенно отчетливой тенденцией.

Что касается точности вычислений, то здесь ситуация выглядит следующим образом. АВМ изначально имеют ограниченную точность, так как она определяется точностью как параметров физических компонент модели (например, сопротивлений и емкостей), так и приборов - измерительных и задающих исходные величины. В АВМ используются прецизионные компоненты (от 1 до 0,001% погрешности), но погрешность конечных результатов крайне редко опускается ниже 1-10%. Впрочем, этого бывает вполне достаточно для решения многих практических задач.

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

Еще один примечательный момент: в ЦВМ высокая точность вычислений достигается на аппаратуре, характеризующейся минимальными требованиями к качеству электронных компонентов (имеется в виду допустимый разброс их параметров). Например, в цифровых схемах используются компоненты с погрешностью в 10-30%, что никак не влияет на правильность работы всего устройства, благодаря использованию механизма переключателей типа "да/нет" с достаточно большим допуском по уровню сигналов (например, для 5-вольтовых ТТЛ-схем уровень сигналов находится в диапазоне: логический "ноль" - 3,5-5В, "единица" - 0-1,5 В). Именно это лежит в основе создания цифровых интегральных микросхем, в которых каждый транзистор имеет значительный разброс параметров, а проводить отбраковку негодных уже нет возможности.

Дифференцирование и математические модели

Конечно, проблема округления (которую почему-то автор решил назвать "компьютерным шумом) имеет место быть. Но она не является сколь-нибудь первоочередной в решении вычислительных задач на компьютере, хотя бы потому, что там можно эмулировать данные любой точности. Для абсолютного большинства задач вполне достаточно обычного формата данных с плавающей запятой (диапазон данных от 1E+38 до 1E-38, мантисса - 7 десятичных знаков). В случае необходимости можно использовать числа с двойной точностью (от 1E+308 до 1E-308, мантисса - 16 знаков). Более высокая точность нужна только для совершенно уникальных задач - например, астрономических расчетов, - поэтому таких форматов данных в стандартных системах программирования обычно просто нет. Кроме того, ситуацию с исчезновением порядка (например, при выполнении операции "1E+30 + 1E-30") можно контролировать аппаратным (на мэйнфреймах) или программным (на Фортране) образом.

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

Реальные проблемы возникают в случае использования итерационных приближенных методов при решении различных уравнений, для которых отсутствуют решения в аналитическом виде. Особенно ярко это проявляется при работе с широким классом задач дифференциальных уравнений. (Обратите внимание - процедура их решения называется "интегрирование").

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

(В своем комментарии Олег Татарников не уточнил высказывание о том, что "часто для таких задач традиционные методы вообще не работают на компьютерах". Возможно, он имел в виду прямые методы решения систем линейных уравнений - типа метода Гаусса. Действительно, они являются довольно критичными к разрядности данных. Но основная проблема заключается в том, что для этих методов объем вычислений растет в квадратичной зависимости от числа уравнений, а для приближенных - в линейной. Именно поэтому при большом числе уравнений предпочтительными оказываются последние.)

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

О пользе теоретических схем

Я полностью согласен с тезисом (правда, не прозвучавшим в явном виде) в статье Михаила Ваннаха о том, что обладание компьютером само по себе не решит проблем пользователя. Компьютер может быть полезен лишь постольку, поскольку мы представляем его реальные возможности и правильным образом его применяем. (см. врезку о Механетисе). Другое дело, что работа с компьютером является мощным стимулом к тому, чтобы глубже понять, чего же мы хотим на самом деле.

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

В связи с этим нужно четко сказать: проблема использования компьютера для успешной игры на бирже заключается не в том, что он плохо дифференцирует, а в том, что нет математической модели, которая могла бы решать эту задачу. На самом деле метод экстраполяции временных рядов дает весьма приблизительный прогноз. Более того, эти методы реально работают только в "ненарушенных условиях", то есть когда можно предполагать, что условия, влияющие на развитие процесса, не будут резко меняться. Для экономики это явно не подходит. Посмотрите на графики доходности акций Cyrix, AMD и Intel: разве по данным 1992-95 годов можно было предположить провал первых двух компаний в 1996 году?

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

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

На самом же деле, на бизнес конкретной фирмы влияет очень много факторов (в том числе в виде конкурентов). В частности, рост прибыли Intel в 1996 году был предопределен еще тремя-четырьмя годами ранее - благодаря огромным инвестициям в НИОКР и новые производственные мощности. А провал Cyrix и AMD можно было также предугадать: лужайка 486-х уже увяла, а к выходу на поле 586-х они оказались явно не готовы.

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

Заключение таково: не надо делать из компьютера культа, но при этом полезно помнить высказывание кого-то из великих: "Нет ничего практичнее, чем хорошая теория".

Таблица. Доходность акций, долл.

Компания19921993199419951996
Cyrix0,491,061,880,75-1,33
AMD2,492,242,922,81-0,51
Intel 1,242,602,624,035,81


 

Механетис

Из книги "Физики продолжают шутить", конец 60-х годов: "Механетис - профессиональное заболевание тех, кто считает, что решение задачи, постановку которой они не могут даже сформулировать, может быть легко получено, если в их распоряжении будет достаточно мощная ЭВМ".


 

Мое знакомство с АВМ

Первое знакомство с АВМ на уровне теории и курса лабораторных работ я получил в МИФИ в середине 70-х годов, а на практике мне пришлось столкнуться в 80-м, когда я попал в лабораторию моделирования геофильтрационных процессов. Эти модели описываются сложными дифференциальными уравнениями, и для их решения в лаборатории использовался некий электрический интегратор (не помню его названия). Это был здоровенный шкаф размером 4х2,5х1,5 м, в котором находилось коммутационное поле и куча каких-то реле, источников питания, проводов и пр. В отдельных шкафах лежали груды сопротивлений и емкостей разных номиналов.

Сотрудники лаборатории еще раньше начали также использовать расчеты на ЦВМ (арендовалось машинное время), но 80-й год стал решающим: в институте вводилась в эксплуатация первая собственная EC-1022, а в лаборатории - единственная в институте СМ-1. Тем не менее в конце 1980 года мне удалось стать свидетелем использования интегратора. Почти неделю два или три сотрудника выполняли расчет электрических параметров модели. Потом в течение двух недель они проводили коммутацию и настройку интегратора. Само решение-вычисление произошло быстро - в момент включения рубильника. Но съемка полученных результатов заняла еще пару дней. Затем считался новый вариант - корректировка параметров, запись результатов (еще два-три дня) и т.д.

Одновременно я в тестовом режиме решал ту же задачу на СМ-1 (32 Кбайт оперативной памяти), для которой уже написал соответствующую программу. Решение одного вариант занимало 3-40 мин. (модель была очень чувствительна к исходным данным). Коррекция исходных данных для одного варианта и распечатка результатов требовали еще 10-15 минут. Сравнение результатов расчетов на интеграторе и СМ-1 выявило несколько ошибок в программе, но еще больше - ошибок при коммутации и замерах данных на интеграторе. Через пару недель таких параллельных расчетов, начлаб приказал выключить интегратор и продолжать расчеты только на СМ-1.

Уже через год работы на ЕС и СМ ЭВМ нам было даже как-то неловко вспоминать примитивность математической модели, которая была пределом для того интегратора. Но списали и выкинули его только через пять лет, когда переезжали в другое помещение (все это время на "протирку контактов" интегратора ежемесячно выписывалось по пять литров спирта).

© ООО "Компьютерра-Онлайн", 1997-2023
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.