数据元素“cellTowers”已被设置,尽管在 .mod 和 .dat 文件之间仅设置一次

问题描述 投票:0回答:1

大家好,目前正在使用 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 文件,复制并粘贴完全相同的代码,但仍然遇到相同的错误。还要确保没有其他文件也使用相同的元素

cplex
1个回答
0
投票

自从

cellTowers 在 .dat 中定义

在.mod中

setof(int) cellTowers;

进入

setof(int) cellTowers=…;

© www.soinside.com 2019 - 2024. All rights reserved.