【发布时间】:2011-04-13 18:08:43
【问题描述】:
我正在尝试在 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 用于有向图,尤其是 Tarjan 算法)来实现,但是虽然存在循环,但我认为它没有帮助。另一种解决方案是求解线性方程组。 我不知道有什么更好的方法,也许这类任务存在一些解决方案。 这个例子只是一个例子,但我应该认为我喜欢 appr。 2000 个节点(谁知道有多少个周期)。
你会怎么做?
【问题讨论】:
-
为什么选择 BFS 而不是 DFS? DFS 可能会更快找到出路。