Портовые графы
Портовые графы — одна из разновидностей архиграфов, служащих для моделирования и анализа телекоммуникационных систем.
Задание портового графа[править]
Портовый граф можно задать тройкой Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle (V, P, E)} , где Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V} — множество вершин, Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle P} — множество инцидентных вершинам портов, Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle E} — множество ребер (дуг), связывающих порты. При этом вершина представляет собой телекоммуникационное устройство. Порт — сетевой интерфейс данного устройства. Дуги — линии связи.
Для получения портового графа нам следует задать три класса элементов для разбиения протографа, и правило разбиения такое, что вершины соседствуют только с портами, порты могут соседствовать с дугами и вершинами, дуга связывает только порты. Портограф Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle P} задается множеством элементов Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \{ p_i\}} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle i=1} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle n} и матрицей соседства (смежности) Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle M(n\times n)} , состоящей из 0 и 1, где 1 означает соседство (смежность) элемента Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle a} элементу Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle b} .
Формализация[править]
Портовым графом мы назовем граф Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle G (P, D, C)} , где Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle D} - множество вершин-устройств (от английского Devices - устройства), Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle P} -множество вершин-портов (от английского Ports - порты), Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle C} - множество ребер, связанных следующим отношением (от английского Connections - соединения).
Никакие две вершины из множества Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle D} не могут быть связан с помощью ребер из Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle C} , т.е. Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \forall G(D,P,C) } Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \forall d_1,d_2\in D } Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \nexists c=(d_1,d_2)\in C}
При этом две вершины из множества Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle P} могут быть связаны ребром, т.е. Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists G(D,P,C) } Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists p_1,p_2\in P} Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists c=(p_1,p_2)\in C} .
Отношение между вершинами из Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle D} и вершинами из Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle P} необходимо задавать аналогично отношению между вершин и ребер для графа, т.е. с помощью матрицы инцидентности, матрицы смежности и т.п.
Также можно расширить множество Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle C} ребер, связывающих вершины Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle d\in D} множеством Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle C_d} ребер, связывающих Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle p\in P} и Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle d\in D} .
В таком случае мы получим второй вариант отображения портового графа, где есть вершины двух типов (Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle P} и Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle D} ) и ребра двух типов (Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle c=(p_1,p_2)\in C} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle p_1,p_2\in P} и Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle c_{pd}=(p,d)} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle c_{pd}\in C_d} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle p\in P} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle d\in D} ).
При этом не существует ребер, связывающих вершины из Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle D} , т.е. Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \forall d_1, d_2\in D} Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \nexists c_{dd}=(d_1,d_2)\in C_{p+d}}
Это обусловлено тем, что устройства подключаются к другим устройствам через порты. Технически могут использоваться интерфейсы для привязки к устройству сетевых адресов, не привязанных к физическим интерфейсам, но при формализации таких схем интерфейсы также должны отображаться в виде вершин-портов Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle p\in P} .
Одна вершина из Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle D} может быть связана с несколькими вершинами Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle p} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists G(P,D, C_{p+d})} Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists d} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists p_1...p_n} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle \exists (c_{pi},c_d)\in C_{p+d}}
Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle n=\mid (c_{pi}, c_d) \mid\geq 1} , , но для каждого (для случая телекоммуникационных сетей) существует только одна вершина , связанная с .
Не существует вершин , не связанных с , то есть изолированных вершин в множестве нет.
Но могут существовать вершины , не связанные не с одним портом. Такая ситуация может быть если устройство не имеет ни одного сетевого интерфейса. Во множестве возможны изолированные вершины.
,
Также может существовать вершина , не имеющая ни одно связи с другой вершиной .
,
Количество связей вершин может быть равно нулю или единице, если мы определим, что две вершины могут быть соединены только одним ребром, либо иметь значения 0, 1 или больше, если мы определим, что в схеме допустимы гипер-ребра (для топологий шина и радиосетей).
Изображения портового графа[править]
Возможно два варианта изображения портового графа.
Первый вариант, когда в имеется три вида сущностей: вершины-устройства, вершины-порты и ребра, по отношению к графу, имеющему два вида сущностей (вершина и ребро).Такой вариант портового графа изображен на Рисунке 1. Портовый граф. Имеется три вершины из множества (устройств), по три вершины из множества (портов), инцидентных вершинам из , имеется четыре ребра из множества , связывающих вершины-порты. Имеется одна висячая вершина-порт.
Портовый граф может быть изображен в виде мультиграфа, имеющего кратные ребра, тогда под портами будем понимать уникальное соответствие каждой вершины и каждой дуги мультиграфа. Имеется однозначное соответствие между вершиной-портом в портовом графе и инцидентностью между вершиной и дугой в мультиграфе. Таким образом для мультиграфа (см. Рисунок 2) каждый порт является парой для инцидентных ребра и вершины. Но отметим, что для портового графа инцидентность должна быть определена не только для пар (вершина-порт, ребро), но и для пар (вершина-устройство, вершина-ребро), что может быть сделано несколькими способами.
Изображенный на Рисунке 1 портовый граф может быть изображен в виде мультиграфа, где вершины и связывают два кратных ребра и .
Вернемся к Рисунку 1, изображающему портовый граф. Он более информативен, чем мультиграф на Рисунке 2, так как порты являются не просто обозначением инцидентности вершины и ребра, но могут и нести дополнительную информацию (сетевые адреса, режимы работы и т.д.)
Фактически при рассмотрении портового графа вершины ведут себя по отношению к как ребра, а по отношению к как вершины. Мы полагаем, что можно найти обобщения графов и большего порядка, если вводить достаточное число сущностей, отличное от 2 (графа) и 3 (портовые графы). Что же касается портового графа, его можно представить и в виде графа, не сводя к мультиграфу, а напротив, воспользовавшись подобием вершин по отношению к вершинам ребрам графа. Для этого, воспользуемся описанным свойством портового графа, что существует только одна связь для каждого , и изобразим ее в виде дополнительных ребер, отличных от уже присутствующих в портовом графе.
Расширение множества ребрами, показывающими связь и до множества позволяет изобразить портовый граф в виде обычного графа, где имеются вершины и ребра, но вершины и ребра помечены, как имеющие один из двух типов. Для вершин это признак принадлежности множеству или , для ребер - множеству или соответственно.
Портовый граф, изображенный на Рисунке 1 в отображенном виде представлен на Рисунке 3. Такое отображение назовем отображенным портовым графом.
Портовый граф (Рисунок 1, Рисунок 2) отображен на граф с добавлением ребер, соответствующих отношениям вершин к вершинам .
Мы полагаем, что дополнительные ребра из являются менее значимыми по информативности, нежели дополнительные вершины-порты, вводимые для мультиграфа. Таким образом портовый граф (Рисунок 1) более информативен, чем мультиграф (Рисунок 2), так как содержит больше релевантной информации, и более информативен чем отображенный портовый граф (Рисунок 3), так как содержит меньше избыточной информации.
При этом, с одной стороны, отображение портового графа на обобщенный портовый граф может быть полезно для исследования свойств, в том числе методами раскраски графа, доступными для теории графов.
Кроме того, мультиграфы могут быть аналогичным образом отображены в портовые графы и отображенные портовые графы.
Примеры портографов[править]
Конечные портографы:
- стек
- очередь
- карта
Бесконечные портографы:
- машина Тьюринга
- паркет
- Разбор примера портографа телекоммуникационной сети
На рисунке изображен пример портового графа телекоммуникационной сети. При этом вершины помечены характеристиками устройств (указан hostname), порты помечены характеристиками сетевых интерфейсов (имя сетевого интерфейса, ТР-адрес и префикс сети), дуги помечены типом (экранированная/неэкранированная) и категорией витой пары. Отметим, что в рамках модели портового графа могут быть изображены и мультиграфы, используемые для описания телекоммуникационных сетей. При этом мы можем не просто связать два устройства параллельными линиями связи, но и приписать полезную информацию порту (сетевому интерфейсу).
Отметим, что в рамках модели портового графа могут быть изображены и мультиграфы, используемые для описания телекоммуникационных сетей. При этом мы можем не просто связать два устройства параллельными линиями связи, но и приписать полезную информацию порту (сетевому интерфейсу).
На рисунке показана топология сети вида иерархическая звезда, то есть каждая дуга соединяет только два порта. На практике существуют сетевые топологии, когда могут быть связаны три и более сетевых интерфейса. Примерами таких топологий могут являться «топология шина» и радиосеть. При этом топологию «шина» невозможно изобразить с помощью простого графа.
Раскраска портографа[править]
Каждому элементу протографа можно приписать одно или несколько значений, в частности для протографа имеет смысл раскраска протографа: разбиение множества элементов протографа на несколько классов.
Раскраска протографа осуществляется аналогично раскраске карты цветами. Также аналогично для протографа можно определить хроматическое число.
Нераскрашенному графу можно сопоставить протограф с хроматическим числом 2. Граф определен на множестве вершин и множестве ребер , где каждое ребро сопоставлено паре вершин . Сопоставим каждой вершине элемент протографа, таким образом, что два элемента не будут смежными. Каждому ребру сопоставим элемент , такой, что и — соседствуют, и — соседствуют. Раскрасим элементы в цвет 1. Так как любой соединяется только с одним , то можно покрасить в цвет 2. Так как любой элемент соседствует только двум элементам и , которые уже раскрашены в цвет 1, двух цветов достаточно чтобы раскрасить протограф.
Нераскрашенному ориентированному графу можно сопоставить ориентированный портограф с хроматическим числом 2.
- Непрямое соседство
Для протографа можно ввести определение непрямого соседства. Когда два элемента 1 класса и не соседние, но когда существует элемент 2 класса, при этом существует , такой что и соседние, и — соседние. Другими словами, непрямые соседи — два элемента одного класса, которые не являются соседними. Но есть элемент второго класса, который является соседним для каждого из тех элементов.
Заключение[править]
Портовые графы естественным образом являются обобщением идеи мультиграфов, но при этом дополняется идеей гиперграфа. Портовый гиперграф - портовый граф, у которого несколько портов соединены гиперребром. Механизм отображения также может быть применен и к мультиграфам, имеющим кратные ребра, которые могут быть изображены в виде портового графа или отображенного портового графа. Как следствие, гиперграфы и мультиграфы, служащие для моделирования сети могут быть сведены к таком производному портовому графу. Портовые графы могут использоваться для описания и моделирования телекоммуникационных сетей, в иных отраслях знания, использующих графы, идея портовых графов может быть первой в ряде обобщений графов для сущностей более высокого порядка, чем вершина, ребро, и вершина-устройство, вершина-порт, ребро.
См. также[править]
Литература[править]
- Кручинин С.В., Кузнецов А.М., Зотов С.В. Графическое ядро визуализации и анализа инженерных схем//Свидетельство о государственной регистрации программа для ЭВМ № 2011618938 от 27.09.2011. -Федеральная служба по интеллектуальной собственности, патентам и товарным знакам.
- Кручинин С. В. Математическая модель акторов телекоммуникационной сети в проектировании САПР//Известия Волгоградского государственного технического университета. -2014. -Т. 20. № 6 (133). -С. 123-131.
- Кузнецов А.М. Реализация математической модели мультиграфа мобильных сетей транспортных средств // Научно-исследовательские публикации. 2016. № 5 (37). С. 50-54.
- Гордеев Д. С. Визуализация внутреннего представления программ в системе функционального программирования SFP. - Новосибирск, 2004. - 54 с. - (Препр. / РАН. Сиб. Отд-ние. ИСИ; № 110).