大家好,目前正在使用 CPLEX 开发 LP 模态
我有一个错误,表明数据元素已被设置。在搜索错误后,我发现当数据存在于某处且已经设置时,就会发生这种情况,但在我的情况下,我没有看到它,因此需要帮助调试它。下面将附上两个代码来显示我的.mod和.dat文件
.dat 文件
cellTowers = {0, 1, 2, 3, 4, 5}; // List of possible tower locations
Regions = {0, 1, 2, 3, 4, 5, 6, 7, 8}; // List of regions to cover
Population = [523, 690, 420, 1010, 1200, 850, 400, 1008, 950];
Coverage = [
[1, 1, 0, 0, 0, 1, 0, 0, 0], // Tower 0 coverage
[1, 0, 0, 0, 0, 0, 0, 1, 1], // Tower 1 coverage
[0, 0, 1, 1, 1, 0, 1, 0, 0], // Tower 2 coverage
[0, 0, 1, 0, 0, 1, 1, 0, 0], // Tower 3 coverage
[1, 0, 1, 0, 0, 0, 1, 1, 1], // Tower 4 coverage
[0, 0, 0, 1, 1, 0, 0, 0, 1], // Tower 5 coverage
];
Cost = [4.2, 6.1, 5.2, 5.5, 4.8, 9.2];
// Total budget in millions
Budget = 20;
.mod 文件
setof(int) cellTowers;
setof(int) Regions;
int Population[Regions];
int Coverage[cellTowers][Regions];
int Cost[cellTowers];
int Budget;
// Decision Variables
dvar boolean x[cellTowers]; // Binary variable: 1 if a tower is built, 0 otherwise
// Objective Function (to maximize coverage of all towers)
maximize sum(t in cellTowers, r in Regions) Population[r] * Coverage[t][r] * x[t];
// Constraints
subject to {
// Budget Constraint
sum(t in cellTowers) Cost[t] * x[t] <= Budget;
// Optional: If specific constraints are needed, like mandatory coverage for certain regions
}
我尝试删除所有内容并使用新的 .mod 和 .dat 文件,复制并粘贴完全相同的代码,但仍然遇到相同的错误。还要确保没有其他文件也使用相同的元素
自从
cellTowers 在 .dat 中定义
在.mod中
转
setof(int) cellTowers;
进入
setof(int) cellTowers=…;