manbet体育手机客户端


敏感度。R


# #一个简单的敏感性分析示例,从文狗万app足彩件中读取MIP模型#并解决它。然后将每个二进制变量#设置为1-X,其中X为其在最优解中的值,#报告对目标函数值的影响。args <- commandArgs(trailingOnly = TRUE) if (length(args) < 1) {stop('Usage: Rscript灵敏度。R filename\n')} # Read model cat('Reading model',args[1],'…')model <- gurobi_read(args[1]) cat('…numvars <- ncol(model . done\n') #检测一组非连续变量A) intvars <- which(模型vtype != 'C') numintvars <- length(intvars) if (numintvars < 1) {stop('所有模型变量都是连续的,没有什么可做的\n')} #优化结果<- gurobi(model) #捕获解决方案信息if (result . result)= 'OPTIMAL') {cat('优化结束与状态',结果status, ' n') stop(' stop now\n')} origx <- result . txt . txt . txt . txt . txtX origobjval <- result . XObjval #创建lb和ub,如果它们不存在,并设置它们的默认值,如果(!('lb' %in% names(model))Lb <- numeric(numvars)} if (!('ub' %in% names(model))){#这一行是不需要的,因为我们必须有ub定义的模型ub <- Inf + numeric(numvars)} #禁止输出后续解决参数<- list()参数在模型中迭代未固定的二进制变量(j in 1:numvars)[j] .中文信息vtype[j] != 'I') next if (model . vtype[j]vtype[j] == 'I') {if ('I', 'I')[j] != 0.0} else {if (model . js . js . js . js . js . js . js . js . js . jsLb [j] > 0.0) next if (model .ub[j] < 1.0) next} #更新所有变量模型的MIP启动start <- origx #设置变量为1-X,其中X为其在最优解中的值if (origx[j] < 0.5){模型[j] <- 1模型[j] [j] <- 1} else[j] <- 0模型ub[j] <- 0} #优化结果<- gurobi(model, params) #显示结果varnames <- " if ('varnames' %in% names(model)) {varnames <- model .var [j]} else {Varnames <- sprintf('%s%d',模型Vtype [j], j)} gap <- 0 if (result . (if (status != 'OPTIMAL') {gap <- Inf} else {gap <- result . info}cat('Objective sensitivity for variable', varnames, 'is', gap, '\n') #恢复原来的边界模型[j] <- 0模型ub[j] <- 1} #清除空间rm(model, params, result, origx)