Вопрос 6: Итерационные методы компоновки узлов
Для выполнения необходимо иметь начальную компоновку (хотя бы 2 куска). Из 1 куска выбирается 1 или нескольно вершин графа и затем выбирается и или несколько вершин из другого куска. После выбора производится попытка обмена выбранных вершин между кусками. Если попытка показала, что значение критерия улучшается, то выбиранные вершины меняются. Затем этот процесс повторяется.
- Начальное решение может быть получено: случайным образом, с помощью проектировщика, с помощью простого алгоритма (например последовательный).
- Число итераций заранее задано. Если меньше какого-то значения, то итерационный процесс заканчивается.
Если элементы в перестановки учавствуют парами - это алгоритм попарных перестановок. Если группами - это алгоритм групповых перестановок. В отличии от групповых перестановок, алгоритм парных перестановок не всегда находит глобавльный минимум (лучшее решение).
Итерационный алгоритм улучшения начальной компоновки (парные перестановки)
Число связности вершины – , где - число ребер, связывающих вершину с вершинами , причем принадлежит ; - число ребер, связывающих вершину с вершинами .
Изменение числа межузловых соединений:
где - число межузловых соединений между и .
Пусть есть некоторый граф вида:
Разбиваем граф на 2 куска с числов вершин в кусках 4. Т.е. начальное решение получаем случайно.
- Считаем числа связности.
- Строим вспомогательную матрицу
где , принадлежит , принадлежит
- В матрице W находим максимальный положительный элемент матрицы. Этот элемент отражает пару переставляемых вершин. Переставляем и . Повторяем алгоритм.
У итерационного алгоритма есть еще 2 модификации:
- Итерационный алгоритм улучшения с последовательным выделением кусков.
- Попарное деление графа схемы на куски.
Но он, вроде как, не давал их на лекции, так что хз, что с ними делать.