def __init__(self, moves = None): if moves is None: moves = [Move.generate_random_move() for i in xrange(NUMBER_OF_MOVES_PER_MOVE_LIST)] list.__init__(self, moves)
return getattr(self, attr) if __name__ == "__main__": log = open("validation.log", "w") distance_to_numerical_log = open("dtn.log", "w") TRIALS = 50 for radiation in [1, 3, 10, 50, 100, 200, 500, 1000]: print "Radiation", radiation log.write("Radiation Strength: %d\n" % radiation) trial_results = np.zeros(TRIALS, dtype=np.float64) trial_distances = np.zeros(TRIALS, dtype=np.float64) print "Trial", for trial in xrange(TRIALS): log.write("\tTrial: %d\n" % trial) original = Move.generate_random_move() mutant = original.copy() for x in xrange(radiation): mutant = mutant.mutate() prior_time = time.time() results = np.zeros(10 ** 6, dtype=np.float64) for i, row in enumerate(itertools.product(xrange(0, 100, 10), repeat=6)): s = state(row) results[i] = original.evaluate(s) - mutant.evaluate(s) # print sp.pearsonr(original_values, mutant_values) d = distance(original, mutant) deviation = np.std(results, dtype=np.float64) log.write("\t\tOriginal: %s\n" % (original,)) log.write("\t\tMutant: %s\n" % (mutant,)) log.write("\t\tDistance: %d\n" % (d,)) log.write("\t\tNumerical Deviation %f\n" % (deviation,))