예제 #1
0
def run_effect_of_change_in_threshold(all_data):
    for data in all_data:
        print(
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
        )
        n, m, p_ij = get_matrix(data)
        for i in range(3):
            rec = genetic_algorithm(n, m, p_ij, 2, 30, 1, 0.8, threshold[i])
            print("Makespan Values for threshold ", threshold[i], "is: ", rec)
        print('++++++++++++++++++++  End of product', data[0],
              '++++++++++++++++++++++')
        recs = []
        recs.append(data[0])
        recs.append(rec)
        writefile_for_GAparam_change_effects(
            recs, 'Effect_of_change_in_threshold.csv')

    return
예제 #2
0
def run_effect_of_change_in_pop_size(all_data):
    for data in all_data:
        print(
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
        )
        n, m, p_ij = get_matrix(data)
        for i in range(5):
            rec = genetic_algorithm(n, m, p_ij, 2, pop_size[i], 1, 0.8, 0.95)
            print("Makespan Values for pop-size ", pop_size[i], "is: ", rec)
        print('++++++++++++++++++++  End of product', data[0],
              '++++++++++++++++++++++')
        recs = []
        recs.append(data[0])
        recs.append(rec)
        writefile_for_GAparam_change_effects(
            recs, 'Effect_of_change_in_PopSize.csv')

    return
예제 #3
0
def run_effect_of_change_in_p_mutation_init(all_data):
    for data in all_data:
        print(
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
        )
        n, m, p_ij = get_matrix(data)
        for i in range(4):
            rec = genetic_algorithm(n, m, p_ij, 2, 30, 1,
                                    p_mutation_initial[i], 0.95)
            print("Makespan Values for p_mutation ", p_mutation_initial[i],
                  "is: ", rec)
        print('++++++++++++++++++++  End of product', data[0],
              '++++++++++++++++++++++')
        recs = []
        recs.append(data[0])
        recs.append(rec)
        writefile_for_GAparam_change_effects(
            recs, 'Effect_of_change_in_p_mutation_init.csv')

    return
예제 #4
0
def printAveragePerformance(test_number, n_var):
    # average performance
    gradient_descent_average = 0.0
    hill_climbing_average = 0.0
    simulated_annealing_average = 0.0
    mu_lambda_evoulution_strategy_average = 0.0
    genetic_algorithm_average = 0.0

    # get performance results
    for trial in range(N_TRIAL):
        print "**** TRIAL " + str(trial + 1) + " ****"
        gd_x, gd_y = gradient_descent(test_number)
        hc_x, hc_y = hill_climbing(test_number)
        sa_x, sa_y = simulated_annealing(test_number)
        ml_x, ml_y = mu_lambda_evoulution_strategy(test_number, n_var)
        ga_x, ga_y = genetic_algorithm(test_number, n_var)
        print "\n"

        # sum up the performance result for each algorithm
        gradient_descent_average += gd_y
        hill_climbing_average += hc_y
        simulated_annealing_average += sa_y
        mu_lambda_evoulution_strategy_average += ml_y
        genetic_algorithm_average += ga_y

    # calculate average performance
    gradient_descent_average /= N_TRIAL
    hill_climbing_average /= N_TRIAL
    simulated_annealing_average /= N_TRIAL
    mu_lambda_evoulution_strategy_average /= N_TRIAL
    genetic_algorithm_average /= N_TRIAL

    # print average performance
    return "**** Average Performance ****\n" +\
            print_test_function(test_number) +\
            "gDe: " + str(gradient_descent_average) + "\n" +\
            "hCl: " + str(hill_climbing_average) + "\n" +\
            "sAn: " + str(simulated_annealing_average) + "\n" +\
            "mLa: " + str(mu_lambda_evoulution_strategy_average) + "\n" +\
            "gAl: " + str(genetic_algorithm_average) + "\n\n"
예제 #5
0
def printAveragePerformance(test_number, n_var):
    # average performance
    gradient_descent_average = 0.0
    hill_climbing_average = 0.0
    simulated_annealing_average = 0.0
    mu_lambda_evoulution_strategy_average = 0.0
    genetic_algorithm_average = 0.0

    # get performance results
    for trial in range(N_TRIAL):
        print "**** TRIAL " + str(trial + 1) + " ****"
        gd_x, gd_y = gradient_descent(test_number)
        hc_x, hc_y = hill_climbing(test_number)
        sa_x, sa_y = simulated_annealing(test_number)
        ml_x, ml_y = mu_lambda_evoulution_strategy(test_number, n_var)
        ga_x, ga_y = genetic_algorithm(test_number, n_var)
        print "\n"

        # sum up the performance result for each algorithm
        gradient_descent_average += gd_y
        hill_climbing_average += hc_y
        simulated_annealing_average += sa_y
        mu_lambda_evoulution_strategy_average += ml_y
        genetic_algorithm_average += ga_y

    # calculate average performance
    gradient_descent_average /= N_TRIAL
    hill_climbing_average /= N_TRIAL
    simulated_annealing_average /= N_TRIAL
    mu_lambda_evoulution_strategy_average /= N_TRIAL
    genetic_algorithm_average /= N_TRIAL

    # print average performance
    return "**** Average Performance ****\n" +\
            print_test_function(test_number) +\
            "gDe: " + str(gradient_descent_average) + "\n" +\
            "hCl: " + str(hill_climbing_average) + "\n" +\
            "sAn: " + str(simulated_annealing_average) + "\n" +\
            "mLa: " + str(mu_lambda_evoulution_strategy_average) + "\n" +\
            "gAl: " + str(genetic_algorithm_average) + "\n\n"
예제 #6
0
#output result:
# trueValue_list:  [7.223909178994591, 3.3564175141717083, 3.216203431727842, 7.856451846709035, 7.85686383715696, \
#                   7.707036644261507, 7.707311304560124, 7.856589176858344, 7.854254564320101, 7.7861388102631395, \
#                   7.15352747747404, 7.821295328486087, 5.606434680440372, 8.980636448947516, 7.611317530193559,\
#                   7.847800047302607, 7.646474048416507, 7.811407557735883, 7.852812597752362, 8.840834356951575,\
#                   7.852057281931167, 5.46580860754858, 5.606846670888297, 7.750982292040192, 6.696630070725027, \
#                   7.847662717153298, 8.911422053696088, 7.874030105820509, 2.196664403262354, 3.3564175141717083,\
#                   7.85686383715696, 7.856726507007652, 8.911422053696088, 3.3564175141717083, 7.847662717153298, \
#                   7.874579426417743, 7.575474361224069, 7.289552990364001, 7.713903151726926, 7.855284540439913, \
#                   7.787100121308298, 7.680669255594296, 8.99903868895484, 7.857001167306269, 7.874442096268434, \
#                   5.325182534656789, 7.845740095062981, 7.854254564320101, 7.641530163041405, 8.981460429843366]
# population_fitness:  [-13.130756343263652, -6.4993141373862064, -6.4557443155254042, -0.82820595361850735, \
#                       -0.08149369394510142, 0.75373067993153864, 1.6649633951382325, 1.9609555452097673, \
#                       2.8952076308005399, 4.1829737370587372, 6.9817053581434454, 7.0030787586723378, \
#                       7.6600841771213606, 12.446336796162273, 14.905831466616666, 15.560045704514094, \
#                       15.576112015919843, 19.085717250867759, 21.189712135666174, 21.342093645044649, \
#                       21.381375500076206, 21.391165432178916, 21.394426025390665, 21.417212098801389, \
#                       21.426957141025483, 23.967025687405357, 24.366677892589081, 24.633535307418349, \
#                       24.801332862690341, 24.803875877377529, 24.805537231467085, 24.841325344981826, \
#                       24.851839356315253, 24.854474950800874, 24.854581644756458, 24.854860763917888, \
#                       24.855012707963798, 24.855137343926927, 24.855347406062741]

genetic_algorithm(key1=lambda p: p + 10 * sin(5 * p) + 7 * cos(4 * p),
                  maxIterate_times=50,
                  isEliteSelect=1)

#0-9上求解最大值结果
# k=5
# Change not enough! 0.0
# x =  7.857619152978156
# max value =  24.8552243021