- 博客(8)
- 收藏
- 关注
原创 禁忌搜索算法(python、C++代码)
禁忌搜索是一种启发式优化算法,通过允许暂时接受较差解来跳出局部最优。其核心在于使用禁忌表避免重复搜索,并通过藐视准则保留优质解。文章以TSP问题为例,展示了禁忌搜索的实现:随机生成初始路径,通过交换城市生成邻域解,利用禁忌表控制搜索方向,最终找到最优路径。实验结果表明,禁忌表长度和邻域策略对算法效果至关重要。该算法相比模拟退火更智能,但需要合理设置参数以避免过早收敛。可视化展示了算法收敛过程和最优路径结果。
2025-09-07 22:40:09
319
原创 A*与Dijkstra在二维网格化空间中实现代码(python)
填一下前面的坑,将这类算法的经典代码放上来。本文代码均已测试,没有bug。想要了解两种算法原理的读者可以参考。
2025-09-06 16:17:07
310
原创 模拟退火算法(附python,C++代码)
什么是退火?在冶金中,为了消除金属内部的应力,使其变得更坚韧,工匠会先将金属加热到极高的温度(原子处于高能、无序状态),然后缓慢地降温(冷却)。在这个缓慢的降温过程中,原子有足够的时间找到能量更低的稳定排列状态,最终形成结构完整的晶体。很难懂对吧,其实,在我看来也可以类比做铸剑或者造其他铁器的过程。铸剑肯定是拿通红的铁块甚至液体熔铁开始。这时候温度高,所以铁具有可塑性,可以被打造成任何样子。我们逐步往🗡剑的形状去敲击的时候,肯定会出现敲错的地方,但好在温度高,我们依然可以将它回正。
2025-09-05 13:45:37
955
原创 爬山算法(附python、C++代码)
爬山算法只适用于在一个大的搜索策略内部的局部搜索阶段使用,其本身的准确性一般,经常会找不到最优解,甚至离最优解较远,所以不建议直接使用。作为局部搜索模块融合进其他算法或者可以尝试改造后的爬山算法,例如随机重启爬山法(Random Restart):通过多次随机初始化避免陷入局部最优,或者使用增加退火机制的爬山算法等等。%201。
2025-09-04 15:22:30
375
原创 寻路算法——A*与Dijkstra(广度优先搜索、贪心算法)
本文大量图片来自网站,阅读完本文后,再移步至该网站看带动画版对比讲解。代码版本之后再出,本文不涉及代码,只是讲解原理。两种算法均为最经典的寻路算法,有很强的适应性和可塑性,对于不同领域的特殊问题稍作改造均能发挥其价值。两种算法各有优劣,且听我娓娓道来。开始之前我们需要明白几个概念。第一点对于寻路算法来说,我们一般会将地图中的重要节点标出来,我们的目的是找到“最好的”。那么如何找到节点?对于部分情形来说,节点是天然就有的。
2025-09-03 14:43:21
1156
原创 启发式算法——开篇
本文介绍了启发式算法的基本概念及其应用场景。启发式算法是一种基于经验的近似问题解决方法,适用于计算复杂度高或难以精确求解的问题(如经典的旅行商问题)。文章通过对比求导方法和启发式算法,说明后者在解决复杂优化问题时的优势,特别是当问题规模庞大时,能在合理时间内找到相对最优解。文中以贪心算法为例,解释了启发式算法的核心思想(局部最优逼近全局解)及其局限性(易陷入局部最优陷阱)。最后指出启发式算法本质上是一种"科学遍历"方法,具有迭代性、适应性和近似性特点。
2025-09-02 16:40:25
927
原创 装箱问题的多层树搜索算法
《三维装箱问题的多层树搜索算法》摘要 刘胜等提出了一种基于多层树搜索的三维装箱优化算法。该算法将复杂装箱问题分解为四个层级:箱→片→条→层→实体,逐层优化空间利用率。核心思想包括:1)采用四叉树生成x/y/z三种片结构;2)通过一维背包算法组合最优条;3)利用深度优先搜索构建最佳层;4)三叉树搜索生成最终实体布局。算法严格遵循摆放方向约束和完全支撑约束,通过分层递进式搜索替代启发式方法,在保持结构规整性的同时实现空间最大化利用。实验表明,该方法在解决带约束的三维装箱问题上具有显著优势。
2025-09-01 18:12:55
1007
原创 2D 矩形布局问题的天际线启发式算法
该算法来源于欧洲运筹学杂志(European Journal of Operational Research),发表于2011年,论文标题为A skyline heuristic for the 2D rectangular packing and strip packing problems。提出了一种使用天际线表示填料的二维矩形堆积问题(2DRP)的贪心算法;在简单的禁忌搜索方法中使用这种启发式方法。
2025-08-31 18:19:32
1248
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人