Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Algorithm 组合向量加法最小化问题_Algorithm_Complexity Theory_Mathematical Optimization_Job Scheduling - Fatal编程技术网

Algorithm 组合向量加法最小化问题

Algorithm 组合向量加法最小化问题,algorithm,complexity-theory,mathematical-optimization,job-scheduling,Algorithm,Complexity Theory,Mathematical Optimization,Job Scheduling,我正在研究一个问题,感觉它可能类似于数学规划中的一个现有问题,但我很难找到任何这样的问题 问题是这样的:我们有n组d维向量,每一组向量正好包含d+1个向量。在每个集合中,所有向量都具有相同的长度(此外,集合中任意两个向量之间的角度对于任何集合都是相同的,但我不确定这是否相关)。然后我们需要从每个集合中选择一个向量,并计算这些向量的和。我们的目标是做出选择,使向量之和最小化 感觉这个问题有点像最短向量问题,或者是作业调度的一种变体,在一台机器上调度一个作业会影响所有机器,或者是一个分区问题 这个问

我正在研究一个问题,感觉它可能类似于数学规划中的一个现有问题,但我很难找到任何这样的问题

问题是这样的:我们有n组d维向量,每一组向量正好包含d+1个向量。在每个集合中,所有向量都具有相同的长度(此外,集合中任意两个向量之间的角度对于任何集合都是相同的,但我不确定这是否相关)。然后我们需要从每个集合中选择一个向量,并计算这些向量的和。我们的目标是做出选择,使向量之和最小化

感觉这个问题有点像最短向量问题,或者是作业调度的一种变体,在一台机器上调度一个作业会影响所有机器,或者是一个分区问题

这个问题有什么意义吗?具体来说,我正在寻找解决这个问题的研究,因为目前我的最佳选择是使用ILP,但我觉得一定有更聪明的方法可以做到。

我认为这是一个MIQP(混合整数二次规划)或MISOCP(混合整数二阶锥)问题:

那么问题可以表述为:

 min ||w||
 sum(i, x(i,j)) = 1   for all j
 w = sum((i,j), x(i,j)*v(i,j))
如果需要,您可以替换掉
w
。事实上,我没有使用角度限制(这是对数据的限制,而不是对模型的决策变量的限制)。选择
x
变量,以便我们从每组中恰好选择一个向量

最小化2-范数可以通过最小化元素的平方和(即最小化范数的平方)来代替


假设2-范数,这是一个MISOCP问题或凸MIQP问题,有很多解算器可用。对于1-范数和无穷范数,我们可以建立一个线性MIP问题。MIP解算器广泛可用。

每个向量中项目的范围和类型是什么?向量由实数组成,没有给出有限的范围。但如果限制条目的范围或类型允许我有兴趣知道一个解决方案,你确定每个集合都有d+1向量吗?最后但并非最不重要的是:我猜当你说求和必须最小化时,你的意思是得到的向量的欧几里德范数(分量平方和的平方根)必须最小化,对吗?@WalterTross观察从四面体中心到面中心的向量。这就得到了3D中的4个向量,任意两个向量之间的角度都是完全相同的。另外,ILP可能意味着这是一种在实践中解决各种NP完全问题的标准方法。感谢您的回复。我不熟悉MISOCP,与MIQP问题相比,以这种方式建模问题有什么好处?在大多数情况下,QP会在适当时自动转换为SOCP。因此,在建模级别,您可以只提供(MI)QP。SOCP是一类更一般的问题,与使用更传统的QP方法相比,QP作为SOCP可以更有效地解决。我刚才在回答中提到了MISOCP,以确保将它们作为解决问题的合适技术。
 min ||w||
 sum(i, x(i,j)) = 1   for all j
 w = sum((i,j), x(i,j)*v(i,j))