- •ТЕОРИЯ АЛГОРИТМОВ
- •Введение
- •Таким образом, получили убывающую последовательность натуральных чисел
- •I.1. Примитивно рекурсивные функции. Базис элементарных функций. Операции подстановки и примитивной рекурсии. Основные свойства
- •I.2. Примитивно рекурсивные функции относительно совокупности функций. Основные свойства.
- •I.3. Производные операции над функциями
- •I.4. Операции конечного суммирования и конечного произведения
- •Действительно
- •Очевидно, что
- •I.5. Предикат, логическая функция. Логические операции с предикатами.
- •I.6. Операции навешивания кванторов. Операции навешивания кванторов относительно двуместных предикатов
- •I.7. Примитивно рекурсивный предикат
- •I.8. Операция навешивания ограниченного квантора над предикатами
- •I.9. Кусочное задание функции
- •I.10. Операция ограниченной минимизации
- •I.11. Частично рекурсивные функции
- •Тогда
- •Контрольные вопросы
- •Практические задания
- •II.Уточнение понятия алгоритма через абстрактную математическую машину Тьюринга
- •II.1 Определение машины Тьюринга
- •II.2 Применение машин Тьюринга к словам
- •II.3 Вычислимые по Тьюрингу функции
- •II.5 Композиция машин Тьюринга
- •II.6 Тезис Тьюринга (основная гипотеза теории алгоритмов)
- •II.7 Машины Тьюринга и современные электронно-вычислительные машины
- •II.8 Вычислимость по Тьюрингу примитивно рекурсивных функций
- •II.9 Вычислимость по Тьюрингу частично рекурсивных функций
- •Контрольные вопросы
- •Практические задания
- •III.1. Уточнение понятие алгоритма через машину с неограниченными регистрами
- •Практические задания
- •IV. Марковские подстановки
- •IV.1. Нормальные алгоритмы Маркова
- •IV.2. Нормально вычислимые функции и принцип нормализации Маркова
- •IV.3. Совпадение класса всех нормально вычислимых функций с классом всех функций, вычислимых по Тьюрингу
- •СПИСОК ЛИТЕРАТУРЫ
ϕ(x, y, z)= ∑x |
|
(y t −& x) |
(4) |
||||||
sg |
|||||||||
|
|
|
|
|
|
t=0 |
|
|
|
операцией отождествленных переменных, т.е. |
|
|
|
||||||
|
|
|
|
|
|
|
|
||
|
x |
= ϕ(x, y, z). |
|
||||||
|
|
||||||||
y |
|
|
|
|
|
|
|||
Таким образом, исходя из того, что |
|
|
|
|
|
|
|||
ϕ(x, y, z)= ∑x |
|
(y t −& x)–ПРФ |
|
||||||
sg |
|
||||||||
|
|
t=0 |
|
|
|
|
|
||
и операция отождествленых переменных сохраняет свойство |
примитивной |
||||||||
рекурсивности функций, следует, что |
|
|
|
|
|
|
|||
|
|
x |
–ПРФ. |
|
|||||
|
|
|
|||||||
|
y |
|
|
|
|
||||
I.5. Предикат, логическая функция. Логические операции с предикатами.
Предикат – логическая функция, определенная на некотором множестве M, то есть такая n–местная функция p, которая каждому упорядоченному набору (x1 ,..., xn ) из множества M сопоставляет некоторое высказывание, обозначаемое
p(x1 ,..., xn ). В этом случае p называется n–местным предикатом на множестве M.
Из курса математической логики, нам известно, что высказывание обычно отождествляется с его истинностным значением 1 («истина») или 0 («ложь»). Исходя из этого, можно дать определение предиката для различной местности.
Пусть задано произвольное множество М≠ .
Определение. Одноместным предикатом р(х) на множестве М называется
функция вида |
|
p : M →{1,0}. |
(5) |
Двуместным предикатом p(x1 , x2 ) на множестве М называется функция вида |
|
p : M × M →{1,0}. |
(6) |
и т.д. |
|
n–местным предикатом p(x1 ,..., xn ) на множестве M называется функция вида |
|
p : M × M ×... × M →{1,0}= M n →{1,0}. |
(7) |
Например, пусть в качестве множества M задано множество натуральных чисел N. Обозначим через p(x): «x–простое число».
18
Тогда, в зависимости от значения x, логическая функция p(x) принимает либо
значение 1 («истина») либо значение 0 («ложь»). Действительно, при значениях x = 2,3,5,7,... , функция p(x)=1 и в случае, когда x = 4,6,8,9,... p(x)= 0.
В данном примере в качестве объекта рассматриваются элементы из множества натуральных чисел, а в качестве свойства взято «простое число», и это свойство обозначено через p.
Пусть, на множестве действительных чисел задан двуместный предикат
p(x, y), означающие «x меньше y».
Этот предикат становится истинным или ложным высказыванием, если x и y заменить действительными числами: «2 меньше 10», «3 меньше 5», «1,9 меньше 0,9» и т.д. Как видим, в этом случае рассматривается отношения между элементами в множестве R.. Тогда через p в данном случае обозначено отношение между объектами, где в качестве объектов взяты x и y.
Таким образом, другими словами, одноместный предикат отражает наличие или отсутствие того или иного свойства у объекта, а предикат от нескольких переменных выражает отношение между объектами в рассматриваемом множестве.
Пусть задано множество Μ –область определения предиката p(x1 ,..., xn ), (где
M ≠ –произвольная множества).
Определение. Подмножество множества Μ , состоящее из тех значений переменных, при которых данный предикат преврашается в истинностное высказывание, называется областью истинности предиката и обозначается следующим образом:
(8)
Операции с предикатами.
Пусть на множестве Μ ≠ заданы предикаты p(x) и q(x).
Определение. Конъюнкцией предикатов p(x) и q(x) называется бинарный предикат, обозначаемый r(x)= p(x) q(x), который принимает значение «истина» для тех и только тех значений x M , при которых оба исходных предиката p(x) и q(x) превращаются в истинное высказывание.
Пусть M1 – |
множество истинности предиката |
p(x), |
M 2 – |
множество истинности предиката |
q(x), |
тогда множеством истинности предикат r(x) является множество вида |
||
|
M [r(x)]= M1 I M 2 . |
(9) |
Определение. Дизъюнкцией предикатов p(x) и q(x) называется новый
предикат, обозначаемый s(x)= p(x) q(x), который принимает значение «истинна»
для тех и только тех значений x M , при которых хотя бы одно из высказываний |
||
(предикатов) p(x) и q(x) истинно. |
|
|
M [s(x)]= M1 U M 2 |
(10) |
|
– множество истинности предикат s(x). |
p(x) |
с областью определения M |
Определение. Отрицанием предиката |
||
называется предикат с той же областью определения, обозначаемый p(x), который
19
принимает значение «истина» для тех и только тех значений |
x M , при которых |
p(x) есть ложное высказывание. |
|
Множеством истинности предикат p(x) является множества |
|
M [p(x)]= M \ M1 |
(11) |
Определение. Импликацией предикатов p(x) и q(x) |
называется новый |
предикат, обозначаемый z(x)= p(x)→ q(x), который принимает значение «ложь» для тех и только тех значений x M , при которых предикат p(x) является истинным высказыванием, а q(x)–ложным.
Множество истинности предиката z(x) является множества
M = |
|
1 U M 2 . |
(12) |
M |
I.6. Операции навешивания кванторов. Операции навешивания кванторов относительно двуместных предикатов
В логике предикатов кроме операций отрицания, дизъюнкции, конъюнкции, импликации и эквивалентности, рассматриваются и операция навешивания квантора всеобщности и квантора существования.
Пусть на множестве Μ ≠ задан одноместный предикат p(x). Определение. Будем говорить, что выражение вида xp(x) на множестве M
представляет собой истинное высказывание, тогда и только тогда, когда p(x)
истинно для любого элемента x M .
Из определение следует, что если p(x) истинно на множестве M , то высказывание xp(x) тоже истинно на этом множестве;
и в случае, когда p(x) ложно на множестве M , то высказывание xp(x) -тоже
является ложным на данном множестве;
Определение. Будем говорить, что выражение xp(x) на множестве M
представляет собой истинное высказывание, тогда и только тогда, когда |
p(x) |
- |
||||
истинно хотя бы для одного элемента из этого множества. |
|
|
|
|||
Очевидно, если p(x) = 0 , то xp(x) = 0; |
|
|
|
|
||
и если p(x) ≠ 0 , то xp(x) =1. |
|
|
|
|
|
|
Пусть на множестве Μ ≠ задан двуместный предикат p(x, y). |
|
|
||||
Определение. |
Выражение |
xp(x, y) при |
y0 M |
представляет |
собой |
|
высказывание xp(x, y0 ) =1 (истинное высказывание) тогда и только тогда, |
когда |
|||||
p(x, y0 ) – истинно для любого элемента x M . |
|
|
|
|
||
Определение. Выражение xp(x, y) при заданном |
y0 M представляет |
|||||
высказывание xp(x, y0 ) =1 (истинное высказывание), тогда и только тогда, когда |
||||||
p(x, y0 )- истинно хотя бы для одного элемента из множества M . |
|
|
||||
Таким образом, |
операции |
навешивания |
кванторов (всеобщности |
и |
||
существования) к двуместным предикатам приводит к одноместному предикату, т.е. |
|
p(y)= xp(x, y) |
(13) |
20
p(y)= xp(x, y) |
(14) |
Пример. Пусть задан двуместный предикат p(x, y) = x(x < y), |
где x, y R . |
Для проверки на истинность предиката, поступим следующим образом. Берем произвольный элемент y0 из множество M, подставляя в данный предикат, получим
одноместный предикат: p(x)=(x<y0 ).
Тогда выражение х (x<y0) – является истинным высказыванием, так как во множестве действительных чисел всегда для произвольного элемента из этого же множества, найдется элемент меньше его.
Если взять предикат вида p(x, y) = x(x < y), |
где x, y R , то он является ложным во |
||||||
множестве R. |
(проверка самостоятельно). |
|
|
|
|
||
Если множество М, на котором рассматривается предикат р(х) является |
|||||||
конечным |
множеством, |
т.е. |
M ={x1 ,..., xn }, |
то |
высказывание |
вида |
|
xp(x) тождественно равно высказыванию |
p(x1 ) p(xn ), т.е. имеет |
место |
|||||
следующее равенство |
xp(x)= p(x1 ) p(xn ). |
|
(15) |
||||
|
|
|
|||||
Аналогично, если множество М, на котором рассматривается предикат р(х) |
|||||||
является конечным множеством, т.е. |
M ={x1 ,..., xn }, |
то высказывание вида xp(x) |
|||||
тождественно равно высказыванию p(x1 ) Q p(xn ), т.е. имеет место следующее |
|||||||
равенство |
xp(x)= p(x1 ) p(xn ). |
|
(16) |
||||
|
|
||||||
I.7. Примитивно рекурсивный предикат
Как нам известно, предикатом называют логическую функцию определенную на заданном множестве объектов. Будем рассматривать в качестве области определения предиката конечный набор, состоящий из натуральных чисел. Таким образом, рассматриваемые предикаты представляют логические функции вида:
p : N n →{0,1}.
В качестве примера предикатов можно привести следующие логические функции:
r(x)= (x − простоечисло);
q(x, y)= (x = y) ; p(x, y)= (x ≤ y)
и т.д.
Определение. Функция ϕ(x1 ,..., xn ) называется представляющей функцией для предиката p(x1 ,..., xn ), если выполняются следующие условия:
1)Dϕ = D p = D , т.е. их область определения совпадают;
2)для любого набора (x1 ,..., xn ) из области определения D
21
ϕ(x |
,..., x |
|
0, |
если |
p(x1 |
,..., xn )= u |
(17) |
n |
)= |
если |
p(x1 ,..., xn )= л |
||||
1 |
|
1, |
|
||||
Определение. Предикат р(х) называется примитивно рекурсивным, если его представляющая функция является примитивно рекурсивной функцией.
|
Например, следующие предикаты |
|
|||||
|
|
p1 (x, y)= (x = y); |
|
||||
|
|
p2 (x, y)= (x < y) |
|
||||
являются примитивно рекурсивными, так как их |
представляющие функции |
||||||
являются ПРФ. |
|
|
|
|
|
|
|
|
Действительно, в качестве представляющей функции первого предиката можно |
||||||
взять функцию вида |
|
||||||
|
|
ϕ1 (x)= sg |
|
x − y |
|
, |
(18) |
|
|
|
|
||||
где |
sg(x)= 1, |
если x > 0 |
|
||||
|
0, |
если x = 0 |
|
||||
является ПРФ. Покажем, что данная функция –ПРФ.
По определения операции примитивной рекурсии получаем, что sg(0)= g(0)= 0 = C00
sg(x +1)= h(x, sg(x))= C12
Следовательно, ПРО данной функции является последовательность функций
|
|
|
|
|
|
|
C 0 , C 2 |
, R(C 0 |
, C 2 ), sg(x). |
|
|||||||||
|
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|||||||||
Функция f (x, y)= |
|
x − y |
|
, определяется следующим образом: |
|
||||||||||||||
|
|
|
|||||||||||||||||
f (x, y)= |
|
x − y |
|
= |
x − y, |
|
если x ≥ y |
(19) |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
y |
− x, |
если |
x < y |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Прежде чем доказать, что |
функция f (x, y)= |
|
x − y |
|
является |
примитивно |
|||||||||||||
|
|
||||||||||||||||||
рекурсивной, рассмотрим следующие функции: |
|
||||||||||||||||||
|
1) f (x)= x −1 = 0, |
|
если x = 0 |
(20) |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
& |
|
−1, |
если x > 0 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
x |
|
|||||||
2) |
|
|
f (x, y)= x − y = |
0, |
если x ≤ y |
(21) |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
x − y, если x > y |
|
|||||
Покажем, что эти функции являются ПРФ. 1) Рассмотрим функцию (20).
По определения операции примитивной рекурсии получаем, что
f (0)= g(0)= 0 = C00
f (x +1)= (x +1)−& 1 = x = h(x, f (x))= I12 (x, f (x)).
Следовательно, ПРО для данной функции является последовательность функций:
C00 , I12 , R(C00 , I12 ), x −& 1.
22
2) |
Рассмотрим теперь функцию (21). |
|
По определения операции примитивной рекурсии получаем, что |
|
f (x,0)= g(x)= x = I11 (x) |
|
f (x, y +1)= x −& (y +1)= (x −& y)−& 1 = h(x, y, f (x, y))= I33 (x, y, f (x, y)), |
где |
в последнем равенстве f (x, y)= ι(f (x, y)), т.е. получили функцию сходную с |
функцией в первом случае, следовательно, в качестве ПРО данной функции можно взять последовательность функций:
I11 , ι(f (x, y)), R(I11 , ι(f (x, y))), x −& y .
Исходя из последнего примера, функцию (19), будем представлять следующим образом:
f (x, y)= x − y = (x −& y)+ (y −& x).
Очевидно, данная функция является ПРФ. (покажите самостоятельно) Теперь можно говорить, что выбранная представляющая функция (18), т.е.
ϕ1 (x, y)= sg x − y
для предиката |
|
p1 (x, y)= (x = y) |
|
|
|
|||||
|
|
|
|
|
||||||
является ПРФ и удовлетворяет исходным условиям, т.е. |
|
|
|
|||||||
|
ϕ1 (x)= sg |
|
x − y |
|
1, |
если x ≠ y |
|
|
|
|
|
|
|
= |
если x = y |
|
|
|
|||
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Для предиката |
p2 (x, y)= (x < y), в качестве представляющей функции можно |
|||||||||
брать |
|
ϕ2 (x, y)= sg(x −& y) |
|
|
(22) |
|||||
|
|
|
|
|||||||
и очевидно, она удовлетворяет исходным условиям и является ПРФ. |
|
|
||||||||
Определение. |
Функция |
f (x1 ,..., xn ) |
называется |
ПРФ |
относительно |
|||||
совокупности функций и предикатов ψ ={ϕ1,..., ϕm , p1 ,..., pk }, |
если |
она ПРФ |
||||||||
относительно совокупности функций ϕ1 ,..., ϕm , ψ1 ,..., ψk , где |
ψi |
1 ≤ i ≤ k - |
||||||||
представляющая функция предиката pi . |
|
|
|
|
||||||
Определение. |
Предикат |
p(x1 ,..., xn ) |
называется |
ПРФ |
относительно |
|||||
совокупности функций и предикатов ψ ={ϕ1 ,..., ϕm , p1 ,..., pk }, если представляющая
функция предиката p является примитивно рекурсивной относительно совокупности функций ϕ1 ,..., ϕm , ψ1 ,..., ψk , где ψi 1 ≤ i ≤ k - представляющая функция предиката
pi .
Теорема 2. Логические операции над предикатами сохраняют свойства примитивной рекурсивности предикатов.
Доказательство. Приведем в виде таблицы, истинностные значений логических операций: конъюнкции, дизъюнкции, импликации и отрицания.
23
