- •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. Пространственно-временные развертки.
2. Вектор временной развертки, обобщенной временной развертки
Один из самых простых способов введения системы координат связан с простым перечислением всех операций, т.е. с линейным упорядочением вершин графа алгоритма.
При
сохранении уровня достоверности
результатов самой важной характеристикой
процесса реализации алгоритма является
время его выполнения. Если алгоритм
реализуется каким-либо образом на
какой-нибудь реальной или гипотетической,
последоватьельной или параллельной
вычислительной системе, то тем самым
определяются моменты выполнения всех
операций этого алгоритма. Перенумеруем
вершины графа алгоритма любым способом
и обозначим через
время окончания процесса реализации
операции, соответствующего і-ой
вершине. Таким образом, с каждой реальной
или гипотетической реализацией алгоритма
можно связать вектор
,
который показывает, как протекает
процесс реализации во времени.
Сам по себе вектор не содержит никакой информации о характеристиках используемой вычислительной системы. Поэтому, если при этом координаты вектора оказываются связанными какими-нибудь ограничениями, то такие ограничения определяются исключительно графом алгоритма. В данном случае вектор будем называть вектором обобщенной временной развертки. Поскольку на реализующую алгоритм вычислительную систему не накладываются никакие ограничения, время выполнения любой операции может равняться нулю или быть сколь угодно малым.
Если
при рассмотрении вектора
принимаются во внимание хотя бы
какие-нибудь параметры вычислительной
системы, влияющие на допустимое множество
векторов
,
то в этом случае вектор
будем называть просто вектором временной
развертки.
Например, может задаваться время
,
необходимое для реализации
ой
операции. Если из
ой
вершины графа алгоритма идет дуга в
ую
вершину, то должно выполняться неравенство:
.
Поэтому параметр
влияет на множество допустимых векторов
временных разверток. Неотрицательный
вектор
будем называть вектором
реализации.
Для обобщенных временных разверток
.
Если
из
ой
вершины графа алгоритма идет дуга в
ую
вершину, то этому факту можнодать
следующую трактовку. Некоторая информация
рождается в
ой
вершине в момент
и передается
ой
вершине для использования. В какой-то
момент времени между
и
эта информация начинает использоваться
устройством, относящимся к
ой
вершине, и ее использование заканчивается
в момент
.
Следовательно, с каждой дугой графа
можно связать не только какую-то
информацию, передаваемую от одной
вершины к другой. Любая временная
развертка однозначно определяет время
ее появления и время
-
ее существования, частично в неизменном,
частичнов преобразованном в
ой
вершине виде. Будем считать, что в момент
старая информация полностью заканчивает
свое существование и рождается новая.
Если в момент
одна и та же информация начинает
распространяться одновременно по
нескольким дугам, то будем предполагать,
что на каждой дуге возможна ее
самостоятельная жизнь со своими
процессами передачи и преобразования.
Время
-
будем называть временем
задержки информации на дуге,
связывающей
ую
и
ую
вершины, при временной развертке
.
Обобщенная временная развертка не
накладывает никаких ограничений на
времена задержек, кроме того, что они
должны быть неотрицательными. Это
ограничение есть необходимое условие
выполнимости алгоритма. При реализации
алгоритмов на реальных вычислительных
машинах или системах на времена задержек
накладываются ограничения снизу. Они
вызываются временем реализации операции,
временем передачи информации по каналам
и линиям связи, временем хранения в
памяти и рядом других факторов. Эти
ограничения можно задавать аксиоматически
и считать, например, что для всех
и
время задержки информации на дуге,
связывающей
ую
и
ую
вершины, удовлетворяет
-
.
Неотрицательный вектор
с координатами
будем называть вектором
задержек.
Рассмотрим
временные ограничения, возникающие в
процессе ввода-вывода информации.
Обозначим через
вектор, координатами которого являются
координаты вектора развертки
,
соответствующие входным вершинам.
Задача может состоять в изучении
множества разверток, удовлетворяющих
дополнительным ограничениям вида
,
где
- заданный вектор, неравенство между
векторами означает систему неравенств
между соответствующими их координатами.
Это говорит о том, что исследуются
временные характеристики процессов
реализации алгоритмов при условии, что
заданы ограничения на моменты ввода
информации. Вектор
называется вектором граничных
или начальных
условий.
Пусть
фиксирован алгоритм и определен его
граф. Обозначим через
множество всех обощенных временных
разверток для этого алгоритма. Через
обозначим множество всех существующих
и не существующих, реальных и гипотетических
вычислительных систем, на которых
алгоритм может быть реализован. Ясно,
что любая конкретная ЭВМ входит во
множество
и этой ЭВМ соответствует во множестве
некоторое подмножество, описывающее
все возможные реализации на ней заданного
алгоритма.
Если
определены какие-то ограничения на
параметры вычислительных систем, то
тем самым определяется во множестве
какое-то подмножество временных
разверток. Например, задание вектора
или
определяет подмножества
или
.
В свою очередь в подмножествах
,
выделяются подмножества в зависимости
от векторов начальных условий. Возможны
и другие ограничения. Ясно, что в
рассмотренных случаях
,
,
а также
=
для некоторого вектора
,
выбираемого по вектору
.
Все эти множества и подмножества зависят
от рассматриваемого алгоритма.
