分段
#版权所有2019,gurobi优化狗万app足彩,llc ##这个例子考虑以下可分离,凸面问题:##最小化#f(x) - y + g(z)#that#x + 2 y + 3 z <= 4#x + y> = 1#x,y,z <= 1 ##其中f(u)= exp(-u)和g(u)= 2 u ^ 2 - 4u,对于所有真实的U。通过用分段 - 线性函数近似f和#g来制定和解决简单的LP模型。然后它通过否定F的近似,将模型#转换为MIP,这使得#是非凸分段线性函数,并再次解决它。图书馆(Gurobi)模型< - list()模型$< - 矩阵(C(1,2,3,1,1,0),nrow = 2,byrow = t)模型$OBJ < - C(0,-1,0)模型$UB < - C(1,1,1)模型$RHS < - C(4,1)模型$感觉< - c('<','>')#统一间隔点在[0.0,1.0] u < - seq(from = 0,to = 1,by = 0.01)#first分段 - 线性函数:f(x)= exp(-x)pwl1 < - list()pwl1$var < - 1 pwl1$X < - U PWL1$Y < - Sapply(U,功能(x)exp(-x))#第二分段 - 线性函数:g(z)= 2 z ^ 2 - 4 z pwl2 < - list()pwl2$var < - 3 pwl2$X < - U PWL2$Y < - Sapply(U,功能(z)2 * z * z - 4 * z)模型$pwlobj < - list(pwl1,pwl2)结果< - gurobi(型号)打印(结果$objval)打印(结果$x)#在X上否定分段线性函数,使其成为非凸模型$pwlobj [[1]]$Y < - Sapply(U,函数(x)-exp(-x))结果< - gurobi(型号)gurobi_write(型号,“pwl.lp”)打印(结果$objval)打印(结果$x)#清除空间RM(型号,PWL1,PWL2,结果)