This page contains the Java source code for the Genetic Algorithm described
in [2] and the Simulated Annealing proposed in [1] can be
downloaded, along with the data of the experiments discussed in [2].
The link to download the source code is the following:
https://lucamariot.org/files/code/code_tpnc_2015.zip
The zip archive comes with the compiled code as well, which is contained under
directory classes/. In what follows, we describe the syntax of the
commands to run the GA and the SA algorithms, along with the command used to
verify the cryptographic properties of Boolean functions.
To launch a set of runs of the GA, give the following command inside directory
classes/:
java softcomp.genalg.GATest nvar popsize maxgen tournsize
pcross pmut sel_meth cross_meth runs
where:
- nvar is the number of variables of the Boolean functions
- popsize is the number of individuals in the population (must be even)
- maxgen is the number of generations to be performed
- tournsize is the number of drawn individuals for tournament selection
(only used if sel_meth=1, but it has to be set anyway)
- pcross is the crossover probability
- pmut is the mutation probability
- sel_meth is the selection operator (1: tournament selection, 2: roulette-wheel selection)
- runs is the number of independent runs to be performed
To launch a set of runs of the SA algorithm, give the following command inside
directory classes/:
java softcomp.genalg.SATest nvar moveIL maxIL alpha inittemp runs
where:
- nvar is the number of variables of the Boolean functions
- moveIL is the number of moves inside an inner loop
- maxIL is the number of inner loops to be performed
- alpha is the cooling parameter
- inittemp is the initial temperature
- runs is the number of independent runs to be performed
To verify the cryptographic properties of a Boolean function, give the following
command inside directory classes/:
java lowlevelfunc.boolfun.TestSingleBoolFunProp func_num nvar
where:
- func_num is the decimal representation of the Boolean function
truth table
- nvar is the number of variables of the Boolean function
- 1
- Clark, J.A., Jacob, J., Maitra, S., Stanica, P.: Almost
Boolean Functions: The Design of Boolean Functions by Spectral
Inversion. Comput. Intell. 20(3):450-462 (2004)
- 2
- Mariot, L., Leporati, A.: A Genetic Algorithm for Evolving
Plateaued Cryptographic Boolean Functions. In: Dediu, A.-H.,
Magdalena, L., Martin-Vide, C. (eds.) Proceedings of TPNC 2015.
LNCS, vol. 9477, pp. 33-45. Springer (2015)
Generated using LaTeX2HTML - Luca Mariot (luca.mariot@disco.unimib.it)