Московский государственный открытый университет им. В.С. Черномырдина
Опубликован: 20.01.2011 | Доступ: свободный | Студентов: 2310 / 499 | Оценка: 4.14 / 3.69 | Длительность: 27:06:00
Лекция 20:

Размещение элементов электрической схемы

< Лекция 19 || Лекция 20: 1234 || Лекция 21 >

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

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

Итерационные алгоритмы применяются для решения задачи размещения с различными критериями оптимизации F (p): суммарная длина соединений, суммарное число пересечений соединений и т.д.

В любом итерационном алгоритме исследуется подмножество размещений, в некотором смысле близких к начальному, для выделения в нём размещения с меньшим значением функции - критерия. Найденное размещение вновь принимается за начальное, и процесс повторяется. Алгоритм завершается при отыскании некоторого размещения, в окружности которого отсутствуют варианты с меньшим значением функций - критерия. В большинстве случаев такой процесс приводит к получению локального минимума функции F (p).

Пусть, F (p) - некоторая функция - критерий размещения, а P_{нач} - начальное размещение.

Тогда в результате применения итерационного алгоритма размещения получается последовательность размещений р_{нач }, р_{1 }, р_{2 },…, р^*, которой соответствует монотонно убывающая последовательность значений F ( р_{нач })  > F ( р_{нач })  > F ( р_{2 }) …  >  F ( р^{* }) (рис. 20.5).

Значение F ( р_{* }) соответствует локальному минимуму функции. Практика применения подобных алгоритмов показывает, что получаемые размещения близки к оптимальным. Это связано с тем, что используемые критерии оптимизации F(P) являются относительно пологими функциями, не имеющими " острых " экстремумов.

Улучшение начального размещения

Рис. 20.5. Улучшение начального размещения

Характерной чертой итерационного алгоритма является возможность получения варианта размещения в любой момент итерационного процесса. При реализации алгоритма на ЭВМ, как правило, итерационный процесс заканчивается, как только разность значений функций - критерия для двух соседних итераций становится относительно малой:

[ F(р_{k}) - F ( р_{k-1 }) ] / F ( р_{k }) < \delta, ( 20.12)

где \delta - заранее заданное число.

Различные итерационные алгоритмы размещения имеют сходную структуру, содержащую следующие элементы:

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

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

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

Алгоритм парных перестановок

Алгоритмы парных перестановок являются простейшими в рассматриваемом классе алгоритмов размещения.

Пусть, имеется некоторое размещение (начальное или результат предыдущей итерации). Выбираются два элемента е_{i} и e_{j}, которые затем меняются местами.

Рассчитывается новое значение F (P) ; если оно меньше прежнего, то производится обмен. Выбирается другая пара элементов и осуществляется аналогичная процедура. Процесс итеративно продолжается до тех пор, пока не будет применено используемое в алгоритме правило остановки.

Пример. Рассмотрим минимизацию суммарной длины соединений:

F = \sum_{i=1}^{n}{\sum_{j=i+1}^{n}{r_{ij}d_{p(i)p(j)}}}, ( 20.13)

где R = || r _{i j }|| _{n x n} и D = || d _{i j} || _{n x n} - соответственно, матрицы соединений и расстояний.

Найдем приращение значения функции (21.13) при перестановке местами элементов е_{i} и e_{j}, находящихся первоначально в позициях " h " и " k ", соответственно.

На рис. 20.6. показано положение этих элементов до и после перестановки, а также их связи с некоторым элементом e_{s} (S \ne i \ne j), не участвующим в перестановке и находящимся в позиции Р(S).

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

F = \sum\limits_S{r _{i s  }d _{h p ( S )} + r _{i j }d _{h k}} +  \sum\limits_S{r _{j s }d _{k p ( S )}} + C. ( 20.14)
Положение элементов:  а) до перестановки; б) после перестановки

Рис. 20.6. Положение элементов: а) до перестановки; б) после перестановки

После перестановки местами элементов е_{i} и е_{j} значение суммарной длины изменится и станет равным:

F' = \sum\limits_S{r _{j s }d _{h p ( S )}} + r _{i j }d _{h k} + \sum\limits_S{r _{j s }d _{k p ( S )}} + C . ( 20.15)

Сравнивая (20.14) и (20.15), можно подсчитать приращение функции

\Delta F _{i j} = F -  F'. ( 20.16)

После некоторых преобразований получим

\Delta F _{i j} = \sum\limits_S{ ( r _{i s} - r _{j s }) ( d _{h p ( s ) }- d _{k p ( s ) })} ,     s \ne i , j . ( 20.17)

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

Очередная пара элементов для перестановки выбирается либо случайно, либо, что более эффективно, некоторым систематическим образом.

На очередной итерации для каждого элемента i_{k} в последовательности I рассчитывается приращение \Delta F _{i j} (20.17) , при условии перестановки этого элемента с элементами, стоящими правее в последовательности I.

После расчёта всех характеристик \Delta F _{i j} выбирается максимальное положительное значение \Delta Fi_{k}j, и элемент е_{i} меняется местами с соответствующим элементом последовательности е_{j}.

Если для данного элемента e_{i} в наборе \{\DeltaFi_{k}j\} отсутствуют положительные приращения, он оставляется на своём месте и осуществляется переход к отысканию "наилучшего" места для следующего элемента е_{i+1}.

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

Итерационный процесс заканчивается, когда изменение общей длины соединений в соответствии с (20.12) становится относительно малым.

Рассмотрение на каждой итерации возможных перестановок связано со значительными временными затратами. Поэтому в ряде алгоритмов на каждой итерации исследуются лишь перестановки соседних элементов. Кроме сокращения количества рассчитываемых приращений (оно становится пропорциональным n ) упрощается и вычисление самих приращений.

Продолжим расчет для нашего примера. Попытаемся улучшить критерий размещения, полученный после применения последовательного алгоритма (рис. 20.4).

Первый шаг. Берем элемент х_{5}, условно меняем местами со всеми остальными элементами, кроме фиксированного х_{0}, и рассчитываем приращение (20.4) относительно х_{0}:

\Delta F_{12} = (r_{50} - r_{60})(d_{14} - d_{24}) = 0;\;\;\;    \Delta F_{16} = (r_{50 }- r_{30})(d_{14 }- d_{64}) = 0;\\
\Delta F_{13} = (r_{50} - r_{70})(d_{14 }- d_{34}) = -2; \;\;\;  \Delta F_{17} = (r_{50 }- r_{40})(d_{14 }- d_{74}) = 0;\\
\Delta F_{15} = (r_{50 }- r_{10})(d_{14 }- d_{54}) = -6; \;\;\;   \Delta F_{18} = (r_{50 }- r_{20})(d_{14 }- d_{84}) = 1.\\

Так как \Delta F_{18} получилось положительным, то меняем местами х_{5} и х_{2}. Элемент х_{2} помещаем в первую позицию:

Перемещение элементов х5 и х2

Рис. 20.5. Перемещение элементов х5 и х2

Тогда \Delta F_{18 }= (r_{20 }- r_{50})(d_{14 }- d_{84}) = -1. Значение получилось отрицательным, элементы так и оставляем.

Второй шаг. На втором шаге меняем местами элемент х_{6} со всеми остальными элементами, кроме х_{0} и х_{2}, и рассчитываем приращения относительно уже двух этих фиксированных элементов:

\Delta F_{23} = (r_{60} - r_{70})(d_{24} - d_{34}) + (r_{62} - r_{72})(d_{21} - d_{31}) = -1 \cdot  1 + 0 = -1;\\
\Delta F_{25} = (r_{60} - r_{10})(d_{24 }- d_{54}) + (r_{62 }- r_{12})(d_{21} - d_{51}) = -3 \cdot  1 + 0 = -3;\\
\Delta F_{26} = (r_{60} - r_{30})(d_{24 }- d_{64}) + (r_{62 }- r_{32})(d_{21} - d_{61}) = 0 + (-1) \cdot  (-4) = 4;\\
\Delta F_{27} = (r_{60 }- r_{40})(d_{24 }- d_{74}) + (r_{62 }- r_{42})(d_{21} - d_{71}) =  0 + (-2) \cdot  (-5) = 10;\\
\Delta F_{28} = (r_{60 }- r_{50})(d_{24 }- d_{84}) + (r_{62 }- r_{52})(d_{21} - d_{81}) = 0 + 0 = 0.
Перемещение элементов х6 и х4

Рис. 20.6. Перемещение элементов х6 и х4

Так как \Delta F_{27} получилось наибольшим положительным, то меняем местами х_{6} с элементом х_{4}, который находится в седьмой позиции, получаем:

F_{27 }= (r_{40 }- r_{60})(d_{24 }- d_{74}) + (r_{42 }- r_{62})(d_{21} - d_{71}) = 0 - 10 = -10,

переходим к следующему шагу.

Третий шаг. Аналогично проводим расчеты для оставшихся элементов.

\Delta F_{35} =(r_{70 }- r_{10})(d_{34 }- d_{54}) + (r_{72 }- r_{12})(d_{31 }- d_{51}) + (r_{74 }- r_{14})(d_{32 }- d_{52})=0 + 0 + 0  = 0; \\
\Delta F_{36 }=(r_{70 }- r_{30})(d_{34 }- d_{64}) + (r_{72 }- r_{32})(d_{31 }- d_{61}) + (r_{74 }- r_{34})(d_{32 }- d_{62})= -1 + 3+6  = 8;\\
\Delta F_{37} =(r_{70 }- r_{60})(d_{34 }- d_{74}) + (r_{72 }- r_{62})(d_{31 }- d_{71}) + (r_{74 }- r_{64})(d_{32 }- d_{72})= -2 + 0  +4 = 2;\\
\Delta F_{38} =(r_{70 }- r_{50})(d_{34 }- d_{34}) + (r_{72 }- r_{52})(d_{31 }- d_{31}) + (r_{74 }- r_{52})(d_{32 }- d_{82})= -3 + 0  +0 = -3.

Так как \Delta F_{36 } получилось наибольшим положительным, то меняем местами х_{7 } и х_{3}.

Перемещение элементов х7 и х3

Рис. 20.7. Перемещение элементов х7 и х3
\Delta F_{36} = (r_{30 }- r_{70})(d_{34 }- d_{64}) + (r_{32}-r_{72})(d_{31 }- d_{61}) + (r_{34 }- r_{74})(d_{32 }- d_{62}) = 1 - 3 - 6 =  -8,

переходим к следующему шагу.

Четвертый шаг.

\Delta F_{56} = (r_{10 }- r_{70})(d_{54} - d_{64}) + (r_{13} - r_{73})(d_{53} - d_{63}) + (r_{14} -r_{74})(d_{52} - d_{62}) + (r_{12} -r_{72})(d_{51} - d_{61}) = -2 - 1 + 0 + 0 = -3\\
\Delta F_{57 }= (r_{10} - r_{60})(d_{54} - d_{74}) + (r_{13} - r_{63})(d_{53} - d_{73}) + (r_{14} - r_{64})(d_{52} - d_{72}) + (r_{12} - r_{62})(d_{51} - d_{71}) =      -6 - 2 + 2 = - 6\\
\Delta F_{58} = (r_{10} - r_{50})(d_{54 }- d_{34}) + (r_{13} - r_{53})(d_{53} - d_{83}) + (r_{14} - r_{54})(d_{52} - d_{82}) + (r_{12} - r_{52})(d_{51} - d_{81}) =  -9 + 0 + 0 + 0 = -9

Элемент х_{1} остаётся неизменным.

Размещение элементов на четвертом шаге

Рис. 20.8. Размещение элементов на четвертом шаге

Пятый шаг.

\Delta F_{67} = (r_{70} - r_{60})(d_{64} - d_{74}) + (r_{71} - r_{61})(d_{65}- d_{75}) + (r_{73} - r_{63})(d_{63} - d_{73}) + (r_{74} -r_{64})(d_{62} - d_{72}) + (r_{72} - r_{62})(d_{61} - d_{71}) = -1 + 0 + 0 + 1 + 0 = 0;\\
\Delta F_{68 }= (r_{71} - r_{51})(d_{65} - d_{85}) + (r_{70} - r_{50})(d_{64} - d_{34}) + (r_{73} - r_{53})(d_{63} - d_{83}) + (r_{74} - r_{54})(d_{62}- d_{82}) + (r_{72} -r_{52})(d_{61} - d_{81})  = 0 - 2 + 2 +0 + 0 = 0.

Оставляем х_{7} в позиции 6.

Размещение элементов на пятом шаге

Рис. 20.9. Размещение элементов на пятом шаге

Шестой шаг.

\Delta F_{78} = (r_{67} - r_{57})(d_{76} - d_{86}) + (r_{61} - r_{51})(d_{75}- d_{85}) + (r_{60} -r_{50})(d_{74} - d_{84}) + (r_{63} - r_{53})(d_{73} - d_{83}) +\\ (r_{64} -r_{54})(d_{72} - d_{82}) + (r_{62} -r_{52})(d_{71} - d_{81})  = -1 + 1 - 1 = -1.

Получили отрицательное число, следовательно, перестановку элементов не производим.

В результате получили окончательное размещение

Окончательное размещение элементов

Рис. 20.10. Окончательное размещение элементов

Рассчитаем критерий размещения после использования итерационного алгоритма

L' = 1/2 \sum{\sum{ r_{ij}d_{p(i)p(j)}}}. ( i)p(j)})

Для этого вычислим минимальную суммарную взвешенную длину связей между позициями:

L 
= r_{24}d_{12}+ r_{23}d_{13}+ r_{20}d_{14}+ r_{21}d_{15}+ r_{27}d_{16}+ r_{26}d_{17}+ r_{25}d_{18}+ r_{43}d_{23}+ r_{40}d_{24}+ \\
+ r_{41}d_{25}+ r_{47}d_{26}+ r_{46}d_{27}+ r_{45}d_{28}+ r_{30}d_{34}+ r_{31}d_{35}+ r_{37}d_{36}+ r_{36}d_{37}+ r_{35}d_{38}+ \\ 
+ r_{01}d_{45}+ r_{07}d_{46}+ r_{06}d_{47}+ r_{05}d_{48}+ r_{17}d_{56}+ r_{16}d_{5 }+ r_{15}d_{58}+ r_{76}d_{67}+ r_{75}d_{68}+ \\
+ r_{65}d_{78} = 25\text{ (условных единиц)}.

Значение МСВД уменьшилось. Это свидетельствует о том, что данный метод помог улучшить размещение элементов.

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

  1. Что относится к метрическим параметрам конструкции узлов и схем?
  2. Что относится к топологическим параметрам конструкции узлов и схем?
  3. Что является главной целью размещения?
  4. Как рассчитывается главный критерий размещения?
  5. Что является вариантами коммутационного поля?
  6. Дайте общую характеристику алгоритмов размещения.
  7. Как рассчитывается матрица длин D?
  8. Как решается задача квадратичного назначения?
  9. Какие предположения делают при решении задачи минимизации СВД?
  10. Расскажите о работе последовательного алгоритма размещения по связности.
  11. Что является мерой связности двух элементов?
  12. Как осуществляется выбор элементов в последовательном алгоритме?
  13. Как рассчитывается характеристика абсолютной связности?
  14. Как рассчитывается характеристика относительной связности?
  15. Как осуществляется выбор позиции в последовательном алгоритме размещения?
  16. Поясните структуру итерационного алгоритма.
  17. Как работает итерационный алгоритм парных перестановок?
< Лекция 19 || Лекция 20: 1234 || Лекция 21 >