EvolutionaryApproaches

From Granizada

Jump to: navigation, search


Dan Shearer

version 0.2

Last edited May 2010

Questions About Evolutionary Approaches

What's It About?

This page is for computing and engineering professionals. It presents a new way of looking at evolutionary heuristics, from the point of view of technology professionals outside the field. The goal is to explore ways to make better use of EAs and also to posit a new EA technique.
Summary
Image:Info.svg


Background

Evolutionary Algorithms (EAs) are well-studied in theory. There are increasing applications of evolutionary techniques as embedded within applications, eg for analysing images, searching for text or converging to a mathematical solution. However, from the point of view of someone not in the field, EAs are deployed much like any other computer science algorithm, within the context of standard procedural thinking and problem analysis. There is evidence to suggest EAs are effective analogues of how nature converges to a solution, perhaps most dramatically a very few experiments in robotics and other real-world uses, see especially the [evolved radio http://www.informatics.sussex.ac.uk/research/groups/ccnr/Papers/Downloads/Bird_CEC2002.pdf].

EAs represent a very different kind of thinking. Nature does not seem to be bothered by complexity, indeed humans are often baffled when trying to reverse-engineer biological evolution. Similarly for some cases of artificial evolution.

First Key Difference - Systemic not Component

We were to apply EAs at a systemic level to some of our hopelessly complex products in computer science and electronic engineering? The EA would no longer be a clever subroutine, but the entire technical strategy. We can only do this if we can manipulate the entire state of the system and reduce it to a few metrics.

We can certainly do this physically: it isn't hard to physically switch computers on and off or exercise peripheral interfaces, while monitoring various physical parameters. It seems reasonable to expect the physical environmental interactions to have a significant impact in the system, particularly since some important metrics cannot be simulated in a precise and generic manner, including power consumption and heat output.

However there are many aspects of computer networks which are affected by complexity that can be considered apart from physical parameters, most obviously a software crash. Therefore there is a lot of scope by applying EAs to entire virtualised networks of computers, that is, faithfully emulated hardware connected by emulated networks, where all of the operating systems and applications involved are unable to determine they are not deployed on physical hardware - including a single virtual time domain.

Second Key Difference - Time Travel

By combining EAs with Time Manipulation Methods, I propose that entire new classes of solution are likely to emerge. Key advantages over nature are:

  • it is very low cost to re-start from the initial state
  • it is possible to re-base calculations at any given generation
  • as well as backtracking down the tree, with snapshots EAs can also do reverse evolution

Time travel is particularly suitable for solving computer science problems, but one biology example is given below.

Suggestion - EAs for Computer Network Problem Finding

Humans are quite good at solving problems with bounded complexity, but very bad at finding problems. When we try to find a problem we are hindered by preconceptions, by getting distracted, and so on. Resource constraints prevent testing protocols from being exhaustive, and testing protocols can by definition only find problems in areas they have been designed to look at. Perhaps EAs will be better at problem finding than humans.

Consider a small computer network running an operating system and some consumer applications with a simple local database. This is the problem space. We know this is not a reliable system, due to the complexity involved. Therefore there are problems that can be found, even if they aren't obvious by inspection.

Pragmatic requirements of network administrators have caused many tools to be developed for detecting when a problem may have occured, and describing the nature of the problem. These are the fields of Logging (continuous data acquisition), Monitoring (often reduced to a boolean - either a system is in an error state or it is not, handy for alerts) and Reporting (flexible summaries of past state and possible future state.)

By using the Logging, Monitoring and Reporting data as inputs, and the ability of virtualised networks to be snapshotted and restored, and basic controls such as switching virtual machines on and off, inserting data in various ways and degrading components, an EA system can be set to generate problems in any way it chooses.

Initially, fixing problems can be done by humans in the case we're studying. Give some programmers a repeatable sequence that guarantees a hard crash then a fix can certainly be developed..

Suggestion - EAs for Biological Development

(refer to fruit fly and e. colli frozen snapshots and time travel as existing precedent)

(develop EA in biology as suggestion for new investigatory technique)

(gedankan proposal for developing African bombardier beetle defence to ignition temperatures)

Personal tools
Navigation