
- •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.Модели структур данных
29. Управляющий граф алгоритма.
Для автоматического анализа вычислительной и емкостной сложности, выполняющего оптимизирующие преобразования и проверки правильности трансляции алгоритма, написанного на языке высокого уровня, необходимо иметь математическую модель алгоритма.
Со структурной и процедурной точки зрения алгоритм– это совокупность операций, выполняемых в заданной или вычисляемой последовательности и обрабатывающих набор структурированных данных.
Таким образом, компонентами структуры алгоритма являются операции преобразования данных и операции управления, а также связи между ними.
Для выполнения потокового анализа алгоритма необходимо знать порядок выполнения операторов, т.е. в отношении оператор-оператор существует свойство преемник-предшественник.
Ко второй группе компонентов алгоритма, отражающей процедурный подход, относятся данные допустимых входов и результатов, а также связи, данные операций и наоборот.
Оценка вычислительной и емкостной сложности требует информации о:
Видах операций, их вычислительной сложности в функции от базисных и количестве повторений этих операций.
Характеристиках входа задачи, промежуточных и окончательных данных и типов структур данных, определяющих вычислительную сложность базовых операций над ними.
Для оценки количества операций и вычислительной сложности алгоритма необходимы также сведения об управляющих связях между операциями, вероятностях передачи управления и размерности обрабатываемых данных.
Таким образом в математической модели алгоритма должны быть отражены следующие его компоненты, связи между ними, а также характеристики компонентов и свойства связей:
Операторы преобразования данных, их типы, реализуемые ф-ции, вычислительная сложность их реализации.
Операторы вычисления условий, предикаты, реализующие проверку условий и вычислительная сложность этой проверки.
Управляющие связи между операциями с учетом отношений следования, а для альтернативных передач управления - соответствующие им значения предшествующих условий и вероятности реализации этих передач.
Исходные, промежуточные и окончательные данные, их вид, размерности и если заданы - их структуры, т.е. организация этих данных.
Связи «данные-операторы» и наоборот, их типы, определяющие вычислительную сложность чтения/записи данных для заданных структур.
с
вязи «данные-данные», позволяющие решать вопрос об их независимости. Это важно для выполнения оптимизирующих преобразований и др.
Модель класса алгоритмов в виде управляющего графа.
Такая модель должна отражать события (операции) обработки данных, связи между этими событиями, типы операторов обработки данных и, если известно – их вычислительную сложность. В данной модели не отражены конкретные наборы данных, функциональная зависимость, а так же предикаты, реализующие проверку условий. Модель несет информацию необходимую для изучения св-в определенного класса алгоритмов. Рассмотрим переход к управляющему графу алгоритма на примере 2-х подпрограмм: вычисление кол-ва букв «а», определения minэлемента одномерного массива.
Кроме
структуры алгоритма класс определяет
базис В. В={Dв,Fв,
Рв, Ов}Dв – символы
переменных обл-ти определения класса
алгоритма.Fв – символы
ф-ций (в т.ч. логических), Рв – символы
предикатов, реализующие проверку
условий. Ов - символы операторов.
Управляющимназывается графс двумя выделенными вершинамиp0иq0. Управляющий
граф называетсяправильным, если
любая его вершина принадлежит пути изp0вq0.
Переход от алгоритма к управляющему графу выполняется следующим образом:
Множеству операторов О поставим в соответствие множество Х, О<->X.
Тип tили вычислительную сложность оператора отобразим в модели, задав однозначное отображениеR1множества Х на множество Т :XR1T,t
Т
Символы множеств Fв и Рв отобразим в модели, задав однозначные отображения мн-ва Х’ вершин обработки данных и Х’’ вершин вычисления условий и передачи управления.
Х’<->O’: Х’R2Fв
Х’’<->O’’: Х’’R3Pв
Управляющие связи С между операторами 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’’}