Skip to content

Program files structure_eac3

Karel Kubicek edited this page Feb 13, 2017 · 1 revision

EACirc produces number of output files containing circuits, statistics and saved state.

State and configuration files

These files are formatted as XML documents, order of the directives is irrelevant, if parent-child relations are kept (with one exception, see below). The files is validated as XML when loaded -- if not valid, program will refuse to load them. If it is not said differently, for bool variables is any non-zero value considered as '1'.

Configuration file

Holds all configuration directives needed to run EACirc. For project specific parts, see project documentation. For its structure and semantics, see detailed XML structure.

State file

Holds complete state of all random generators, seeds and basic run info. For its structure and semantics, see detailed XML structure.

Population file

Holds basic population info and full genomes (no statistics!). The order of the directives IS RELEVANT -- genome order determines the order when loading population. Although this may be irrelevant in most cases, be aware of it, because it may influence the statistics and bit-to-bit repeatability. For its structure and semantics, see detailed XML structure.

Score files

Result files with average and best scores, galib log file.

GAlib score file

File generated by GAlib, saves statistics of each generation. Exact file name can be found in EACirc constants for files (currently scores.log). Each line corresponds to a single generation. Numbers in the line characterize given generation in the following manner:

  • generation number
    Note: This number is reset every time the state is saved in order to preserve determinism and ability to recommence computation.
  • mean fitness
    average fitness of all individuals in current population
  • maximum fitness
    fitness of the best individual in current population
  • minimum fitness
    fitness of the worst individual in current population
  • fitness deviation
    standard deviation of the fitness scores in current population
  • fitness diversity
    diversity of the fitness scores in current population (number between 0 and 1 where 0 indicates that each individual is completely different than every other individual)

Fitness progress file

Statistics of the selected populations (subset of the GAlib score file contents). Only generations just after (or before) test vector change are displayed. Exact file name can be found in EACirc constants for files (currently fitnessProgress.txt).

Each line corresponds to a single generation. Numbers in the line are: generation number, average fitness, maximum fitness, minimum fitness.

Circuit files

Generated circuits, ideal for static testing or other use. Prunned best individual at the end of computation is saved under the name 'EAC_circuit'. Intermediate circuits (best individual after/before test vector change) are saved if set so in the configuration file. These circuits are named 'circuit_g<generation>_<fitness>[_prunned]'.

Generation format (.xml)

Contents details to be added.

Text format (.txt)

Contents details to be added.

Code format (.c)

Contents details to be added.

Graph format (.dot)

Contents details to be added.

Other files

Miscellaneous other files created by EACirc.

Log file

Holds run logs, if available. Exact file name can be found in EACirc constants for files (currently eacirc.log).

Test vector files

Used test vectors, if their logging was enabled. Saved in both binary and human readable forms. Exact file names can be found in EACirc constants for files (currently test_vectors.bin and test_vectors_debug.txt).

The binary test vector file contains a text header with basic settings (to avoid confusion about the binary data). The header is formatted as a value, tab character and description. After the last value is an extra newline and binary test vectors (pairs of test vector input and output with not separator). Individual sets are not separated.

The human readable test vector file contains the final vectors written in hexadecimal. In case of higher verbosity, extra information such as individual plaintexts, keys and IVs are also provided.

Fraction file

Contains one decimal nubner between 0 and 1 corresponding to computatation progress. 0 denotes the beginning of computation, 1 a finished computation. Exact file name can be found in EACirc constants for files (currently fraction_done.txt).

Clone this wiki locally