- •Дискретная математика
- •Введение
- •1. Введение в теорию множеств
- •1.1. Множества
- •Основные понятия
- •Операции над множествами
- •Свойства операций объединения и пересечения
- •1.2. Отношения
- •1.2.1. Бинарные отношения. Основные определения
- •1.2.2. Свойства бинарных отношений
- •2. Теория графов
- •2.1. Основные понятия
- •2.2. Способы задания графов
- •2.4. Сети и их свойства1
- •3. Введение в математическую логику
- •3.1. Логика высказываний
- •3.1.1. Высказывания
- •3.1.1.1. Понятие высказывания
- •2.1.1.2. Логические связки
- •1.1.3. Условные высказывания
- •1.1.4. Эквивалентные высказывания
- •3.1.2. Аксиоматические системы
- •3.1.2.1. Умозаключения
- •3.1.3. Полнота в логике высказываний
- •3.1.3.1. Эквивалентные замены логических связок
- •3.2. Логика предикатов
- •3.2.1. Определение предиката
- •3.2.2. Кванторы. Их свойства и применение
- •3.2.2.1. Квантор всеобщности и квантор существования
- •4. Прикладная теория алгоритмов
- •4.1. Алгоритм: определение и основные свойства
- •4.2. Реализация управляющих алгоритмов
- •4.3. Формализация понятия алгоритма
- •4.4. Машина Тьюринга
- •4.5. Свойства машины Тьюринга
- •4.6. Реализация машины Тьюринга
- •4.7. Формальные системы и алгоритмы.
- •5. Комбинаторный анализ
- •5.1. Основное правило комбинаторики
- •5.2. Правило суммы
- •5.3. Правило прямого произведения
- •5.4. Перестановки
- •5.5. Число различных k-элементарных подмножеств n-элементарного множества
- •5.6. Число подмножеств данного множества
- •5.7. Размещение элементов множества
- •5.7. Размещения с повторениями
- •5.8. Размещения без повторений
- •5.9. Комбинации элементов с повторениями
- •6. Языки и грамматики
- •6.1. Основные определения
- •6.2. Формальные грамматики
- •6.3. Грамматики с ограничениями на правила
- •6.4. Способы записи синтаксиса языка
- •Метаязык Хомского
- •Метаязык Хомского-Щутценберже
- •Бэкуса-Наура формы (бнф)
- •Список рекомендуемой литературы
4. Прикладная теория алгоритмов
4.1. Алгоритм: определение и основные свойства
Понятие алгоритма является одним из основных понятий современной математики. Еще на самых ранних ступенях развития математики в ней стали возникать различные вычислительные процессы чисто механического характера. С их помощью искомые величины ряда задач вычислялись из исходных величин по определенным правилам и инструкциям. Со временем все такие процессы в математике получили название алгоритмов.
Первоначально теория алгоритмов возникла в связи с внутренними потребностями теоретической математики. Математическая логика, основания математики, алгебра, геометрия и анализ остаются и сегодня одной из основных областей приложения теории алгоритмов.
Другая ее область возникла в 40-х годах в связи с созданием быстродействующих электронных вычислительных и управляющих машин. Появление ЭВМ способствовало развитию теории алгоритмов, вызвало к жизни разделы этой теории (алгоритмические системы и алгоритмические языки), имеющие ярко выраженную прикладную направленность. Наконец, теория алгоритмов оказалась тесно связанной и с рядом областей лингвистики, экономики, физиологии мозга и психологии, философии, естествознания. Примером одной из задач этой области может служить точное описание алгоритмов, реализуемых человеком в процессе умственной деятельности.
Чтобы иметь возможность более уверенно решать алгоритмические задачи, возникающие в различных разделах теоретической и прикладной математики, необходимо иметь достаточно развитую теорию алгоритмов
Цели и задачи теории алгоритмов
Обобщая результаты различных разделов теории алгоритмов можно выделить следующие цели и соотнесенные с ними задачи, решаемые в теории алгоритмов:
- формализация понятия «алгоритм» и исследование формальных алгоритмических систем;
- формальное доказательство алгоритмической неразрешимости ряда задач;
- классификация задач, определение и исследование сложных классов;
- асимптотический анализ сложности алгоритмов;
- исследование и анализ рекурсивных алгоритмов;
- получение явных функций трудоемкости в целях сравнительного анализа алгоритмов;
- разработка критериев сравнительной оценки качества алгоритмов.
4.2. Реализация управляющих алгоритмов
Полученные в теории алгоритмов теоретические результаты находят достаточно широкое практическое применение, при этом можно выделить следующие два аспекта:
Теоретический аспект: при исследовании некоторой задачи результаты теории алгоритмов позволяют ответить на вопрос – является ли эта задача в принципе алгоритмически разрешимой – для алгоритмически неразрешимых задач возможно их сведение к задаче останова машины Тьюринга. В случае алгоритмической разрешимости задачи – следующий важный теоретический вопрос – это вопрос о принадлежности этой задачи к классу NP–полных задач, при утвердительном ответе на который, можно говорить о существенных временных затратах для получения точного решения для больших размерностей исходных данных.
Практический аспект: методы и методики теории алгоритмов (в основ-ном разделов асимптотического и практического анализа) позволяют осуществить:
- рациональный выбор из известного множества алгоритмов решения данной задачи с учетом особенностей их применения (например, при ограничениях на размерность исходных данных или объема дополнительной памяти);
- получение временных оценок решения сложных задач;
- получение достоверных оценок невозможности решения некоторой задачи за определенное время, что важно для криптографических методов;
- разработку и совершенствование эффективных алгоритмов решения задач в области обработки информации на основе практического анализа.