public static void leapOverride(AutoStatePredictor destination, AutoStatePredictor original, Random rdm, double intensity) { destination.reset(); //Copy original to destination original.table.CopyTo(destination.table, 0); destination.trainingDepth = original.trainingDepth + 1; //Choose the number of changes to make to the original based on intensity //not very optimal int changeCount = rdm.Next(2 + (int)(original.table.Length * intensity)); destination.lastLeapCount = changeCount; //Make changes int index; for (int i = 0; i < changeCount; i++) { //Choose random table index for change index = rdm.Next(destination.table.Length); //Check if index is prediction image or state image destination.table[index] = (byte)rdm.Next(destination.symbolSize); //New random prediction at index } destination.computeStateTransitionsTable(); }
public static void randomOverride(AutoStatePredictor destination, Random rdm) { destination.reset(); destination.trainingDepth = 0; for (int i = 0; i < destination.table.Length; i++) { destination.table[i] = (byte)rdm.Next(destination.symbolSize); //New random prediction at index } destination.computeStateTransitionsTable(); }