在OPL中,有没有一种方法可以最大化一个参数并最小化另一个参数?

时间:2020-08-09 02:47:03

标签: cplex

我想解决一个问题,以同时使NPV最大化和特定成本最小化。是否可以同时运行最大化和最小化问题?

OPL是否有出路?

2 个答案:

答案 0 :(得分:2)

您可以像下面那样使用staticLex

https://github.com/AlexFleischerParis/zooopl/blob/master/zoomultiobjective.mod

然后使用减号:

maximize staticLex(npv,-cost)

这将使npv最大化,然后使成本最小化。

答案 1 :(得分:1)

就像亚历克斯一样,“词汇”多目标方法很棒。但是,如果您对正在发生的事情多一些思考,则可以实现更大的灵活性和了解。一种从头开始做类似事情的简单方法是解决第一个目标而忽略第二个目标,以便您了解例如净现值然后更改目标函数以最小化成本而不是最大化NPV,并添加一个将NPV固定在例如您在第一次求解中发现的最大值的0.1%(或1%或2%),并解决了新问题。这种方法使您可以探索两个目标之间的取舍-如果您可以接受NPV的小幅下降,也许可以节省大量成本。

“开箱即用”的内置多目标东西比自己动手做起来容易得多,几乎可以肯定是更有效率的-只是想分享一些黑盒魔术背后的想法。知道一些如何使事情为您服务的好。