
- •Введение
- •1. Элементы теории множеств
- •1.1.Понятие множества.
- •1.2. Способы задания множеств.
- •1.3. Свойства множеств.
- •1.4. Конечные и бесконечные множества.
- •1.5. Подмножества.
- •1.6. Множество как абстракция.
- •1.7. Операции над множествами.
- •1.8.Декартово произведение множеств
- •1.9. Контрольные задания
- •2. Отношения
- •2.1. Общие положения
- •2.2. Задание отношений.
- •2.3. Виды отношений.
- •2.3.1. Рефлективность.
- •2.3.2. Симметричность.
- •2.3.3. Транзитивность.
- •2.4. Отношение эквивалентности
- •2.5. Функция.
- •2.6. Отношение как базовое понятие в реляционных
- •2.7. Контрольные задания
- •3. Элементы алгебры логики
- •3.1. Силлогизмы Аристотеля.
- •3.2. Высказывания.
- •3.3. Исчисление высказываний и
- •3.4. Функции алгебры логики
- •3.5. Равносильности алгебры логики
- •3.6. Одна логическая задача
- •3.7. Реализация функций в элементных базисах
- •3.9. Совершенная конъюнктивная нормальная форма
- •3.10. Реализация операции суммирования в компьютере
- •3.11. Контрольные задания
- •4. Элементы теории графов
- •4.1. История возникновения
- •4.2. Основные понятия
- •4.3. Матрицы графа
- •4.4. Деревья
- •4.5. Раскраска
- •5. Элементы теории алгоритмов
- •5.1. Интуитивное понятие алгоритма
- •5.2. Свойства алгоритмов
- •5.3. Вычислительные и комбинаторные алгоритмы
- •5.5. Асимптотические оценки сложности алгоритма
- •Порядки сложности алгоритма
- •5.6. Комбинаторный взрыв
- •6. Полиномиальные алгоритмы
- •6.1. Построение минимального остовного дерева.
- •6.1.1. Жадный алгоритм
- •6.1.2. Алгоритм Прима
- •6.2. Контрольные задания
- •7. Эвристические алгоритмы
- •7.1. Алгоритм последовательной раскраски
- •7.2. Контрольные задания
- •8. Сетевое планирование
- •8.1. Основные понятия
- •8.2 Параметры сетевого планирования
- •8.3. Вычисление параметров сетевого графика
- •8.4. Контрольные задания
- •9. Элементы абстрактной теории автоматов
- •9.1. Определение абстрактного автомата
- •9.2. Методы задания автоматов
- •9.3. Связь между моделями Мили и Мура.
- •9.4.1. Преобразование автомата Мура в автомат Мили
- •9.4.2. Преобразование автомата Мили в автомат Мура
- •9.5. Контрольные задания
- •10. Уточнение понятия алгоритма
- •10.1. Машина Тьюринга
- •Для каждого алгоритма u из класса к1 существует равносильный ему алгоритм l из класса к2.
- •10.2. Нормальный алгоритм Маркова
9.5. Контрольные задания
Представить в табличной и графической формах полностью определенный автомат Мили, имеющий 3 – 4 состояния, 2 – 3 входных и 2 – 3 выходных сигнала.
Подать на вход автомата входное слово из 10 символов. По таблицам переходов и выходов получить последовательность состояний и выходное слово (п.9.3).
Преобразовать автомат Мили в эквивалентный автомат Мура. Показать, что реакция автомата Мура на входное слово будет аналогична с точностью до сдвига на один такт (п.9.4.2).
Преобразовать полученный автомат Мура в эквивалентный автомат Мили (п.9.4.1), получив тем самым два эквивалентных автомата с различным числом состояний. Показать, что реакция последнего автомата Мили на входное слово будет аналогична реакции первоначального автомата Мили.
10. Уточнение понятия алгоритма
10.1. Машина Тьюринга
Одно из уточнений понятий алгоритма было дано Постом и А.Тьюрингом независимо друг от друга в 1936-1937гг. Основная мысль их заключалась в том, что алгоритмические процессы – это процессы, которые может свершить подходящим образом устроенная ”машина”. Ими были описаны гипотетические (условные) устройства, которые получили название «Машина Поста»(МП) и «Машина Тьюринга»(МТ). Так как в них много общего, то впоследствии их стали называть машинами Тьюринга.
Машина Тьюринга состоит из следующих частей:
Информационной ленты, представляющей бесконечную память машины. Это магнитная или бумажная бесконечная лента, разделенная на ячейки. В каждой ячейке можно поместить лишь один символ, в том числе ноль.
Считывающей головки – чувствительного специального элемента, способного обозревать содержимое ячеек. Лента может перемещаться вдоль головки так, что в каждый момент времени головка обозревает одну ячейку.
Управляющего устройства (УУ), которое в каждый момент времени находится в некотором состоянии. Число состояний конечно. Одно из состояний называется заключительным.
Множество символов, которые записываются в информационной ленте {S1,S2,….,Sm}, составляют внешний алфавит МТ.
При этом S1 соответствует пустому символу.
Множество состояний, в которых может находиться УУ, обозначим {q1,q2,…,qn}. Среди состояний одно будет соответствовать значительному, при котором МТ останавливается.
Кроме того, УУ вырабатывает три команды на перемещение ленты: П, Л, Н, где
П – обозревать соседнюю справа ячейку;
Л – обозревать соседнюю слева ячейку;
Н – продолжать обозревать ту же ячейку.
Совокупность символов {q1,q2,…,qn} и {П,Л,Н} образуют внутренний алфавит МТ.
Работа машины происходит в дискретном времени. В каждый момент времени МТ, находясь в состоянии qi, обозревает на ленте символ Sk, затем переходит в состояние qj, заменяет Sk на символ Sl и передвигает ленту (либо нет) на одну ячейку.
Считывающая головка и управляющее устройство образуют логический блок, который представляет из собой (2,3) - полюсник.
qiSk qjSl П(Л,Н)
Таким образом, команда МТ задается пятеркой символов: qi, Sk, qj,Sl, П, а сам ЛБ является по своей сути конечным автоматом.
Структура МТ имеет следующий вид:
|
|
|
S1 |
S2 |
… |
Sk |
… |
Sm |
|
|
|
|
|
|
|
Q - ячейка хранит символ состояния, а Р - ячейка - символ сдвига. В них происходит задержка данных символов до начала следующего такта.
В качестве начальной информации на ленту можно подать любую конечную последовательность символов внешнего алфавита U. Если после конечного числа тактов МТ останавливается, подавая сигнал об остановке, а на ленте оказывается информация B, то говорят, что машина применима к последовательности U и перерабатывает ее в последовательность B.
Если остановка и сигнал об остановке никогда не поступают, то говорят, что МТ не применима к последовательности U.
Рассмотрим функционирование МТ на примере сложения двух чисел, которые будем изображать в виде набора единиц.
Внешний алфавит будет состоять из символов: {1, +, }, где - пустой символ.
Внутренний алфавит будет состоять из четырех символов {q1, q2, q3, !}, где символ q1 означает начальное состояние, а ! - заключительное состояние.
Пусть
на ленте записана начальная информация:
1 2 3 4 5 6 7
-
1
1
+
1
МТ должна ее переработать в результирующую информацию:
1 2 3 4 5 6 7
-
1
1
1
Состояние ленты МТ в данный момент времени назовем ее конфигурацией.
Последовательность команд, реализующих операцию сложения, будет иметь вид:
1
q1
q3П
1 q3 1q3П
+ q3 +q3П
1 q3 1q3П
q3
1q2H 1 2 3
4 5 6 7
-
1
+
1
1
1
q2
1q2Л
1 q2 1q2Л
+ q2 +q2Л
1 q2 1q2Л 1 2 3 4 5 6 7
1
+
1
1
1
q1
q3П
+ q3 +q3П
1 q3 1q3П
1 q3 1q3П
q3 1q2H
1 2 3 4 5 6 7
-
+
1
1
1
1 q2 1q2Л
1 q2 1q2Л
1 q2 1q2Л
+ q2 +q2Л
q2 q1П 1 2 3 4 5 6 7
-
+
1
1
1
+ q1 !Н 1 2 3 4 5 6 7
-
1
1
1
Последовательность команд, реализующих операцию сложения, удобно задать таблицей, которую называют функциональной схемой алгоритма.
-
q1
q2
q3
1
q3П
1q2Л
1q3П
q1П
q1П
1q2H
+
!Н
+q2Л
+q3П
Каждому алгоритму, реализованному на МТ, соответствует своя функциональная схема. Рассматривая функциональную схему как описание программы, можно придти к понятию универсальной Машины Тьюринга.
Универсальная МТ реализует любой алгоритм, если на ее ленту, кроме исходных данных записана соответствующая программа.
Таким образом, интуитивное понятие алгоритма получает точное определение как процесс, который может быть представлен функциональной схемой и реализован МТ.
Основная гипотеза теории алгоритмов
Всякий алгоритм может быть задан посредством тьюринговой функциональной схемы и реализован в соответствующей машине Тьюринга.
Значение гипотезы для теории алгоритмов: расплывчатое понятие алгоритма отождествляется с точным понятием функциональной схемы МТ.
Обоснование гипотезы
Речь не идет о доказательстве гипотезы, так как она не является точным математическим понятием.
Уверенность в справедливости гипотезы основана главным образом на опыте. Все известные к настоящему времени алгоритмы могут быть заданы посредством тьюринговых функциональных схем. Кроме того, внутри самой теории алгоритмов основная гипотеза не применяется, то есть при доказательстве теорем этой теории ссылок на основную гипотезу не делается.
Вторым доводом в пользу справедливости гипотезы являются теоремы замкнутости и равносильности.
Смысл теорем замкнутости заключается в том, что класс алгоритмов, реализуемых в МТ, замкнут относительно композиции новых алгоритмов из уже имеющихся. Это последовательная и параллельная композиции, разветвление и цикл.
Теоремы равносильности связаны со сравнением различных определений понятия “алгоритм”.
Два алгоритма считаются равносильными, если они решают один и тот же класс задач. Это означает, что при фиксации двух таких классов (К1 и К2) справедливо утверждение: