Как найти матрицу инцидентности графа онлайн

Теория графов. Матрица смежности онлайн

Описание ненаправленного графа
Матрица инцидентности графа
В виде строки

Матрица  инцидентности

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

Такие взаимосвязи можно представить в виде сети или графов.

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

Граф может рассматриваться как упорядоченное множество. Для наглядности элементы этого множества можно изобразить в виде точек, а связи между ними—в виде направленных (или ненаправленных) отрезков (называемых «ребрами»), связывающих эти точки. Мы говорим тогда о наглядно-геометрическом представлении графов. При этом важно лишь то, какие точки связаны друг с другом, длина же связующих отрезков не принимается во внимание. Этим способом можно описывать отношения, которые могут иметь место в жизни, например «необходимо для» , «в связи с», «зависит от» и тому подобное.

Даны два множества: множество узловых точек А и множество ребер Б. Если  между двумя узловми точками  А1 и А2 существует ребро Б1, то  говорят что ребро Б1 инцидентно узловым точкам А1 и А2. Таким образом, между элементами из А и Б устанавливаются отношения инцидентности.

Пример построения графа

При переводе графа в матричную форму нужно соблюдать следующие правила. 

Если существует ребро, ведущее из точки А в точку Б, то элемент матрицы АБ полагается равным 1, если же точки А и Б не связаны, то АБ = 0. При этом полагается, что ни одна точка не соединена сама с собой.

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

Хотелось бы заметить что в интернете много определений инцидентности, и в каждом примере  используется почему то какой то свой особенный алгоритм, и матрицы у всех получаются различные. Мы взяли для расчета матрицы информацию из книги Гильберт А. «Как работать с матрицами». 1977 года издания.

При вводе  данных наш бот не просит названия ребер. Он основывается на данных об узловых точках: какая точка и какие соседние точки доступны.

Синтаксис

Jabber: graf выражение

WEB: выражение

где,

Выражение — строка,  определяющая соответствие связей между узловыми точками, разделенная точкой с запятой.

A(B,C);C(F,A) и так далее

Примеры

Рассмотрим  наш граф 

Пишем

A связан только с B

B связан с точками C A D и F

ну и так далее. Смысл я надеюсь понятен.

и окончательный  запрос будет таким A(B);B(A,C,D,F);C(B,F,E);D(B,F);E(C,F);F(C,E)

Запрос избыточен, так как видно что некоторые ребра записаны дважды, но это не беда.

Сделано именно для упрощения ввода, что бы «не думалось» какие ребра вы ввели а какие еще нет. 

И получаем следующий результат  — это и будет матрицей инцидентности.

Если же Вам нужна обратная задача  — по матрице смежности построить граф, то Вам стоит обратится вот сюда Построить граф по матрице

begin{pmatrix} 0 & 1 & 0 & 0 & 0 & 0 \ 1 & 0 & 1 & 1 & 0 & 1 \ 0 & 1 & 0 & 0 & 1 & 1 \ 0 & 1 & 0 & 0 & 0 & 1 \ 0 & 0 & 1 & 0 & 0 & 1 \ 0 & 1 & 1 & 1 & 1 & 0 end{pmatrix} 

Теперь Вы, основываясь на этой матрице можете легко, определять связи между элементами.

Создание графа

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

Граф можно нарисовать или задать в виде матрицы или схемы (меню Действия).

Также доступно:

  • Поиск кратчайшего пути с помощью алгоритма Дейкстры, задача о кратчайшем пути (см. вкладку Параметры графа).
  • Построить дерево.
  • Построить дерево по коду Прюфера (затем можно будет найти его инверсию).
  • Редактор графа
  • Параметры графа
  • Решение
  • Примеры реализаций
  • Оформление Word

Нумерация вершин с №1

Дуги с одинаковыми весами:

Выберите нужный тип вершины и нажмите левой кнопкой мыши на графическом полотне

Размеры графического полотна

Ширина
Высота

Созданный граф можно сохранить в форматах docx и png (меню Действия).

Далее можно найти характеристики графа (матрица смежности, матрица инциденций, матрица расстояний).

Для сформированного графа можно выполнить следующие действия:

Здесь будет показано решение

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

Граф состояний кредитной карты


PSCashBack

Здесь объектом анализа выступает такой банковский продукт как кредитная карта K. На графе состояний операций по кредитной карте отмечены следующие события: начисления процентов на остаток счета (P — петля), покупка П на сумму S, возврат CashBack в виде бонусных баллов на счет карты.

Сетевой график получения кредитной истории

1
2
3
4
5
6

1 — устройство на работу с трудовой книжкой; 2,3 — получение кредитной карты с минимальным кредитным лимитом. Некоторые банки выдают кредиты уже после 3-х месячного трудового стажа, другие банки устанавливают этот срок от 1 года; 4,5продвинутый уровень, получение кредитных карт с большим cashback-ом; 6 — хорошая кредитная история, полученная с выгодой от использования кредитных карт.

Схема транспортной сети

3
8
10
B
159 км
134 км
190 км
67 км
81 км

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

Задача календарного планирования с заданной технологией

НачалоКонец
14,B14,A
14,C14,D
10,A10,B

Здесь показан пример ориентированного графа

Схема канала распределения

ФирмаОптовая продажа
Розничная продажаПотребитель

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

Еще один пример построения схемы классификации аннуитетных платежей можно посмотреть здесь.

Видеоинструкция

Инструкция к сервису по рисованию графа

Для добавления вершины на графическое полотно необходимо использовать соответствующую фигуре кнопку Добавить. Если название вершины не задано, будет показан ее номер. По умолчанию, нумерация начинается с номера 1. Чтобы нумерация начиналась с 0, необходимо снять отметку с пункта Нумерация вершин с №1. Название вершины может содержать символьную строку (перенос строк осуществляется через символ |).

Чтобы соединить вершины, их необходимо предварительно выбрать (один клик мыши по объекту), а затем нажать на кнопку Соединить. Если выбрана одна вершина, то будет создана петля. У выбранных элементов (вершин или дуг) можно изменить свойства или удалить их.

Построенный граф можно сохранить в формате docx или png.

Основные определения

В математической теории графов и информатике граф представляет собой совокупность объектов со связями между ними. Граф G задается множеством точек (вершин) X={x1,…,xn} и множеством линий (ребер) A={a1,…,am}, соединяющих между собой все или часть этих точек. На данный момент в сервисе для графического отображения вершин используются следующие фигуры: круг, квадрат и треугольник. Каждая вершина может иметь собственный вид: цвет и толщина линии, фон и размеры. Для изменения характеристик вершины необходимо выделить ее левой кнопки мыши и нажать на кнопку Свойства.

Ребра графа – линии, соединяющие вершины. Чтобы соединить вершины, необходимо выбрать одну или две из них. Каждое ребро графа имеет собственные свойства: цвет и толщина линии, значение (отображается поверх ребра).

Ребро графа называется неориентированным, если порядок расположения его концов (направление стрелок) в графе не принимается во внимание. Ребро графа называется ориентированным, если этот порядок существенен. Ориентированное ребро называют также дугой графа. Две вершины, соединённые дугой или ребром называются смежными. Для задания дуги необходимо при соединении вершин отметить пункт концевой маркер →. Для изменения типа дуги необходимо выделить ее левой кнопки мыши и нажать на кнопку Свойства.

С каждым ребром можно связать число или символ — вес ребра. Для задачи коммивояжера это может быть расстояние между городами, а для транспортной сети — стоимость проезда. Такой граф называется взвешенным.

Для каждого графа G(Х) существует обратный граф G-1(Х), полученный изменением ориентации каждого из ребер графа G(Х) на противоположную.

Петлей называется ребро g(xi,xi), у которого начальная и конечная вершины совпадают. Петля обычно считается неориентированной. Для создания петли необходимо выделить только одну вершину и нажать на кнопку Соединить.

Ребра ориентированного графа с одинаковыми весами могут быть представлены в разном виде. Для настройки отображения используйте пункт Дуги с одинаковыми весами.

В неизменном виде: отображается каждая дуга с весом.

12345372032724184120181

Представить как неориентированные: отображается неориентированная дуга с общим весом.

12345372420181

Соединять в одну: две ориентированные дуги с общим весом соединяются в одну.

12345372420181

Область применения

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

Сеть это граф, в котором вершины связаны между собой по принципу «многие ко многим».

Примером ориентированного графа являются блок-схемы алгоритмов.

Матрица Кирхгофа

На главной диагонали матрицы Кирхгофа находятся степени вершин, а на пересечении i-й строки и j-го столбца (i≠j) стоит −1, если вершины с номерами i и j смежны, и 0 в противном случае.

Число остовов в связном неодноэлементном обыкновенном графе G равно

алгебраическому дополнению

любого элемента матрицы Кирхгофа B(G). Найти алгебраическое дополнение можно здесь.

Задача о кратчайшем пути между парой вершин

Требуется найти кратчайший путь из заданной вершины s в заданную вершину d. Для этого необходимо будет выделить вершины s и d, а затем выполнить команду Разрез сети. Используется алгоритм Дейкстры (Dijkstra’s algorithm, 1959). Для более подробного решения по шагам, используйте вкладу Параметры графа.

Пример. Задан обыкновенный граф с 7 вершинами и рёбрами: (1,3), (1,4), (2,6), (3,6), (4,5), (5,6), (5,7), (6,7). Вычислить и записать кратчайший путь (через 1 пробел) от вершины 1 до вершины 2.

Построение дерева

Для преобразования созданного графа в дерево (организационная диаграмма), используйте команду Преобразовать в дерево. Также можно создать дерево заново, использую следующий сервис. Для этого в каждой строке укажите вершины в формате:v1-v2. Текст к вершине задается командой v1=name.

Отображать индексы вершин

Например, для этих данных

1-2
1-3
2-4
1=Директор
2=Финансовый директор
3=Бухгалтер
4=Экономист

было нарисовано следующее дерево.

  Директор  
                   
         
Финансовый директор   Бухгалтер
     
     
Экономист  
 

Построение дерева по коду Прюфера

Код Прюфера представляет собой последовательность вершин.

Цифры кода разделяются пробелом, например 1 5 2. В некоторых случаях, дерево строится не полностью из-за особенностей работы алгоритма. В этом случае можно вручную поправить полученные вершины и нажать на кнопку Построить дерево. Чтобы получить подробное нахождение списка вершин, используйте кнопку Решение.

Пример восстановления дерева по коду Прюфера

Код: 152

Число вершин в графе, n=3

Список вершин (n+2=5): 1 2 3 4 5

Шаг №1

Код Прюфера: 1 5 2

Массив вершин дерева: 1 2 3 4 5

Минимальная вершина, не содержащаяся в коде Прюфера – это 3.

Список ребер: 1 3.

Шаг №2

Код Прюфера: 1 5 2

Массив вершин дерева: 1 2 3 4 5

Минимальная вершина, не содержащаяся в коде Прюфера – это 1.

Список ребер: 1 3, 5 1.

Шаг №3

Код Прюфера: 1 5 2

Массив вершин дерева: 1 2 3 4 5

Минимальная вершина, не содержащаяся в коде Прюфера – это 4.

Список ребер: 1 3, 5 1, 2 4.

Шаг №5

Код Прюфера: 1 5 2

Массив вершин дерева: 1 2 3 4 5

Добавляем остаточные вершины: 2 5

Итого:

Список ребер: 1 3, 5 1, 2 4, 2 5

Поиск кратчайшего пути во взвешенном графе

Алгоритм Беллмана — Форда находит кратчайшие пути от одной вершины графа до всех остальных. В отличие от алгоритма Дейкстры, алгоритм Беллмана — Форда допускает рёбра с отрицательным весом.

Для отыскания всех путей выберите исходную вершину.

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

На данной сети дорог имеется несколько маршрутов, по которым можно доставлять груз из пункта 1 в пункт 10. Известны стоимости сij перевозки единицы груза между пунктами сети.

Требуется:

  1. методом динамического программирования найти за сети наиболее экономный маршрут доставки груза из пункта 1 в пункт 10 и соответствующие ему затраты;
  2. выписать оптимальные маршруты перевозки груза из всех остальных пунктов сети в пункт 10 и указать отвечающие им минимальные затраты на доставку.

12345678910
7 3 5 298 34 715 21 694 38

Для решения необходимо задать сеть (удобнее в виде схемы через меню Действия) и отметить пункт задача о кратчайшем пути из вершины 10.

Задача о максимальном потоке

Алгоритм Форда-Фалкерсона позволяет найти максимальный поток в сети. При выполнении каждой итерации метода Форда-Фалкерсона определяется увеличивающий путь р, и поток f вдоль каждого ребра данного пути увеличивается на величину остаточной пропускной способности сf(р).

Список литературы

  1. Кориков А.М., Сафьянова Е.Н. Основы системного анализа и теории систем: Учебное пособие. – Томск: изд-во Том. ун-та, 1989. – 207 с.
  2. Оре О. Теория графов. – М.: Наука, 1980. – 352 с.
  3. Основы кибернетики. Математические основы кибернетики / Под. ред. К.А. Пупкова. – М.: Высш. школа, 1974. – 416 с.
  4. Горбатов В.А. Основы дискретной математики. – М.: Высш. школа, 1986. – 312 с.
  5. Кристофидес Н. Теория графов. Алгоритмический подход. – М.: Мир, 1978. – 432 с.
  6. Кузин Л.Т. Основы кибернетики.: В 2 т. Т.2. Основы кибернетических моделей. – М.: Энергия, 1979. – 584 с.
  7. Шевелев Ю.П. Высшая математика 5. Дискретная математика. Ч.1: Теория множеств. Булева алгебра (для автоматизированной технологии обучения): Учебное пособие. – Томск: Том. гос. ун-т систем управления и радиоэлектроники, 1998. – 114 с.
  8. Восстановление дерева по коду Прюфера

Текст

РазмерЦвет

Линия

ТолщинаЦвет

пунктирная — — — —
Размеры в px и фон

wh

Текст (вес)

РазмерЦвет

Линия

ТолщинаЦвет

пунктирная — — —
концевой маркер →

Тип

В каждой строке укажите вершины в формате:v1-v2:n, например
1-2:4
1-3:8
2-4:12
4-1:6

Все числа отделяются другу от друга пробелом

Код Прюфера

logo of Programforyou

  • О нас
  • Сервисы
    • Редактор блок-схем
    • Редактор графов
    • Калькуляторы
  • Полезное
  • Программы
  • Проекты
  • Контакты

Говорить о том, что ребро g и каждая из вершин u и y инцидентна g, стоит лишь в том случае, если g соединяет u и y. Уяснив это, перейдем к рассмотрению данного метода. Матрица инцидентности строиться по похожему, но не по тому же принципу, что и матрица смежности. Так если последняя имеет размер n×n, где n – число вершин, то матрица инцидентности – n×m, здесь n – число вершин графа, m – число ребер. То есть теперь чтобы задать значение какой-либо ячейки, нужно сопоставить не вершину с вершиной, а вершину с ребром.

В каждой ячейки матрицы инцидентности неориентированного графа стоит 0 или 1, а в случае ориентированного графа, вносятся 1, 0 или -1. То же самое, но наиболее структурировано:

1) Неориентированный граф

a. 1 – вершина инцидентна ребру

b. 0 – вершина не инцидентна ребру

2) Ориентированный граф

a. 1 – вершина инцидентна ребру, и является его началом

b. 0 – вершина не инцидентна ребру

c. -1 – вершина инцидентна ребру, и является его концом

Построим матрицу инцидентности сначала для неориентированного графа, а затем для орграфа.

Матрица инцидентности

Ребра обозначены буквами от a до e, вершины – цифрами. Все ребра графа не направленны, поэтому матрица инцидентности заполнена положительными значениями.

Матрица инцидентности орграф

Для орграфа графа матрица имеет немного другой вид. В каждую из ее ячеек внесено одно из трех значений. Обратите внимание, что нули в двух этих матрицах (рис. 1 и 2) занимают одинаковые позиции, ведь в обоих случаях структура графа одна. Но некоторые положительные единицы сменились на отрицательные, например, в неориентированном графе ячейка (1, b) содержит 1, а в орграфе -1. Действительно, это уместно, т. к. в первом случае ребро b не направленное, а во втором – направленное, и, причем вершиной входа для него является вершина «1».

Каждый столбец отвечает за какое-либо одно ребро, поэтому граф, описанный при помощи матрицы инцидентности, всегда будет иметь следующий признак: любой из столбцов матрицы инцидентности содержит две единицы, либо 1 и -1 когда это ориентированное ребро, все остальное в нем – нули.

В программе матрица инцидентности задается, также как и матрица смежности, а именно при помощи двумерного массива. Его элементы могут быть инициализированы при объявлении, либо по мере выполнения программы.

( 2 оценки, среднее 5 из 5 )

M

Sur.ly

Home
How it Works
Downloads
Help

X

Powered
by SUR.LY

!

Report this website

We got your feedback. Thank you!

Report this website


Adult content


Suspicious activity or malware


Spam or abuse


Other

Share your thoughts with us:

G

T

F

Trust
N/A

Privacy
N/A

Child safety
N/A


graphonline.ru

Site Rating

Trust

N/A

Privacy

N/A

Child safety

N/A

Site Advisor


0 /

0

Alexa Rank

N/A

Daily visitors

1 554

Daily pageviews

1 554

D

U

Recent posts: Sur.ly for WordPress




Sur.ly for WordPress


Sur.ly plugin for WordPress is free of charge.




Sur.ly for Joomla


Sur.ly plugin for Joomla 2.5/3.0 is free of charge.




Sur.ly for Drupal


Sur.ly extension for both major Drupal version is free of charge.




Sur.ly for any website


In case your platform is not in the list yet, we provide Sur.ly Development Kit (SDK) for free, which allows you to implement Sur.ly on any website using PHP 4.3 and newer.

Понравилась статья? Поделить с друзьями:
  • Как найти игрока в dayz
  • Как найти силу тока если известна индуктивность
  • Как составить список своих ценностей
  • Как найти американскую семью
  • Психология как составить психологический портрет человека