Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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 mosek中带索引的变量和带索引的和_Python_Mosek - Fatal编程技术网

Python mosek中带索引的变量和带索引的和

Python mosek中带索引的变量和带索引的和,python,mosek,Python,Mosek,我必须找到整数规划问题的解决方案: 我正在使用Mosek的Fusion API Python。现在约束很容易施加,我更担心的是实际目标。我的问题是:我如何告诉mosek我想用is、js或ks求和,并定义它们是什么,它们的边界是什么,等等 这是服务器上下文中自缓存问题的简化版本。这里我指的是服务器,j指的是要缓存的对象,但在这个版本中只有一个对象,所以我想这并不重要。k也表示服务器,例如dik表示从服务器i到服务器k的距离 但无论我想实现什么,我都不知道如何写下这个目标。现在我有这样的东西: 来自

我必须找到整数规划问题的解决方案:

我正在使用Mosek的Fusion API Python。现在约束很容易施加,我更担心的是实际目标。我的问题是:我如何告诉mosek我想用is、js或ks求和,并定义它们是什么,它们的边界是什么,等等

这是服务器上下文中自缓存问题的简化版本。这里我指的是服务器,j指的是要缓存的对象,但在这个版本中只有一个对象,所以我想这并不重要。k也表示服务器,例如dik表示从服务器i到服务器k的距离

但无论我想实现什么,我都不知道如何写下这个目标。现在我有这样的东西:

来自mosek.fusion导入域、模型、表达式、ObjectiveSense alpha=4 alpha对于所有i和j都是相同的 对于所有i和k,需求=1 w是相同的 n=6台服务器的数量 距离矩阵=[…],[…],…] 将Modello1作为M: x=M.variablex,n,Domain.integrationdomain.inRange0,1 y=M.variabley,n,Domain.integrationdomain.inRange0,1 α乘以x=Expr.mulalpha,x 需求时间距离时间y=Expr.muldemand,距离矩阵y M.objectiveobj,ObjectiveSense,最小化, M.solve 打印X.level 印刷水准仪 当然,需求乘以距离乘以y是错误的,因为我想得到矩阵中I到k的距离。上面的x很好,因为x是:{x0,x1,x2,x3,x4,x5,x6},但是y必须是{y11,y12,y13,y14,y15,y16,y21,y22,…,y66},所以我猜我定义错了


那么,例如,我如何定义I,k在{1,2,3,4,5,6}中,并通过例如k创建一个表达式和?在目标开始时,我该如何定义这两个总和呢?

我不知道这是否回答了问题,但如果你回答了,比如说

x = M.variable("x", n, Domain.integral(Domain.inRange(0, 1)))
然后求和i x_i,用

Expr.sum(x)
Expr.sum( Expr.mulElm(alpha,x) )
类似地,如果现在alpha是长度为n的数字数组,则使用

Expr.sum(x)
Expr.sum( Expr.mulElm(alpha,x) )
甚至

Expr.dot( alpha, x )

等等。您从未明确指定求和索引,而是对Expr.sum和类似方法中出现的所有项进行求和。

如果您对所有i、j、k求和,那么您为什么要定义边界,至少从符号来看是这样的?Expr.sum应该这样做。如果您确实想在子集上求和,请使用“拾取”或“范围”。你可能希望y是二维的。如果你需要一个更详细的答案,请告诉我。是的,但是我该如何以及在哪里定义I、j和ks呢?