Скачать презентацию Лекция 4 Рекурсивные функции Опр Пусть заданы Скачать презентацию Лекция 4 Рекурсивные функции Опр Пусть заданы

ТОИ Лек4.ppt

  • Количество слайдов: 22

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

Опр. Пусть заданы два множества X и Y. Если некоторым элементам X поставлены в Опр. Пусть заданы два множества X и Y. Если некоторым элементам X поставлены в соответствие однозначно определенные элементы Y, то говорят, что задана частичная функция из Х в Y (f: X -> Y) •

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

Опр. • Если область определения функции из X в Y совпадает с множеством X, Опр. • Если область определения функции из X в Y совпадает с множеством X, то функция называется всюду определенной

опр Функция у(x 1, х2, . . . , хn) называется (эффективно) вычислимой, если опр Функция у(x 1, х2, . . . , хn) называется (эффективно) вычислимой, если существует алгоритм, позволяющий вычислить ее значение по известным значениям аргументов

Простейшие числовые функции • • • S 1(x) = х + 1 - это Простейшие числовые функции • • • S 1(x) = х + 1 - это одноместная функция следования; 0 n(х1, х2, …, хn) = 0 - это n-местная функция тождественного равенства нулю; Inm (х1, х2, …, хn) = хm (1 ≤ m≤n; n = 1, 2, . . . ) - n-местная функция тождественного повторения значения одного из своих аргументов.

Суперпозиция частичных функций Пусть m-местные функции • f 1(х1, х2, …, хm), f 2(х1, Суперпозиция частичных функций Пусть m-местные функции • f 1(х1, х2, …, хm), f 2(х1, х2, …, хm), …, fn(х1, х2, …, хm) подставляются в nместную функцию g(х1, х2, …, хn). В результате получается n-местная функция • h((х1, х2, …, хn) ) = g(f 1(х1, х2, …, хm), f 2(х1, х2, …, хm), …, fn(х1, х2, …, хm))

Опр. Говорят, что функция h получена из функций g, f 1, . . . Опр. Говорят, что функция h получена из функций g, f 1, . . . , fn суперпозицией (или подстановкой). Обозначение: S(g, f 1, . . . , fn ) Если умеем вычислять функции g, f 1, . . . , fn , то функция h также может быть вычислена.

Пример 1 Найти значение S(S 1, O 1). g(x) = S 1, f (x)= Пример 1 Найти значение S(S 1, O 1). g(x) = S 1, f (x)= O 1 -> h(x) = g(f (x)) = S 1(O 1) Для этого значение простейшей функции О 1 должно быть подставлено в S 1(x) = х + 1. • Но O 1(х) = 0, следовательно, • h(x) = S(S 1, O 1) = S 1(O 1) = 0+1 = 1.

Пример 2 Найти значение S (I 22, I 11 , О 1). В этом Пример 2 Найти значение S (I 22, I 11 , О 1). В этом случае конечная функция будет двуместной (n = 3 - 1 =2), следовательно h(x 1, x 2) = I 22(I 11 , 01) = I 22(x 1, 0) = 0.

Примитивная рекурсия Пусть заданы частичные функции: • g (х1, х2, …, хn) • h(х1, Примитивная рекурсия Пусть заданы частичные функции: • g (х1, х2, …, хn) • h(х1, х2, …, хn, к, y). Говорят, что (n + 1)-местная частичная функция f образуется из функций g и h посредством примитивной рекурсии, если для всех натуральных значений х1, х2, …, хn, у справедливо: f (х1, х2, …, хn, 0) = g(х1, х2, …, хn), f(х1, х2, …, хn, y+1) = h(х1, х2, …, хn, y, f(х1, х2, …, хn, y))

Опр • Частичная функция f (х1, х2, …, хn) называется примитивно рекурсивной, если ее Опр • Частичная функция f (х1, х2, …, хn) называется примитивно рекурсивной, если ее можно получить конечным числом операций суперпозиции и примитивной рекурсии, исходя лишь из простейших функций S 1, On и Inm

Пример 3 Доказать, что двуместная функция f(х, у) = х + у является примитивно-рекурсивной. Пример 3 Доказать, что двуместная функция f(х, у) = х + у является примитивно-рекурсивной. Данная функция может быть представлена: • x+0 = x= I 11(x), • x+(y+ 1) = (х+у)+1 = S 1(x+y). • Следовательно, функция f(x, y) образуется из примитивно рекурсивных функций операцией примитивной рекурсии и, следовательно, она сама примитивно рекурсивна. •

Пример 4 Найти значение функции f(2, 3), если она задана следующими соотношениями: • f(х, Пример 4 Найти значение функции f(2, 3), если она задана следующими соотношениями: • f(х, 0) = 0, • f(x, y+1)=x + f(y, x) В данном случае g(х) = 0, h(x, y, z) = x + z. Так как f(x, 0) = g(х) = 0 при любом х, то и f(2, 0) = 0, а другие значения можно вычислить последовательно: f(2, 1) = h(2, 0, 0) = 2 + 0 = 2; f(2, 2) = h(2, 1, 2) = 2 + 2 = 4; f(2, 3) =h(2, 2, 4) = 2 + 4 = 6. Несложно доказать, что в данном примере f(x, y) = ху

Операция минимизации для функции двух аргументов Пусть задана некоторая функция f(x, y). Зафиксируем значение Операция минимизации для функции двух аргументов Пусть задана некоторая функция f(x, y). Зафиксируем значение x и выясним, при каких у значение f(x, y) = 0. Можно найти наименьшее из тех значений у , при которых f(х, у) = 0. Примем обозначение: • F(х) = μy[f(x, y) = 0] (читается: «наименьшее y такое, что f(x, y) = 0» , a μy называют μ -оператором или оператором минимизации).

Операция минимизации функции многих переменных Пусть задана функция f(х1, х2, …, хn-1, y). Зафиксируем Операция минимизации функции многих переменных Пусть задана функция f(х1, х2, …, хn-1, y). Зафиксируем значения х1, х2, …, хn-1, и выясним, при каких у значение f(х1, х2, …, хn-1 , y) = 0. Можно найти наименьшее из тех значений у, при которых f(х1, х2, …, хn-1 , у) = 0. Примем обозначение: • F(х1, х2, …, хn-1) = μy[f(х1, х2, …, хn-1, y) = 0] (читается: «наименьшее y такое, что f(х1, х2, …, хn-1, y) = 0» ).

функция многих переменных: F( х1, х2, …, хn) = μy[f(х1, х2, …, хn, y) функция многих переменных: F( х1, х2, …, хn) = μy[f(х1, х2, …, хn, y) = 0] Для вычисления функции F: • Вычисляем f(х1, х2, …, хn, 0); если значение равно нулю, то полагаем F (х1, х2, …, хn) = 0. Если f(х1, х2, …, хn, 0) ≠ 0, то переходим к следующему шагу. • Вычисляем f(х1, х2, …, хn, 1); если значение равно нулю, то полагаем F (х1, х2, …, хn) = 1. Если f(х1, х2, …, хn, 1) ≠ 0, то переходим к следующему шагу и т. д. • Если окажется, что для всех y функция f(х1, х2, …, хn, 0) ≠ 0, то функция F (х1, х2, …, хn) считается неопределенной.

Пример 5 Рассмотрим функцию F(x, y) = x - y, которая может быть получена Пример 5 Рассмотрим функцию F(x, y) = x - y, которая может быть получена с помощью оператора минимизации к функции f(x, y, z) = x-y-z: F(x, y) = μz [x-y-z=0 или y + z =x] = μz[ I 23 (x, y, z) + I 33 (x, y, z) = I 13(x, y, z)] Вычислим, например, F(7, 2), т. е. значение функции при y = 2 и х = 7. Будем z придавать последовательные значения: • 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. • Таким образом, найдено значение функции F(7, 2) = 5.

Опр • Частичная функция f(х1, х2, …, хn) называется частично рекурсивной, если ее можно Опр • Частичная функция f(х1, х2, …, хn) называется частично рекурсивной, если ее можно получить конечным числом операций суперпозиции, примитивной рекурсии и минимизации, исходя лишь из простейших функций S 1, On и Imn

тезис Черча Класс алгоритмически вычислимых (частичных) числовых функций совпадает с классом всех частично рекурсивных тезис Черча Класс алгоритмически вычислимых (частичных) числовых функций совпадает с классом всех частично рекурсивных функций.

Контрольные вопросы и задания • • • Для чего необходимо формализовать понятие алгоритма? Что Контрольные вопросы и задания • • • Для чего необходимо формализовать понятие алгоритма? Что означает фраза: «Машины Поста и Тьюринга являются абстрактными машинами» ? Для чего предназначены машины Поста и Тьюринга? Как «устроена» машина Тьюринга? Каков принцип исполнения программы машиной Тьюринга?

Вопросы 1. Дайте определение нормального алгоритма Маркова. 2. В чем состоит принцип нормализации алгоритмов? Вопросы 1. Дайте определение нормального алгоритма Маркова. 2. В чем состоит принцип нормализации алгоритмов? 3. Перечислите простейшие функции. 4. Перечислите операторы. 5. Чем отличается частично рекурсивная функция от примитивно-рекурсивной? 6. Дайте определение частично-рекурсивной функции