Lingo的29号错误Invalid number of initialization values in a DATA/ INIT/CALC statement
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
在您的Lindo模型中,出现了第29号错误"Invalid number of initialization values in a DATA/INIT/CALC statement"。这个错误通常是因为在DATA或INIT语句中为集合元素分配的值数量不正确。
根据您提供的数据部分(DATA),看起来您试图初始化一个名为
link的二元集合并为其成员赋值。然而,在数据段中,每个行似乎代表了一个(p, t)对的值,但每一行中的数值个数并不一致,有些行有四个值,而其他行只有三个值。为了修正这个问题,我们需要确保对于每一对
(p, t),都有相同数量的值与之对应。根据给定的数据,我推测您可能想要为每个(p, t)对分配两个值:成本c和流量x。因此,我们应当将数据重新组织成这样:c(1, 1), c(1, 2), c(1, 3), c(1, 4), x(1, 1), x(1, 2), x(1, 3), x(1, 4), ... c(5, 4), x(5, 4)下面是修改后的模型代码:
model: Sets p /1..5/; t /1..4/; link(p, t) : c, x; EndSets Data ! Reorganized data for consistency c(1, 1) = 10, c(1, 2) = 2, c(1, 3) = 3, c(1, 4) = 15, c(2, 1) = 5, c(2, 2) = 10, c(2, 3) = 15, c(2, 4) = 14, c(3, 1) = 15, c(3, 2) = 5, c(3, 3) = 13, c(3, 4) = 15, c(4, 1) = 20, c(4, 2) = 7, c(4, 3) = 6, c(4, 4) = 2, c(5, 1) = 9, c(5, 2) = 4, c(5, 3) = 15, c(5, 4) = 8, x(1, 1) = 5, x(1, 2) = 10, x(1, 3) = 15, x(1, 4) = 2, x(2, 1) = 15, x(2, 2) = 5, x(2, 3) = 14, x(2, 4) = 13, x(3, 1) = 2, x(3, 2) = 7, x(3, 3) = 6, x(3, 4) = 15, x(4, 1) = 5, x(4, 2) = 10, x(4, 3) = 15, x(4, 4) = 2, x(5, 1) = 15, x(5, 2) = 4, x(5, 3) = 15, x(5, 4) = 8; EndData请注意,这里假设
c是成本,x是流量,并且我将原始数据按照(p, t)对进行了重组。如果你的数据含义不同,你需要相应地调整这些变量名。此外,确保在实际应用中,所有的(p, t)对都应有对应的c和x值,否则还需要进一步检查并补充缺失的值。解决 无用评论 打赏 举报 编辑记录
