русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Примитивно-рекурсивные функции


Дата добавления: 2013-12-23; просмотров: 2885; Нарушение авторских прав


Лекция № 4. Рекурсивные функции

 

1. Примитивно-рекурсивные функции

2. Частично-рекурсивные и общерекурсивные функции

 

 

С.К.Клини Формализация понятия алгоритма в терминах рекурсивных функций предложена в 1936 году в работах А.Черча (общерекурсивные функции) и работах С.К.Клини (частично рекурсивные функции, 1938). А.Черч

 

Функция непосредственно следующее натуральное число, обозначаемая штрихом, позволяет по числу 0 построить любой начальный отрезок множества натуральных чисел. Обозначения при этом таковы: 0, 0/=1, 0//=1/,=2, …

Функции выбора аргумента определяются равенствами:

Wk(x1,x2, xk,…, xn)=xk (1£k£n).

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

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

1) подстановки функции в функцию;

2) переименовывания переменных;

3) отождествления переменных;

4) исключения переменных замещением их константами.

Пример 4.1.1. Даны функции g(y1,y2), w(x1, x2, x3). Говорят, что функция f(x1, y1, y2, x3)=w(x1, g(y1,y2), x3) построена путем подстановки функции g(y1,y2) в функцию w(x1, x2, x3).

Пример 4.1.2. Даны функции g(t), w(x1, x2, x3). Говорят, что функция f(x1,t,x3)=w(x1, g(t), x3) построена путем переименовывания переменных.

Пример 4.1.3. Даны функции g1(t), g2(t), w(x1, x2, x3). Говорят, что функция f(x1,t)=w(x1, g1(t), g2(t)) построена путем отождествления переменных.

Пример 4.1.4. Дана функция w(x1, x2, x3). Говорят, что функция f(x1,x3)= w(x1, m, x3) построена путем исключения переменных замещением их константами.



Оператор примитивной рекурсии применяется к двум функциям n-1 и n+1 переменных для построения функции n переменных.

Определяющие соотношения оператора примитивной рекурсии записываются так.

1. При n=1 по натуральному числу m и функции двух переменных h(u,v) строится функция одной переменной f(y):

.

2. При n>1 по заданным функциям q(x1, x2, …, xn-1) и h(x1, x2, …, xn+1) строитсяфункция n переменных f(x1, x2, , xn–1, xn):

.

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

Пример 4.1.5. Функция g(x)=x – базисная. Функция h(x1, x2, x3)=x3 / может быть получена применением оператора суперпозиции двух базисных функций x3 / и w(x1, x2, x3)=x3. Исходяиз функций g(x)=x, h(x1, x2, x3) построим функцию двух переменных f(x,y) с применением оператора примитивной рекурсии:

Таким образом, согласно определению эта функция является примитивно рекурсивной. В то же время, исходя из определения функции h(x1,x2,x3) запись функции f(x,y) можно сделать более наглядной:

Или совсем простой – f(x,y)=x+y.

Последнее утверждение проверяется просто:

f(x,0)=x+0=x, f(x,y+1)=x+(y+1)=(x+y)+1= f(x,y)+1=(f(x,y))/.

Фактически в примере 5 мы доказали примитивную рекурсивность функции f(x,y)=x+y.

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

,

А также функций f(x,y)=xy, f(x)=x!.

Определение 4.1.2. Транзитивное замыкание множества базисных функций относительно операторов суперпозиции функций и примитивной рекурсии называется классом примитивно рекурсивных функций.

Определение 4.1.3. Говорят, что функция f(x1,x,2,…xn) получена из функций g(x1,x,2,…xn, z) и a(x1,x,2,…xn) с помощью ограниченного оператора минимизации (ограниченного m-оператора) и обозначают:

f(x1,x,2,…xn)= mz£a[g(x1,x,2,…xn, z)=0],

если f(x1,x,2,…xn)= z£a(x1,x,2,…xn)

тогда и только тогда, когда:

g(x1,x,2,…xn, k)¹0 при k=0, 1, 2, … z–1, и g(x1,x,2,…xn, z)=0.

Теорема 4.1.3. Применение ограниченного m-оператора не выводит из класса примитивно рекурсивных функций.

 



<== предыдущая лекция | следующая лекция ==>
Не распознаваемость самоприменимости машины Тьюринга | Частично-рекурсивные и общерекурсивные функции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.