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)
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]]))
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)
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
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
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)
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)))