Beispiel #1
0
def findGAInRankedBF():
    os.chdir(ga_location)
    x = np.load('final_GA_results.npz')
    ga_results = x['results'].item()

    results = {dim: {} for dim in dimensions}
    os.chdir(brute_location)
    for dim in dimensions:
        for fid in functions:
            ga = reprToInt(ga_results[dim][fid]['best_result'])
            fit = ga_results[dim][fid]['best_fitness'][-1]

            bf_results = tdatFileToFitnesses(raw_bfname.format(dim, fid))
            bf_results.sort(key=lambda a: a.fitness)
            indexes = [reprToInt(a.ES) for a in bf_results]
            ga_index = indexes.index(ga)

            # Where does the GA-found ERT/FCE result rank in the brute-force results?
            fit_index = 0
            max_index = len(bf_results)
            while fit_index < max_index and fit > bf_results[fit_index].fitness:
                fit_index += 1

            results[dim][fid] = (ga, fit_index, ga_index, indexes)
            print(
                "{:>2}D F{:>2}:  GA {:>4} is ranked {:>4} ({:>4})\t\t\t GA: {} \t BF[0]: {}"
                .format(dim, fid, ga, fit_index, ga_index, fit,
                        bf_results[0].fitness))

    with open('rank_ga_in_bf.dat', 'w') as f:
        cPickle.dump(results, f)
Beispiel #2
0
def printBFFitDistances():
    os.chdir(brute_location)
    for dim in dimensions:
        for fid in functions:
            bf_results = tdatFileToFitnesses(raw_bfname.format(dim, fid))
            bf_results.sort(key=lambda a: a.fitness)
            print("{:>2}dim F{:>2}: {}".format(
                dim, fid, [str(res.fitness) for res in bf_results[::100]]))
Beispiel #3
0
def createArffFiles():

    os.chdir("/media/Data/Research Data/Evolving ES data")

    print(os.getcwd())

    for fid in functions:
        for dim in dimensions:
            tdat_name = raw_bfname.format(dim, fid)
            arff_name = "arff/bruteforce_{}_f{}.arff".format(dim, fid)
            datToArff(tdat_name, arff_name, dim)
Beispiel #4
0
def getBestFromRankedBF(dim, fid, num=10):
    os.chdir(brute_location)
    bf_results = tdatFileToFitnesses(raw_bfname.format(dim, fid))
    bf_results.sort(key=lambda a: a.fitness)
    indexes = [reprToInt(a.ES) for a in bf_results]

    results = []
    for i in range(num):
        results.append((indexes[i], i, bf_results[i].fitness))

    return results
Beispiel #5
0
def findGivenInRankedBF(dim, fid, given):
    os.chdir(brute_location)
    bf_results = tdatFileToFitnesses(raw_bfname.format(dim, fid))
    bf_results.sort(key=lambda a: a.fitness)
    indexes = [reprToInt(a.ES) for a in bf_results]

    results = []
    for ES in given:
        index = indexes.index(ES)
        results.append(
            ranked_ES_and_result(ES, index, bf_results[index].fitness))
    return results
Beispiel #6
0
def storeBestFromBF():
    os.chdir(brute_location)
    results = {dim: {} for dim in dimensions}
    for dim in dimensions:
        for fid in functions:

            bf_results = tdatFileToFitnesses(raw_bfname.format(dim, fid))
            bf_results.sort(key=lambda a: a.fitness)
            results[dim][fid] = bf_results[0]

    with open('brute_results.dat', 'w') as f:
        cPickle.dump(results, f)
Beispiel #7
0
def checkFileSizesBF():
    os.chdir(brute_location)

    for dim in dimensions:
        print(dim)
        for fid in functions:
            with open(raw_bfname.format(dim, fid)) as f:
                lines = [line for line in f]
                if len(lines) != 4608:
                    print(
                        "File bruteforce_{}_f{}.tdat does not contain 4608 entries! ({})"
                        .format(dim, fid, len(lines)))