Research Home page for Simon Harding

EmailEmail addresses Picture of Simon Harding
Skypesimon.l.harding
Web GPGPGPU.com
EvolutionInMaterio.com
Machine Intelligence Ltd
Research Genetic Programming - CGP, SMCGP, SMCGP2
Imaging and Vision - CGP, CGP-IP, CGP on GPUs, (MS Accelerator, CUDA)
GPU Implementations of Genetic Programming - CGP, (MS Accelerator, CUDA, TidePowerd, GPU.NET)
Evolution In Materio - Geneitc Algorithms, Liquid Crystal
Visualisation - GTDiff
  Brief CV


Genetic Programming and Developmental Systems

My research interest in genetic programming and developmental systems is focused on practical applications. The Self modifying CGP I developed aims to develop a general purpose genetic programming system that allows for growth and development.

The representation is a graph that encodes both the computational elements and the instructions needed for growth/modification. The growth/ modification is environmentally sensitive – data coming into the graph determines which instructions are operated.

The system automatically can decide if development is needed – simply by evolving out the modification instructions .

Work so far shows that the system can evolve large modular systems (patterns, Boolean logic circuits) as well as behave as a normal GP system where modification is not needed (for regression, classification etc).

Adding the mechanism for modification to this system introduced no overhead in terms of evolability. Therefore, this representation should be appropriate to use when it is unclear if development(or any form of self modification) is needed.

Future work will investigate further uses of the representation for tasks such as growth of artificial neural networks.

I am also interested in the exploitation, during development, of the physical properties of the system and how these can be used to benefit artificial developmental systems.Fitness evaluation in genetic programming is typically a bottle neck. Parallelization is one mechanism to overcome this problem.

A traditional approach is to use a cluster of computers. However, modern graphics cards – Graphics Processing Units (GPUs) – can also be used.

GPUs are cheap, highly parallel (200+ processors on recent cards) and fast (1.3GHz per processor). Their SIMD architecture makes them ideally suited for GP use – where we typically have one evolved program and many test cases to evaluate.

I have shown that on a standard laptop, a speed increase of 30times can be expected when using the GPU to run fitness evaluations.
 
Mt-cgp: Mixed type cartesian genetic programming. (2012)
Simon Harding, Vincent Graziano, Juergen Leitner, and Juergen Schmidhuber.
In 14th Annual Genetic and Evolutionary Computation Conference, GECCO 2012 (To appear). ACM, 2012.
DownloadGoogle itBibtex
 
Smcgp2: finding algorithms that approximate numerical constants using quaternions and complex numbers. (2011)
Simon Harding, Julian F. Miller, and Wolfgang Banzhaf.
GECCO (Companion), pages 197--198. ACM, 2011.
DownloadGoogle itBibtex
 
Smcgp2: self modifying cartesian genetic programming in two dimensions. (2011)
Simon Harding, Julian F. Miller, and Wolfgang Banzhaf.
GECCO, pages 1491--1498. ACM, 2011.
DownloadGoogle itBibtex
 
Hardware acceleration for cgp: Graphics processing units. (2011)
Simon L. Harding and Wolfgang Banzhaf.
Cartesian Genetic Programming, Natural Computing Series, pages 231--253. Springer Berlin Heidelberg, 2011.
DownloadGoogle itBibtex
 
Self-modifying cartesian genetic programming. (2011)
Simon L. Harding, Julian F. Miller, and Wolfgang Banzhaf.
Cartesian Genetic Programming, Natural Computing Series, pages 101--124. Springer Berlin Heidelberg, 2011.
DownloadGoogle itBibtex
 
Gecco 2011 tutorial: cartesian genetic programming. (2011)
Julian F. Miller and Simon L. Harding.
GECCO (Companion), pages 1261--1284. ACM, 2011.
DownloadGoogle itBibtex
 
Developments in cartesian genetic programming: self-modifying cgp. (2010)
Simon Harding, Julian F. Miller, and Wolfgang Banzhaf.
Genetic Programming and Evolvable Machines, 11(3-4):397--439, 2010.
DownloadGoogle itBibtex
 
Self modifying cartesian genetic programming: finding algorithms that calculate pi and e to arbitrary precision. (2010)
Simon Harding, Julian F. Miller, and Wolfgang Banzhaf.
GECCO, pages 579--586. ACM, 2010.
DownloadGoogle itBibtex
 
A survey of self modifying cgp. (2010)
Simon Harding, Julian Francis Miller, and Wolfgang Banzhaf.
Genetic Programming Theory and Practice, 2010, 2010.
DownloadGoogle itBibtex
 
Variable population size and evolution acceleration: a case study with a parallel evolutionary algorithm. (2010)
Ting Hu, Simon Harding, and Wolfgang Banzhaf.
Genetic Programming and Evolvable Machines, 11(2):205--225, June 2010.
DownloadGoogle itBibtex
 
Cartesian genetic programming. (2010)
Julian Francis Miller and Simon L. Harding.
GECCO (Companion), pages 2927--2948. ACM, 2010.
DownloadGoogle itBibtex
 
Self modifying cartesian genetic programming: Parity. (2009)
S. Harding, J. F. Miller, and W. Banzhaf.
2009 IEEE Congress on Evolutionary Computation, pages 285--292, Trondheim, Norway, 18-21 May 2009. IEEE Computational Intelligence Society, IEEE Press.
DownloadGoogle itBibtex
 
Evolution, development and learning with self modifying cartesian genetic programming. (2009)
Simon Harding, Julian F. Miller, and Wolfgang Banzhaf.
In GECCO '09: Proceedings of the 11th Annual conference on Genetic and evolutionary computation, pages 699--706, New York, NY, USA, 2009. ACM.
DownloadGoogle itBibtex
 
Self modifying cartesian genetic programming: Fibonacci, squares, regression and summing. (2009)
Simon Harding, Julian Francis Miller, and Wolfgang Banzhaf.
Genetic Programming, 12th European Conference, EuroGP 2009, T \"ubingen, Germany, April 15-17, 2009, Proceedings, volume 5481 of Lecture Notes in Computer Science, pages 133--144. Springer, 2009.
DownloadGoogle itBibtex
 
Organic Computing, chapter Artificial Development, pages 201 -- 220. (2008)
Simon Harding and Wolfgang Banzhaf.
Springer Verlag, 2008.
DownloadGoogle itBibtex
 
Self-modifying cartesian genetic programming. (2007)
Simon Harding, Julian Francis Miller, and Wolfgang Banzhaf.
Genetic and Evolutionary Computation Conference, GECCO 2007, Proceedings, London, England, UK, July 7-11, 2007, pages 1021--1028. ACM, 2007.
DownloadGoogle itBibtex
 
A comparison between developmental and direct encodings. an update of the gecco 2006 paper 'the dead state'. (2006)
S. Harding and J. F. Miller.
Technical report, 2006.
DownloadGoogle itBibtex
 
The dead state: A comparison between developmental and direct encodings. (2006)
S. Harding and J. F. Miller.
In Genetic and Evolutionary Computation Conference (GECCO2006) Workshop Program: Complexity through Development and Self-Organizing Representations (CODESOAR). ACM Press, 2006.
DownloadGoogle itBibtex
 
A distributed evolutionary algorithm using c sharp and mono. (2006)
Simon Harding.
Technical report, 2006.
DownloadGoogle itBibtex
 
Evolution of robot controller using cartesian genetic programming. (2005)
Simon Harding and Julian F. Miller.
EuroGP, volume 3447 of Lecture Notes in Computer Science, pages 62--73. Springer, 2005.
DownloadGoogle itBibtex

Imaging and vision

After having seen the success of CGP and GPUs at solving basic image processing tasks, I became interested in developing these techniques further.

Initial work focused on evolving filters for noise reduction and for reverse engineering image processing techniques.

More recent work has moved onto object detection and classification using CGP. Not only is this approach being used in robotics such as the iCub, I have also started a company - Machine Intelligence - to deploy a new version to industrial applications.
 
The modular behavioral environment for humanoids and other robots (mobee). (UNKNOWN)
Mikhail Frank, Juergen Leitner, Marijn Stollenga, Gregor Kaufmann, Simon
The modular behavioral environment for humanoids and other robots (mobee).
DownloadGoogle itBibtex
 
Mars terrain image classification using cartesian genetic programming. (UNKNOWN)
J. Leitner, S. Harding, A. Forster, and J. Schmidhuber.
In 11th International Symposium on Artificial Intelligence, Robotics and Automation in Space (i-SAIRAS), Turin, Italy, September 2012.
DownloadGoogle itBibtex
 
icvision: A modular vision system for cognitive robotics research. (UNKNOWN)
J. Leitner, S. Harding, M. Frank, A. Forster, and J. Schmidhuber.
In 5th International Conference on Cognitive Systems (CogSys), Feb 2012.
DownloadGoogle itBibtex
 
Learning spatial object localisation from vision on a humanoid robot. submitted. (UNKNOWN)
J. Leitner, S. Harding, M. Frank, A. Forster, and J. Schmidhuber.
International Journal of Advanced Robotics Systems, 2012.
DownloadGoogle itBibtex
 
Transferring spatial perception between robots operating in a shared workspace. submitted. (UNKNOWN)
J. Leitner, S. Harding, M. Frank, A. Forster, and J. Schmidhuber.
IROS, 2012.
DownloadGoogle itBibtex
 
Towards spatial perception: Learning to locate objects from vision. (UNKNOWN)
Juergen Leitner, Simon Harding, Mikhail Frank, Alexander Forster, and Juergen
Towards spatial perception: Learning to locate objects from vision.
DownloadGoogle itBibtex
 
Cartesian genetic programming for image processing. (2012)
Simon Harding, Juergen Leitner, and Juergen Schmidhuber.
In To appear in Genetic Programming Theory and Practice X, Genetic and Evolutionary Computation. Springer, Ann Arbor, 2012.
DownloadGoogle itBibtex
 
Evolving novel image features using genetic programming-based image transforms. (2009)
T. Kowaliw, W. Banzhaf, N. Kharma, and S. Harding.
In Evolutionary Computation, 2009. CEC '09. IEEE Congress on, pages 2502--2507, May 2009.
DownloadGoogle itBibtex
 
Evolution of image filters on graphics processor units using cartesian genetic programming. (2008)
Simon Harding.
2008 IEEE World Congress on Computational Intelligence, Hong Kong, 1-6 June 2008. IEEE Computational Intelligence Society, IEEE Press.
DownloadGoogle itBibtex
 
Genetic programming on gpus for image processing. (2008)
Simon Harding and Wolfgang Banzhaf.
Proceedings of the First International Workshop on Parallel and Bioinspired Algorithms (WPABA-2008), Toronto, Canada, 2008, pages 65 -- 72. Complutense University of Madrid Press, Madrid, 2008.
DownloadGoogle itBibtex
 
Genetic programming on GPUs for image processing. (2008)
Simon Harding and Wolfgang Banzhaf.
International Journal of High Performance Systems Architecture, 1(4):231 -- 240, 2008.
DownloadGoogle itBibtex

Graphics Processing Units (GPU, GPGPU)

Fitness evaluation in genetic programming is typically a bottle neck. Parallelization is one mechanism to overcome this problem.

A traditional approach is to use a cluster of computers. However, modern graphics cards – Graphics Processing Units (GPUs) – can also be used.

GPUs are cheap, highly parallel (200+ processors on recent cards) and fast (1.3GHz per processor). Their SIMD architecture makes them ideally suited for GP use – where we typically have one evolved program and many test cases to evaluate.

I have shown that on a standard laptop, a speed increase of 30times can be expected when using the GPU to run fitness evaluations.
 
Optimizing shape design with distributed parallel genetic programming on gpus. (2012)
Simon Harding and Wolfgang Banzhaf.
Parallel Architectures and Bioinspired Algorithms, volume 415 of Studies in Computational Intelligence, pages 51--75. Springer Berlin / Heidelberg, 2012.
DownloadGoogle itBibtex
 
Implementing cartesian genetic programming classifiers on graphics processing units using gpu.net. (2011)
Simon Harding and Wolfgang Banzhaf.
GECCO (Companion), pages 463--470. ACM, 2011.
DownloadGoogle itBibtex
 
Distributed genetic programming on gpus using cuda. (2009)
Simon L. Harding and Wolfgang Banzhaf.
Technical Report, 2009.
DownloadGoogle itBibtex
 
Accelerating genetic programming through graphics processing units. (2008)
Wolfgang Banzhaf, Simon Harding, William B. Langdon, and Garnett Wilson.
Genetic Programming Theory and Practice VI, Genetic and Evolutionary Computation, chapter 15, pages 229--249. Springer, Ann Arbor, 15-17May 2008.
DownloadGoogle itBibtex
 
Fast genetic programming and artificial developmental systems on GPUs. (2007)
S. L. Harding and W. Banzhaf.
In 21st International Symposium on High Performance Computing Systems and Applications (HPCS'07), page 2, Canada, 2007. IEEE Computer Society.
DownloadGoogle itBibtex
 
Fast genetic programming on GPUs. (2007)
Simon Harding and Wolfgang Banzhaf.
Proceedings of the 10th European Conference on Genetic Programming, volume 4445 of Lecture Notes in Computer Science, pages 90--101, Valencia, Spain, 11 - 13 April 2007. Springer.
DownloadGoogle itBibtex

Evolution In Materio

In 1958 Gordon Pask described a method of manipulating a physical system (a series of electrodes in a chemical chamber) so that it would carry out a new function. This work was largely forgotten for many years. In 1996, Adrian Thompson demonstrated that when artificial evolution is sufficiently unconstrained it is possible for it to exploit physical properties for computation. He demonstrated this using an reprogrammable electronic device called an Field Programmable Gate Array (FPGA).

This inspired the idea that artificial evolution might be able to used to discover hitherto unknown ways of configuring matter to carry out computation. This led to a research project that demonstrated that artificial

evolution can be used to manipulate a liquid crystal device so that it can do computations that solve a number of tasks (frequency discrimination, robot control, Boolean logic).



I am particularly interested in the application of evolution to in materio computation. It is my position that the best way to use material for computation is to allow evolutionary algorithms to treat the system as a black box. We can therefore shield ourselves from our inability to understand what is happening inside the material system and still obtain computation.

These ideas were the focus of my doctoral thesis:

Evolution In Materio

Simon Harding

PhD Thesis, University of York, 2006
 
Evolution in materio: Exploiting the physics of materials for computation. (2008)
Simon L. Harding, Julian F. Miller, and Edward A. Rietman.
International Journal of Unconventional Computing, 4(2):155--194, 2008.
DownloadGoogle itBibtex
 
Encyclopedia of Complexity and System Science, chapter Evolution In Materio. (2007)
Simon Harding and Julian F. Miller.
Springer Verlag, 2007.
DownloadGoogle itBibtex
 
Evolution in materio: Evolving logic gates in liquid crystal. (2007)
Simon L. Harding and Julian F. Miller.
International Journal of Unconventional Computing, 3(4):243--257, 2007.
DownloadGoogle itBibtex
 
A framework for the automatic identification and extraction of computation from materials. (2006)
Simon Harding, James Neil, Klaus-Peter Zauner, Julian F. Miller, and Kester
A framework for the automatic identification and extraction of computation from materials.
DownloadGoogle itBibtex
 
Evolution in materio: Exploiting the physics of materials for computation. (2006)
Simon L. Harding, Julian F. Miller, and Edward A. Rietman.
http://www.citebase.org/abstract?id=oai:arXiv.org:cond-mat/0611462, 2006.
DownloadGoogle itBibtex
 
Evolution in materio : A real-time robot controller in liquid crystal. (2005)
Simon Harding and Julian F. Miller.
Proceedings of the 2005 NASA/DoD Conference on Evolvable Hardware, pages 229--238, Washington, DC, USA, 29 June-1 July 2005. IEEE Press.
DownloadGoogle itBibtex
 
Evolution in materio: Evolving logic gates in liquid crystal. (2005)
Simon Harding and Julian F. Miller.
In In Proceedings of the workshop on unconventional computing at ECAL 2005 VIIIth European. Winner of best paper award., page 12, 2005.
DownloadGoogle itBibtex
 
Evolution in materio: Investigating the stability of robot controllers evolved in liquid crystal. (2005)
Simon Harding and Julian F. Miller.
ICES, volume 3637 of Lecture Notes in Computer Science, pages 155--164. Springer, 2005.
DownloadGoogle itBibtex
 
Evolution in materio: Exploiting the physics of materials for computation. (2005)
Simon L. Harding, Julian F. Miller, and Edward A. Rietman.
Position paper at the ‘The Grand Challenge in Non-Classical Computation International Workshop’, York, 2005.
DownloadGoogle itBibtex
 
Evolution in materio: a tone discriminator in liquid crystal. (2004)
S. Harding and {J.F.} Miller.
In Evolutionary Computation, 2004. CEC2004. Congress on, volume 2, pages 1800--1807 Vol.2, 2004.
DownloadGoogle itBibtex
 
Evolution in materio: Initial experiments with liquid crystal. (2004)
Simon Harding and Julian Francis Miller.
pages 298--, 2004.
DownloadGoogle itBibtex
 
A scalable platform for intrinsic hardware and in materio evolution. (2003)
Simon Harding and Julian Francis Miller.
In EH '03: Proceedings of the 2003 NASA/DoD Conference on Evolvable Hardware, page 231, Washington, DC, USA, 2003. IEEE Computer Society.
DownloadGoogle itBibtex

Visualisation

Visualizing data effectively is important in helping people understand and use information. 
Exploring geo-temporal differences using gtdiff. (2011)
Orland Hoeber, Garnett Wilson, Simon Harding, Rene Enguehard, and Rodolphe
Exploring geo-temporal differences using gtdiff.
DownloadGoogle itBibtex
 
Large network analysis for fisheries management using coevolutionary genetic algorithms. (2011)
Garnett Carl Wilson, Simon Harding, Orland Hoeber, Rodolphe Devillers, and
Large network analysis for fisheries management using coevolutionary genetic algorithms.
DownloadGoogle itBibtex
 
Visually representing geo-temporal differences. (2010)
O. Hoeber, G. Wilson, S. Harding, R. Enguehard, and R. Devillers.
In Proceedings in the IEEE Symposium on Visual Analytics Science and Technology, pages 229--230, 2010.
DownloadGoogle itBibtex
 
Detecting anomalies in spatiotemporal data using genetic algorithms with fuzzy community membership. (2010)
G. Wilson, S. Harding, O. Hoeber, R. Devillers, and W. Banzhaf.
In Proceedings of the International Conference on Intelligent Systems Design and Applications, pages 97--102, 2010.
DownloadGoogle itBibtex



Brief CV
Below is a brief CV. Please e-mail me if you wish to obtain a full version.
Company Director (and everything else!)
April 2012 - Present
Machine Intelligence Ltd

Post doctoral researcher
April 2012 - Present
University of Bristol
Researching automatic identification of penguins from imaging, and developing tools to help biologists in the field capture and analyse the data.

Post doctoral researcher
April 2011 - April 2012
IDSIA (Istituto Dalle Molle di Studi sull'Intelligenza Artificiale)
Resesarch included robotics, vision and inverse reinforcement learning. My main project was the STIFF project looking at how variable impedance, modelled from humans, could be applied to robot control.

Post doctoral research fellow
Jan 2008 - April 2011
Department Of Computer Science, Memorial University, Canada

Researched many applications in visualization, genetic programming and design.

Collaborateur scientifique
May 2007 – Jan 2008
Laboratory of Intelligent Systems, EPFL, Lausanne, Switzerland
Primarily researching the use of an bio-inspired analog network encoding and its applicability to evolving robust electronic circuits.

Post doctoral research fellow
Feb 2006 – May 2007
Department Of Computer Science, Memorial University, Canada
Primarily researching the properties of genetic programming developmental systems. Other research involves physics based computation, using cluster-based simulations of complex systems and evolving control strategies. Other research investigated high performance implementation of these systems.

Consultant Control Software Engineer
Sept 2001 - Present
Software In Control Ltd.
Consultancy in real time control and remote telemetry. Current projects include high precision, non-contact laser measurement systems and robotic control (for Scantron Industrial Products), remote wireless web-cams (for BBC) and telemetry over GSM networks (PIC Ltd). Role includes development on multiple platforms (Windows XP/Embedded, CE and Linux) and PLC units.

Teaching Assistant
Sept 2001 - Dec 2004
School Of Computer Science, University Of Birmingham
Teaching undergraduates and masters students, in both laboratory demonstrations and small group tutorials. Courses taught include: Java, neural networks, robotics and AI programming.

Software Engineer
Jun 2001 - Sept 2001
Delcam, Birmingham
Full time position, developing CAD file format conversion applications and upgrading existing application for OLE automation.

Control Engineer
Jun 1997 - Sept 2000
Honeywell Control Systems, Bracknell
Apprentice control engineer until Sept 1998. Undergraduate degree was sponsored by Honeywell. Worked full time as control engineer during holiday periods 1998-2000. Roles included: site visits for equipment configuration, repair and calibration and distributed control system development for large-scale projects for the petrochemical industry.


Largely generated automagically using bibliography.ps,bibliography.pdf, hardingbib.bib and some Python.

Other sites to visit: Software In Control
Julian Miller's home page
CGP Homepage
Wolfgang Banzhaf's home page
Juxi Leitner's home page
Juergen Schmidhuber's home page
Garnett Wilson's home page
Machine Intelligence Ltd
  hit counter script