Biological systems must solve problems to survive, and their solutions can be viewed as “algorithms.” Our goal is to uncover these algorithms, translate them to improve computer science, and use them to spark new hypotheses about biological function and dysfunction.
Saket Navlakha’s lab studies “algorithms in nature,” i.e., how collections of molecules, cells, and organisms process information and solve interesting computational problems critical for survival. Indeed, there are many shared goals and constraints faced by biological and engineered systems, including: (1) the use of distributed networks as a backbone for information processing and communication; (2) trade-offs between optimization criteria, including efficiency, robustness, and adaptability; and (3) the need to develop low-cost, scalable solutions that conserve important metabolic or physical resources. An algorithmic perspective on biological problem-solving can lead to two ends: (1) new biological algorithms that are simple, flexible, and robust for use in computer science applications, and (2) quantitative frameworks to predict behavior, raise testable hypotheses, and guide experiments. Our lab has most recently focused on studying neural circuit computation and plant architecture optimization from this perspective.