System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于旅行商问题求解领域,尤其是涉及一种基于深度强化学习的大规模旅行商问题求解方法。
技术介绍
1、旅行商问题是一个经典的组合优化问题,其定义是在给定一组城市及其两两之间的距离或费用矩阵的情况下,寻找一个能使总旅行距离或费用最小的回路,该回路必须经过每个城市且只经过一次。
2、旅行商问题在实际生活中有广泛的应用场景,如配送路径规划、包裹投递、商店补货等。尽管旅行商问题本身简单明了,但已被证明是一个np难问题,即在多项式时间内很难找到最优解。随着社会经济的快速发展,人们对各种物流配送效率和成本的要求越来越高,旅行商问题的求解也受到了日益广泛的关注。针对旅行商问题,研究人员提出了多种求解算法,主要包括精确算法、启发式算法和元启发式算法三大类。
3、精确算法能在解决质量方面取得优势,目前比较著名的是applegate等人于2006年发表的工作《the traveling salesman problem:a computational study.princetonuniversity press》。该工作提出concorde求解器,将切割平面算法与分支定界方法相结合。但随着问题规模的增大,其效率显著下降,无法在合理时间内得到最优解或近似解。
4、小规模问题中,启发式算法能在短时间内给出满意解,目前比较著名的是helsgaun于2017年发表的工作《an extension of the lin-kernighan-helsgaun tspsolver for constrained tra
5、近年来,一些开创性的工作将深度学习与强化学习相结合,在旅行商问题上取得了不错的成果。这些工作利用深度神经网络的特征提取能力,设计出了基于深度强化学习的算法,这些算法能够从大规模数据中提取人工很难总结的潜在关系。但是当这些工作应用到大规模旅行商任务中时,会面临推理时间过长,内存溢出等问题,因此需要设计效率更高的模型来解决上述问题。
技术实现思路
1、本专利技术提供了一种基于深度强化学习的大规模旅行商问题求解方法,通过针对性优化算法的内存使用,提高内存利用效率,以支持更大规模问题的求解;通过优化算法的计算效率,大幅降低计算时间,满足实际应用中对求解速度的需求。
2、一种基于深度强化学习的大规模旅行商问题求解方法,包括以下步骤:
3、(1)将大规模旅行商问题建模为马尔科夫决策过程,包括状态、动作、策略和奖励;
4、(2)随机生成一系列大规模旅行商问题实例并进行数据增强,得到训练数据;
5、(3)构建基于端到端深度强化学习的大规模旅行商问题求解模型架构,该模型包括编码器和解码器,编码器采用快速注意力机制作为注意力层,解码器使用一个特殊的上下文节点来表示当前的解码状态,这个上下文节点会随着解码步骤的推进而动态更新,指向下一个等待访问的城市节点;
6、(4)设计决策网络,利用训练数据对构建的求解模型进行训练;其中,决策网络选择reinforce,利用深度强化学习方法中的对称性对reinforce算法进行改进;
7、(5)利用训练好的模型进行旅行商问题求解,并对得到的求解结果进行优化,提高解的质量。
8、在使用强化学习解决大旅行商问题的过程中,首先需要将大旅行商问题建模为马尔科夫决策过程。步骤(1)中,所述的状态为已访问的城市集合,动作为下一个要访问的城市,策略为下一步选择每个城市的概率,奖励为路径长度。
9、步骤(2)中,随机生成500-2000个城市,这些城市的坐标位置均匀分布在一个二维平面上。
10、步骤(2)中通过旋转,平移,翻转,缩放等操作进行数据增强。
11、步骤(3)中,编码器包括输入层、注意力层和前馈网络层,其中,注意力层采用快速注意力机制,快速注意力机制在向前和向后传递时将n2大小的矩阵分块成块。
12、编码器采用基于注意力的神经网络架构,能够自适应地从问题实例中提取重要特征。注意力机制能够动态地为不同节点分配不同的权重,捕捉节点之间的关联性,从而更好地编码问题实例。使用由多头自注意层和前馈层组成的多个注意层对输入节点进行编码,可以学习到问题实例中重要节点的表征,为后续的决策过程提供有效的信息。
13、但是普通的自注意力机制需要o(n2)的内存消耗,不能解决大旅行商问题,为了节省内存消耗,采用了快速注意力机制作为自注意层。快速注意力机制内存的效率与普通注意力相比是线性的o(n)。并且不同于稀疏或低秩矩阵近似值的方法,它的输出与普通注意力机制相同。
14、步骤(3)中,解码器采用多指针网络,在解码过程中使用一个特殊的上下文节点来表示当前的解码上下文,这个上下文节点会随着解码步骤的进行而动态更新,指向下一个待访问的节点。
15、解码器采用类似于指针网络的架构,在解码过程中使用一个特殊的上下文节点来表示当前的解码上下文。这个上下文节点会随着解码步骤的进行而动态更新,指向下一个待访问的节点。通过这种类指针的解码方式,解码器可以直接生成最终的访问节点序列,而不需要经过复杂的搜索过程。
16、自回归解码器通常非常快,但内存消耗很大,主要是由于在查询中使用的注意模块。为了减轻这种情况,本专利技术选择在查询中移除注意力模块。同时为了减少该模块的移除产生的影响,通过集成特征来改进解码器,采用增强的上下文嵌入方法在查询中包含更全面的上下文信息。
17、步骤(4)中,决策网络选择reinforce,利用深度强化学习方法中的对称性对reinforce算法进行改进,使用共享基线:
18、
19、式中,π~pθ(·|s)指的是给定参数θ和当前状态s下的策略,即生成的路径;l(π|s)表示生成的路径的长度;b(s)表示共享基线,即部分策略的平均长度;pθ(π|s)表示给定参数θ和当前状态s生成路径π的概率。
20、reinforce的核心思想是通过调整策略网络的参数,使得智能体在与环境交互时,能够获得更高的累积奖励。本专利技术利用了rl方法中的对称性,用于解决大旅行商问题。这种对称性可以在神经网络训练期间通过并行的多个rollouts来利用,每个轨迹都有一个不同的最优解作为探索的目标。
21、步骤(5)中,将原问题拆分为多个规模较小的最短哈密顿路径子问题,采用多核cpu或gpu等并行计算的方式进行优化,同时优化多个子问题。
22、考虑到大旅行商问题的复杂性,直接对整个问题进行优化可能效率较低。因此,将原问题划分为多个较小规模的最短哈密顿路径子问题,每个子问题涉及的节点较少。对于划分得到的多个最短哈密顿路径子问题,可以采本文档来自技高网...
【技术保护点】
1.一种基于深度强化学习的大规模旅行商问题求解方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(1)中,所述的状态为已访问的城市集合,动作为下一个要访问的城市,策略为下一步选择每个城市的概率,奖励为路径长度。
3.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(2)中,随机生成500-2000个城市,这些城市的坐标位置均匀分布在一个二维平面上。
4.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(2)中通过旋转,平移,翻转,缩放等操作进行数据增强。
5.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(3)中,编码器包括输入层、注意力层和前馈网络层,其中,注意力层采用快速注意力机制,快速注意力机制在向前和向后传递时将n2大小的矩阵分块成块。
6.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(3)中,解码器采用多指针网络
7.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(4)中,决策网络选择REINFORCE,利用深度强化学习方法中的对称性对REINFORCE算法进行改进,使用共享基线:
8.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(5)中,将原问题拆分为多个规模较小的最短哈密顿路径子问题,采用并行计算的方式进行优化。
...【技术特征摘要】
1.一种基于深度强化学习的大规模旅行商问题求解方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(1)中,所述的状态为已访问的城市集合,动作为下一个要访问的城市,策略为下一步选择每个城市的概率,奖励为路径长度。
3.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(2)中,随机生成500-2000个城市,这些城市的坐标位置均匀分布在一个二维平面上。
4.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(2)中通过旋转,平移,翻转,缩放等操作进行数据增强。
5.根据权利要求1所述的基于深度强化学习的大规模旅行商问题求解方法,其特征在于,步骤(3)中,编码器包括输入层、注意力层和前馈...
【专利技术属性】
技术研发人员:周于嵛,潘伟航,林彬彬,蔡登,何晓飞,
申请(专利权)人:浙江大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。