- •1. Основы математической логики
- •1.1. Понятие составного высказывания
- •1.2. Логические операции над высказываниями
- •1.3. Логические отношения
- •1.4. Варианты импликации
- •1.5. Основные законы, определяющие свойства логических операций
- •1.6. Понятие булевой функции
- •1.7. Основные свойства элементарных булевых функций
- •1.8. Дизъюнктивные и конъюнктивные нормальные формы алгебры логики
- •Алгоритм построения
- •1.9. Совершенная дизъюнктивная и совершенная конъюнктивная нормальные формы
- •1.10. Многочлены Жегалкина
- •2. Множества и отображения
- •2.1. Понятие множества
- •2.2. Способы задания множеств
- •2.3. Подмножества
- •2.4 Операции над множествами
- •2.5. Соотношение между множествами и составными высказываниями
- •2.6. Соотношение между высказываниями и соответствующими им множествами истинности
- •2.7 Абстрактные законы операций над множествами
- •2.8. Кортежи и декартовое произведение множеств
- •2.9. Бинарные отношения
- •2.10. Отображение множеств
- •2.11. Функции
- •3. Логика предикатов или логика первого порядка
- •3.1. Предикаты
- •3.2. Применение предикатов в алгебре
- •3.3. Булева алгебра предикатов
- •3.4. Кванторы
- •3.5. Формулы логики предикатов
- •3.6. Равносильные формулы логики предикатов
- •3.7. Приведённые и нормальные формы в логике предикатов
- •3.8. Исчисление предикатов
- •4. Элементы теории алгоритмов
- •4.1. Вычислимые функции и алгоритмы
- •4.2. Свойства алгоритмов
- •4.3. Понятия разрешимого предиката, разрешимого множества, перечислимого множества
- •4.4. Пример алгоритма
- •4.5. Интуитивное понятие алгоритма
- •4.6.Теория рекурсивных функций. Простейшие функции
- •4.7. Операторы
- •4.8. Примитивно рекурсивные функции
- •4.9. Частично рекурсивные функции
- •4.10. Примитивно-рекурсивные предикаты
- •4.11. Нормальный алгоритм Маркова: основные понятия
- •4.12. Проблема слов в ассоциативном исчислении
- •4.13. Алгоритм в некотором алфавите а
- •4.14. Понятие нормального алгоритма
- •5. Примеры решения типовых задач. Задания для самостоятельного решения
- •5.1. Булевы функции. Таблицы истинности
- •Задания для самостоятельного решения
- •5.2. Равносильность булевых функций
- •Задания для самостоятельного решения
- •5.3. Преобразование булевых функций
- •Задания для самостоятельного решения
- •5.4. Функциональная полнота
- •Задания для самостоятельного решения
- •5.5. Булева алгебра. Нормальные формы
- •Задания для самостоятельного решения
- •5.6. Минимальные формы
- •Задания для самостоятельного решения
- •5.7. Алгебра Жегалкина
- •Задания для самостоятельного решения
- •5.8. Алгебра высказываний
- •Задания для самостоятельного решения
- •5.9. Предикаты
- •Задания для самостоятельного решения
- •5.10. Исчисление высказываний
- •Задания для самостоятельного решения
- •Список рекомендуемой литературы
4.12. Проблема слов в ассоциативном исчислении
Проблема слов в ассоциативном исчислении заключается в следующем: для любых двух слов в данном исчислении требуется узнать, эквивалентны они или нет.
Поскольку в любом ассоциативном исчислении содержится бесчисленное множество различных слов, проблема эквивалентности представляет собой бесконечную серию однотипных задач, а решение мыслится в виде алгоритма, распознающего эквивалентность или неэквивалентность любой пары слов. Можно легко построить алгоритм, решающий так называемую ограниченную проблему слов: требуется установить, можно ли одно из заданных слов преобразовать в другое применением допустимых подстановок не более чем k раз, где k — произвольное, но фиксированное число.
Применительно к подстановкам это означает, что сначала надо построить все слова, смежные с одним из заданных слов, затем для каждого из полученных слов построить все слова, смежные с ним, и т.д., всего k раз. В итоге мы будем иметь список слов, которые можно получить из заданного слова с помощью применения допустимых подстановок не более k раз. Если второе заданное слово окажется в этом списке, то, следовательно, ответ на поставленный вопрос будет положительным, если его в списке нет, ответ будет отрицательным.
Однако успешное решение ограниченной проблемы слов не приближает нас к решению основной, «неограниченной» проблемы. Поскольку длина дедуктивной цепочки, ведущей от слова Р к слову Q, может оказаться сколь угодно большой, то неизвестно, когда следует считать законченным процесс переработки.
Возникает проблема: для произвольного ассоциативного исчисления требуется построить алгоритм, который для любой пары слов в алфавите этого исчисления позволял бы за конечное число шагов выяснить, эквивалентны ли в данном исчислении слова, составляющие эту пару, т. е. построить алгоритм в некотором алфавите А.
4.13. Алгоритм в некотором алфавите а
Определение. Алгоритмом в алфавите А называется всякое общепонятное точное предписание, которое определяет потенциально возможный процесс над словами из А, допускающий любое слово в качестве исходного и последовательно определяющий новые слова в этом алфавите.
Уточнение понятия алгоритма в алфавите А связано с использованием аппарата подстановок, т. е. с построением ассоциативного исчисления.
Определение. Алгоритм в алфавите А задается в виде некоторой системы допустимых подстановок, дополненной общепонятным точным предписанием о том, в каком порядке и как нужно применять эти допустимые подстановки, и когда наступает остановка. Таким образом, схема подстановок вместе с указанием, как ими пользоваться, определяет алгоритм в алфавите А.
Определение. Два алгоритма в некотором алфавите называются эквивалентными, если области их применимости совпадают, и результаты переработки ими любого слова из их области применимости также совпадают.
4.14. Понятие нормального алгоритма
А. А. Марковым было дано точное математическое определение нормального алгоритма.
Задается алфавит А и фиксируется схема подстановок. Алгоритм предписывает, исходя из произвольного слова Р в алфавите А, просмотреть формулы подстановок в том порядке, в каком они заданы в схеме, разыскивая формулу с левой частью, входящей в Р. Если такой формулы не найдется, то процесс обрывается. В противном случае берется первая из таких формул и делается подстановка ее правой части вместо первого вхождения ее левой части в Р, что дает новое слово в алфавите А. После выполнения первого шага приступают ко второму шагу, отличающемуся от первого только тем, что роль Р играет . Далее делают аналогичный третий шаг и т. д. до тех пор, пока не придется оборвать процесс. Оборваться же он может лишь двумя способами: во-первых, когда мы получим такое слово Рп, что ни одна из левых частей формул схемы подстановок не будет в него входить; во-вторых, когда при получении слова Рп нам придется применить последнюю формулу. В обоих случаях мы считаем, что наш алгоритм перерабатывает слово Р в слово Рп.
Различные нормальные алгоритмы отличаются друг от друга лишь алфавитами и системами допустимых подстановок. Чтобы задать какой-либо нормальный алгоритм достаточно задать алфавит и систему подстановок.
Понятие алгоритма в некотором алфавите было уточнено Марковым следующим образом: всякий алгоритм в алфавите А эквивалентен нормальному алгоритму в этом же алфавите.
