我想优化将大理石块装入卡车.我不知道,如果我可以为此目的使用Solver Foundation课程.之前,我开始编写代码,我想在这里问一下.
目标 - 目标是以最小的卡车装运装载大理石块.
如果不写出很多条件和循环,我怎么能这样做呢?
我可以将Microsoft Solver Foundation用于此目的吗?
我阅读了Microsoft提供的文档,但是找不到与我类似的场景.
M1+ M2 + M3 + .... Mn <=24 这是一辆卡车的运输.
假设有200种不同的大理石重量,大理石重量是Float.
谢谢
您可以使用Microsoft Solver Foundation来解决此问题.这里可以找到这种解决方案的一个例子,其中bin装箱问题的OML如下:
Model[
Parameters[Sets,Items,Bins],
Parameters[Integers,OrderWidth[Items],BinWidth[Bins]],
Decisions[Integers[0,1],x[Items,Bins]],
Decisions[Integers[0,1],y[Bins]],
Constraints[
Foreach[{i,Items},Sum[{j,Bins}, x[i,j]]==1 ],
Foreach[{j,Bins}, Sum[{i,Items}, OrderWidth[i]*x[i,j]] <= BinWidth[j]],
Foreach[{i,Items},{j,Bins}, y[j] >= x[i,j]]
],
Goals[Minimize[UsedBins->Sum[{j,Bins},y[j]]]]
]
Run Code Online (Sandbox Code Playgroud)
将OrderWidth更改为MarbleWeight并将BinWidth更改为TruckCapacity(或者在您的情况下仅为24)