Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AMPL:数据集合和规范中的一个大集合_Python_Ampl_Neos Server - Fatal编程技术网

Python AMPL:数据集合和规范中的一个大集合

Python AMPL:数据集合和规范中的一个大集合,python,ampl,neos-server,Python,Ampl,Neos Server,我现在正在做一个模型,我需要在很大程度上进行调整。基本上,我需要扩展我当前的集合V,它是一组城市,成为一组城市和时间。例如,V中的元素Kir必须从简单的“Kir”扩展到“Kir1”、“Kir2”、“Kir72”,以表示城市Kir以及数字指定的时间范围 我已经开始将其定义为(在.mod文件中): 第五组; 将K设置为V 在.dat文件中,我很不确定如何写这个。如果没有简单的方法将“string”Kir包含在集合K中,我想我会写: set V := 1 2 3 4 5; set K := 1 2;

我现在正在做一个模型,我需要在很大程度上进行调整。基本上,我需要扩展我当前的集合V,它是一组城市,成为一组城市和时间。例如,V中的元素Kir必须从简单的“Kir”扩展到“Kir1”、“Kir2”、“Kir72”,以表示城市Kir以及数字指定的时间范围

我已经开始将其定义为(在.mod文件中): 第五组; 将K设置为V

在.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))

比如说。虽然可以通过连接城市名称和时间来构建一个集合,但我认为最好使用二维集合,第一个索引表示城市,第二个索引表示城市:

set K dimen 2;

data;

set K :=
Kir 1
Kir 2
Kir 3;

集合
K
将包含成对的
('Kir',1)
('Kir',2)
('Kir',3)
,谢谢!我不知道有这种可能性!显然比使用另一个程序Python指定集合更方便!