Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ANALIZ_ALGOR.doc
Скачиваний:
5
Добавлен:
21.08.2019
Размер:
2.31 Mб
Скачать

Лекция 10. Топологические сортировки сложных графов План

  1. Особенности и рекомендации построения топологических сортировок графов алгоритмов, содержащих условные операции

  2. Построение топологической сортировки графа по топологическим сортировкам подграфов его разбиения

1. Особенности и рекомендации построения топологических сортировок графов алгоритмов, содержащих условные операции

Граф алгоритма определяется однозначно по его записи только для фиксированных входных данных. Если в записи алгоритма имеются условные операции, то такую запись надо считать записью семейства «похожих» алгоритмов [Воев]. В свою очередь подобная запись порождает семейство «похожих» графов. Для конкретных входных данных можно даже не знать, с каким конкретно графом из семейства «похожих» графов приходится иметь дело. Такая ситуация возникает, если условные операции зависят от входных данных достаточно сложно, например, определяются результатами промежуточных вычислений. Вместо того, чтобы отдельно исследовать топологические сортировки каждого из графов семейства, можно взять объединение этих графов и исследовать его топологическую сортировку.

Теорема 13. Пусть - ациклические графы,

.

Если - ациклический, то любая топологическая сортировка графа порождает топологическую сортировку для каждого из графов [Воев].

Доказательство. Пусть известна какая-то топологическая сортировка графа , при этом все вершины каждого из графов , рассматриваемые как вершины графа , распределены некоторым образом по группам топологической сортировки. Возможно, что при этом в каких-то группах не окажется ни одной вершины . Топологическая сортировка графа порождает разбиение множества вершин графа на непересекающиеся подмножества по принадлежности вершин к одной группе. Присвоим каждому подмножеству индекс порождающей его группы, получая таким образом топологическую сортировку для . Действительно, в одном подмножестве вершины графа не являются смежными, т.к. они принадлежат одной группе топологической сортировки как вершины графа . В вершины любого подмножества дуги либо не входят, либо входят из вершин, принадлежащих подмножествам с меньшими номерами, что также является следствием того, что вершины одного подмножества принадлежат одной группе.

Пример *1. Вычислить значение

где , , а , - вводимые параметры.

Решение задачи может пойти по двум взаимоисключающим путям в зависимости от соотношения между значениями и , которые являются результатами промежуточных вычислений. Так если , то граф соответствующего алгоритма будет иметь вид, представленный на рис.10.1(а), в противном случае граф алгоритма имеет вид, представленный на рис.10.1(б).

Построим граф (рис.10.1(в))

.

а б в

Рис.10.1.

Топологическая сортировка графа в соответствии с теоремой 13 порождает топологические сортировки и (рис.10.2).

Рис.10.2.

Такой возможностью получения топологических сортировок подграфов по топологической сортировке объединения целесообразно пользоваться, когда есть какой-то выигрыш в вычислительной работе. Это прпоисходит, например, тогда, когда в «похожих» алгоритмах есть много совпадающих операций, а в соответствующих графах тогда окажется много совпадающих вершин (как в предыдущем примере). Тогда если строить топологические сортировки каждого из «похожих» алгоритмов в отдельности, на это уйдет, очевидно, больше времени, чем при построении топологической сортировки объединения.

Пример *2. Вычислить значение выражения:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]