Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1курс / 2 сем / МЛиТА / лекции (сборник през / МАТ_ЛОГИКА_ЛЕК_7—_копия_—_копия_—_копия_—_копия_—_копия_—_копия.pptx
Скачиваний:
7
Добавлен:
09.07.2024
Размер:
2.87 Mб
Скачать

Алгоритмы

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

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

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

Алгоритмы

Из простейших функций можно строить новые функции

напр. используем принцип суперпозиции и функцию следования, получим

s(s (x) )= (x+1) +1 =x+2

Алгоритмы

Итак имеем три механизма (оператора ) с помощью которых можно из базисных функций построить более сложные функции :

1.Принцип суперпозиции

2.Принцип примитивной рекурсии.

3.Принцип минимизации

Рекурсивные функции

Операторы получения более сложных функций:

1.Введение вспомагательной фиктивной переменной

2.Принцип суперпозиции

Ф(X)= f (g(X)) 3. Итерация Ф(0)=С -базис

Ф(x+1)=f (x, Ф(x))- реккурентное (возвратное )соотношение, шаг индукции.

Алгоритмы

Пр

Рассмотрим пример получения функций , полученную с помощью оператора минимизации.

d(x, k)=μ z[ k+z=x]=μ z[s( (x,k,z), (x, k, z))=(x,k,z) Вычислим напр.

d(7,2)

Т.е. нам напр. надо узнать число шагов d , которое должно быть минимально

Пусть k=2 и будем вычислять формулу с z=0

z=0 ,

2+0=2 7

z=1 ,

2+1=3 7

z=2,

2+2=4 7

Алгоритмы

z=3 , 2+3=5 7 z=4 , 2+4=6 7 z=5 , 2+5=7 Т.о.

d(7,2)=5

Алгоритмы

Вычислимость по Тьюрингу частично рекурсивных функций.

Если функция f(x,k) правильно вычислима на машине Тьюринга, то и функция φ(x)=

μz[f(x,k)=0] , получающаяся с помощью оператора минимизации из функции f(x, k), также правильно вычислима на машине Тьюринга.

Алгоритмы

Любую примитивно-рекурсивную функцию можно вычислить с помощью цикла с использованием оператора for.(т.к. верхнюю границу можно указать заранее).

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

Пр.

Введение фиктивных переменных.

Если g(x1,x3) -примитивно-рекурсивная функция и f(x1,x2,x3) =g(x1,x3), то f(x1,x2,x3)- примитивно- рекурсивная функция.

Алгоритмы

Пр.

Сложение двух чисел

Эта функция является ощерекурсивной в силу примитивной рекурсии

Sum (x,0)=x

Sum (x, z+1)=S(Sum(x,z))=Sum(x,z)+1 Пр.

Перестановка переменных

Если g(x1,x2)- примитивно-рекурсивная функция и f(x2,x1)=g(x1,x2), то f также примитивно- рекурсивная функция.