📄 gaacrossover.java
字号:
public class GaaCrossover {
int gaType;
int crossoverType;
double crossoverRate;
public GaaCrossover (GaaProblem problem) {
gaType = problem.gaType;
crossoverType = problem.crossoverType;
crossoverRate = problem.crossoverRate;
}
public String crossover(String chrom1, String chrom2) {
int i, pos;
String s1, s2, s;
char kar;
s = "";
switch (gaType) {
case 1:
if (GaaMisc.flip(crossoverRate)) {
pos =(int) Math.floor((Math.random()*chrom1.length()));
s1 = chrom1.substring(0,pos);
s2 = chrom2.substring(pos);
s = s1.concat(s2);
}
else
s = chrom1;
break;
case 2:
if (GaaMisc.flip(crossoverRate)) {
pos =(int) Math.floor((Math.random()*chrom1.length()));
s = chrom1.substring(0,pos);
StringBuffer sb = new StringBuffer(s);
for (i=0;i<chrom2.length();i++) {
kar = chrom2.charAt(i);
if (s.indexOf(kar) == -1) {
sb.append(kar);
}
s = sb.toString();
}
}
else
s = chrom1;
break;
}
return s;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -