Я пытаюсь найти решение следующей проблемы с помощью Java.У меня есть график, это хороший пример того, как он может выглядеть:
Есть его обозначение:
[{ A = {C = 0,7}, {D = 0,3}}, { C = {out = 0,2}, {F = 0,8}}, { D = {C = 0,1}, {F = 0,2}, {G = 0,3}, {E = 0,4}}, { S = {A = 0,4}, {B = 0,6}},
{E = {G = 0,3}, {out = 0,7}}, { G = {B = 0,2} {out = 0,8}}, ...
S - это начальный узел (S = 1), out - это выход из графика.
Я хочу отследить график и узнать, какой процент каждыйузел имеет.Например, A = 0,4 * S (S = 1), C = 0,7A + 0,1D, D = 0,3A + 0,7B
Я думал, что это можно сделать с помощью рекурсии (DFS для ориентированных графов, в частности, алгоритма Тарьяна), но хотя есть циклы, я не думаю, что это помогает.Другим решением является решение системы линейных уравнений.Я не знаю, что лучше, чтобы это работало, и, возможно, существуют решения для такого рода задач.Этот пример является просто примером, но я должен учитывать, что у меня есть, как ок.2000 узлов (а кто знает сколько циклов).
Как бы вы это сделали?