
- •Введение
- •1. Элементы теории множеств
- •1.1.Понятие множества.
- •1.2. Способы задания множеств.
- •1.3. Свойства множеств.
- •1.4. Конечные и бесконечные множества.
- •1.5. Подмножества.
- •1.6. Множество как абстракция.
- •1.7. Операции над множествами.
- •1.8.Декартово произведение множеств
- •1.9. Контрольные задания
- •2. Отношения
- •2.1. Общие положения
- •2.2. Задание отношений.
- •2.3. Виды отношений.
- •2.3.1. Рефлективность.
- •2.3.2. Симметричность.
- •2.3.3. Транзитивность.
- •2.4. Отношение эквивалентности
- •2.5. Функция.
- •2.6. Отношение как базовое понятие в реляционных
- •2.7. Контрольные задания
- •3. Элементы алгебры логики
- •3.1. Силлогизмы Аристотеля.
- •3.2. Высказывания.
- •3.3. Исчисление высказываний и
- •3.4. Функции алгебры логики
- •3.5. Равносильности алгебры логики
- •3.6. Одна логическая задача
- •3.7. Реализация функций в элементных базисах
- •3.9. Совершенная конъюнктивная нормальная форма
- •3.10. Реализация операции суммирования в компьютере
- •3.11. Контрольные задания
- •4. Элементы теории графов
- •4.1. История возникновения
- •4.2. Основные понятия
- •4.3. Матрицы графа
- •4.4. Деревья
- •4.5. Раскраска
- •5. Элементы теории алгоритмов
- •5.1. Интуитивное понятие алгоритма
- •5.2. Свойства алгоритмов
- •5.3. Вычислительные и комбинаторные алгоритмы
- •5.5. Асимптотические оценки сложности алгоритма
- •Порядки сложности алгоритма
- •5.6. Комбинаторный взрыв
- •6. Полиномиальные алгоритмы
- •6.1. Построение минимального остовного дерева.
- •6.1.1. Жадный алгоритм
- •6.1.2. Алгоритм Прима
- •6.2. Контрольные задания
- •7. Эвристические алгоритмы
- •7.1. Алгоритм последовательной раскраски
- •7.2. Контрольные задания
- •8. Сетевое планирование
- •8.1. Основные понятия
- •8.2 Параметры сетевого планирования
- •8.3. Вычисление параметров сетевого графика
- •8.4. Контрольные задания
- •9. Элементы абстрактной теории автоматов
- •9.1. Определение абстрактного автомата
- •9.2. Методы задания автоматов
- •9.3. Связь между моделями Мили и Мура.
- •9.4.1. Преобразование автомата Мура в автомат Мили
- •9.4.2. Преобразование автомата Мили в автомат Мура
- •9.5. Контрольные задания
- •10. Уточнение понятия алгоритма
- •10.1. Машина Тьюринга
- •Для каждого алгоритма u из класса к1 существует равносильный ему алгоритм l из класса к2.
- •10.2. Нормальный алгоритм Маркова
4.5. Раскраска
Граф G называется k - раскрашиваемым, если каждой его вершине можно приписать один из k цветов таким образом, чтобы никакие две смежные вершины не оказались одного цвета.
Если граф G является k - раскрашиваемым, но не является (k - 1) - раскрашиваемым, то он называется k - хроматическим, а число k называется хроматическим числом графа и обозначается (G).
На рис.4.22 граф G является и 4 - раскрашиваемым и 5 - раскрашиваемым, но 4 - хроматическим.
G
(G)
= 4
Рис.4.22. Хроматическое число графа
Таким образом, хроматическое число графа - это минимальное число красок, в которые может быть раскрашен граф.
Для некоторых графов хроматические числа очевидны. Так для любого полного графа из n вершин хроматическое число равно n, (Kn) = n.
Любой двудольный граф является бихроматическим. Для графа G(X,U),
X = X1 U X2, (G) = 2.
Действительно, раскрасив вершины из множества X1 в один цвет, а вершины из множества X2 - в другой цвет, получим 2 - раскрашиваемый граф.
5. Элементы теории алгоритмов
5.1. Интуитивное понятие алгоритма
Обычно под алгоритмом понимают совокупность правил, предписывающих последовательность действий для достижения некоторого результата, то есть алгоритм – это последовательность некоторых элементарных действий.
Изображают алгоритмы, как правило, в виде словесного описания, блок-схем и структурных диаграмм.
Понятие алгоритма одновременно и очень простое, и очень сложное. Интуитивно понятно, что если имеется описание способа решения некоторой задачи, то он и является алгоритмом. Поэтому такого определения алгоритма вполне достаточно при решении реальных практических задач.
В то же время, приведенное понятие алгоритма не является формализованным. И если неясно, как решить задачу, то без формального определения алгоритма невозможно установить:
то ли не существует алгоритма решения задачи,
то ли алгоритм существует, но мы его не знаем.
Например, существует или нет алгоритм решения шутливой задачи:
определить алгоритм, решающий все задачи.
Начиная с 30-х годов нашего века было предложено несколько уточнений понятия алгоритма. Все они имеют чисто теоретическое значение. А для повседневной практики достаточно интуитивного понятия, что доказал предыдущий человеческий опыт.
5.2. Свойства алгоритмов
Все алгоритмы имеют одну особенность, – как правило, дискретный характер процесса, определяемый самим алгоритмом. Каждый алгоритм должен быть разбит на отдельные шаги. Итак, первое свойство алгоритма – это дискретность.
Очевидно, что для каждого алгоритма существует свое допустимое множество исходных данных.
Например, для вычисления величины y1 в выражении y1=x2 значениями аргумента х является множество вещественных чисел,
Для
вычисления же арифметического корня
из величины у1=
значениями аргумента х является множество
неотрицательных чисел, х
0.
Массовость алгоритма заключается в том, что он решает не одну индивидуальную задачу для конкретного значения аргумента, а ряд однотипных задач, в которых аргумент может принимать любое значение из допустимого множества исходных данных.
Если применять алгоритм лишь к определенному набору исходных данных, то всякий раз мы будем получать один и тот же результат. Такое свойство алгоритма называется детерминированностью. Вероятностные процессы отличаются от детерминированных тем, что для заданного набора исходных данных один и тот же результат получается с некоторой вероятностью.
Очевидно, что алгоритм решения любой практической задачи должен иметь конечное число шагов. Свойство алгоритма, обеспечивающее получение результата за конечное число шагов, называется результативностью.