Опубликован: 20.01.2011 | Уровень: для всех | Доступ: свободно | ВУЗ: Московский государственный открытый университет им. В.С. Черномырдина
Лекция 19:

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

< Лекция 18 || Лекция 19: 123 || Лекция 20 >

19.5. Итерационные алгоритмы улучшения начального разбиения

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

С этой целью в матрице R выделяем по главной диагонали две подматрицы: R_{1} и R_{2}. При этом порядок подматрицы R_{1 } равен числу вершин, которые должны находиться в первом куске, а порядок подматрицы R_{2} - числу всех оставшихся вершин графа (табл. 19.3).

После того, как переставим строки и столбцы матрицы R, подматрицу R_{1} из матрицы R исключаем, вычеркнув из R строки и столбцы, соответствующие элементам R_{1}.

Далее подматрицу R_{2} разбиваем снова на две подматрицы R^{1}_{2} и R^{2}_{2}, причем порядок R^{1}_{2} соответствует числу вершин второго выделяемого куска, а порядок R^{2}_{2} - числу оставшихся вершин графа. Переставляем строки и столбцы R_{2 } с целью минимизации числа соединительных рёбер. После этого подматрица R^{1}_{2} исключается и процесс повторяется до тех пор, пока не будет выполнено разбиение графа G на " l " кусков.

В нашем случае - 3 куска.

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

Эта характеристика называется числом связности.

Пусть, \alpha  (х_{к}) или \alpha _{к } - число связности вершины х_{к}:

r_{к }(G_{i}) - r_{к }(G_{j}),\text{ если } x_{к }\in  Х_{j };
      \alpha  ( х_{к})  =    r_{к }(G_{j}) - r_{к }(G_{i}) ,\text{ если } x_{к }\in  Х_{i}; ( 19.8)

здесь r_{к }(G_{i}) - число рёбер, соединяющих вершину x_{к } с вершинами куска G_{i} ( Х_{i }, U_{i}) ;

r_{к }(G_{j}) - число рёбер, соединяющих вершину x_{к } с вершинами куска G_{j}  ( Х_{j }, U_{j }).

Числа связности

для G1: для G^{*}:
\alpha _{2}(х_{2}) = r_{2}(G^{*}) - r_{2}(G_{1}) = 0 - 3 = -3;
\alpha _{1}(х_{1}) = r_{1}(G_{1}) - r_{1}(G^{*}) = 1 - 0 = 1;
\alpha _{3}(х_{3}) = r_{3}(G^{*}) - r_{3}(G_{1}) = 2 - 3 = -1;
\alpha _{5}(х_{5}) = r_{5}(G_{1}) - r_{5}(G^{*}) = 1 - 1 = 0;
\alpha _{4}(х_{4}) = 1 - 4 = -3;  \alpha _{6}(х_{6}) = 1-2 = -1;     
\alpha _{7}(х_{7}) = 0-1 = -1.
Таблица 19.3. Матрица смежности R0.
G_{1} G^{*}
x_{2} x_{3} x_{4} x_{1} x_{5} x_{6} x_{7} \alpha _{q}
\alpha _{k}
x_{2} 0 1 2 0 0 0 0 -3
x_{3} 1 0 2 0 0 1 1 -1
x_{4} 2 2 0 1 0 0 0 -3
.
x_{1} 0 1 0 0 0 0 0 1
x_{5} 0 1 0 0 0 1 0 0
x_{6} 0 0 1 0 1 0 1 -1
x_{7} 0 0 0 0 0 1 0 -1

Физический смысл числа связности следующий.

Значение \alpha  ( х_{к})  >  0 означает, что при переносе вершины х_{к }, лежащей в куске G_{1 }, в кусок G_{2 } число соединительных рёбер между этими кусками уменьшится на 1.

Равенство \alpha  ( х_{2}) = -3 говорит о том, что \alpha  ( х_{к})  <  0, что при перестановке вершины х_{1}, лежащей в куске G_{1 }, в кусок G_{2  } число рёбер в сечении увеличивается на соответствующее количество единиц.

Равенство \alpha  (х_{к}) = 0 означает, что при перестановке вершины х_{к } из куска G_{1 } в кусок G_{2 } число соединительных рёбер останется без изменения.

Задача разбиения заданного графа G с помощью итерационного алгоритма, заключается в том, чтобы переставить строки и столбцы таким образом, чтобы число ребер, соединяющих куски графа, было минимальным.

Построим дополнительную матрицу W_{0}, элементы которой определяются по формуле:

w_{kq} = \alpha _{k}+\alpha _{q }- 2r_{kq}

Отсюда для элементов 1-й строки матрицы:

w_{21} = \alpha _{2 }+ \alpha _{1} - 2r_{21} = -3 + 1 - 2 \cdot 0 = -2;\\
w_{25} = \alpha _{2 }+ \alpha _{5} - 2r_{25} = -3 + 0 - 0 = -3;\\
w_{26} = \alpha _{2 }+ \alpha _{6} - 2r_{26} = -3 - 1 - 0 = -4;\\
w_{27} = \alpha _{2 }+ \alpha _{7} - 2r_{27} = -3 - 1 - 0 = -4.\\

для элементов 2-й строки матрицы:

w_{31} = \alpha _{3 }+ \alpha _{1} - 2r_{31} = -1 + 1 - 2 = -2;\\
w_{35} = \alpha _{3 }+ \alpha _{5} - 2r_{35} = -1 + 0 - 2 = -3;\\
w_{36} = \alpha _{3 }+ \alpha _{6} - 2r_{36} = -1 - 1 - 0 = -2;\\
w_{37} = \alpha _{3 }+ \alpha _{7} - 2r_{37} = -1 - 1 - 0 = -2;

для элементов 3-й строки матрицы:

w_{41} = \alpha _{4 }+ \alpha _{1} - 2r_{41} = -3 + 1 - 0 = -2;\\
w_{45} = \alpha _{4 }+ \alpha _{5} - 2r_{45} = -3 + 0 - 0 = -3;\\
w_{46} = \alpha _{4 }+ \alpha _{6} - 2r_{46} = -3 - 1 - 2 = -6;\\
w_{47} = \alpha _{4 }+ \alpha _{7} - 2r_{47} = -3 - 1 - 0 = -4.

Построим дополнительную матрицу W (табл. 19.4,табл. 19.5)

Таблица 19.4.
x_{1} x_{5} x_{6} x_{7}
x_{2} w_{21} w_{25} w_{26} w_{27}
x_{3} w_{31} w_{35} w_{36} w_{37}
x_{4} w_{41} w_{45} w_{46} w_{47}
Таблица 19.5.
x_{1} x_{5} x_{6} x_{7}
x_{2} -2 -3 -4 -4
x_{3} -2 -3 -2 -2
x_{4} -2 -3 -6 -4

Для оставшихся частей графа матрицы смежности будут иметь вид (табл. 19. 6):

Таблица 19.6.
G_{2} G_{3}
x_{6} x_{7} x_{1} x_{5} \alpha _{q}
\alpha _{k}
x_{6} 0 1 0 1 0
x_{7} 1 0 0 0 -1
.
x_{1} 0 0 0 0 0
x_{5} 1 0 0 0 1

где

\alpha _{6}(x_{6}) = r_{6}(G_{3}) - r_{6}(G_{2}) = 1 - 1  = 0;\\
\alpha _{7}(x_{7}) = r_{7}(G_{3}) - r_{7}(G_{2}) = 0 - 1 = -1;\\
\alpha _{1}(x_{1}) = r_{1}(G_{2}) - r_{1}(G_{3}) = 0 - 0 = 0;\\
\alpha _{5}(x_{5}) = r_{5}(G_{2}) - r_{5}(G_{3}) = 1 - 0 = 1.

Построим дополнительную матрицу W*, элементы которой оределяются по формуле:

w_{kq} = \alpha _{k}+\alpha _{q }- 2r_{kq};\\
w_{61} = \alpha _{6 }+\alpha _{1} - 2r_{61} = 0+0-2 ? 0 = 0;\\
w_{65} = \alpha _{6 }+\alpha _{5} - 2r_{65} = 0+1-2 ? 1 = -1;\\
w_{71} = \alpha _{7 }+\alpha _{1} - 2r_{71} = -1+0-2 ? 0 = -1;\\
w_{75} = \alpha _{7}+\alpha _{5} - 2r_{75} = -1+1-2 ? 0 = 0.
Таблица Таблица . 19.7
x_{1} x_{5}
W* = x_{6} w_{61} w_{65}
x_{7} w_{71} w_{75}
Таблица 19.8.
x_{1} x_{5}
W* = x_{6} 0 -1
x_{7} -1 0

Видим, что в матрице W* нет положительных элементов, следовательно, перестановка строк и столбцов не приведёт к изменению первоначального разбиения графа, и куски останутся прежними.

Контрольные вопросы

  1. Покажите иерархию конструктивных частей РЭС.
  2. Поясните понятия компоновки "снизу вверх" и "сверху вниз".
  3. Какие характерные классы выделяют среди задач компоновки?
  4. Что является целью разбиения схемы на функционально законченные части?
  5. Каковы основные критерии задач компоновки/размещения?
  6. Что принимают в качестве ограничений в задачах компоновки/ разбиения?
  7. Дайте математическую формулировку задачи разбиения.
  8. Что называется разбиением графа?
  9. Что называется коэффициентом разбиения графа?
  10. Дайте общую характеристику алгоритмов компоновки.
  11. Как осуществляется работа последовательного алгоритма разбиения?
  12. Что называют числами связности?
  13. Как строится дополнительная матрица W?
  14. Как осуществляется работа итерационного алгоритма с использованием чисел связности?
< Лекция 18 || Лекция 19: 123 || Лекция 20 >