Example #1
0
def write_data(generation, population, out_data, csv_name):
    # get the fitness data set
    data_set = []
    for i in population:
        data_set.append(i.fitness)

    # calculate population fitness data
    fittest = max(data_set)
    unfittest = min(data_set)
    average = int(sum(data_set) / len(population))

    # debug print population fitness data
    if out_data is True:
        print("GENERATION " + str(generation))
        # # find fittest memeber of population
        # fittest = population[0]
        # for p in population:
        # if fittest.fitness < p.fitness:
        # fittest = p
        # # print fittest member's rules
        # for r in range(R_count):
        # print(str(fittest.rules[r]))
        # print population stats
        print("Fittest:\t" + str(fittest))
        print("Average:\t" + str(average))
        print("Unfittest:\t" + str(unfittest))
        print("-------------------------")

    # write population fitness data to csv
    if csv_name is not None:
        GA_csv.write(csv_name, [generation, fittest, average, unfittest])
Example #2
0
def main():
    # run algorithm & write results to csv
    for s in range(SAMPLE_SIZE):
        GA.main(SAMPLE_NAME + str(s))
    # init averages samples csv file
    GA_csv.init(SAMPLE_NAME)
    # create averaged results csv from samples
    average_samples()
    # cleanup sample files
    for s in range(SAMPLE_SIZE):
        os.remove(SAMPLE_NAME + str(s) + '.csv')
Example #3
0
def average_samples():
    # get all csv data for each sample
    rows = []
    for s in range(SAMPLE_SIZE):
        rows.append(GA_csv.get_rows(SAMPLE_NAME+str(s)))
    
    # average out & write data to csv
    for r in range(1, len(rows[0])-1):
        # get averaged data in row r
        fittest = 0
        average = 0
        unfittest = 0
        for s in range(SAMPLE_SIZE):
            fittest += int(rows[s][r][1])
            average += int(rows[s][r][2])
            unfittest += int(rows[s][r][3])
        fittest = int(fittest / SAMPLE_SIZE)
        average = int(average / SAMPLE_SIZE)
        unfittest = int(unfittest / SAMPLE_SIZE)
        
        GA_csv.write(SAMPLE_NAME, [r, fittest, average, unfittest])
Example #4
0
def write_data(generation, population):
    # get the fitness data set
    data_set = []
    for i in population:
        data_set.append(i.fitness)

    # calculate population fitness data
    fittest = max(data_set)
    unfittest = min(data_set)
    average = int(sum(data_set) / len(population))

    # debug print population fitness data
    if OUT_DATA is True:
        print("GENERATION " + str(generation))
        print("Fittest:\t" + str(fittest))
        print("Average:\t" + str(average))
        print("Unfittest:\t" + str(unfittest))
        print("-------------------------")

    # write population fitness data to csv
    if CSV_NAME is not None:
        GA_csv.write(CSV_NAME, [generation, fittest, average, unfittest])
Example #5
0
def main(argv=''):
    global CSV_NAME
    if argv != '':
        CSV_NAME = argv
        GA_csv.init(CSV_NAME)
    run(generation_limit, P_size, G_size, C_rate, M_rate)
Example #6
0
        if new_population[p].fitness < new_population[n_worst].fitness:
            n_worst = p

    # replace least fit in new_population with fittest in new_population
    for p in range(len(old_population)):
        if p == n_worst and old_population[o_best].fitness > new_population[n_worst].fitness:
            genome = old_population[o_best].genome
        else:
            genome = new_population[p].genome
        survivors.append(Solution(genome))

    return survivors


# ===========
# entry point
# ===========
if __name__ == '__main__':
    if (len(sys.argv) >= 2):
        CSV_NAME = sys.argv[1]
        GA_csv.init(CSV_NAME)
    run(generation_limit, P_size, G_size, C_rate, M_rate)


def main(argv=''):
    global CSV_NAME
    if argv != '':
        CSV_NAME = argv
        GA_csv.init(CSV_NAME)
    run(generation_limit, P_size, G_size, C_rate, M_rate)