02-317 Algorithms in Nature
9 units, Carnegie Mellon University
Computer systems and biological processes often rely on networks of interacting entities to reach joint decisions, coordinate and respond to inputs. There are many similarities in the goals and strategies of biological and computational systems which suggest that each can learn from the other. These include the distributed nature of the networks in biology molecules, cells, or organisms often operate without central control, the ability to successfully handle failures and attacks on a subset of the nodes, modularity and the ability to reuse certain components or subnetworks in multiple applications and the use of stochasticity in biology and randomized algorithms in computer science. In this course we will start by discussing classic biologically motivated algorithms including neural networks inspired by the brain, genetic algorithms sequence evolution, nonnegative matrix factorization signal processing in the brain, and search optimization ant colony formation. We will then continue to discuss more recent bidirectional studies that have relied on biological processes to solve routing and synchronization problems, discover Maximal Independent Sets MIS, and design robust and fault tolerant networks. In the second part of the class students will read and present new research in this area. Students will also work in groups on a final project in which they develop and test a new biologically inspired algorithm. No prior biological knowledge required.
Prerequisites: 15-251 and 15-210
Courseweave needs JavaScript to show sections, workloads and planning tools.