Research Home page for Simon Harding

EmailEmail addresses Picture of Simon Harding
Skypesimon.l.harding
Telephone+1 709 737 4891
AddressDepartment Of Computer Science,
Memorial University of Newfoundland,
St John’s,
NL, Canada
A1B 3X5
Web GPGPGPU.com
EvolutionInMaterio.com
Memorial University


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

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.
 
Distributed genetic programming on gpus using cuda. (2009)
Simon L. Harding and Wolfgang Banzhaf.
Under review, 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
 
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
 
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

Teaching
CS3710 (Vocational Programming Languages) is finished for this semester.

If you would like to get a copy of the slides, please email me.


Brief CV
Below is a brief CV. Please e-mail me if you wish to obtain a full version.
Post doctoral research fellow
Jan 2008 - Present
Department Of Computer Science, Memorial University, Canada


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, hardingbib.bib and some Python.

  hit counter script