c++ - 如何在一个代码文件中使用 CPLEX Concert 解决多个数学模型?
问题描述
这可能是一个简单的问题,但我从来没有这样做过。我在 C++ 中有两个不同的数学模型代码,并在两个不同的代码文件中使用 CPLEX Concert 解决。基本上,这两个代码是两个子程序,在求解模型后,将所需的结果存储在两个 3 维向量中。这两个向量将用于为主要启发式算法制定初始可行的解决方案。我的问题是如何在一个代码文件中解决这两个模型以获取这两个向量并将它们用于下一步?
我最初的想法是当我定义模型时,它们可以像这样编号:对于第一个模型:
//building the model in CPLEX
IloEnv env1;
//Construct Model
IloModel mod1(env);
对于第二个模型:
//bilding the model in CPLEX
IloEnv env2;
//Construct Model
IloModel mod2(env);
解决方案
要在第二个模型中使用第一个模型的解决方案,您可以使用warmstart。
让我引用文档:
没有从多维变量数组开始创建 MIP 的方法。为了从变量的多维数组开始创建 MIP,您首先必须将所有这些变量复制到一个平面数组中。以下示例假定一个 m x n 维矩阵,其中 x[i][j] 的起始值位于 start[i][j] 中。
IloNumVarArray startVar(env);
IloNumArray startVal(env);
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j) {
startVar.add(x[i][j]);
startVal.add(start[i][j]);
}
cplex.addMIPStart(startVar, startVal);
startVal.end();
startVar.end();
推荐阅读
- python - 使用 Python Discord 进行验证
- java - 是否可以在不同于授权的标头上验证 keycloak 令牌?
- python - 如何过滤 ManyToMany 对象的父属性?
- python - 当我尝试运行 pip 命令时出现“错误的文件描述符”错误
- python - 使用 word2vec 构建推荐系统
- c# - 如何在 Page_Load 中根据条件包含 Javascript 文件
- apache-kafka - Kafka经纪人是否有可能丢失消费者组偏移量?
- javascript - AngularJS + 样式不适用于字段
- php - Etsy API 错误 - “链接产品之间的 sku 必须一致”
- tensorflow - 创建卷积神经网络时出现奇怪的错误