КОМПЬЮТЕРНАЯ СИСТЕМА ДЛЯ ХРАНЕНИЯ БЕСКОНЕЧНЫХ, БЕСКОНЕЧНО МАЛЫХ И КОНЕЧНЫХ ВЕЛИЧИН И ВЫПОЛНЕНИЯ С НИМИ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ
COMPUTER SYSTEM FOR STORAGE OF INFINITE, INFINITELY LOW AND FINITE VALUES AND ARITHMETICAL OPERATIONS WITH THEM

ОБЛАСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение описывает новый тип компьютера, который способен выполнять арифметические операции с бесконечными, бесконечно малыми и конечными числами.
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Проблемы, связанные с идеей бесконечности, являются одними из самых фундаментальных. Они привлекали внимание самых блестящих мыслителей всей истории человечества. Были предприняты многочисленные попытки развить существующие системы исчисления таким образом, чтобы включить в них бесконечные и бесконечно малые числа. Такие выдающиеся ученые, как Аристотель, Архимед, Эвклид, Евдокс, Парменид, Платон, Пифагор, Зенон, Кантор, Дедекинд, Декарт, Лейбниц, Ньютон, Пеано, Коэн, Фреге, Гельфонд, Гедель, Робинсон и Гильберт, работали над этими проблемами. Чтобы подчеркнуть важность данной темы, достаточно упомянуть, что Континуум гипотеза, относящаяся к бесконечности, была включена Давидом Гильбертом как проблема номер один в его знаменитый список из 23 нерешенных математических проблем, который сильно повлиял на развитие математики в ХХ-м веке.
Принятая в настоящее время точка зрения на бесконечность основана на идеях Георга Кантора, который показал, что существуют бесконечные множества, имеющие разное количество элементов. В частности, он показал, что бесконечное множество натуральных чисел, N, имеет меньше элементов, чем множество R вещественных чисел. Существуют различные способы распространить арифметику конечных чисел на случай бесконечных чисел. Тем не менее, арифметики, разработанные для бесконечных чисел, отличаются от арифметики, с которой мы привыкли иметь дело (см. примеры в [1]). Более того, очень часто мы оставляем неопределенными многие операции, в которых присутствуют бесконечные числа (например, бесконечность минус бесконечность, бесконечность поделить на бесконечность, сумма бесконечного числа слагаемых и т.д.), или используем представление бесконечных чисел, основанное на бесконечной последовательности конечных чисел. Эти решающие сложности не позволяют людям сконструировать компьютер, который позволил бы работать с бесконечными и бесконечно малыми числами так же, как мы привыкли работать с конечными вещественными числами.
Действительно, современные компьютеры позволяют производить арифметические операции только с конечными числами или в интервалах, пределами которых являются конечные числа (см., например, [2]). Традиционные вещественные числа могут быть представлены в компьютерных системах различными способами. Многие из них используют позиционные системы счисления с конечным основанием b. При этом нумерал - это символ или группа символов, которые представляют собой число. Разница между нумералами и числами такая же, как и разница между словами и тем, что они обозначают. Число - это понятие, которое выражено нумералом. Одно и то же число может быть выражено разными нумералами. Например, символы '3', 'три' и 'III' - это разные нумералы, но они представляют собой одно и то же число.
В позиционной системе счисления дробные числа выражаются следующей записью:
i
где нумералы a, -q≤i≤n, называемые цифрами, принадлежат алфавиту {0,1,…,b-1}, и точка используется для того, чтобы отделить дробную часть от целой. Таким образом, значение нумерала (1) равно сумме
В современных компьютерах для представления чисел в основном используются основание b=2 и алфавит {0,1}. Существует много способов представления и хранения чисел в компьютерах. В частности, представление в виде числа с плавающей запятой выражает число в виде четырех частей: знак, мантисса, основание и экспонента. Знак может быть 1 или -1. Мантисса, всегда положительное число, содержит значимые цифры в числе с плавающей запятой. Экспонента содержит положительную или отрицательную степень, в которую возводится основание и на которую затем умножаются мантисса и знак.
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В данном изобретении мы описываем новый тип компьютера - компьютер бесконечности, который способен работать с бесконечными, бесконечно малыми и конечными числами таким образом, что становится возможным выполнять обычные арифметические операции со всеми этими числами. Для нового компьютера показывается, как организована память для хранения этих чисел и как работает новое арифметико-логическое устройство (НАЛУ) для выполнения арифметических операций.
Чтобы описать компьютер бесконечности, который способен работать с бесконечными, бесконечно малыми и конечными числами, мы будем действовать следующим образом. Во-первых, мы введем новую позиционную систему с бесконечным основанием, которая позволит нам записывать не только конечные, но также и бесконечные и бесконечно малые числа. Во-вторых, мы опишем арифметические операции для всех этих чисел. В-третьих, мы опишем, как организована память компьютера для хранения этих чисел. В-четвертых, мы опишем новое арифметико-логическое устройство НАЛУ для работы с бесконечными, бесконечно малыми и конечными числами.
Бесконечное основание новой позиционной системы счисления вводится в виде бесконечного числа , которое определяется следующими аксиомами:
(i) Для любого конечного натурального числа n выполняется условие n<.
(ii) Следующие отношения связывают  с элементами 0 и 1
(iii) Для любого конечного натурального n число  определено как n-я часть .
Примерами математических объектов, которые можно взять в качестве , могут быть следующие: количество элементов множества натуральных чисел (см. [1]), количество элементов множества целых чисел, количество элементов множества нечетных чисел. Следует заметить, что аксиомы (i)-(iii), добавленные к аксиомам вещественных чисел, описывают класс новых математических объектов, который позволяет рассматривать процесс работы с бесконечными числами, отличающийся от традиционного, в котором ∞+∞=∞. Теории, в которых ∞+∞≠∞, изучаются в области математики, называемой нестандартным анализом.
Для того чтобы описать нашу арифметику, мы будем предполагать в дальнейшем без потери общности, что  - это число элементов множества натуральных чисел. Тогда, по аксиоме (iii) число  определяется как число элементов n-й части множества N натуральных чисел, где его n-я. часть определена следующим образом:
Важно подчеркнуть, что для того чтобы ввести , мы не пытаемся сосчитать элементы k,k+n,k+2n,k+3n,… Действительно, мы не не можем этого сделать, так как наши возможности счета ограничены, и поэтому мы не можем считать до бесконечности. Напротив, мы постулируем (аналогично ситуации, которая имеет место с конечными числами), что бесконечное количество элементов n-й части множества, т.е. , - это в n раз меньше, чем количество элементов всего множества . Необходимо также отметить, что, так как  был введен как число элементов множества, это целое число. Подобная аксиоматизация означает, например, что множества четных и нечетных чисел имеют  элементов, и множество натуральных чисел N, будучи объединением этих двух множеств, имеет  элементов.
2
Аксиомы (i)-(iii) добавлены к аксиомам вещественных чисел, и поэтому можно оперировать с  как с обычным конечным числом. Например, можно определить следующие бесконечные числа, которые могут быть также определены в терминах множества конечных чисел: -2 определен как количество элементов множества натуральных чисел, N, из которого взяты любые два числа; +3 как число элементов множества N∪{a,b,c}, где номера a,b,c∉N; и  как число элементов множества N×N.
2
2
Числа, полученные подобным образом, можно расположить по порядку. В нашем примере -2<<+3<. Докажем, например, что <. Мы можем написать разницу
2
2
По аксиоме (i)  больше любого натурального конечного числа, поэтому >1, и, следовательно, -1>0. Из этого неравенства и из (4) следует, что число - является положительным, и поэтому >.
Чтобы написать бесконечные и бесконечно малые числа, мы будем использовать запись, сходную с (1) и (2), но с некоторыми особенностями. Чтобы построить число С в новой позиционной системе счисления с основанием , мы поделим С на группы в соответствии со степеням :
Тогда запись
i
i
i
i
0
-i
представляет собой число С, символы с называются бесконечными гроссцифрами, символы p - гроссстепенями. Числа p таковы, что p>0, р=0, p<0, и
i
i
1
-1
i
244.5
-32
В традиционной записи (1)существует негласная договоренность, что цифра а показывает, сколько в числе степеней b, и основание b не написано явным образом. В записи (6) мы явно пишем , потому что в новой позиционной системе счисления число i обычно не равно гроссстепени p. Это дает возможность писать, например, такие числа, как 73, где p=244.5, р=-32.
0
0
0
0
0
0
0
Конечные числа в этой новой системе счисления представлены нумералами, у которых единственная гроссстепень равна нулю. Действительно, если у нас есть число С, такое, что m=k=0 в записи (6), тогда по (3) С=с=c. Таким образом, число С в данном случае не содержит бесконечных элементов и равно гроссцифре с, которая, будучи обычным конечным числом, может быть выражена в форме (1), (2) в любой позиционной системе с конечным основанием b (или в любой другой системе счисления). Важно подчеркнуть, что гроссцифра c может быть целой или дробной и может быть записана несколькими символами в отличие от традиционной записи (1), в которой каждая цифра является целым числом и записывается только одним символом из алфавита {0,1,2,…,b-1}. Таким образом, гроссцифра с показывает, сколько в числе С содержится конечных элементов и/или частей конечных элементов 1=. Гроссцифры могут быть записаны в позиционных системах в форме , где р и q - это целые числа, или в любой другой конечной системе счисления.
i
По аналогии, в общем случае все гроссцифры с, -k≤i≤m, могут быть целыми или дробными и выражены несколькими символами. Например, число  имеет гроссцифры  и . Все гроссцифры показывают, сколько в числе С имеется соответствующих элементов, и не важно, конечные это элементы или бесконечные.
244.5
-32
74
0
-2
-15
В описываемой системе счисления бесконечные числа записываются как нумералы, имеющие гроссстепени больше нуля, например, 73и -233711 - это бесконечные числа. В следующем примере левая часть выражения представляет собой способ записи бесконечных чисел, а правая часть показывает, как считается значение числа:
14
3
-6
14
3
-6
1517.204552.1=15+17.2045+52.1.
0
0
14
14
0
0
0
Если гроссстепень , равна 1, тогда мы напишем , а не . По аналогии, если степень  является самой низкой в числе, тогда мы часто будем использовать просто соответствующую гроссцифру с без , например, мы напишем 235, а не 235, или 3, а не 3.
Нумералы, имеющие только негативные гроссстепени, представляют собой бесконечно малые числа. Самое простое число из этой группы - это , которое является обратным элементом для  по отношению к операции умножения:
-32
-2
-15
Необходимо заметить, что все бесконечно малые числа не равны нулю. Обратные элементы более сложных чисел, включая гроссстепени , определяются абсолютно аналогично. Следующие два числа представляют собой примеры бесконечно малых чисел 3, 3711.
Вышеприведенные примеры показывают, как мы можем записывать бесконечные числа, в которых все гроссстепени являются конечными числами. Посмотрим, как можно выразить число, включающее бесконечные гроссцифры. Число
имеет m=2, k=1, и следующие гроссцифры
2
1
-1
c=-14, c=0.5+3, c=-4.5,
2
1
-1
где c - конечное число, а с,с - бесконечные. Запись (8) является правильной, но не очень элегантной, потому что основание системы  появляется в выражениях гроссцифер. Чтобы преодолеть эту неприятность и ввести более простую структуру бесконечных нумералов, мы напишем число (8) в явной форме (5)
-1
0
Затем мы откроем скобки, соберем вместе элементы, имеющие одну и ту же степень  (учитывая, что =), и в итоге получим
i
Из записи (9) видно, что в ней нет бесконечных гроссцифер, но есть негативные гроссцифры. Так как запись (8), использующая бесконечные гроссцифры (называемая в дальнейшем запись типа 1), является достаточно громоздкой, введем понятие конечной гроссцифры, которая является конечным числом с, выраженным конечным числом символов в некоторой системе счисления и показывающим, сколько бесконечных элементов типа , -k≤i≤m, необходимо добавить или вычесть, чтобы получить бесконечные числа. Запись (9), использующая конечные гроссцифры, называется записью типа 2 и, так как она является более гибкой, чем запись типа 1, будет в основном использована в дальнейшем для записи бесконечных чисел.
Введем арифметические операции с бесконечными, бесконечно малыми и конечными числами, которые будут выполняться бесконечным компьютером. Операция сложения двух данных бесконечных чисел А и В дает в результате бесконечное число С, построенное следующим образом (операция вычитания является прямым следствием операции сложения и потому будет опущена). Числа А, В и их сумма С представлены записью типа 2:
i
j
j
i
i
j
i
Тогда результат С строится (см. Пример 1) путем включения в него всех слагаемых  из А таких, что k≠m, 1≤j≤М, и всех слагаемых  из В таких, что m≠k, 1≤i≤К. Если в А и В есть такие слагаемые, что k=m для некоторых i и j, тогда эта гроссстепень k включаются в С с гроссцифрой , т.е. как . Из данного определения, определения гроссцифр и того факта, что сложение каждой гроссстепени  выполняется отдельно, следует, что введенная операция обладает обычными свойствами коммутативности и ассоциативности.
Операция умножения двух данных бесконечных чисел А и В из (10) дает в результате бесконечное число С, построенное следующим образом (см. Пример 2).
Как и в случае сложения, введенная операция умножения обладает свойствами коммутативности и ассоциативности. Легко доказать, что свойство дистрибутивности также выполняется для этих операций.
В операции деления данного бесконечного числа С на бесконечное число В получается бесконечное число А и остаток R, который может также быть равен нулю, т.е. С=А·B+R.
K
Число А строится следующим образом (см. Пример 3). Числа В и С представлены в форме (10). Первая гроссцифра  и соответствующий максимальный показатель степени k определяются из равенств
1
Тогда первый частичный остаток R рассчитывается следующим образом:
1
1
K-i
i+1
L
i
i
Если R≠0, тогда число С заменяется числом R, и процесс повторяется по полной аналогии. Гроссцифра , соответствующая степень k и частичный остаток R высчитываются по формулам (14) и (15), полученным из (12) и (13) следующим образом: l и  заменяются наибольшей гроссстепенью n и соответствующей гроссцифрой  частичного остатка R, который в свою очередь заменяет С:
Процесс останавливается, когда найден частичный остаток, равный нулю (это означает, что конечный остаток R=0), или когда достигнута требуемая точность результата.
Итак, мы готовы представить компьютер бесконечности. Он отличается от традиционных компьютеров способностью хранить и обрабатывать бесконечные, бесконечно малые и конечные числа. Мы начнем с описания, как устроено его устройство памяти.
Компьютер бесконечности имеет специальную память для хранения бесконечных, бесконечно малых и конечных чисел, в которой действуют правила хранения для следующих трех видов объектов: (i) для основания  бесконечной позиционной системы; (ii) для гроссцифр; (iii) для гроссстепеней. В дальнейшем мы предполагаем, что компьютер бесконечности работает в двоичной системе представления гроссцифр и гроссстепеней, однако все сказанное действует и для компьютерных систем, использующих любое основание для хранения конечных чисел.
Основание  бесконечной позиционной системы не хранится. Его значение (например, допущение, что  - это число элементов множества четных чисел или число элементов множества натуральных чисел) - это условность для реализации и использования бесконечного компьютера.
Каждое бесконечное, бесконечно малое или конечное число
i
i
представляется множеством из 2L регистров для хранения гроссцифр и гроссстепеней. Каждая i-я часть , 1≤i≤L, числа С представлена двумя регистрами (например, с плавающей точкой с одинарной или более высокой точностью): первая - для гроссцифры с, а вторая - для гроссстепени р. Регистры, представляющие части  числа С, связаны ссылками. Если число С содержит m положительных гроссстепеней, k отрицательных гроссстепеней и гроссстепень, равную нулю, тогда L регистров, используемых для хранения гроссцифр, связаны с L соответствующими регистрами, используемыми для хранения гроссстепеней: m для гроссцифр, соответствующих положительным гроссстепеням, k - соответствующих отрицательным гроссстепеням, и один регистр, соответствующий гроссстепени, равной нулю, если таковая есть в числе.
i
Если гроссстепень р сама является бесконечным числом А, тогда регистр этой гроссстепени содержит ссылку на адрес, где сохранено число А таким же образом, что и число С. Если число А в свою очередь содержит бесконечную гроссстепень
1
1
A, тогда регистр, соответствующий этой гроссстепени, связывается ссылкой с адресом, где хранится число А. Полученные цепи ссылок заканчиваются, когда найдены все конечные гроссстепени. Используя терминологию структуры данных, можно сказать, что, в конечном итоге, число С представлено деревом, в котором ветвями служат ссылки, а листьями - гроссстепени и гроссцифры. Пример такой структуры данных представлен на чертеже.
i
i
i
i
Запись типа 2 для написания бесконечных чисел (см. определение на стр.10) гарантирует, что все гроссцифры являются конечными. В случае записи типа 1 (см. определение на стр.10) не только гроссстепени p, но также и гроссцифры с могут быть бесконечными числами. Если у нас имеется подобный случай и если гроссцифра с является бесконечным числом B, тогда регистр с имеет ссылку па адрес, где хранится число В таким же образом, как и число С.
Бесконечно малые числа хранятся аналогичным образом. Единственным отличием от бесконечных чисел является тот факт, что бесконечно малые числа не содержат гроссстепеней, которые больше или равны нулю. Конечные числа хранятся так же, но они содержат только одну гроссцифру, соответствующую гроссстепени, равной нулю. Другие гроссцифры и гроссстепени отсутствуют в записи, и поэтому достаточно двух регистров для хранения конечных чисел: первый содержит гроссцифру, а второй, ответственный за соответствующую гроссстепень, содержит ноль.
Г

Г
В традиционных компьютерах каждое число r представлено строкой цифр, и максимальная длина этой строки, разрешенная компьютером, ставит границы для представления чисел, т.е., минимальное и максимальное абсолютные значения γ и Г, такие, что γ≤|r|≤Г. В компьютерах бесконечности только конечные гроссцифры и гроссстепени, будучи листами на дереве структуры данных, представлены строками цифр, и поэтому для них тоже выполняется γ≤|r|≤Г. Тем не менее, если необходимо выразить, например, значение, большее чем Г, достаточно заменить конечное значение Г в позиции гроссстепени на бесконечное число, например на . Тогда, так как >Г, новое число Г>Г. В целом, когда необходимо получить большие или меньшие значения, строки, представляющие конечные гроссцифры и гроссстепени, могут быть заменены ссылками на новые бесконечные (или бесконечно малые) числа.
В каждой конкретной технической реализации компьютера бесконечности мы можем представить только некоторое конечное число М бесконечных, бесконечно малых и конечных чисел. Число М может быть увеличено путем увеличения памяти компьютера или длины строки символов для представления конечных гроссцифр и гроссстепеней.
Чтобы производить арифметические операции с бесконечными, бесконечно малыми и конечными числами, компьютер бесконечности использует новое арифметико-логическое устройство (НАЛУ), которое отличается от подобного устройства в классических компьютерах. НАЛУ работает с числами в форме (16) для выполнения арифметических операций, введенных выше. Оно состоит из устройства управления (УУ), внутреннего устройства памяти (ВУП) для хранения промежуточных результатов и традиционных арифметико-логических устройств (ТАЛУ), работающих в качестве низкоуровневых инструментальных средств внутри НАЛУ и выполняющих обычные арифметические операции только с конечными числами.
В течение каждой арифметической операции НАЛУ считывает числа (16) из внешней памяти в свою ВУП. Затем оно разбивает операнды на конечные гроссцифры и соответствующие конечные гроссстепени, используя, если необходимо, цепи ссылок, ведущих к последним конечным числам (см. описание устройства памяти выше). После этого НАЛУ считает промежуточные результаты и конечный результат в соответствии с введенными операциями: сложение и вычитание по формуле (10), умножение по (10), (11), деление по (10), (12)-(15). Чтобы выполнить эти операции с бесконечными, бесконечно малыми и конечными числами, НАЛУ использует ТАЛУ следующим образом.
Устройство управления посылает операнды (т.е. конечные гроссцифры и гроссстепени), полученные в результате разбиения, в ТАЛУ и сообщает им, какие стандартные низкоуровневые операции (т.е. операции сложения, вычитания, умножения или деления со стандартными конечными операндами) должны быть выполнены с отправленными операндами, чтобы совершить требуемые операции (10)-(15). Когда ТАЛУ вычислит результат требуемой операции, оно посылает его обратно в устройство управления, которое принимает результат и записывает его в соответствующий регистр ВУП (т.е. как гроссцифру или гроссстепень) бесконечного числа. Этот процесс передачи информации между устройством управления, ВУП и ТАЛУ продолжается до тех пор, пока в ВУП не будут собраны все гроссцифры и гроссстепени бесконечного числа-результата. Затем, если полученное число является окончательным результатом, НАЛУ сохраняет его во внешней памяти, в противном случае оно используется как промежуточный результат для последующих вычислений.
i
Когда ТАЛУ вычисляют результаты арифметических операций с конечными числами, могут произойти две следующие особые операции. Во-первых, ТАЛУ может получить ноль как значение гроссцифры, т.е. а=0 для элемента . Тогда устройство управления не сохраняет соответствующий элемент . Во-вторых, во время вычисления конечных гроссцифр или гроссстепеней может произойти исчезновение или переполнение значащих разрядов. В этом случае устройство управления посылает пользователю сообщение, описывающее случившееся, и пользователь (или компилятор) принимает решение о действиях в данной ситуации.
Введенная новая память и НАЛУ могут использоваться различными способами в компьютерных системах с разной архитектурой, например, в следующих формах: компьютеры с одним процессором, параллельные компьютеры, распределенные вычислительные системы, квантовые компьютеры с одним процессором, параллельные и распределенные квантовые компьютеры.
ОПИСАНИЕ ЧЕРТЕЖА
Чертеж показывает дерево структуры данных, представляющее следующее бесконечное число
15
-1.5
Это число имеет 3 части, т.е. L=L(C)=3 в форме (16). Первая гроссцифра - это 5, и она соответствует гроссстепени 4(-16) , являющейся бесконечным числом, которое мы назовем А. Так как А - это бесконечное число, в памяти есть ссылка на его месторасположение, которая показана на чертеже стрелкой →. В свою очередь, А состоит из двух частей, т.е. L(A)=2, и все его гроссцифры и гроссстепени являются конечными числами. Символ ⌀ показывает, что в представлении числа нет других ссылок. Стрелка связывает первую часть числа С со второй.
6
-2
У второй части, -2, числа С как гроссцифра, так и гроссстепень являются конечными, и они хранятся в соответствующих регистрах. Третья часть, , числа С имеет ссылку на свою бесконечную гроссстепень 7, которая, в свою очередь, имеет конечные гроссцифру и гроссстепень.
ПРИМЕРЫ
1. Сложение. В целях упрощения презентации для написания гроссцифр будет использовано основание b=10. Мы рассматриваем два бесконечных числа А и В, где
Их сумма С вычисляется следующим образом:
2. Умножение. Мы берем два бесконечных числа
1
и вычисляем их произведение С=В·А. Первое частичное произведение C равно
2
3
Оставшиеся два частичных произведения C и С считаются аналогично:
3
2
2
3
Наконец, учитывая, что гроссстепени  и  принадлежат как к С, так и к С, и поэтому необходимо сложить соответствующие гроссцифры, произведение С равно (из-за своей длины число С написано в две строчки)
3
0
-3
3
3. Деление. В первом примере мы поделим число С=-101642на число В=57. Для этих чисел мы имеем
1
Из (12) следует, что . Первый частичный остаток Rвычисляется следующим образом:
1
По полной аналогии мы можем построить  переписав (12) для R. Таким образом, мы получаем равенства
и, в результате, . Второй частичный остаток равен
2
0
-3
Таким образом, мы можем заключить, что остаток R=R=0, и окончательный результат деления - это А=-26.
3
Заменим гроссцифру 42 на 40 в С и поделим это новое число  на то же самое число В=57. Эта операция даст нам тот же результат  (где нижний индекс 2 означает, что было получено два частичных остатка), но с остатком . Таким образом, мы получаем . Если мы хотим продолжить процедуру деления, мы получим  с остатком . Естественно, . Процесс продолжается до тех пор, пока не найден частичный остаток , или пока не достигнута требуемая точность результата.
Литература
[1] Ya.D.Sergeyev, Arithmetic of infinity, Edizioni Orizzonti Meridionali, CS, 2003.
[2] G.W.Walster, Method and apparatus for representing arithmetic intervals with a computer system, US Patent 6,658,443 B1, 2003.