【发布时间】:2019-03-20 21:14:48
【问题描述】:
假设我有一个具有 3 个属性 x、y、z 的类 Part:
class Part {
constructor(x, y, z) {
this.x = x
this.y = y
this.z = z
}
createNewFromParts(...parts){
}
}
我希望 createNewFromParts 函数可以获取 x 部分并找到 每个零件都有一个常数来复制他的属性,因此在复制所有零件后,所有零件的每个属性值的总和将最接近原始零件属性。我还想记录成功的百分比。成功百分比将由所有 3 个属性相对于之前的值一起计算,而不是按个人计算。
例如:
const whole = new Part(4,6,10);
const part1 = new Part(1,2,4);
const part2 = new Part(2,2,3);
在本例中,这很简单:将 part1 乘以 1,part2 乘以 2,相加的结果将是 (5,6,10),这可能是最佳匹配。
假设会有这样的事情:
const whole = new Part(32,10,27);
const part1 = new Part(10,7,15);
const part2 = new Part(15,5,22);
我将如何找到常量来复制每个部分以获得最佳匹配?
我想找到一种算法,它会为每个要复制的部分找到一个常数,以获得最接近原始部分的最佳匹配。
感谢帮助:)
【问题讨论】:
-
如果您搜索“带约束的线性规划”这个短语,您会发现可以比我们在此处的答案中更好地解释它的资源。
-
@Prune 说的:这是一个经典的线性优化问题。 simplex algorithm 就能解决。
标签: javascript algorithm mathematical-optimization linear-programming