./native/ contains the .cc files for our genetic programing problems:
- Signal-counting problem (alt-signal-exp.cc)
- Contextual-signal problem (bool-calc-exp.cc)
- Independent-signal problem (chg-env-exp.cc)
- Boolean-logic calculator problem (bool-calc-exp.cc)
Below, we give the external dependencies for compiling our experiments, and we give which source files are associated with each of the problems.
- Empirical
- We used a (minimally) modified version of the Empirical library that can be found on my fork of Empirical; here's the exact commit: https://github.com/amlalejini/Empirical/tree/e72dae6490dee5caf8e5ec04a634b483d2ad4293
- commit
e72dae6490dee5caf8e5ec04a634b483d2ad4293
- commit
- Main Empirical repository: https://github.com/devosoft/Empirical
- If you're interested in using Empirical in your own projects, I recommend jumping over to the main Empirical repository!
- We used a (minimally) modified version of the Empirical library that can be found on my fork of Empirical; here's the exact commit: https://github.com/amlalejini/Empirical/tree/e72dae6490dee5caf8e5ec04a634b483d2ad4293
- SignalGP implementation
- repository: https://github.com/amlalejini/SignalGP
- here's a link to the exact commit: https://github.com/amlalejini/SignalGP/tree/83d879cfdb6540862315dc454c1525ccd8054e65
- commit
83d879cfdb6540862315dc454c1525ccd8054e65
- commit
Also called 'alternating signal environment' in source code.
Experiment-specific source files:
The contextual-signal problem is (perhaps confusingly) carried out using the boolean-logic calculator source code. Except, instead of providing input/output examples that describe calculator problems, we configure categorical output (CATEGORICAL_OUTPUT
) and provide examples that look more like this.
Also called 'changing environment problem' in source code.
Experiment-specific source files:
- Event.h
- Defines custom SignalGP event types used across different tasks.
- matchbin_regulators.h
- Defines the exponential tag-matching regulator used in this work.
- mutation_utils.h
- Defines mutator utility for SignalGP programs.
- reg_ko_instr_impls.h
- Defines knockout regulation instruction implementations.
- The need for knocking out promotion/repression individually (as opposed to just knocking out regulation entirely) came later on during this project. Each regulation instruction has a KO_UP_REG and KO_DOWN_REG variant. While less than ideal, this was the least invasive way work this functionality in at the time.