【发布时间】:2011-02-08 10:02:09
【问题描述】:
我在 MySQL 中有一个表,其中包含两个(重要的)列 A 和 B,其值指的是一个包。当且仅当包 A 需要包 B 时,表中才会出现一行。
我希望 (1) 在 php 中生成一个图形,然后 (2) 确定该图形是否是非循环的(DAG),如果不是,则打印(3)图中的所有循环。
理论上,3 很简单(约翰逊算法:http://dutta.csc.ncsu.edu/csc791_spring07/wrap/circuits_johnson.pdf)。
(2) 可以通过 (3) 不列出循环来完成,但我想知道是否有更快的算法。
我不确定 (1) - 有效地从表中提取数据并在 php 中制作一个图表,这有助于实现 (2) 和 (3)。我该怎么做?
顺便说一句,我还有第二个表,也有两列,当且仅当 A 与 B 冲突时才有一行。我还想 (4) 查找案例(或验证没有)其中: A 需要 B,B 需要 C,但 A 与 C 冲突
【问题讨论】:
-
有限,但除此之外,没有。我可能有一个很长的链,例如 A=>B=>C=>...=>Z=>A。我还应该澄清一下,它可能是一个定向森林,而不仅仅是一棵树(即未连接的)。