geatpy-dev / geatpy

Evolutionary algorithm toolbox and framework with high performance for Python
http://www.geatpy.com
GNU Lesser General Public License v3.0
2.02k stars 726 forks source link

请问一下可否指定染色体某几个位置的值 #146

Open fkrsr opened 4 years ago

fkrsr commented 4 years ago

请问一下可否指定染色体某几个位置的值。 我的问题简单来说是这样的,染色体是一组0-1编码,例如(1,0,0,0,1,...),但根据实际情况,我知道第1,第10等某几个固定位置上的值,一定是1,请问有没有办法直接生成这样的编码? 我也想过可以添加约束,或生成一些不含这几位的编码再自己在aimFunc函数中修改,但都会影响效率,就想问问有没有可以直接实现的方法。 非常感谢!

geatpy-dev commented 4 years ago

@fkrsr 即将发布的2.6版本里面可以设置某些位的交叉和变异概率为0,这样就可以把它们的值锁死了。目前的版本只能用正如你所描述的传统的办法来实现。

fkrsr commented 4 years ago

@fkrsr 即将发布的2.6版本里面可以设置某些位的交叉和变异概率为0,这样就可以把它们的值锁死了。目前的版本只能用正如你所描述的传统的办法来实现。

非常感谢!那我就先自己在aimFunc函数中修改吧,等新版本出来再改

ConnLiu commented 3 years ago

@fkrsr 即将发布的2.6版本里面可以设置某些位的交叉和变异概率为0,这样就可以把它们的值锁死了。目前的版本只能用正如你所描述的传统的办法来实现。

@geatpy-dev 求问如何设置某些位的交叉和变异概率为0? 例如均匀分布交叉xovud这里的XOVR交叉概率是针对整个染色体矩阵的,那如何针对某些位呢?NewChrom = xovud(OldChrom, XOVR)