The Evolutionary Computation Research Group is active in the following areas: Research and application of computational algorithms and heuristics based on iterative population-based systems. This is accomplished through the Darwinian principle of survival of the fittest, which is the main driving force we use for searching for novel and hypothesised better solutions to a wide range of problems. Similar naturally inspired algorithms, such as Particles Swarm Optimisation, are included in the scope of evolutionary computation. We focus specifically on the following approaches:
Genetic Programming (GP)
We use a network of computers (Grid Computing) to keep a large population of computer programs. The programs change their behaviour over time and give birth to new programs. We use the best of these programs to perform a designated task. The programs are usually used to make a larger intelligent system (e.g. a predictor agent).
Learning Classifier Systems (LCS)
Genetics-Based Machine Learning (GBML), especially Learning Classifier Systems (LCS), seeks to learn an optimal solution to a problem through interaction of the learning agent with an environment. This may be a robot exploring a maze or a data mining program determining the best stock market portfolio. Solutions are bred cooperatively to explore a wide range of potential solutions, prior to fine tuning by exploiting local information close to the optimal solution. LCS form a population of 'if (conditions) then (actions)', that are manipulated by genetic operators, such as crossover, which are inspired by natural genetic operations. They are a transparent learner so can help visualise the patterns discovered in the data
Particles Swarm Optimisation (PSO)
This is a relatively new technique that searches for optimum solutions via inspiration from flocks of animals, e.g. birds, searching for a goal, e.g. a rich cornfield. Multiple potential solutions, termed particles, are evolved based on global and local information on the worth of discovered solutions. The swarm is kept cohesive by a topological relationship between the agents, which has a velocity component to quickly home in on promising regions of search.
GP for Feature Manipulation
This is mainly used to improve the performance of classification system. The programs evolved by GP act like functions, each of which establishing a mapping between features of a classification task. These mappings can act as constructed features to boost the classification performance. They can also reveal some otherwise hidden information about the relationship between features. The information can later be used for feature ranking and selection.
Application areas of evolutionary computation
- Feature Manipulation GP is mainly used to improve the performance of classification system. The programs evolved by GP act like functions, each of which establishing a mapping between features of a classification task. These mappings can act as constructed features to boost the classification performance. They can also reveal some otherwise hidden information about the relationship between features. The information can later be used for feature ranking and selection.
- Image processing, including automatic generation of ascetically pleasing images (EvoArt). Computer vision and image processing is a fascinating field as attempts to replicate one of the main ways humans interact with the world. From identifying edges in images to combining edges together to recognise objects there are many tasks that humans find easy, which machines still struggle to compute. Both the effectiveness and efficiency of such methods are being addressed by our group.
- Cognitive robotics and artificial cognitive systems, especially through GBML. Learning Classifier Systems grew out of research investigating how machines could become cognitive systems, i.e. perceive, represent, reason about, learn, and effect the world around them. The group has a fleet of small robots in an augmented reality test domain, in order to conduct experiments on agent learning, e.g. replicate rat-like behaviours in small robots in order to explore damaged buildings.
- Operations Research, in partnership with the school of Mathematics, Statistics and Operations Research we investigate the planning, scheduling and operations of complex tasks. A wide range of tasks are covered by this discipline, from the scheduling of rugby/football/cricket leagues to the rostering of nurses in a local hospital.
- Bioinformatics, in partnership with School of Biology we investigate the use and development of evolutionary computation and machine learning methods for complex biological applications/tasks, particularly protein analysis, classification and modelling, medical image analysis, etc.
We also investigate the research platforms required for Evolutionary Computation research. We use a network of computers (Grid Computing) to develop a large number of our programs. This increases the range of tasks we can explore as well as improving the confidence of our results in any given domain. The potential of multiprocessor systems, e.g. general-purpose graphical processing units (GPGPUs) that are found on high-end computer graphics cards, is being explored.
For more information on our research, visit the publications page