
- •Министерство образования и науки Российской Федерации
- •Волгодонский инженерно-технический институт – филиал нияу мифи курс лекций
- •230201 «Информационные системы и технологии»
- •220301 «Автоматизация технологических процессов и производств»
- •Волгодонск
- •1. Алгебра множеств
- •1.1. Понятие множества. Обозначение принадлежности
- •1.2. Способы задания множеств
- •1.3. Множество подмножеств. Включение
- •1.5. Свойства операций над множествами
- •Основные свойства операций над множествами
- •1.6. Декартово произведение множеств
- •2. Отношения
- •Бинарные отношения
- •Способы задания бинарных отношений
- •Области определения и значений
- •Сечения
- •Симметризация отношения
- •2.6 Композиция отношений
- •2.7. Свойства бинарных отношений
- •3. Функциональные отношения
- •3.2. Мощность множества
- •3.3. Образы и прообразы
- •3.4. Подстановки как отображения
- •4. Отношение эквивалентности
- •4.1. Эквивалентность. Классы эквивалентности
- •4.2. Система представителей.
- •4.3. Классы вычетов по модулю т.
- •4.4. Матрица и граф отношения эквивалентности
- •5. Отношение порядка
- •5.1. Упорядоченность
- •5.2. Отношение строгого порядка
- •5.3. Весовые функции
- •5.4. Квазипорядок
- •5.5. Комплексный показатель качества
- •5.6. Структура упорядоченных множеств
- •5.7. Матрицы отношений порядка
- •5.8. Графы отношений порядка
- •6. Законы композиции
- •6.1. Композиция объектов. Таблица Кэли.
- •6.2. Законы композиции на множестве.
- •6.3. Свойства внутреннего закона композиции.
- •6.4. Регулярный, нейтральный и симметричный элементы.
- •6.5. Аддитивные и мультипликативные обозначения.
- •6.6. Алгебраические системы.
- •6.7. Подсистемы.
- •6.8. Делители нуля.
- •Примеры алгебраических систем
- •Группы подстановок
- •7.2. Кольцо многочленов
- •7.3. Кольцо множеств
- •7.4. Множество классов вычетов по модулю т
- •7.5. Поле комплексных чисел
- •7.6. Тело кватернионов
- •8. Пространства
- •Метрические пространства
- •8.2. Топологические пространства
- •8.3. Линейные пространства
- •8.4. Нормированные пространства
- •9. Логические функции
- •9.1. Основные определения
- •9.2. Табличное задание функции
- •9.3. Булевы функции
- •9.4. Зависимость между булевыми функциями
- •10. Алгебра логики
- •10.1.Булева алгебра
- •10.2. Двойственность формул булевой алгебры
- •10.3. Нормальные формы
- •10.4. Совершенные нормальные формы
- •10.5. Проблема разрешимости
- •10.6. Конституенты и представление функций
- •10.7. Алгебра Жегалкина
- •10.8. Канонические многочлены
- •10.9. Типы булевых функций
- •10.10. Функциональная полнота
- •11. Контактные схемы
- •12. Логические схемы
- •13. Минимизация булевых функций
- •14. Конечные автоматы
- •14.1 Основные определения
- •14.2 Состояния
- •14.3 Типы конечных автоматов
- •14.4 Представления конечных автоматов
- •14.5 Анализ конечных автоматов
- •14.6 Минимизация автоматов
- •14.7. Эквивалентное разбиение
- •15. Машины тьюринга
- •15.1 Алфавит, буквы, слова. Операции над словами. Запись слов на бесконечной ленте
- •15.2. Машина Тьюринга. Описание. Примеры машин
- •15.3. Сочетания машин Тьюринга: композиция и объединение. Машины с полулентами, разветвление и итерация машин
- •15.4. Алгоритмически разрешимые и неразрешимые проблемы
- •15.5. Универсальная машина Тьюринга
15.4. Алгоритмически разрешимые и неразрешимые проблемы
Говорят, что существует тьюрингов алгоритм решения класса задач Z, если существует такая машина Тьюринга Т с внешним алфавитом А, что:
1) для условия любой
задачи
существует слово
uz
над
А, кодирующее
условие задачи
z
(дающее его
запись на ленте машины);
2) машина Т применима к слову uz;
3) vz = T(uz) является словом, кодирующим ответ задачи z.
Сама работа машины Т над словом uz называется применением алгоритма, заданного машиной Т, к задаче z.
Класс задач Z, для которого существует решающий его тьюрингов алгоритм, называется алгоритмически разрешимой по Тьюрингу проблемой Z.
Проанализировав содержание предыдущих пунктов, можно сказать, что разрешимыми по Тьюрингу проблемами являются проблема сложения натуральных чисел и проблема удвоения натурального числа.
Возникает естественный вопрос: «Существуют ли алгоритмически неразрешимые по Тьюрингу проблемы?» Оказывается, есть. «Поставщиком» таких проблем является сама теория машин Тьюринга.
Универсальный алфавит; универсальная кодировка
Каждая машина Тьюринга имеет три алфавита: внешний А, внутренний Q и алфавит сдвигов S. Все три алфавита - конечные множества, и можно считать, что
.
Тогда любое слово
над
однозначно
разбивается на слоги (подслова) (возможно,
и однобуквенные) над алфавитами A,
Q,
S.
В частности,
любую клетку программы машины как
отображения
можно закодировать как пятибуквенное
слово над
,
задающее соответствие
.
Если
условиться, что программа выписывается
последовательно по столбцам сверху
вниз, то мы получим стандартную запись
программы в виде «длинного» слова над
алфавитом
.
Поставим
следующий вопрос: «Нельзя ли выбрать
достаточно простой алфавит, с помощью
слов которого можно будет кодировать
все буквы, а значит, и слова над
(т.
е. внешние
слова и программу машины)?» Оказывается,
в качестве такого простого алфавита,
называемого универсальным, можно взять
двухбуквенный алфавит {0; 1}. Опишем
стандартную кодировку букв алфавита
словами над
{0; 1} с помощью таблицы
кодирования (см. табл. 15.6).
Кодировка с помощью этой таблицы называется стандартной. (Ясно, что стандартная кодировка допускает однозначное декодирование дли любых A, Q, S. Поэтому можно считать, что всегда применяется кодировка с помощью {0; 1} и что все машины работают со словами над алфавитом {0; 1}.
Таблица 15.6.
Буква |
Код (слово) над {0; 1} |
|
Сдвиги |
-1 |
101 |
0 |
1001 |
|
+1 |
10001 |
|
Буквы |
Λ |
100001 |
|
10000001 |
|
|
1000000001 |
|
… |
… |
|
|
|
|
… |
… |
|
Состояния |
|
1000001 |
|
100000001 |
|
… |
… |
|
|
|
|
… |
… |
Машина Тьюринга Т называется самоприменимой, если она применима к слову иТ стандартной записи на ленте своей программы.
Это определение разбило все множество машин Тьюринга МТ на два класса: MTS - класс самоприменимых и MTпS - класс несамоприменимых машин.
Сформулируем проблему распознавания самоприменимости: «Существует ли такая машина Тьюринга S, которая умеет распознавать самоприменимость, т. е. по слову иТ, кодирующему программу машины Т, сообщать, является ли машина Т самоприменимой или нет?» Оказывается, имеет место следующая теорема.
Теорема 15.10. Проблема распознавания самоприменимости является алгоритмически неразрешимой по Тьюрингу проблемой.
Допустим противное, т. е. что существует машина S, решающая проблему самоприменимости, причем
S (иТ) = 1, если Т - самоприменима,
S (иТ) = 0, если Т - несамоприменима.
Если машина S
существует, то ее можно перестроить в
машину
,
которая в случае, когда иТ
-
кодировка
программы несамоприменимой машины,
перерабатывает иТ
в слово
«0» и останавливается, а в случае, когда
иТ
-
кодировка
программы самоприменимой машины,
«выпечатывает», уходя вправо,
бесконечный хвост «1». Покажем, что
существование машины
,
а значит и S,
ведет к
противоречиям. Для этого применим
к слову
.
Возможны
два исхода:
а) после применения к машина напечатает 0 и остановится, но, с одной стороны, это означает (0) - несамоприменимость, а с другой (остановка машины) - самоприменимость;
б) в результате применения к идет без остановки печать бесконечного хвоста единиц. Хвост единиц означает теперь самоприменимость, а это противоречит тому, что машина не останавливается.
Полученное противоречие и доказывает теорему.