- •© Михеева е. А., 2016 © Ульяновский государственный университет, 2016 оглавление
- •Раздел 6. Элементы математической логики . . . . . . . . . . . . . . . . . . . . 9
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Раздел 8. Вычислимые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
- •Раздел 9. Теория кодирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- •Раздел 6. Элементы математической логики Предисловие
- •Исчисление высказываний
- •Язык ив
- •Аксиомы ив
- •Формулы алгебры высказываний
- •Соответствие между формулами ав и ив
- •Непротиворечивость ив
- •Полнота ив
- •Логические операции над предикатами
- •Теорема о полноте системы одноместных предикатов, заданных на конечном множестве
- •Исчисление предикатов (ип)
- •Формулы исчисления предикатов
- •Определение формул
- •Замена переменных в формулах
- •Правила образования выводимых формул
- •Замена переменного предиката
- •Задания для самостоятельной работы
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Детерминированные функции
- •Свойство детерминированной функции
- •Примеры детерминированных и недетерминированных функций
- •Способ задания д.Функций
- •Вес детерминированной функции
- •Ограниченно-детерминированные функции
- •Способы задания о.Д.Функций
- •Конечные автоматы
- •Задания для самостоятельной работы
- •Раздел 8. Вычислимые функции Машины Тьюринга
- •Пусть в некоторый момент головка машины обозревает символ , находясь в состоянии , тогда:
- •Методы построения машин Тьюринга
- •1. Принцип двойственности для программ (машин).
- •2. Последовательное подключение одной машины к другой.
- •3. Итерация машины.
- •4. Специальный операторный язык для записи алгоритмов.
- •Описание технологии программирования для машин Тьюринга
- •Вычислимые функции
- •Операции с, Пр и
- •Классы вычислимых и рекурсивных функций
- •Эквивалентность класса рекурсивных функций и функций, вычислимых на машинах Тьюринга
- •Задания для самостоятельной работы
- •Раздел 9. Теория кодирования Алфавитное кодирование
- •Критерий однозначности декодирования
- •Задания для самостоятельной работы
Операции с, Пр и
Пусть N = {0,1,2,…}- расширенный натуральный ряд.
- система, содержащая все константы из N и все функции, определенные на наборах чисел из N и принимающие значения из N.
- счетнозначная логика.
Сейчас определим более широкую, чем , систему функций.
Пусть f(x1, x2,…, xn) - функция, определенная на подмножестве Nf множества всех наборов (1,2,…,n) чисел из N и принимающая значения также из N (вне множества Nf функция считается неопределенной). Такого рода функции будем называть частичными функциями счетнозначной логики.
Через
обозначим множество всех частичных
функций
.
Очевидно, что Pвыч .
На множестве определим три операции:
C – суперпозиция;
Пр – примитивная рекурсия
минимизация.
1. Операция C вводится так же, что и для P2 и Pk:
Пусть Ф(x1, x2,…, xn)=f(f1(x1, x2,…, xn),…, fm(x1, x2,…, xn)).
Возьмем произвольный набор (1,2,…n) чисел из N. Если на этом наборе определены функции f1,…, fm и функция f определена на наборе (f1(1,2,…n),…, fm(1,2,…n)), то Ф определена на (1,2,…n) и Ф(1,2,…n) = f( f1(1,2,…n),…, fm(1,2,…n)); в противном случае Ф не определена на наборе (1,2,…n).
2. Операция Пр определяется так:
Пусть n–местная f и (n+2)–местная g - произвольные функции из .
Говорят,
что (n+1)–местная
функция h
получается из функций f
и g
операцией примитивной рекурсии, если
для всех x1,
x2,…,
xn,у
выполняется
следующее :
h(x1, x2,…, xn, 0)=f(x1, x2,…, xn);
h(x1, x2,…, xn, y+1)=g(x1, x2,…, xn, y, h(x1, x2,…, xn, y)) .
Заметим, при n=0 : h(0) = const ;
h(x + 1) = g(x, h(x)), x 0.
Пример. Покажем, что функция h(x1, x2) = x1 + x2 может быть получена через примитивную рекурсию из простейших вычислимых функций.
h(x1,0)
=
x1
=
=f(x1);
h(x1, y+1) = x1 + (y+1) = (x1+ y)+1=S(x1+ y) = g(x1, y, x1 + y).
3. а) Операция определяется следующим образом:
Пусть дана f(x1, x2,…, xn, y), n 1- произвольная функция из .
Определим g(x1, x2,…, xn) так: вычисляем последовательно
f(x1, x2,…, xn, 0), f(x1, x2,…, xn, 1), … до тех пор, пока не найдем y0 такое, что для всех y < y0 f(x1, x2,…, xn, y) определено и не равно 0, а f(x1, x2,…, xn, y0) = 0. Тогда получаем g(x1, x2,…, xn) = y0. О функции g говорят, что она получена из f операцией минимизации и обозначают g(x1, x2,…, xn) = y (f(x1, x2,…, xn, y)=0).
Пример.
g(x) = y (|x – 2y| = 0) не определена, если x – нечетное число;
g(x)
=
,
если x
– четное число.
b) Операция определяется следующим образом:
Пусть f(x1, x2,…, xn-1, xn), n1, - произвольная функция из . Определим g(x1, x2,…, xn-1, xn) следующим образом: пусть = (1,2,…,n) - произвольный набор целых неотрицательных чисел. Рассмотрим уравнение
f(1,2,…n-1, y) = n (*)
1.
Если (*) имеет решение
и при всех
таких, что
функция f(1,2,…n-1,
y)
определена
и ее значения отличны от n,
то полагаем g(
)
=
.
2. Если (*) не имеет решений в целых неотрицательных числах, то считаем, что g( ) не определено.
3.
Если
- наименьшее целое неотрицательное
решение (*) и при некотором
и меньшем
значение f(1,2,…n-1,
y1)
не определено, то полагаем, что g(
)
не определено.
О функции g(x1, x2,…, xn-1, xn), построенной указанным способом из f(x1, x2,…, xn) говорят, что она получена из функции f(x1, x2,…, xn-1, xn) с помощью операции минимизации по переменной xn. Используются следующие обозначения:
или
.
Замечание. Операции Пр и можно применять по любым переменным, входящим в функции f, g, h, но всегда нужно указывать, по каким переменным эти операции проводятся.
Пример.
1. f(x)
= x+1
x+1 = 1 x =1 -1
g(x)
= x
– 1 при x
> 0,
не определено при x = 0.
2.
+ y
=
y
=
-
=
,
если
,
не определено, если
.
