- •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.
-
Вывод результатов.
-
Конец работы алгоритма.
Вычислительная сложность алгоритма.
Рассмотренный вариант алгоритма имеет . Его можно усовершенствовать, так что будет равно .