【发布时间】:2019-07-24 12:50:12
【问题描述】:
我的主程序,我认为这一切都是正确的,谁能告诉我我的错误在哪里,我从来没有得到 100% 的适应度
我很沮丧,如果你知道,请回答我
void mutate(population *parent,int ratio){
for(unsigned int i=0; i<sizeof(parent[0].gen); i++){
int condition = (rand()%11);
int temp0 = (int)parent[0].gen[i];
int temp1 = (int)parent[1].gen[i];
if(condition < ratio){
if(temp0+10 <127 ){
parent[0].gen[i] = char(temp0 + 10);
//cout<<temp0<<endl;
}else{
temp0 = temp0 + 10 - 80;
parent[0].gen[i] = char(temp0);
// cout<<(int)parent[0].gen[i]<<endl;
}
if(temp1+10 <127 ){
parent[1].gen[i] = char(temp1 + 10);
//cout<<temp0<<endl;
}else{
temp1 = temp1 + 10 - 80;
parent[1].gen[i] = char(temp1);
}
}
}
这是我的变异示例代码,完整的程序如下图
【问题讨论】:
-
我认为你需要多学习一些神经网络和遗传算法。获得 100% 的成功率是不可能的。
-
请详细说明您认为应该达到 100% 的时间和原因。
-
您的问题似乎很有趣。不幸的是,这些屏幕截图对我们来说毫无用处,您应该更好地描述预期结果以及为什么当您的循环条件似乎被设计为以较低质量停止时,您认为应该达到 100%。
标签: c++ genetic-algorithm