This is the code and data corresponding to the article "Outsourcing Control requires Control Complexity" (arXiv-preprint: https://arxiv.org/abs/2209.01418).
There we analyze the behavior of the Integrated Information measure, which can be seen as a measure for the complexity of the agent's controller, while the agents learn to predict and navigate their environment. This simple setup allows us to additionally calculate measures for every information flow among the agent's brain, body and environment, including a measure for Morphological Computation. The movement of the agents is demonstrated in the video below. If their body touches a wall they are stuck, as long as at least one of the sensors is still detecting a wall.
StickyWalls.mp4
In the main.py document one can change the agents from fully connected to limited (no integrated information possible) by setting the integrated information variable in line 57 to 0. The sensor length can be changed in line 64.
The code requires a python version 3 and it was tested on python 3.8 with the following packages:
- matplotlib 3.7.1
- shapely 1.8.5
- scipy 1.10.1
- descartes 1.1.0.
The program saves for every 100th step the measures in the file with the path given in line 67 of the main.py. There we have in that order:
- Integrated Information
- Morphological Computation
- Reactive Cotnrol
- Sensory Information
- Total Information Flow
- Command
- P(goal)
- Sensory Prediction
- Actuator Prediction
- Synergistic Prediction
- Full Prediction
- Goal Prediciton
- Action Effect
- Success Rate
The animation displays the results for the Integrated Information, Morphological Computation, Action Effect, Sensory Information, Command and Total Information Flow, as depicted in the picture below.
If there are questions or suggestions, don't hesitate to contact me at carlotta.langer@tuhh.de