Аффинная арифметика - Affine arithmetic
Аффинная арифметика (AA) является моделью для самооценка числовой анализ. В AA интересующие количества представлены как аффинные комбинации (аффинные формы) некоторых примитивных переменных, которые обозначают источники неопределенности в данных или приближений, сделанных во время вычислений.
Аффинная арифметика предназначена для улучшения интервальная арифметика (IA) и аналогичен обобщенная интервальная арифметика, первый заказ Арифметика Тейлора, то модель с центральным уклоном, и эллипсоидное исчисление - в том смысле, что это автоматический метод получения гарантированных приближений первого порядка к общим формулам.
Аффинная арифметика потенциально полезна в каждой числовой задаче, где требуются гарантированные вложения для сглаживания функций, таких как решение системы нелинейных уравнений, анализирующих динамические системы, интеграция функции, дифференциальные уравнения и т. д. Приложения включают трассировка лучей, заговор кривые, пересекающиеся скрытый и параметрические поверхности, анализ ошибок (математика), контроль над процессом, анализ наихудшего случая электрические цепи, и больше.
Определение
В аффинной арифметике каждое входное или вычисленное количество Икс представлен формулойкуда известные числа с плавающей запятой, и являются символьными переменными, значения которых, как известно, лежат только в диапазоне [-1, + 1].
Так, например, величина Икс которая, как известно, лежит в диапазоне [3,7], может быть представлена аффинной формой , для некоторых k. Наоборот, форма следует, что соответствующая величина Икс лежит в диапазоне [3,17].
Совместное использование символа среди двух аффинных форм , следует, что соответствующие величины Икс, Y частично зависимы, в том смысле, что их совместный диапазон меньше, чем Декартово произведение их отдельных диапазонов. Например, если и , то отдельные диапазоны Икс и Y равны [2,18] и [13,27], но совместный диапазон пары (Икс,Y) это шестиугольник с углами (2,27), (6,27), (18,19), (18,13), (14,13), (2,21) - что является собственным подмножеством прямоугольник [2,18]×[13,27].
Аффинные арифметические операции
Аффинные формы можно комбинировать со стандартными арифметическими операциями или элементарными функциями для получения гарантированных приближений к формулам.
Аффинные операции
Например, учитывая аффинные формы за Икс и Y, можно получить аффинную форму за Z = Икс + Y просто добавив формы, то есть установив для каждого j. Аналогичным образом можно вычислить аффинную форму за Z = Икс, куда - известная константа, задав для каждого j. Это обобщается на произвольные аффинные операции, такие как Z = Икс + Y + .
Неаффинные операции
Неаффинная операция , как умножение или же , не может быть выполнено точно, так как результат не был бы аффинной формой . В этом случае следует взять подходящую аффинную функцию грамм это приблизительно F до первого порядка в диапазонах, подразумеваемых и ; и вычислить , куда - верхняя граница абсолютной ошибки в этом диапазоне, и это новая символьная переменная, не встречающаяся ни в какой предыдущей форме.
Форма затем дает гарантированное вложение для количества Z; кроме того, аффинные формы совместно обеспечить гарантированное ограждение точки (Икс,Y,...,Z), который часто намного меньше, чем декартово произведение диапазонов отдельных форм.
Объединение операций
Систематическое использование этого метода позволяет заменять произвольные вычисления заданных величин эквивалентными вычислениями их аффинных форм, сохраняя при этом корреляции первого порядка между входом и выходом и гарантируя полное покрытие объединенного диапазона. Просто заменяют каждую арифметическую операцию или вызов элементарной функции в формуле вызовом соответствующей подпрограммы библиотеки AA.
Для гладких функций ошибки аппроксимации на каждом шаге пропорциональны квадрату час2 ширины час входных интервалов. По этой причине аффинная арифметика часто дает гораздо более жесткие границы, чем стандартная интервальная арифметика (ошибки которой пропорциональны час).
Ошибки округления
Чтобы обеспечить гарантированное вложение, аффинные арифметические операции должны учитывать ошибки округления при вычислении результирующих коэффициентов. . Этого нельзя сделать путем округления каждого в определенном направлении, потому что любое такое округление исказит зависимости между аффинными формами, которые разделяют символ . Вместо этого необходимо вычислить верхнюю границу к ошибке округления каждого , и добавьте все эти к коэффициенту нового символа (округления). Таким образом, из-за ошибок округления даже аффинные операции, такие как Z = Икс и Z = Икс + Y добавит дополнительный срок .
Обработка ошибок округления увеличивает сложность кода и время выполнения операций AA. В приложениях, в которых известно, что эти ошибки не важны (поскольку в них преобладают неопределенности во входных данных и / или ошибки линеаризации), можно использовать упрощенную библиотеку AA, которая не реализует контроль ошибок округления.
Модель аффинной проекции
Аффинную арифметику можно рассматривать в матричной форме следующим образом. Позволять быть всеми входными и вычисленными величинами, используемыми в какой-то момент во время вычисления. Аффинные формы для этих величин могут быть представлены одной матрицей коэффициентов А и вектор б, где элемент коэффициент символа в аффинной форме ; и является независимым членом этой формы. Тогда общий диапазон величин, то есть диапазон точки - изображение гиперкуба по аффинному отображению из к определяется .
Диапазон этого аффинного отображения равен зонотоп ограничивая совместный диапазон величин . Таким образом, можно сказать, что AA - это «зонотопическая арифметика». Каждый шаг AA обычно влечет за собой добавление в матрицу еще одной строки и еще одного столбца. А.
Аффинное упрощение формы
Поскольку каждая операция AA обычно создает новый символ , количество членов в аффинной форме может быть пропорционально количеству операций, используемых для его вычисления. Таким образом, часто необходимо применять этапы «уплотнения символов», когда два или более символа заменяются меньшим набором новых символов. Геометрически это означает замену сложного зонотопа п более простым зонотопом Q что его окружает. Эта операция может быть выполнена без нарушения свойства аппроксимации первого порядка конечного зонотопа.
Выполнение
Реализация матрицы
Аффинная арифметика может быть реализована с помощью глобального массива А и глобальный вектор б, как описано выше. Этот подход достаточно адекватен, когда набор величин, которые необходимо вычислить, невелик и известен заранее. При таком подходе программист должен поддерживать внешнее соответствие между индексами строк и интересующими величинами. Глобальные переменные содержат число м аффинных форм (строк), вычисленных на данный момент, и число п используемых символов (столбцов); они автоматически обновляются при каждой операции AA.
Векторная реализация
Как вариант, каждая аффинная форма может быть реализована как отдельный вектор коэффициентов. Этот подход более удобен для программирования, особенно когда есть вызовы библиотечных процедур, которые могут использовать AA внутри. Каждой аффинной форме можно дать мнемоническое имя; он может быть выделен при необходимости, передан процедурам и восстановлен, когда он больше не нужен. Тогда код AA выглядит намного ближе к исходной формуле. Глобальная переменная содержит число п символов, использованных до сих пор.
Реализация разреженного вектора
При довольно длительных вычислениях набор «живых» величин (которые будут использоваться в будущих вычислениях) намного меньше, чем набор всех вычисленных величин; и то же самое для набора "живых" символов . В этой ситуации реализации матрицы и вектора слишком расточительны по времени и пространству.
В таких ситуациях следует использовать редкий выполнение. А именно, каждая аффинная форма хранится в виде списка пар (j,), содержащий только слагаемые с ненулевым коэффициентом . Для эффективности термины следует отсортировать в порядке j. Это представление несколько усложняет операции AA; однако стоимость каждой операции становится пропорциональной количеству ненулевых членов, появляющихся в операндах, вместо общего количества использованных символов.
Это представление, используемое LibAffa.
Рекомендации
- Л. Х. де Фигейредо и Дж. Столфи (2004) "Аффинная арифметика: концепции и приложения". Численные алгоритмы 37 (1–4), 147–158.
- Дж. Л. Д. Комба и Дж. Столфи (1993), "Аффинная арифметика и ее приложения к компьютерной графике". Proc. SIBGRAPI'93 - VI Simpósio Brasileiro de Computação Gráfica e Processamento de Imagens (Ресифи, Бразилия), 9–18.
- Л. Х. де Фигейредо и Дж. Столфи (1996), «Адаптивное перечисление неявных поверхностей с аффинной арифметикой». Форум компьютерной графики, 15 5, 287–296.
- W. Heidrich (1997), "Компиляция аффинных арифметических версий общих математических библиотечных функций". Технический отчет 1997-3, Universität Erlangen-Nürnberg.
- М. Кашиваги (1998), «Алгоритм решения с использованием аффинной арифметики». NOLTA'98 - Международный симпозиум 1998 г. по нелинейной теории и ее приложениям (Кран-Монтана, Швейцария), 14–17.
- Л. Эджизиано, Н. Фемия и Г. Спаньоло (1998), «Новые подходы к истинной оценке наихудшего случая в анализе допусков схемы и чувствительности - Часть II: Расчет внешнего решения с использованием аффинной арифметики». Proc. COMPEL'98 - 6-й семинар по компьютерной силовой электронике (Вилла Эрба, Италия), 19–22.
- В. Гейдрих, Ф. Слусаллек, Х.-П. Зайдель (1998), "Выборка процедурных шейдеров с использованием аффинной арифметики". Транзакции ACM на графике, 17 3, 158–176.
- Ф. Мессин и А. Махфуди (1998), "Использование аффинной арифметики в алгоритмах интервальной оптимизации для решения задач многомерного масштабирования". Proc. SCAN'98 - Международный симпозиум IMACS / GAMM по научным вычислениям, компьютерной арифметике и подтвержденным числам (Будапешт, Венгрия), 22–25.
- А. де Кузатис-младший, Л. Х. Фигейредо и М. Гаттасс (1999), «Интервальные методы для поверхностей, отбрасывающих лучи с аффинной арифметикой». Proc. SIBGRAPI'99 - 12-й Бразильский симпозиум по компьютерной графике и обработке изображений, 65–71.
- К. Бюлер и В. Барт (2000), «Новый алгоритм пересечения параметрических поверхностей на основе линейных интервальных оценок». Proc. SCAN 2000 / Interval 2000 - 9-й международный симпозиум GAMM-IMACS по научным вычислениям, компьютерной арифметике и подтвержденным числам, ???–???.
- И. Войкулеску, Дж. Берхтольд, А. Бойер, Р. Р. Мартин, и К. Чжан (2000), "Интервальная и аффинная арифметика для расположения поверхностей полиномов степенной и бернштейновской формы". Proc. Математика поверхностей IX, 410–423. Спрингер, ISBN 1-85233-358-8.
- Q. Zhang и R.R. Martin (2000), «Полиномиальное вычисление с использованием аффинной арифметики для рисования кривой». Proc. конференции Eurographics UK 2000, 49–56. ISBN 0-9521097-9-4.
- Д. Мичелуччи (2000), "Надежные вычисления для динамических систем". Proc. SCAN 2000 / Interval 2000 - 9-й международный симпозиум GAMM-IMACS по научным вычислениям, компьютерной арифметике и подтвержденным числам, ???–???.
- Н. Фемиа и Г. Спаньоло (2000), «Истинный анализ устойчивости схемы в худшем случае с использованием генетического алгоритма и аффинной арифметики - Часть I». Транзакции IEEE в схемах и системах, 47 9, 1285–1296.
- Р. Мартин, Х. Шу, И. Войкулеску и Г. Ван (2001), "Сравнение методов оболочки Бернштейна и аффинной арифметики для построения алгебраических кривых". Proc. Неопределенность в геометрических вычислениях, 143–154. Kluwer Academic Publishers, ISBN 0-7923-7309-X.
- А. Бойер, Р. Мартин, Х. Шоу и И. Войкулеску (2001), "Аффинные интервалы в геометрическом моделисте CSG". Proc. Неопределенность в геометрических вычислениях, 1–14. Kluwer Academic Publishers, ISBN 0-7923-7309-X.
- Т. Кикучи и М. Кашиваги (2001), «Устранение областей отсутствия решения нелинейных уравнений с помощью аффинной арифметики». Proc. NOLTA'01 - Международный симпозиум по нелинейной теории и ее приложениям 2001 г..
- Т. Мията и М. Кашиваги (2001), «О вычислении диапазона многочленов аффинной арифметики». Proc. NOLTA'01 - Международный симпозиум по нелинейной теории и ее приложениям 2001 г..
- Ю. Канадзава и С. Оиши (2002), «Численный метод доказательства существования решений для нелинейных ОДУ с использованием аффинной арифметики». Proc. SCAN'02 - 10-й международный симпозиум GAMM-IMACS по научным вычислениям, компьютерной арифметике и валидированным числам.
- Х. Шоу, Р. Р. Мартин, И. Войкулеску, А. Бойер и Г. Ван (2002), «Аффинная арифметика в матричной форме для вычисления полиномов и рисования алгебраической кривой». Прогресс естествознания, 12 1, 77–81.
- A. Lemke, L. Hedrich и E. Barke (2002), "Определение размеров аналоговой схемы на основе формальных методов с использованием аффинной арифметики". Proc. ICCAD-2002 - Международная конференция по автоматизированному проектированию, 486–489.
- Ф. Мессин (2002), "Расширения аффинной арифметики: приложение к неограниченной глобальной оптимизации". Журнал универсальных компьютерных наук, 8 11, 992–1015.
- К. Бюлер (2002), "Неявные линейные интервальные оценки". Proc. 18-я Весенняя конференция по компьютерной графике (Будмерице, Словакия), 123–132. ACM Press, ISBN 1-58113-608-0.
- Л. Х. де Фигейредо, Дж. Столфи и Л. Велхо (2003), «Аппроксимация параметрических кривых с помощью ленточных деревьев с использованием аффинной арифметики». Форум компьютерной графики, 22 2, 171–179.
- Ч. Ф. Фанг, Т. Чен и Р. Рутенбар (2003), «Анализ ошибок с плавающей запятой на основе аффинной арифметики». Proc. 2003 Международная конф. по акустике, речи и обработке сигналов.
- А. Пайва, Л. Х. де Фигейредо и Дж. Столфи (2006), «Надежная визуализация странных аттракторов с использованием аффинной арифметики». Компьютеры и графика, 30 6, 1020– 1026.
внешняя ссылка
- [1] Страница Столфи об АА.
- [2] LibAffa, реализация аффинной арифметики в LGPL.
- [3] ASOL, метод ветвей и отсечения для поиска всех решений систем нелинейных уравнений с использованием аффинной арифметики
- [4] YalAA, объектно-ориентированная библиотека шаблонов на основе C ++ для аффинной арифметики (AA).
- кв на GitHub (C ++ библиотека, которая может использовать аффинную арифметику)