
- •Т. А. Сливина математическая логика и теория алгоритмов
- •Глава I. Логика высказываний 6
- •Глава 1 логика высказываний
- •§ 1. Логические операции над высказываниями
- •§ 2. Формулы логики высказываний. Основные равносильности и преобразования
- •1. Основные равносильности
- •2. Равносильности, выражающие одни логические операции через другие
- •3. Равносильности, выражающие основные законы алгебры логики
- •§ 3. Алгебра Буля. Функции Буля. Представление произвольной функции алгебры логики в виде формулы алгебры логики
- •§ 4. Дизьюнктивная нормальная форма и совершенная дизьюнктивная нормальная форма. Коньюнктивная нормальная форма и совершенная коньюнктивная нормальная форма
- •§ 5. Приложения алгебры логики в технике и других областях
- •Задачи и упражнения
- •Глава 2 исчиление высказываний
- •§ 1. Этапы построения исчисления высказываний. Понятие формулы исчисления высказываний
- •§ 2. Определение доказуемой формулы. Правила вывода и заключения
- •§ 3. Производные правила вывода
- •§ 4. Выводимость формул из совокупности формул
- •§5. Доказательство некоторых законов логики
- •3. Закон разъединения посылок
- •5. Закон исключенного третьего: ├
- •§6. Связь между алгеброй высказываний и исчислением высказываний
- •§7. Проблемы аксиоматического исчисления высказываний
- •1. Проблема разрешимости исчисления высказываний.
- •3. Проблема полноты исчисления высказываний.
- •4. Проблема независимости аксиом исчисления высказываний.
- •Задачи и упражнения
- •Глава 3 логика предикатов
- •§ 1. Понятие предиката. Логические операции над предикатами. Кванторные операции.
- •§ 2. Понятие формулы логики предикатов. Значение формулы логики предикатов
- •§ 3. Равносильные формулы логики предикатов. Предваренная нормальная форма
- •§ 4. Общезначимость и выполнимость формул. Проблема разрешимости для общезначимости и выполнимости, неразрешимость ее в общем случае
- •§ 5. Применение языка логики предикатов для записи математических предложений, определений, построения отрицания предложений
- •§ 6. Замечание об аксиоматическом исчислении предикатов
- •Задачи и упражнения
- •Глава 4 математические теории
- •§ 1. Теории первого порядка. Основные понятия
- •§ 2. Примеры математических теорий из алгебры, анализа, геометрии
- •1. Теория частичного упорядочения.
- •2. Теория групп.
- •3. Аффинная геометрия.
- •§ 3. Интерпретация языка теории
- •§ 4. Проблемы непротиворечивости, полноты, разрешимости теории
- •2. Проблема полноты.
- •3. Проблема разрешимости.
- •Глава 5 алгоритмы
- •§ 1. Понятие алгоритма и его характерные черты
- •§ 2. Разрешимые и перечислимые множества
- •§ 3. Уточнение понятия алгоритма
- •§ 4. Вычислимые функции. Частично рекурсивные и общерекурсивные функции
- •1. Суперпозиция функций.
- •2. Схема примитивной рекурсии.
- •§ 5. Машины Тьюринга
- •§ 6. Нормальные алгоритмы Маркова
- •§ 7. Неразрешимые алгоритмические проблемы (обзор)
- •1.Неразрешимость проблемы распознавания выводимости в математической логике.
- •3. Проблема эквивалентности слов для ассоциативных исчислений.
- •4. Неразрешимость десятой проблемы Гильберта о диофантовых уравнениях.
- •Задачи и упражнения
- •Заключение
- •Библиографический список
- •Математическая логика и теория алгоритмов
- •660014, Красноярск, просп. Им. Газ. «Красноярский рабочий», 31.
- •660028, Г. Красноярск, ул. Водопьянова, 2-241.
§ 6. Нормальные алгоритмы Маркова
Как и ранее, будем называть алфавитом А всякое непустое конечное множество символов, а сами символы алфавита будем называть буквами.
Словом в алфавите А называется всякая конечная последовательность букв алфавита А. Пустая последовательность букв называется пустым словом и обозначается через .
Если
Р обозначает
слово
и Q
обозначает
слово
,
то PQ
обозначает
объединение
.
В частности, Р
= Р
= Р. Кроме
того, (P1P2)P3
= P1(P2P3).
Алфавит А называется расширением алфавита В, если В А. Очевидно, что в этом случае всякое слово в алфавите В является словом в алфавите А.
Алгоритмом в алфавите А называется эффективно вычислимая функция, областью определения которой служит какое-нибудь подмножество множества всех слов в алфавите А и значениями которой являются также слова в алфавите А. Пусть Р есть слово в алфавите А; говорят, что алгоритм U применим к слову Р, если Р содержится в области определения U. Если алфавит В является расширением алфавита А, то всякий алгоритм в алфавите В называется алгоритмом над алфавитом А.
Большинство известных алгоритмов можно разбить на некоторые простейшие шаги. Следуя А. А. Маркову, в качестве элементарной операции, на базе которой строятся алгоритмы, выделим подстановку одного слова вместо другого. Если Р и Q - слова в алфавите А, то выражения Р Q и Р Q будем называть формулами подстановки в алфавите А. При этом предполагается, что символы стрелка и точка не являются буквами алфавита А, а каждое слово Р и Q может быть и пустым словом. Формула подстановки Р Q называется простой, а формула подстановки Р Q называется заключительной.
Пусть Р () Q обозначает одну из формул подстановки Р Q или Р Q. Конечный список формул подстановки в алфавите
Р1 () Q1
Р2 () Q2
…………
Рr () Qr
называется схемой алгоритма и порождает следующий алгоритм в алфавите А.
Принято говорить, что слово Т входит в слово Q, если существуют такие (возможно пустые) слова W, V, что Q = WTV.
Пусть Р – слово в алфавите А. Здесь может быть одно из двух:
Ни одно из слов P1,P2,...,Pr не входит в слово Р (обозначается: U: P ).
Среди слов Р1,Р2,...,Рr существуют такие, которые входят в Р. Пусть m – наименьшее целое число такое, что 1 m r, и Рm входит в Р, и R - слово, которое получается, если самое левое вхождение слова Рm в слово Р заменить словом Qm. Тот факт, что Р и R находятся в описанном отношении, коротко запишем в виде
U:P├ R, (a)
если формула подстановки Pm () Qm - простая, или в виде
U:P├ R (б)
если формула Рт () Qm заключительная.
В случае (а) говорят, что алгоритм U просто переводит слово Р в слово R; в случае (б) говорят, что алгоритм U заключительно переводит слово Р в слово R.
Пусть далее, U:P╞ R означает, что существует такая последовательность R0, R1, Rk слов в алфавите А, что Р = R0, R = Rk, U:Rj├ Rj+1 для j = 0, 1, …, k-2 и либо U:Rk-1├ Rk , либо U:Rk-1├ Rk Rk (в этом последнем случае вместо U:P╞ R пишут U:P╞ R )
Положим теперь U(P) = R тогда и только тогда, когда либо U:P╞ R , либо U:P╞ R и U:R .
Алгоритм, определенный таким образом, называется нормальным алгоритмом или алгоритмом Маркова.
Работа алгоритма U может быть описана следующим образом. Пусть дано слово Р в алфавите А. Находим первую в схеме алгоритма U формулу подстановки Рт ()Qm такую, что Рт входит в Р. Совершаем подстановку слова Qm вместо самого левого вхождения слова Рт в слово Р. Пусть R1 – и результат такой подстановки. Если Рт ()Qm – заключительная формула подстановки, то работа алгоритма заканчивается, и его значением является R1. Если формула подстановки Рт ()Qm – простая, то применим к R1 тот же поиск, который был только что применен к Р и т.д. Если на конечном этапе будет получено такое слово Ri, что U:Ri , то есть ни одно из слов Р1, ..., Рr не входит в Ri, то работа алгоритма заканчивается, и Rt будет его значением.
Если описанный процесс на конечном этапе не заканчивается, то говорят, что алгоритм U не применим к слову Р.
Пример 1. Пусть А есть алфавит {b,c} . Рассмотрим схему
b
сc.
Определяемый этой схемой нормальный алгоритм U перерабатывает всякое слово Р в алфавите А, содержащее хотя бы одно вхождение буквы b, в слово, которое получается вычеркиванием в Р самого левого вхождения буквы b.
Действительно, всякая буква с, находящаяся в слове левее самой левой буквы b, простой подстановкой с с переводится в букву с, а самая левая буква b заключительной подстановкой переводится в пустое слово .
Например, если Р = ссbbс, то PQ, где Q = ссbс.
Пустое слово U перерабатывает в само себя.
U не применим к непустым словам, не содержащим вхождения буквы b. Действительно, если слово Р содержит только буквы с, то простой подстановкой с с оно будет перерабатываться в себя, но тогда всегда Р Р, и мы не приходим к заключительной подстановке, т.е. процесс будет продолжаться бесконечно.
Пример 2. Пусть А есть алфавит { a0, a1,…, an}. Рассмотрим схему
i (ai) (aiA).
Эта схема определяет нормальный алгоритм U, перерабатывающий всякое слово в алфавите А в пустое слово. Например,
U: a1a2a1a3a0 ├ a1a2a1a3 ├ a2a1a3 ├ a2a3 ├ a3 ├
и, наконец,
U: . Следовательно, U(a1a2a1a3a0) = .