Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архив1 / docx31 / Лабораторная 1

.docx
Скачиваний:
34
Добавлен:
01.08.2013
Размер:
535.31 Кб
Скачать

Министерство образования и науки Российской Федерации

Московский Государственный Университет леса

Факультет Электроники и системотехники

Кафедра информационно-измерительных систем и технологий приборостроения

Лабораторная работа №1

Задача компоновки РЭА и ЭВА систем управления.

Выполнил: студент группы УТ-41

Вольнов Денис

Проверила: Знаменская Т.Д.

2012г

  1. Задачи компоновки РЭА и ЭВА систем управления

Компоновкой называется представление функциональной или принципиальной схемы в виде совокупности соединенных между собой конструктивных модулей одного уровня (микросхем, типовых элементов замены, панелей блоков, стоек и т.д.).

Задачу компоновки можно формировать:

1) типизация - разбие­ние схемы на конструктивные элементы различных типов;

2) пок­рытие - преобразования исходной схемы в схему соединений эле­ментов;

3) разрезание - разбиение исходной схемы на части.

  1. Математическая постановка задачи компоновки

Исходная схема представляется мультиграфом G(V,R), здесь множество вершин V соответствует множеству конструктивных мо­дулей, а множество ребер R- связям между ними.

Ребро называется инцидентным в вершине графа, если оно входит или выходит из нее.

Требуется разбить граф G(V,R), на n чаcтей G1(V1,R1)… Gn(Vn,Rn) с Ni , i=1...n вершинами в каждой части так, чтобы число ребер, соединяющих вершины разных частей, было минимальным, т.е.

, (1.1)

где |Rij| -мощность множества ребёр Rij ,инцидентных кускам Gi(Vi,Ri) и Gj(Vj,Rj).

При этом должны выполняться следующие ограничения:

  1. число вершин в каждой части должно соответствовать заданным условиям, |Vi|=Ni; i=1... n ; (1.2)

  2. одна вершина может принадлежать лишь одной части

; ij; (1.3)

  1. объединение всех частей должно быть равно исходному графу

(1.4)

Последнее означает, что все вершины должны быть распределены между частями и ни одно ребро не может быть опущено.

  1. максимальное число допустимых связей в каждой части

(1.5)

  1. раздельная компоновка отдельных вершин в различных частях

(1.6)

Жесткое закрепление некоторых вершин vp, vq за определенными частями Vi, Vj. Такие вершины называют запрещенными, т. е.

,

  1. Последовательные алгоритмы, использующие матрицу смежности

Идея последовательного алгоритма состоит в поочередной компоновке частей графа от первой до последней.

При формировании j части Gj(Vj,Rj) из рассматриваемого мно­жества V вершин выбирается vi, имеющая минимальную степень ρ(vi). К вершине vi добавляются смежные с ней вершины, в результате образуется подмножество V(j), мощность которого сопоставляется с требуемым числом Nj.

Если |V(j)|≠Nj, то добавляется или удаляется необходимое число вершин, затем переходят к форсированию следующей (j+1)-й части и т.д.

Рассмотрим основные этапы последовательного алгоритма реше­ния задачи компоновки при выделении первой части, т.е. G1(V1,R1).

  1. Исходный мультиграф представляется матрицей смежности S.

Значение компонента матрицы Sij равно количеству ребер, одновременно инцидентным вершинам i и j.

  1. Выбирается вершина vi, степень которой минимальна:

ρ(vi)=min{ρ(v),vV} (1.8)

Степень вершины равна числу ребер, которые ей инцидентны.

Если вершин с минимальной степенью несколько, то в качестве vi берется вершина с максимальным числом кратных ребер.

  1. Формируется первоначальное подмножество вершин V(1) для первой части. В V(1) включается вершина vi и смежные с ней вершины.

  1. На основе подмножества V(1) образуется множество вершин V1 первой части. Если |V(1)|=N1, то V1=V(1). В случае |V(1)|>N1 необходимое число вершин удаляется, а при |V(1)|<N1, - добавляется. В результате компонуется первая часть G1(V1,R1).

5. Из графа G(V,R) удаляется первая часть G1(V1,R1). Для оставшегося графа G(V,R)\G1(V1,R1) аналогично выделяется вторая часть G2(V2,R2) ит.д. Чтобы определить, какую вершину V удалять из V(1) (или добавлять к V(1)) для каждой вершины vi V(1) ( или vi V\V(1), определяется её относительныq вес:

, (1.8)

где ρ(vi) – степень вершины vi; jJ1

J1-множество номеров vV(1).

Относительный вес δ1(vi) вершины vi характеризует приращение числа внешних ребер части G1(V1,R1) при включении vi в V1 . Из множества вершин V(1) удаляется вершина, для которой вес δ1(vi) максимален, или добавляется вершина с минимальным значением δ1(vi).

Пример.

Пусть исходный граф имеет вид, изображенный на рис. 1.1. Его матрица смежности:

Рис.1.1.

Рядом с матрицей выписаны столбцы значений степеней вершин и их относительные веса. Степень вершин ρ(vi) определяется как сумма элементов соответствующей строки, а относительный вес по формуле (1.8). Так как минимальную степень имеет вершина v2, т.е. vi = v2, и ей смежны v1, v3, v4, то получаем следующее первоначальное подмножество вершин для первой части:

V(t)={v2,v1,v3,v4}

Заметим, что если по условию задачи для первой части есть закреплённые за частью вершин vз, то множество V(1) содержит vзи смежные с ней вершины.

Значение величины δi(vi) рассчитывается с учётом V(1):

, (J1={1,2,3,4});

;

;

……………………………………

.

Пусть N1=3. Так как , то для образования V1 из V(1) надо удалить одну вершину, а именно v4, имеющую максимальное значение относительного веса δ1(v4)=5. Получаем первую часть V1={ v1, v2, v3 }.

Пусть N1=5. В этом случае к V1 надо добавить одну вершину из . Минимальное значение δ1(vi) имеет v6. Получаем V1={ v1,v2, v3,v4,v6}.

Если на компоновку вершин наложено дополнительное условие в виде ограничения числа внешних связей каждой части графа

,

то последовательный алгоритм немного измениться.

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

По матрице S определяется подмножество V* еще не распределенных вершин, смежных с vi. Из них выбирается такая, которая обеспечивает минимальное приращение числа внешних связей, определяемых по формуле (1.8) для формируемого подмножества V1. Если таких вершин несколько, то берут любую из них, включают ее в V1, а число внешних связей этого подмножества S1 относительного веса выбранной вершины. Этот процесс продолжается до тех пор, пока подмножество V1 не будет содержать максимального числа вершин N1 max.

Если при этом ограничение по числу внешних связей (1.5) для V1 выполняется, то переходят к формированию множества V2 аналогичным образом. Если же ограничение (1.5) не выполняется, то осуществляется возвращение к такому наибольшему числу вершин подмножества V1, для которого оно имеет место. Для этого либо последовательно удаляют вершины, имеющие максимальное значение относительного веса, проверяя при каждом шаге условие (1.5), либо сразу возвращают­ся к полученному ранее варианту подмножества V1, для кото­рого выполнялось это условие при N1< N1 max . В послед­нем случае при дополнении подмножества V1 вершинами варианта, для которого выполняется ограничение по числу внешних связей, должен быть зафиксирован как резервный, чтобы впосле­дствии к нему можно было бы возвратиться.

По описанному алгоритму происходит формирование всех час­тей графа, кроме последнего, формирование которого сводится к определению количества оставшихся вершин Nn и подсчету числа их связей с вершинами, расположенными в других частях по формуле:

,

где In - подмножество индексов оставшихся вершин.

Если хотя бы один из рассчитанных параметров Nn или Sn не соответствует требуемым условиям, то поставленная задача при заданных ограничениях не имеет решения. Поэтому для полу­чения приемлемого решения хотя бы одно из ограничений должно быть изменено, после чего задача решается вновь.

  1. Итерационные алгоритмы, использующие матрицу смежности

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

В общем случае итерационный алгоритм включает в себя два этапа:

  1. начальное "разрезание" графа, например механическое деление матрицы смежности на части;

  2. итерационное улучшение решения на основе парного или груп­пового обмена вершин из различные частей.

Рассмотрим алгоритм на примере решения задачи разбиения графа G(V, R) на n частей G1(V1,R1),G2(V2,R2)…, Gn(Vn,Rn) с числом вершин в каждой части Ni при минимуме числа сое­динительные ребер между частями (1.1).

Предварительно исходный мультиграф G(V,R) представляется матрицей смежности S размерностью m*m, где m=/V/.

Пусть граф G(V,R) с т=8 представленный на рис. 1.За, требуется разбить на три части: N1=2, N2=N3=3.

Матрица смежности графа имеет вид S=

v1

v2

v3

v4

v5

v6

v7

v8

v1

0

0

0

0

0

1

0

0

v2

0

0

0

1

0

0

0

1

v3

0

0

0

0

1

0

1

0

v4

0

1

0

0

0

1

0

1

v5

0

0

1

0

0

0

1

0

v6

1

0

0

1

0

0

0

0

v7

0

0

1

0

1

0

0

1

v8

0

1

0

1

0

0

1

0

Ha первом этапе матрица делится на n*n блоков, по диагонали расположены блоки Sii, размерностью Ni*Ni, соответствующие числу вершин каждой части разбиения. Эти блоки следует располагать сверху вниз по мере увеличения их размерности. В результате такого деления матрицы S на подматрицы:

S =

граф G(R,V) делится на три части G1(R1,V1), G2(R2,V2), G3(R3,V3)

В нашем случае V1={v1,v2}, V2={ v3,v4,v5}, V5={ v6,v7,v8}.

На этом первый этап заканчивается.

Рис. 1.3

Разбиение графа в соответствии с выбранным критерием (1.1) тем лучше, чем больше связей сосредоточенных в отдельных частях графа, т.е. чем больше ненулевых элементов в блоках, расположенных на главной диагонали матрицы S . . В качестве критерия оптимальности может быть взято общее число ребер внутри всех частей графа G(V, R) - сумма всех ненулевых элементов в диагональных подматрицах, которое следует максимизировать. Либо в качестве критерия оптимальности можно принять общее число всех внешних связёй между частями графа Q и стремиться минимизировать это число. С точки зрения аппаратурной реализации - это минимизация межблочные соединений, а математический смысл - в минимизации общего числа ненулевых элементов недиагональных подматриц. В нашем случае это под­матрицы S21, S31, S32 или S12, S13, S23 и подсчёт даёт Q=7.

На втором этапе при каждой итерации выполняются следующие операции:

  1. подсчитываются перестановочные коэффициенты ∆R(vi,vj) для пар вершин, принадлежащих разным частям.

Эти коэффициенты при , характеризуют изменения числа соединительных ребер /Rpq/ между частями Gр и Gq в результате перестановки вершин vi и vj;

  1. отбираются пары вершин, перестановка которых уменьшает число связей между частями. В этих случаях должно выполняться условие ∆R(vi,vj)>0.

Среди них выбирается пара, дающая максимальное сокращение связей между частями;

  1. производится перестановка выбранной пары вершин и строится новая матрица S.

Итерации заканчиваются, когда для любых пар вершин из разные частей ∆R(vi,vj)≤0.

Для простоты их вычисления формируется матрица , .

Существуют стандартные матрицы F, которые впоследствии в результате некоторых математических действий с матрицей S реализует более машинно-ориентированный расчет перестановочных коэффициентов.

Наиболее сложной частью алгоритма является расчет переста­новочных коэффициентов ∆R(vi,vj) которые определяются по формуле:

(1.9)

где числа связности vi и vj.

;

;

Ip, Jq -множества индексов подмножеств вершин Vp и Vq и соответственно.

Величина Sqp(vi) характеризует разность числа связей вер­шины с вершинами "чужой" части и с вершинами "своей" части Vp \ vi . На первом месте стоит индекс той части, в которую вершину переставляют, а на втором - той части, из которого вершину переставляют. Расчет ∆R(vi,vj) можно производить в следующей последовательности. Сначала определяется матрица перестановочных коэффициентов для вершин первой части. Матрица имеет размерность N1*(n-N1) . В рассматриваемом нами примере

∆R1=

v3

v4

v5

v6

v7

v8

v1

r13

r14

r15

r16

r17

r18

V2

r23

r24

r25

r26

r27

r28

=

v3

v4

v5

v6

v7

v8

v1

-1

1

-1

0

0

1

V2

0

0

0

2

0

1

Здесь

;

и т.д.

Из матрицы ∆R1 видно, что положительное значение пере­становочного коэффициента ∆R(vi, vj) имеют четыре пары вершин из двенадцати: (v1,v4), (v1,v8), (v2,v6), (v2,v8). При этом максимальное значение пары (v2,v6); R(v2,v6)=2. Поэтому вершину v2 переносим в третью часть, a v6 - в первую. Разбиение графа G(V,R) после первой итерации приве­дено на рис. 1.3б, а матрица S1 имеет следующие вид:

S1=

v1

v6

v3

v7

v5

v6

v7

v8

v1

0

1

0

0

0

0

0

0

v6

1

0

0

1

0

0

0

0

v3

0

0

0

0

1

0

1

0

v4

0

1

0

0

0

1

0

1

v5

0

0

1

0

0

0

1

0

v2

0

0

0

1

0

0

0

1

v7

0

0

1

0

1

0

0

1

v8

0

0

0

1

0

1

1

0


После первой итерации значение критерия оптимальности уменьшилось и стало равно 5 (до перестановки было Q=7).

В случае отсутствия положительных компонентов матрицы строится матрица ∆R2, размерностью N2 * (N3 + … + Nn), по которой определяется возможность перестановки вершин vi с вершинами. Если матрица ∆R2 не содержит положительных компонентов, то переходят к ∆R3,R4 и т.д.

Решение задачи заканчивается, когда все компоненты матри­цы ∆Rn-1 отрицательны или равны нулю.

На второй итерации с использованием формулы (1.9) заполняется матрица

v3

v4

v5

v2

v7

v8

v1

-2

0

-2

2

-2

-3

v6

-1

-1

-1

-2

-2

-3

Соседние файлы в папке docx31