我正在尝试使用 VB.NET 中的 Microsoft Solver Foundation 重新生成以下 Excel Solver GRG 非线性优化(为了本示例,数字已简化):
- 目标:总 Gas Rate = 100000
- 变量:井 1 油率
- 约束:0 <= 井 1 气体率 <= 1000,井 2 气体率 = 2000
这种优化受制于以下关系:
- 1 号井的天然气率= 1 号井的石油率 * 5
- 总瓦斯率= 井 1 瓦斯率 + 井 2 瓦斯率
是否可以使用 Solver Foundation 解决这样的问题?在尝试实现这一点时,我遇到的两件事是:
- Solver Foundation 模型似乎只有两个 GoalKind:最小值和最大值。就我而言,我正在尝试针对特定值进行优化。有没有办法做到这一点?
- 如何定义上述关系?我认为后者将被定义为目标定义的一部分(例如,
model.AddGoal("total_gas_rate", GoalKind.[not sure what goes here], Well1PGasRate + Well2PGasRate
),但是我如何定义另一个呢?
谢谢!