![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
智能算法
像风一样自由2020
这个作者很懒,什么都没留下…
展开
-
遗传算法求三元函数极值(python)-采用实数编码3
这次代码的修改点在交叉变异 函数中,做了其他修改:def crossover_and_mutation(pop, CROSSOVER_RATE=0.015): new_pop = [] for i in range(POP_SIZE//2-20): fatherpoint = np.random.randint(low=0, high=POP_SIZE) child=pop[fatherpoint] motherpoint = np.rand原创 2020-07-02 16:28:40 · 3502 阅读 · 0 评论 -
遗传算法求三元函数极值(python)-采用实数编码2
这次代码的修改点在select函数中,在100个个体中,通过轮盘赌选择出前48个个体,然后再选择出最优个体和最差个体,总共50个,然后再在轮盘赌中后剩下的50个个体进行交叉和变异,返回出50个,这样50+50=100个体作为下一次进化的初始种群,如此不断循环,得出结果。select如下:def select(pop, fitness): # nature selection wrt pop's fitness # fitnew=fitness.copy() #深拷贝 fitnew =原创 2020-06-29 20:07:17 · 979 阅读 · 0 评论 -
遗传算法求三元函数极值(python)-采用实数编码
遗传算法求三元函数极值(python)-采用实数编码本文的遗传算法采用实数编码求三元函数极值所求函数为`其完整代码如下:x1x1-x1x2+x3import numpy as npimport randomDNA_SIZE =1POP_SIZE =100CROSSOVER_RATE = 0.8MUTATION_RATE = 0.015N_GENERATIONS = 500X_BOUND = [3.0,5.0]#x1Y_BOUND = [2.1,6.7]#x2Z_BOUND原创 2020-06-21 17:08:44 · 4991 阅读 · 0 评论 -
遗传算法求三元函数极值(python)-采用二进制编码
遗传算法求三元函数极值(python)-采用二进制编码本文的遗传算法采用二进制编码求三元函数极值所求函数为要想使用遗传算法,首要任务是进行编码传统的 GA 中, DNA 我们能用一串二进制来表示, 比如:DNA1 = [1, 1, 0, 1, 0, 0, 1]DNA2 = [1, 0, 1, 1, 0, 1, 1]这里,我们仍然使用二进制编码,但是如何与我们的问题对应起来呢?我们知道二进制很容易转十进制,再区间压缩以下,这样一个DNA和一个解一一映射。def translat...原创 2020-06-11 16:41:46 · 7094 阅读 · 4 评论