Exploring Evolution through ABM

So, what is Agent-based modelling?

Alright. How to go about making an ABM then?

So what does my model do?

  • age : How old the bacterium is.
  • energy : The current amount of energy a bacterium has.
  • sensory_radius : How far away the bacterium can spot food.
  • reproduction_threshold : How much energy a bacterium needs to reproduce through binary fission.
  • speed : How fast the bacterium can move, measured as the maximum number of steps it can take in any direction. The amount a bacterium eats in one iteration is also proportional to this parameter.
  • food_target : The location of the food source that a bacterium is moving toward.
  • If a bacterium grows too old (as determined by a global cap on lifetime), or runs out of energy, it dies.
  • If it has energy above its reproduction_threshold, it reproduces through binary fission. In this process, each child inherits the parent’s sensory_radius, reproduction_threshold and speed with some genetic variation. Additionally, the energy of the parent is distributed between the two children, after removing a fixed cost of reproduction.
  • If the bacterium is currently on a cell with some food, it will eat some food and gain energy. The amount of food it eats is proportional to its speed.
  • The bacterium will look for food. If it sees food, it will move toward it. Otherwise, it will move around randomly.
  • Each iteration, if not eating, the bacterium loses some energy proportional to its sensory radius and distance moved that iteration

What happens when the model runs?

Heatmap showing distribution of food on a 100 x 100 grid
The topmost plot is variation of population during the simulation. Below that, plots show the variation of sensory radius, reproduction threshold and speed of the bacteria with time. The line is the average value for each parameter, and around it is the standard deviation band.

My thoughts




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Data Augmentation with GANs for Defect Detection

TensorFlow serving warmup file

Sequence-to-Sequence Models: From RNN to Transformers

A Review on Adversarial Attacks on Machine Learning Algorithms

MLOps: Maturity Levels for Automation in Machine learning

The relationships between basic concepts of Supervised Machine Learning

Basic Machine Learning Tutorial Series-1

Do you want to Recognize Human Emotion here’s the way Using PyTorch

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Aayush Sabharwal

Aayush Sabharwal

More from Medium

A visual comparison of COVID-19 Case Numbers and Vaccine Propagation in the US

Linear Regression solved with Gradient Descent in IBM DB2

Behavior of blinds: A sketch of scientific practice

Do Left Handed People Really Die Young — Datacamp datasets