我正在做一个模型,我需要在很大程度上调整。基本上我需要扩展我现在的V集,它是一组城市,变成一组城市和时间。例如,V中的元素Kir必须从简单的“Kir”扩展到“Kir1”、“Kir2”、…、“Kir72”,以表示城市Kir以及数字指定的时间范围。你知道吗
我已经开始将其定义为(在.mod文件中): 设置V; 在V内设置K
在.dat文件中,我很不确定如何写这个。如果没有简单的方法将“string”Kir包含在集合K中,我想我会写:
set V := 1 2 3 4 5;
set K := 1 2;
例如。我的问题是我该怎么做?我能把这个城市的名字包括进来吗?特别地,我定义了一个数据透视表,它显示了原始V集中城市之间的距离。原始集合V中城市Kir和Sto之间的距离必须与扩展集合中城市Kir1和Sto1之间的距离相同。Kir1和Sto72之间的距离也必须相同。原始距离必须是相同的,也就是说,独立于时间框架。有没有一种简单的方法可以在AMPL中实现这一点?你知道吗
编辑:添加了标签Python。我想这也可以在Python中实现。我用以下方法定义了新的集合:
text = 'Kir'
string2 = [i for i in range(1,49)]
for i in string2:
print (text+str(i))
例如。不过,我对距离矩阵有点纠结
虽然可以通过连接城市名称和时间来构建一个集合,但我认为最好使用二维集合,第一个索引表示城市,第二个索引表示时间:
集合
K
将包含对('Kir', 1)
、('Kir', 2)
、('Kir', 3)
。你知道吗相关问题 更多 >
编程相关推荐