- •2. Общие требования к алгоритму
- •3. Формальное представление алгоритма. Машина Тьюринга
- •4. Алгоритмически неразрешимые проблемы: их существование и примеры
- •Вопросы
- •2. Теория возмущений и числа обусловленности задачи
- •3. Влияние ошибок округления на алгоритмы
- •4. Программирование численных алгоритмов
- •Классы входных данных
- •Сложность алгоритма по памяти
- •Вопросы
- •Основные характеристики алгоритма при его анализе. Вычислительная сложность алгоритма
- •2. Классы входных данных
- •3. Сложность алгоритма по памяти
- •Вопросы
- •Лекция 4. Оценка вычислительной сложности алгоритма План
- •Предварительные шаги для оценки вычислительной сложности алгоритма
- •Скорость роста алгоритма
- •Анализ подходов, связанных с поиском информации
- •1. Предварительные шаги для оценки вычислительной сложности алгоритма
- •2. Скорость роста алгоритма
- •3. Анализ подходов, связанных с поиском информации
- •Вопросы
- •Класс р - задачи с полиномиальной сложностью
- •Класс np - полиномиально проверяемые задачи
- •1. Класс р - задачи с полиномиальной сложностью
- •2. Класс np - полиномиально проверяемые задачи
- •Вопросы
- •Лекция 6. Сложностные классы задач (продолжение) План
- •Приближенные методы решения np-задач
- •2. Приближенные методы решения np-задач
- •Вопросы
- •Лекция 7. Численные алгоритмы План
- •Вычисление значений многочлена
- •Решение системы линейных алгебраических уравнений
- •1. Вычисление значений многочлена
- •2. Решение системы линейных алгебраических уравнений
- •Вопросы
- •Цели анализа последовательных алгоритмов
- •Основы построения графа алгоритма
- •Допустимые преобразования алгоритма
- •2. Основы построения графа алгоритма
- •Последовательность операций
- •3. Допустимые преобразования алгоритма
- •Вопросы
- •Свойства вершин ориентированного ациклического графа
- •Свойства топологической сортировки графа
- •Топологические уровни графа алгоритма
- •1. Свойства вершин ориентированного ациклического графа
- •2. Свойства топологической сортировки графа
- •3. Топологические уровни графа алгоритма
- •Вопросы
- •Лекция 10. Топологические сортировки сложных графов План
- •Особенности и рекомендации построения топологических сортировок графов алгоритмов, содержащих условные операции
- •Построение топологической сортировки графа по топологическим сортировкам подграфов его разбиения
- •1. Особенности и рекомендации построения топологических сортировок графов алгоритмов, содержащих условные операции
- •2. Построение топологической сортировки графа по топологическим сортировкам подграфов его разбиения
- •Вопросы
- •Операция элементарного гомоморфизма
- •Гомоморфная свертка. Понятие гомоморфного образа, прообраза. Связь топологических сортировок графа и его гомоморфной свертки
- •Использование гомоморфной свертки для упрощения процесса исследования структуры алгоритма
- •1. Операция элементарного гомоморфизма
- •2. Гомоморфная свертка. Понятие гомоморфного образа, прообраза. Связь топологических сортировок графа и его гомоморфной свертки
- •3. Использование гомоморфной свертки для упрощения процесса исследования структуры алгоритма
- •Вопросы
- •Лекция 12. Внутренний параллелизм алгоритма План
- •Понятие внутреннего параллелизма алгоритма и его использование
- •О выборе расположения вершин графа алгоритма
- •Особенности алгоритма решения системы линейных алгебраических уравнений
- •1. Понятие внутреннего параллелизма алгоритма и его использование
- •2. О выборе расположения вершин графа алгоритма
- •3. Особенности алгоритма решения системы линейных алгебраических уравнений
- •Вопросы
- •Лекция 13. Временные развертки План
- •Основная проблема анализа алгоритма с использованием соответствующего графа
- •Вектор временной развертки, обобщенной временной развертки
- •Время реализации алгоритма
- •1. Основная проблема анализа алгоритма с использованием соответствующего графа
- •2. Вектор временной развертки, обобщенной временной развертки
- •3. Время реализации алгоритма
- •Вопросы
- •Лекция 14. Векторные свойства временных разверток План
- •Линейность временных разверток
- •Характеристики множества обобщеных временных разверток
- •Свойства временных разверток при фиксированном векторе задержек
- •1. Линейность временных разверток
- •2. Характеристики множества обобщеных временных разверток
- •3. Свойства временных разверток при фиксированном векторе задержек
- •Лекция 15. Векторные свойства временных разверток (продолжение) План
- •Ориентированная задержка цикла. Уравновешенный цикл.
- •Пространственно-временные развертки
- •1. Ориентированная задержка цикла. Уравновешенный цикл
- •2. Условие совпадения множеств и с точностью до параллельного переноса
- •3. Пространственно-временные развертки.
3. Использование гомоморфной свертки для упрощения процесса исследования структуры алгоритма
Гомоморфная свертка помогает упрощению процесса исследования структуры алгоритма. Это хорошо иллюстрируется следующим примером. Предположим, что исследуется параллельная структура алгоритма, заданного программой на некотором алгоритмическом языке. Чтобы решить эту задачу, нужно построить граф алгоритма. Первое, что приходится делать, это ответить на вопрос о том, каким операциям алгоритма должны соответствовать вершины графа. Если операциями считать отдельные операторы, то граф будет отражать алгоритм наиболее детально. Поэтому в данном случае при переходе к графу не будет никаких потерь в информации о структуре алгоритма.
Однако, излишняя подробность представления может привести к затруднениям как в процессе построения, так и в процессе исследования графа. Естественным выходом из этого положения является использование более крупных операций. Ими могут быть линейные участки программы, отдельные ее фрагменты, подпрограммы и т.д. Алгоритм, представленный в терминах подобных операций, даст более простой граф. Этот граф принято называть макрографом. Конечно в макрографе будет потеряна некоторая информация о структуре. Однако часто информация, полученная о параллельной структуре макрографа, может оказаться достаточной. Кроме того, всегда можно перейти от макрографа к детальному графу, представим вместо макровершин графы соответствующих им операций. То, что мы описали в связи с выбором операций, есть в действительности использование гомоморфной свертки. В графе, вершины которого соответствуют отдельным операторам, крупные операции описываются некоторыми подграфами. Из этого графа макрограф может быть получен с помощью простой гомоморфной свертки каждого из подграфов в одну вершину. Операция простого гомоморфизма ассоциативна. Поэтому для получения макрографа безразлично, в какой момент осуществлять простую гомоморфную свертку подграфов. В том числе, это можно сделать до построения всего графа, что и соответствует предварительному выбору крупных операций. Согласно сказанному выше, любая топологическая сортировка макрографа алгоритма порождает обобщенную топологическую сортировку детального графа алгоритма.
Как топологическая, так и обобщенная топологическая сортировки задаются только разбиением вершин графа алгоритма на группы и упорядочиванием самих групп. Несмотря на большое значение этих сортировок в исследовании структуры алгоритмов, они не заменяют графа алгоритма. В графе алгоритма содержится исключительно важная информация, связанная с дугами и показывающая, как именно осуществляется обмен данными между вершинами. Этой информации в топологических сортировках нет. Поэтому топологические и обобщенные топологические сортировки являются предметом исследований лишь настолько, насколько они помогают изучению структуры графов алгоритмов.
Вопросы
Какая операция над графом называется операцией элементарного гомоморфизма?
К каким последствиям в ациклическом графе может привести операция элементарного гомоморфизма?
Какая операция над графом называется простым элементарным гомоморфизмом, кратным элементарным гомоморфизмом?
Что называется гомоморфной сверткой графа, простой (кратной) гомоморфной сверткой?
Какие два графа называются гомоморфными?
Что такое гомоморфный образ, прообраз графа?
Как связаны между собой топологические сортировки графа и его гомоморфной свертки?
Каким образом гомоморфная свертка помогает упрощению процесса исследования структуры алгоритма?
Литература
Воеводин В.В. Параллельные вычисления / В.В.Воеводин, Вл.В.Воеводин. — СПб.: БХВ-Петербург, 2002. — 608 с.
Харари Ф. Теория графов / Ф.Харари; пер.с англ. В.П.Козырева. — М.: Мир, 1973. — 300 с.
Уилсон Р. Введение в теорию графов / Р.Уилсон. — М.: Мир, 1977. — 207 с.
Кристофидес Н. Теория графов. Алгоритмический подход / Н.Кристофидес. — М.: Мир, 1978. — 432 с.
Новиков Ф.А. Дискретная математика для программистов / Ф.А.Новиков. — СПб.: Питер, 2006. — 364 с.
Иванов Б.Н. Дискретная математика. Алгоритмы и программы / Б.Н.Иванов. — М.: Лаборатория Базовых Знаний, 2001. — 288с.
