Любопытно, что считается надежным алгоритмом / подходом для оценки силы ориентированного ациклического графа, в частности, силы определенных узлов. Главный вопрос, который у меня есть по этому поводу, можно свести к следующим двум графикам:
(если график не отображается, нажмите здесь или перейдите по этой ссылке: http://www.flickr.com/photos/86396568@N00/2893003041/
На мой взгляд, А находится в более сильной позиции, чем а. Я оцениваю силу по тому, насколько сильным может оставаться узел, если выбить ссылку. Первый я бы назвал тонким ходулем, а второй - толстым стеблем.
Вот подходы, которые я рассмотрел до сих пор для оценки силы узла:
1) Подсчет количества узлов ниже, вычитая количество узлов выше.
- A = 7, a = 7, B = 5, b = 1
2) Подсчет количества полных путей (до завершения) для каждого узла, суммирование их длин.
- A = 17 (1 + 5 + 5 + 5 + 1), B = 12 (4 + 4 + 4), a = 9 (3 + 3 + 3), b = 2
- Это делает ходуля сильнее, чем стебель.
3) Подсчет каждого возможного пути, обработка каждого узла в качестве пункта назначения.
- A = 9 (A-> B, A-> C, A-> D, A-> E, A-> G, 2xA-> F, 2xA-> H), B = 6, a = 9 , б = 2
3 пока кажется лучшим вариантом, но есть ли лучший, обобщенный для DAG? Это то, что имеет лучший известный подход? Принципы состоят в том, чтобы использовать как можно больше информации на графике, а решение должно быть интуитивно понятным.