我目前正在 MATLAB 中编写一个优化算法,我完全不擅长,因此我真的可以使用你的帮助。我真的很难找到一种表示图形的好方法(或者更像是一棵有几个根的树),它看起来或多或少像这样:
替代文字 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,我的老师不让我做爪哇)。