
- •1. Задачи структурного синтеза: понятие, формальная постановка, пример.
- •2. Исходные данные для решения задач структурного синтеза.
- •4. Содержательная постановка и анализ задачи структурного синтеза. Результат анализа (рассмотреть пример).Пример постановки и формализации задачи структурного синтеза
- •3. Этапы решения прикладной задачи структурного синтеза.
- •5. Выбор аппарата формализации задач структурного синтеза. Разработка моделей объекта и результата проектирования, доказательство их адекватности (приведите пример перехода от объекта к модели).
- •6. Формальная постановка комбинаторно-оптимизационной задачи структурного синтеза на графах. Рассмотреть пример для задачи поиска остовного дерева минимальной длины.
- •8. Представление схемы неориентированным графом и гиперграфом. Неориентированный граф.
- •8.1.Представление схемы ориентированным графом. (аналогично ультраграфу)
- •15. Основные способы ветвления при построении дерева решений в методе ветвей и границ.
- •9. Стратегии декомпозиции пространства решений.
- •10. Отсечение и выбор перспективной вершины дерева решений. Верхняя и нижняя границы целевой функции. Пример.
- •Некоторые особенности оценочных функций
- •11. Метод поиска в глубину. Пример точного алгоритма, основанного на этом методе.
- •12. Метод поиска в глубину с возвращением. Привести пример применения.
- •13. Метод поиска в ширину. Привести пример применения.
- •14. Идея метода ветвей и границ. Основные способы отсечения ветвей.
- •16. Конструирование оценочной функции для верхней и нижней границ целевой функции. (Рассмотрите на примере задачи поиска простой цепи графа).
- •17. Метод итерационного улучшения
- •18. Метод параллельно-последовательной свертки. Алгоритм сортировки слиянием. Оценка его вычислительной сложности.
- •19. Точность алгоритма. Докажите, что алгоритм Прима является точным.
- •20. Оценка точности алгоритма. Определение оценок в лучшем и в худшем для алгоритма решения задачи коммивояжора по методу поиска в глубину.
- •21. Вычислительная и емкостная сложность алгоритма
- •22. Основные этапы построения алгоритма. Сущ-ть алг. Решения задачи на графах.
- •23. Разработка алгоритмической модели процесса решения задачи. Пример модели для решения задачи декомпозиции схемы по методу неуравновешенной двоичной свёртки.
- •Пример модели для решения задачи декомпозиции схемы по методу неуравновешенной двоичной свёртки
- •24. Определение операций преобразования исходного графа в граф результата. Выбор способа представления графов и его реализация в памяти эвм.
- •25. Детальная проработка алгоритма. Способы снижения вычислительной сложности алгоритмов. (Проиллюстрировать примерами).
- •26. Последовательный алгоритм разрезания гиперграфа схемы.
- •27. Итерационный алгоритм улучшения начального разрезания гиперграфа схемы.
- •28. Методика оценки вычислительной сложности алгоритма. Рассмотрите пример.
- •Асимптотическая оценка вычислительной сложности алгоритма
- •29. Управляющий граф алгоритма.
- •30. Граф «оператор - данные».
- •31. Информация о схеме и монтажном пространстве, которую необходимо отобразить в модели для решения задач структурного синтеза.
- •32.Математическая модель алгоритма
- •33.Генетический метод
- •34.Метод динамического программирования
- •35.Метод параллельного поиска
- •36.Дополнительные отсечения при использовании метода ветвей и границ. Идея алгоритма Дейкстры
- •37.Модификация метода на примере задачи построения гамильтонова цикла с минимальной суммой весов ребер
- •38.Модели структур данных
26. Последовательный алгоритм разрезания гиперграфа схемы.
Введение.
Разрезаем гиперграф, то есть, разбиваем
множество его вершин
на
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.
Вывод результатов.
Конец работы алгоритма.
Вычислительная сложность алгоритма.
Рассмотренный вариант алгоритма имеет
.
Его можно усовершенствовать, так что
будет
равно
.