
- •1. Задачи структурного синтеза: понятие, формальная постановка, пример.
- •2. Исходные данные для решения задач структурного синтеза.
- •3. Этапы решения прикладной задачи структурного синтеза.
- •4. Содержательная постановка и анализ задачи структурного синтеза. Результат анализа (рассмотреть пример). Пример постановки и формализации задачи структурного синтеза
- •5. Выбор аппарата формализации задач структурного синтеза. Разработка моделей объекта и результата проектирования, доказательство их адекватности (приведите пример перехода от объекта к модели).
- •6. Формальная постановка комбинаторно-оптимизационной задачи структурного синтеза на графах. Рассмотреть пример для задачи поиска остовного дерева минимальной длины.
- •8. Представление схемы неориентированным графом и гиперграфом. Неориентированный граф.
- •9. Стратегии декомпозиции пространства решений.
- •10. Отсечение и выбор перспективной вершины дерева решений. Верхняя и нижняя границы целевой функции. Пример.
- •Некоторые особенности оценочных функций
- •11. Метод поиска в глубину. Пример точного алгоритма, основанного на этом методе.
- •12. Метод поиска в глубину с возвращением. Привести пример применения.
- •13. Метод поиска в ширину. Привести пример применения.
- •14. Идея метода ветвей и границ. Основные способы отсечения ветвей.
- •15. Основные способы ветвления при построении дерева решений в методе ветвей и границ.
- •Разбиение множества вариантов на подмножества по методу в ширину и выбор вершины по min(max).
- •Разбиение множества вариантов по методу поиска в глубину с возвращением – последовательное построение ветвей с заданным порядком их развития.
- •Комбинация декомпозиции в глубину и в ширину
- •16. Конструирование оценочной функции для верхней и нижней границ целевой функции. (Рассмотрите на примере задачи поиска простой цепи графа).
- •17. Метод итерационного улучшения
- •18. Метод параллельно-последовательной свертки. Алгоритм сортировки слиянием. Оценка его вычислительной сложности.
- •19. Точность алгоритма. Докажите, что алгоритм Прима является точным.
- •20. Оценка точности алгоритма. Определение оценок в лучшем и в худшем для алгоритма решения задачи коммивояжора по методу поиска в глубину.
- •21. Вычислительная и емкостная сложность алгоритма
- •22. Основные этапы построения алгоритма. Сущность алгоритма решения задачи на графах.
- •23. Разработка алгоритмической модели процесса решения задачи. Пример модели для решения задачи декомпозиции схемы по методу неуравновешенной двоичной свёртки.
- •Пример модели для решения задачи декомпозиции схемы по методу неуравновешенной двоичной свёртки
- •24. Определение операций преобразования исходного графа в граф результата. Выбор способа представления графов и его реализация в памяти эвм.
- •25. Детальная проработка алгоритма. Способы снижения вычислительной сложности алгоритмов. (Проиллюстрировать примерами).
- •26. Последовательный алгоритм разрезания гиперграфа схемы.
- •27. Итерационный алгоритм улучшения начального разрезания гиперграфа схемы.
- •28. Методика оценки вычислительной сложности алгоритма. Рассмотрите пример.
- •Асимптотическая оценка вычислительной сложности алгоритма
- •29. Управляющий граф алгоритма.
- •30. Граф «оператор - данные».
- •Оглавление
19. Точность алгоритма. Докажите, что алгоритм Прима является точным.
Характеристиками алгоритма являются его точность и временная (вычислительная) сложность и емкостная сложность. Эти характеристики используются не только для сравнительной оценки и выбора алгоритма из нескольких возможных, но и для выбора более эффективных преобразований модели исходного описания объекта в модель результата, а также разборе и возможном синтезе структур данных, позволяющих снизить вычислительную сложность алгоритма.
Доказательство точности алгоритма либо оценка погрешности – фундаментальная и наиболее сложная проблема теории алгоритмов. Алгоритм называется точным, если на всех допустимых наборах входных данных задачи, он обеспечивает получение оптимального решения.
Существует несколько подходов к доказательству и оценке точности:
Первый подход заключается в получении решения задачи для специально сконструированных наборов входных данных и сравнении результатов с полученными заранее точными решениями. Но правомерность такого заключения о точности алгоритма, как правило, экспериментально доказать это невозможно, а теоретическое доказательство – специальная и весьма сложная задача.
Второй подход ориентирован на установление факта, что не существует такого набора входных данных, для которого А(Di)
opt. Хотя в принципе подходы логически равнозначны, но они различаются по методам и возможностям доказательства.
Оба этих подхода неконструктивны, так как не ориентируют разработчика на разработку, а лишь на установление того факта, точный это алгоритм или приближенный.
С точки зрения теоретико-множественного преобразования входных данных решение задачи заключается в поэтапном преобразовании графа исходного описания объекта в его часть или в другой граф.
Этот подход является наиболее перспективным.
Таким образом, алгоритм решения задачи на графах выполняет конечную последовательность операций над ними, возможно полностью или частично повторяющихся. Следовательно, если можно доказать, что действия над графами на каждом шаге их преобразования являются «правильными», т.е. единственно возможными с точки зрения получения оптимального решения, независимо от набора входных данных, то будет доказано, что алгоритм – точный.
Для того чтобы выбрать и осуществить правильное преобразование графов, обеспечивающее разработку точного алгоритма, необходимо знать возможные операции над графом и математические свойства графов объекта и результатов проектирования. Т.о. при разработке алгоритма надо не только выбрать метод, на котором он будет основан, но и глубоко изучить математические свойства графов и тщательно проанализировать операции и весь процесс преобразования.
Рассмотрим изложенный подход на примере доказательства точности алгоритма Прима построения минимального остовного дерева (МОД). Как правило, моделью исходного описания объекта является неориентированный взвешенный полный граф.
Содержательное описание алгоритма:
Выбираем ребро минимального веса.
Среди ребер, инцидентных вершинам построенного поддерева, ищется имеющее минимальный вес, причем это ребро не должно образовывать циклов. Этот шаг повторяется до тех пор, пока не будут соединены все вершины.
Доказательство точности алгоритма Прима основано на использовании операций добавления и удаления рёбер и свойствах графа-результата – остовного дерева:
Дерево – это связный граф без циклов.
Добавление в некоторое остовное дерево нового ребра при количестве его ребер ≥ 2 приводит к возникновению ровно одного цикла.
Доказательство правильности 1-ого шага алгоритма
Если W(Um)
= min{
W(Uj)
/ j = 1..m,
m=|U|}, то в
графе G(X,U)
существует остовное дерево минимального
веса, содержащее это ребро. Док-во: Пусть
-остовное
дерево минимального веса, не содержит
ребра um.
Тогда добавив в
ребро um
получаем граф с единственным циклом
(X,
).
Так как для этого графа
,
то удалив из этого графа любое
мы
получим дерево Т, что
.
Доказательство правильности k-ого шага алгоритма
Пусть Ti
– поддерево графа G и um
– ребро минимального веса, соединяющее
вершину, принадлежащую Ti
и вершину, ему не принадлежащую Ti.
Тогда в графе G существует
остовное дерево T, содержащие
Ti и
содержащее um,
такое что если
- любое остовное дерево в G
содержащие Ti
и не содержащее um,
то
.
Док-во: Пусть
- остовное дерево в G.,
содержащее Ti
и обладающее минимальным весом среди
всех остовных деревьев, содержащих Ti,
причём Ti
не включает um.
Добавим в
ребро um.
Получим связный граф с одним циклом,
одним из рёбер которого является um.
Этот цикл содержит ребро uj,
соединяющее вершину, принадлежащую Ti
с вершиной не принадлежащей Ti.
Согласно исходной посылке
.
Следовательно, удалив из
ребро uj
и добавив в него um
получим дерево Т, такое что
.