Вычисление по Тьюрингу функций
Рассмотрим расширенный натуральный ряд: , рассмотрим функции от
переменных
, где
Такие функции называются частичными функциями счётнозначной логики. Множество функций .
Если область определения функции совпадает со всем , то тогда
называется всюду определенной.
Пусть ,
; закодируем числа натурального ряда:
, тогда слово
будем записывать на ленте
Определение: говорят, что функция вычислима по Тьюрингу, если существует машина Тьюринга, работающая в алфавите
и обладающая следующими свойствами:
1. Если набор - область определения и
, то машина Тьюринга применима к слову в начальной конфигурации
2. Если , то машина не применима к слову в начальной конфигурации, то есть начиная работу над словом она начинает циклить.
Рекурсивные функции:
1. 0 – функция:
2. Функция следования
3. Оператор проектирования
Введем следующие операции:
1. Операция суперпозиции:
…
2. Примитивная рекурсия
3. Процедура взятия оператора
Ищем следующим образом:
Определение: функция называется частично рекурсивной, если она может быть получена из простейших функций: 0 – функции, функции следования, функции выбора переменной, с помощью конечного числа применений суперпозиций примитивной рекурсии и взятия оператора. Если функция всюду определена и частична рекурсивна, она называется общерекурсивной функцией.
Теорема: всякая частично рекурсивная функция вычислима по Тьюрингу и наоборот: всякая вычислимая по Тьюрингу функция является частично рекурсивной.
Определение: множество называется общерекурсивным, если оно совпадает с множеством значений некоторой общерекурсивной функции (например множество чётных чисел).
Определение: рассмотрим некоторое множество , которое является подмножеством некоторого множества, тогда характеристической функцией данного множества
Определение: множество называется рекурсивным, если его характеристическая функция частично рекурсивная.
Теорема: всякое рекурсивное множество является общерекурсивным.
Нормальные алгоритмы Маркова.
Рассмотрим некоторую совокупность символов – алфавит ,
- слово,
– пустое слово.
Определение: Марковской подстановкой называется операция, которая записывается , которая ищет первое вхождение слова
в некоторое слово
и заменяет слово
на слово
.
– если дальше продолжаем работу
– окончание работы после
Работа алгоритма происходит следующим образом: рассматривается слово и ищется первое
, если ни одно из
не является подсловом
, то в этом случае алгоритм не начинает свою работу, иначе
и получаем новое слово
. Если эта подстановка была заключительной, то останавливаемся и результат
, иначе начинаем работу сначала, но уже с
.
Определение: функция, заданная на некотором множестве слов алфавита называется нормально вычислимой, если существует такое расширение данного алфавита
и такой нормальный алгоритм Маркова, работающий над словами алфавита
, который каждое слово
из области определения функции
преобразует слово в
, такое, что
.
Принципы нормализации алгоритма Маркова:
Для нахождения значений функции в некотором алфавите тогда и только тогда существует алгоритм, когда функция нормально вычислима.
Теорема: следующие классы функций (заданы на расширенном натуральном ряде и принимают значения с расширенного натурального ряда) совпадают:
1. Класс функций, вычислимых по Тьюрингу
2. Класс частично рекурсивных функций
3. Класс нормально вычислимых функций
Неразрешимые алгоритмические проблемы:
1. Проблема распознавания выводимости в математической логике: для любых двух формул и
в логическом исчислении узнать, существует ли дедуктивная цепочка, ведущая от формулы
к формуле
Теорема Чёрча: проблема распознавания выводимости алгоритмически не разрешима.
2. Проблема распознавания самоприменимости.
– код символа.
- код команды.
Тогда наша программа – совокупность команд
На вход машины Тьюринга Т отправляем
1) если машина Тьюринга применима к своему коду – самопримаенимая
2) если начиная работу над своим кодом машина Тьюринга циклит – несамоприменимая
Таким образом все машины Тьюринга, работающие в алфавите делятся на 2 класса: самоприменимые и несамоприменимые.
Проблема самоприменимости состоит в следующем: построить такой алгоритм, который по коду машины Тьюринга Т давал бы однозначный ответ самоприменима машина Т или нет (без запуска).
Для решения проблемы необходимо построить машину в алфавите
, которая, работая над кодом машины Тьюринга Т, останавливалась и выдавала 1, самоприменима, или 0.
Теорема: проблема самоприменимости алгоритмически не разрешена.
Доказательство: предположим противное: пусть существует машина , решающая проблему самоприменимости. Опираясь на неё, построим машину Тьюринга
, которая:
1) применима к кодам несамоприменимых машин Тьюринга,
2) не применима к кодам самоприменимых машин Тьюринга.
Для этого:
1) все команды машины объявляем командами машины
;
2) заключительное состояние машины
объявляем не заключительным для машины
;
3) добавляем заключительное состояние для
и команды:
Машина работает над кодами всех машин, в том числе и на своим.
Пусть
1) машина Тьюринга самоприменима, то есть применима к своему коду, но она не применима к кодам самоприменимых машин, значит является несамоприменимой.
Получено противоречие.
2) машина Тьюринга несамоприменима, но она применима к кодам несамоприменимых машин, значит самоприменима.
Получено противоречие.
3. Проблема применимости.
Машина Тьюринга работает в алфавите ,
- слово. Требуется по коду машины Тьюринга Т и слову
определить, применима ли машина Тьюринга к слову
или нет. В разработке такого алгоритма и заключается проблема применимости: построить машину Тьюринга
, на вход которой поступает
. В результате 1, если машина применима, иначе 0.
Теорема: проблема применимости алгоритмически неразрешима.
Доказательство: предположим противное: пусть машину Тьюринга можно построить, тогда наш код - это машина
. Подадим слово
, тогда машина
решала бы проблему самоприменимости, а она алгоритмически неразрешима.
4. Проблема определения общей рекурсивности алгоримов, т.е. проблема определения того, ко всяким ли допустимым в начале данным применим данный алгоритм.
алгоритм. Нужно построить
, на вход которой бы поступал номер алгоритма
. В результате: 1 – алгоритм всюду определён, 0 – алгоритм
не является общим.
Лемма: для любого перечисления любого множества общерекурсивных функций существует функция, не входящая в это перечисление.
Доказательство: рассмотрим все общерекурсивные функции и функцию
𝐹 общерекурсивная.
Будем предполагать, что , тогда
в нашем перечислении имеет номер
, тогда
совпадает с
, но
. Получено противоречие.
Теорема: проблема определения общерекурсивных функций алгоритмически неразрешима.
Доказательство: предположим противное: пусть алгоритм , решающий проблему, существует, тогда он определяет общерекурсивную функцию
. На основании
построим общерекурсивную функцию следующего вида:
Построенная функция перечисляет все общерекурсивные функции, а так как множество общерекурсивных функций не является счётным, то получили противоречие.
Теория графов.
Основные понятия и определения.
Графом называется пара
,
, где
- это множество вершин (в начальном варианте считается конечным и непустым),
- бинарное отношение, заданное на
, - множество дуг. Элементы множества
- упорядоченные пары – дуги, где
- начало,
- конец.
Вершины, соединённые дугой, называют инцидентными дуге. Между собой – смежными (соединенными одной дугой).
Дуги, имеющие общую вершину, - смежные.
Граф называется ориентированным (орграфом), если
Если в этом случае граф называют неориентированным (неоргаф).
- ребро, без направления.
Если необходимо представить объекты, связанные несколькими связями, используют мультиграф.
Граф, не содержащий кратных дуг и петель называется простым графом.
Если дугам или вершинам необходимо приписать числа, то речь идёт о взвешенном графе.
Для взвешенного графа :
- функция распределения меток вершин,
- множество значений;
- функция распределения меток дуг,
- множество значений.
Простой граф, в котором каждая пара вершин является смежной, называется полным графом.
Пусть , если
, то тогда это множество подмножеств
называется покрытием
.
Граф называется двудольным, если существует такое разбиение множества вершин на два подмножества (доли), что концы каждого ребра принадлежат разным подмножествам (долям), если при этом любые две вершины, входящие в разные дуги, являются смежными, то граф называется полным двудольным графом.
Полный двудольный граф, содержащий в одной доле один элемент – звезда.
Рассмотрим графы ,
.
Графы называются гомоморфными, если существует отображение (гомоморфизмом) со свойством:
Если , то
- изоморфизм, а графы
и
изоморфные.