Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_dmiml.docx
Скачиваний:
233
Добавлен:
18.02.2016
Размер:
700.15 Кб
Скачать

71. Понятие алгоритма. Основные свойства алгоритмов. Вычислимость.

Под алгоритмом понимается способ преобразования представления информации.

Основные особенности алгоритма:

  • Определенность. Алгоритм разбивается на отдельные шаги (этапы), каждый из которых должен быть простым и локальным.

  • Ввод. Алгоритм имеет некоторое (быть может, равное нулю) число входных данных, т.е. величин, заданных ему до начала работы.

  • Вывод. Алгоритм имеет одну или несколько выходных величин, т. е. величин, имеющих вполне определенное отношение к входным данным.

  • Детерминированность. После выполнение очередного шага алгоритма однозначно определено, что делать на следующем шаге.

Функция f с натуральными аргументами и значениями называется вычислимой, если существует алгоритм, её вычисляющий, то есть такой алгоритм A, что

• если f(n) определено для некоторого натурального n, то алгоритм A останавливается на входе n и печатает f(n);

• если f(n) не определено, то алгоритм A не останавливается на входе n.

Несколько замечаний по поводу этого определения:

1. Понятие вычислимости определяется здесь для частичных функций (областью определения которых является некоторое под множество натурального ряда). Например, нигде не определённая функция вычислима (в качестве A надо взять программу, которая всегда зацикливается).

2. Можно было бы изменить определение, сказав так: «если f(n) не определено, то либо алгоритм A не останавливается, либо останавливается, но ничего не печатает». На самом деле от этого ничего бы не изменилось (вместо того, чтобы останавливаться, ничего не напечатав, алгоритм может зацикливаться).

3. Входами и выходами алгоритмов могут быть не только натуральные числа, но и двоичные строки (слова в алфавите {0, 1}), пары натуральных чисел, конечные последовательности слов и вообще любые, как говорят, «конструктивные объекты». Поэтому аналогичным образом можно определить понятие, скажем, вычислимой функции с двумя натуральными аргументами, значениями которой являются рациональные числа.

72. Рекурсивные функции. Операторы суперпозиции и примитивной рекурсии.

Исходными функциями являются:

1) z(х) = 0 — нуль функция;

2) N(x) = х + 1 — функция следования:

3) Ik(x1,...,xn) = Xk k=1…n. —селекторная функция, (функция выбора аргумента, проектирующая функция)

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

Целочисленные компоненты вводятся как суперпозиции функций z(x) и N(x): N(z(x))=0+1=1 N(N(z(x)))=2

Функцию g(x)=x+z можно записать как:

N(N(I1(x))) = (x+1)+1=x+2

Говорят, что функция n получается применением операции суперпозиции S, функция f,g1,…,gn при этом записывается так:

h= S( f,g1,…,gn) если h(x1,...,xn)= f(g1( x1,...,xn),…, gn( x1,...,xn))

Говорят, что функция f зависящие от h+1 переменной получаются применением оператора примитивной рекурсии R к функция g(xn) и h(xn+1) если f=R(g,h):

1)f(x1,...,xn,0) = g(x1,...,xn)

2) f(x1,...,xn,k+1)=h(x1,...,xn,k,f(x1,...,xn,k)) k=N {0}

В данном случае рекурсия ведется по последней переменной и выражает уже известный способ математической индукции.

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

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