BC/NW 2017 № 1 (30):12.5
ПРИМЕНЕНИЕ УНИВЕРСАЛЬНЫХ ПРЕДСТАВЛЕНИЙ ЧИСЕЛ ДЛЯ РЕШЕНИЯ ЗАДАЧ ВЫЧИСЛИТЕЛЬНОЙ ГЕОМЕТРИИ
Ермилов С.И., Оцоков Ш.А.
Проблема достоверных вычислений является актуальным направлением в области теоретической информатики вследствие большого объема научных и инженерных задачах [1].
Одной из таких проблем является решение задач вычислительной геометрии, например, построение выпуклой оболочки. Задачи вычислительной геометрии используется в распознавании образов, машинной графике, инженерном проектировании и т. д.
Универсальное представление числа (УПЧ) — это множество объектов {s,e,m,u,es,fs}, где s — знак числа, равный нулю или единице; e — порядок числа со знаком; m — мантисса без знака; u — бит неопределенности; es — размер экспоненты в битах; fs — размер мантиссы в битах.
Введение дополнительных бит расширяет поле возможных значений формата, объединяя в едином формате возможности чисел с плавающей точкой и интервальной арифметики [2]. Арифметические операции определяются в формате с плавающей точкой, но в случае обнаружения округления числа за счет бита округления значение переходит в достоверный интервал, и дальнейшие вычисления ведутся с интервалами. Преимуществом УПЧ является устранение ошибок округления с помощью встроенного механизма интервальной арифметики.
Самым простым методом для построения выпуклой оболочки множества точек является алгоритм быстрой оболочки. Однако алгоритм вычислительно неустойчив из-за недостатков чисел с плавающей точкой, например, при наличии в исходном множестве близких друг к другу точек.
Для оценки результатов используется следующий эксперимент. Сгенерируем множество точек для построения выпуклой оболочки, найдем оболочки тремя способами: на основе чисел с плавающей точкой, интервальной арифметики и УПЧ и сравним полученные результаты с эталонным, вычисленным заранее.
Литература
1. Bailey D.H. High-precision floating-point arithmetic in scientific computation//Computing in science & engineering. 2005. Vol. 7. No 3. С. 54—61.
2. Gustafson J.L. The End of Error. Unum Computing. 2015.
ПРИМЕНЕНИЕ УНИВЕРСАЛЬНЫХ ЧИСЛОВЫХ ПРЕДСТАВЛЕНИЙ ДЛЯ ЗАДАЧ ВЫЧИСЛИТЕЛЬНОЙ ГЕОМЕТРИИ
Ермилов С.И. ВМСС ermilov_s@mail.ru
Виды машинных арифметик
• Целочисленная арифметика
• Формат с плавающей точкой (IEEE 754)
• Интервальная арифметика (IEEE 1788)
• Универсальные числовые представления (Unum)
Недостатки стандарта IEEE 754
• Неравномерное распределение чисел
• Погрешность из-за округления чисел
• Нарушение законов алгебры
• Зависимость от реализации стандарта
Универсальный числовой формат (Unum)
• Знак, порядок, мантисса определяют число с плавающей точкой
• Бит неопределенности: u = 0 - число точное, u = 1 – интервал от текущего значения до след. числа ( a; a + ULP);
• Размер порядка и размер мантиссы используются для автоматического контроля
Универсальный числовой формат (Unum)
Достоинства Unum
• Отсутствие ошибок округления, переполнения и потери значимости
• Покрытие всего множества действительных чисел
• Варьируемая размерность экспоненты и мантиссы ( в перспективе уменьшение пропускной способности памяти и энергопотребления)
Недостатки Unum
• Более сложная логика обработки по сравнению с числами с плавающей точкой
• Переменный размер представляемых чисел ( проблемы с хранением в памяти
Определение выпуклой оболочки
Определение выпуклой оболочки
Алгоритм Грэхема
• Построение В.О. через сравнение углов между точками
• Уязвимое место – определение ориентирования точек.
Алгоритм Грэхема с Unum
• Легко определить некорректность работы алгоритма
• Возможность получения зон «неопределености»
• Автоматический подбор точности
Некорректное построение В.О.
Исходные данные: {{4.0,4.0}, {27.6435643564…, -21.88118811881…}, {73.4158415841…, 8.86138613861…}, {83.3663366336…, 15.54455445544… }}
|
|
Некорректное построение В.О.
|
Корректный результат: X = {p1,p2,p4}. При расчетах с типом double: X = {p1,p2,p3,p4} При расчетах с unum: X = {p1,p2,p4}
|
Заключение
• Числа с плавающей точкой не всегда могут обеспечить достоверность полученных результатов
• Unum позволяет получить достоверные результаты за счет дополнительной логики
• Необходима разработка процессора с поддержкой Unum