Hello, folks.
The concepts of evolution and adaptation are ubiquitous in complex systems.
As we'll see in upcoming units, the mechanisms of Darwinian natural selection
are relevant not only for biological organisms,
but turn out to be central for social and technological systems as well.
Computer scientists have been interested in simulating biology
for as long as computers have been around.
In this unit, I'll cover one approach to biologically-inspired computation,
called genetic algorithms.
These algorithms were initially developed as a way of modelling evolution and
adaptation across disciplines, but they've also turned out to be
very successful as artificial intelligence methods,
a way of evolving programs and other computational objects,
without having to engineer them ourselves.
Sometimes, the results of these algorithms are very surprising.
They come up with things that no human would have thought of.
And sometimes the solutions that they come up with
are more successful than those designed by humans.
In this unit, I'll cover how genetic algorithms work,
and how they've been used in the real world.
Let me start by outlining the basics of evolution by natural selection.
First, organisms inherit traits from their parents.
The traits are inherited with some variation,
via mutation, sexual recombination, and other variation-generating mechanisms.
But due to competition for limited resources, the organisms
best adapted to the environment tend to produce the most offspring.
This was Darwin's insight into the idea of natural selection.
Selection is due to competition.
In that way, traits producing adaptable individuals spread in the population.
Early on, computer scientists inspired by biology,
saw that this could all happen not just in nature,
but also inside computers, where computer organisms,
such as programs, could play the role of biological organisms,
and could evolve via Darwinian evolution.
One of the first people to develop this idea in any detail,
was a computer scientist, John Holland,
at the University of Michigan, who in the 1960's and the 1970's,
developed the idea of genetic algorithms, also known as GA's.
Holland introduced the notion of GA's in his book,
"Adaptation in Natural and Artificial Systems", published in 1975.
This book presented a mathematical framework for understanding
adaptation in a very general way, one that went beyond
biological adaptation and encompassed social, technological, and
artificial adaptation in computers.
The last part lead to the development of genetic algorithms and their subsequent
application in many real-world problems.
Here's some examples of real-world use of genetic algorithms.
This is just to give you a sense of of the diversity of applications.
GA's have been used to design parts of aircraft by GE and Boeing.
Also by NASA to design antennae for spacecraft.
John Deere and Company have used genetic algorithms to optimize
assembly line scheduling.
They've been used by several companies to assist in automated drug discovery.
GA's have been used to learn to detect fraud in
financial transactions and financial trading.
They've been used to develop programs for the automated analysis
of satellite images at Los Alamos,
and they've been used to generate
realistic computer animation in several movies,
including "Lord of the Rings" and "Troy".