如何仅在可行约束下运行优化器?

问题描述 投票:0回答:1

我有一个纸浆优化器,有很多限制。我们有一个条件,如果约束一起不可行,那么我们需要在使其可行的约束子集上进行尝试。我正在使用回溯来解决问题,但这很耗时。还有什么办法可以解决吗

我正在使用回溯,但正如预期的那样,执行时间很长。如何才能减少时间并及时拿出可行的解决方案。

optimization pulp
1个回答
0
投票

尝试用软约束来实现你的问题,使其“始终”可行并使用惩罚评分。 (无论如何,这通常是更好的策略) 例如,如果您有一个有约束的供需模型:

supply = demand

并且由于某种原因供应受到限制并且无法集合,您可以将约束重新修改为

supply + penalty = demand

(或者更好)

supply + penalty >= demand

惩罚应该包含在 OBJ 函数中(并且可能适当加权,这样它们就不会掩盖最佳答案)。  根据结果评估处罚并做出调整...

© www.soinside.com 2019 - 2024. All rights reserved.