manbet体育手机客户端


分段。R


# Copyright 2018, 狗万app足彩Gurobi Optimization, LLC # #这个例子考虑了以下可分离凸问题:# # #最小化f (x) - y + g (z) #话题# x + 2 y + 3 z < = 4 # x + y > = 1 # x, y, z < = 1 # # f (u) = exp (- u)和g (u) = 2 ^ 2 - 4 u,所有真实的你。#制定和解决简单的LP模型和分段线性函数近似f和g。然后通过对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)模型sense <- c('<', '>') #均匀间隔点在[0.0,1.0]u <- seq(from=0, to=1, by=0.01) #第一个分段线性函数:f(x) = exp(-x) pwl1 <- list() pwl1Var <- 1 pwl1X <- u pwl1y <- sapply(u, function(x) exp(-x)) #第二个分段线性函数:g(z) = 2 z^2 - 4 z pwl2 <- list() pwl2Var <- 3 pwl2X <- u pwl2Y <- sapply(u, function(z) 2 * z * z - 4 * z)模型Pwlobj <- list(pwl1, pwl2) result <- gurobi(模型)print(结果objval)打印(结果x) #否定x上的分段线性函数,使其是非凸模型pwlobj [[1]]Y <- sapply(u, function(x) -exp(-x)) result <- gurobi(model) gurobi_write(model, "pwl.lp") print(result . pobjval)打印(结果x) #清除空间rm(模型,pwl1, pwl2,结果)