
- •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. Граф «оператор - данные».
- •Оглавление
29. Управляющий граф алгоритма.
Для автоматического анализа вычислительной и емкостной сложности, выполняющего оптимизирующие преобразования и проверки правильности трансляции алгоритма, написанного на языке высокого уровня, необходимо иметь математическую модель алгоритма.
Со структурной и процедурной точки зрения алгоритм – это совокупность операций, выполняемых в заданной или вычисляемой последовательности и обрабатывающих набор структурированных данных.
Таким образом, компонентами структуры алгоритма являются операции преобразования данных и операции управления, а также связи между ними.
Для выполнения потокового анализа алгоритма необходимо знать порядок выполнения операторов, т.е. в отношении оператор-оператор существует свойство преемник-предшественник.
Ко второй группе компонентов алгоритма, отражающей процедурный подход, относятся данные допустимых входов и результатов, а также связи, данные операций и наоборот.
Оценка вычислительной и емкостной сложности требует информации о:
Видах операций, их вычислительной сложности в функции от базисных и количестве повторений этих операций.
Характеристиках входа задачи, промежуточных и окончательных данных и типов структур данных, определяющих вычислительную сложность базовых операций над ними.
Для оценки количества операций и вычислительной сложности алгоритма необходимы также сведения об управляющих связях между операциями, вероятностях передачи управления и размерности обрабатываемых данных.
Таким образом в математической модели алгоритма должны быть отражены следующие его компоненты, связи между ними, а также характеристики компонентов и свойства связей:
Операторы преобразования данных, их типы, реализуемые ф-ции, вычислительная сложность их реализации.
Операторы вычисления условий, предикаты, реализующие проверку условий и вычислительная сложность этой проверки.
Управляющие связи между операциями с учетом отношений следования, а для альтернативных передач управления - соответствующие им значения предшествующих условий и вероятности реализации этих передач.
Исходные, промежуточные и окончательные данные, их вид, размерности и если заданы - их структуры, т.е. организация этих данных.
Связи «данные-операторы» и наоборот, их типы, определяющие вычислительную сложность чтения/записи данных для заданных структур.
связи «данные-данные», позволяющие решать вопрос об их независимости. Это важно для выполнения оптимизирующих преобразований и др.
Модель класса алгоритмов в виде управляющего графа.
Такая модель должна отражать события (операции) обработки данных, связи между этими событиями, типы операторов обработки данных и, если известно – их вычислительную сложность. В данной модели не отражены конкретные наборы данных, функциональная зависимость, а так же предикаты, реализующие проверку условий. Модель несет информацию необходимую для изучения св-в определенного класса алгоритмов. Рассмотрим переход к управляющему графу алгоритма на примере 2-х подпрограмм: вычисление кол-ва букв «а», определения min элемента одномерного массива.
Кроме структуры алгоритма класс определяет базис В. В={ Dв, Fв, Рв, Ов} Dв – символы переменных обл-ти определения класса алгоритма. Fв – символы ф-ций (в т.ч. логических), Рв – символы предикатов, реализующие проверку условий. Ов - символы операторов.
Управляющим называется граф
с двумя выделенными вершинами p0
и q0. Управляющий
граф называется правильным, если
любая его вершина принадлежит пути из
p0 в q0.
Переход от алгоритма к управляющему графу выполняется следующим образом:
Множеству операторов О поставим в соответствие множество Х, О<->X.
Тип t или вычислительную сложность оператора отобразим в модели, задав однозначное отображение R1 множества Х на множество Т : XR1T, t Т
Символы множеств Fв и Рв отобразим в модели, задав однозначные отображения мн-ва Х’ вершин обработки данных и Х’’ вершин вычисления условий и передачи управления.
Х’<-> O’: Х’R2 Fв
Х’’<->O’’: Х’’R3 Pв
Управляющие связи С между операторами oi и oj, т.е. ск(oi, oj) С с учетом отношения следования поставим во взаимно однозначное соответствие дугам Uк(xi, xj), т.е. ск(oi, oj)
Uк(xi, xj)
Uк(xi,
xj)
U
Uк(xj,
xi)
U
Множество дуг U распадается
на два подм-ва: U’
–альтернативная передача управления
и U’’ – безусловная
передача управления. U=
U’
U’’, U’
U’’=
.
Мн-ву дуг U’ присвоим веса из мн-ва L={true, false}и мн-ва Е –вероятностей этих передач управления
U’Q2E
U’Q1L .
Т.о. мы получили модель класса алгоритмов с взвешенными вершинами и частично взвешенными ребрами. Gy{<X,<T, Fв, Pв> >, <U’<L,E>>, U’’}