- •Лабораторная работа № 1 Операции над множествами
- •Цель работы: Изучить основные операции над множествами: объединение, пересечение, разность, дополнение.
- •Теоретические сведения
- •Задание
- •Контрольный тест
- •Лабораторная работа № 2 Отношения и функции.
- •Цель работы: Изучить основные определения отношений и функций и научиться определять их свойства
- •Теоретические сведения
- •Задания
- •Контрольный тест
- •Лабораторная работа № 3 Алгебраические структуры
- •Цель работы: Изучить основные понятия об алгебраических структурах и научиться их классифицировать
- •Теоретические сведения
- •Задания
- •Контрольный тест
- •Лабораторная работа № 4 Элементы комбинаторики
- •Цель работы: Изучить основные понятия комбинаторики и научиться решать комбинаторные задачи
- •Теоретические сведения
- •Задания
- •Контрольный тест
- •Лабораторная работа №5 Основные понятия теории графов
- •Цель работы: Изучить основные понятия теории графов и научиться задавать графы различными способами
- •Теоретические сведения
- •Задания
- •Лабораторная работа № 6 Кратчайшие пути в графе
- •Цель работы: Изучить основные задачи поиска кратчайших путей в графах и научиться решать задачу коммивояжера
- •Теоретические сведения
- •Задания
- •Лабораторная работа № 7 Определение максимального течение в транспортной сети
- •Цель работы:
- •Теоретические сведения
- •Цель работы:
- •Теоретические сведения
- •Задания
Лабораторная работа № 4 Элементы комбинаторики
Цель работы: Изучить основные понятия комбинаторики и научиться решать комбинаторные задачи
Теоретические сведения
Объектами комбинаторики являются элементы множества Х={x1;x2;...;xn} мощности n и правила их отображения на другое множество Y={y1;y2;...;yk} мощностиk, определяющие способы выбораk элементов множества Х в соответствии с поставленной задачей.
Специфика комбинаторного анализа состоит в правилах выбора элементов множества Х для формирования yk, правилах одно-или многократного использования элементов множества Х внутри каждой выборки и правилах наведения порядка внутри каждой выборки. Выборки элементов множества Х, т.е. ykY называют комбинаторными объектами, а их число - комбинаторным числом.
Например, для четырехэлементного множества Х={x1;x2;х3;x4} могут быть сформированы такие трехэлементные множества:
1){(x1;x2;х3);(x2;х1;x3);(x2;х3;x1);(x3;x2;х1);...; (x4;х3;x2)};
2){ {x1;x2;х3}; {x1;х3;x4}; {x2;х3;x4}};
3){ (x1;x1;х1);(x1;x1;х2);(x1;x2;х1);(x2;х1;x1);...;(x4;x4;x4)};
В первом случае важным при формировании выборок является порядок элементов внутри выборки. Так формируется кортеж.
Во втором случае важным является не порядок элементов внутри, а только их различие. Так формируются подмножества.
В третьем случае главным является повторяемость использования одного элемента. В этом случае также формируется кортеж, а повторяемость задается, как правило, спецификацией K={k1;k2;...;kn}, где
ki- число повторений в выборке i-го элемента генеральной совокупности;
K=(k1+k2+...+kn)=k.
Итак, выборки бывают упорядоченными(см. случаи 1 и 3), когда важным является место элемента в выборке и неупорядоченными(см. случай 2), когда важным является различие элементов, используемых в выборке.
Правила формирования упорядоченных выборок обеспечиваются операциями размещения и перестановки элементов множества X, а неупорядоченных выборок - операциями их сочетания и разбиения.
Размещение из n элементов по k без повторений,
Пусть дано множество Х={x1;x2;...;xn} - множество шаров, частиц, книг, файлов и т.п. и множество Y={y1;y2;...;yk} - множество ячеек, урн, стеллажей, дискет и т.п. Сколько существует способов размещения каждого элемента множества Х на каждое место множества Y. То есть необходимо выяснить разнообразие по участию всех элементов множества Х и месту их расположения в выборке. Очевидно, что при формировании выборок будут получены кортежи.
Множество комбинаторных объектов для размещения может быть описано так: Аnk={(x1;x2;...);(x2;x1;...);...}.
Комбинаторное число размещения из n элементов по kбез повторения определяется по формуле: (n)k=n(n-1)...(n-k+1).
Пусть Х={x1;x2;x3}. Необходимо разместить элементы этого множества по двум ячейкам Y={y1;y2}. Множество комбинаторных объектов равно:
y2 |
x2 |
x3 |
x1 |
x3 |
x1 |
x2 |
|
|
y1 |
x1 |
x1 |
x2 |
x2 |
x3 |
x3 |
|
|
Комбинаторное число размещения из 3 элементов по 2 без повторений равно: (3)2=32=6.
На рис. 2 графически представлен результат размещения из 3-х элементов по 2 без повторения.
Рис. 2. Размещение без повторения
Х={x1;x2;x3}; Y={y1;y2}.
Размещение из n по k с повторением.
Отличительной особенностью данного способа размещения является произвольное повторение, но не более kраз, каждого элемента множества Х в каждой выборке.
Множество комбинаторных объектов для этой процедуры равно:
Аn повтk={(x1;x1;...);(x2;x2;...);...}.
Комбинаторное число размещения из n элементов по kс повторением, определяется формулой: (n)kповт.=nk.
Пусть Х={x1;x2}. Необходимо разместить элементы этого множества по трем ячейкам Y={y1;y2;y3}.
Множество комбинаторных объектов равно:
А2 повт.3={(x1;x1;x1);(x1;x1;x2);(x1;x2;x1);(x1;x2;x2);(x2;x1;x1);(x2;x1;x2);
(x2;x2;x1);(x2;x2;x2)}.
Комбинаторное число размещения из 2-х элементов по 3 с повторением равно: (2)3повт.=23=8.
На рис. 3 графически представлен результат размещения из 2-х элементов по 3 с повторением.
y3 |
x1 |
x2 |
x1 |
x1 |
x1 |
x2 |
x2 |
x2 |
y2 |
x1 |
x1 |
x2 |
x1 |
x2 |
x2 |
x1 |
x2 |
y1 |
x1 |
x1 |
x1 |
x2 |
x2 |
x1 |
x2 |
x2 |
Рис. 3. Размещение с повторением Х={x1;x2}; Y={y1;y2;y3}.
Размещение из n по k с ограничением спецификацией.
Отличительной способностью данного размещения является ограничение повторений спецификацией K={k1;k2;...;kn} при условииK=(k1+k2+...+kn)=k.
Комбинаторное число такого размещения определяется выражением: (n)k1;k2;...knповт.=(k!)/(k1!k2!...kn!)
y1 |
x1 |
x1 |
x2 |
|
|
|
|
|
y2 |
x1 |
x2 |
x1 |
|
|
|
|
|
y3 |
x2 |
x1 |
x1 |
|
|
|
|
|
Рис. 4. Размещение с повторением по спецификации Х={x1;x2}; Y={y1;y2;y3}, K={21;12}.
Пусть Х={x1;x2}. Необходимо разместить элементы этого множества по трем ячейкам Y={y1;y2;y3} с заданной спецификацией K={21;12}.
Множество комбинаторных объектов есть
Аn спецk={(x1;x1;x2);(x2;x1;x1);(x1;x2;x1)}.
(2)
=3!/(2!1!)=3.
спец
3
На рис. 4 дана графическая интерпретация этой задачи.
Перестановка элементов множества.
Это есть предельный случай для размещения, когда k=n, т.е. когда число ячеек, урн, стеллажей, дискет равно числу частиц, шаров, книг, файлов и т.п. Эта процедура имеет большое значение при выборе алгоритмов сортировки данных на компьютере для быстрого и экономного использования оперативной памяти. Все алгоритмы опираются на отношение порядка и формируют линейно упорядоченные множества.
Если применить все вышеприведенные формулы для условия k=n, то получим:
а) комбинаторное число перестановок без повторения:
(n)n=n! (см. рис. 5).
y1 |
x1 |
x1 |
x2 |
x2 |
x3 |
x3 |
|
|
y2 |
x2 |
x3 |
x1 |
x3 |
x1 |
x2 |
|
|
y3 |
x3 |
x2 |
x3 |
x1 |
x2 |
x1 |
|
|
Рис. 5. Перестановки Х={x1;x2;x3}; Y={y1;y2;y3}.
б) комбинаторное число перестановок с повторением не более n раз
(n)nповт.=nn
в) комбинаторное число перестановок с повторением по спецификации
(n)kспец=(n!)/(k1!k2!...kn!), где |k1+k2+...+kn|=n.
Пусть необходимо застроить улицу 10 домами, среди которых 3 дома типа а1, 5 домов типа а2, 2 дома типа а3. Сколько способов застройки улицы?
Исходя из условия задачи множество типов домов есть Х={а1;а2;а3}, а спецификация К={31;52;23}.
Число вариантов застройки улицы равно: (n)спец.=(10!)/(3!5!2!)=2520 вариантов.
Сочетание из n элементов по k без повторений.
Пусть дано множество Х={x1;x2;...;xn} и множество Y={y1;y2;...;yk}. Сколько существует подмножеств множества Х мощностиk, отличающихся между собой не порядком расположения элементов в выборке, а только различием хотя бы одним элементом? Такое формирование выборок иначе можно назвать “укладывание элементов множества Х в “мешок”, т.е. формируются неупорядоченные выборки мощностиk.
Множество комбинаторных объектов такого отображения есть:
Сnk={(x1;x2;...);(x1;x3;...);(x2;x3;...);...}.
Комбинаторное число сочетаний из n по kбез повторения есть
(
n k
)
=(n!)/(k!(n-k)!).
Пусть Х={x1;x2;x3}. Необходимо найти комбинаторные объекты и комбинаторное число сочетаний из 3-х элементов по 2 без повторения, т.е. Y={y1;y2}.
Множество комбинаторных объектов есть: С32={(x1;x2);(x1;x3);(x2;x3)}.
(
)
3
2
=(3!)/(2!1!)=3.
Графически эта процедура представлена на рис. 6.
y1 |
x1 |
x1 |
x2 |
|
|
|
|
|
y2 |
x2 |
x3 |
x3 |
|
|
|
|
|
Рис. 6. Сочетания без повторения Х={x1;x2;x3}; Y={y1;y2}.
Сочетание из n элементов по k с повторением.Отличительной особенностью данного способа сочетания является многократное, но не болееkраз, использование при выборке одного и того же элемента множества Х.
Множество комбинаторных объектов для этой процедуры равно:
Сn повтk={(x1;x1;x1;...);(x1;x2;x2;...);(x2;x2;x3;...)}.
(
n k
)
= (n+k
-1)!/(
k !(n-1)!).
Пусть Х={x1;x2;x3} и Y={y1;y2}. Необходимо выполнить процедуру сочетания из 3-х элементов по 2 с повторением, т.е.
С3 повт.2={(x1;x1);(x2;x2);(x3;x3);(x1;x2);(x1;x3);(x2;x3)}.
(
)
=(3+2-1)!/(2!(3-1)!)=(1234)/(1212)=6.
32
Графически эта процедура для сочетания из 3-элементов по 2 с повторением представлена на рис. 7.
y2 |
x1 |
x2 |
x3 |
x2 |
x3 |
x3 |
|
|
y1 |
x1 |
x1 |
x1 |
x2 |
x2 |
x3 |
|
|
Рис. 7. Сочетание с повторением Х={x1;x2;x3}; Y={y1;y2}.
Правила комбинаторики.
Рассмотренные выше процедуры обеспечивают формирование различных комбинаторных объектов. Однако при выдвижении нескольких условий и необходимости использования нескольких процедур следует применить дополнительные правила комбинаторного анализа:
1)правило суммы:если комбинаторный объект хiХiможет быть выбран из исходного множества Х “s” способами, а комбинаторный объект хjХjиз того же исходного множества Х другими “t” способами, то выбор “либо хi, либо хj“ может быть осуществлен “(s+t)” способами.
2)правило произведения:если комбинаторный объект хiХiможет быть выбран из исходного множества Х “s” способами и после каждого из таких выборов комбинаторный объект хjХj, в свою очередь, может быть выбран “t” способами, то выбор “хiи хj“ в указанном порядке может быть осуществлен “(st)” способами.
3)принцип включения-исключения:если существует множество Х и множество свойств Y={y1;y2;...;yt}, которыми могут обладать элементы множества Х, то может быть выполнено разбиение множества Х на подмножества по числу свойств, которыми они обладают. В этом случае разбиение множества на подмножества удовлетворяет следующему условию:
|X0|=|X|-|X1|+|X2|-|X3|...+(-1)t|Xt|, где
|X0| - число элементов множества Х, не обладающих ни одним свойством множества Y;
|X| - общее число элементов множества Х;
|X1| - число элементов множества Х, обладающих только одним свойством множества Y;
|X2| - число элементов множества Х, обладающих двумя свойствами множестваY;
|X3| - число элементов множества Х, обладающих тремя свойствами множества Y;
|Xt| - число элементов множества Х, обладающих t-ым количеством свойств множества Y;
t- количество свойств или число элементов множества Y.
Следует обратить внимание, что знак “+” ставят для четного количества свойств множества Y, а знак “-” - для нечетного количества свойств множества Y.
Путь дано множество Х, состоящее из подмножеств А, В, С. Элементы множества Х могут принадлежать одному, двум и трем подмножествам. Согласно принципу включения-исключения можно составить тождество:
=|ABC|-|A|-|B|-|C|+|AB|+|AC|+|BC|-|ABC|.
Данное выражение позволяет найти число элементов для любой операции, если известны их значения для всех других операций.
Например, число элементов множества Х, принадлежащих объединению трех подмножеств А, В и С равно:
|ABC|=|A|+|B|+|C|-|AB|-|AC|-|BC|+|ABC|.
Для примера рассмотрим студенческую группу и отношение студентов к спорту и учебе. Пусть в студенческой группе обучается 50 человек, т.е. |X|=50. В группе 20 юношей (студент обладает одним свойством -”быть юношей”), т.е. |X11|=20. В группе 20 студентов имеют хорошую успеваемость ( студент обладает также одним свойством -”быть хорошо успевающим”), т.е. |X12|=20. В группе 20 студентов увлекаются спортом (студент обладает также одним свойством -”увлекается спортом”), т.е. |X13|=20. 5 юношей имеют хорошую успеваемость (студент обладает двумя свойствами -”быть юношей” и “быть хорошо успевающим”), т.е. |X21|=|X11X12|=5. 10 юношей увлекаются спортом (студент обладает двумя свойствами - “быть юношей” и “увлекается спортом”), т.е. |X22|=|X11X13|=10. 10 хорошо успевающих студента увлекаются спортом ( студент обладает двумя свойствами - “быть хорошо успевающим” и “увлекаются спортом”), т.е. |X23|=|X12X13|=10. 5 юношей имеют хорошую успеваемость и увлекаются спортом (студент обладает тремя свойствами - “ быть юношей”, “быть хорошо успевающим” и “ увлекается спортом”), т.е. |X31|=|X11X12X13|=5. Сколько девушек (дополнение к множеству X11) имеют слабую успеваемость (дополнение к множеству X12) и не увлекаются спортом ( дополнение к множеству X13), т.е.(X11X12X13)=(X11X12X13)?
|(X11X12X13)|=|X|-|X11|-|X12|-|X13|+|X21|+|X22|+|X23|-|X31|
|(X11X12X13)|=50-20-20-20+5+10+10-5=10.
Итак, 10 девушек имеют слабую успеваемость и не увлекаются спортом.