Файл: Лабораторные работы по ДМ.doc

Добавлен: 29.10.2019

Просмотров: 2190

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Лабораторная работа № 1 Операции над множествами

Цель работы: Изучить основные операции над множествами: объединение, пересечение, разность, дополнение.

Теоретические сведения

Задание

Контрольный тест

Лабораторная работа № 2 Отношения и функции.

Цель работы: Изучить основные определения отношений и функций и научиться определять их свойства

Теоретические сведения

Задания

Контрольный тест

Лабораторная работа № 4 Алгебраические структуры

Цель работы:

Теоретические сведения

Задания

Лабораторная работа № 5 Элементы комбинаторики

Цель работы:

Теоретические сведения

Задания

Лабораторная работа №6 Основные понятия теории графов

Цель работы:

Теоретические сведения

Задания

Контрольные вопросы

Лабораторная работа № 7 Кратчайшие пути в графе

Цель работы:

Теоретические сведения

Задания

Контрольные вопросы

Лабораторная работа № 9 Определение максимального течение в транспортной сети

Цель работы:

Теоретические сведения

Задания

Контрольные вопросы

Лабораторная работа № 10 Числовые характеристики графа

Цель работы:

Теоретические сведения

Задания

Контрольные вопросы

Лабораторная работа №6 Основные понятия теории графов

Цель работы:

Теоретические сведения


Совокупностью объектов произвольной природы и отношений между каждой парой этих объектов может быть изображено на плоскости в виде множества точек, являющихся образом множества объектов, и множества отрезков линий, соединяющих пары точек, что является образом множества отношений. Такой образ совокупности объектов и отношений принято называть графом. Множество точек, являющихся образом множества объектов, называют вершинами графа, а множество отрезков линий, являющихся образом множества отношений, - рёбрами или дугами графа.

Граф может быть задан в форме: G=<X;r>, где r={(xi;xj)|xi,xjX} (X X)

Граф G=<X;r> называют неориентированным, если (xi;xj)=(xj;xi), в этом случае отрезок линии (xi;xj) называют ребром.

Граф G=<X;r> называют ориентированным, если (xi;xj)(xj;xi), в этом случае отрезок линии (xi;xj) называют дугой.

На рис. 16 приведены неориентированный и ориентированный графы.

Любая программа или электронная схема, любой производственный или вычислительный процесс могут быть представленны ориентированным графом, а любая схема транспортной или электрической сети - неориентированным графом.

Граф G=<X;r>, между двумя вершинами которого может быть задано несколько рёбер или дуг, называют мультиграфом.

Для определения отношения принадлежности вершин графа ребру или дуге и, наоборот,рёбер или дуг-вершине вводится понятие “инциденции”, т.е. вершина xiинцидентна ребру или дуге (xi;xj), если она является концевой вершиной данного отрезка линии, а ребро или дуга (xi;xj) инцидентна вершине xi, если отрезок линии ограничен концевой вершиной xi. Следует обратить внимание, что отношение принадлежности, определяющее понятие “инциденции”, устанавливает связь между элементами двух разных множеств X и r.

Число дуг для ориентированного графа G=<X;r>, исходящих из вершины xi, называют полустепенью вершины графа и обозначают degj(xi;xj)+. Вершину xi, инцидентную исходящей дуге (xi;xj)+, называют вершиной - истоком.

а ) x1r1,3x3 б) x1r1,3 x3



r0,1r1,5r3,5r0,1r1,5r3,5


r1,4 r1,4


x0 x5 x0 x5

r0,4 r4,5 r0,4 r4,5


x4 x4

x2 x2

r4,4 r4,4

Рис.16. Неориентированный (а) и ориентированный (б) графы.


Число дуг для ориентированного графа G=<X;r>, заходящих в вершину xi, называют также полустепенью вершины графа и обозначают degi-=degj(xi;xj)-. Вершину xi, инцидентную заходящей дуге (xj;xi)- , называют вершиной - стоком.

Две вершины графа называются смежными, если они различны и между ними существует ребро или дуга.

Вершина xi, несмежная ни с одной вершиной графа, называется изолированной. На рис.16 изолированной является вершина x2 .


Два ребра также называются смежными, если они различны и имеют общую вершину.

Последовательность смежных рёбер или дуг, соединяющих вершины xiи xj, называют маршрутом и обозначают Mj=((xi,xk);…. . . (xl;xj)). Например, для графа на рис.16а) между вершинами x0 и x5 существует шесть маршрутов, т.е.

M0;5={(r0;4;r4;5);(r0;1;r1;4;r4;5);(r0;1;r1;5);(r0;4;r4;1;r1;5);(r0;4;r4;1;r1;3;r3;5); (r0;1;r1;3;r3;5)}.

Маршрут неориентированного графа G=<X;r>, связывающий вершины xiи xj, называют цепью.

Маршрут ориентированного графа G=<X;r>, связывающий вершины xiи xj, называют путём.

Маршрут называют простым, если при его обходе каждая промежуточная вершина встречается не более одного раза.

Маршрут называют открытым, если его концевые вершины различны, и замкнутым, если его концевые вершины совпадают.

Замкнутый маршрут для неориентированного графа называют циклом, а для ориентированного графа - контуром.

Маршрут называют эйлеровым, если он замкнут и проходит через каждое ребро графа только по одному разу.

Маршрут называют гамильтоновым, если он замкнут и проходит через каждую вершину графа только по одному разу.

Длина маршрута равна числу смежных рёбер, соединяющих вершины xiи xj

Длину минимального маршрута, соединяющего вершины xiи xjназывают расстоянием. Так расстояние между вершинами x0 и x5 графа, приведённого на рис.16а), равно 2.

Замкнутый маршрут, который содержит только одно ребро или дугу (длина маршрута равна 1), называют петлёй. На рис.16 петля указана для вершины x4.

Если ребро или дуга обладают дополнительной характеристикой - протяжённостью lk,l, то длина маршрута равна сумме длин рёбер или дуг, его составляющих.

Если ребро или дуга обладают дополнительной характеристикой - пропускной способностью, то пропускная способность маршрута равна минимальной пропускной способности для множества рёбер или дуг, его составляющих.

Граф G=<X;r> называют связным, если любые две его вершины можно соединить цепью. Для ориентированного графа выделяют сильную связность, когда любые две его вершины взаимодостижимы при наличии дуг, и слабую связность, когда любые две его вершины достижимы только при условии замены дуг на рёбра.

Граф G=<X;r> называют полным, если любые две его вершины смежны между собой (см. рис.17а)).

Граф G=<X;r> называют пустым, если любые две его вершины не смежны между собой (см. рис.17б)).

Граф G=<X;r> называют дополнительным для графа G=<X;r>, если он опирается на множество вершин графа G, которые смежны для графа G только в случае их несмежности в графе G, т.е. r=r. Так пустой граф (см. рис.17б)) есть дополнительный для полного графа (см. рис.17а)).

Граф G=<X;r> называют деревом, если он связный, но без циклов, петель и кратных рёбер или дуг (см. рис.18а)).

Граф G=<X;r> называют лесом, если он несвязный и без циклов, петель и кратных рёбер или дуг.

Расстояние от вершины xiдля графа типа дерево до наиболее удалённой вершины xjназывают эксцентриситетом графа и обозначают e i.


Множество вершин графа типа дерево, имеющих минимальный эксцентриситет, формируют центроид графа. Наибольшее значение эксцентриситета для множества вершин графа типа дерево определяет диаметр графа. Одна из вершин центроида по выбору формирует центр графа. На рис. 18 представлены основные характеристики графа типа дерево.

Следует обратить внимание, что в связном графе типа дерево число рёбер всегда равно (n-1), где n - число вершин графа.

x1 x1

а) б)




x3 x2 x5 x2





x4 x3 x4 x3

Рис. 17. Полный (а) и пустой (б) графы.



а ) диаметр б)

6 эксцентриситет 7 3 3

5 центроид 6 2 2



6 4 5 2 2 2

центр


7 4 6 3 3

1


5 5 2 2

Рис. 18. Граф типа дерево (а) и лес (б).



Граф может быть задан для анализа с помощью таблиц или матриц.

Матричное описание графа удобно для вычисления различных чисел графа и выполнения различных алгебраических операций, т.к. опирается на глубоко разработанную теорию матриц.

Матрица инциденции. Поскольку инциденция есть отношение принадлежности элемента одного множества X другому множеству r, то матрица инциденции ||hi;j|| есть прямоугольная, число строк которой равно мощности множества |r|=m, а число столбцов - мощности множества |X|=n. Элементы матрицы инциденции для неориентированного графа определяются соотношением:


1, если ребро ri;jинцидентно вершинам xiи xj;

hi;jX=

0, в противном случае;


Таблица 9.

hX

x0

x1

x2

x3

x4

x5

r0,1

1

1

0

0

0

0

r0,4

1

0

0

0

1

0

r1,3

0

1

0

1

0

0

r1,4

0

1

0

0

1

0

r1,5

0

1

0

0

0

1

r3,5

0

0

0

1

0

1

r4,4

0

0

0

0

1

0

r4,5

0

0

0

0

1

1

i

2

4

0

2

4

3


Таблица 10.

h

x0

x1

x2

x3

x4

x5

r0,1

+1

-1

0

0

0

0

r0,4

+1

0

0

0

-1

0

r1,3

0

+1

0

-1

0

0

r1,4

0

+1

0

0

-1

0

r1,5

0

+1

0

0

0

-1

r3,5

0

0

0

+1

0

-1

r4,4

0

0

0

0

+1

0

r4,5

0

0

0

0

+1

-1

i+

2

3

0

1

2

0

i-

0

1

0

1

3

3


В таблице 9 представлена матрица инциденции для неориентированного графа (см. рис. 16а)). Следует отметить, что в каждой строке матрицы количество единиц равно двум, что характеризует наличие двух концевых вершин для отрезка линии, представляющего ребро. В каждом столбце матрицы инциденции количество единиц


равно степени вершины, т.е. degi, поэтому для последующего анализа желательно выделить строку, раскрывающую степени вершин графа.

Элементы матрицы инциденции для ориентированного графа определяются другим соотношением:


+1, если дуга ri,j исходит из вершины xi;

hi;j= 0, если дуга ri,j не инцидентна вершинам xiи xj;

-1, если дуга ri,j заходит в вершину xj.


В таблице 10 представлена матрица инциденции для ориентированного графа (см. рис. 16б)). Также можно отметить, что в каждой строке сумма “+1” и “-1” равна двум, что характеризует наличие для отрезка линии, представляющего дугу, одной вершины - истока и одной вершины - стока.

В каждом столбце матрицы инциденции число “+1” равно полустепени исхода вершины xi, т.е. degi+, а число “-1” равно полустепени захода вершины xi, т.е. degi-.


Матрица смежности. Поскольку смежность есть бинарное отношение между элементами одного множества, то матрица смежности ||ri,j|| есть квадратная матрица, число строк и столбцов которой равно мощности множества |X|=n.

Элементы матрицы смежности определяются соотношением:


1, если вершина xi смежна вершине xj;

ri,j=

0, в противном случае.


В таблице 11 представлена матрица смежности для неориентированного графа (см. рис. 16а)). Элементы матрицы смежности, равные 1, расположены симметрично относительно главной диагонали. В каждой строке и в каждом столбце такой матрицы число “1” равно степени вершины, т.е. degi. Поэтому можно выделить дополнительную строку или столбец для хранения информации о степени каждой вершины графа.


Таблица 11.

r

x0

x1

x2

x3

x4

x5

i

x0

0

1

0

0

1

0

2

x1

1

0

0

1

1

1

4

x2

0

0

0

0

0

0

0

x3

0

1

0

0

0

1

2

x4

1

1

0

0

1

1

4

x5

0

1

0

1

1

0

3

i

2

4

0

2

4

3





Таблица 12.

r0

x0

x1

x2

x3

x4

x5

i+

x0

0

1

0

0

1

0

2

x1

0

0

0

1

1

1

3

x2

0

0

0

0

0

0

0

x3

0

0

0

0

0

1

1

x4

0

0

0

0

1

1

2

x5

0

0

0

0

0

0

0

i-

0

1

0

1

3

3








В таблице 12 представлена матрица смежности для ориентированного графа (см. рис. 16б)), но при условии, что строки заданы вершинами-истоками графа, а столбцы - вершинами-стоками. Поэтому итоговый столбец таблицы- i+ показывает полустепень каждой вершины-истока, а итоговая строка- I- - полустепень каждой вершины-стока.

По структуре матрицы смежности можно сделать выводы:

  1. каждый ненулевой элемент главной диагонали соответствует петле на графе;

  2. матрица смежности для неориентированного графа симметрична относительно главной диагонали;

  3. матрица смежности для ориентированного графа несимметрична относительно главной диагонали;

Матрица весов. Протяжённость ребра или дуги, а также затраты времени, энергии или финансов на перемещение пакета информации или транспортной единицы по ребру или дуге из вершины xiв вершину xjформирует рёберно-взвешенный граф.

Элементы матрицы весов рёберно-взвешенного графа определяются соотношением:


ri,j=

0, если i=j;

li,j, если вершина xiсмежна вершине xjи вес ребраli,j;

, если вершина xiнесмежна вершине xj.





Задания

  1. Ориентированный граф G=(V,E,O) задан аналитическим способом. Необходимо:

    1. задать граф геометрическим способом;

    2. определить полустепени вершин графа;

    3. определить матрицу смежности

    4. определить матрицу инцидентности

Для проверки решения использовать программу Grin

Варианты:

  1. V = (v1,v2,v3,v4,v5), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9,e10), O = ((v1,v1), (v1,v3), (v1,v5), (v2,v3), (v2,v4), (v2,v5), (v3,v3), (v3,v4), (v4,v5), (v5,v5)).

  2. V = (v1,v2,v3,v4,v5), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11), O = ((v1,v2), (v1,v3), (v1,v4), (v1,v5), (v2,v2), (v2,v3), (v2,v5), (v3,v3), (v3,v4), (v4,v4), (v4,v5)).

  3. V = (v1,v2,v3,v4,v5), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9,e10), O = ((v1,v2), (v1,v4), (v1,v5), (v2,v2), (v2,v3), (v2,v5), (v3,v4), (v3,v5), (v4,v4), (v5,v5)).

  4. V = (v1,v2,v3,v4,v5), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9,e10), O = ((v1,v2), (v1,v3), (v2,v2), (v2,v4), (v2,v5), (v3,v4), (v3,v5), (v4,v4), (v4,v5), (v5,v5)).

  5. V = (v1,v2,v3,v4,v5), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11), O = ((v1,v1), (v1,v3), (v1,v4), (v1,v5), (v2,v2), (v2,v4), (v2,v5), (v3,v3), (v3,v5), (v4,v4), (v4,v5)).

  6. V = (v1,v2,v3,v4,v5), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9,e10), O = ((v1,v3), (v1,v4), (v1,v5), (v2,v2), (v2,v3), (v2,v4), (v3,v3), (v3,v5), (v4,v4), (v5,v5)).

  7. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8), O = ((v1,v1), (v1,v3), (v1,v2), (v2,v2), (v2,v4), (v3,v2), (v3,v3), (v3,v4)).

  8. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6, e7,e8 ), O = ((v1,v1), (v1,v2), (v1,v3), (v1,v4), (v2,v2), (v2,v3), (v2,v4), (v3,v3)).

  9. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8), O = ((v1,v2), (v1,v3), (v1,v4), (v2,v2), (v2,v4), (v3,v2), (v3,v3), (v4,v3)).

  10. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7), O = ((v1,v2), (v2,v3), (v2,v4), (v3,v3), (v4,v1), (v4,v4), (v3,v4)).

  11. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9), O = ((v1,v1), (v1,v2), (v2,v2), (v2,v3), (v2,v4), (v3,v1), (v3,v3), (v3,v4), (v4,v1))

  12. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9), O = ((v1,v1), (v1,v2), (v2,v2), (v2,v3), (v2,v4), (v3,v1), (v3,v3), (v3,v4), (v4,v1)).

  13. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8), O = ((v1,v1), (v1,v2), (v2,v3), (v2,v4), (v3,v1), (v3,v3), (v3,v4), (v4,v1)).

  14. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9), O = ((v1,v1), (v1,v3), (v1,v2), (v2,v2), (v2,v4), (v3,v2), (v3,v3), (v3,v4), (v4,v3)).

  15. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8), O = ((v1,v1), (v1,v2), (v1,v3), (v1,v4), (v2,v2), (v2,v3), (v2,v4), (v3,v3)).

  16. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6, e7,e8 ), O = ((v1,v1), (v1,v2), (v1,v3), (v1,v4), (v2,v2), (v2,v3), (v2,v4), (v3,v3)).

  17. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8), O = ((v1,v2), (v1,v3), (v1,v4), (v2,v2), (v2,v4), (v3,v2), (v3,v3), (v4,v3)).

  18. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7), O = ((v1,v2), (v2,v3), (v2,v4), (v3,v3), (v4,v1), (v4,v4), (v3,v4)).

  19. V = (v1,v2,v3,v4), E= (e1,e2,e3,e4,e5,e6,e7,e8,e9), O = ((v1,v1), (v1,v2), (v2,v2), (v2,v3), (v2,v4), (v3,v1), (v3,v3), (v3,v4), (v4,v1))