几周前,我遇到了一个问题,我实际上已经解决了旅行商问题的变化。曲折是:
有多个销售人员。 城市列表动态增加(如实时输入) 每个城市在有限的时间内只能获得充分的利润,因为在一定时间后,城市将获得较少的回报 并且有一个总时间限制
显然,这个问题是NP。我想知道是否有任何好的TSP近似值可以修改以适应这个问题?
答案 0 :(得分:2)
您可以使用某些操作研究软件来解决您的问题,例如: Coin-OR,原因是通常更容易将新的约束/目标添加到OR约束/线性/整数/等编程解算器而不是例如一个用C或Fortran或其他任何东西编写的专用TSP求解器(并且你不太可能找到一些C / Fortran代码来解决你的精确问题)。 Here is a tutorial on how to code a Tabu search to solve the basic TSP using Coin-OR。另外,here is an article on modeling the time-dependent TSP(文章使用分支定界来解决可能不适合你的问题的问题,因为它不能扩展到超过一百个城市左右,但模型应该延续到像Coin-OR这样的近似求解器。
要考虑拥有多个销售人员,您可能需要查看图表分区,以便在不同的销售人员之间划分城市,例如here is a fast online graph partitioning algorithm。优点是,一旦您对图表进行了分区,就可以减少甚至消除不同销售人员之间的同步。