Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



Для этих алгоритмов необходимо задать начальный вариант размещения.

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

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

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

Простейшим итерационным алгоритмом является алгоритм парных перестановок.

Он заключается в cледующем: в начальном размещении меняются местами два элемента и для новой конфигурации вычисляется функция – критерий. Если наблюдается уменьшение функции, то новое размещение заменяет старое, в противном случае этого не происходит. Затем выбирается другая пара элементов и процесс повторяется до тех пор, пока не будет применено правило остановки.

Рассмотрим алгоритм парных перестановок, в котором в качестве функции – критерия используется максимальная длина соединений. Такие задачи называют минимаксными (минимизация максимальной длины соединений). Данный критерий позволяет легко определять пары элементов для перестановки.

Алгоритм состоит из следующих шагов:

1. Для каждой пары соединенных вершин ei и ej вычисляется длина проводника

lij= |xi - xj| + |yi - yj|, где xi , yi и xj, yj координаты вершин ei и ej в размещении.

2. Определяются maxlij (если их несколько, то подсчитывается их количество k) и вершины ei, ej, дающие этот максимум.

3. Вершина ei переставляется в размещении с соседней вершиной такой, что она находится слева или справа и сверху или снизу от ei и ближе к ej.

4. Для нового размещения повторяется п.1.

5. Определяются maxl’ij (и их количество k’).

6. Если maxlij > maxl’ij или maxlij = maxl’ij и k > k’, то переход к п.3, в противном случае прежнее размещение восстанавливается.

7. Вершина ej переставляется в размещении с соседней вершиной такой, что она находится слева или справа и сверху или снизу от ej и ближе к ei.

8. Пока есть не рассмотренные соседи вершины ej выполняются п.п. 4-6.

9. Итерационный процесс заканчивается.

Пусть дано размещение рис. 6.9 (а).

e1
e3
e2
e4
e6
e5
e7
e9
e8
б
e1
e2
e3
e4
e6
e5
e7
e9
e8
а

 

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

Значение функции F(р)=18.

1. Для каждой пары соединенных вершин ei и ej вычислим lij:

l12=1; l13=2; l24=2; l25=1; l34=3; l56=1; l57=2; l68=2; l78=1; l79=2; l89=1.

maxlij = l34 = 3.

2. Меняем местами вершины e3 и e2 (рис. 6.9 (б)).

3. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=2; l13=1; l24=3; l25=2; l34=2; l56=1; l57=2; l68=2; l78=1; l79=2; l89=1.

maxl’ij = l24 = 3. Максимальная длина не уменьшилась, возвращаем размещение (рис. 6.9 (а)).

4. Меняем местами вершины e3 и e6 (рис. 6.10 (а)).

e1
e2
e6
e4
e3
e5
e7
e9
e8
а
e1
e2
e3
e5
e6
e4
e7
e9
e8
б

 


Рисунок 6.10. Перестановка элементов e3 и e6 (а); e4 и e5 (б)

 

5. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=1; l13=3; l24=2; l25=1; l34=2; l56=2; l57=2; l68=3; l78=1; l79=2; l89=1.

maxl’ij = l13 = l68 =3. Максимальная длина не уменьшилась, возвращаем размещение (рис. 6.9 (а)).

6. Меняем местами вершины e4 и e5 (рис. 6.10 (б)).

7. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=1; l13=2; l24=1; l25=2; l34=2; l56=2; l57=1; l68=2; l78=1; l79=2; l89=1.

maxl’ij=l13=l25=l34= l56= l68= l79=2. Максимальная длина уменьшилась. Сохраняем полученное размещение. Количество максимумов k = 6.

8. Меняем местами вершины e1 и e2 (рис. 6.11 (а))

e5
e1
e3
e2
e6
e4
e7
e9
e8
б
e2
e1
e3
e5
e6
e4
e7
e9
e8
а

 

 

Рисунок 6.11. Перестановка элементов e1 и e2 (а); e4 и e5 (б)

 

9. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=1; l13=1; l24=2; l25=1; l34=2; l56=2; l57=1; l68=2; l78=1; l79=2; l89=1.

maxl’ij = 2. Максимальная длина не изменилась. Количество максимумов k’=5< k. Сохраняем полученное размещение, k=5.

10. maxl’ij = l24= l34=l56= l68= l79=2. Меняем местами e2 и e1 и возвращаемся к размещению рис. 6.10 (б).

11. Меняем местами e2 и e5 (рис.6.12 (б)).

12. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=2; l13=1; l24=1; l25=1; l34=2; l56=3; l57=2; l68=2; l78=1; l79=2; l89=1.

maxl’ij = l56=3. Максимальная длина увеличилась. Возвращаем размещение.

13. Меняем местами e4 и e5 (рис.6.12 (а)).

14. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=1; l13=1; l24=1; l25=2; l34=3; l56=1; l57=2; l68=2; l78=1; l79=2; l89=1.

maxl’ij = l34=3. Максимальная длина увеличилась. Возвращаем размещение.

15. Меняем местами e4 и e1 (рис.6.12 (б)).

16. Для каждой пары соединенных вершин ei и ej вычислим новые l’ij:

l12=2; l13=2; l24=1; l25=1; l34=1; l56=2; l57=1; l68=2; l78=1; l79=2; l89=1.

17. maxl’ij = 2. Максимальная длина не изменилась. Количество максимумов k’ = 5 = k.

Возвращаем размещение рис. 6.11 (а).

Длину соединения (e2, e1) уменьшить не удалось. Алгоритм заканчивает работу.

Значение функции F(р)=16.

Заметим, что если в размещении рис. 6.11 (а) поменять местами элементы e8 и e9 (рис. 6.12 (в)), то количество максимумов уменьшится (k’ =4). Значение функции F(р)=15. Но максимальная длина останется такой же, поэтому алгоритм заканчивает работу при первой неудачной попытке уменьшения maxl’ij.

e2
e1
e3
e4
e6
e5
e7
e9
e8
а
e2
e4
e3
e5
e6
e1
e7
e9
e8
б
e2
e1
e3
e5
e6
e4
e7
e8
e9
в

 


Рисунок 6.12. Перестановка элементов e4 и e5 (а); e4 и e1 (б); e8 и e9 (в)

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

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

Пусть W={e1, e2, …, ek} - некоторое несвязное множество элементов, а L={p1, p2, …, pk} – множество позиций, занятых этими элементами в исходном размещении. Можно составить матрицу А = ||аij||k´ k, элемент аij которой представляет собой суммарную длину соединений элемента еiÎ W, при условии его установки в позицию рjÎ L. Поскольку элементы в W не связаны, значение аij не зависит от положения других элементов W. Решая задачу линейного назначения для матрицы А, получим оптимальное размещение элементов из W в позициях L, для которого СДС оптимальна.

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

В целом алгоритмы размещения с групповыми перестановками характеризуются значительными временными затратами. Эффективность алгоритма О(m3), где m = |W|.

Среди итерационных алгоритмов наиболее эффективны алгоритмы парных перестановок. Они позволяют уменьшить длину межсоединений от 1% до 50% в зависимости от качества начального размещения. Наибольшая скорость уменьшения длины соединений наблюдается на первых итераций. Длина монотонно уменьшается к значениям, близким к 1% при числе итераций n > 5.

Непрерывно-дискретные методы размещения

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

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

Сила притяжения вычисляется следующим образом:

Fij = kf rij dp(i)p(j), где kf – коэффициент.

Сила отталкивания вычисляется следующим образом:

Fij = kj / dp(i)p(j), где kj – коэффициент.

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

После решения системы, каждый из элементов ei, имеющий координаты (xi , yi), перемещается в ту из незанятых позиций ps, для которой изменение суммарной длины соединений минимально.

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

Метод ветвей и границ и непрерывно-дискретные алгоритмы размещения из-за их трудоемкости применяются лишь для задач небольшой размерности (n £ 20).

Достаточные результаты достигаются сочетанием конструктивного алгоритма (сложность ~ О(n)) с улучшающим итерационным (сложность ~ О(n2) ¸ О(n4)).


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-10; Просмотров: 1148; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.03 с.)
Главная | Случайная страница | Обратная связь