- •Формулы логики высказываний и логики предикатов
- •Равносильность в логике высказываний и влогике предикатов
- •Тавтологии
- •Понятие предиката. Кванторы
- •Нормальные формулы логики предикатов
- •Языки. Аксиомы. Правила вывода
- •Вывод. Вывод из гипотез
- •Теорема Дедукции. Следствия
- •Примеры выводимых формул
- •Непротиворечивость ив
- •Полнота ив
- •Правило суммы, произведения
- •Размещения и сочетания
- •Бином Ньютона
- •Разбиение. Полиномиальная теорема
- •Булевы функции
- •Формулы. Равносильность формул
- •Метод рекуррентных соотношений
- •Решение линейных рекуррентных соотношений
- •Понятие производящей функции
- •Интуитивное понятие алгоритма
- •Машины Тьюринга. Вычислимые функции
- •Рекурсивные функции
- •Алгоритмически неразрешимые проблемы
- •Нумерации машин Тьюринга
- •Критерии эффективности алгоритма
- •Полиномиальные и неполиномиальные алгоритмы
- •Основные понятия теории графов
- •Маршруты, цепи, циклы
- •Виды графов
- •Способы задания графов
- •Эйлеровы графы
- •Геометрическая реализация графов
- •Деревья. Лес.
- •Остовное дерево
- •Важнейшие числовые характеристики графов
- •Основные понятия теории кодирования
- •Критерий однозначности алфавитного кодирования
- •Алгоритм распознавания однозначности кодирования
- •Коды Хэмминга
- •Понятие множества
- •Операции над множествами. Свойства
- •Формулы включения и исключения.
-
Нумерации машин Тьюринга
-
Нумерация МТ
Рассмотрим систему предложенную К.Гёулем для нумерации МТ. Эта система такова, что каждая машина получает свой номер и по этому номеру можно однозначно восстановить саму программу.
Нумерация по этой системе проводится в 3 этапа:
1)на этом этапе номера присваиваются символом Л.П.С. N(Л)=2, N(П)=3, N(С)=4, а также символом внешнего и внутреннего алфавита. N(аi)=2i+5; N(qi)=2i+6.
2)на этом этапе каждой команде присваивается номер. Так команда qiаi->ajDjqj получает номер 2N(qi)*3N(ai)*5N(aj)*7N(Dj)*11N(qj).
3)На этом этапе номер присваивается самой программе. Для этого команды программы выписываются в каком-либо порядке: Ком.1, Ком.2, … , Ком.n. После этого программе присваивается номер 2N(ком.1)*3N(ком.2)*5N(ком.3)*…*рnN(ком.n). где pn-n-ое простое число. Здесь также для каждого натурального числа можно определить является ли оно номером программы, и если является, та какой именно. Тогда, просматривая подряд все натуральные числа, мы найдём 1-ое число, которое является номером программы, затем 2-ое и т.д. След-но машин имеется чётное множество.
Зам.: Аналогичную систему нумерации можно ввести и для конфигурации МТ.
-
Пример алгоритмически неразрешимой проблемы
Df.1.:В предыд. пункте было показано, что каждой МТ можно присвоить свой номер. Этот номер называют ещё ходом МТ. Пусть дана МТ - Т. Пусть N(Т) – её код. Запишем на ленте машины Т её код N(T). Тогда, если машина применима к своему коду , то она называется самоприменимой. Иначе не самоприменимой. Очевидно, каждая машина является самоприменимой, либо не самоприменимой.
Проблема самоприменимости заключ-ся в выяснении того: имеется ли алгоритм, кот. для каждой МТ определял бы явл. ли данная машина самоприменимой. Поскольку в качестве строгого матем-го определения алгоритма рассматр-ся МТ , то проблему самоприменимости можно сформулировать след. образом:
Имеется ли МТ, которая была бы применима к коду машины и после работы над кодом самоприменимой машины выдавало бы заключительную конфигурацию одного вида, а после работы над кодом не самоприменимой машины заключительную конфигурацию другого вида.Потребуем чтобы в 1-ом случае головка останавливалась у 1, а во втором – у 0.
Теор.1.: Проблема самоприменимости алгоритмически неразрешима.
Док-во: пусть проблема самоприменимости будет алгоритмически разрешима и пусть М – машина, которая «решает» эту проблему. Теперь имея программу машины М, построим новую машину L, которая будет обладать свойствами:
1)L применима к кодам не самоприменимых машин.
2)L не применима к кодам самоприменимых машин. Для этого будем считать, что конечное состояние q0 машины М для машины L конечным не является. Для машины L конечным будет q0’ . Для преобразования программы машины М в программу машины L добавим 2 новые команды. q00->0Cq0, q11->1Cq0. Применим машину L к своему коду. Если L является самоприменимой машиной, то по определению она должна останавливаться, что противоречит 1-ому условию.
Следовательно, машину L, а вместе с ней и машину М построить невозможно. Ч.т.д.