Пример #1
0
 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,))