
- •Дискретная математика
- •Введение
- •Лабораторная работа №1
- •1. Теоретический раздел
- •2. Примеры решения задач с использованием множеств
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №2
- •1. Теоретический раздел
- •2. Примеры решения задач
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №3
- •1. Теоретический раздел
- •2. Примеры решения задач
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №4
- •1. Теоретический раздел
- •2. Описание алгоритма фронта волны
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №5
- •1. Теоретический раздел
- •2. Описание алгоритма построения минимального остовного дерева
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №6
- •1. Теоретический раздел
- •2. Описание алгоритмов нахождения кратчайшего пути
- •2.1. Алгоритм Дейкстры нахождения минимального пути
- •2.2. Алгоритм нахождения минимального пути Форда-Беллмана
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №7
- •1. Теоретический раздел
- •2. Описание алгоритма нахождения полного потока
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Лабораторная работа №8
- •1. Теоретический раздел
- •2. Описание алгоритма нахождения максимального потока
- •3. Контрольные вопросы
- •4. Задания для самостоятельного решения
- •Литература
- •Дискретная математика
Лабораторная работа №2
Тема лабораторной работы: Отношения эквивалентности, порядка и толерантности.
Цели лабораторной работы:
освоить основные виды отношений;
изучить примеры алгоритмов работы с отношениями;
закрепить практические навыки программирования.
1. Теоретический раздел
Любое подмножество прямого произведения A1 A2 ... An называется n-местным (n-арным) отношением, определенным на множествах A1, A2, ..., An.
A1 A2 ... An .
Другими словами элементы x1,x2,..,xn (где х1A1, х2A2,..,хnAn) связаны отношением тогда и только тогда, когда (x1, x2,..., xn) (x1, x2, ..., xn ) - упорядоченный набор из n элементов.
Отношения, хотя и являются множествами, принято обозначать малыми буквами греческого алфавита , , ,..., , , .
Пример:
1) Пусть A = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
Тогда ={(x, y)}| x, yA, x-делитель y, х 5} может быть записано в частном виде:
={(1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10), (2,2), (2,4), (2,6), (2,8), (2,10), (3,3), (3,6), (3,9), (4,4), (4,8), (5,5), (5,10)}
2) R-множество действительных чисел. R2=R R.
={(x, y) | x, y R, x<y}, (1, 2) ,
(2, 1) т.к. x > y.
Свойства бинарных отношений.
Пусть - бинарное отношение на множестве A. Тогда:
а) - рефлексивно, если (х,х) для х.
(главная диагональ матрицы содержит только единицы)
б) - антирефлексивно, если (х,х) х .
(главная диагональ матрицы содержит только нули)
в) - симметрично, если из того, что (х,y) следует, что (y,x).
(= - 1 матрица отношения симметрична относительно главной диагонали)
г) - антисимметрично, если из того, что (х,y) и (y,x) следует, что x = y .
Замечание: Отношение антисимметрично тогда и только тогда, когда из того, что ((x,y) и xy)(x,y).
д) - транзитивно, если из того, что (х,y) и (y,z) следует, что (х,z)
Основные виды отношений.
Отношение
эквивалентности
()
на множестве X — это бинарное
отношение, для которого выполнены
следующие условия:
Рефлексивность;
Симметричность;
Транзитивность.
Запись
вида «»
читается как «a эквивалентно b».
Бинарное отношение R на множестве X называется отношением порядка, или отношением частичного порядка, если имеют место:
Рефлексивность;
Транзитивность;
Антисимметричность.
Множество X, на котором введено отношение частичного порядка, называется частично упорядоченным.
Отношение R, удовлетворяющее только условиям рефлексивности и транзитивности, называется квазипорядком, или предпорядком.
Отношение толерантности на множестве X — это бинарное отношение, для которого выполнены следующие условия:
Рефлексивность;
Симметричность;
Антиранзитивность.
Множества в программировании.
В прошлой лабораторной работе мы рассмотрели представления множества с помощью конструкции set of, в этой лабораторной работе мы рассмотрим представление множеств с помощью массивов.
Общая форма описания одномерного массива на языке Turbo Pascal:
var <имя массива>: array [<НГИ> .. <ВГИ>] of <тип массива>;
где <НГИ> - нижняя граница индекса
<ВГИ> - верхняя граница индекса
Пример: одномерный массив целых чисел от 1 до 100:
var IntArray: array [1..100] of integer;
Общая форма описания двумерного массива на языке Turbo Pascal:
var <имя массива> array [<НГИ> .. <ВГИ>, <НГИ> .. <ВГИ>]
of <тип массива>;
где <НГИ> - нижняя граница индекса
<ВГИ> - верхняя граница индекса
Пример: двумерный массив (матрица) 10×10 целых чисел:
var IntMatrix: array [1..10, 1..10] of integer;