Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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/5/ruby/24.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_Graph_Path_Graph Theory_Vertices - Fatal编程技术网

Algorithm 给定问题中的最小可能次数和

Algorithm 给定问题中的最小可能次数和,algorithm,graph,path,graph-theory,vertices,Algorithm,Graph,Path,Graph Theory,Vertices,考虑一个由五个顶点组成的图,其顶点标记为1到5。图中仅显示1到2、1到3、1到4和1到5之间的边。让从1到2、3、4和5的移动时间分别为5、5、1和1个单位。还假设如果从顶点a到b需要时间t,那么从b到a需要相同的时间。我们希望选择从顶点1到其他顶点的行走,然后返回到顶点1,依此类推,直到除顶点1之外的每个顶点-源只访问一次 让初始瞬间为t=0。让t=0的顶点2、3、4和5的访问时间为t2、t3、t4和t5。我们希望最小化t2、t3、t4和t5之和 找出给定时间的最小可能总和 我无法理解这个问题

考虑一个由五个顶点组成的图,其顶点标记为1到5。图中仅显示1到2、1到3、1到4和1到5之间的边。让从1到2、3、4和5的移动时间分别为5、5、1和1个单位。还假设如果从顶点a到b需要时间t,那么从b到a需要相同的时间。我们希望选择从顶点1到其他顶点的行走,然后返回到顶点1,依此类推,直到除顶点1之外的每个顶点-源只访问一次

让初始瞬间为t=0。让t=0的顶点2、3、4和5的访问时间为t2、t3、t4和t5。我们希望最小化t2、t3、t4和t5之和

找出给定时间的最小可能总和


我无法理解这个问题本身

这是我对这个问题的理解:

如果按该顺序访问节点2、3、4和5,则时间为:

t2 = 5 (going from 1 to 2),   
t3 = 15 (5 to get to 2, 5 to return from 2 back to 1, and 5 to go from 1 to 3),  
t4 = 21 (15 + 5 + 1),  
t5 = 23 (21 + 1 + 1).  

总数是64。您可以使用不同的顺序获得更好的时间,您的任务是找到最佳的最小和。

为了最小化访问的总时间,我们首先选择花费最小时间的路径,因为此时间会堆积在所有其他顶点上。回到1后,我们选择第二个最小时间的路径,每次回到1后重复这个过程

对于顶点v1、v2、v3和v4,让时间按排序顺序为a、b、c和d。然后在t=a时访问顶点v1。我们在t=2a时返回1。然后在t=2a+b时到达第二个顶点,在t=2a+2b时返回1。继续类似地,顶点v3在t=2a+2b+c处访问,而顶点v4在t=2a+2b+2c+d处访问。因此,时间之和的最小值为7a+5b+3c+d

因此,答案是32

so can we start the walk with vertex 5 =1+1=2  
vertex 4 = 1+1=2  
vertex 3=5+5=10  
vertex 2= 5  
total=2+2+10+5=19  
请注意,无论您访问节点的顺序如何,总数都不会改变,因此您无法将其最小化。您可能想向老师澄清这一点,但问题定义说明的是时间实例,而不是持续时间

可以把它看作是在时间t-1开始计时,对于t-1=0以上的路径:t-5顶点-5=1,t-4=3,t-2=9,t-3=19。总数是32。比64强得多,所以你走在正确的轨道上


Dijkstra's用于查找节点之间的最短路径,但在这里不适用。这个问题要容易得多。

您考虑过哪些方法?你被困在哪里了?这听起来像是Dijkstra的算法。请给出更详细的解释。最好,把你老师的问题贴出来。这是老师给出的完整问题。我自己无法理解这个问题。你能帮我应用Dijkstra算法吗