Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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/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
Java 使用自动真空吸尘器清洁地板上某些斑点的算法?_Java_Algorithm_Graph - Fatal编程技术网

Java 使用自动真空吸尘器清洁地板上某些斑点的算法?

Java 使用自动真空吸尘器清洁地板上某些斑点的算法?,java,algorithm,graph,Java,Algorithm,Graph,请随意重命名问题 问题是: 我在地板上有一定数量的自动吸尘器,上面有很多污点。为了以最有效的方式清洁地板,将吸尘器分配到脏点的最佳方式是什么 详情: 楼层由非加权图表示,图上随机放置n/k 一个脏点最多只能分配一台真空吸尘器 忽略两台真空吸尘器可能相互碰撞的可能性 清理污点的时间不相关。只是他们之间的距离 请记住,k可能大于n 这是什么“类型”的问题 您将如何为其实施解决方案 我考虑计算所有可能的对之间的距离('n'*'k'),按升序排序,并匹配真空吸尘器和脏点,确保不将两个吸尘器送到同一个

请随意重命名问题

问题是:

我在地板上有一定数量的自动吸尘器,上面有很多污点。为了以最有效的方式清洁地板,将吸尘器分配到脏点的最佳方式是什么

详情:

  • 楼层由非加权图表示,图上随机放置n/k
  • 一个脏点最多只能分配一台真空吸尘器
  • 忽略两台真空吸尘器可能相互碰撞的可能性
  • 清理污点的时间不相关。只是他们之间的距离
  • 请记住,k可能大于n
这是什么“类型”的问题

您将如何为其实施解决方案

我考虑计算所有可能的对之间的距离('n'*'k'),按升序排序,并匹配真空吸尘器和脏点,确保不将两个吸尘器送到同一个点。这可能效率不高,而且可能无法始终找到最佳解决方案

谢谢

这对我来说似乎是个问题。但我相信有更快的方法可以使结果接近最佳解决方案


希望这能给你一些开始搜索的东西。

这个问题在文献中被称为多旅行推销员问题(MTSP)


是一个很难解决的问题,事实上,只能为少数城市找到蛮力解决方案(定义“高效”。也就是说,你的适应度函数是什么?例如:所有清洁工的最小总旅行距离是吗?是的,可以考虑清洁工的旅行距离来计算性能(他们都有相同的速度)。
地板必须干净,任务结束了。
。正如你所说的——所有清洁工的最小总旅行距离——应该是对我要找的东西的正确和更正式的描述。我希望它不像那样,这个问题很难解决!)如果我们考虑‘n’=1个干净的和‘K’的点来清洁你可能是正确的,但是因为我也可以有‘n’>K’,这里的东西看起来很不一样。我仍然在试图了解是否有“多重推销员”使问题变得更难或更容易…谢谢,我认为这不是TSP,但可能是相关的,因为你有K’小镇’将被n’sAL访问。因此,我们可以将其视为n个TSP(可能并行进行)。这是一种追求的途径:假设对于任何给定的清洁剂,其最佳路线将仅包括最靠近它的点,并且必然排除靠近另一清洁剂的点(除非有人能找到反例)因此,我们可以将较大的图形划分为n个较小的图形。简单的反例“仅包括最靠近它的点”:n=3个清洁剂,位于x轴上,x=5,10,15;k=12个点,x=1..4,6..9,11..14。