- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个多边形 BP
和 GP
由一组不等式约束-x+y<=1 and x+y<= 5 and x-y<=3 and -y <= 0
描述用于黑色多边形和 -1<=x<=4 and 0 <= y <= 3
对于绿色多边形。
我的目标是使用 LP 来找到分数问题的最佳解决方案:鉴于 B
GP 中的最大值是多少 lambda
以至于
B = lambda*B_BP + (1-lambda)*B_GP
B
的最大分数即在上述意义上的多边形内部。为此,我正在努力编写 LP 程序,我认为如果我们将 BP 写为矩阵不等式条件,我们会得到每个
B_BP
是这样的
M_BP*B_BP <= C
分别是
C
是向量
(1,5,3,0)
和
M_BP
是矩阵
((-1,1),(1,1),(1,-1),(0,-1))
.所以我认为它应该类似于,给定 B = x_1+x_2
maximize lambda
subject to M_BP*L_BP <= C_B
and B_BP >= 0
L_BP = (x,y)
矢量和
lambda = (x+y)/normalization
还有那个
C_B
以某种方式与向量有关
B
.
最佳答案
在我看来,这个问题需要一个更好的表述。我不确定这是否能解决您的问题,但希望它有所帮助。所以我建议使用 scipy.optimize.minimize为了解决这个优化问题,只需反转符号或使用逆,您就可以将最大化转换为最小化。
此外,由于您的代码基于来自 BP、GP 和随机点 B 的随机点,因此您也应该将它们输入到您的输入向量中。您可以从输入向量计算 lambda 系数(我在代码中将此变量命名为 k)。这种方法将返回满足目标函数最小输出约束条件的输入向量的值 fun
又名最大kx
和最大的ky
.
前面解释的方法可以实现如下:
import numpy as np
import scipy.optimize
# compute k
def k(x):
x_bp, y_bp = x[0], x[1]
x_gp, y_gp = x[2], x[3]
bx , by = x[4], x[5]
# compute k
kx = (bx - x_gp) / (x_bp - x_gp)
ky = (by - y_gp) / (y_bp - y_gp)
return kx, ky
# define objctive/cost function
def fun(x):
kx, ky = k(x)
return 1 / kx + 1 / ky
# define constraints (bp raandom point constraints)
cons = ({'type': 'ineq', 'fun': lambda x: x[0] + x[1] - 5},
{'type': 'ineq', 'fun': lambda x: -x[0] - x[1] - 3})
# init bounds
bnds = ((None, None), (0, None),
(-1., 4.), (0., 3.),
(-1., 4.), (0., 3.))
# init vars vec
#x = [x_bp, y_bp, x_gp, y_gp, bx, by]
x0 = [ 0.1, 0.2, 0.3, 0.5, 0.6, 0.5]
# optimize
res = scipy.optimize.minimize(fun,
x0,
bounds=bnds,
constraints=cons)
# print result
print("optimal x: ", np.round(res.x, 3))
# print optimal k
print("optimal k: ", np.round(k(res.x), 3))
x0
和界限,但这应该可以解决问题。发布的代码段导致以下输出:
optimal x: [0.1 0.2 0.3 0.5 0.6 0.5]
optimal k: [-1.5 -0. ]
关于python - 使用 LP 求分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60896599/
我一直在使用 lpSolve 和 lpSolveAPI。我构建了我的约束矩阵、目标函数等并提供给 lp 函数,这工作得很好。我想使用 write.lp 将问题保存为 lp 文件,但遇到了问题。我不断收
我想知道为什么以下线性程序之间存在差异。它们写在 LP file format 中.我假设 x=1 在这两种情况下都是最佳解决方案。 程序A: min: x; x >= 1; bin x; 输出: V
这就是我的代码的样子 protected Response uploadFile(final File file) throws HttpUploadException { System.ou
我在处理的项目中遇到了线性规划求解器的问题。首先,我尝试使用 Ajanta,但这并不能解决我需要解决的一类问题。所以我尝试了GLPK和lp_solve,但似乎我无法让Windows理解动态库在哪里。
我正在尝试了解最短路径问题的 LP 公式是如何工作的。但是我无法理解约束。为什么这个公式有效? http://ie.bilkent.edu.tr/~ie400/Lecture8.pdf 我无法理解第
大家好,我有一个关于线性规划的问题。 画出下列线性规划的可行域: 分钟 sx + ty st. 2x + y = -5 -x + 4y 0 或 y>0 形式的约束。 1) 参见 4),可能更好
我正在尝试在 Racket 的 scribble/lp 中编写一个小示例程序。该项目的来源在 Github . 我遇到的问题是编织 html 中的链接断开。我已将其作为 gh-page. 提供为项目。
我正在研究对预测进行排名的方法,并找到了这篇论文,A novel ranking procedure for forecasting approaches using Data Envelopment
我有两个多边形 BP和 GP由一组不等式约束-x+y= 0 我认为(这是我所有的尝试,可能都是非常错误的)L_BP = (x,y)矢量和 lambda = (x+y)/normalization还有那
我正在尝试解决具有两个变量和两个约束的 LP 问题,其中一个是不等式,另一个是 Scipy 中的等式约束。为了转换约束中的不等式,我在其中添加了另一个名为 A 的变量。 Min(z) = 80x +
我有一个整数规划模型,我想用 CPLEX 求解它的线性松弛。最初,我将变量定义为: BoolVarMatrix X(env,I); for(IloInt i = 0; i < I; i++){ X
我有一个包含商店 ID、纬度和经度的列表。假设我们的点数是偶数,我想将每家商店与另一家商店相匹配,这样我们的连接是唯一的,并且我们可以最小化总距离。 我很好奇我的方法是不是太愚蠢了,还有更好的方法。目
我用谷歌搜索了一下,上面说是行式打印机。我认为这没有任何意义... 最佳答案 l 用于列表,p 用于路径。查看所有其他 variants ,例如execl, execlp, execle, execv
我有陷波滤波器的概念问题。据我了解,陷波滤波器输出等于高通和低通滤波器输出的总和。但是,MATLAB 中的快速测试并未显示这一点。下面是一些测试代码: % Load a simple signal a
有没有办法让 lpSolve 返回多个解决方案?在下面的情况下,我想要 (5,0) 和 (0,5) 两者。 如果 lpSolve 不能这样做,那么是否还有其他 R 包可以返回积分线性优化程序的所有可能
我正在构建一个 Chrome 扩展(使用 Vue),其中使用 firebase。我将 firebase 服务器添加到我的内容安全策略中: "script-src 'self' https://cdn.
环境:Gurobi 8.1.1 + python3 我尝试构建以下线性程序模型并打印对偶价格。 最小 100 x + y s.t。 x + y >= 1 && 0 = 1 ) m.optimize()
在使用 CPLEX C API 进行 MIP 优化期间,是否可以检索当前节点(即每 n 个节点)的线性松弛(双变量、降低的成本等)? 我注册了一个回调函数 (CPXsetsolvecallbackfu
我想在linux的c程序中使用上面的命令。 到目前为止,我已经搜索过可以在代码中进行的系统调用和 exec 调用。还有其他方法使用 exec 或系统命令吗?对于多线程服务器来说,使用系统命令不是一个理
是否有可能在 gurobi 中检索不可行 lp 的对偶的极端射线? 既然问题的原始问题是不可行的,问题的对偶应该是无界的。 有一个 Var.UnbdRay 属性,如果它的原始是无界的,我可以将其用于
我是一名优秀的程序员,十分优秀!