Java中的线性规划

时间:2015-09-18 12:53:20

标签: java algorithm linear-algebra linear-programming

我已经使用Excel进行了一些线性编程,我发现了一些可以帮助解决这个问题的Java库,但我不确定线性编程是否是正确的解决方案,或者可用的库可以处理我的问题我想做。

我有许多存储桶,对于此程序的每次运行都会有所不同。对于这次运行,假设我有8个桶。我还有几个对象。对于这次运行,假设我有30个对象。每个物体都有一个重量,我知道。我想将对象加载到桶中,这样每个桶中对象的总和尽可能接近相等。

我需要确定哪些对象应放在哪个桶中以创建此结果。

从我在JOptimizer和SCPSolver的文档中看到的情况来看,我无法将此问题转换为可行的格式。

我的第一个问题是如何在单个问题中表示存储桶总和的最小变化。我想也许总和的标准差可行。如果我可以得到相等的值,那就有效,但如果没有,标准偏差似乎允许超过最小可能的变化。我不知道这些库如何支持标准偏差。有没有更好的方法来解决这个问题呢?

我也感觉我正在创造更多必要的约束。我为每个对象和存储桶组合创建了一个约束。每个约束的值可以是0或1. 1表示对象放在该桶中。然后,我有另一个约束,它为每个单独的对象汇总每个桶,它必须是1.这可以确保对象只放在一个桶中。然后我可以通过获取对象权重*存在桶并对结果求和来添加每个存储桶对象的总数。这似乎是一个比必要的更复杂的路线。

这是解决此类问题的最佳方法吗?还有哪些更好的方法?

谢谢!

0 个答案:

没有答案