Evolutionary Algorithm for Adaptive Phase Estimation
1.0.2
|
The program is designed to work on HPC clusters and it requires MPI to run. The basic use is as follows:
$ [mpirun -np NPROC] phase_estimation [config_file]
Arguments:
config_file Configuration file name
If it is run without a configuration file, some default values are taken for all parameters; the exact settings are identical to the one in the provided default.cfg
file. The configuration file is a plain text file with the name of the parameter on the left, followed by an equation sign surrounded by a space on either side, and a value on the right-hand side. For example, the contents of default.cfg
are as follows:
pop_size = 20 N_begin = 4 N_cut = 5 N_end = 10 iter = 100 iter_begin = 300 repeat = 10 output_filename = output.dat time_filename = time.dat
If you supply a configuration file, but do not set a specific value to every possible option, the default values are again the ones described in default.cfg
.
The meaning of the individual parameters:
pop_size
: population size.N_begin
: the starting number of particles.N_cut
: the number of particles where the program use cluster initialization around previous solution.N_end
: the final number of particles.iter
: number of iterations when cluster initialization is used.iter_begin
: number of iteration when uniformly random initialization is used.repeat
: number of time the candidates are compute before the best candidate is selected after the optimizationoptimization
: choose the heuristic optimization algorithm: de (differential evolution) or pso (particle swarm optimization)output_filename
: the name of the file to write the results to.time_filename
: the name of the file to write the time taken to run the program for each number of variables.random_seed
: fix a random seed. If it is not specified, the random number generator is initialized with the system timedata_end
: set where accept-reject criterion based on error from expected solution is usedprev_dev
: the boundary for the cluster initialization – for variables that are initialized from previous solutionnew_dev
: the boundary for the cluster initialization – for new variablet_goal
: parameter corresponding to the error which the algorithm will accept to solutionThe program output two files, one containing the policy and fitness value (output.dat) and the other containing the CPU time used in finding the policy (time.dat). The numbers are updated for every N and can be used to track the progress of the optimization.
Example of output:
output.dat
time.dat