ЧАСТЬ 2. ГРАФОВЫЕ И ПАТТЕРНОВЫЕ СЕТИ
Эпиграф.
"Математики изучают не предметы, а
только лишь отношения между ними."
Анри Пуанкаре
ЛЕКЦИЯ 6. Теория графов и графовые сети

Разделы Лекции 5: 5.1 Диаграмма прецедентов, 5.2 Проектирование баз данных, 5.3 Другие диаграммы компьютерной системы Истерн.

6.1. Графы как модели сложных систем.

В предыдущих лекциях вы узнали, что язык UML предназначен для моделирования и инженерного проектирования компьютерных систем и их программных средств. При этом подчеркивалось, что компьютерная система в целом и ее программное обеспечение являются сложными системами. Кстати, наш веб-курс также представляет собой сложную систему. Поскольку понятие "сложная система" играет важную роль в современной компьютерной практике рассмотрим его подробнее. Говоря просто, сложная система - это такая, которую нельзя понять рассматривая ее только с одной точки зрения и отобразив эту точку зрения в виде наглядной модели (рисунка на бумаге) или в виде математической модели, взаимосвязанной с наглядной моделью. Чтобы осмыслить многие аспекты, необходимые для решения задачи проектирования сложной системы, ее разработчики должны рассматривать эту систему с нескольких точек зрения. Практика показала, что разработчикам иногда приходится отображать отдельную точку зрения на сложную систему не одной, а несколькими моделями. Различные точки зрения на систему и все отображающие эти точки зрения модели объединяются в проектной документации и в умах разработчиков в единое (интегральное) представление о системе.

Модель, отображающую точку зрения на систему, называют "видом" или "взглядом" (view). Итак мы установили, что точка зрения на сложную систему может отображаться одной моделью или двумя моделями, одна из которых наглядная, а другая, взаимосвязанная с ней математическая. Кроме того, отметим, что одна точка зрения на сложную систему может отображаться в трех и более моделях.

Разработчики сложной системы, когда они рассматривают ее с разных точек зрения и строят для каждой точки зрения модели (виды), действуют примерно также как инженер-конструктор, который рассматривает с разных точек зрения сложную деталь изделия и чертит на бумаге ее виды - "вид прямо", "вид сверху", "вид сбоку" и дополнительные виды по стрелкам А,Б и другим.

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

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

6.2. Бинарные отношения

В теории графов применяется математическое понятие, называемое "отношение". В математике отношение определяет некоторую связь между двумя предметами (объектами). В идеальном мире (существующим в сознании людей) и в реальном (физическом) мире существуют разнообразные отношения между предметами. Поэтому математики и специалисты в области компьютеров используют множество различных бинарных (двуместных) отношений. Бинарные отношения могут иметь имена, например "равенство", "отношение порядка" и т.п. Некоторые из бинарных отношений помимо имен имеют стандартные символьные обозначения. Примерами, таких отношений являются "равенство" (стандартное обозначение =), отношения "больше, (>)" и "меньше,(<)" и ряд других отношений.

В общем случае бинарные отношения обозначаются символом . Словосочетание "в общем случае" следует понимать как "все бинарные отношения". Выражение "в общем случае" будет часто встречаться в нашем Курсе в разных контекстах. Кроме бинарных существуют n-арные отношения, но они, в отличие от бинарных отношений, не имеют общего символьного обозначения. Заметим, что n-арные отношения широко используются в теории реляционных баз данных.

Любое бинарные отношение представляется множеством упорядоченных пар элементов. В математике множество элементов обозначается с помощью двух фигурных скобок { }, а упорядоченная пара с помощью символов < >. Множество {<2,4>,<7,3>,<3,3>}, будучи множеством, состоящим из трех упорядоченных пар, есть бинарное отношение. Пара <2,4> является элементом этого бинарного отношения. Элемент бинарного отношения, т.е. упорядоченную пару в общем случае обозначим . Элементы в упорядоченной паре нельзя менять местами и, наоборот, элементы множества можно менять местами и при этом множество не меняется, т.е два множества с одинаковыми, но по разному расположенными элементами равны. Например {1,2}={2,1}. В качестве примера бинарного отношения рассмотрим все упорядоченные пары элементов, которые можно составить на множестве {1,2}. Для множества {1,2} путем перестановки его элементов можно составить всего лишь две упорядоченные пары <1,2> и <2,1>. Набор из двух упорядоченных пар <1,2>, <2,1> является примером бинарного отношения, установленного на множестве двух элементов {1,2}. Если множество состоит из трех элементов, то самое большое бинарное отношение, которое можно построить на нем, состоит из 6-ти упорядоченных пар. Подмножество этого бинарного отношения может состоять, например, только из 3-х упорядоченных пар. Очевидно, что для множества из n элементов самое большое (полное) бинарное отношение будет состоять из С2n = n(n-1) упорядоченных пар. Эти математические рассуждения пригодятся нам при рассмотрении теории графов.

Поскольку бинарные отношения постоянно встречаются в математике и науке о компьютерах, то, часто, прилагательное "бинарное" опускается и вместо словосочетания "бинарное отношение" говорят просто "отношение".

Рассмотрим теперь бинарные отношения, записываемые не в числовом виде, а с помощью слов. Пусть имеется множество, состоящее из двух словесных элементов {"отец-Иван", "сын Ивана-Николай"}. Установленное на нем полное бинарное отношение состоит из двух упорядоченных пар - <отец-Иван, сын-Николай> и <сын-Николай, отец-Иван>. Поименованные бинарные отношения используются в реляционных базах данных.

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

6.3. Теория графов

Теория графов и графовые сети (или просто графы) используются практически во всех областях знаний, в том числе, в компьютерной науке и практике. В частности, большую часть UML диаграмм можно представить графами. Основное достоинство графов в том, что их можно рисовать на бумаге или экранах компьютеров в виде точек соединенных стрелками и/или линиями. Вместе с тем, связанный граф представляется формально с помощью наборов бинарных отношений и/или множеств, каждое их которых состоит из двух элементов. Графы рисуют на бумаге не только те кто понимают теорию графов, но и люди, которые никогда о ней не слышали. К примеру, любой администратор, изображающий структуру, подчиненных ему подразделений в виде прямоугольников и стрелок между ними, по сути дела, рисует связанный ориентированный граф, хотя он и не знает об этом.

Началом теории графов считается 1736 год, когда вышла в свет статья Эйлера с его знаменитыми рассуждениями о Кенигсбергских мостах. Затем около 100 лет эта статья оставалась единственной, а методы теории графов невостребованными практикой. Интерес к графам появился только в середине 19 века благодаря исследованиям электрических сетей, моделей кристаллов и структур молекул. С тех пор сфера применений теории графов непрерывно расширялась и сегодня она представляет собой мощную формальную систему, имеющую необозримое множество областей практического применения. Естественно, в одной лекции невозможно детально рассмотреть все аспекты теории графов. Поэтому мы поступим иначе и постараемся понять ее сущность повторив ход рассуждений Эйлера о Кенигсбергских мостах.

Итак в Кенигсберге (ныне г. Калининград) течет река Неман. Она омывает два острова. Между берегами реки и островами во времена проживания в Кенигсберге Эйлера существовали 7 мостов, расположение которых показывает план на Рис. 6.1.

Рисунок 6.1

Задача Эйлера состояла в том, чтобы определить, можно ли выйдя из пункта С (или любого другого пункта) пройти каждый мост только по одному разу и вернуться в исходный пункт. Рассуждения и действия Эйлера в ходе решения этой задачи можно представить последовательностью следующих шагов: 1) он нарисовал план, 2) нарисовал неориентированный граф, ассоциированный с берегами, островами и мостами, 3) абстрагировал ассоциированный с данными граф от его содержания (см. Рис.6.1.б); это решающий шаг рассуждений Эйлера, поскольку абстрактный граф можно ассоциировать с чем угодно, например с площадями и улицами между ними, 4) сформулировал и доказал следующую теорему - Конечный граф G является эйлеровым графом тогда и только тогда, когда:

  1. Граф G связан
  2. Все его локальные степени четные.

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

Любой граф может быть нарисован на бумаге или экране компьютера и представлен формально. Поэтому нарисованный на экране компьютера граф может быть транслирован в память компьютера. Покажем каким образом графы рисуются на бумаге и представляются формально на примере трех простейших графов, каждый из которых состоит из одного ребра. Они показаны на Рис. 6.2.

Рисунок 6.2 Рис.6.2 раскрывает сущность теории графов в наглядной и формальной формах.

Четыре задачи для домашнего решения:

  1. Построить полный ориентированный граф, моделирующий все родственные отношения в семье, состоящей из отца-Ивана, матери-Марии, сына-Николая и деда Федора (отца отца-Ивана).
  2. Построить ориентированный граф, моделирующий все возможные пути однократных обходов двух мостов через реку.
  3. Построить полный неориентированный граф, моделирующий листание страниц книги, состоящей из четырех страниц. Определить полное число листаний такой книги.
  4. Показать, что оба ассоциированные графа, построенные в задачах 1,3, имеют одинаковую структуру ( один и тот же "скелет").
Hosted by uCoz