【发布时间】:2011-01-28 07:16:14
【问题描述】:
我目前正在 MATLAB 中编写优化算法,但我完全不擅长,因此我真的可以使用您的帮助。我真的很难找到一种表示图形的好方法(或者更像是一棵有多个根的树),它看起来或多或少像这样:
alt text http://img100.imageshack.us/img100/3232/graphe.png
基本上 11/12/13 是我们的根(stage 0),2x 是 stage1,3x stage2 和 4x stage3。如您所见,stageX 的节点仅连接到 stage(X+1) 的几个节点(因此它们不必连接到所有节点)。
重要提示:每个节点必须保存多个值(至少 3-4 个),一个是它的编号,至少还有两个其他变量(用于优化决策)。
我确实有一个使用矩阵的简单表示,但它真的很难维护,所以我想知道有没有好的方法来做到这一点?
第二个问题:当我完成该表示后,我需要计算每条路线(从根到尾)有多好(比如假设我需要比较的是 11-21-31-41 最好还是11-21-31-42 更好)为此我将使用每个节点拥有的变量。但是这些值必须递归计算,假设我们从 11 开始,但要计算 11-21-31-41 有多好,我们首先需要到 41,做一些计算,到 31,做一些计算,去到 21 做一些计算,然后我们可以使用之前的所有计算来计算 11。与 11-21-31-42 相同(我们从 42 开始,然后是 31->21->11)。我需要以这种方式检查所有可能的路线。问题来了,怎么做?也许是 BFS/DFS?但我不太确定如何存储所有结果。
这些都是一些冗长的问题,但我希望我不是要你做作业(因为我掌握了所有算法,只是我不太擅长 matlab,我的老师不让我做用java做)。
【问题讨论】:
标签: matlab graph representation