This work is accepted as a full paper to the 2021 Conference on Artificial Life.. You can watch our talk there between July 19-23, 2021!
The corresponding author is Sarah Albani; contact her at sarahalbani at gmail dot com.
This work uses a new approach, the comparative hybrid approach, to investigate what components of computational structures allow for the performance of certain cognitive tasks. We look at sparsity and discretization as key elements of computational cognition.
We found that:
- Discretization alone helps performance on certain tasks, including a path-following task and a block-catching task, and
- Discretization alone hinders, but in combination with sparsity helps, performance on a simple memory task, and
- These results cannot be explained solely by the architecture of the brains in question
We hypothesize for future study that:
- The genetic encoding of computational substrates, not just their final virtual hardware, is important for fully understanding cognitive performance, and
- Information integration plays a key role in which genetic architectures are suitable for which cognitive tasks
Code in source/
is from MABE; contact Cliff Bohm or other MABE project developers for assistance.
Code in analysis/
is written by Acacia Ackles. Contact them for assistance.
All required code, including the source code for MABE, is contained in this repo; clone the repository, then continue to the following steps.
See the MABE Quickstart Guide for information on how to compile MABE. Brief instructions for command-line compilation of MABE are provided below.
First, make sure to cd source
into the source folder. Then simply run:
sh tools/setup.cmd
./mbuild
This will generate the executable MABE
inside the new work directory work/
.
Settings files for this experiment are stored in source/settings
. To run experiments with the proper conditions, you must copy all files from settings/
to work/
:
cp settings/* work/
To ensure the experiment runs properly, you should move into the work folder with cd work
.
Warning: If you want to run the experiment exactly the way we ran it, you will be running 10 replicates of 21 different experimental conditions for 200,000 updates. This will take a very long time. You probably don't want to do this unless you are launching the experiments on a computing cluster.
If you are at MSU, launching on a computing cluster can be achieved by doing the above on the HPCC and using the command
python3 ../tools/mq.py -i
If you are not at MSU, you can adjust down the number of runs or replicates by editing the mq_conditions.txt
file. See again the MABE wiki for some ideas on how to do this, and in particular the default conditions file.
If you do wish to run these replicates locally, after editing the conditions file to something sane, you can run
python3 ../tools/mq.py -l
If you want to generate our data visualizations and statistical comparisons after generating your data, navigate your way to the analysis/
folder.
All scripts in this folder are set up to run sequentially.
01_subind_repMerge.py
will compile the data from the files generated by running MABE above.
You must specify the first and last replicate of the data, and these replicates should be sequential. For example, if you ran replicates 101 to 120, you would input:
python3 01_subind_repMerge.py 101 120
The result will be in the folder data/
.
Data visualization is accomplished using R. In the script, you should change the variable proj_path
to this repo's path on your local machine. Otherwise, the script can be run as-is.
Statistical comparison is also accomplished using R. As above, change your proj_path
variable as needed.
And that's it! You've successfully replicated our project!
For issues in this documentation, contact Acacia Ackles.