[英]Using Google OR-Tools for a goal seeker in C#?
我正在尝试在 C# 中编写多变量目标搜索器。 主要思想是有一组变量 x_1 到 x_n,可以由求解器更改,因此目标 function f(x) 尽可能接近给定值 Z。
到目前为止,我主要使用了 GLOP_LinearSolver,它只能最小化或最大化目标 function。 为了解决这个问题,我想最小化 f(x)-Z 的绝对平方,但 GLOP_LinearSolver 不包括绝对值或平方运算符(据我了解,OR-Tools 求解器都没有)。
我的问题是:是否有可能使用 Google OR-Tools 实现这个目标寻求者? 如果是:什么是我的问题的解决方法? 如果不是:我还可以使用哪些其他 package?
物镜 function
min |f(x) - Z|
可以重新表述为:
min d1 + d2
f(x) + d1 - d2 = Z
d1, d2 ≥ 0
只要f(x)
是线性的,就可以将其输入任何 LP 求解器。
d1 和 d2 是正负偏差或松弛。 我们将偏差最小化,因此我们最终使 f(x) 尽可能接近 Z。 请注意,在最优解中,d1、d2 中只有一个可以为非零(不能同时为两者)。 例如,如果 f(x)=10 且 Z=8,则 d1=0,d2=2。 如果 f(x)=7 且 Z=8,则 d1=1,d2=0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.