/home/ooechs/ECJ_Tutorial/src/ac/essex/ecj/terminals/OffsetERC.java
|
package ac.essex.ecj.terminals;
import ec.EvolutionState;
import ac.essex.ecj.util.ERCAdapter;
/**
* <p/>
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version,
* provided that any use properly credits the author.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details at http://www.gnu.org
* </p>
*
* @author Olly Oechsle, University of Essex, Date: 17-Aug-2006
* @version 1.0
*/
public class OffsetERC extends ERCAdapter {
public String name() {
return "OffsetERC";
}
/**
* Chooses a random number that is either: -1, 0, or +1
*/
public double setNumber(final EvolutionState state, final int thread) {
return state.random[thread].nextInt(2) - 1;
}
public void mutateERC(EvolutionState state, int thread) {
value = setNumber(state, thread);
}
}