【发布时间】:2016-06-17 10:48:42
【问题描述】:
由于我对各种优化/树算法不是很精通,我正在寻求帮助。
问题描述:
假设,给定一个大序列的排序节点,每个节点代表一个整数值 L。L 总是随着每个节点变得越来越大,并且没有节点具有相同的 L。
现在的目标是找到节点的最佳组合,其中后续节点的 L 值之间的差异最接近于在 L 上变化的给定整数值 M(L)。
示例:
所以,一开始我会有 L = 50 和 M = 100。接下来的节点有 L = 70,140,159,240,310。
首先,159 的值似乎最接近 L+M = 150,因此选择它作为正确的值。 但是,在下一步中,仍然给出 M=100,我们注意到 L+M = 259,与 240 相差甚远。 如果我们现在返回并选择 L=140 的节点,然后是 240,则 M 值和 L-差异之间的整体匹配更强。该算法应该能够找到最佳路径,即使在此过程中出现了错误。
一些附加信息:
1) 起始节点不一定是最佳组合/路径的一部分,但如果需要,可以首先开发一种算法,选择最佳起始候选者。
2) 节点的最佳组合遵循排序顺序而不是“跳回”-> 所以 1,3,5,7 是可能的,但不是 1,3,5,2,7。
3)最后,选择节点的L值之间的差异应该在均方意义上最接近M值
非常感谢每一个帮助!
【问题讨论】:
-
您的条件(3)对于传达您正在尝试做的事情很有用,这似乎是:从n个节点的序列中,选择k个节点位置x_1的子序列(允许间隙), ..., x_k 使得 1
-
您好,您在从文本中提取重要信息方面做得非常好,谢谢。你写的一切都是准确的。我还注意到算法的问题,然后减少了节点的数量。我所能做的就是估计应该考虑的节点数量。但是,这只是正确节点数的(相对较好的)近似值。因此,一个额外的约束可能是考虑这个值,例如将节点数限制为大于最小值。
-
好,这正是我的建议,我的回答解决了问题:)
标签: algorithm matlab tree combinations