【发布时间】:2015-07-07 08:08:54
【问题描述】:
下图解释了我的问题 http://i.stack.imgur.com/n6mZt.png
我有有限(但相当大)数量的此类碎片需要以某种方式堆叠,以使剩余区域尽可能小。这些碎片被锁定在水平轴(时间)上,并且具有固定的高度。它们只能堆叠。
剩余区域由堆栈的最大点定义,具体取决于已选择的部分。示例图像中的最佳组合是 [1 1 0]。 (琐碎的 [0 0 0] 情况不会被其他约束所允许)
我唯一的变量是每件作品的二进制文件(是或否)。目标比我描述的要复杂一些,但我现在最大的问题是如何制定表达式
Max{Stacked_Pieces} - Stacked_Pieces_Profile
在目标函数中。这个表达式的结果当然是一个向量(时间序列),但它会通过其他操作进一步简化为一个数字。
基本上我的问题是如何写
Max{A} - A, where A = 1xN vector
以与线性(甚至二次)目标兼容的方式。还是我在处理非线性问题?
编辑:这个问题就像一个背包问题,主要区别在于没有背包可以装满。即背包的大小根据所选的件而有所不同,并且始终等于堆叠轮廓的顶部
谢谢大家!
【问题讨论】:
-
这不是背包问题吗? en.wikipedia.org/wiki/Knapsack_problem
-
是的,但是我的背包的大小会随着组合的变化而变化。最大值不固定
标签: optimization knapsack-problem