stringtranslate.com

Реальная оперативная память

В вычислительной технике, особенно в вычислительной геометрии , реальная оперативная память ( машина с произвольным доступом ) — это математическая модель компьютера, который может выполнять вычисления с точными действительными числами вместо двоичных чисел с фиксированной точкой или плавающей точкой , используемых большинством реальных компьютеров. Реальная оперативная память была сформулирована Майклом Яном Шамосом в его докторской диссертации 1978 года. [1]

Модель

Часть «RAM» в названии модели реальной RAM означает « машина с произвольным доступом ». Это модель вычислений, которая напоминает упрощенную версию стандартной компьютерной архитектуры. Она состоит из сохраненной программы , блока памяти компьютера , состоящего из массива ячеек, и центрального процессора с ограниченным числом регистров . Каждая ячейка памяти или регистр может хранить действительное число. Под управлением программы реальная RAM может передавать действительные числа между памятью и регистрами и выполнять арифметические операции со значениями, сохраненными в регистрах.

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

При анализе алгоритмов для реальной оперативной памяти обычно предполагается, что каждая разрешенная операция занимает постоянное время .

Выполнение

Были разработаны библиотеки программного обеспечения, такие как LEDA , которые позволяют программистам писать компьютерные программы, работающие так, как если бы они работали на реальной оперативной памяти. Эти библиотеки представляют реальные значения с использованием структур данных , которые позволяют им выполнять арифметические действия и сравнения с теми же результатами, которые давала бы настоящая оперативная память. Например, в LEDA реальные числа представлены с использованием типа leda_realданных, который поддерживает корни k -й степени для любого натурального числа k , рациональные операторы и операторы сравнения. [3] Анализ времени базового алгоритма реальной оперативной памяти с использованием этих реальных типов данных можно интерпретировать как подсчет количества библиотечных вызовов, необходимых данному алгоритму. [4]

Сравнение с другими вычислительными моделями

Ссылки

  1. ^ Шамос, Майкл Ян (1978), Вычислительная геометрия , докторская диссертация, Йельский университет.
  2. ^ Шёнхаге, Арнольд (1979), «О мощности машин с произвольным доступом», Труды Шестого международного коллоквиума по автоматам, языкам и программированию (ICALP '79) , Lecture Notes in Computer Science , т. 71, Springer, стр. 520–529, doi :10.1007/3-540-09510-1_42, ISBN 978-3-540-09510-1, МР  0573259.
  3. ^ Мельхорн, Курт; Наэр, Стефан (1999). Платформа LEDA комбинаторных и геометрических вычислений. Cambridge University Press . Получено 12 ноября 2019 г.
  4. ^ Мельхорн, Курт ; Ширра, Стефан (2001), «Точные вычисления с leda_real — теория и геометрические приложения» (PDF) , Символические алгебраические методы и методы проверки (Dagstuhl, 1999) , Springer, стр. 163–172, doi :10.1007/978-3-7091-6280-4_16, ISBN 978-3-211-83593-7, г-н  1832422.
  5. ^ Грётшель, М.; Ловас, Л.; Шрайвер, А. (1981-06-01). «Метод эллипсоида и его последствия в комбинаторной оптимизации». Combinatorica . 1 (2): 169–197. doi :10.1007/BF02579273. ISSN  1439-6912. S2CID  43787103.
  6. ^ Блюм, Ленор ; Шуб, Майк ; Смейл, Стив (1989), «О теории вычислений и сложности над действительными числами: NP-полнота, рекурсивные функции и универсальные машины», Бюллетень Американского математического общества , 21 (1): 1–46, doi : 10.1090/S0273-0979-1989-15750-9 , Zbl  0681.03020.

Внешние ссылки