ПЕРЕЧЕНЬ ССЫЛОК
1. Сташин В.В., Урусов A.B., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. 224 с.
2. Application Note AVR240: 4X4 Keypad-Wake-up on Keypress http://www. atmel. com.
3. Евстифеев A.B. Микроконтроллеры AVR семейства Classic фирмы "ATMEL". М.: Издательский дом "Додэка-XXI", 2002. 288 с.
Надшшла 29.12.2003
Запропоновано ефективний алгоритм обчислення ваговог функцп натиснутог клавгшг, що не потребуе арифме-тичних операцгй, i схема 16-клавгшно1 клавгатури з мгт-малъним числом додаткових елементгв, яка використовуе 5
niniu npocmopy eeody-eueody MiKpoKonmponepa. Knaeiamypy KOHcmpyKmueHO po3Miw,eno na eidcmani 6nu3bKo 300 mm eid 6a3oeoio 6noKa MiKpoKonmponepnoi cucmeMu, w,o Moxe 6ymu euKonanorn na MiKpoKonmponepax pi3nux munie.
An efficient algorithm of calculation of the weight function of a pressed key, which does not require arithmetic operations, and a scheme of a 16-key keyboard with minimum of additional elements, which uses 5 lines of the input-output space of a microcontroller, are suggested. The keyboard is located at a distance of about 300mm from the base block of the microcontroller system and can be combined with different types of microcontrollers.
УДК 004.93
М. Ю. Сенашова
ОЦЕНКИ ПОГРЕШНОСТЕЙ ВЫЧИСЛЕНИЯ СЛОЖНОЙ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ И ЕЕ ГРАДИЕНТА
Описаны графы вычисления сложных функций многих переменных, изложен принцип двойственности для вычисления градиента сложной функции. Изложены алгоритмы оценки погрешностей вычислений функции и ее градиента.
ВВЕДЕНИЕ
Если сложная функция многих переменных пред-ставима в виде суперпозиции функций меньшего числа переменных, можно построить граф, соответствующий этой функции. Тогда вычисление этой функции может быть описано как движение по графу. Рассматривая затем граф как набор элементов, производящих некоторые вычисления над приходящими к ним данными, можно изучать, как ошибки вычислений элементов влияют на ошибки вычислений всей функции.
Для сложной функции, представленной в виде графа можно решать две задачи, относящиеся к оценке точности ее вычислений: прямую и обратную. Под прямой задачей понимается оценка погрешностей вычислений выходных вершин графа, если заданы погрешности входных вершин графа. Заданные погрешности входных вершин пропускаются по графу в прямом направлении. При этом для каждого нового набора погрешностей входных вершин требуется заново вычислять погрешности выходных вершин. Наиболее близки к этой задаче методы оценки погрешностей счетно-решающих устройств на основе аналоговых элементов [1, 2, 3].
Гораздо больший интерес представляет обратная задача. Под обратной задачей понимается оценка допустимых погрешностей вычислений внутренних и входных вершин графа по заданным погрешностям вычислений его выходных вершин. Для решения обратной задачи задается точность, с которой должно вычисляться значение выходной вершины графа. То есть задается интервал, в котором может изменяться значение выходной вершины графа. За-
тем, проходя по графу в обратном направлении, вычисляются интервалы, в которых могут изменяться значения элементов графа. Эти интервалы вычисляются для всех элементов графа вплоть до входных вершин. Для вычислений интервалов изменения погрешностей строится граф, двойственный исходному. Система связей двойственного графа совпадает с системой связей исходного графа, но все элементы заменяются на двойственные, а сигналы передаются в направлении, противоположном движению сигналов в исходном графе. При этом все значения из интервала изменения значений входных вершин графа, при прямом прохождении по графу попадут в интервал изменения значений выходных вершин графа. При решении обратной задачи мы получаем уже не соотношение «конкретный набор погрешностей для входных вершин - конкретная погрешность для выходной вершины», как это происходит при решении прямой задачи, а соотношение «интервалы изменения значений входных вершин - интервал изменения значения выходной вершины».
ГРАФ ВЫЧИСЛЕНИЯ СЛОЖНОЙ ФУНКЦИИ
Рассматривается сложная функция многих переменных Р. Под «сложной» функцией подразумевается, что может быть представлена как суперпозиция некоторого набора «простых» функций от меньшего числа переменных.
Для построения графа, вычисляющего сложную функцию п переменных Р, нужно представить эту функцию в виде суперпозиции функций меньшего числа переменных Функции можно разделить на слои по глубине вхождения в функцию Р. В нулевом слое будут находиться константы и переменные, в первом слое -функции, зависящие от констант и переменных нулевого слоя, во втором слое - функции, зависящие от констант, переменных и функций первого слоя и т. д.
По этим слоям удобно строить граф функции Г. Вершинами графа будут функции /. Если значение вершины / является аргументом вершины /, то они связываются ребром, направленным от вершины / к вершине /\. Таким образом, получаем ориентированный связный граф, соответствующий функции Г. Более подробно построение графа для вычисления сложной функции описано в [4, 5].
С каждой вершиной графа, принадлежащей ненулевому слою, ассоциируется автомат, вычисляющий функцию /. Автоматы срабатывают по слоям в дискретные моменты времени (такты). В начальный момент сформированы значения вершин нулевого слоя - известны значения переменных и констант. Они поступают на входы соответствующих автоматов первого слоя. После к-го такта функционирования определены значения вершин, принадлежащих слоям с 0-го по к-й. На (к+1)-м такте автоматы (к+1)-го слоя вычисляют значения вершин (к+1)-го слоя, получая входные сигналы с предыдущих слоев. В результате вычислений получаем значение функции Г при конкретных значениях вершин нулевого слоя.
ОЦЕНКА ПОГРЕШНОСТЕЙ ВЫЧИСЛЕНИЯ
СЛОЖНОЙ ФУНКЦИИ
Представление сложной функции многих переменных в виде графа удобно еще и для оценки погрешностей вычисления функции, в случае, если аргументы функции имеют погрешности. Для оценки погрешностей вычисления сложной функции нужно построить граф, двойственный исходному графу, вычисляющему значение сложной функции. Этот двойственный граф имеет ту же систему связей, что и исходный, но все элементы исходного графа заменяются на двойственные. Причем сигналы по двойственному графу передаются в направлении, противоположном движению сигналов по исходному графу. Для построения двойственного графа необходимо построить вершины, двойственные вершинам исходного графа. Идея двойственности используется в точности та же, что и в методе обратного распространения ошибки [6]. Отличие состоит в построении двойственных элементов.
Предположим, что заданы значения вершин входного слоя графа и для них вычислены значения вершин внутренних слоев и вершин выходного слоя уоШ. Будем называть эти значения значения вершин внутренних слоев графа, а также значения вершин Уои( точными. Предположим теперь, что нам требуется вычислить значения сложной функции, то есть значения вершин Уои1, с некоторой точностью 8. То есть нужно найти такие допустимые погрешности £ вершин входного слоя уы, что погрешность вершин выходного слоя уоШ не превысит заданную погрешность 8.
Типичным участком графа является вершина с входящими и выходящими ребрами (рис. 1). Поэтому, чтобы иметь представление о вычислении погрешностей на графе, достаточно выяснить, как вычисляются погрешности для такой вершины.
"к
Рисунок 1 — Вершина графа, вычисляющего значение сложной функции
В [7] были получены оценки погрешностей для некоторой вершины / графа. Предположим, что вершина / имеет к входящих ребер и г выходящих ребер.
Поскольку мы строим вершину двойственного графа для оценки погрешностей, структура связей у нас сохраняется, элементы заменяются на двойственные, а сигналы движутся в направлении, противоположном движению сигналов в исходном графе. Поэтому двойственная вершина будет иметь г входящих и к выходящих ребер. Предположим, что вычисленные при обратном распространении допустимые погрешности ребер, входящих в двойственную вершину /', равны £1, £2, • ••,£.. Было показано, что в качестве погрешности вершины /' выбирается
£ — }=1. (1)
Для полученной погрешности вершины £ было показано, что оценка погрешностей выходящих ребер вершины /' вычисляется по формуле:
:<£/£
д Хк )
(2)
Пользуясь формулами (1) и (2), можно оценить погрешности для любой вершины графа при известных погрешностях выходящих ребер. На рис. 2 показана вершина двойственного графа с оценками погрешностей.
Рисунок 2 — Оценки погрешностей для вершины /
При помощи полученных формул можно оценить погрешности только для одного конкретного набора значений вершин V ¡п входного слоя графа. Если задано множество дискретных наборов значений вершин V ¡п, то для оценки погрешностей по всему множеству наборов в целом нужно вычислить погрешности для каждого набора значений V ¡п, а затем для каждой вершины графа выбрать минимум полученных погрешностей.
1=1
£
ГРАФ, ВЫЧИСЛЯЮЩИЙ ГРАДИЕНТ сложной ФУНКЦИИ
В [4, 5] было подробно описано построение графа, вычисляющего градиент сложной функции Г. Напомним вкратце, как строится этот граф. Будем называть граф, вычисляющий значение функции, графом Г, а граф, вычисляющий градиент, графом О. Для того, чтобы построить граф О, нужно внести некоторые изменения в граф Г. К каждой вершине графа Г добавляются дополнительные элементы, вычисляющие частные производные функции /, соответствующей данной вершине, по входам х .. Граф О имеет ту же структуру связей, что и граф Г, но элементы заменяются на двойственные. Точка ветвления графа Г заменяется на сумматор в графе О, вершина графа Г, вычисляющая значение функции /, заменяется точкой ветвления в графе О, и, наконец, дополнительные элементы, вычисляющие частные производные Э//Эхг-, умножаются на сигнал Ц, выходящий из точки ветвления графа О. На рис. 3 показана вершина графа Г и двойственная ей вершина графа О.
Э /ч д,
// д! 2
/ Т('1.'2.....'к)
д// д!„
Цд// Эх,
Вершина графа прямого функционирования
Вершина графа обратного функционирования
по графам. Однако эти графы отличаются элементами и результатами вычисления.
До сих пор мы рассматривали граф, вычисляющий значение функции Г, и граф, вычисляющий ее градиент, как два отдельных самостоятельных графа. Поскольку мы хотим оценивать погрешности вычисления градиента сложной функции, то требуется построить «развернутый» граф. «Развернутый» граф, состоит из графа, вычисляющего значение функции Г и частные производные вершин по их входам, и двойственного ему графа, вычисляющего градиент этой функции (рис. 4).
Граф Р Граф в.
вычисляю- вычисляю-
щий Р эр V , щий
значение эру градиент
функции Р функции Р
ЭР / дг,
ЭР/ дгп
"Развернутый" граф Н
Рисунок 3 — Вершина графа Г, вычисляющего значение сложной функции, и вершина графа О, вычисляющего ее градиент
ОЦЕНКИ ПОГРЕШНОСТЕЙ ВЫЧИСЛЕНИЯ
ГРАДИЕНТА СЛОЖНОЙ ФУНКЦИИ
Мы получили формулы для оценки погрешностей входных сигналов графа, вычисляющего значение сложной функции многих переменных при заданной погрешности его выходного сигнала.
Рассмотрим теперь такую же задачу для графа, вычисляющего градиент сложной функции. То есть нам требуется оценить, какими могут быть погрешности входных вершин графа прямого функционирования, вычисляющего значение сложной функции Г, если заданы допустимые погрешности для выходных вершин графа обратного функционирования, вычисляющего градиент Г, т. е. вычислить допустимые погрешности & переменных х1,...,хп , если заданы допустимые погрешности 5 значений градиента.
Способ построения двойственного графа для оценки погрешностей вычисления сложной функции был описан в п. 3. В п. 4 было описано построение двойственного графа для вычисления градиента сложной функции. Следует различать эти двойственные графы. Как уже говорилось, эти графы имеют одинаковую структуру связей и одинаковое направление прохождения сигналов
Рисунок 4 - «Развернутый граф», состоящий из графа, вычисляющего значение функции Г и графа, вычисляющего градиент этой функции
Как и при вычислении допустимых погрешностей аргументов сложной функции, по заданной погрешности значения самой функции, мы строим граф, двойственный «развернутому» графу. Двойственный граф состоит из двух частей: из графа, двойственного графу Г, и графа, двойственного графу О. Этот граф имеет структуру связей, аналогичную структуре связей «развернутого» графа, но элементы «развернутого» графа заменяются на двойственные и сигналы по двойственному графу двигаются в направлении, противоположном движению сигналов в «развернутом» графе (рис. 5). Как и выше, сигналами двойственного графа являются погрешности сигналов, проходящих по «развернутому» графу.
Для простоты изложения в дальнейшем будем называть «развернутый» граф - графом Н, граф, двойственный графу Н будем называть графом ОН. Граф, двойственный графу О, будем называть графом ОО и граф, двойственный графу Г графом ОГ. Все двойственные графы вычисляют допустимые погрешности для соответствующих графов.
*
* Граф ор, двойственный гр афу р х 5 & \ Граф ов, двойственный _/
Граф ОН. двойственный графу Н
Рисунок 5 — Граф, вычисляющий допустимые погрешности, двойственный «развернутому» графу
г
X
Е
Е
Мы задаем значения входных сигналов 8, графа ПО и вычисляем допустимые погрешности вплоть до выходного сигнала этого графа. Затем на вход графа ПГ подаем погрешность 8 и вычисляем допустимые погрешности проходя по элементам этого графа.
Перейдем к более подробному описанию процедуры вычисления допустимых погрешностей для графа Н. Для этого рассмотрим изображенные на рис. 3 вершину / графа Г и связанную с ней вершину g графа О. Для каждого из элементов этих вершин построим двойственные элементы, вычисляющие допустимые погрешности сигналов, проходящих по этим элементам в прямом направлении.
Входные сигналы графа ОН одновременно являются входными сигналами графа ПО. Поэтому сначала будем строить вершину ~ графа ПО, двойственную вершине графа О. Вершина g состоит из сумматора, точки ветвления и умножителей, умножающих приходящий к ним сигнал на соответствующие частные производные 3/ / /х,. Чтобы построить вершину ~ графа ПО, нужно определить двойственные элементы для всех элементов вершины g. Так как выходящие ребра вершины g относятся к умножителям, то входящие ребра вершины ~ принадлежат элементам, двойственным умножителям. Построим такие элементы. Допустимую погрешность £, приходящую к элементу, двойственному умножителю, нужно распределить между допустимой погрешностью сигнала ц (то есть сигнал ц должен изменяться в интервале [ц - £ц, ц + £ц] и допустимой погрешностью сигнала 3// /х, (то есть сигнал 3/ / 3х, должен изменяться в интервале [э//дх, -£3,д//дх, + £3].Погрешности £ц и £/ должны быть вычислены таким образом, чтобы произведение сигналов ц и д/ / /х, с погрешностями отличалось от точного произведения цц// / 3х, не более, чем на £.
Как было показано в [8], для допустимых погрешностей £ц и £/ справедлива следующая оценка:
£ц\д/дх\ + £дд\ц\ + £/л£дд <£.
Отсюда можем получить формулу для вычисления допустимой погрешности £/:
полученного неравенства, находим значение £ц и затем, используя £ц, можем вычислить £/.
Следующим элементом, для которого необходимо построить двойственный элемент, является точка ветвления. Точка ветвления передает приходящий к ней сигнал ц на умножители. Двойственный точке ветвления элемент, как и в пункте 3, выбирает минимум из допустимых погрешностей, приходящих от элементов, двойственных умножителям:
ц = т™{ц}.
Двойственным элементом к сумматору является точка ветвления. Точка ветвления делит приходящую к ней допустимую погрешность £ц на количество входов сумматора и передает далее полученные величины £ц/ п:
£ =£ц/ п.
Мы построили двойственные элементы, составляющие вершину ~ графа ПО. Построим теперь двойственные элементы вершины / графа ПГ.
Двойственным элементом к точке ветвления, как и выше, является элемент, выбирающий минимум из приходящих к нему допустимых погрешностей:
£ = тт{£ }.
Двойственным к элементу, вычисляющему значение функции /(,х2,...,хп), как было показано выше, является элемент, вычисляющий допустимые погрешности сигналов х1,х2,...,хп по формуле (2).
Далее находятся элементы, выбирающие минимум из приходящих к ним допустимых погрешностей £з частных производных 3/ / 3х, и допустимых погрешностей щ сигналов х,.
£/ <
£-£ц\д/дх\ \ц + £ц
На рис. 6 показаны вершины графов ПГ и ПО, двойственные вершинам графов Г и О, вычисляющие допустимые погрешности.
В этой формуле две неизвестных величины: £3 и £ц. Для того, чтобы вычислить £3, необходимо присвоить £ц какое-либо значение. Представим £ц в виде £ц= к£, где к - некоторый коэффициент. Тогда предыдущая формула принимает вид:
£3 '
-к£// дк,\ Щ + к£
Вынося в числителе множитель £, получаем £(1 - к| //3х, |). Для нас имеет смысл только положительное значение £3, поскольку £3 характеризует длину интервала, в котором может изменяться величина 3/ / 3х,. Поэтому нам нужно, чтобы выполнялось неравенство
1 - к| 33/ / / |> 0, то есть о < к <-.—1—¡-. Выбирая к с учетом
3 //хг\
Вершина графа ВР, двойственная вершине графа Р
Вершина графа во, двойственная вершине графа о
Рисунок 6 — Вершины графа, вычисляющего погрешности градиента
Мы получили формулы, по которым вычисляются допустимые погрешности сигналов на графе ПН. Заметим, что для вычисления допустимых погрешностей сложной функции необходимо, чтобы функциональные символы
£
всех вершин были дифференцируемы. Это условие следует из формулы (2). Для вычисления допустимых погрешностей градиента уже необходимо, чтобы функциональный символ выходной вершины графа F был дважды дифференцируемым. Это опять следует из формулы (2), поскольку эта формула должна применяться к частным производным функционального символа выходной вершины графа F.
Таким образом, мы получили формулы для оценки погрешностей элементов графа, вычисляющего градиент сложной функции многих переменных, если аргументы функции имеют погрешности. Последовательно применяя эти формулы для каждого элемента графа, мы имеем возможность оценить погрешности вычисления градиента сложной функции.
ЗАКЛЮЧЕНИЕ
В работе изложен способ оценки погрешностей вычисления сложной функции многих переменных и ее градиента, если аргументы функции имеют погрешность. Вычисление функции и градиента представлено в виде графа. Это позволяет ускорить процесс вычисления за счет возможности параллельного выполнения вычислений для одного слоя графа. Кроме того, это позволяет легко строить двойственные графы для оценки погрешностей вычисления. Причем на двойственных графах вычисления проводятся так же параллельно.
ПЕРЕЧЕНЬ ССЫЛОК
1. Лебедев A.H., Смолов В.Б. и др. Проектирование и расчет вычислительных машин непрерывного действия / Под ред. Лебедева А.Н. - М.: Машиностроение, 1966.
2. Лебедев A.H. Основы теории точности счетно-решающих устройств, ч. 1. - Л.: Изд. ЛЭТИ им. В.И. Ленина, 1964.
3. Маликов И.М., Половко A.M., Романов H.A., Чукреев П.Л. Основы теории и расчета надежности. - Л.: Судпромгиз, 1960.
4. Горбань A.H., Сенашова М.Ю. Быстрое дифференцирование, двойственность и обратное распространение
ошибок // Вычислительные технологии / Издательство СО РАН. - Новосибирск. 1999. Т. 4. С. 55-68.
5. Сенашова М.Ю. Быстрое дифференцирование сложных функций многих переменных // Радюелектрота, 1нфор-матика, Управлшня / Запорожский государственный технический университет. - Запорожье. 2000. №1. С. 101106.
6. Rummelhart D.E., Hinton G.E., Williams R.J. Learning representations by back-propagating errors. Nature, 1986. V. 323, 533-536.
7. Сенашова М.Ю. Оценки погрешностей вычисления сложной функции многих переменных // Радюелек-трошка, 1нформатика, Управлшня / Запорожский государственный технический университет. - Запорожье. 2001. №2. С. 114-117.
8. Сенашова М.Ю. Погрешности нейронных сетей. Вычисление погрешностей весов синапсов // Методы нейро-информатики: Сб. научн. трудов / Под ред. А.Н. Горбаня; отв. за вып. М.Г. Доррер. Красноярск; КГТУ. - 1998. -С. 48-64.
9. Горбань А.Н. Обучение нейронных сетей. СП ПараГраф, М., 1990.
10. Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. Новосибирск, Наука, 1996.
11. Горбань А.Н., Дунин-Барковский В.Л., Кирдин А.Н. и др. Нейроинформатика. Новосибирск. Наука. 1998.
12. Senashova M. Yu., Gorban A. N., and Wunsch D. Back-Propagation of Accuracy. Proc. IEEE/INNS International Coonfer-ence of Neural Networks, IEEE, USA, 1997, 1998-2001.
13. Калмыков С.А., Шокин Ю.И., Юлдашев З.Х. Методы интервального анализа. Сиб. Отд-ние АН СССР, Новосибирск, 1986.
14. Барцев С.И., Гилев С.Е., Охонин В.А. Принцип двойственности в организации адаптивных систем обработки информации. "Динамика химических и биологических систем", Наука, Новосибирск, 1989, 6-55.
15. Rummelhart D.E., Hinton G.E., Williams R.J. Learning internal representation by error propagation. "Parallel Distributed Processing: Exploration in the Microstructure of Cognition" MA: MIT Press, Greate Britain, 1986. Vol. 1, pp. 318-362.
16. Zurada J. M. Introduction to artificial neural systems. PWS Publishing Company, 1992.
17. Haykin S. Neural networks. A comprehensive foundations. USA, 1994.
Надшшла 10.12.2003 Шсля доробки 03.06.2004
Описано графи обчислення складних функцш багатьох 3Minnux, викладено принцип deoicmocmi для обчислення гра-дieнmа складно'( функцп. Наведено алгоритми ощнювання похибок обчислень функцИ та 'i'i градieнmа.
Graphs are described for the calculation of composite functions of multiple variables, the duality principle for obtaining the gradient of a composite function is presented. Algorithms for the estimation of the computation error of the composite function and of its gradient are described.
УДК 519.859
А. М. Чугай
МЕТОД ПОИСКА ЛОКАЛЬНЫХ ЭКСТРЕМУМОВ В ЗАДАЧЕ УПАКОВКИ ОДИНАКОВЫХ ЦИЛИНДРОВ В МНОГОУГОЛЬНОЙ ПРИЗМЕ С ЗОНАМИ ЗАПРЕТА
Построена математическая моделъ и исследованы особенности задачи. Разработан метод поиска локалъных экстремумов задачи. Поиск включает следующие этапы: построение крайних точек; поиск лучших крайних точек
модифицированным методом сужающихся окрестностей; локалъная оптимизация методом возможных направлений. Для получения крайних точек строится дерево решений. Приведен численный пример.