Введение

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

Определение

При наличии множества объектов и транзитивной связи с моделированием зависимости "a зависит от b" ("a нуждается в b, оцениваемой первой"), график зависимости является графиком с транзитивным сокращением R. Например, предположим, что простой калькулятор. Этот калькулятор поддерживает присвоение постоянных значений переменным и присвоение суммы ровно двух переменных третьей переменной. Если дать несколько уравнений вроде "A = B+C; B = 5+D; C=4; D=2;", то и Вы можете вывести эту связь напрямую: A зависит от B и C, потому что вы можете добавить две переменные, если и только если вы знаете значения обеих переменных. Таким образом, B должен быть вычислен до того, как можно рассчитать A. Однако значения C и D известны сразу, потому что они являются числовыми буквалами.

Признание невозможных оценок

В графике зависимостей циклы зависимостей (также называемые круговыми зависимостями) приводят к ситуации, в которой не существует действительного порядка оценки, потому что ни один из объектов в цикле не может быть оценен первым. Если график зависимостей не имеет никаких круговых зависимостей, он образует направленный ациклический график, и порядок оценки может быть найден топологическим сортировкой. Большинство топологических алгоритмов сортировки также способны обнаруживать циклы в своих входах; однако, может быть желательно выполнять обнаружение циклов отдельно от топологической сортировки, чтобы обеспечить надлежащую обработку обнаруженных циклов. Возьмём простую калькуляторную машину. Система уравнений "A=B; B=D+C; C=D+A; D=12" содержит круговую зависимость, сформированную A, B и C, поскольку B должен быть оценен до A, C должен быть оценен до B, а A должен быть оценен до C.

Вывод ордера оценки

Правильный порядок оценки - это нумерация объектов, которые образуют узлы графа зависимости, так что следующее уравнение имеет значение: с Это означает, что если нумерация упорядочивает два элемента и так, что они будут оценены до , то не должно зависеть от Там может быть более одного правильного порядка оценки. Фактически, правильная нумерация - это топологический порядок, и любой топологический порядок - это правильная нумерация. Таким образом, любой алгоритм, который получает правильный топологический порядок, получает правильный порядок оценки. Возьмём простую калькуляцию сверху ещё раз. При данной системе уравнений "A = B + C; B = 5 + D; C = 4; D = 2;", правильный порядок оценки будет (D, C, B, A). Однако (C, D, B, A) также является правильным порядком оценки.