Операторный алгоритм — последовательность приказов, каждый из которых имеет определённый номер и содержит указания: какую операцию выполнить над заданным объектом и приказ с каким номером следует далее выполнять над результатом данной операции[1]. Понятие ввёл в науку Ван Хао[2].
Приказ
Обычно в качестве объектов используются натуральные числа и для них используются приказы вида:
где:
- номер приказа,
- символ фиксированной одноместной частичной функции,
- номера некоторых приказов. Выполнить данный приказ над числом
- значит найти число
и далее перейти к выполнению над
приказа с номером
; если же
не определено, то перейти к выполнению над числом
приказа с номером
. Результат выполнения приказа над числом
обычно изображают парой
, где
- полученное число,
- номер приказа, который должен выполняться далее над
.
Программа операторного алгоритма
Программой операторного алгоритма называется последовательность приказов вида:
где
- заданные частичные функции,
-
какие-то натуральные числа из последовательности
.
Обработка произвольного числа
согласно указанной программе состоит из следующих шагов:
- Шаг 1. Вычисляем
. Если
определено, то результатом первого шага будет пара чисел
. Если
не определено, то результатом первого шага будет пара чисел
.
....
- Шаг
. Пусть пара
есть результат предыдущего шага. Выполняем над
приказ с номером
, то есть вычисляем
. Если
определено, то результатом
-го шага будет пара чисел
. Если
не определено, то результатом
-го шага будет пара чисел
.
....
Если на
-м шаге получится пара вида
, то по определению на этом процесс обрывается и число
называется результатом переработки числа
согласно программе. Если же пара вида
ни на каком шаге не возникает, то результатом переработки
будет "неопределенное значение".
Свойства
- Для того, чтобы частичная функция
была вычислима с помощью операторного алгоритма, программа которого содержит лишь частично рекурсивные функции
с рекурсивной областью определения, необходимо и достаточно, чтобы
была частично рекурсивной[1].
- Для каждой частично рекурсивные функции
существует операторный алгоритм, программа которого состоит из приказов вида:
где
, для любого
перерабатывающий
в
[1].
Примечания
- 1 2 3 Мальцев А. И. Алгоритмы и рекурсивные функции. — М., Наука, 1986. — с. 291-301
- ↑ Wamg Hao A variant to Turing's theory of computing machines. — J. Assoc. Comp. Mach., 1957, 4, № 1, p. 63-92
- ↑ Колмогоров А. Н., Успенский В. А. К определению алгоритма. - УМН, 1958, 13, № 4, с. 3-28