Genetic Algorithms and Genetic Programming
Genetic Algorithms and Genetic Programming methods are a family of
computational models which solve hard combinatorial problems by means
of a mechanism inspired by biological evolution. Given a hard problem
to solve, the system makes a number of initial guesses at the solution,
ranks this population of guesses according to fitness at solving the
problem in hand, then combines and mutates the fittest solutions to
produce the next generation of solutions. The process continues until
a perfect solution is found, or no further improvement is possible.
These algorithms have found to be very good at solving hard real-world
combinatorial optimisation problems. Just a few examples are timetabling
(including the exam timetabling software used at the University of
Edinburgh and various school timetabling systems), optimisation of
manufacturing schedules, design of channel routing networks in VLSI
design, applications in bioinformatics (protein and RNA folding), and
many more. The field of Genetic Programming is relatively new, but the
technique has already been used to evolve programs that are better
than the best programs written by people to solve a number of
difficult engineering problems. Genetic Programming can also be
applied to the design of circuits and a number of new designs created
by evolutionary means have already been patented.
The techniques taught on this course are very robust and have wide
applicability. This course will enable delegates to apply these methods
to hard search, optimisation and machine learning problems.
The course consists of 10 lectures, 5 tutorial sessions and 5 practical
sessions. The following topics will be covered:
- The Components of a Genetic Algorithm
- Applying a Genetic Algorithm to a Problem
- Designing a Genetic Algorithm
- Applications I: Scheduling and Timetabling
- Introduction to Genetic Programming
- Varieties of Genetic Programming
- Designing a Genetic Programming System
- Applications II: Finding Rules in Data
- Introduction to Ant Colony Optimisation
- Applications III: Optimal Vehicle Routing
The course is intended for senior software engineers and other technical
specialists who are interested in a methodological approach for designing
systems using evolutionary computation, or who are searching for technologies
which can solve hard optimisation problems. The course should also be of
direct interest to project managers who need to have a strong technical
awareness of what kind of problems these techniques can solve.
Some programming experience (in any language).
The course is no longer available. Contact the
School of Informatics
for study opportunities.