
книги из ГПНТБ / Штейн М.Е. Методы машинного проектирования цифровой аппаратуры
.pdfборов, соответствующих вершинам, достижимым из дан ной вправо и вправо — вниз. Так, например, все верши ны, из которых достижима вершина с набором (12341011) (см. рис. 7.2.1), имеют в наборах общую часть 1234, а все вершины, из которых достижима вер шина с набором (12361011), — общую часть 1236.
Свойство 7.2.2 вытекает из правила построения дере ва наборов. Так, при движении ог некоторой вершины вправо изменяется только последний индекс набора, и
123456 |
123457 |
|
123458 |
|
123459 |
1234510 1234511 |
||
|
123467 |
|
123468 |
|
123469 |
1234610 |
1234611 |
|
|
|
|
123478 |
- 1234 79 |
1234710 1234711 |
|||
|
|
|
|
|
123489 |
|
1234810 |
1234811 |
|
|
|
|
|
|
|
1234910 |
1234311 |
|
|
|
|
|
|
|
|
12341011 |
|
123567 |
|
123568 |
|
123569 |
1235610 1235611 |
||
|
~ ' |
»-• |
а.» |
|
» 9 |
|
||
|
|
|
123578 |
|
123579 |
1235710 1235711 |
||
|
|
|
|
|
»т |
»• |
||
|
|
|
|
9 |
123589 |
1235810 1235811 |
||
|
|
|
|
*-« |
*-9 |
|
||
|
|
|
|
|
|
у255910 |
1235911 |
|
|
|
|
|
|
|
|
|
12351011 |
|
9124567 |
9123678 |
|
123679 |
1236710 1236711 |
|||
|
|
|
|
|
123689 |
1236810 1236811 |
||
|
|
|
|
|
|
|
1236910 1236911 |
|
|
134567 |
|
|
|
|
|
|
91236Ю11 |
|
Рис. 7.2.1. Фрагмент дерева |
наборов. |
|
182
поскольку на каждом шаге значение этого индекса уве* личивается на единицу, то разность между значением последнего и предпоследнего индекса уже на втором шаге, т. е. в вершине, достижимой из исходной вправо на следующем шаге, будет больше единицы. Во всех остальных вершинах эта разность будет увеличиваться, а разность между соседними индексами, являющимися общими для наборов вершин, достижимых вправо, все гда равна единице. При движении от исходной вершины вправо — вниз правило определения общих индексов в 'наборах, соответствующих вершинам, достижимым из данной, остается неизменным.
Поиск оптимального набора осуществляется следую щим образом. На этапе построения набора по правилам, описанным выше, каждый раз проверяются условия (7.2.4), (7.2.5) и (7.2.8). Если в процессе построения на бора происходит нарушение (7.2.4), (7.2.5) и (7.2.8), то и во всех вершинах, достижимых из рассматриваемой вправо, это же нарушение будет присутствовать (свой ство 7.2.2). В этом случае необходим переход вниз.
|
Так |
как |
набор индексов дуг строится последователь |
||||
но, |
то |
при |
выполнении ограничений |
(7.2.4), (7.2.5) и |
|||
(7.2.8) |
это |
построение продолжается до тех пор, пока |
|||||
его |
длина |
не станет равной цтах, |
либо пока не |
припи |
|||
шется 'последний |
индекс. |
|
|
|
|||
|
Пусть набор |
Q0 , построенный |
таким |
образом |
(будем |
его называть в дальнейшем опорным решением), имеет вес, равный Wo. Так как искать решение в вершинах, достижимых из опорной, не имеет смысла (следствие 7.2.1), то необходимо перейти на так называемую бли жайшую левую ветвь дерева наборов, т. е. перейти к бли жайшей вершине, не достижимой из опорной. Этот пере ход осуществляется по следующим правилам.
В опорном решении (т. е. наборе индексов, соответ ствующих вершине, в которой получено опорное реше ние) ищется пара соседних индексов, начиная с индек сов с" максимальным значением, разность между кото рыми больше единицы. Если разность более двух, то меньший из сравниваемых индексов увеличивается на единицу. Пусть два соседних индекса в опорном наборе /о и i'o таковы, что разность между их значениями более
двух и значение индекса /о больше |
/и ; |
тогда значение |
|
индекса г'о увеличивается па единицу. |
Если разность |
рав |
|
на двум, то в следующей соседней |
паре |
индексов, |
для |
183
которых, разность |
более |
единицы, Меньшее 3itaf teitne |
||||||||||||||||||
индекса |
увеличивается па единицу. Все индексы, |
находя |
||||||||||||||||||
щиеся в опорном |
наборе |
слева |
от измененного, |
входят |
||||||||||||||||
в |
новый набор, |
который |
дополняется индексами |
до на |
||||||||||||||||
бора |
длины р-max по правилам |
построения |
дерева |
набо |
||||||||||||||||
ров, |
описанным |
выше. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Покажем |
описанное |
правило |
на примере рис. 7.2.1. Допустим, |
||||||||||||||||
что |
опорное |
решение |
с весом |
Wo соответствует |
вершине |
с |
набором |
|||||||||||||
индексов |
(123589). |
Для того чтобы |
перейти в другую |
вершину дере |
||||||||||||||||
ва |
наборов, |
сравним |
значения |
индексов, |
начиная |
с |
|
максимальных: |
||||||||||||
9 — 8=1; |
8—5>2. По первому |
правилу получаем |
значение |
наборов |
||||||||||||||||
индексов |
(12367S). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Если |
же, например, |
опорное |
|
решение |
соответствует |
вершине |
|||||||||||||
(123578), |
то 8 — 7 = 1 , |
7—5 = 2, и |
|
по |
второму |
правилу |
получаем |
|||||||||||||
5—3>1, в значит, переход осуществляется в вершину |
(124567). |
Если |
||||||||||||||||||
при |
этом |
суммарный |
вес нового |
набора |
больше |
Wo, то, |
повторив |
|||||||||||||
процедуры, изложенные |
выше, |
ищется |
опять |
опорное решение, затем |
||||||||||||||||
они |
сравниваются по весу и большее принимается за новое опорное |
|||||||||||||||||||
решение. Если же в<ес нового |
набора |
меньше |
веса |
предыдущего |
||||||||||||||||
опорного |
набора, то повторяется операция |
перехода в новую верши |
||||||||||||||||||
ну, |
недостижимую из вновь полученной. |
|
|
|
|
|
|
|
|
|
||||||||||
|
Процесс перебора вершин дерева наборов продолжа |
|||||||||||||||||||
ется до тех пор, пока возможен |
переход на ближайшую |
|||||||||||||||||||
левую ветвь, и если он невозможен, то полученное |
опор |
|||||||||||||||||||
ное- решение оптимально в смысле |
(7.2.10). |
|
|
|
|
|
||||||||||||||
|
Полученное |
решение, |
т. е. набор |
дуг, удовлетворяю |
||||||||||||||||
щих |
ограничениям |
|
(7.2.4), |
(7.2.5) |
и |
(7.2.8) |
|
и |
максими |
|||||||||||
зирующих |
выражение (7.2.10), |
образует |
|
разбиение |
сети |
|||||||||||||||
G |
на несвязные |
подсети |
Gj. Ясно, что в |
наборе |
дуги |
|||||||||||||||
с нулевым весом не рассматриваются, |
кроме |
того, по |
||||||||||||||||||
скольку |
набор |
О. содержит |
|
дуги, |
находящиеся |
внутри |
||||||||||||||
подсетей, и не содержит |
ни одной |
дуги |
между |
подсетя |
||||||||||||||||
ми, то разделение |
сети, содержащей Q дуг, на компонен |
|||||||||||||||||||
ты |
связности дает |
разделение |
сети |
G на подсети Gj. |
||||||||||||||||
Однако |
число этих |
подсетей |
может |
быть |
больше |
т — |
||||||||||||||
числа модулей высшего уровня, на которые нужно |
раз |
|||||||||||||||||||
бить всю схему. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Итак, получить допустимое по (7.2.4), (7.2.5) и (7.2.8) решение можно, учитывая каждое из ограничений при формировании наборов С],-. Рассмотрим правила провер ки этих ограничений более подробно.
Наиболее просто проверяется условие (7.2.8). Пусть, например, построена часть набора, т. е. получено мно жество дуг, образующих некоторые подсети. При этом сумма весов узлов, входящих в эти подсети, порождает
184
некоторое множество целых положительных чисел
|
|
SHte.. gt,..., |
gi,...}, |
(7.2.15) |
где |
gj |
—вес подсети Gj в соответствии с |
(7.2.8). Для |
|
g j G ^ |
должно выполняться ограничение gj^K, которое |
|||
на |
каждом шаге формирования |
набора |
проверяется |
простым подсчетом узлов в подсети. Для каждого эле мента из (7.2.15) должно выполняться условие
Мы уже указывали выше, что число подсетей, обра зованных некоторым набором, может превышать число модулей высшего уровня, на которые необходимо раз бить схему. Поэтому введем понятие группы как некото рого объединения Gj, но такое, чтобы выполнялось огра ничение (7.2.8). Таким образом, подсети можно объеди нять в группы, если суммарный вес г'-й группы не превы шает числа Ki. Решение этой задачи возможно с по мощью метода, применяемого при решении так называе мой задачи о рюкзаках [4]. Пусть задано множество (7.2.15) и некоторые целые положительные числа / С и т такие, что
|
gi<K, |
j = 1, |
2, 3,..., |
s, |
Yigi<mK, |
(7.2.16) |
|
где |
gj — вес подсети |
GJ; |
К—вес |
группы; |
т — число |
||
групп. |
разместить все элементы gj^$ |
|
|||||
|
Необходимо |
в груп |
|||||
пы |
так, чтобы |
вес группы |
не |
превышал К, |
при этом |
каждый элемент может быть назначен только в одну группу. Если ввести булеву переменную
(1, если элемент gj назначен в г-ю группу с вепсом Кг,
Ов противном случае,
то |
условия образования |
групп нетрудно представить |
|
з |
виде: |
|
|
|
т |
|
|
|
V Xjr= |
\ для |
всех / = 1 , 2, 3,... |
г=\
И
£xirgj<Kt
185
где / = {1, 2, . . . , /, ...,} — множество индексов подсетей, образующих разбиение G.
Заметим, что решение задачи компоновки, как прави ло, связано еще с рядом ограничений, не учтенных в рас смотренной модели. К наиболее существенным из них можно отнести ограничение на суммарное число связей данной группы со всеми остальными. Это ограничение не может быть учтено непосредственно в рассмотренной модели, так как в качестве целевой функции выступает выражение (7.2.10), максимизирующее суммарное число связей внутри всех подсетей, что эквивалентно миними зации суммарного числа связей между группами. Одна ко если в процессе построения набора U ограничения (7.2.4), (7.2.5) и (7.2.8) дополнить проверкой числа свя зей, выходящих из подсетей разбиения G, то предложен ный алгоритм применим и для решения указанной задачи.
|
Пример |
7.2.1. Рассмотрим |
применение |
изложенного |
выше |
метода |
|||||||||||
на |
примере |
разрезания |
сети, |
изображенной |
на |
рис. 7.2.2. |
Матрица |
||||||||||
связей этой |
сети представлена |
в |
табл. 7.2.1. |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
Т а б л и ц а |
7.2.1 |
|
|
||||
|
|
|
1 |
2 |
|
3 |
|
4 |
|
|
5 |
|
6 |
|
|
|
|
|
1 |
|
0 |
3 |
|
3 |
|
0 |
|
0 |
|
4 |
|
|
|
||
|
2 |
|
3 |
0 |
|
3 |
|
0 |
|
4 |
|
0 |
|
|
|
||
|
3 |
|
3 |
3 |
|
0 |
|
4 |
|
0 |
|
0 |
|
|
|
||
|
4 |
|
0 |
|
0 |
|
4 |
|
0 |
|
2 |
|
2 |
|
|
|
|
|
5 |
|
0 |
|
4 |
|
0 |
|
2 |
|
0 |
|
2 |
|
|
|
|
|
6 |
|
4 |
|
0 |
|
0 |
|
2 |
|
2 |
|
0 |
|
|
|
|
|
Надо |
разрезать |
данную сеть на две части |
по |
три |
узла |
так, |
что |
|||||||||
бы |
минимизировать |
число |
связей между |
частями. |
Этот |
пример |
ха |
||||||||||
рактерен тем, что все известные эвристические |
алгоритмы |
разрезания, |
|||||||||||||||
основанные |
на последовательной |
компоновке |
подсетей, |
не дают |
опти |
||||||||||||
мального |
решения. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Итак, |
|
/C=Ki = K 2 = 3 , |
a |
Vi=\, |
для |
t = l , 2 |
|
6. Упорядочим |
дуги |
|||||||
по |
невозрастанию: |
{(1,6); |
(2,5); |
(3,4); |
(2,3); |
(1,3); |
(1,2); |
(4,6); (4,5); |
|||||||||
(5,6); (1,4); (1,5); |
(2,4); |
(2,6); |
(3,5); (3,6)} и |
поставим |
им |
в |
соответ- |
186
стаие |
порядковые |
номера |
о г |
1 до 15. |
|
|
|
|
|
||||||||||||
В |
соответствии |
с |
(7.2.12) |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
3-2 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
^тах = 2 " 2 " = 6 - |
|
|
|
|
|
|
|
|
|
|
||||||
|
Таким |
образом, |
набор |
(123456) |
(см. |
|
|
|
|
|
|||||||||||
рис. |
7.2.1) |
с |
оценкой |
W=21 |
|
является |
|
|
|
|
|
||||||||||
нижней |
границей |
цены |
всего |
решения, |
|
|
|
|
|
||||||||||||
так |
как |
не |
выполняются |
ограничения |
|
|
|
|
|
||||||||||||
(7.2.4), (7.2.5) и (7,2.8). И |
так |
|
как |
эти |
|
|
|
|
|
||||||||||||
ограничения нарушаются уже на вторам |
|
|
|
|
|
||||||||||||||||
шаге |
формирования |
набора |
(в |
сочета |
|
|
|
|
|
||||||||||||
нии |
дуг |
123 |
не выполняются |
ограниче |
Рис. 7.2.2. |
Пример |
раз |
||||||||||||||
ния), |
то |
переходим |
в |
вершину |
дерева |
||||||||||||||||
|
резания сети. |
|
|||||||||||||||||||
наборов |
|
(124567). |
|
Здесь |
также |
нару |
|
|
|||||||||||||
шаются |
ограничения |
на части |
|
набора |
|
|
|
|
|
||||||||||||
124, |
поэтому |
переходим |
в |
вершину |
(134567). |
Аналогично |
предыду |
||||||||||||||
щему, |
переходим |
в |
(234567) |
|
и |
|
т. д. до тех |
пор, пока |
не |
придем |
|||||||||||
в |
вершину |
|
(456789). |
Набор дуг, соответствующий этой вершине, |
|||||||||||||||||
с |
оценкой |
|
15 |
дает |
оптимальное |
разбиение |
с Л ^ = { 1 , |
2, |
3} и |
||||||||||||
ЛГ2 |
= |
{4, |
5, 6}. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.3.Построение оптимальных связывающих деревьев для электрических цепей
Для обеспечения электрической связи между контак тами модулей достаточно представить конфигурацию этих связей в виде дерева, если не сформулированы до полнительные требования к надежности соединений. Дерево — это связанная сеть G=[N; А] без циклов. Узла ми этой сети могут быть контакты модулей, объединен ные некоторой электрической цепью, а дугами — связи между парами узлов. Отличительной особенностью дере ва является единственность цепи между любой парой
узлов, |
так |
как существование, по крайней мере, двух |
|
путей |
для |
любой па-ры узлов указывает для неориентиро |
|
ванной |
сети на наличие цикла. Очевидно, таким образом, |
||
что для сети |
с п узлами число дуг равно (п.— 1). Итак, |
||
сеть — дерево |
могут характеризовать любые два из трех |
условий: |
|
|
|
|
1) |
сеть |
G=[N; А] связна; |
|
|
2) |
G = [N; |
А] не имеет циклов; |
(7.3.1) |
|
3) |
\A\ |
= |
\N\-l. |
|
Процедура получения дерева из любой связной сети тривиальна и может быть основана на последова тельном удалении из сети дуг с проверкой условия 1) до
187
тех пор, пока иё остаётся нй одного никла. Такое дёре-' во называют деревом-остовом сети G. Например, одно дерево-остов сети, изображенной на рис. 7.3.1, выделе но.
Изложим один простой алгоритм построения крат чайшего дерева-остова [5].
Введем некоторые определения. Узел назовем изоли рованным, если он не соединен дугой ни с каким уз лом. Подмножество узлов, связанных дугами, назовем
фрагментом, если существует |
|
цепь |
по |
этим |
дугам |
||||||
|
в каждый |
узел |
подмноже |
||||||||
|
ства. Под расстоянием |
|
узла |
||||||||
|
от |
фрагмента |
будем |
пони |
|||||||
|
мать |
минимальное |
из |
|
рас |
||||||
|
стояний |
от |
|
этого |
|
узла до |
|||||
|
всех |
узлов |
фрагмента. |
|
Бли |
||||||
|
жайшим |
соседом |
к данному |
||||||||
|
узлу |
назовем |
|
узел, |
который |
||||||
|
находится |
от |
данного |
на |
|||||||
|
расстоянии, не большем, чем |
||||||||||
|
все |
остальные. |
Ближайшим |
||||||||
|
соседом |
фрагмента |
назовем |
||||||||
Рис. 7.3.1. Сеть с выделенным |
любой из ближайших к не- |
||||||||||
М у |
у З Л О В |
|
|
|
|
|
|
|
|
||
деревом. |
" |
л |
основу |
алгоритма |
по |
||||||
|
|
а |
|||||||||
|
ложены |
два |
принципа, |
вы |
полнение которых необходимо при построении кратчай шего дерева-остова:
1) каждый изолированный узел соединяется дугой
сближайшим соседом;
2)каждый фрагмент соединяется дугой с ближай шим соседом.
|
|
|
|
Т а б л и ц а |
7.3.1 |
|
1 |
2 |
3 |
4 |
5 |
1 |
0 |
6 |
5 |
4 |
6 |
2 |
6 |
0 |
8 |
10 |
8 |
3 |
5 |
8 |
0 |
6 |
11 |
4 |
4 |
10 |
В |
0 |
7 |
5 |
6 |
8 |
11 |
7 |
0 |
183
Продемонстрируем |
алгоритм |
пострбен'йя |
кратчай |
шего дерева-остова на примере. |
|
|
|
Пример 7.3.1. Пусть задана табл. 7.3.1 длин дуг сети, |
изображен |
||
ной на рис. 7.3.1. |
|
|
|
0-й шаг. Построение дерева начнем |
с узла /. По первому прин |
||
ципу его следует соединить |
дугой с ближайшим соседом. Для на |
хождения ближайшего соседа выпишем первую строку таблицы без
первой клетки: |
|
|
|
2 |
3 |
4 |
5 |
6 |
5 |
4 |
6 |
(1) |
С ) |
(1) |
(1) |
Цифра в скобках означает индекс узла, расстояние от которого до остальных узлов записано в клетках.
Из чисел этой строки находим наименьшее — 4 (в столбце 4), следовательно, ближайшим соседом узла / является узел 4. Соеди
няем их дугой (1,4) и вносим |
вместе с ее |
длиной |
в |
итоговую |
табл. 7.3.2. |
|
|
|
|
1-й шаг. Из табл. 7.3.1 длин |
дуг исключаем |
столбец |
4. |
Находим |
в этой таблице строку 4. Каждое число этой строки сравниваем с со
ответствующими числами |
строки |
1 для |
одинаковых |
столбцов, |
т. е. |
|||||
для 2-, 3- и 5-го. Итак, для строк |
|
|
|
|
|
|
|
|||
2 |
3 |
4 |
5 |
|
|
2 |
3 |
|
5 |
|
6 |
5 |
4 |
6 |
4 |
|
10 |
6 |
| |
7 |
|
(I) |
(I) |
(1) |
(1) |
|
|
(4) |
(4) |
| |
(4) |
|
сравниваем |
между собой числа следующих пар: |
|
|
|
|
|||||
|
/ 6 |
Ю л / 5 |
6 \ / 6 |
7 \ |
|
|
|
|
||
|
1(1)' |
(*)Г |
1(1): |
( 4 ) ] ' 1(1); ( 4 ) / |
|
|
|
|
||
В каждой паре выбираем меньшее число |
и составляем |
новую |
стро |
|||||||
ку £,: |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
5 |
|
|
|
|
|
|
|
|
6 |
5 |
6 |
|
|
|
|
|
(1)(1) (1)
показывающую |
соответственно |
расстояния |
от каждого |
из узлов 2, |
||||
3, 5 до фрагмента |
(1, 4). Столбец узла 3, |
под которым |
находится |
|||||
наименьшее число 5, показывает, что узел |
3 является |
ближайшим |
||||||
соседом фрагмента |
(1, 4), и его следует соединить |
дугой с узлом / |
||||||
(так как индекс |
(1) |
у |
числа 5 |
обозначает, |
что узел |
3 ближе |
к узлу |
|
/, чем к узлу 4). |
Дугу |
(1,3) и ее длину 5 вносим в итоговую |
табли |
|||||
цу и переходим |
к следующему |
шагу. |
|
|
|
|
189
2-й шаг. Исключаем |
из |
строки kx столбец 3. Выписываем из |
табл. 7.3.1 длин дуг строку |
3 |
со столбцами 2 и 5: |
и сравниваем с соответствующими числами строки kt:
( ( i ) ; ( 3 ) ) и ( ( 1 ) ; ( 3 ) ) -
Меньшее из каждой пары чисел заносим в строку кг:
2 5
G6
(1)(1)
Индекс узла в столбце, под которым находится меньшее из чи сел (в данном случае любое, так как числа одинаковые, допустим 2), определяет ближайшего соседа для фрагмента из узлов {/, 4, 3}. Узел 2 ближе всего расположен к узлу 1, поэтому в итоговую табли
цу вписываем дугу (1,2) и ее длину 6. |
|
|
|
|
|||||
3-й шаг. Исключаем из строки к2 столбец 2. Рассматриваем в таб |
|||||||||
лице длин дуг |
строку 4. Сравниваем число (элемент) этой строки из |
||||||||
|
|
|
столбца |
5 с числом из строки |
k2 в |
столбце |
|||
Т а б л и ц а |
7.3.2 |
5. Меньшим из |
них является |
число |
6. |
По |
|||
строение |
сети |
заканчивается |
дугой |
(1.5), |
|||||
|
|
|
|||||||
|
|
|
которую заносим в итоговую табл. 7.3.2. |
||||||
Дуга |
Длина дуги |
Получившееся кратчайшее дерево-остов |
|||||||
или кратчайшая связывающая сеть изобра |
|||||||||
|
|
|
|||||||
|
|
|
жена на |
рис. 7.3.1. |
|
|
|
(U4) |
4 |
|
Весьма важной в машинном про |
|||
(1.3) |
5 |
ектировании электрических соедине |
||||
|
ний является задача построения оп |
|||||
(1.2) |
6 |
тимальных связывающих |
сетей для |
|||
электрических |
цепей |
устройств. |
||||
|
|
|||||
(1.5) |
6 |
|
Электрическая цепь объединяет мно |
|||
жество контактов |
компонент устрой |
|||||
|
|
|||||
|
|
ства; допустимое число паек к кон |
||||
тактам, |
как правило, |
ограничено. Такие цепи |
представ |
ляются оптимальными связывающими деревьями с огра
ниченными степенями узлов и |
без |
дополнительных |
(для проводного монтажа) узлов. |
Без |
указанных огра |
ничений задача решается описанным выше алгоритмом. Рассмотрим алгоритм построения кратчайшей связываю щей сети с ограниченными степенями узлов.
190
Пусть |
задана |
сеть |
G—[N; |
А] со множеством |
узлов |
|
N = {1, 2, |
3, ... , |
га} и |
множеством |
дуг А, образующих |
||
полную неориентированную сеть [б]. Множеству N может |
||||||
соответствовать |
множество эквипотенциальных |
контак |
||||
тов некоторой электрической |
цепи, |
а множеству А — |
возможные пути их соединения. И пусть некоторое число
|
|
|
p(i)=Si, |
|
i<=N, |
|
(7.3.2) |
|||
где |
Si |
— целое' положительное, |
есть |
максимально |
допу |
|||||
стимая |
степень узла |
i. |
|
|
|
|
|
|
||
|
Каждой дуге (i, |
j) |
подставим |
в соответствие |
це |
|||||
лое положительное число сц — цену этой дуги. |
|
|
||||||||
|
Требуется |
найти |
такую частичную сеть |
H—[N; |
V], |
|||||
где |
VczA, для |
которой |
|
|
|
|
|
|
||
|
|
Ц |
сцхг^тт, |
V = |
2 , . . . , ( « - |
1)}, |
(7.3.3) |
где X=|Ujj|| — матрица инциденций в форме узлы—дуги
симметричной (неориентированной) сети G |
[5] и |
п |
|
1 < Е ^ < 5 г - |
(7.3.4) |
/=i |
|
Построение кратчайшей связывающей сети с задан ными ограничениями степеней узлов можно осуществить на современной ЦВМ для сети с большим числом узлов,
если применять идеи |
динамического программирования |
||
в сочетании |
с методом |
«ветвей |
и границ» целочисленно |
го линейного |
программирования |
{7, 8]. |
Плодотворность применения метода «ветвей и гра ниц» в данной задаче заключается в том, что кратчай шая связывающая сеть есть дерево, т. е. сеть, состоящая из (га—1) дуг, где га— число узлов. Значит, перебор различных упорядоченных по возрастанию суммарной цены сочетаний по (га—1) дуг, в каждом из которых осу ществляется проверка на связность и выполнение огра ничения (7.3.4), дает представление о направлении дви жения к оптимальному решению и гарантирует его полу чение в первом дереве, для которого (7.3.4) выполняется. Кроме того, первые (га—1) дуг в упорядоченном по воз растанию цены ряду являются достаточно хорошей ниж ней границей оценки решения задачи (7.3.3), (7.3.4).
191