Методы нечетких переменных и автоматического дифференцирования в задаче оценки наследственной погрешности вычислений

УДК 519.688

К.К. Семенов МЕТОДЫ НЕЧЕТКИХ ПЕРЕМЕННЫХ И АВТОМАТИЧЕСКОГО ДИФФЕРЕНЦИРОВАНИЯ В ЗАДАЧЕ ОЦЕНКИ НАСЛЕДСТВЕННОЙ ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙ

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

Наследственная погрешность, нечеткие переменные, метод

автоматического дифференцирования.

K.K. Semenov METHODS OF FUZZY VARIABLES AND AUTOMATIC DIFFERENTIATION IN THE PROBLEM OF ESTIMATING GENETIC ERROR CALCULATIONS

This paper considers the problem of estimating

the genetic errorcalculations. The description of the method of solution, which combines two techniques: presentation of computational errors asfuzzy variables, and automatic differentiation of functions,expressed in software code. Shows the advantages of this method for practical use.

Genetic error, fuzzy variables, the method of automatic differentiation.

В практике прикладного программирования часто возникает ситуация, когда в качестве исходных данных для математических вычислений по алгоритму у = f (х1, х2,..., хп), который требуется реализовать программой, выступают неточные данные. Например, вместо точечных значений аргументов х1, х2,..., хп для них известны только интервалы

[х1 -Лх1, х1 + Лх1 ], [х2 - Ах2, х2 + Ах2 ],..., [хп - Ахп, хп + Ахп ] допускаемых значений. В таком случае имеет смысл говорить не о точечном значении результата вычислений у, а об интервале [у -Лу, у + Лу] его возможных значений. Погрешность результата вычислений у, вызванная неточностью исходных данных расчета, принято называть наследственной [1] или трансформированной [2] погрешностью вычислений.

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

Поскольку в большинстве случаев именно результаты математической обработки декларируются как результаты измерений, то характеристики их погрешности должны быть оценены и представлены пользователю в соответствии с Законом РФ «Об обеспечении единства измерений» [4]. Задача оценки наследственной погрешности является одной из главных задач при аттестации программного обеспечения, используемого в метрологии [2].

Существуют различные методы оценки характеристик наследственной погрешности: те или иные модификации интервальной арифметики, оценка с помощью частных производных, имитационное моделирование (методы статистических испытаний), метод на основе теории нечётких переменных. Данные методы обладают как преимуществами, так и недостатками, препятствующими их повсеместному применению. Однако возможна такая комбинация нескольких методов [5], при которой удаётся сочетать их полезные свойства и минимизировать влияние их недостатков.

Общая постановка задачи, решаемой упомянутыми методами, может быть сформулирована следующим образом. Пусть х1, х2,..., хп - входные аргументы программы математической обработки, для которых известны характеристики погрешности (например, х{ являются результатами измерений значений сигналов измерительной информации с известными характеристиками погрешности). Результат вычислений у (например, результат косвенных измерений) определяется в общем случае по алгоритму произвольной сложности у = f (х1, х2,..., хп), представленному программным кодом [6]. Зачастую явный вид функции

у = f (х1, х2,..., хп) даже неизвестен, и аналитический разбор исходного кода программы, реализующей данные вычисления, сильно затруднён для исследователя. Требуется определить характеристики погрешности результата обработки у, если известны характеристики погрешности аргументов х1, х2,..., хп .

Предлагаемая комбинация основывается на классическом способе учёта наследственной погрешности, когда оценка характеристик погрешности осуществляется с помощью частных производных от функции преобразования у = f (х1, х2,..., хп) по входным аргументам.

Функцию у = f (х1, х2,..., хп) для результата у математической обработки можно разложить в ряд Тейлора около точки (х1,х2,...,хп )е Яп и получить точное соотношение для погрешности Лу результата через известные отклонения аргументов Лх;. Поскольку погрешности Лхг-, как правило, малы, то широко распространён метод линеаризации, заключаю-

щийся в отбрасывании всех членов ряда, за исключением линейного. В этом случае получаем, что имеет место приближенное равенство Лу - V (х1, х2,..., хп) • Лх; .

/=1 дх1

На основе данного соотношения получаются оценки наследственной погрешности для разных случаев характера погрешности:

Л у - V

г=1

д I \

—

дх,

•Л* ,

где [- Л х, + Лх ] - пределы допускаемых значений для погрешностей исходных данных, носящих систематический характер, [-Л у, + Л у ] - оценка пределов допускаемой погрешности

результата вычислений и

п

7,2 - V

г=1

( \

—

V

*2,

2 ~ ~ ~ где 7х - оценка дисперсии погрешности исходных данных, имеющей случайный характер, а

7у - оценка дисперсии случайной погрешности результата вычислений.

Вид оценки меняется в зависимости от характера проявления погрешности исходных данных. Обобщенную формулу, объединяющую в себе как частные случаи представленные оценки, можно получить на основе формализации погрешности как нечёткой переменной [7]:

- VдП

I=1 дх1

где Е,х - нечёткая переменная, описывающая характеристики погрешности исходных данных; %у - нечёткая переменная, характеризующая погрешность результата вычислений.

Используя определенный [8] аппарат работы с нечёткими переменными, можно получать характеристику погрешности у в форме [-Л у - к 7у, Лу + к 7у ], где коэффициент к

может быть назначен пользователем. Как правило, к следует выбирать равным 2.0 [9] либо в соответствии с правилом П. В. Новицкого равным 1.6 [10]. При этом:

- характеристики систематической и случайной составляющих погрешности могут быть легко отделены друг от друга;

- все действия с характеристиками погрешности выполняются унифицированным образом вне зависимости от характера погрешности (систематического или случайного);

- результатом применения данного аппарата являются общепринятые в метрологии характеристики погрешности, а именно интервал, описывающий пределы допускаемых значений той или иной составляющей погрешности;

Правила работы с нечёткими переменными, характеризующими погрешность, могут быть редуцированы до правил (1)-(2) и, таким образом, выступают их обобщением.

Важным обстоятельством в пользу применения метода нечетких переменных выступает необходимость привлечения в ряде задач трудно формализуемой информации. Например, в измерительных задачах использование априорной информации экспериментатора об исследуемом им объекте позволяет повысить точность результатов измерений [11]. Однако формализовать эти сведения в терминах теории вероятностей или интервальной арифметики не представляется возможным. Теория нечётких переменных позволяет учесть априорные сведения [11].

Для того, чтобы воспользоваться формулой (3) необходимо указать, каким образом требуется выполнять операцию сложения нечетких переменных и операцию умножения нечёткой переменной на постоянный коэффициент. Данные операции представлены в работе [8].

Основной характеристикой нечеткой переменной , отражающей сведения о величине х{, является её функция принадлежности а = (х;), сопоставляющая каждому воз-

2

можному значению х^ значение меры а , называемой уровнем доверия и в какой-то степени являющаяся субъективным аналогом вероятности. В [12] отмечается, что значение а = /и% (х;) может быть понято как вероятность того, что лицо, принимающее решение, отнесет значение х^ к множеству значений ^ .

Для рассматриваемого применения теории нечётких переменных необходимо, чтобы для всех аргументов расчёта соответствующие им функции принадлежности (хг-) имели вид

exp

exp

, при xi < -А x

(xi +А Xi )2

г) 2

2  s

1, при - Аx < xi < А

2  s2

при xi > АX

как это показано на рис. 1, а арифметические операции выполнялись по алгебраическому правилу работы с нечеткими переменными:

если n = £ o^2, где знак «о » обозначает произвольную арифметическую операцию, то нечеткой переменной n должна быть поставлена в соответствие функция принадлежности А, (У) = sup ]//, (Х!)• jUz2 {х2)}.

X10X2=У

При выполнении данных требований достигаются заявленные выше свойства. Функция ц (х;) полностью описывается двумя параметрами: величинами Ах и я , которые при конструировании функции

принадлежности определяются по имеющимся сведениям о характеристиках погрешности величины хі. В

качестве А х необходимо брать предел допускаемых

значений для систематической составляющей погрешности Хі , а величина я выбирается таким образом, чтобы интервал, образуемый пересечением прямой а = а0 с функцией ц (х;), имел ширину

[- Ах - к • ах, Ах + к ах ], где к и а0 задаются

(например, соответственно 2.0 и 0.05).

В формуле (3) осталось нераскрытым, каким образом получать значения частных производных д/

т

ш

1

А

і *Г— >

2- %

Рис. 1. Необходимый вид функции принадлежности

для выраженной нечёткой переменной ^ погрешности исходных данных х^

dx;

(x1.

X1, x2,..., x,

) от функции У = f (x1,

X„ x2,..., X

) , представленной программным кодом.

Чаще всего в этом случае прибегают к методу конечных разностей. Однако его результаты всегда носят приближенный характер и требуют проверки адекватности полученных результатов.

Функция у = /(х1, х2,..., хп) в силу того, что выражена программным кодом, подразумевает аналитическую запись и соответственно аналитическую запись для любой частной производной. Однако соответствующее исследование, доставляющее точное значение производной, как отмечалось выше, весьма трудоёмко. Желательно по возможности выполнить его автоматически. Достаточно давно известен метод [13], позволяющий вместе со значением одновременно получать точные значения любой частной производной.

x

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

Таким образом, фактическое выполнение расчётов сводится к вычислению значения сложной функции у = / (# 2 (...^п (х1, х2,..., хп)...), х1, х2,..., хп), х1, х2,..., хп), начинающееся

вычислением значения уп = gn(х1, х2,...,хп), продолжая вычислениями уп-1 = £п-1(;уп,х1,х2,...,хп),

Уп-2 = gn-2 (Уп-1, х1, х2,..., хп) и так далее. В то же время значение частной производной

-д— (х1, х2,..., хп) этой сложной функции может быть вычислено по цепному правилу:

Эх,

in- (Уп , x1> x2> •••> xn ) = dgn (Уп > x1> x2> •••> xn ) ,

n l 2 n

dx, ox,

dgT=L (Уп, x1> x2> •••> xn) = dgn-1 (Уп, x1> x2> •••> xn)'dgn (x1> x2> •••> xn) + dgn-L (Уп, x1, x2, •••, xn) , dxi дУп dxi dxi

-dgn=2 (Уп-1, x1, x2 ’ •••’ xn ) = ^T-2 (Уп-1> x1> x2 ’ •••’ xn )'dgn=L (x1 x2 ’ •••’ xn ) + dgn=2(Уп-l, x1, x2 — xn ) dxt дУп-1 dxt dxi

и так далее^ Здесь символом обозначена полная частная производная по аргументу x, •

dx,

На каждом шаге текущая функция у j = g j (у j-1, x1, x2, •••, xn) зависит от интересующей нас переменной xi непосредственно и опосредованным образом через вычисленное на предыдущем шаге значение у -1 • Существует возможность j-ый шаг вычисления сложной функции сопроводить вычислением значения частной производной функции gn-j по заранее маркированной переменной xi •

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

f1 (x,)±лu))=f (x,)±|^и), ^(.f1 (x,)fx)) = |1(x). f2(x)+ /1 (x,)'f(x,),

dx, ox, ox, ox, ox, ox,

f f ( )Л f (xi )' f2 (xi )-f1 (xi )'f (xi ) d

I f1 (xi )| = xi xi , ---(sin(x, )) = cos(x. ),

dx

V f 2 (xi )) f 2 (xi ) ’ dxi

— (cos(x,)) = - sin(x,), — (exp (x,)) = exp (x,) и так далее^

ox, 3x;

В качестве иллюстрации рассмотрим пример. Пусть у = /(х1, х2) = х1 • со8(х1 + х2) - х2.

, (х,, х2

йх1

с приведенными выше формулами:

Требуется автоматически вычислить значение производной (х1, х2). Тогда в соответствии

йх1

У 4 = g 4 (xl, x2 ) = x1 + x2 , ^ -g± (Xl, x2 ) = 1 + 0,

dx1

-g 4

-g 3

У3 = g 3 (У 4, Xl, x2 ) = cos( У4 ), ^ -3 (xl, x2 ) = - sin( У4 )+ °

dx1

У 2 = g 2 (У3, X1, x2 ) = x1 ' Уз ^ (-gL (xl, x2 )= x1 ' (X1, x2 )+ У3 '1,

dx1 dx1

У1 = g1 (У 2 , X1, x2 )= У2 - x2 ^ (xl, x2 ) = -Т2 (X1, x2 )+ ^

dx1 dx1

Итого по завершению расчетов получаем:

df

y = x1  cos(x1 + x2)- x2 и —(x1, x2 ) = x1  (- sin(x1 + x2))+cos(x1 + x2 ) •

dx1

Таким образом, суть метода заключается в том, что происходит замена вычислений с числами с плавающей точкой на такие же вычисления, но с новым типом данных (например, dual), хранящим как промежуточное значение текущей операции, так и промежуточное значение частной производной этой операции Из этого следует, что изменения в исходном коде программы, которые необходимо внести, чтобы реализовать автоматическое дифференцирование, заключаются лишь в подключении программной библиотеки, содержащей правила работы с указанным новым типом dual, и смене типов данных в объявлении переменных^ Таким образом, имеет место важное преимущество метода автоматического дифференцирования: его можно реализовать, не меняя порядка вычислений в программе^

В итоге к концу работы программы будем иметь как точное значение результата самих вычислений y = f (x1, x2,^, xn), так и точные вплоть до ошибок округлений значение

df ( \ частных производных-------(x1, x2 ,•••, xn) •

dxi

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

ЛИТЕРАТУРА

L Желнов ЮА^ Точностные характеристики управляющих вычислительных машин / ЮА^ Желнов^ Мл Энергоатомиздат, 1983^

2^ Слаев В А^ Аттестация программного обеспечения, используемого в метрологии: справочная книга / АХ^ Чуновкина, ВА^ Слаев : под ред^ В^ А^ Слаева^ СПбл Изд-во «Профессионал», 2009^

3^ Солопченко Г^Н Принципы метрологического автосопровождения вычислений в компьютерных измерительных информационных технологиях / Г^Н Солопченко // SCM’99: сб^ докл^ II междунар^ конф^ ТЛ^ СШл СПбГЭТУ, 1999^

4^ Солопченко Г^Н Обязательные требования к программному обеспечению компьютерных измерительных информационных технологий / Г^Н Солопченко // SCM-2000: Сб^ докл^ междунар^ конф^ СПбл СпбГЭТУ, 2000^

5^ Семенов К^К Теоретические предпосылки реализации метрологического автосопровождения программ обработки результатов измерений / КК Семенов, Г^Н Солопченко // Измерительная техника^ 2010^ № 6^ С 9-14^

6^ Крейнович В„Я Оценка погрешности результата косвенных измерений с помощью вычислительного эксперимента / В„Я Крейнович, МЖ Павлович // Измерительная техника 1985^ № 3^ С,11^ 7^ Солопченко Г^Н Представление измеряемых величин и погрешностей измерений как нечетких переменных / Г^Н Солопченко // Измерительная техника^ 2007^ № 2^ С 3;

8^ Семенов КК Аппарат нечетких переменных в задаче метрологического автосопровождения вычислений / КК Семенов // XXXVIII неделя науки СПбГПУ: Матер^ Всерос межвуз^ науч^-техн конф^ студентов и аспирантов^ СПбл Изд-во Политеха ун-та, 2009^

9^ Why two sigma? A theoretical justification / X Nguen Hung е^ // Soft Computing in Measurement and Information Acquisition Berlin, Heidelberg: Springer-Verlag, 2003^ 10-22^

10^ Новицкий ПЗ^ Оценка погрешностей результатов измерений / ПЗ^ Новицкий, ИА^ Зограф Лл Энергоатомиздат, 1991

1L Резник Л^К Математическое обеспечение обработки нечеткой информации экспериментатора в ИВК / Л^К Резник // Архитектура, модели и программное обеспечение ИИС и ИВК: труды ВНИИЭП Л/. ВНИИЭП, 1983^

12^ Обработка нечеткой информации в системах принятия решений / Борисов А^Н и др^ Мл Радио и связь, 1989^

13^ Griewank A^ On Automatic Differentiation / A^ Griewank // Mathematical Programming: Recent Developments and Applications / Ed^ M^ Iri, K Tanabe^ Kluwer Academic Publisher, 1989^ P^ 83-108^

Семенов Константин Константинович -

ассистент, аспирант кафедры «Измерительные информационные технологии» Санкт-Петербургского государственного политехнического университета, младший научный сотрудник филиала ОАО «26 ЦНИИ»

Статья поступила в редакцию 6.07.11, принята к опубликованию 9.11.11