优化电缆总数

时间:2016-02-12 17:40:57

标签: matlab vba optimization

我需要大量不同尺寸的电缆(100米以下),电缆只能以100米的长度销售。

所以,为了优化我的购买,我想要一个代码,我可以输入我需要的所有电缆的长度。代码将在总和小于100的约束下组合我的输入,同时最小化我需要购买的100米长的电缆总数。

如果有人可以帮助使用VBA,Matlab或Python中的代码,我将非常感激。

2 个答案:

答案 0 :(得分:1)

这被称为bin-packing problem,实际上很难(从计算上讲)找到最佳解决方案。

然而,这是一个实际上有用的问题(正如你自己所见),所以有几种方法试图找到一个近似的解决方案 - 一个“足够好”而不保证它是最好的解决方案。我做了一个快速搜索,找到this course website,其中有一些例子可以帮助你。

如果您正在寻找一个精确的解决方案,您可以询问相关问题“我能否将所需的电缆插入N 100米电缆?”。这个可行性问题可以表示为“二进制程序”,这是“混合整数线性程序”的特例,MATLAB有一个名为intlinprog的求解器(需要优化工具箱)。

对不起,我没有任何代码可以解决您的问题,但我希望这至少会为您提供一些关键字,以帮助您找到更多资源!

答案 1 :(得分:1)

I believe this is like the cutting stock problem. There are some very good methods to solve this. Here is an implementation and some background. It is not too difficult to write an Excel front-end for this (see here).

enter image description here enter image description here

If you google for "cutting stock problem" you will find lots of references.