Skip to main content
Article thumbnail
Location of Repository

Genetic Programming for Low-Resource Systems

By David Robert White

Abstract

Embedded systems dominate the computing landscape. This dominance is increasing with the advent of ubiquitous computing whereby lightweight, low-resource systems are being deployed on a vast scale. These systems present new engineering challenges: high-volume production places a stronger emphasis on absolute cost, resources available to executing software are highly constrained, and physical manufacturing capabilities approach hard limits. Add to this the sensitive nature of many of these systems, such as smartcards used for financial transactions, and the development of these systems becomes a formidable engineering challenge. \ud \ud For the software engineer, the incentive to produce efficient and resource-aware software for these platforms\ud is great, yet existing tools do not support them well in this task. It is difficult to assess the impact \ud of decisions made at the source code level in terms of how they change a system's resource consumption. Existing toolchains, together with the very complex interactions of software and their host processors, can produce unforeseen implications at run-time of even small changes. \ud \ud We could describe such a situation as an instance of programming the unprogrammable, and Genetic Programming is one solution method used for such problems. Genetic Programming, inspired by nature's ability to solve problems involving complex interactions and strong pressures on resource consumption, is a clear candidate for attacking the challenges presented in these systems. Genetic Programming facilitates the creation and manipulation of source code in a way that grants us fine control over its measurable characteristics.\ud \ud In this thesis, I investigate the potential of Genetic Programming as a tool in controlling the non-functional properties of software, as a new method of designing code for low-resource systems. I demonstrate the feasibility of this approach, and investigate some of the ways Genetic Programming could be utilised by a practitioner. In doing so, I also identify key components that any application of Genetic Programming to such a domain will require.\ud \ud I review current low-resource system optimisation, Genetic Programming and methods for simultaneously handling multiple requirements. I present a series of empirical investigations designed to provide evidence for and against a set of hypotheses regarding the success of Genetic Programming in solving problems within the low-resource systems domain. These experiments include the creation of new software, the improvement of existing software and the fine-grained control of resource usage in general. Thus I will address a range of non-functional requirements related to the resource-consumption of a program, and demonstrate how we can apply techniques inspired by natural evolution in combination with conventional optimisation methods to address some of the problems that the plethora of low-resource systems present. \ud \ud To conclude, I review the progress made, reassess my hypotheses, and outline how these new methods can be carried forward to a wide range of applications.\u

Publisher: Computer Science (York)
Year: 2009
OAI identifier: oai:etheses.whiterose.ac.uk:757

Suggested articles

Citations

  1. (2000). (Cited on page 117.)
  2. (2005). (Cited on page 19.) Huygens Search and Optimisation Benchmarking Suite,
  3. (2003). (Cited on page 30.)
  4. (2006). (Cited on page 90.)
  5. (1997). (Cited on page 92.)
  6. (2004). (Cited on pages 70, 71, and 82.)
  7. (2006). (Cited on pages 86, 92, and 125.)
  8. (2004). (Cited on pages 91 and 96.) Mersenne Twister PRNG. University of Hiroshima,
  9. (2002). A design alternative for cache on-chip memory in embedded systems. doi
  10. (1997). Breaking Papers at the 1997 Genetic Programming Conference, pages 207–212. Stanford Bookstore,
  11. (2004). Cross-domain features of runs of genetic programming used to evolve designs for analog circuits, optical lens systems, controllers, antennas, mechanical systems, and quantum computing circuits. doi
  12. (2005). DSP address optimization using evolutionary algorithms.
  13. (2001). Embedded Systems Design: The ARTIST Roadmap for Research and Development,
  14. (2003). Energy macromodeling of embedded operating systems.
  15. (2000). Evolutionary module acquisition.
  16. (1989). Evolving a computer program to generate random numbers using the genetic programming paradigm.
  17. (2006). Fitness sharing and niching methods revisited. doi
  18. (1990). Genetic algorithms for multiobjective optimization: Formulation, discussion and generalization.
  19. (1998). Genetic programming and autoconstructive evolution with the push programming language. Genetic Programming and Evolvable doi
  20. (1995). Genetic Programming II: Automatic Discovery of Reusable Programs. doi
  21. (2003). Genetic Programming IV: Routine Human-Competitive Machine Intelligence. doi
  22. (1999). Grammatical Evolution: Evolutionary Automatic Programming in an Arbitrary Language. doi
  23. (2000). Hardware/software codesign. doi
  24. (2007). Instruction subsetting: Trading power for programmability. doi
  25. (2008). international symposium on Code generation and optimization, doi
  26. (2001). ISBN 047187339X. (Cited on pages 5, 55, and 62.)
  27. (2006). ISBN 0849328241. (Cited on page 13.)bibliography 167
  28. (2003). ISBN 3540401849. (Cited on page 38.) ENT. A Pseudorandom Number Sequence Test Program,
  29. (1999). ISBN 3540658084. (Cited on page 75.)
  30. (2007). Multi-objective methods for tree size control. Genetic Programming and Evolvable Machines, 4(3):211–233, 2003. (Cited on pages 50, 51, and 66.)
  31. (2002). On Turing complete T7 and MISC F-4 program fitness landscapes.
  32. (2000). Optimal estimation of executive compensation by linear programming. doi
  33. (2004). Principles of Compiler Design.
  34. (2005). URL http://www.alientechnology.com . (Cited on pages xiv and 3.) Crossbow Technology. URL http://www.xbow.com. (Cited on pages xiv and 3.) Xilinx, inc. URL http://www.xilinx.com. (Cited on pages xiv and 3.)

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.