Distributed computation is ubiquitous in nature. Social insect colonies, neural networks, and cell clusters are just a few examples of systems that perform highly complex computation in a distributed manner through the interaction of many very simple units, or agents. We are interested in investigating these biological systems from the perspective of distributed computing theory, with two complementary goals: 1) better understand computation in biological systems by applying techniques and insights that have been developed to study human built computational systems, 2) study how to design highly robust and scalable distributed computation by taking inspiration from natural systems.
Our work on ant colonies focuses on a number of complex tasks which require cooperation between many ants performing relatively simple routines. We have studied the process by which scout ants search for new nest sites when their current home becomes too small or is destroyed. After identifying candidate sites, these ants recruit other ants in the nest sites to assess their quality, and eventually a decision is made via a quorum-based consensus algorithm. We have also studied how ants are able to estimate the population density within a nest, a key primitive for the quorum based consensus algorithm that they use. Other work includes looking at foraging and task allocation behavior. We are constantly looking to problems studied by biologists to see how we can look at them from a distributed computing lens.