русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

МАТРИЧНЫЕ СПОСОБЫ ПРЕДСТАВЛЕНИЯ ГРАФОВ


Дата добавления: 2015-07-23; просмотров: 4555; Нарушение авторских прав


ЛАБОРАТОРНАЯ РАБОТА №8

 

1 ЦЕЛЬ РАБОТЫ

Целью работы является изучение матричных способов представления графов.

2 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

2.1 ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ

Граф G задается множеством точек или вершин x1,x2,...,xn (которое обозначается через X) и множеством линий или ребер a1,a2,…,an (которое обозначается символом А), соединяющих между собой все или часть этих точек. Таким образом, граф G полностью задается (и обозначается) парой
(X, А).

Если ребра из множества А ориентированы, что обычно показывается стрелкой, то они называются дугами, и граф с такими ребрами называется ориентированным графом (орграф) (рисунок 1(а)). Если ребра не имеют ориентации, то граф называется неориентированным (неорграф) (рисунок 1(б)). В случае когда G=(X, А) является ориентированным графом и мы хотим пренебречь направленностью дуг из множества А, то неориентированный граф, соответствующий G, будем обозначать как G=(X, А).

 
 

 


 

Если дуга обозначается упорядоченной парой, состоящей из начальной и конечной вершин (т. е. двумя концевыми вершинами дуги), ее направление предполагается заданным от первой вершины ко второй. Так, например, на рисунке 1(а) обозначение (x1,x2)относится к дуге a1, а (x2,x1) - к дуге a2.

Другое, употребляемое чаще описание ориентированного графа G состоит в задании множества вершин Х и соответствия Г, которое показывает, как между собой связаны вершины. Соответствие Г называется отображением множества Х в Х, а граф в этом случае обозначается парой G=(X,Г).



Для графа на рисунке 1(а) имеем Г(x1)={x2,x5}, т. е. вершины x2 и x5 являются конечными вершинами дуг, у которых начальной вершиной является x1.

Г(x2)={x1,x3}, Г(x3)={x1}, Г(x4)=Æ - пустое множество, Г(x5)={x4}.

В случае неориентированного графа или графа, содержащего и дуги, и неориентированные ребра (см., например, графы, изображенные на рисунках 1(б) и 1(в)), предполагается, что соответствие Г задает такой эквивалентный ориентированный граф, который получается из исходного графа заменой каждого неориентированного ребра двумя противоположно направленными дугами, соединяющими те же самые вершины. Так, например, для графа, приведенного на рисунке 1(б), имеем Г(x5)={x1,x3,x4}, Г(x1)={x5}и др.

Поскольку прямое соответствие или образ вершины Г(xi)представляет собой множество таких вершин xjÎX, для которых в графе G существует дуга (xi,xj), то через Г-1(xi) естественно обозначить множество вершин xk, для которых в G существует дуга (xk,xi). Такое отношение принято называть обратным соответствием или прообразом вершины. Для графа, изображенного на рисунке 1(а), имеем

Г-1(x1)={x2,x3}, Г-1(x2)={x1} и т. д.

Вполне очевидно, что для неориентированного графа Г-1(xi)=Г(xi) для всех xiÎX.

Когда отображение Г действует не на одну вершину, а на множество вершин Xq={x1,x2,...,xq}, то под Г(Xq)понимают объединение Г(x1)ÈГ(x2)È...ÈГ(xq), т. е. Г(Xq)является множеством таких вершин xjÎX, что для каждой из них существует дуга (xi,xj) в G, где xiÎXq. Для графа, приведенного на рисунке 1(а), Г({x2,x5})={x1,x3,x4} и Г({x1,x3})={x2,x5,x1}.

Отображение Г(Г(xi)) записывается как Г2(xi). Аналогично "тройное" отображение Г(Г(Г(xi))) записывается как Г3(xi) и т. д. Для графа, показанного на рисунке 1(а), имеем:

Г2(x1)=Г(Г(x1))=Г({x2,x5})={x1,x3,x4};

Г3(x1)=Г(Г2(x1))=Г({x1,x3,x4})={x2,x5,x1} и т. д.

Аналогично понимаются обозначения Г-2(xi), Г-3(xi) и т. д.

 

Дуги a=(xi,xj), xi¹xj, имеющие общие концевые вершины, называются смежными. Две вершины xi и xj называются смежными, если какая-нибудь из двух дуг (xi,xj) и (xj,xi) или обе одновременно присутствуют в графе. Так, например, на рисунке 2 дуги a1, a10, a3 и a6 как и вершины x5 и x3, являются смежными, в то время как дуги a1 и a5 или вершины x1 и x4 не являются смежными.

Число дуг, которые имеют вершину xi своей начальной вершиной, называется полустепенью исхода вершины xi, и, аналогично, число дуг, которые имеют xi своей конечной вершиной, называется полустепенью захода вершины xi.

Таким образом, на рисунке 2 полустепень исхода вершины x3, обозначаемая через deg+(x3), равна ½Г(x3)½=3, и полустепень захода вершины x3, обозначаемая через deg-(x3), равна ½Г-1(x3)½=1.

Очевидно, что сумма полустепеней захода всех вершин графа, а также сумма полустепеней исхода всех вершин равны общему числу дуг графа G, т. е.

, (1)

где n - число вершин и m - число дуг графа G.

Для неориентированного графа G=(X,Г) степень вершины xi определяется аналогично - с помощью соотношения deg(xi) º½Г(xi)½=½Г-1(xi)½.

Петлей называется дуга, начальная и конечная вершины которой совпадают. На рисунке 3, например, дуги a3 и a10 являются петлями.

2.2 МАТРИЧНЫЕ ПРЕДСТАВЛЕНИЯ

2.2.1 МАТРИЦА СМЕЖНОСТИ

Пусть дан граф G, его матрица смежности обозначается через A=[aij]и определяется следующим образом:

aij=1, если в G существует дуга (xi,xj),

aij=0, если в G нет дуги (xi,xj).

 

 

Таким образом, матрица смежности графа, изображенного на рисунке 3, имеет вид

 

 

 

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

Петли на графе представляют собой элементы, имеющие 1 на главной диагонали матрицы, например a22, a66 для графа, изображенного на рисунке 3.

В случае неориентированного графа матрица смежности является симметричной относительно главной диагонали (рисунок 4).

 

 

 

 

2.2.2 МАТРИЦА ИНЦИДЕНТНОСТИ

Пусть дан граф G с n вершинами и m дугами. Матрица инцидентности графа G обозначается через B=[bij] и является матрицей размерности n x m, определяемой следующим образом:

bij=1, если xi является начальной вершиной дуги aj;

bij=-1, если xi является конечной вершиной дуги aj;

bij=0, если xi не является концевой вершиной дуги aj.

Для графа, приведенного на рисунке 3, матрица инцидентности имеет вид:

 

 

Поскольку каждая дуга инцидентна двум различным вершинам (за исключением случая, когда дуга образует петлю), то каждый столбец содержит один элемент, равный 1, и один - равный -1. Петля в матрице инцидентности не имеет адекватного математического представления (в программной реализации допустимо задание одного элемента bij=1).

Если G является неориентированным графом (рисунок 4), то его матрица инцидентности определяется следующим образом:

bij=1, если xi является концевой вершиной дуги aj;

bij=0, если xi не является концевой вершиной дуги aj.

 

 

Матрица инцидентности, как способ задания графов, успешно применяется при описании мультиграфов (графов, в которых смежные вершины могут соединяться несколькими параллельными дугами).



<== предыдущая лекция | следующая лекция ==>
Задание | ЗАДАНИЕ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.