- •© Михеева е. А., 2016 © Ульяновский государственный университет, 2016 оглавление
- •Раздел 6. Элементы математической логики . . . . . . . . . . . . . . . . . . . . 9
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Раздел 8. Вычислимые функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
- •Раздел 9. Теория кодирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- •Раздел 6. Элементы математической логики Предисловие
- •Исчисление высказываний
- •Язык ив
- •Аксиомы ив
- •Формулы алгебры высказываний
- •Соответствие между формулами ав и ив
- •Непротиворечивость ив
- •Полнота ив
- •Логические операции над предикатами
- •Теорема о полноте системы одноместных предикатов, заданных на конечном множестве
- •Исчисление предикатов (ип)
- •Формулы исчисления предикатов
- •Определение формул
- •Замена переменных в формулах
- •Правила образования выводимых формул
- •Замена переменного предиката
- •Задания для самостоятельной работы
- •Раздел 7. Ограниченно-детерминированные (автоматные) функции
- •Детерминированные функции
- •Свойство детерминированной функции
- •Примеры детерминированных и недетерминированных функций
- •Способ задания д.Функций
- •Вес детерминированной функции
- •Ограниченно-детерминированные функции
- •Способы задания о.Д.Функций
- •Конечные автоматы
- •Задания для самостоятельной работы
- •Раздел 8. Вычислимые функции Машины Тьюринга
- •Пусть в некоторый момент головка машины обозревает символ , находясь в состоянии , тогда:
- •Методы построения машин Тьюринга
- •1. Принцип двойственности для программ (машин).
- •2. Последовательное подключение одной машины к другой.
- •3. Итерация машины.
- •4. Специальный операторный язык для записи алгоритмов.
- •Описание технологии программирования для машин Тьюринга
- •Вычислимые функции
- •Операции с, Пр и
- •Классы вычислимых и рекурсивных функций
- •Эквивалентность класса рекурсивных функций и функций, вычислимых на машинах Тьюринга
- •Задания для самостоятельной работы
- •Раздел 9. Теория кодирования Алфавитное кодирование
- •Критерий однозначности декодирования
- •Задания для самостоятельной работы
3. Итерация машины.
Пусть M0 - произвольная машина Тьюринга (данные на M0 те же самые, что и в п.2). Построим машину M, которую назовем итерацией машины M0 относительно предиката p(x). Для этого по Т0 построим Т машины M. Таблица Т совпадает с Т0 вне клеток, являющихся пустыми для Т0. В тех клетках Т0, для которых p()=0, в Т стоит команда S (где - номер строки, в которой находится эта клетка , а - начальное состояние M0). В клетках таблицы Т0, для которых p()=1, в таблице Т стоит также пустая команда.
Действительно, M является итерацией M0, т.е. работа M эквивалентна многократной работе M0.
4. Специальный операторный язык для записи алгоритмов.
Этот язык впервые был предложен А. А. Ляпуновым в 1953 г.
Исходными объектами являются операторы, которые подразделяются на три группы:
Операторы, осуществляющие преобразование записи ленты, состояния машины и перемещение головки. Эти операторы обозначаются заглавными латинскими буквами;
Операторы проверки логических условий, обозначаемые символами
или
(p-предикат);Специальные операторы, обозначаемые символами * или .
Из операторов по определенным правилам строятся операторные схемы. Операторная схема представляет собой некоторую последовательность операторов, в которой для всех стрелок в операторах проверки логических условий указаны операторы, к которым эти стрелки ведут. Например, выражение
будет операторной схемой.Операторная схема определяет следующую последовательность преобразований записи ленты, состояний машины и перемещений головки машины:
В данный момент начинает работать тот оператор, перед которым стоит символ *;
Пусть имеется ситуация *A. Тогда по окончании работы оператора A фрагмент схемы *A перейдет в фрагмент A*, т.е. преобразуется также и операторная схема;
Пусть мы имеем * (или * ). В этом случае происходит вычисление предиката p по имеющейся записи на ленте и состоянию машины. Если p=1, то фрагмент * преобразуется в *, т.е. мы перейдем к выполнению следующего оператора; если p=0, то фрагмент * преобразуется в
,
т.е. выполняется далее оператор, к
которому ведет стрелка. Для *
- аналогичное правило, здесь p
– трехзначный предикат: *
*(1),
*
(2)
, *
(0)
;
Сочетание * обозначает конец преобразований или окончание работы.
Пример.
Рассмотрим
операторную схему
.
Пусть операторы A0 и A1 обозначают преобразования записи ленты, состояний и положения головки, осуществляемые соответственно машинами M0 и M1. Предположим, что состояния машин M0 и M1 не пересекаются. Пусть p(x) – предикат, определенный на номерах ячеек ((,q)), на которых машина M0 останавливается. Тогда операторная схема осуществляет следующее преобразование.
Имеем *A0. Работает машина M0 до останова в ячейке с номером, скажем, . Схема перейдет в
.Имеем *p. Вычисляется предикат p:
если p=1, то получаем схему
;если p=0, то получаем схему
.
a) Имеем *A1. Работает машина M1. В случае остановки машины M1, приходим к схеме .
b) Имеем *Преобразование закончено.
Замечание. Преобразование, осуществляемое данной операторной схемой, является преобразованием, осуществляемым последовательным подключением машины M1 к M0 относительно предиката p(x).
Пример.
Дана
операторная схема
,
очевидно, что
она характеризует преобразование,
которое получается при итерации машины
относительно предиката p(x).
Действительно,
*A0
:
a)
p=0
;
b)
p=1
.
