*
* @return Die mutierte Bedingung.
*/
@Override
public Condition mutiere(final Condition cond) {
EndlicherAutomat aut = new EndlicherAutomat();
Long[] intObj = new Long[5];
ArrayList<Long> vert = new ArrayList<Long>(5);
aut.einfuegenKnoten(1, 1, 1, 1);
aut.einfuegKante(1, 1, cond, 1);
for (int i = 0; i < intObj.length; i++) {
intObj[i] = new Long(i);
}
vert.add(new Long(10)); // 0 : mutationBedA
vert.add(new Long(9)); // 1 : mutationBedBeinfacher
vert.add(new Long(3)); // 2 : mutationBedZahl
vert.add(new Long(6)); // 3 : mutationBedkomplexer
vert.add(new Long(1)); // 4 : mutationBedSensVar
Long rnd = (Long) MathMeth.randVerteilung(
intObj,
vert,
this.getRand());
switch(rnd.intValue()) {
case 0:
this.mutationBedA(aut);
break;
case 1:
this.mutationBedBeinfacher(aut);
break;
case 2:
this.mutationBedZahl(aut);
break;
case 3:
this.mutationBedkomplexer(aut);
break;
case 4:
this.mutationBedSensVar(aut);
break;
default:
break;
}
return aut.holeKnoten(1).getInfo().getBedingungen().get(0).getCond();
}