public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(ca.Range * ca.NumStates * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int row = Util.RndUniformInt(ca.NumStates); int col = Util.RndUniformInt(ca.Range); mutant[col, row] = settings.StateTableDistribution.Next(); } return(mutant); }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(ca.NumStates * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int rowSrc = Util.RndUniformInt(ca.NumStates); int rowDest = rowSrc; while (rowDest == rowSrc) rowDest = Util.RndUniformInt(ca.NumStates); for (int column = 0; column < ca.Range; column++) mutant[column, rowDest] = mutant[column, rowSrc]; } return mutant; }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(ca.Range * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int colSrc = Util.RndUniformInt(ca.Range); int colDest = colSrc; while (colDest == colSrc) colDest = Util.RndUniformInt(ca.Range); for (int row = 0; row < ca.NumStates; row++) mutant[colDest, row] = mutant[colSrc, row]; } return mutant; }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(10.0 * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int row, col; int count = 0; do { row = Util.RndUniformInt(ca.NumStates); col = Util.RndUniformInt(ca.Range); } while (mutant[col, row] == 0 && count++ < 20); mutant[col, row] = 0; } return(mutant); }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(ca.Range * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int colSrc = Util.RndUniformInt(ca.Range); int colDest = colSrc; while (colDest == colSrc) { colDest = Util.RndUniformInt(ca.Range); } for (int row = 0; row < ca.NumStates; row++) { mutant[colDest, row] = mutant[colSrc, row]; } } return(mutant); }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(ca.NumStates * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int rowSrc = Util.RndUniformInt(ca.NumStates); int rowDest = rowSrc; while (rowDest == rowSrc) { rowDest = Util.RndUniformInt(ca.NumStates); } for (int column = 0; column < ca.Range; column++) { mutant[column, rowDest] = mutant[column, rowSrc]; } } return(mutant); }
public GeneticAlgorithmState() { _settingsCa = new CellularAutomataSettings(7); _settingsGa = new GeneticAlgorithmSettings(7); }
public GeneticAlgorithmState() { _settingsCa = new CellularAutomataSettings(7); _settingsGa = new GeneticAlgorithmSettings(7); }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { return(ca); }
public abstract CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings);
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(10.0 * settings.MutationTemperature)) + 1; for (int i = 0; i < n; i++) { int row, col; int count = 0; do { row = Util.RndUniformInt(ca.NumStates); col = Util.RndUniformInt(ca.Range); } while (mutant[col, row] == 0 && count++ < 20); mutant[col, row] = 0; } return mutant; }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { var mutant = new CellularAutomataRules(ca); int n = Util.RndUniformInt((int)(ca.Range * ca.NumStates * settings.MutationTemperature))+1; for (int i = 0; i < n; i++) { int row = Util.RndUniformInt(ca.NumStates); int col = Util.RndUniformInt(ca.Range); mutant[col, row] = settings.StateTableDistribution.Next(); } return mutant; }
public override CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings) { return ca; }
public abstract CellularAutomataRules Mutate(CellularAutomataRules ca, GeneticAlgorithmSettings settings);