Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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/8/meteor/3.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 给定图G中所有可能配置的集合是什么意思_Algorithm_Graph Theory - Fatal编程技术网

Algorithm 给定图G中所有可能配置的集合是什么意思

Algorithm 给定图G中所有可能配置的集合是什么意思,algorithm,graph-theory,Algorithm,Graph Theory,我试图理解一个已解决的练习2,第3章-tardos算法设计 但我不知道答案 简言之,问题是 我们有两个机器人,分别位于节点a和节点b。机器人需要分别移动到节点c和d。问题是如果其中一个节点彼此靠近。“让我们假设距离为r我没有这本书,但从他们的回答来看,他们似乎在每一步都移动一个或另一个机器人。假设H由所有可能的节点对组成,它们之间的距离大于r。如果可以通过移动一个或另一个机器人到达H中的节点,则H中的节点是相邻的 你提出的算法中没有足够的细节来说明这一点。我没有这本书,但从他们的回答来看,他们似

我试图理解一个已解决的练习2,第3章-tardos算法设计

但我不知道答案

简言之,问题是


我们有两个机器人,分别位于节点a和节点b。机器人需要分别移动到节点c和d。问题是如果其中一个节点彼此靠近。“让我们假设距离为r我没有这本书,但从他们的回答来看,他们似乎在每一步都移动一个或另一个机器人。假设H由所有可能的节点对组成,它们之间的距离大于r。如果可以通过移动一个或另一个机器人到达H中的节点,则H中的节点是相邻的


你提出的算法中没有足够的细节来说明这一点。

我没有这本书,但从他们的回答来看,他们似乎在每一步都移动一个机器人或另一个机器人。假设H由所有可能的节点对组成,它们之间的距离大于r。如果m可以到达H中的节点,则H中的节点是相邻的一个机器人或另一个机器人

您提出的算法中没有足够的细节来说明这一点

不管怎样,我在想,我们能不能只执行DFS/BFS来找到从节点a到c,从节点b到节点d的路径。然后我们修改DFS/BFS算法,这样我们就可以在每次移动时不断检查机器人是否彼此靠近

我认为这是不可能的。你的建议是计算完整路径,然后检查给定路径是否可行。如果不行,你将如何处理这种情况,以便在重新运行算法时,它不会找到病理路径?你可以将其从一组可能的选项中排除,但我不认为这是可行的这是一个好办法

假设一条长度为n的路径,现在假设病理存在于给定路径的第一步。现在假设每次重新计算路径时都会发生这种情况。您必须多次重新计算路径,因为算法本身不知道获得正确答案所需的限制

我认为这是关键点:算法本身不考虑问题的限制,这是主要的问题,因为没有简单的方法来纠正给定的(错误的)解决方案。
他的意思是:H的节点集是机器人所有可能配置的集合;也就是说,H由G中所有可能的节点对组成

他们的意思是,H中的每个节点代表两个机器人的每个可能位置,这与“G中所有可能的节点对”相同

例如:图g有节点A、B、C、D、E。H将有节点AB、AC、AD、AE、BC、BD、BE、CD、CE、DE(考虑AB=BA进行进一步分析)

将这两个机器人命名为r1和r2,它们从节点A和B开始(问题中给出了信息),因此路径将从图H中的节点AB开始。接下来,可能性是:

  • r1从一个节点移动到一个邻居节点
  • r2从B移动到邻居节点
(…在r1和r2到达目的地时,对每一步重复一次)

这两个机器人在同一时间的所有这些可能位置就是答案所说的配置

他是什么意思:如果H的两个节点表示一个时间表中可以连续的配置,那么它们通过一条边连接;也就是说,(u,v)和(u′,v′)将通过H中的一条边连接,如果u,u′或v,v′中的一条相等,而另一条对应于G中的一条边

让我们从他们在这里陈述的内容来看看可能性:

(u,v)和(u′,v′)将由H中的一条边连接,如果其中一对u,u′或v,v′相等,而另一对对应于G中的一条边

可能性是:

  • (u,v)和(u,w)/(v,w)在E中是和边。在这种情况下,r2从其当前节点移动到一个邻居
  • (u,v)和(w,v)/(u,w)在E中是和边。在这种情况下,r1从其当前节点移动到相邻节点之一
这个解决方案一开始对我来说也有点棘手。但在读了几遍并列举了一些例子之后,当我最终碰到你的问题时,你将问题的每个部分分开的方式帮助我完全理解了解决方案的每个部分。因此,非常感谢你提出这个问题

希望现在对任何遇到这个问题的人来说都更清楚

不管怎样,我在想,我们能不能只执行DFS/BFS来找到从节点a到c,从节点b到节点d的路径。然后我们修改DFS/BFS算法,这样我们就可以在每次移动时不断检查机器人是否彼此靠近

我认为这是不可能的。你的建议是计算完整路径,然后检查给定路径是否可行。如果不行,你将如何处理这种情况,以便在重新运行算法时,它不会找到病理路径?你可以将其从一组可能的选项中排除,但我不认为这是可行的这是一个好办法

假设一条长度为n的路径,现在假设病理存在于给定路径的第一步。现在假设每次重新计算路径时都会发生这种情况。您必须多次重新计算路径,因为算法本身不知道获得正确答案所需的限制

我认为这是关键点:算法本身不考虑问题的限制,这是主要的问题,因为没有简单的方法来纠正给定的(错误的)解决方案。
他的意思是:H的节点集是机器人所有可能配置的集合;也就是说,H由G中所有可能的节点对组成

他们的意思是,H中的每个节点代表两个机器人的每个可能位置,这与“G中所有可能的节点对”相同

例如:图g h