- •Основные понятия и определения дисциплины.
- •История развития теории алгоритмов.
- •Роль алгоритмов в науке и технике.
- •Понятие алгоритма и алгоритмического процесса.
- •2. Формальное определение алгоритма
- •Алгоритмический процесс.
- •Основные вопросы теории алгоритмов.
- •Классификация алгоритмов.
- •Свойства алгоритмов.
- •Логика предикатов.
- •Интерпретация.
- •Истинность и выполнимость формул.
- •Нормальные алгоритмы Маркова.
- •Гипотеза Черча.
- •Машина Тьюринга.
- •Рекурсивные функции.
- •Алгоритмически неразрешенные проблемы.
- •Сложность алгоритмов.
- •Временная и вычислительная сложность.
- •Понятие p и np-задач.
- •Темпоральные логики. Нечеткая и модальные логики.
- •Примеры задач np-класса.
- •Логическое программирование.
- •Дедуктивные теории.
- •Свойства дедуктивных теорий. Противоречивость
- •Полнота
- •Независимость аксиом
- •Разрешимость
- •Формальные аксиоматические теории.
- •Свойство выводимости.
- •Логические матрицы.
- •Модели Крипке для логики высказываний.
- •Формальное определение
- •Основные понятия мЛиТа.
- •Логические функции.
- •Правила логики высказываний. Законы логики высказываний.
- •Основные понятия
- •Равносильность. Логическое следствие.
- •Кванторы.
- •Категорические высказывания. Высказывание Категорическое
- •Связанные и свободные переменные. Свободные и связанные переменные
- •Операции над кванторами
- •Общая значимость.
- •Логические функции.
- •Алгоритмы сортировки данных. Сортировка слиянием.
- •Алгоритмы сортировки данных. Сортировка «пузырьком».
- •Алгоритмы сортировки данных. Сортировка вставками.
- •Алгоритмы сортировки данных. Сортировка Шейкером.
- •Алгоритмы сортировки данных. Быстрая сортировка.
- •Алгоритмы сортировки данных. Сортировка подсчетом.
- •Моделирование алгоритмов программ с помощью блок-схем.
- •История развития математической логики.
- •Логика высказываний.
- •Булева алгебра и основные логические тождества.
- •Пропозициональные формулы и логические функции.
- •Аксиоматический метод исчисления высказываний.
Нормальные алгоритмы Маркова.
А.А. Марков разработал строгую теорию определенного класса алгоритмов, которые называются нормальными алгорифмами Маркова. Для них исходными данными и результатами являются высказывания, записанные в виде слов, принадлежащих некоторому алгоритму А.
Если алфавит А входит во множество В, но АВ, то говорят, что В – расширение алфавита А.
Пусть RA и существует некоторое PR, в этом случае говорят, что Р – это вхождение подстроки в высказывание R.
Марковская подстановка – это замена первого вхождения подслова Р в слове R на слово Q: (P, Q)=PQ.
Если PR, то говорят, что Марковская подстановка не применима к слову R. Частными случаями Марковских подстановок являются пустые вхождения:
( ,Q), (P, ), ( , ). Здесь пустые слова в скобках эквивалентны .
Пример 1:
Если R=192375923A, тогда
(923, 0000)R=1000075923
Пример 2:
Пусть R=слово, тогда
(ра, да) (не применимо)
Пример 3:
R=паровоз
(овоз, _)R=пар_
Пример 4:
R=книга
( , ) R=книга
Большинство алгоритмов не являются нормальными алгорифмами. Однако, т. к. нормальные алгорифмы описаны с полной математической строгостью и точностью, то они могут служить средством обоснования математики и использоваться при исследовании алгоритмически неразрешимых проблем на основе гипотезы, называемой принципом нормализации. Он заключается в следующем: каков бы ни был алгоритм, для которого допустимыми исходными данными и соответствующими им результатами являются слова некоторого алфавита А, всегда существует эквивалентный ему нормальный алгоритм.
Гипотеза Черча.
Гипотеза Черча: понятием рекурсивной функции исчерпывается полностью понятие вычислимой функции.
На основе этой гипотезы российские ученые Колмогоров и Успенский сделали обобщение: если существует некоторая рекурсивная функция, то для нее всегда можно построить алгоритм. И наоборот, любой существующий алгоритм может быть выражен в понятиях рекурсивной функции.
Невозможность создания рекурсивной функции для решаемой задачи означает невозможность реализации алгоритма ее решения.
Гипотеза Черча и ее обобщение не имеет доказательства, потому что она оперирует нематематическими понятиями алгоритма в интуитивном смысле.
Машина Тьюринга.
В 1936 г. Тьюринг предложил модель абстрактной вычислительной машины, которая уточняла понятие алгоритма и оперировала с неограниченными ресурсами.
При желании можно создать реальную модель машины Тьюринга, но ресурсы такой машины становятся ограниченными.
Машина Тьюринга преобразует какие-либо объекты (например, строку символов, принадлежащих некоторому алфавиту) в некоторый искомый результат. При этом, хотя слова алгоритма машины Тьюринга могут иметь некоторый смысл, для теории алгоритмов это несущественно.
Для записи слов в машине Тьюринга используется бесконечная лента с последовательным доступом.
А – внешний алфавит машины Тьюринга.
Некоторый алфавит Р=р1, р2, …рn, характеризующий состояние машины в конкретный момент времени, называют внутренним алфавитом.
Состояние движения ленты описывается множеством возможных состояний -, …, dj, …, d0, d1, …, +.
Опишем принцип работы машины Тьюринга.
1) Чтение ai из ячейки d0, на которой позиционируется головка чтения/записи (R/W Head). Состояние машины в этот момент определяется pj.
Начальный кортеж: {ai, d0, p0}
2) В зависимости от значений ai и pj изменяется поведение машины:
{ax, dy, pz}
Данный кортеж означает: записать вместо ai символ aх, переместить головку чтения/записи в позицию dy, блоку управления перейти в состояние pz.
3) Если после второго шага состояние машины Тьюринга описывается исходным кортежем, то машина останавливается. Иначе – повтор пункта 2.
Компактная запись работы машины Тьюринга задается функциональной таблицей, определяющей конкретный процесс преобразования исходных данных.
-
p1
p2
…
pj
…
pm
a0
a1
a2
…
ai
{ax dy pz}
…
an
Если работа машины Тьюринга конечна во времени, то говорят, что она применима к исходному данному. Некоторое слово, записанное на ленте в момент остановки машины Тьюринга, будет результатом работы.