- •Конспект лекций по дисциплине “Дискретная математика”
- •Санкт Петербург Содержание.
- •Раздел I. Множества, функции, отношения. Лекция № 1. Множества и операции над ними.
- •1. Основные понятия теории множеств.
- •2. Операции над множествами и их свойства.
- •3. Векторы и прямые произведения.
- •Лекция № 2. Соответствия и функции.
- •Соответствия.
- •Отображения и функции.
- •Лекция № 3. Отношения и их свойства.
- •Основные понятия и определения.
- •Свойства отношений.
- •Лекция № 4. Основные виды отношений.
- •Отношения эквивалентности.
- •Отношения порядка.
- •Лекция № 4. Пересчёт.
- •Раздел II. Введение в общую алгебру. Лекция № 6. Элементы общей алгебры.
- •1. Свойства бинарных алгебраических операций.
- •2. Алгебраические структуры.
- •Гомоморфизм и изоморфизм.
- •Лекция № 7. Различные виды алгебраических структур.
- •Полугруппы.
- •Группы.
- •Поля и кольца.
- •Раздел III. Введение в логику. Лекция № 8. Элементы математической логики.
- •Булевы функции.
- •Лекция № 9. Логические функции.
- •Функции алгебры логики.
- •Примеры логических функций.
- •Суперпозиции и формулы.
- •Лекция № 10. Булевы алгебры.
- •Разложение функций по переменным. Совершенная дизъюнктивная нормальная форма.
- •Булева алгебра функций.
- •Эквивалентные преобразования.
- •Лекция № 11. Булевы алгебры и теория множеств.
- •Двойственность.
- •Булева алгебра и теория множеств.
- •Днф, интервалы и покрытия.
- •Лекция № 12. Полнота и замкнутость.
- •Функционально полные системы.
- •Алгебра Жегалкина и линейные функции.
- •Замкнутые классы. Монотонные функции.
- •Теоремы о функциональной полноте.
- •Лекция № 13. Язык логики предикатов.
- •Предикаты.
- •Кванторы.
- •Истинные формулы и эквивалентные соотношения.
- •Доказательства в логике предикатов.
- •Лекция № 14. Комбинаторика.
- •Правила суммы и произведения.
- •Размещения.
- •Перестановки.
- •Сочетания. Бином Ньютона.
- •Раздел IV. Теория графов. Лекция № 15. Графы: основные понятия и операции.
- •Графы, их вершины, рёбра и дуги. Изображение графов.
- •Матрица инцидентности и список рёбер. Матрица смежности графа.
- •Идентификация графов, заданных своими представлениями.
- •Лекция № 16. Маршруты, цепи и циклы.
- •Основные определения.
- •Связные компоненты графов.
- •Расстояния. Диаметр, радиус и центр графа. Протяжённости.
- •Эйлеровы графы.
- •Лекция № 17. Некоторые классы графов и их частей.
- •Деревья.
- •Ориентированные графы.
- •Графы с помеченными вершинами и рёбрами.
- •Лекция № 18. Теория алгоритмов Понятие алгоритма
- •1.2.1. Основные требования к алгоритмам
- •1.2.2. Машина Тьюринга
- •Универсальная машина Тьюринга
- •1.2.3. Тезис Тьюринга
- •1.3. Граф машина
- •1.3.1. Модель данных
- •1.3.2. Построение моделей алгоритмов в системе graph
- •2. Сложность алгоритмов
- •2.1.Временная и пространственная сложность алгоритма. Классы dtime и dspace
- •2.2. Классы сложности
- •2.2.1. Полиномиальность и эффективность
- •2.2.2. Алгоритмическая сводимость задач
- •3. Алгоритмы и их сложность
- •3.1. Представление абстрактных объектов (последовательностей)
- •3.1.1. Смежное представление последовательностей
- •3.1.2. Связанное представление последовательностей
- •Список вопросов для подготовки к экзамену по дисциплине "дискретная математика"
3.1.1. Смежное представление последовательностей
Часто приходится встречаться с представлением конечных последовательностей данных и операциями над ними (вектора, матрицы, тензоры и т.д.). С вычислительной точки зрения простейшим представлением последовательности является точный список ее членов, расположенный по порядку в смежных ячейках памяти (смежное представление данных). В языках высокого уровня – это одномерные, двухмерные и т.д. массивы данных. Например, в языке С подобного рода абстрактные типы данных описываются следующим образом:
typedef double VECT[10]; // описание абстрактного типа VECT как одномерного массива действительных чисел двойной точности с 10 координатами.
typedef int MATR[10][10]; // введение для квадратных матриц размера абстрактного типа данных MATR как двухмерного массива целых чисел.
Двухмерную матрицу действительных чисел можно определить и так
typedef VECT MATR2[20];
Абстрактный тип данных MATR2 описывает матрицу действительных чисел (с двойной точностью) размера .
3.1.2. Связанное представление последовательностей
Модели данных со смежным размещением элементов становятся неудобными, если в алгоритме требуется изменять последовательность данных путем включения новых или исключения имеющихся элементов. В этом случае удобно пользоваться списками (связанное размещение данных).
Например, пусть требуется хранить результаты «испытаний» некоторой функции в порядке возрастаний значений функции. Введем в рассмотрение односвязанный список SFUN (см. рис. 7).
Каждый элемент списка занимает отдельное место в памяти (не обязательно смежное), и связаны они между собой с помощью указателей (адресов) (на рисунке «стрелками»). В данном случае список можно просматривать с права на лево. При этом необходимо позаботится о хранении заголовка списка (указателя на первый элемент). Признаком конца списка служит «пустое» значение указателя в последнем элементе списка (NULL).
Представленный на рисунке 7 конструктивный объект данных описывается следующим образом:
typedef double FUNC; // ввод нового типа данных для значений функции.
typedef struct LTF{
double x; // переменная x
double y; // переменная y
FUNC z; // значение функции
LTF *right;// указатель на следующий элемент списка
} LFUN; // описание элемента списка
typedef LFUN* HFUN; // указатель на «голову» списка
Естественно, что в этом случае необходимо создать программы внесение в список нового элемента и удаление из списка существующего элемента (см. рис. 8).
Список вопросов для подготовки к экзамену по дисциплине "дискретная математика"
Понятие множества. Отображения множеств.
Конечные и бесконечные множества.
Операции над множествами.
Прямое произведение множеств. Кортеж.
Понятие отношения. Отношения и функции.
Свойства отношений.
Разбиение множеств.
Отношение эквивалентности.
Отношение порядка, частичного порядка.
Размещения и перестановки.
Сочетания.
Разбиения. Полиномиальная формула.
Алгебраические операции. Понятие алгебры.
Группы.
Понятие кольца. Кольцо целых чисел.
Кольцо вычетов по модулю n. Малая теорема Ферма.
Понятие поля. Конечные поля.
Понятие решетки. Примеры решеток.
Решетки и алгебры.
Понятие нечеткого подмножества. Функция принадлежности.
Операции над нечеткими подмножествами.
Расстояние Хемминга.
Понятие высказывания. Логические операции над высказываниями.
Формулы алгебры логики.
Функции алгебры логики.
Дизъюнктивная нормальная форма.
Конъюнктивная нормальная форма.
Проблема разрешимости.
Понятие предиката.
Логические операции над предикатами.
Кванторные операции над предикатами.
Формулы логики предикатов.
Понятие алгоритма. Свойства алгоритмов.
Вычислимые и рекурсивные функции. Тезис Черча.
Машина Тьюринга. Тезис Тьюринга.
Нормальные алгоритмы Маркова.
Трудоемкость алгоритма. Эффективные алгоритмы.
Сложность вычислений. Классы сложности: P, NP и NP-полные задачи.
Понятие графа. Виды графов.
Способы задания графов.
Операции над графами.
Маршруты на графе: цепи и пути.
Достижимость. Связность.
Понятие дерева. Остовное дерево.
Процедура ветвления. Построение дерева полного перебора.
Порядковая функция орграфа. Уровневый граф.