- •1.Перечислите и поясните основные этапы полного построения алгоритмов.
- •6. Программная реализация алгоритма.
- •4.Сформулируйте основные определения абстрактного алфавита (алфавит, слово алфавита, расширение алфавита, алфавитный оператор).
- •7.Дайте определение алгоритма, его особенности.
- •13.Свойства и виды алгоритмов и соотношение между ними.
- •14.Интерпретации и модели.
- •15.Семантическая и формальная непротиворечивость.
- •1) «Условие – действие», т.Е. Если построенные объекты удовлетворяют некоторым условиям, то для построений нового объекта нужно выполнить такое-то действие;
- •Первая теорема о неполноте
- •22. Интуитивное понятие алгоритма. Требования к алгоритмам.
- •23. Формализация понятия алгоритма и универсальные алгоритмические модели.
- •24.Машина Тьюринга - основные определения. Понятие вычислимости на машине Тьюринга.
- •25.Операции над машинами Тьюринга. Универсальная машина Тьюринга.
- •26.Понятие алгоритмической неразрешимости. Теорема Райса.
- •27.Проблема остановки - формулировка теоремы и ее доказательство.
- •28.Понятие рекурсии. Примитивно-рекурсивные функции. Примеры.
- •29.Неограниченный оператор минимизации. Примеры. Определение частично-рекурсивной функции.
- •30.Разрешимые и перечислимые множества и предикаты.
- •31.Конечные автоматы. Основные определения. Способы задания автоматов.
- •32.Алгоритмические возможности: что могут и что не могут вычислять автоматы. Примеры.
- •33.Эквивалентность автоматов. Алгоритм минимизации автоматов.
- •34.Автоматы и логические схемы. Программная реализация автоматов.
- •35.Интуитивное определение понятия «алгоритм». Свойства алгоритма.
- •37. Приметивно рекурсивные функции
- •Глава 4. Алгоритмы
- •40 Частично рекурсивные функции
- •41 Рекурсивные функции
- •Проблемы, касающиеся абстрактных машин
- •Другие проблемы
- •Проблемы, алгоритмическая неразрешимость которых не доказана
- •42 Формулировка и доказательство критерия Поста
- •Описание
- •Примеры Пример 1
- •Пример 2
- •Ветвление (условный оператор)
- •Повторение (цикл)
- •Устройство машины Тьюринга
- •Проблемы, касающиеся абстрактных машин
- •Другие проблемы
- •Проблемы, алгоритмическая неразрешимость которых не доказана
- •48) Машина Поста
- •Принцип работы
- •Устройство машины Тьюринга
- •Описание машины Тьюринга
- •Полнота по Тьюрингу
- •Варианты машины Тьюринга
- •Машина Тьюринга, работающая на полубесконечной ленте
37. Приметивно рекурсивные функции
Примитивно рекурсивные функции Введем следующие функции
оп(хи...,хп) = 0,1т(Х1, ..., Хп) = Хт A < ТО < П\\ П= 1, 2, ...),называемые далее простейшими.
Пусть даны частичные функции д : Nn —? N и h : Nn+2 —? N.
Частичная функция / : Nn+l —? N получена из функций д, h примитивной рекурсией, если f(xu...,xn,0) = д(хи...,хп),f(xi,..., хп,у + 1) = h(xi,..., хп,у, f(xi,..., хп,у)).
Для п = 0 уравнения D.1) принимают вид (д = const = a)
/@) = а, f(x + l)=h(x,f(x)).
Как видно из этих уравнений, задав исходные данные
(«1, ...,х„, 0), можно шаг за шагом найти значения функции для (x-L,...,xn,\\),(xi_,...,xn,2),...,(x-L,...,xn,m),...
Символически задание / через примитивную рекурсию можно
записать как Частичная функция / : Nn+l —? N называется примитивно рекурсивной относительно множества частичных функций ?], если /получается из функций множества ?] и простейших функций конечным числом операций подстановки (суперпозиции) и примитивной рекурсии.
Если ?] = 0, то примитивно рекурсивная относительно
множества частичных функций 5^ функция получается только из простейших функций и поэтому ее называют просто примитивно рекурсивной.
Нетрудно понять, что примитивно рекурсивные функции
являются всюду определенными функциями.
Пример 4.1. Функция f(x,y) = х + у примитивно рекурсивна.
В самом деле,
f(x, у + 1) = х + (у + 1) = (х + у) + 1 = sl(x + у) = sl(f(x, у)).
Это означает, то функция х + у строится из примитивно рекурсивных функций l\\,h{x, y,z) = z + 1 = sl(z) с помощью примитивной рекурсии.
Поэтому х + у примитивно рекурсивная функция.
Пример 4.2. Функция f(x,y) = xy примитивно рекурсивна.
Действительно,
f(x,0)=x-0 = o1(x),
f(x, у + 1) = х(у + 1) = ху + х = f(x, у) + х.
D.3)
Если взять
g(x) = ol(x), h(x,y,z)=z + x
и вспомнить, что h — это примитивно рекурсивная функция (пример 4.1),то убеждаемся в примитивной рекурсивности функции ху.
Частично рекурсивные функции
Пусть дана частичная функция / : Nn —± N. Зафиксируем данные(xi,...,xn). Введем функцию
М/(ж1,...,ж„) =min{f(x1,...,xn-1,y) = хп}.
yEN
По существу, М - это операция на множестве частичных функций.Результатом является новая частичная функция с тем же числом аргументов. Назовем эту операцию минимизацией.
Пример 4.3. Функция
,х)= f я-1, х>0,
v \\ не определено, X = 0
— частично рекурсивна.
Действительно,
д(х) = Ms1(x) = min{s1(y) = у + 1 = х}.
Следовательно, д получена из простейшей функции s1 с помощью операции минимизации.
Глава 4. Алгоритмы
Частичная функция / : Nn+1 -? N называется частично
рекурсивной относительно множества частичных функций ?], если получается из функций множества ?] и простейших функцийконечным числом операций подстановки (суперпозиции),примитивной рекурсии и минимизации.
Если ?] = 0, то частично рекурсивная относительно множества частичных функций 5^ функция получается только из простейших функций, и поэтому ее называют просто частично рекурсивной.
Каждая примитивно рекурсивная функция является частично
рекурсивной. Обратное неверно, поскольку в класс частично рекурсивных функция в соответствии с определением попадают частичная функция Ms1 и, например, нигде не определенная функция
/(ж) = тт{ж + 1 + у = 0}.
J/6JV
Обратим внимание на то, что минимизация может быть
организована как последовательный (алгоритмический) процесс.
Действительно, последовательно находим
/(Ж1, ..., Ж„-1, 0),/(Ж1, ..., Ж„-1, 1), ...,/(Ж1, ..., Ж„-1, у), ...
Наименьшее о, для которого
- это значение для M/(a;i,..., ж^).1
38) Помимо двух основных операций (подстановки и примитивной рекурсии), используются и другие операции, сохраняющие примитивную рекурсивность функций. Эти операции являются производными от основных, т.е. могут быть получены из них и элементарных функций.
Пусть имеются функции y1,y2,...,yk, и в результате некоторой операции Á над этими функциями получена функция j, т.е. j=Á(y1,...,yk).
Определение [Матросов,1989,с.23].
Операция Á называется примитивно-рекурсивной операцией, если из равенства j=Á(y1,y2,...,yk) следует, что j является примитивно-рекурсивной функцией относительно совокупности {y1,y2,...,yk}.
Рассмотрим примеры часто применяемых примитивно-рекурсивных операций, следуя В.Л.Матросову [1989,с.23-24].
1. Операция введения фиктивных переменных Пусть задана функция g(x,y) и пусть j(x,y,z)=g(x,y). В этом случае говорят, что функция j получена из функции g операцией введения фиктивной переменной z.
Предложение.
Функция j является примитивно-рекурсивной функцией относительно совокупности {g}.
Доказательство.
j(x,y,z)=g(I13(x,y,z),I23(x,y,z))=Sub23(g;I13,I23).
Предложение доказано.
2. Операция подстановки констант Пусть задана функция g(x,y,z) и пусть j(x,y)=g(x,y,a). В этом
случае говорят, что функция j получается из функции g операцией подстановки констант.
Предложение.
Функция j(x,y) является примитивно-рекурсивной функцией относительно совокупности {g}.
Доказательство.
j(x,y)=g(I12(x,y),I22(x,y),Ca2(x,y))=Sub32(g;I12,I22,Ca2).
Предложение доказано.
3. Операция произвольной подстановки Пусть функции h1,h2 и h3 являются функциями, зависящими лишь от некоторых переменных x,y,z. Говорят, что функция j(x,y,z) получена из функций g,h1,h2,h3 операцией произвольной подстановки (суперпозиции), если j=g(h1,h2,h3).
Пример.
Пусть даны функции, определённые термами g(x1,x2,x3), h1(x), h2(x,y), h3(x,y,z), а j(x,y,z)=g(h1(x),h2(x,y),h3(x,y,z)).
Покажем, что j(x,y,z) - примитивно-рекурсивная функция относительно совокупности {g,h1,h2,h3}. Функцию j можно представить так:
j(x,y,z)=g(h1(I13(x,y,z)),h2(I13(x,y,z),I23(x,y,z)), h3(I13(x,y,z),I23(x,y,z),I33(x,y,z))).
Обозначим:
h1*(x,y,z)«h1(I13(x,y,z)), h2*(x,y,z)«h2(I13(x,y,z),I23(x,y,z)), h3*(x,y,z)«h3(I13(x,y,z),I23(x,y,z),I33(x,y,z)).
Функции h1* и h2* получены из функций h1 и h2 соответственно операцией введения фиктивных переменных, поэтому h1* - примитивно-рекурсивная функция относительно {h1}, h2* - примитивно-рекурсивная функция относительно {h2}. Очевидно, h3* - примитивно-рекурсивная функция относительно совокупности {h3}. А т.к. выполняется равенство j=Sub33(g;h1*,h2*,h3*), то j является примитивно-рекурсивной функцией относительно совокупности {g,h1*,h2*,h3*}. Применяя первое свойство относительной примитивной рекурсивности, получаем, что j является примитивно-рекурсивной функцией относительно совокупности функций {g,h1,h2,h3}.
4. Операции конечного суммирования и конечного произведения
Определение [Матросов,1989,с.25].
(1) Говорят, что функция f(x1,...,xn,y) получена из функции g(x1,...,xn,z) в результате операции конечного суммирования, если для любого набора значений переменных (x1,...,xn,y)
f(x1,...,xn,y)=g(x1,...,xn,0)+g(x1,...,xn,1)+...+g(x1,...,xn,y).
В дальнейшем будем применять следующее обозначение:
(2) Говорят, что функция f(x1,...,xn,y) получена из функции g(x1,...,xn,z) в результате операции конечного произведения, если для любого набора переменных (x1,...,xn,y)
f(x1,...,xn,y)=g(x1,...,xn,0)×g(x1,...,xn,1)×...×g(x1,...,xn,y).
В дальнейшем будем использовать следующее обозначение:
Предложение [Матросов,1989,с.25-26].
Операции конечного суммирования и конечного произведения примитивно-рекурсивны относительно совокупности {g}
Доказательство.
Рассмотрим операцию конечного суммирования. Пусть
Тогда имеет место следующая система равенств:
Тогда функцию f можно представить как результат примитивной рекурсии, т.е. f=Rec(g1,h), где:
g1«g(I1n(x1,...,xn),...,Inn(x1,...,xn),0), h(x1,...,xn,y,z)«gïI1 n+2 (x1,...,xn,y,z),...,Inn+2 (x1,...,xn,y,z),
In+1 n+2 (x1,...,xn,y,z)+1ï+In+2 n+2 (x1,...,xn,y,z).
Действительно, легко проверить, что имеют место равенства:
Из способа задания функций g1 и h следует, что g1 и h являются примитивно-рекурсивными функциями относительно совокупности {g}. Очевидно функция f, представляющая результат примитивной рекурсии над функциями g1 и h, также примитивно-рекурсивна относительно совокупности, состоящей из одной функции g.
Аналогично можно провести доказательство и для операции конечного произведения.
Предложение доказано (для операции конечного суммирования).
Следствие [Матросов,1989,с.26].
Операции конечного суммирования и конечного произведения сохраняют примитивную рекурсивность функций.
39) Рекурсивный предикат – предикат P типа
для которого вычислима по Тьюрингу соответствующая характеристическая функция
Рекурсивными множествами являются многие обычные множества натуральных чисел: множество четных чисел, множество простых чисел и т.д.
Множество называется рекурсивно перечислимым, если оно является множеством значений некоторой вычислимой функции.
Рекурсивно перечислимый предикат – предикат P рекурсивно перечислим, если существует процедура, позволяющая устанавливать истинность P(x1,…xk); если же P(x1,…xk) ложно, то эта процедура иногда будет это устанавливать, а иногда будет продолжаться неограниченно долго.
Теорема.2. Применение логических связок , , ¬ к рекурсив-
ным предикатам дает рекурсивные же предикаты.
Теорема.2. Применение квантора к рекурсивному предикату приводит к рекурсивному же предикату.
Интуитивно предикат Р рекурсивен, если существует алгоритм, позволяющий выяснить для каждого набора {x1,…xk} слов истинно P(x1,…xk) или нет.
Обычно арифметические предикаты x y, x + y = z, “x – простое число”, “х делит у” являются рекурсивными.
Здесь и далее под вычислимыми функциями будут подразумеваться одноместные вычислимые функции.
Рассмотрим свойства рекурсивных и перечислимых множеств.
Теорема.3. Объединение и пересечение рекурсивных множеств рекурсивны; дополнение к рекурсивному множеству рекурсивно.
Ввиду известного соответствия между теоретикомножественными операциями и пропозициональными связками эта теорема немедленно вытекает из следующей теоремы.
Теорема.3. Дизъюнкция и конъюнкция вычислимых предикатов вычислимы; отрицание вычислимого предиката вычислимо.
Теорема 3. справедлива для предикатов любой вместимости; мы, однако, докажем ее только для одноместных предикатов – этого достаточно, чтобы получить теорему 3. Для общего случая теорема
доказывается аналогично.
Теорема 4. Объединение и перечисление перечислимых множеств перечислимы.
Теорема 5. Множество тогда и только тогда перечислимо, когда оно является областью определения некоторой вычислимой функции.
Теорема.6. Множество A является рекурсивно перечислимым тогда и только тогда, когда существует разрешимый предикат R x y ( , )
такой, что x A тогда и только тогда, когда
yR x y ( , ).
Теорема.7. Всякое разрешимое множество рекурсивно перечислимо.
Теорема8 (теорема Поста). Множество тогда и только тогда разрешимо, когда оно само и его дополнение рекурсивно перечислимы.
Теорема 9. Множество номеров самоприменимых машин Тьюринга рекурсивно перечислимо, но не азрешимо. Поскольку мы обычно отождествляем слово с его номером, вместо множества номеров мы можем говорить здесь о множестве кодов.
Теорема 10. Существуют непересекающиеся рекурсивно перечислимые множества E1 и E2 такие, что никакое разрешимое множество не может содержать E1, не имея при этом общих точек с E2. (Как иногда говорят, E1 и E2 не отделимы разрешимыми множествами.)