EA analyzer

Analyzer software for results of evolutionary algorithm experiments.

EA Analyzer Howto

The analyzer.py program expects at least two command line arguments:
a name, which identifies a given set of optimizers and test functions
at least one directory name. It will then look into this directory for catalog files. For each catalog file it finds, it considers the catalog file’s path as foo/bar/catalog and uses foo as an optimizer name and bar as a test function name.

The program then creates a parameter file named analyzername.py and runs the user’s favourite text editor (looking for the environment variables VISUAL or EDITOR, and if none is set, defaulting to /usr/bin/editor) to allow the user to edit the parameter file. A typical parameter file looks like this (interleaved with pedagogical comments):

Begin parameter file

# Config file

This is the list of opimizers that have been found.

optimizers = [
'CSPDE-40x5-0.2-0',  
'DEwSAcc-200',  
'PDE-40x5-0.2',  
]

And those are the test functions.

functions = [
'Ackley-500',  
'Alpine-500',  
'Schwefel-500',  
]

The translation tables below allow to hide the (ugly) directory names in the resulting tables and graphs and replace them with shorter and/or more significant names

# Translation tables (python dict)
#   Maps internal/file name to displayed name  
translate  = {  
#"CSPDE-40x5-0.2-0": "CSPDE-40x5-0.2-0",  
#"DEwSAcc-200"     : "DEwSAcc-200",  
#"PDE-40x5-0.2"    : "PDE-40x5-0.2",  
#"Ackley-500"                : "Ackley's path",  
#"Alpine-500"                : "Alpine",  
#"Schwefel-500"              : "Schwefel's",  
}  
#   Maps internal/file name to LaTeX-friendly filename (no space, no underscore)  
translate_fn = {  
}  

# Where the optimizers/function files are  
root = '/space/mweber/graphs/multi'  
# The datatypes of the fields  
fields = {'Fitness': float}  
# Resampling parameters  
start_value = 0  
rate_value = 100  
stop_value = 500000  
# Take at most this many files  
max_files = 50  
# Load limited, pre-summarized data  
#pickled = "experiments.pickled"  

# The modules to use  
_modules = [  
 # AvgMinMedMaxTable: Generates an average, median, minimum and maximum table, wih optionally a results histogram  
 # Parameters: results_graph = False, filename = "avg_min_med_max.tex", field = "Fitness"   
 #"AvgMinMedMaxTable()",  

 # AvgStdevTable: Generates an average + standard deviation table  
 # Parameters: filename = "avg_stdev.tex", field = "Fitness"   
 #"AvgStdevTable()",  

 # CSVTable: Generates a set of CSV files of the results of one given optimizer for multiple statistical estimators  
 # Parameters: optimizer, stats = ['avg', 'med', 'min', 'max']   
 #"CSVTable()",  

 # DistributionGraphTable: Generates a table with result distribution graphs for each (function, optimizer) pair  
 # Parameters: filename = "dist_graph_table.tex", nb_bins = 25, field = "Fitness"   
 #"DistributionGraphTable()",  

 # EPSGraph: Generates a GNUplot plot file for generating EPS graphs of trends  
 # Parameters: specs = { 'Fitness_avg': ['Fitness', ['avg'], "using 1:2"] }, data_filename_root = 'data', gnuplot_filename = 'plot_eps_%s.gpi', nb_points = 50  
 #"EPSGraph()",  

 # HolmTestTable: Generates a table of the results of the Holm procedure  
 # Parameters: threshold = 0.05, filename = "holm_test.tex", field = "Fitness"   
 #"HolmTestTable()",  

 # PNGGraph: Generates a GNUplot plot file for generating PNG graphs of trends  
 # Parameters: specs = { 'Fitness_avg': ['Fitness', ['avg'], "using 1:2"] }, data_filename_root = 'data', gnuplot_filename = 'plot_png_%s.gpi', nb_points = 500   
 #"PNGGraph()",  

 # QtestTable: Generates a Q test table  
 # Parameters: show_threshold = False, threshold = 0.05, filename = "q_test.tex", field = "Fitness"   
 #"QtestTable()",

 # RankTable: Generates a table where the algorithms are ranked.  
 # Parameters: threshold = 0.05, comparison_function = wilcoxon_rank_sum_test, filename = "rank.tex", field = "Fitness"   
 #"RankTable()",

 # ScalabilityTable: Generates a scalability table for one given optimizer across function and function dimensionality  
 # Parameters: optimizer, filename = "scalability.tex", field = "Fitness"   
 #"ScalabilityTable()",  

 # TtestTable: Generates a T test table,  for each function, comparing against the "reference" algorithm  
 # Parameters: reference, threshold = 0.05, filename = "t_test.tex", field = "Fitness"   
 #"TtestTable()",

 # WilcoxonRankSumTestTable: Generates a Wilcoxon's Rank-Sum test table for each function, comparing against the "reference" algorithm  
 # Parameters: reference, threshold = 0.05, filename = "wilcoxon_rank_sum_test.tex", field = "Fitness"   
 #"WilcoxonRankSumTestTable()",  

 # WilcoxonSignedRankTestTable: Generates a table of the results of the Wilcoxon Signed-Rank test over all the functions  
 # Parameters: reference, threshold = 0.05, filename = "wilcoxon_signed_rank_test.tex", field = "Fitness"   
 #"WilcoxonSignedRankTestTable()",  

]  

# Where the results are written  
output_directory = "/space/mweber/graphs/multi/results_test1"`

ea-analyzer

Clone & push urls

Activities Feed