Evolutionary Boolean Reaction Systems is a new algorithm paradigm to construct bent and highly non linear balanced Boolean functions.
-
src/
Contains all headers (.hpp) and source (.cpp) files implementing the following classes:BoolReaction: encodes reactions over Boolean entities with reactants and inhibitors (RandIbitsets);BRS: models a Boolean Reaction System as a collection ofBoolReactionobjects;EvoBRS: implements the EvoBRS algorithm;BoolFunction: represents Boolean functions as truth tables, providing methods to compute the Fast Walsh–Hadamard Transform (FWHT), Hamming weight, non linearity and unbalancedness;
-
results/folder where the experiments conducted are stored. -
scripts/folder for auxiliary scripts. -
Parameters.envfile to set parameters before building the code. -
run.shbash file to automatically build and run the EvoRS algorithm for theBALor theBENTproblem.
C++17-compatible compiler (e.g. g++ 7.0+ or clang++ 6.0+).
Configure the algorithm parameters in the file Parameters.env:
PROBLEM_NAMEmust be set to"BAL"or"BENT";Nis size of the problem to solve;INITSIZEMIN,INITSIZEMAXare the minimun and maximum number of reactions in a random Boolean Reaction System;MAXFITEVALSis the number of fitness evaluation for each run.
Running run.sh script will:
- Build an executable saved in the
./bin/folder. - Run the executable
NUM_RUNStimes. - Save the results in a newly created folder inside
results/.