Algorithm 旅行推销员将折旧物品运送到不同的市场
解决以下问题时,什么是好的启发方法 Quality Blimps Inc.正寻求将其销售扩大到其他城市 (N) ,所以他们雇你当推销员飞往其他城市销售 小飞艇。乘坐飞艇旅行可能会很贵,所以你需要 确定每次旅行要带多少只小飞艇以及什么时候 返回总部获取更多信息。高质量的飞艇有无限的空间 小飞艇的供应 在你访问的每个城市,你只能卖出一艘飞艇,但是 你不需要访问每一个城市,因为有些城市的旅行费用很高 成本。每个城市都有一个飞艇销售的初始价格,但这个 随着更多的飞艇销售(以及 新奇感逐渐消失)。找到一条利润最大化的好路线 这一挑战类似于标准的旅行推销员问题,但有一些额外的曲折:推销员需要跟踪自己的旅行成本和飞艇的成本。每个城市都有不同的价格,这些价格都会随着他的旅程而下降。什么是快速算法(即n logn)来实现利润最大化Algorithm 旅行推销员将折旧物品运送到不同的市场,algorithm,estimation,traveling-salesman,Algorithm,Estimation,Traveling Salesman,解决以下问题时,什么是好的启发方法 Quality Blimps Inc.正寻求将其销售扩大到其他城市 (N) ,所以他们雇你当推销员飞往其他城市销售 小飞艇。乘坐飞艇旅行可能会很贵,所以你需要 确定每次旅行要带多少只小飞艇以及什么时候 返回总部获取更多信息。高质量的飞艇有无限的空间 小飞艇的供应 在你访问的每个城市,你只能卖出一艘飞艇,但是 你不需要访问每一个城市,因为有些城市的旅行费用很高 成本。每个城市都有一个飞艇销售的初始价格,但这个 随着更多的飞艇销售(以及 新奇感逐渐消失)。找到一条
以某种方式运输物品的价格使TSP更简单。如果销售员在A城市,想去B,他可以比较直接去B的成本和先回总部接更多的飞艇的成本。也就是说,通过A乘一艘额外的飞船到B更便宜还是在两者之间返回更便宜。该检查将创建一系列循环旅行,然后销售人员可以通过循环旅行获得最高收入。但是,首先,什么是确定这些循环的好方法呢 这是一个搜索问题。假设网络比暴力所能解决的要大,那么最好的算法就是。解决此类问题的算法通常是“多次运行解决方案,选择最佳的一种”。此外,要选择下一步要尝试的解决方案,请使用以前迭代的结果
对于一个特定的算法,尝试使用剪枝、模拟退火、禁忌搜索、遗传算法、神经网络(按照我发现的相关顺序)进行回溯。此外,泰勒·德登提出的蒙特卡罗树搜索想法看起来很酷。我已经阅读了原始问题。由于城市数量众多,因此不可能得到确切的答案。近似算法是唯一的选择。正如@maniek提到的,AA有很多选择。如果你以前有过AA的经验,那将是最好的,你可以选择一个你熟悉的,并得到一个大致的答案。然而,如果你以前没有做过AA,也许你可以从修剪的回溯开始 对于此问题,您可以轻松获得以下修剪规则:
总而言之,这确实是一个悬而未决的问题。没有最佳答案。可能在案例1中,使用回溯给出了最佳答案,而在案例2中,模拟退火是最佳答案。只要计算出大概的答案就足够了,实现这个目标有很多方法。总之,真正的最佳方法是编写尽可能多的AAs,然后比较这些结果并输出最佳结果。这看起来像是一个经典的优化问题,我知道可以用模拟退火算法处理(我认为这是20世纪80年代Wintek electronic CAD autoplacement程序的第一次商业应用。大多数优化算法可以处理许多变量的问题,比如你的问题——问题是正确设置适应度算法,以便得到最佳解(在您的情况下,成本最低) 其他优化算法可能值得一看——我只是有实现模拟退火算法的经验
(如果你选择模拟退火的路线,你可能会想得到p.J.van Laarhoven和E.H.Aarts的《模拟退火:理论和应用(数学及其应用)》,但你必须找到它,因为它已经绝版了(甚至可能是我在20世纪80年代用过的那本书)不一定循环。例如,如果回溯的成本低于继续前往另一个城市的成本,销售员可能会决定去
HQ->A->B->C->D->C->B->E->B->A->HQ
。旅行推销员和O(nlogn)不太合拍(除非p=NP,然后谁知道呢)。然而,这个问题对我来说更像是一个问题。@amit,如果P=NP,TSP的O(nlogn)
解决方案将非常尴尬everyone@Shahbaz,你只能在一个城市里出售一个单元,所以你不能两次回到同一个城市。@amit,这只是一个近似的解决方案,我认为它需要在不到O(n^2)的时间内完成。