Skip to content

unicamp-lbic/small_world_ca

Repository files navigation

The role of the interaction network in the emergence of diversity of behavior

Authors: Godoy, Tabacof & Von Zuben

Abstract

How can systems in which individuals' inner workings are very similar to each other, as neural networks or ant colonies, produce so many qualitatively different behaviors, giving rise to roles and specialization? In this work, we bring new perspectives to this question by focusing on the underlying network that defines how individuals in these systems interact. We applied genetic algorithms to optimize rules and connections of cellular automata in order to solve the density classification task, a classical problem for decentralized computation. The networks used were all generated by the introduction of shortcuts in an originally regular topology, following the small-world model. We observed the existence of different classes of cells' behaviors in the best cellular automata found -- most cells were responsible for memory and others for integration of information --, even though all cells follow the exact same rules. Through the analysis of structural measures and patterns of connections (motifs) in successful cellular automata, we observed that the distribution of shortcuts between distant regions and the speed in which a cell can gather information from different parts of the system seem to be the main factor for the specialization we observed, demonstrating how heterogeneity in a network can create heterogeneity of behavior.

Usage

usage: evolve_ca.py [-h] [--folder FOLDER] [--min-p MIN_P] [--max-p MAX_P]
                    [--step-p STEP_P]
                    config_file

Simulate the evolution of small-world elementary cellular automata.

positional arguments:
  config_file      File containing the configuration for the ECAs to evaluated

optional arguments:
  -h, --help       show this help message and exit
  --folder FOLDER  Folder in which the result of the simulation will be stored
  --min-p MIN_P    The smallest amount of rewiring that will be tested
  --max-p MAX_P    The largest amount of rewiring that will be tested
  --step-p STEP_P  The increment in the amount of rewiring in each test
                   performed

To run the code you need to have Python 2 and PyCUDA installed.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published