Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_IVT.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
11.58 Mб
Скачать
  1. Формализация понятия алгоритма. Рекурсивные функции.

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

-возможно более строгое определение алгоритма, его свойства;

-изучение теоретических моделей алгоритмов и исследование проблемы алгоритмической разрешимости.

Цели формализации: 1. решение проблемы алгоритмической разрешимости различных математических задач, т.е. получение ответа на вопрос, существует ли алгоритм решения указанного класса задач. 2. определение элементарного шага алгоритма. 3. выбор наиболее эффективного алгоритма из нескольких возможных с теоретической и практической точек зрения

Два класса задач

1. вычисление значений функций. Функция называется вычислимой, если существует алгоритм, вычисляющий ее значение.

2. распознавание принадлежности объекта заданному множеству. Множество называется разрешимым, если имеется алгоритм, позволяющий для любого объекта определить, принадлежит он данному множеству или нет.

Тезис Черча-Тьюринга. Любое разумное определение алгоритма, которое может быть предложено в будущем, окажется эквивалентным уже известным определениям.

Рекурсивные функции. Пусть заданы два множества X и Y. Если некоторым элементам X поставлены в соответствие однозначно определенные элементы Y, то говорят, что задана частичная функция из Х в Y (f: X -> Y). Совокупность тех элементов множества X, у которых есть соответствующие элементы в Y, называется областью определения функции, а совокупность элементов Y, называют областью значений функции. Если область определения функции из X в Y совпадает с множеством X, то функция называется всюду определенной. Функция у(x1, х2, ..., хn) называется (эффективно) вычислимой, если существует алгоритм, позволяющий вычислить ее значение по известным значениям аргументов.

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

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

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

Если умеем вычислять функции g, f1,..., fn , то функция h также может быть вычислена.

Пример. Найти значение S(S1, O1).

g(x) = S1, f (x)= O1 -> h(x) = g(f (x)) = S1(O1)

Для этого значение простейшей функции О1 должно быть подставлено в S1(x) = х + 1.

  • Но O1(х) = 0, следовательно,

  • h(x) = S(S1, O1) = S1(O1) = 0+1 = 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) называется примитивно рекурсивной, если ее можно получить конечным числом операций суперпозиции и примитивной рекурсии, исходя лишь из простейших функций S1, On и Imn.

Операция минимизации для функции двух аргументов

Пусть задана некоторая функция 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). Зафиксируем значения х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) = 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) считается неопределенной.

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

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

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