Граф зависимостей

Граф зависимостей

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

Содержание

Определение

Dependencygraph.png

Пусть дано множество объектов S и отношение транзитивности R = S \times S где (a,b) \in R, моделирующее зависимость "для вычисления a нужно сначала вычислить b", тогда граф зависимостей - это граф G = (S, T) где T \subseteq R и R является транзитивным замыканием T.

Например, рассмотрим простую вычислительную машину (калькулятор). Пусть калькулятор поддерживает запись константы в некоторую переменную и сложение двух переменных с записью результата в некоторую третью переменную. Пусть дано несколько выражений, например, "A = B+C; B = 5+D; C=4; D=2;". Тогда S={A,B,C,D} и R={(A,B),(A,C),(B,D)}. Можно явно вывести все отношения: A зависит B и C, потому что две переменные можно складывать тогда и только тогда, когда известны значения обеих переменных. Таким образом, B и C должны быть вычислены перед A. Однако, значение D известно сразу, потому что это числовая константа.

Обнаружение невозможных вычислений

Циклические зависимости в графе зависимостей приводят к ситуации, в которой нет доступного порядка вычислений, потому что ни один из объектов цикла не может считаться первым. Если циклических зависимостей нет, то мы имеем направленный ациклический граф, и порядок вычислений может быть определен с помощью топологической сортировки. Большинство алгоритмов топологической сортировки способны обнаруживать циклы на входе, однако, желательно обнаруживать циклы отдельно от топологической сортировки.

Рассмотрим на простом примере калькулятора. Вычислительная система "A=B; B=D+C; C=D+A; D=12;" содержит циклическую зависимость. B должно быть вычислено до А, С должно быть вычислено до В, А должно быть вычислено до С.

Определение порядка вычислений

Корректный порядок вычислений - это нумерация  n : S \rightarrow N объектов, которая упорядочивает узлы графа зависимостей так, что имеет место равенство:  n(a) < n(b) \Rightarrow (a, b) \notin R , где  a, b \in S. Это означает, что если нумераций определяется, что а вычисляется перед b, то а не может зависеть от b. Более того, может существовать более одного корректного порядка вычислений. По сути, корректная нумерация является топологической сортировкой, и любая топологическая сортировка является корректной нумерацией. На самом деле, любой алгоритм, производящий корректную топологическую сортировку, одновременно определяет корректный порядок вычисления.

Снова вернемся к примеру с калькулятором. Пусть дана система: "A = B+C; B = 5+D; C=4; D=2". Корректный порядок: (D, C, B, A). Однако, (C, D, B, A) также является корректным порядком вычислений.

Примеры

Граф зависимостей используется в:

  • Планирование инструкций. Граф зависимостей вычисляется для операндов ассемблера или промежуточных инструкций и используется для определения оптимального порядка инструкций.
  • Удаление мёртвого кода.

Графы зависимости это один из вопросов:

  • Теории ограничений. Исходные данные перерабатываются в результирующие в ходе нескольких зависимых этапов.
  • Планирования. Набор взаимосвязанных теоретических проблем в области компьютерных наук.

Смотрите также

Литература


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Граф зависимостей" в других словарях:

  • Граф алгоритма — Граф алгоритма  ориентированный граф, состоящий из вершин, соответствующих операциям алгоритма, и направленных дуг, соответствующих передаче данных (результаты одних операций передаются в качестве аргументов другим операциям) между ними. Не… …   Википедия

  • Граф потока управления — Простые графы потока управления[1] Граф потока управления (англ.  …   Википедия

  • Граф (значения) — Граф: От древневерхненемецкого gravo, gravio «предводитель, вождь»: Граф (титул) дворянский титул; «Граф» короткометражная немая кинокомедия Чарли Чаплина (The Count, 1916). От греч. γράφω «царапаю, черчу, пишу»: Граф (в математике) объект,… …   Википедия

  • Граф объектный — это совокупность узлов и ребер, соединяющих эти узлы. Объектные графы обеспечивают простой способ учета взаимных связей в множестве объектов, и не обязательно, чтобы эти связи в точности проецировались в классические связки объектно… …   Википедия

  • Объектный граф — Граф объектный  это совокупность узлов и ребер, соединяющих эти узлы. Объектные графы обеспечивают простой способ учёта взаимных связей в множестве объектов, и не обязательно, чтобы эти связи в точности проецировались в классические связки… …   Википедия

  • СТРУКТУРА ВЗАИМОЗАВИСИМОСТЕЙ (СТРУКТУРА МНОГОМЕРНОЙ СЛУЧАЙНОЙ ВЕЛИЧИНЫ, СТРУКТУРА СИСТЕМ ПЕРЕМЕННЫХ, ГРАФ НЕПОСРЕДСТВЕННЫХ СВЯЗЕЙ) — интегральная характеристика особенностей взаимных связей между переменными изучаемой системы. Представляет собой нек рый граф, вершины к рого соответствует переменным системы, ребра непосредственным связям, а пути опосредствованным связям.… …   Российская социологическая энциклопедия

  • Pkgcore — Pkgcore  задумана как защищённая замена для portage в Gentoo, оптимизирована для работы и написана на python. Он представляет emerge в трех основных сценариях. pemerge для установки, обновления и удаления пакетов. Это почти тоже самое что и… …   Википедия

  • Графское звание — Граф: От древневерхненемецкого gravo, gravio «предводитель, вождь»: Граф (титул) дворянский титул; «Граф» короткометражная немая кинокомедия Чарли Чаплина (The Count, 1916). От греч. γράφω «царапаю, черчу, пишу»: Граф (в математике) объект,… …   Википедия

  • Графы — Граф: От древневерхненемецкого gravo, gravio «предводитель, вождь»: Граф (титул) дворянский титул; «Граф» короткометражная немая кинокомедия Чарли Чаплина (The Count, 1916). От греч. γράφω «царапаю, черчу, пишу»: Граф (в математике) объект,… …   Википедия

  • Марковская сеть — Марковская сеть, Марковское случайное поле, или неориентированная графическая модель  это графическая модель, в которой множество случайных величин обладает Марковским свойством, описанным неориентированным графом. Марковская сеть отличается …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»