- •Дискретная математика.
- •Множества.
- •Примеры
- •Или по другому
- •Операции над множествами.
- •Основные свойства операций над множествами.
- •Алгебра высказываний.
- •Логические операции над высказываниями.
- •Отрицание.
- •Конъюнкция.
- •Эквиваленция
- •Импликация.
- •Формулы алгебры высказываний.
- •Элементарные высказывания, символы логических переменных – формулы;
- •Если f1 и f2 – формулы алгебры высказываний, то
- •Других формул алгебры высказываний нет.
- •Равносильность формул.
- •Совершенная дизъюнктивная нормальная форма.
- •Приведение формулы к сднф.
- •Совершенная конъюнктивная нормальная форма.
- •Приведение формулы к скнф.
- •Минимизация днф.
- •Способы задания булевых функций.
- •Табличный способ задания.
- •Графический способ задания.
- •Аналитический способ задания.
- •Элементы теории графов.
- •Матрицы графов.
- •Некоторые общие понятия теории графов.
- •Взвешенные графы и алгоритмы поиска кратчайшего пути.
- •Задача о кратчайших путях.
- •Элементы теории алгоритмов.
- •Понятие автомата.
- •Машина Тьюринга.
- •Автомат Мили.
- •Правило суммы.
- •Правило прямого произведения.
- •Размещения с повторениями.
- •Размещения без повторений.
- •Перестановки.
- •Сочетания.
- •Сочетания с повторениями.
Элементы теории алгоритмов.
Здесь будет изложен подход к теории алгоритмов как к теории абстрактной вычислительной машины (абстрактной машины Тьюринга). Тьюринг (1912 - 54 г) – английский математик и инженер, один из создателей первой английской ЭВМ. Теория алгоритмов представляет собой теоретические основы прикладной математики, особенно ее компьютерной части, т.к. она дает ответы на вопросы: «Что значит вычислить?», «Всегда ли возможно решить задачу?», «Что значит задача?» и т. д.
Абстрактная машина Тьюринга может рассматриваться как простейшая и в тоже время всеохватывающая модель любой реальной ЭВМ.
Алгоритм – первичное, неопределяемое понятие. Вспомним, например, алгоритм нахождения наибольшего общего делителя двух натуральных чисел a и b.
-
Разложить a на простые множители.
-
Повторить п. 1 для b и перейти к п. 3.
-
Составить произведение общих простых множителей разложений a и b с показателями, равными наименьшим из показателей вхождения в разложения.
Общие понятия.
-
С каждым алгоритмом связано множество возможных исходных данных этого алгоритма. Например, в случае алгоритма сложения столбиком, множество всевозможных исходных данных есть множество пар натуральных чисел.
-
Пусть Х – множество исходных данных алгоритма А. Применим А к Х. При этом возможны три исхода.
а) Применение А к Х закончится в конечное число шагов, и А даст результат.
b) Применение А к Х закончится, но безрезультатно.
с) Применение А к Х вовсе не закончится, т.е. алгоритм будет работать бесконечно.
В первом случае будем говорить, что алгоритм А применим к Х, а в двух других будем говорить, что алгоритм неприменим к Х. Таким образом, А применим к Х тогда и только тогда, когда применение А к Х заканчивается получением результата. Множество тех Х, к которым применим А, называется областью применимости алгоритма.
Понятие автомата.
Понятие алгоритма вводилось до сих пор чисто интуитивно. Понятие автомата позволяет уточнить понятие алгоритма. А это, в свою очередь, позволяет решить вопрос об алгоритмической разрешимости той или иной проблемы. В частности с помощью машины Тьюринга американским ученым Черчем (1903-1992) был получен результат при решении проблемы распознавания выводимости в математической логике: для любых заданных формул R и S в логическом исчислении определить существует ли дедуктивная цепочка, ведущая от R к S или нет.
Теорема Черча.
Проблема распознавания выводимости алгоритмически неразрешима.
Автоматы, изучаемые в последующих разделах, можно рассматривать как механизмы, состоящие из блока управления, который может пребывать в различных состояниях (внутренние состояния автомата), а также входного и выходного каналов. Входной канал воспринимает (считывает) сигналы из внешней среды, а выходной канал выдает сигналы во внешнюю среду. Природа состояний и сигналов безразлична, их можно рассматривать как некоторые символы (буквы), образующие соответственно алфавит состояний (или внутренний алфавит) – Q, входной алфавит – X, и выходной алфавит – Y. Каждая команда может быть записана в виде
(*)
где qi , qj – внутренние состояния автомата, xr – входной символ, уs – выходной символ.
Пусть на некотором такте t0 блок управления установлен в состояние qi, и входной канал воспринимает символ xr. Если в программе имеется команда (*), то в этом же такте выходной канал выдает символ xr, а к следующему такту t0 + 1 блок управления перейдет в состояние qj . Если такой команды нет, то автомат блокируется. В этом и заключается функционирование автомата. Множество внутренних состояний автомата является его внутренней памятью.
Таким образом, автомат – это пятерка (Q, X, Y, Ψ, Φ), где Q, X, Y – алфавиты, Ψ – функция переходов отображение Q X в Q, Φ – функция выходов (отображение Q X в Y). Пусть зафиксировано некоторое состояние автомата. Тогда рекуррентные соотношения
где q(t), q(t + 1) Q, x(t) X, y(t) Y, дополненные начальным условием q(1) = q0, задают оператор T, который преобразует всякую конечную последовательность входящих символов
x = x(1) x(2) ...x(r) в некоторую последовательность выходных символов
y = Tx = y(1) y(2) .... y(r) .