我有一个问题已被有效地简化为具有多个推销员的旅行推销员问题。我有一个从初始位置访问的城市列表,并且必须访问销售人员数量有限的所有城市。
我试图提出一种启发式方法,想知道是否有人可以伸出援手。例如,如果我有20个城市有2个销售人员,那么我考虑采用的方法是2步方法。首先,将20个城市随机分为10个城市,每个城市有2个推销员,然后我会发现每个城市的巡回演出似乎都是独立的,只有几次迭代。之后,我想交换城市或将城市分配给另一位推销员,然后找到旅行团。实际上,这将是TSP,然后是最小制造期问题。这样做的问题是,它太慢了,很难很好地邻里交换或分配城市。
任何人都可以就我可以如何改善上述情况提出建议吗?
编辑:
每个城市的地理位置都是已知的,推销员的起点和终点都在相同的地方。目标是最大程度地减少最大行驶时间,从而解决这种最小的制造跨度问题。因此,例如,如果salesman1花费10个小时,而salesman2花费20个小时,则最长行驶时间将是20个小时。
TSP是一个难题。多TSP可能更糟。我不确定您是否可以使用此类临时方法找到好的解决方案。您是否尝试过元启发式方法?我会先尝试使用交叉熵方法:将它用于您的问题应该不会太难。否则,请寻找通用算法,蚁群优化,模拟退火…
请参阅Boer等人的“交叉熵方法教程”。他们解释了如何在TSP上使用CE方法。对于您的问题的简单调整可能是为每个推销员定义一个不同的矩阵。
您可能想假设您只想找到推销员之间的最佳城市划分(并将每个推销员的最短行程委派给经典的TSP实施)。在这种情况下,在“交叉熵”设置中,您考虑了每个城市Xi出现在推销员A巡回中的概率:P(A中的Xi)= pi。然后在p =(p1,… pn)的空间上工作。(我不确定它是否会很好地工作,因为您将不得不解决许多TSP问题。)