6.1. Интуитивное понятие об алгоритме
Крупнейшим достижением науки ХХ века является теория алгоритмов – новая математическая дисциплина.
Слово «алгоритм» происходит от имени узбекского ученого-математика Хорезми (Ал-Хорезми), который в IX веке н.э. разработал правила 4-х арифметических действий над числами в десятичной системе счисления.
В 30-е годы ХХ в. Понятие алгоритма стало объектом математического изучения, а с появлением ЭВМ получило широкую известность. Разработка алгоритмов является необходимым этапом автоматизации.
Алгоритм – это правило, сформированное на некотором языке и определяющее процесс переработки допустимых исходных данных в искомые результаты. Допустимыми исходными данными для этого правила являются предложения языка исходных данных.
Под алгоритмом понимается процесс последовательного построения (вычисления) величин, протекающим в дискретном времени так, что в каждый следующий момент времени система величин получается по определенному закону из системы величин, имевшихся в предыдущий момент.
Правила описания алгоритмов:
Понятность для исполнителя
Массовость (т.е. допустимость для него всех предложений языка исходных данных)
Определенность (все шаги алгоритма детерминированы и четко определены)
Результативность
Говорят, что алгоритм применим к допустимому исходному данному, если с его помощью, отправляясь от этого исходного данного, можно получить искомый результат. При этом алгоритмический процесс оканчивается после конечного числа шагов, и если на каждом шаге нет препятствий для его выполнения.
Поскольку требование завершения алгоритмического процесса за конечное число шагов не учитывает реальных возможностей, связанных с затратами времени и ресурсов, то говорят, что при этом алгоритм потенциально выполним.
Основные требования, предъявляемые к алгоритмам:
Алгоритм имеет дело с данными и выдает результат, т.е. алгоритм имеет вход и выход
Данные для своего размещения требуют памяти. Единицы измерения объема данных и памяти согласованы
Алгоритм состоит из отдельных элементарных шагов или действий (дискретность) , причем, множество этих шагов конечно.
Последовательность шагов алгоритма детерминирована
Алгоритм применяется не к одной задачи, а к классу задач (массовость).
Связь между шагами можно представить в виде ориентированного графа, называемого блок-схемой алгоритма. В этом орграфе вершины соответствуют шагам, а дуги – переходам между шагами. Вершины блок-схем могут быть двух видов: 1) вершины, из которых выходит одна дуга, так называемые операторы , 2) вершины, их которых выходят две дуги, так называемые предикаты или логические условия
Важной особенность блок-схем является то, что связи, которые она описывает, не зависят от того, являются ли шаги элементарными или представляют собой самостоятельные алгоритмы.
Декомпозиция алгоритма – способ разбиения алгоритма на блоки - широко используется в практике программирования. С помощью блок-схем можно несколько алгоритмов, рассматриваемых как блоки, связать в один большой алгоритм.
Как и в повседневной жизни, роль алгоритмов в науке и технике очень велика. Алгоритм – это братство науки и техники. Каждый новый алгоритм немедленно вписан в золотой фонд науки. При этом интересны как новые алгоритмы, так и алгоритмы для решения вновь поставленных проблем. Охота за алгоритмами увлекательное и важное дело, которому отдают большую часть времени многие ученые.
- Литература
- Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- 1.2.Операции над множествами
- 1.3. Булева алгебра множеств
- 1.4. Разбиения и покрытия
- 2. Отношения бинарные и n-арные
- 2.1. Декартово произведение
- 2.2. Бинарные отношения (соответствия)
- 2.3. Операции над бинарными отношениями
- 2.4. Функциональные отношения
- 2.5. Бинарные отношения на множестве
- 2.6. Алгебраические системы
- 3. Основные понятия теории графов
- 3.1. Абстрактный граф
- 3.2. Графическое представление бинарного отношения
- Множеств а и в
- 3.3. Матричные представления графа
- 3.4. Части графа
- 3.5. Достижимость и связность
- 3.6. Доминирующие множества графа
- 3.7. Независимые множества графа
- 3.8. Раскраска графа
- 3.9.Планарность графов
- 3.10. Инварианты графов
- 4. Булевы функции
- 4.1. Способы задания булевой функции
- 4.2. Элементарные булевы функции и алгебраические формы
- 4.3. Интерпретации булевой алгебры
- 4.4. Нормальные формы булевых функций
- 4.4.1. Дизъюнктивные нормальные формы
- 4.4.2. Конъюнктивные нормальные формы
- 4.5 Полнота и замкнутость системы логических функций
- 4.6. Локальные упрощения днф
- 4.6.1. Удаление избыточных элементарных конъюнкций
- 4.6.2. Удаление избыточных литералов
- 4.7. Графическое представление булева пространства и булевых функций
- 4.7.1. Булев гиперкуб
- 4.7.2. Развертка гиперкуба на плоскости. Карта Карно
- 4.8. Минимизация днф
- 4.8.1. Метод Квайна-МакКласки
- 4.8.2. Метод Блейка-Порецкого
- 4.8.3. Визуально-матричный метод минимизации
- 5. Элементы математической логики
- 5.1 Алгебра высказываний
- Всякое высказывание логично следует из самого себя.
- 2. Закон противоречия:
- Если из а следует b, а b ложно, то а тоже ложно.
- 5.2. Логические отношения
- 5.3.Проверка правильности рассуждений
- 5.4. Решение логических задач методом характеристического уравнения
- 5.6. Кванторы
- 5.7 Эквивалентные соотношения. Префиксная нормальная форма
- 6. Основы теории алгоритмов
- 6.1. Интуитивное понятие об алгоритме
- 6.2. Три типа алгоритмических моделей
- 6.3. Кризис теории множеств антиномии. Выводы из антиномий
- 6.4. Машины Тьюринга как модели алгоритмов
- 6.5. Алгоритмы решения некоторых задач теории графов на графах
- 7. Конечный автомат и его описание.
- 7.2. Представления автомата
- 7.3. Связь между моделями Мили и Мура
- 7.4. Автомат с абстрактным состоянием. Булев автомат
- 7.5. Понятие о регулярных выражениях алгебры событий.
- 7.6. Задачи абстрактной теории конечных автоматов
- 8. Комбинаторные задачи и методы комбинаторного поиска
- 8.1. Задачи подсчета числа комбинаторных решений
- 8.2. Особенности оптимизационных комбинаторных задач
- 8.3. Вычислительная сложность
- 8.4. Методы комбинаторного поиска
- 8.5. Задача о кратчайшем покрытии и методы ее решения
- 8.5.1. Постановка задачи
- 8.5.2. Приближенные методы решения задачи
- 8.5.3. Точный метод
- Вопросы к зачету
- 28. Нормальные формы булевых функций. Дизъюнктивные нормальные формы
- 44. Эквивалентные соотношения. Префиксная нормальная форма
- Практический раздел Контрольная работа Указания по выбору варианта
- Контрольное задание №1. Используя диаграммы Эйлера-Венна, решить задачу
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №2. Получить сднф, скнф, используя таблицу истинности. Построить днф, кнф, упростив выражение.
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №3. Упростить схему (рис. 2)
- Методические указания
- Задачи для самостоятельного решения
- Задачи для самостоятельного решения
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №6. Найти инварианты неориентированного графа, заданного матрицей смежности
- Методические указания
- Задачи для самостоятельного решения