Professional Courses in Informatics at The University of Edinburgh

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 been 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.

Course Outline

The course covers the following topics:
  • 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 consists of 10 lectures, 5 tutorial sessions and 5 practical sessions.

Course Schedule

This course runs over 5 days, either at AIAI or, exceptionally, at the offices of a host organisation.

Course Presenters

Contact Information

Ken Baird,
AIAI/Centre for Intelligent Systems and their Applications,
Division of Informatics, The University of Edinburgh,
80 South Bridge, Edinburgh EH1 1HN, UK
Tel: +44 131 650 2732; Fax: +44 131 650 6513; Email:


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.


This course will enable delegates to apply Genetic Algorithm and Genetic Programming methods to hard search, optimisation and machine learning problems.


The course is intended for practising analysts, engineers, managers and teachers who have some previous programming experience. No particular programming language is assumed.

Related Courses

This course may be combined usefully with a sister course on Artificial Intelligence Programming in Java which provides an introduction to the Java programming language and the techniques of object-oriented programming by examining the design and implementation of the Genetic Algorithm toolkit used by this course.

Page maintained by, Last updated: Thu Aug 1 12:05:47 2002