В этом случае задача типизации формулируется А. М. Бершадским как задача выделения в графе изоморфных подграфов. Поскольку элементы схемы могут быть различных типов, то в этом случае используются графы с весами на вершинах и ребрах. Тождественные преобразования графов, сводимые только к преобразованию вершин и ребер, приводят к получению изоморфных графов.
Два графа G = (Х,U) и G' = (Х',U') называются изоморфными, если можно установить взаимно однозначное соответствие Х↔X', U↔U', такое, что если (Xi,Xj) є X ↔ (Xi',Xj') є X' то ребро UR = (Xi,Xj) є U ↔ Ur'=(Xi', Xj' ) є U1'.
Изоморфные графы могут быть получены один из другого путем перенумерации их вершин.
Задана функциональная схема, состоящая из элементов разных типов.
Задача выделения в графе G изоморфных подграфов формулируется следующим образом: найти разбиение φ(G) є 0 графа G на множество групп Г={Г1,.....,Гf} изоморфных подграфов Гi, удовлетворяющих следующим требованиям:
- любые два подграфа, принадлежащие произвольной группе разбиения, не должны пересекаться;
- множество вершин любых двух подграфов разбиения недолжны пересекаться;
- число вершин любого подграфа разбиения не должно превышать заданное (конструктивное ограничение, связанное с числом элементов на типовом элементе конструкции);
- суммарное число внешних ребер каждого подграфа не должно превышать заданное (конструктивное ограничение, связанное с числом элементов разъема или длиной параметра корпуса ТЭК).
Критерием оптимальности при типизации является минимальное число групп изоморфных подграфов, полученных в результате разбиения. Для решения задачи типизации путем сведения ее к задаче выделения в графе изоморфных подграфов.
ПРИМЕР:
Схема коммутационная
По исходной схеме строим взвешенный граф G*=(X.U)
Строится матрица смежности
Далее по алгоритму выделим максимальные мощности множество изоморфных подграфов, имеющих максимальное число вершин и ребер.
1. Объединяются равно вариантные вершины графа G=(X,U) в группы Гik k - шаг выделения изоморфных подграфов. k=0 - начальный шаг.
Равно инвариантные вершины (инвариантные вершины - вершины, у которых степень и вес одинаковы) объединяются в группы.
Г10 = {X1, Х4, Х7} степень р(Хi) = 2 и вес β = 2;
Г20 ={Х2, Х5, Х8} степень p(Xi)=3 и вес β = 4;
Гз0 ={ХЗ, Х6, Х9} степень p(Xi)=5 и вес β = 6;
(локальной степенью вершины q называется число ребер, инцидентных одной вершине)
2. Определяются группы Г с мощностью множества, равного 1(t=1) и производиться исключение их из дальнейшего рассмотрения. Мощность t - количество вершин в группе. В нашем примере таких групп нет.
3. Рассматриваются все возможные объединения Гi0 и Гj0 пар групп равно вариантных вершин, и находится максимальное число изоморфных подграфов, состоящее из двух вершин.
L=1(1-1)/2
L=3(3-1)/2=3
1 - число групп.
L - число возможных объединений групп.
Процесс выделения изоморфных подграфов заключается в выборе максимального числа одинаковых (но не нулевых) элементов подматрицы R[Гik/Гjk] расположенных в разных строках и столбцах рассматриваемой подматрицы, где R[Гik/Гjk] - подматриц матрицы R исходного графа, расположенная на пересечении строк, соответствующих вершинам Xi є Гi, и столбцов, соответствующих вершинам Xj є Uj.
4. Объединение групп Гik и Гjk
Определение изоморфных подграфов, имеющих мощность t=k+2, k=0.
В результате объединения на первом шаге образуются три группы изоморфных подграфов:
Г11 = {Х1-Х2, Х5-Х4, Х7-Х8} t=2
Г21 = {Х1-ХЗ, Х4-Х6, Х7-Х9} t=2
Г31 = {Х2-ХЗ, Х5-Х6, Х8-Х9} t=2
5. k=ki+1 - переход к следующему шагу наращивания изоморфных подграфов.
k = 1
6. Для каждой группы Гi1 находится исходный массив вершин Mi0 для дальнейшего рассмотрения изоморфных подграфов данной группы. Такой массив составляется из вершин, не вошедших в рассматриваемую группу изоморфных подграфов, причем мощность исходного массива (число вершин, входящих в массив, входящих в массив) должно быть не менее двух.
Имеем:
MiR = X*/ГiR
М10 = (ХЗ, X6, X9) для Г11
М20 = (Х2, Х5, Х8) для Г21
М30 = (Х1, Х4, Х7) для Г31
7. Исходный массив Mi0 разбивается на группы равно вариантных вершин Гij0, аналогично пункту 1.
Г110 = {ХЗ, Х6, Х9} для Г11
Г210 = {Х2, Х5, Х8} для Г21
Г310 = {Х1, Х4, Х7} для Г31
8. Определяются группы ГMiR с мощностью t=1 и исключаются из дальнейшего рассмотрения.
9. Для каждого массива M*Ri проверяется условие M*Ri≠0. Если условие для всех массивов не выполняется, то дальнейшее наращивание изоморфных подграфов невозможно, т.к. отсутствуют равно вариантные вершины. В этом случае переход к 11. Если хотя бы для одного массива условие выполняется - переход к 10.
10. Каждая группа изоморфных подграфов Гi1 поочередно объединяются со всеми группами Гij0 своего исходного массива.
k = 1- второй шаг массива.
На основе подматриц каждого объединения Гi1 U Гij0 определяются группы изоморфных подграфов, имеющих мощность t=k+2 аналогично пункту 4.
Получаем три группы изоморфных подграфов с числом вершин в каждом графе, равном 3.
Г12={Х1Х2ХЗ, Х4Х5Х6, Х7Х8Х9}
Г22= {Х1ХЗХ2, Х4Х6Х5, Х7Х9Х8}
Г23= {Х2ХЗХ1, Х5Х6Х4, Х8Х9Х7}
Так как ни для какой Гi2 нет исходного массива, то процесс наращивания мощности изоморфных подграфов прекращается.
11. Конец работы алгоритма.
В результате работы алгоритма из исходного графа выделено три группы изоморфных подграфов Г21, Г22, Г23. Анализ этих групп показывает, что они полностью совпадают, то есть по существу, выделяется одна группа, состоящая из трех изоморфных подграфов.
1.2. Итерационный алгоритм разбиения графа G с использованием чисел связности.
Сформулируем задачу компоновки КС как задачу разбиения графа G=(X,U) на подграфы Gi и Gj.
Подмножество ребер, попадающих в сечение (разрез графа) называется числом реберного соединения частей Gi и Gj графа G и обозначается Kij.
Задачей разбиения графа G=(X,U) является нахождение такой совокупности чисел, чтобы число реберного соединения графа G удовлетворяло заданному критерию оптимальности, а именно
- стремится к минимуму
Задача разбиения графа на части относится к задачам, получение оптимального решения которых связано с полным перебором различных вариантов разбиения. Такой путь для конструктора неприемлем, так как он чрезвычайно затруднителен даже для современных быстродействующих ЭВМ.
Алгоритмы классифицируют по критериям, по ограничениям на формирование частей или по структуре вычислительной процедуры. С этой точки зрения их делят на последовательные (1), параллельно-последовательные (2) и итерационные (3).
1) Вводится последовательный процесс компоновки частей. На каждом шаге, которого в очередную часть добавляется один из элементов ММ, выбираемый по определенному приоритету.
2) Сначала выделяется некоторое исходное множество групп элементов, которое затем распределяется по частям с учетом критериев и ограничений на компоновку.
3) Сначала граф разбивается на определенное число ребер произвольным образом, например с помощью последовательных алгоритмов. Затем по некоторым правилам производится перестановка вершин из одной части в другую с целью минимизации числа внешних ребер.
Рассмотрим методику разбиения графа, заданного матрицей смежности на части с использованием чисел связности.
Для каждой вершины вводится числовая характеристика, которая оценивает связь рассматриваемой вершины с другими вершинами, лежащими внутри данного подграфа, по отношению к вершинам, находящимся вне его.
Назовем αK - числом связности вершины ХK
αк= { rK(Gi) - rK(Gj), если Хк є Xj[ Ф. 1.]
{ rK(Gj) - rK(Gi), если Хк є Xi
(Σ внешних ребер — Σ внутр. ребер)
rK(Gi) - число ребер, соединяющих вершины ХK с вершинами Gi=(Xi,Ui) rK(Gj) - число ребер, соединяющих вершину ХK с вершинами Gj=(Xj,Uj).
ФИЗИЧЕСКИЙ СМЫСЛ:
если α(Xi) = -1 означает, что при перестановке вершины Xi , лежащей в G1, в G2число внешних ребер увеличится на 1.
α(Xj) = 0 означает, что перестановка вершин Xj из G1 в G2 оставит без изменения число соединительных ребер.
α(ХK) = 3 означает, что при переносе число соединительных ребер уменьшится на 3.
Для разбиения графа на два подграфа с минимизацией числа соединительных ребер с использованием чисел связности известна теорема.
ТЕОРЕМА:
Перестановка двух произвольных вершин ХK є Xi и X1 є Xj(Xi∩Xj)≠0 - приводим к уменьшению числа соединительных ребер между Gi и Gj, если:
а) вершина ХK не смежная с вершиной X1 и выполняется
неравенство αK + α1 > 0;
б) вершина ХK смежная с вершиной Xi и справедливо
неравенство αK + α1 > 2r1,K.
ЦЕЛЕВАЯ ФУНКЦИЯ:
Минимизация суммарного числа соединительных ребер.
Для более удобного определения подстановки строят матрицу:
в которой строки определяются вершинами из множества I , а столбцы - из множества Vi є N= {1,2,...,l-1}
На пересечении строки k строки (k є I) и q столбца (q є V) находится элемент:
[Ф.2.]
Элемент матрицы W ωk,qхарактеризует изменение числа соединительных ребер между Gi и Gj при перестановке вершин Xq є Xi и Хk є Xj.
Пример 1.
2 2
G=(X,U)
Исходный граф разбить на два подграфа: G1 (X1, U1) и G2 (X2, U2)
|X1| = 4
|X2| = 3
1) Строим матрицу смежности R0
R1
R2
2) Разбиваем R0 на подматрицы R1 и R2 и определяем числа связности по формуле [Ф.1.].
Например: для вершины X1, находящейся в R1
α = 4 - 1= + 3.
3) Строим матрицу W0, определяя элементы матрицы по [Ф.2.] Например: для вершин X1 и Х5 (+3+4-2×2=+3)
Из матрицы W0 получается, что для минимизации числа соединительных ребер между G1 и G2 графа G в матрице R0 необходимо переставить строки и столбцы X1 и Х7, поскольку ω1,7 = +6 матрицы W0 наибольший.
4) После выполнения указанной процедуры матрица R0 примет следующий вид:
Аналогично п.2 и п.3 определяем α и W0.
Меняем местами Х3 и Х6.
5)
Теперь когда все числа αk,q≤0, строить матрицу W0 - не будем, т.к. в ней не найдется ни одного элемента ωk,q>0 и, следовательно, в графе G на данном шаге нет пары вершин, перестановка которых уменьшит Ki,j.