- 博客(8)
- 收藏
- 关注
原创 实现最简单的遗传算法GA基础实例
4、选择:最常用的就是轮盘赌方式,了解完他的定义之后发现他的代码实现也不难,比如有五个个体的种群,索引序号是[0,1,2,3,4],那就是计算适应度值,并且求一下在总的适应度里面的占比,得到[0.1,0.2,0.3,0.1,0.3],然后根据这每一个个体的比例来随机抽数,得到[2,4,2,1,4],就比如两个0.3的概率最大,那么抽取到个体2和4的概率就更大,最终根据这个序号去选择种群中对应的个体,进行保留到下一代,这就实现了适应环境的留下,不适应的淘汰。无约束的遗传算法(最简单的)
2023-06-09 16:18:43
291
原创 凸函数和非凸函数,以及三大经典算法比较
在每个降温周期中,接受劣解的概率随着温度的下降而逐渐降低,从而逐渐收敛到全局最优解。 研究发现,遗传算法可以用极快的速度达到最优解的90%以上,但是要达到真正的最优解需要花费很长时间,即局部搜索能力不足。约束条件写成g ( x ) ≤ 0 g(x)\le0g(x)≤0时,g gg如果不是凸函数,则不是凸优化问题。搜索速度快,参数设置容易,但是极其容易陷入局部最优解,因此一般需要使用期改进方法避免陷入局部最优解。 全局搜索能力强,局部搜索能力较弱,往往只能得到次优解而不是最优解。
2023-06-03 19:33:26
4962
原创 遗传算法超详细图解
(Genetic Algorithm)顾名思义,是一种基于自然选择原理和自然遗传机制的启发式搜索算法。该算法通过模拟自然界中生物遗传进化的自然机制(),将好的遗传基因(最优目标)不断遗传给子代,使得后代产生最优解的增加(后代还是会有一些差的结果)。在这个过程当中,交叉操作是优化的主要操作,而变异操作可以看成对种群的扰动。根据具体的问题我们构建适应度函数,并优化极值(可以是求最大值,也可以求最小值)。
2023-05-18 09:24:55
23023
1
原创 如何实现从(0,0)到(a,b)的路径实现,用python
即要到达s[a][b]点必先到达S[a][b-1]或者S[a-1][b],所以说到达s[a][b]的路径数目就是S[a][b-1]与S[a-1][b]路径之和;同时因为第一行与第一列的路径仅由该行或该列的路径所达到,所以只有一条路径。拿到该题,第一步想到的是利用for循环暴力法来决解,可能会超时,所以考虑到动态规划。1. 向右 -> 向右 -> 向下。2. 向右 -> 向下 -> 向右。3. 向下 -> 向右 -> 向右。输入: m = 3, n = 2。输入: m = 7, n = 3。
2023-05-16 15:16:04
152
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人