
- •1. Задачи структурного синтеза: понятие, формальная постановка, пример.
- •3. Исходные данные для решения задач структурного синтеза.
- •4. Этапы решения прикладной задачи структурного синтеза.
- •5. Содержательная постановка и анализ задачи структурного синтеза. Результат анализа (рассмотреть пример). Пример постановки и формализации задачи структурного синтеза
- •6. Выбор аппарата формализации задач структурного синтеза. Разработка моделей объекта и результата проектирования, доказательство их адекватности (приведите пример перехода от объекта к модели).
- •7. Формальная постановка комбинаторно-оптимизационной задачи структурного синтеза на графах. Рассмотреть пример для задачи поиска остовного дерева минимальной длины.
- •10. Представление схемы неориентированным графом и гиперграфом. Неориентированный граф.
- •12. Стратегии декомпозиции пространства решений.
- •13. Отсечение и выбор перспективной вершины дерева решений. Верхняя и нижняя границы целевой функции. Пример.
- •Некоторые особенности оценочных функций
- •14. Метод поиска в глубину. Пример точного алгоритма, основанного на этом методе.
- •15. Метод поиска в глубину с возвращением. Привести пример применения.
- •16. Метод поиска в ширину. Привести пример применения.
- •17. Идея метода ветвей и границ. Основные способы отсечения ветвей.
- •18. Основные способы ветвления при построении дерева решений в методе ветвей и границ.
- •Разбиение множества вариантов на подмножества по методу в ширину и выбор вершины по min(max).
- •Разбиение множества вариантов по методу поиска в глубину с возвращением – последовательное построение ветвей с заданным порядком их развития.
- •Комбинация декомпозиции в глубину и в ширину
- •19. Конструирование оценочной функции для верхней и нижней границ целевой функции. (Рассмотрите на примере задачи поиска простой цепи графа).
- •20. Метод итерационного улучшения
- •21. Метод параллельно-последовательной свертки. Алгоритм сортировки слиянием. Оценка его вычислительной сложности.
- •22. Точность алгоритма. Докажите, что алгоритм Прима является точным.
- •23. Оценка точности алгоритма. Определение оценок в лучшем и в худшем для алгоритма решения задачи коммивояжора по методу поиска в глубину.
- •24. Вычислительная и емкостная сложность алгоритма
- •25. Основные этапы построения алгоритма. Сущность алгоритма решения задачи на графах.
- •26. Разработка алгоритмической модели процесса решения задачи. Пример модели для решения задачи декомпозиции схемы по методу неуравновешенной двоичной свёртки.
- •Пример модели для решения задачи декомпозиции схемы по методу неуравновешенной двоичной свёртки
- •27. Определение операций преобразования исходного графа в граф результата. Выбор способа представления графов и его реализация в памяти эвм.
- •28. Детальная проработка алгоритма. Способы снижения вычислительной сложности алгоритмов. (Проиллюстрировать примерами).
- •29. Последовательный алгоритм разрезания гиперграфа схемы.
- •30. Итерационный алгоритм улучшения начального разрезания гиперграфа схемы.
- •31. Методика оценки вычислительной сложности алгоритма. Рассмотрите пример.
- •Асимптотическая оценка вычислительной сложности алгоритма
- •Оглавление
29. Последовательный алгоритм разрезания гиперграфа схемы.
Введение.
Разрезаем гиперграф, то есть, разбиваем
множество его вершин
на
2 (в частном случае) подмножества:
и
.
Формируем
,
перетаскивая по одной вершине кандидату
множества
.
При этом число рёбер в разрезе должно
быть минимальным. Для каждой
вершины-кандидата определяем, сколько
рёбер попадут в разрез
,
а сколько – исчезнут из него
при выборе данной вершине. Вычисляется
и
выбирается вершина, для которой
минимально.
Значения
для
всех вершин кандидатов хранятся в
массиве
.
Выбор структур данных.
В качестве структур данных для
аналитического представления гиперграфа
будем использовать массивы динамических
векторов, так как над ними выполняются
только операции доступа. При работе
алгоритма будут формироваться и
использоваться массивы.
Над массивом
мы
будем выполнять следующие действия:
последовательная выборка элементов,
добавление выбранной вершины
в
конец массива. Таким образом, структура
данных для
- динамический вектор. В массив
будем
добавлять новые вершины-кандидаты и
исключать из него вершину
.
Для массива
целесообразно использовать одно- или
двусвязный список. Над массивом
будут
выполняться только операции просмотра
его элементов (последовательного
доступа), так как его элементы после
корректировки
пересчитываются заново. Следовательно,
структура данных массива
- динамический вектор.
Основные пункты одного из вариантов алгоритма.
-
Включаем в формируемое множество
некоторую вершину
:
-
Определяем количество рёбер
, соединяющих
с
:
-
Находим множество вершин
- кандидатов на включение в
:
,
где
-
Для каждой вершины
определяем множество инцидентных ей рёбер
, подмножество
рёбер, приходящих в разрез, и подсчитываем показатель
. Для этого:
4.1.
4.2. для
выполняем:
4.2.1. Находим
множество вершин
,
входящих в ребро
4.2.2. Проверяем условие
Если условие не выполняется (ребро
остаётся
в разрезе) переходим к пп. 4.2.4. Выполнение
условия означает, что ребро уходит из
разреза – переходим к пп. 4.2.3.
-
Подсчитываем показатель
и переходим к п. 4.2.
-
Проверяем условие
Если
условие выполняется (ребро
приходит
в разрез при включении xi
в Xl), переходим к
пп. 4.2.5. При невыполнении условия переходим
к анализу следующего ребра, т.е. к п. 4.2.
4.2.5.
Включаем ребро
в множество
:
,
подсчитываем
показатель
:
и возвращаемся к п. 4.2.
4.3. Определяем
значение
:
и
заносим его значение в массив
:
-
Находим вершину
, для которой
минимально:
-
Подсчитываем количество рёбер
, соединяющих множества
и
после включения
в
:
-
Проверяем ограничение на количество внешних выводов l-й части схемы:
Если условие выполняется, то переходим к п. 8, иначе – к п. 12.
-
Включаем вершину
в множество
и исключаем её из
:
-
Проверяем условие:
,
где nl – требуемое
количество элементов в l-й
части схемы.Если условие выполняется,
то переходим к п.10, иначе – к п.13.
10. Определяем множество вершин, входящих
в множество рёбер
:
-
Корректируем множество вершин кандидатов
:
и возвращаемся к п. 4.
-
Дальнейшее формирование
невозможно из-за нарушения ограничения на число внешних выводов. Переход на окончание работы алгоритма к п. 14.
-
Вывод результатов.
-
Конец работы алгоритма.
Вычислительная сложность алгоритма.
Рассмотренный вариант алгоритма имеет
.
Его можно усовершенствовать, так что
будет
равно
.