- •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. Топологические уровни графа алгоритма
Для упрощения изложения далее используется следующая терминология: топологическая сортировка графа алгоритма называется его параллельной формой, группа в топологической сортировке называется ярусом параллельной формы. Число ярусов в параллельной форме называется ее высотой, число вершин і-го яруса – шириной і-го яруса, а максимальное из этих чисел – шириной параллельной формы. Параллельная форма минимальной высоты называется максимальной, а ее высота – высотой алгоритма. Максимальная ширина параллельных форм называется шириной алгоритма.
Топологическая сортировка делит все вершины графа алгоритма на группы - топологические уровни, отвечающие операциям алгоритма, которые могут выполняться параллельно, а сами группы выполняются последовательно друг за другом в порядке возрастания номеров вершин графа, входящих в них. Действительно, рассмотрим какую-нибудь топологическую сортировку графа алгоритма. Пусть полученные в результате сортировки группы перенумерованы подряд натуральными числами. Первая группа вершин содержит только те вершины, которые не имеют входящих дуг. Следовательно, первая группа операций содержит только операции ввода. В вершины любой другой группы дуги либо не входят, либо идут из вершин, находящихся в группах с меньшими номерами. Это означает, что все группы операций можно выполнять последовательно друг за другом, начиная с первой. Последняя группа вершин содержит только вершины, не имеющие выходящих дуг. Поэтому последняя группа операций содержит только операции вывода. Согласно первому следствию из утверждения 123, вершины одной группы не связаны между собой дугами. Отсюда вытекает возможность параллельного выполнения операций каждой группы.
Следует отметить, что у одного и того же ориентированного ациклического графа может быть несколько различных топологических сортировок. Операции, соответствующие вершинам графа одного уровня топологической сортировки, являются информационно независимыми.
Отыскание любых топологических сортировок, а тем более, топологических сортировок, обладающих заданными свойствами – трудная задача. Трудность этой задачи тем выше, чем сложнее устроен граф. Необходимы некоторые общие приемы сведения процесса отыскания топологических сортировок для сложных графов к процессам отыскания топологических сортировок для более простых графов. Более простой граф – это тот граф, для которого нужная задача решается проще. Он может иметь больше вершин и больше дуг, чем исходный граф, и даже содержать исходный граф в качестве подграфа. И, тем не менее, может оказаться, что разумнее находить топологическую сортировку именно для него.
Вопросы
Почему любая реализация алгоритма должна порождать определенную сортировку его операций?
Какими свойствами обладают группы операций, выделенные при сортировке вершин графа?
Почему вершины графа любого алгоритма можно разбить, по крайней мере, на три группы?
Какая разметка вершин графа называется топологической сортировкой?
Какими основными свойствами обладают топологические сортировки?
Что представляет из себя топологический уровень?
Какая топологическая сортировка называется обобщенной? Какими свойствами обладает обобщенная топологическая сортировка?
Какой граф называется линейно упорядоченным?
Литература
Воеводин В.В. Параллельные вычисления / В.В.Воеводин, Вл.В.Воеводин. — СПб.: БХВ-Петербург, 2002. — 608 с.
Харари Ф. Теория графов / Ф.Харари; пер.с англ. В.П.Козырева. — М.: Мир, 1973. — 300 с.
Уилсон Р. Введение в теорию графов / Р.Уилсон. — М.: Мир, 1977. — 207 с.
Кристофидес Н. Теория графов. Алгоритмический подход / Н.Кристофидес. — М.: Мир, 1978. — 432 с.
Новиков Ф.А. Дискретная математика для программистов / Ф.А.Новиков. — СПб.: Питер, 2006. — 364 с.
Иванов Б.Н. Дискретная математика. Алгоритмы и программы / Б.Н.Иванов. — М.: Лаборатория Базовых Знаний, 2001. — 288с.
