- •Глава 16. Специальные циклы и метрика графов 345
- •Глава 17. Графовые инварианты 404
- •Введение
- •Цели и задачи преподавания дисциплины «дискретная математика»
- •Модуль 1. Основы Теории множеств (2 кредита)
- •Комплексная цель и задачи изучения модуля
- •Глава 1. Исчисление множеств
- •1.1. Понятие множества
- •1.2. Способы задания множеств
- •1.3. Подмножество
- •2. Пустое множество не имеет собственных и истинных подмножеств.
- •3. Одноэлементное множество имеет два подмножества - сaмo себя и , т.Е. Не имеет собственных подмножеств.
- •Множество – это многое, мыслимое как единое.
- •Глава 2. Операции над множествами
- •2.1. Объединение множеств
- •2.2. Пересечение множеств
- •2.3. Разность множеств
- •2.4. Дополнение множества
- •2.5. Тождества алгебры множеств
- •2.6. Доказательства тождеств с множествами
- •Глава 3. Упорядоченные множества
- •3.1. Кортеж (Упорядоченное множество)
- •3.2. Декартово произведение
- •3.3. Операция проектирования множеств
- •3.4. График
- •Декартово произведение множеств позволяет перейти к графическому представлению упорядоченных множеств.
- •Глава 4. Отношения
- •4.1. Основные понятия отношений
- •4.2. Основные свойства отношений
- •4.3. Операции над отношениями
- •4.4. Основные свойства специальных отношений
- •4.5. Разбиение множеств
- •4.6. Отношение порядка
- •Использование отношений позволяет строить модели взаимосвязей между любыми обьектами в природе.
- •5. Соответствия
- •5.1. Определение соответствия
- •5.2. Операции над соответствиями
- •5.3. Понятия образа и прообраза при соответствии
- •5.4. Доказательства тождеств с соответствиями
- •5.5. Основные свойства соответствий
- •5.6. Функция
- •Глава 6. Упорядоченные бесконечные множества
- •6.1. Основные сведения об упорядоченных бесконечных множествах
- •6.2. Проблема континуума
- •Глава 7. Основные понятия теории мультимножеств
- •7.1. Понятие мультимножества
- •7.2. Операции над мультимножествами
- •Возможность многократного вхождения элементов в мультимножество создает новое качество и позволяет расширить класс описываемых, анализируемых и синтезируемых математических объектов.
- •8. Нечеткие множества
- •8.1. Нечеткие высказывания
- •8.2. Операции над нечеткими множествами
- •8.3. Нечеткие отношения и соответствия
- •Тестовые задания к модулю 1
- •24. Множество называется графиком, если каждый его элемент ...
- •25. Соответствие может быть задано … способом.
- •Критерии оценки
- •Нечеткие и приближенные высказывания, множества, соответствия и отношения позволяют формально задавать расплывчатую информацию в виде, удобном для обработки на эвм.
- •Глоссарий к модулю 1
- •Глава 1.
- •Глава 2.
- •Глава 3.
- •Глава 4.
- •Глава 5.
- •Глава 6.
- •Глава 7.
- •Глава 8.
- •Галилей Модуль 2. Основы теории алгоритмов (1,5 кредита) Комплексная цель и задачи изучения модуля
- •Глава 9. Введение в теорию алгоритмов
- •9.1. Понятие алгоритма
- •9.2. Основные свойства алгоритмов
- •9.3. Классификация алгоритмов
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •10.1. Преобразование слов в произвольных абстрактных алфавитах
- •10.2. Числовые функции
- •10.3. Построение алгоритмов по принципу «разделяй и властвуй»
- •10.4. Представление алгоритма в виде детерминированного устройства
- •10.5. Универсальные схемы алгоритмов
- •10.5. “Жадные” алгоритмы
- •10.6. Нечеткие (расплывчатые) алгоритмы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •11.1. Анализ алгоритмов
- •11.2. Сложность алгоритмов
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Тестовые задания к модулю 2
- •Критерии оценки
- •Модуль 3. Алгебра логики (1,5 кредита) Комплексная цель и задачи изучения модуля
- •Глава 12. Элементы алгебры логики
- •12.1. Логические функции
- •12.2. Основные логические тождества и законы
- •12.3. Булевы функции одной и двух переменных
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •13.1. Дизъюнктивная и конъюнктивная нормальные формы
- •13.2. Способы перехода от нормальных к совершенным нормальным формам
- •2. Графический способ.
- •13.4. Функциональная полнота бф
- •13.3. Алгебра Жегалкина
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •14.1. Реализация булевых функций
- •14.2. Минимизация булевых функций
- •14.3. Карты Карно
- •14.4. Метод Квайна - Мак-Класски
- •14.5. Переход от бф к простейшим комбинационным схемам
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Критерии оценки
- •Глоссарий к модулю 3
- •Модуль 4. Основы Теории графОв (2 кредита) Комплексная цель и задачи изучения модуля
- •Глава 15. Введение в теорию графов
- •15.1. Способы задания графов и виды графов
- •15.1.1. Способы задания графов
- •15.1.2. Виды графов
- •15.1.3. Нечеткие неориентированные графы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •15.2. Маршруты, цепи, циклы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •При моделировании систем модели и алгоритмы нахождения маршрутов, цепей, циклов, разрезов, связности графов позволяют строить эффективные алгоритмы преобразования графов.
- •15.3. Нахождение кратчайших маршрутов (цепей)
- •15.3.1. Алгоритм Форда
- •15.3.2. Алгоритм Дейкстры
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Алгоритмы Форда и Дейкстры являются эффективным способом определения кратчайшей по стоимости цепи между двумя вершинами графа.
- •Глава 16. Специальные циклы и метрика графов
- •16.1. Эйлеровы и гамильтоновы цепи и циклы
- •16.1.1. Связь между эйлеровыми и гамильтоновыми графами
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.2. Алгоритмы построения гамильтонова цикла
- •16.2.1. Алгоритм Робертса ─ Флореса
- •16.2.2. Алгебраический метод
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.3. Задача о коммивояжере и алгоритмы ее решения
- •16.3.1. Алгоритм Хелда и Карпа
- •16.3.2. Геометрический метод решения
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.4. Расстояния на графах
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.5. Деревья
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Глава 17. Графовые инварианты
- •17.1. Цикломатическое и хроматическое числа графа
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •17.2. Числа внутренней и внешней устойчивости графа
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Числа внутренней и внешней устойчивости относятся к инвариантам графа. Они позволяют определить специальные группы вершин в графах.
- •17.3. Планарность графов
- •17.3.1. Плоские и планарные графы
- •17.3.2. Эвристики для определения планарности
- •17.3.3. Минимизация пересечений ребер графов
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •17.4. Ориентированные графы
- •17.4.1. Способы задания
- •17.4.2. Решение стандартных графовых задач с использованием орграфов
- •17.4.3. Выделение сильносвязных компонент
- •17.4.4. Нечеткие ориентированные графы
- •Примеры решения задач
- •Вопросы
- •Задания для самостоятельной работы
- •175 Гиперграфы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Тестовые задания к модулю 4
- •Критерии оценки
- •Глоссарий к модулю 4 Глоссарий к главе 1
- •Глоссарий к главе 2
- •Глоссарий к главе 3
- •Библиографический комментарий
- •Литература
- •Заключение
- •Приложение 1
- •Учебное издание Гладков Леонид Анатольевич, Курейчик Владимир Викторович, Курейчик Виктор Михайлович
Тестовые задания к модулю 2
1. Сколько типов основных универсальных алгоритмических моделей Вам известно
2
3
4
1
2. Какие из перечисленных ниже понятий относятся к свойствам алгоритмов
Детерминированность
Понятность
Результативность
Эквивалентность
3. Рекурсия - это:
Функция
Свойство алгоритмов
Класс алгоритмов
Способ задания функций
4. Какой (или какие) из перечисленных ниже терминов не относятся к понятию «сложность алгоритма»
Экспоненциальные алгоритмы
Эмпирические алгоритмы
Полиномиальные алгоритмы
Случайные алгоритмы
5. Какие из перечисленных ниже понятий не относятся к характеристикам алгоритмов
Число операций
Временная сложность
Объем информации
Корректность
6. Какого рода задачи решаются, как правило, с помощью детерминированных полиномиальных алгоритмов
Задачи на допустимость
Задачи на оптимальность
NP - полные задачи
NP - сложные задачи
7. Какие из перечисленных ниже понятий не являются универсальными алгоритмическими схемами
Алгоритм Маркова
Алгоритм Ляпунова
Алгоритм Чена
Алгоритм Ван - Хао
Является надмножеством множества B
8. Алгоритм - это
Набор правил
Код программы
Вычислительная процедура
Программа на машинном носителе
Псевдокод
9. Установите соответствие (свойство - название)
А) Свойство алгоритма
Б) Сложность алгоритма
В) Способ задания функции
Г) Набор правил
1) Рекурсия
2) Полиномиальная
3) Алгоритм
4) Понятность
Критерии оценки
Для оценки уровня полученных знаний при выполнении разработанных тестовых заданий по модулю 2 предлагается использовать следующую шкалу:
85 – 100% правильных ответов – оценка «отлично»;
70 – 85% правильных ответов – оценка «хорошо»;
55 – 70% правильных ответов – оценка «удовлетворительно»;
менее 55% правильных ответов – оценка «неудовлетворительно».
При анализе алгоритма определяется количество времени, необходимое для его выполнения на ЭВМ. Это приблизительное количество времени, затраченное на выполнение стандартных или приведенных к ним операций, выполняемых алгоритмом.
Для выбора «лучшего» алгоритма необходимо получение оценок или границ для объема памяти и времени работы ЭВМ, которое потребуется алгоритму для обработки конкретных данных.
ГЛОССАРИЙ К МОДУЛЮ 2
Краткость символики способствует постижению сути дела, в то время как словесное выражение перегружает разум.
Т. Клайн
Абстрактный алфавит - это конечная совокупность объектов, называемых буквами или символами этого алфавита.
Алгоритм - это набор правил, указывающих определенные действия, в результате которых входные данные преобразуются в выходные.
Алгоритм – это преобразование слов в абстрактном алфавите.
Алгоритм – это алфавитный оператор, задаваемый с помощью конечной системы правил.
Алгоритм – это алфавитный оператор с правилами, определяющими его действие.
Алгоритмический процесс – это последовательность действий в алгоритме.
Алгоритмический язык – это язык, на основании которого формулируется алгоритм.
Алфавитный оператор - функция, которая задает соответствие между словами входного и выходного абстрактных алфавитов.
Временная сложность алгоритма – это изменение алгоритма во времени или время, затраченное алгоритмом как функция размерности задачи.
Вторая универсальная алгоритмическая модель – это числовая функция, которая каждому алгоритму ставит в соответствие вычисляемую им функцию.
Вычислимая функция – это функция, для которой имеется способ получения ее значений.
Вычислительная сложность алгоритма обычно называется временем работы алгоритма.
Графические схемы алгоритмов (ГСА) - представляют собой графическую интерпретацию алгоритмов Ляпунова.
Детерминированность – это свойство алгоритма выполнять на каждом шаге однозначные и независимые от исходных данных действия.
Детерминированные алгоритмы состоят из операций, результаты каждой из которых определены однозначно.
Длина слова в абстрактном алфавите определяется числом символов.
Жадный алгоритм на каждом шаге делает локально оптимальный выбор, - в предположении, что итоговое решение окажется оптимальным.
Задачей на допустимость называется задача определения хотя бы одного возможного решения.
Задачей на оптимальность считается задача определения допустимого решения, дающего экстремум функции.
Имитирующие алгоритмы создаются на основе описаний действий объектов, наблюдений, зависимости исходных данных от изменяющихся условий.
Интуиция — это знание, полученное на основе опыта, но не подвергнутое научному анализу.
Корректность – это свойство алгоритма при решении определенного класса задач давать правильные результаты для всех допустимых исходных данных.
Конфигурацией машины Тьюринга называется ее полное состояние, по которому можно однозначно определить дальнейшее поведение машины.
Лингвистическая переменная - это кортеж Л = <, Т, X>, где — наименование; Т — множество значений переменной, представляющих наименования, областью определения которых является X.
Линейный алгоритм - это алгоритм, у которого зависимость времени решения от числа входов носит линейный характер.
Логическими схемами алгоритмов (ЛСА) называют выражения, составленные на основе абстрактного алфавита и состоящие из последовательной цепочки операторов и логических условий.
Массовость — это свойство алгоритма быть применимым для множества исходных данных.
Машина Тьюринга (МТ) - детерминированное устройство, состоящее из трех частей: ленты, считывающего устройства (головки) и управляющего устройства (УУ).
Многозначный алфавитный оператор каждому входному слову может поставить в соответствие некоторое множество выходных слов.
NP-полные (Nondeterministic Polynomial - недетерминированные полиномиальные) задачи – задачи, для которых не найдены полиномиальные алгоритмы, однако и не доказано, что таких алгоритмов не существует.
Недетерминированные алгоритмы состоят из операций, результаты каждой из которых определены неоднозначно.
Неправильный алгоритм – алгоритм, который для некоторого входа не останавливается или дает неправильный результат.
Нечеткий (расплывчатый) алгоритм — это упорядоченное множество расплывчатых инструкций, которые при их реализации позволяют получать приближенное решение задач.
Нечеткий алгоритм принятия решений - служит для получения приближенного описания стратегии и решающего правила.
Нормальные алгоритмы Маркова (НАМ) основаны на использовании абстрактных алфавитов и марковских подстановок. В качестве исходных данных и конечных результатов используют строки символов, т.е. слова абстрактных алфавитов.
Область определения алфавитного оператора – это множество слов, на котором он определен.
Однозначный алфавитный оператор ставит в соответствие каждому входному слову одно выходное слово.
Операнды — это объекты, над которыми выполняются операции, предписываемые алгоритмами.
Операторный алгоритм Ван-Хао задается последовательностью приказов специального вида. Каждый приказ имеет определенный номер и указание, какую операцию необходимо выполнить над заданным объектом и с каким номером следует далее выполнять действие над результатом этой операции.
Определенность – это свойство алгоритма быть точным и полностью задает все его действия.
Первая универсальная алгоритмическая модель – определяется на основе соответствия между словами в абстрактном алфавите.
Подкласс P (полиномиальные алгоритмы) - множество всех задач на допустимость, которые могут быть решены на основе детерминированного алгоритма за полиномиальное время.
Поиск в глубину – это алгоритм нахождения решения, когда в каждой исследуемой вершине дерева решений выбирается один из возможных путей и исследуется до конца; при этом другие пути не рассматриваются, пока сохраняется возможность получить конкретный результат. Если такая возможность отсутствует, процесс поиска продолжается от ближайшей вершины дерева решений, имеющей неисследованные пути.
Поиск в ширину предусматривает ветвление на дереве решений от уровня к уровню, причем все подзадачи текущего уровня исследуются раньше, чем любая подзадача следующего уровня.
Полиномиальные алгоритмы – это алгоритмы, у которых время решения находится в полиномиальной зависимости от изменения размера входных данных.
Порочный круг - это определение, в котором новое понятие выводится либо из самого себя, либо из другого понятия, которое было из него выведено.
Правильный алгоритм – это алгоритм, который на любом допустимом (для данной задачи) входе заканчивает работу и выдает результат, удовлетворяющий требованиям задачи.
Примитивно - рекурсивные функции – это функции, полученные без использования оператора построения по первому нулю.
Псевдокод – это описание представляет симбиоз из основных операторов различных языков программирования с использованием комментариев для описания действий алгоритма.
Равные алгоритмы – это алгоритмы, имеющие одинаковые АО и совпадающие системы правил, задающих действие этих алгоритмов на входные слова.
Разветвляющийся алгоритм – это алгоритм, который предусматривает выбор одной из нескольких альтернатив последовательностей действий в зависимости от исходных и промежуточных данных.
Расплывчатая переменная - это кортеж П = <, X, >, где — наименование расплывчатой переменной; X = {x1, х2, ..., хn} — область ее определения; A = { (xi) | xi} xi X — расплывчатое множество в X, определяющее ограничения на возможные значения П.
Результативность — это свойство алгоритма, обеспечивающее получение результата через конечное число шагов.
Рекурсия — это способ задания функций, когда ее значения для произвольных значений аргументов выражаются через значения определяемой функции для меньших значений аргументов.
Рекурсивная процедура – это прямое или косвенное обращение к себе в процессе выполнения алгоритма.
Рекурсивные определения - состоят из двух частей: 1-я — циклическая, 2-я — прямая часть определения, которая является входом в циклическую.
Рекурсивные функции - представляют собой частичный класс вычислимых функций.
Самоизменяющийся алгоритм – это алгоритм, который не только перерабатывает входные слова, но и сам изменяется в процессе такой переработки.
Символы абстрактного алфавита - это буквы, цифры, любые знаки, слова, предложения, любые тексты.
Словесная схема алгоритма (СА) задается через описание и перечисление операторов, аналогичных блокам, используемым структурной схемой алгоритма. Таким образом, словесная запись алгоритма представляет собой перечень операторов, пронумерованный в порядке их исполнения алгоритмом.
Случайный алгоритм – это алгоритм, в процессе выполнения которого предусматривается возможность случайного выбора отдельных действий.
Сортировка вставками - основана на выборе очередного числа и вставки его в нужное место, сравнивая с имеющимися и передвигаясь справа налево.
Структурные схемы алгоритмов (ССА) изображаются графически в виде геометрических фигур (блоков). Внутри блока в виде формул или словесно записывается информация, характеризующая выполняемые им функции. Блоки соединяются линиями, символизирующими межблочные связи.
Тезис Тьюринга - любой алгоритм может быть реализован на машине Тьюринга.
Тезис Черча - каков бы ни был алгоритм, перерабатывающий наборы целых неотрицательных чисел, всегда существует алгоритм, представляющий рекурсивную функцию, который ему эквивалентен.
Циклический алгоритм – это алгоритм, который выполняется путем многократного повторения некоторой последовательности действий.
Частично - рекурсивные функции – это функции, определенные не для всех возможных значений аргумента.
Численные алгоритмы - это алгоритмы, в которых решения поставленных задач сводятся к арифметическим действиям.
Шаг алгоритма – это каждое отдельное действие алгоритма.
Эвристические алгоритмы (или эвристики) - это алгоритмы, теоретически не обоснованные, но позволяющие сократить количество переборов в пространстве поиска.
Эквивалентные алгоритмы – это алгоритмы с совпадающими АО, но не совпадающими способами их задания.
Экспоненциальными алгоритмами называются алгоритмы, имеющие свойства экспоненциального роста. Экспоненциальные алгоритмы – это алгоритмы, у которых время решения экспоненциально растет по мере увеличения размера входных данных.
Эмпирические алгоритмы - это алгоритмы, основанные на опыте, изучении фактов и опирающиеся на непосредственное наблюдение и эксперимент.
Язык операндов - это язык, предложения которого являются допустимыми для алгоритма вариантами исходных данных.
Логика – это искусство ошибаться с уверенностью в своей правоте.
Д. Крач
