arrays - 我无法在 OPL 脚本中达到数组的先前迭代值
问题描述
我在 CPlex 中有一个 MIP 模型。
在每次迭代中,我使用不同的 .dat 文件来解决问题。
我将决策变量解决方案值保存在一个多维数组中,例如“Array[iteration][i]”,“i”是决策变量的索引,迭代代表不同的实例(不同的 .dat 文件)。
当“iteration = 2”时,我想达到“Array[1][i]”,它显示“Array[1][i]= [a IloNumVar]”。
main{ for(var datFile in thisOplModel.datFiles) { iteration+=1; var opl = new IloOplModel(def,cplex); var data= new IloOplDataSource(datFile); opl.addDataSource(data); opl.generate(); tempX[iteration]= new Array(); tempY[iteration]= new Array(); for(var i =1; i_node<=node; i ++){ tempX[iteration][i]= new Array(); tempY[iteration][i]= new Array(); if (iteration==1){ cplex.solve() tempX[iteration][i]= opl.X[i]; //When I want to print temp[1][i] values at iteration is equal to 1, it print the values. writeln("tempX: ", tempX[1][i]); } } if (iteration==2){ for(var i_node=1; i_node<=node; i_node++){ //When I am at iteration 2, i want to reach previous iteration values but it brings "[a IloNumVar]" writeln("tempX: ", tempX[1][i]); } } opl.end(); }
}
解决方案
代替
tempX[iteration][i]= opl.X[i];
我会尝试
tempX[iteration][i]= opl.X[i].solutionValue;
推荐阅读
- python - 如何在python中检查文件夹中的新文件
- python - 用于将字符串匹配到查询列表的正则表达式
- rust - 是所有权的“移动”还是价值的“复制”?
- javascript - 在按钮单击事件上添加数据时如何限制 textarea maxlength?
- php - 获取自定义计算作为 WooCommerce 管理员批量订单操作
- javascript - .trigger('change') 有时在更改选择值中不起作用
- wordpress - Woocommerce 如何编辑用于低库存通知的电子邮件模板
- apache-spark - Spark Checkpointing Non-Streaming - 检查点文件可用于后续作业运行或驱动程序
- java - 如何在 WebFlux 服务中访问 WebSession?
- python - 相对导入问题