📄 gaaalleleset.java
字号:
public class GaaAlleleSet {
int size;
int order;
GaaAllele alleles[];
public GaaAlleleSet(int num) {
int i;
size = num;
alleles = new GaaAllele[size];
for (i=0;i<size;i++)
alleles[i] = new GaaAllele(1, 100, (double)1, 1);
order = alleles[0].nsteps;
}
public GaaAlleleSet(int num, double mn, double mx, double st, double vl) {
int i;
size = num;
alleles = new GaaAllele[size];
for (i=0;i<size;i++)
alleles[i] = new GaaAllele(mn, mx, st, vl);
order = alleles[0].nsteps;
}
public GaaAlleleSet(int num, double mn, double mx, int ns, double vl) {
int i;
size = num;
alleles = new GaaAllele[size];
for (i=0;i<size;i++)
alleles[i] = new GaaAllele(mn, mx, ns, vl);
order = alleles[0].nsteps;
}
public GaaAlleleSet(GaaProblem pr) {
int num = pr.genesNumber;
double mn = pr.minVal;
double mx = pr.maxVal;
double st = pr.stepVal;
double vl = pr.defVal;
int i;
size = num;
alleles = new GaaAllele[size];
for (i=0;i<size;i++)
alleles[i] = new GaaAllele(mn, mx, st, vl);
order = alleles[0].nsteps;
}
public String encodeChrom(double values[]) {
int i;
char kar;
String st;
StringBuffer sb = new StringBuffer(values.length);
for (i=0;i<values.length;i++) {
kar = alleles[i].encodeValue(values[i]);
sb.append(kar);
}
st = sb.toString();
return st;
}
public String encodeRandomChrom(int type) {
int i;
double n;
char kar;
String st = "";
StringBuffer sb = new StringBuffer(size);
switch(type) {
case 1:
for (i=0;i<size;i++) {
n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
kar = alleles[i].encodeValue(n);
sb.append(kar);
st = sb.toString();
}
break;
case 2:
for (i=0;i<size;i++) {
n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
kar = alleles[i].encodeValue(n);
while (st.indexOf(kar) >= 0) {
n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
kar = alleles[i].encodeValue(n);
}
sb.append(kar);
st = sb.toString();
}
break;
default:
for (i=0;i<size;i++) {
n = alleles[i].min + (double) Math.random()*(alleles[i].max-alleles[i].min);
kar = alleles[i].encodeValue(n);
sb.append(kar);
st = sb.toString();
}
}
st = sb.toString();
return st;
}
public void decodeChrom(String st) {
int i;
int n = st.length();
for (i=0;i<st.length();i++) {
double d = alleles[i].decodeValue(st.charAt(i));
alleles[i].value = alleles[i].decodeValue(st.charAt(i));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -