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/2/google-app-engine/4.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_Hadoop_Statistics_Analytics - Fatal编程技术网

Java 旅行推销员/车辆路线用例的最佳可能实现

Java 旅行推销员/车辆路线用例的最佳可能实现,java,algorithm,hadoop,statistics,analytics,Java,Algorithm,Hadoop,Statistics,Analytics,我最近在采访中遇到一个案例,要求解决的用例属于旅行商问题/车辆路径问题。我能够告诉他们实际的问题是什么,以及这个问题涉及到什么数学。我确实解释了如何使用Hadoop的MapReduce范例部分解决下面提到的用例。(解释了多个map reduce作业将如何解决该问题)使用Jimmy Lin和Chris Dyer在本书《MapReduce数据密集型文本处理》中提到的图形算法 出于好奇,我在google上做了一些研究,我可以看到很多关于这个问题的实现和研究都是以不同的方式进行的。 我问的问题有城市坐标

我最近在采访中遇到一个案例,要求解决的用例属于旅行商问题/车辆路径问题。我能够告诉他们实际的问题是什么,以及这个问题涉及到什么数学。我确实解释了如何使用Hadoop的MapReduce范例部分解决下面提到的用例。(解释了多个map reduce作业将如何解决该问题)使用Jimmy Lin和Chris Dyer在本书《MapReduce数据密集型文本处理》中提到的图形算法

出于好奇,我在google上做了一些研究,我可以看到很多关于这个问题的实现和研究都是以不同的方式进行的。 我问的问题有城市坐标(x,y)格式,我在谷歌上看到的许多解决方案考虑了一些其他因素,如单位距离,负/正测量单位等等,所以总之,我做了研究和阅读,我变得更加困惑。 我在这里的问题是针对下面的用例,什么是可能的解决方案,什么将是其中最好的解决方案。如果一些有经验的人能够对此加以说明,这将有助于消除我的困惑,更好地理解解决方案。或者如果有人能够指导我正确的方向(这样我就不会在探索整个解决方案海洋时更加困惑)

访谈中询问的用例:


一家公司正试图找到最好的解决方案,为其拥有12名员工的300名客户群提供服务。 他们需要一个技术解决方案,该解决方案告诉他们,随着业务的增长和其他变化(如客户位置的变化、新位置的增加等),他们将如何满足客户需求

这个问题基本上是旅行商问题(TSP)或车辆路径问题(VSP)的一种形式

起始坐标为(0,0),城市坐标示例如下所述。 以下是预期在文本文件中作为输入提供工作解决方案的坐标:

X coordinate    Y Coordinate 
420 278 
421 40 
29  178 
350 47 
298 201 
417 186 
378 134 
447 239 
42  114 
45  199 
362 195 
381 243 
429 1 
338 209 
176 9 
364 26 
326 182 
500 129 
190 51 
489 103 
368 142 
132 260 
305 200 
446 137 
375 154 
440 190 
9   118 
437 32 
383 266 
  • 处理这个NP难问题的正确方法是什么?如果不正确 不同方法的优缺点

  • 因为它更多的是基于分析的问题,所以可以进行某种可视化吗 这样做是为了解决这个问题。像一些图表或使用R/分析工具

  • 如果您需要更多详细信息,或者您可以建议我在哪里阅读和理解更多信息,请告诉我


    提前感谢

    我不是专家,但你不能计算原点和所有其他点之间的距离并找到最近的点,然后对该点重复该过程,直到你覆盖了所有点吗?

    解决NP问题没有正确的方法。因为复杂性是指数的,所以需要很长的时间除了琐碎的例子以外,任何东西都可以用e表示

    但是,有一些近似值可以非常接近真实答案,并且对于您的应用程序来说可能已经足够好了(例如,它不是最短路径,但在它的某个相对范围内)


    检查我们的。他们甚至有一些例子。

    如果我在面试中问这个问题,我会提出类似于本文中所述的内容,看起来最适合您的任务公式。在本文中,您将找到优化的近似方法来解决多个销售人员的问题,所有销售人员从一个点开始。它可以是如果我们通过解决每个旅行推销员子问题(聚类将主要问题划分为经典问题),从特定推销员的家庭/家庭办公室开始,就可以知道员工离开哪里


    如果我们有位置图作为输入,而不仅仅是坐标-我们可以用图聚类算法代替k-means,就像Dmitry提到的,这是一个多旅行商问题的例子。 作为NP难问题,面试官自然希望你提出一个启发式优化算法

    我认为这种情况的关键是他们正在寻找一种能够实时更新以适应目的地数量和位置变化的算法。蚁群优化(粒子群优化的一种形式)实际上最初是针对旅行推销员问题制定的,见论文和维基百科:

    “M.Dorigo,V.Maniezzo,et A.Colorni,蚂蚁系统:合作代理群体的优化,IEEE系统、人和控制论交易——第B部分,第26卷,numéro 1,第29-41页,1996年。”

    从多旅行推销员问题开始,这一点就得到了推广。例如,请参阅本文(开源),了解一些很好的工作:

    在面试的情况下,我会详细说明它的优点:1.是一个有效的启发式解决方案;2.能够实时更新图表中的两个变化;3.对于额外的分数,我提到,一旦在计算机上获得了一个合理有效的解决方案,司机自己就可以以稍微概率的方式分配路线,suB可以执行由真实数据驱动的后续优化

    缺点是,与Dmitry建议的先减少搜索空间的问题相比,可能需要相当大的处理能力。其次,如果他们想让你实际制定一个算法,那么在面试中这可能是相当具有挑战性的


    有趣的问题:)

    我不是你要找的专家,因此我不敢将这个过于简单的评论作为答案。基本上,你可以描述坐标之间的路径,然后找到哈密顿循环。许多常用的库可以计算这些循环,例如(我不知道hadoop的情况).指java中的解决方案。希望能有所帮助。员工人数可能暗示他们希望讨论多个营业场所。
    尽可能最好
    以及
    最佳
    需要一个目标