gc_pwl.R


# 2023年版权,Gurobi优化狗万app足彩,LLC # #这个例子中制定和解决以下简单的模型与PWL约束#:# # #最大化和c (j) * x (j) #话题#总和(i, j) * x (j) < = 0,因为我= 1,…,m #和y (j) < = 3 # y (j) = pwl (x (j)), j = 1,……n # x (j)免费,y (j) > = 0, j = 1,……,n # # pwl (x) = 0,如果x = 0 # = 1 + x | |,如果x ! = 0 # # # 1。pwl总和(x (j)) < = b是绑定x向量和支持稀疏的向量。#这里b = 3意味着最多两个x (j)非零,如果两个,然后x (j) < = 1 #和# 2。pwl (x)跳从1到0,从0到1,如果x从- 0到0 #然后积极0,所以我们需要三个点x = 0。x无限边界#两边,文章定义了两个点(1,2)和(0,1)# x扩展到无限。总体我们可以用5分(1、2),(0,1),#(0,0),(0,1)和(1、2)来定义y = pwl (x)图书馆(gurobi)图书馆(矩阵)n = 5 #一个x < = 0 < - rbind (c (0, 0, 0, 1, 1), c (0, 0, 1, 1, - 1), c (1, - 1, 0, 0, 1), c (1 0 1 0 1), c(1, 0, 0, 1, 1)) #和y (j) < = 3 y < - rbind (c(1, 1, 1, 1, - 1)) # < -初始化模型模型列表()#约束矩阵模型美元< - bdiag (A, y) #眼睛水平的系数向量模型美元rhs < - c(代表(0,n), 3) #目标函数(x系数任意选择)模型美元obj < - c(0.5, 0.8, 0.5, 0.1, 1,代表(0,n)) #这是一个最大化模型模型美元modelsense < -“max”#下界为x和y模型美元磅< - c(代表(负无穷,n),代表(0,n)) # PWL约束模型美元genconpwl < -列表()(k 1: n){模型美元genconpwl [[k]] < -列表()模型美元genconpwl [[k]]美元xvar < - k模型美元genconpwl [[k]]美元yvar < - n + k模型美元genconpwl [[k]]美元xpt材料< - c(0, 0, 0, 1)模型美元genconpwl [[k]]美元ypts < - c(2, 1, 0, 1, 2)} #解决模型和收集结果结果< - gurobi(模型)#显示解值x (k 1: n)打印(sprintf (“x (% d) = % g”, k,结果美元x [k]))打印(sprintf(“客观价值:% g”,结果美元objval) #腾出rm(模型、结果)