Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
my=ps=KSR1=samoilik=13052013.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
744.96 Кб
Скачать

1.4 Вычислительные алгоритмы

Первый тип модели алгоритма основывается на вычислительных алгоритмах. Выберем в качестве числовой функции рекурсивные функции. Тогда в данном типе алгоритмической модели понятие алгоритма будет связано с элементарными вычислительными операциями на множестве целых положительных чисел.

Напомним, что общее определение рекурсии как процесс повторения элеменубратьто общее определение рекурсии как виде блок-схемы.

возврат к старой)и пере00000000000000000000000000000000000000000000000тов самоподобным образом. Например, если два зеркала установить друг напротив друга, то возникающие в них вложенные отражения суть одна из форм бесконечной рекурсии

Рекурсия здесь есть способ вычисления значения числовой функции по известным значениям независимых переменных аргумента и известному значению функции в некоторой исходной точке. Поэтому любую вычислимую функцию, заданную на множестве натуральных чисел и принимающую значения на том же множестве принято называть рекурсивной функцией.

Если значения функции найдены не для всех значений области определения, то её называют частично рекурсивной функцией и, наоборот, если они найдены для всех значений области определения, то её называют общерекурсивной функцией.

Для формального построения функций вычислимых алгоритмом необходимо иметь:

1) набор элементарных функций, которые изначально считаются вычислимыми;

2) набор элементарных операций над функциями, при помощи которых можно строить более сложные вычислимые функции.

Для формирования механизма вычисления рекурсивных функций даны наборы простейших базовых функций: константы, тождества и следования и наборы элементарных операций: суперпозиции, рекурсии, минимизации и итерации.

Рекурсивная функция — это числовая функция f(n) числового аргумента, которая в своей записи содержит себя же. Такая запись позволяет вычислять значения f(n) на основе значений f(n-1),f(n-2),…, подобно рассуждению по индукции. Чтобы вычисление завершалось для любого n, необходимо, чтобы для некоторых n функция была определена нерекурсивно (например, для n=0,1). Этот вид функций определен на множестве натуральных чисел — N (точнее N и 0).

Примитивно рекурсивная функция - определение является индуктивным. Оно состоит из указания класса базовых примитивно рекурсивных функций и двух операторов (суперпозиции и примитивной рекурсии), позволяющих строить новые примитивно рекурсивные функции на основе уже имеющихся.

К числу базовых примитивно рекурсивных функций относятся функции следующих трёх видов:

Функция константа. Если f={(x1, x2,..., xn, у)| xi N, y N}=Cn или y = f(x1, x2,…xn)=Cn, то любым значениям независимых переменных аргумента функции ставится в соответствие значение функции, равное постоянной величине (константе) - Сn, где n –число независимых переменных аргумента. Чаще всего Cn=0. Поэтому её называют также нуль-функцией. Например, если f={(x1, x2, x3, у)}=C3, то для x1 = 5, x2 = 4, x3 = 7 и C3 = 0 имеем у=f(5, 4, 7)=0 или, если Сn=1 при тех же значениях независимых переменных, то y=f(5, 4, 7)=1.

Функция следования. Если f={(x, у)| xi N, y N}=λ(x), то любому значению независимой переменной аргумента ставится в соответствие значение функции, равное числу, непосредственно следующему за числом, являющимся значением независимой переменной. Например, если для f={(x, у)}=λ(x) дано x = 5, то у = (5+1) = 6, если для f={(x, у)}=λ(x) дано x = 7, то у = (7+1) = 8.

Функция тождества. Если f={(x1, x2,..., xn, у)| xi N, y N}= , то любым значениям независимых переменных аргумента функции ставится в соответствие ее значение, равное значению m-го независимого переменного аргумента, где 1≤m≤n – место независимого переменного аргумента в их упорядоченном списке. Поэтому её называют также функцией выбора аргумента. Например, если f={(x1, x2, x3, у)}=I32 , то для x1 = 5, x2 = 4, x3 = 7 имеем у = 4, если f={(x1, x2, x3, у)}=I33 , то для x1 = 5, x2 = 4, x3 = 7 имеем у = 7.

Операции, с помощью которых из простейших базовых функций могут быть получены различные рекурсивные функции, называют элементарными.

В данном случае это операторы подстановки и примитивной рекурсии. Они определяются следующим образом:

Оператор суперпозиции (иногда — оператор подстановки). Пусть   — функция от m переменных, а   — упорядоченный набор функций от   переменных каждая. Тогда результатом суперпозиции функций   в функцию   называется функция   от   переменных, сопоставляющая любому упорядоченному набору   натуральных чисел число

.

Оператор примитивной рекурсии. Пусть   — функция от n переменных, а   — функция от   переменных. Тогда результатом применения оператора примитивной рекурсии к паре функций   и   называется функция   от   переменной вида

; .

В данном определении переменную   можно понимать как счётчик итераций,   — как исходную функцию в начале итерационного процесса, выдающего некую последовательность функций   переменных, начинающуюся с  , и   — как оператор, принимающий на вход   переменных  , номер шага итерации  , функцию   на данном шаге итерации, и возвращающий функцию на следующем шаге итерации.

Множество примитивно рекурсивных функций — это минимальное множество, содержащее все базовые функции и замкнутое относительно указанных операторов подстановки и примитивной рекурсии.

Таким образом, из элементарных функций Сn, Inm и λ(x +1) с помощью операторов суперпозиции и примитивной рекурсии были получены основные функции арифметики, алгебры и анализа. Тем самым было показано, что эти функции имеют примитивно рекурсивное описание, которое однозначно определяет процедуру их вычисления.

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

Частично рекурсивная функция - определяется аналогично примитивно рекурсивной, только к двум операторам суперпозиции и примитивной рекурсии добавляется ещё третий оператор — минимизации аргумента.

Оператор минимизации аргумента или поиск наименьшего корня. Пусть   — функция от n  натуральных переменных. Тогда результатом применения оператора минимума аргумента к функции   называется функция   от   переменной, задаваемая следующим определением:

, при условии  ,

то есть функция   возвращает минимальное значение последнего аргумента функции  , при котором её значение равно 0.

Операция минимизации решает элементарную поисковую задачу: 1) есть функция последовательного порождения значений для y; 2) есть предикат P, истинность которого проверяется. На каждый акт порождения производится проверка предиката. Процесс заканчивается, когда P истина.

При помощи частично-рекурсивных функций можно описать все арифметические операции и организовать вычисление.

Тезис А. Чёрча: Любая интуитивно вычислимая функция является частично-рекурсивной.

Тезис А.Тьюринга: любая интуитивно вычислимая функция является вычислимой по Тьюрингу.

Эти два тезиса являются эквивалентными.

Функции, которые могут быть получены из простейших , λ(x +1), применением конечного числа раз операторов суперпозиции, примитивной рекурсии и минимизации, называются рекурсивными.

Класс рекурсивных функций шире класса примитивно рекурсивных функций хотя бы по тому, что он содержит не только всюду определенные функции. Докажем, например, что функция

является рекурсивной. Действительно, , а ранее было установлено, что функция примитивно рекурсивна.

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

Итак, функция называется примитивно рекурсивной, если она получена из базовых функций с помощью конечного числа операторов суперпозиции и/или примитивной рекурсии. Она же называется рекурсивной, если получена с помощью примитивно рекурсивных функций и конечного числа операторов суперпозиции, примитивной рекурсии и/или минимизации. Иначе говорят так: функции, для которых существуют алгоритмы вычисления, называют рекурсивными функциями. Рекурсивная функция называется частично рекурсивной, если она определена не на всем множестве целых положительных чисел и общерекурсивной, если она определена на всем множестве целых положительных чисел.

Рекурсивные функции отражают наше интуитивное представление о функциях, вычислимых некоторым механическим устройством. В частности, они вычислимы на машинах Тьюринга. Наоборот, всякая функция, вычислимая на машине Тьюринга является рекурсивной.

Общерекурсивная функция — частично рекурсивная функция, определённая для всех значений аргументов. Задача определения того, является ли частично рекурсивная функция с данным описанием общерекурсивной или нет, алгоритмически неразрешима.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]