dGRN – discrete Gene Regulatory Networks
Evolve sensor network code automatically for a particular application
Self-organization in sensor networks is a challenging, yet necessary research goal. As an example, consider tracking the motion of a target (e.g. a wild animal) through a network of battery powered wireless sensors. Powering up a sensor (e.g. a camera) to detect the animal consumes a large amount of battery energy, and is only useful if the target is actually within sensing range. Sensor devices can wirelessly communicate with their neighbours and alert them to the presence of an impending target. The question is how to do this for a given tracking accuracy (e.g. know the location of the target 90% of the time) whilst minimizing energy usage.
To address this problem, we turn to nature, and note that distributed self-organization is commonplace within cells. In particular, the mechanism of gene regulation in cells is an attractive model to emulate. In essence, genes and proteins are coupled in a complex feedback arrangement, where genes create particular proteins, and proteins control the expression of genes. This coupled feedback is called a Gene Regulatory Network (GRN).
We return to our sensor network example. Thus, genes are like a computer program, and proteins are like variables that alter the operation of the program. A node is analogous to a cell. So for example, if a target is present at a certain node, the concentration of a particular protein is increased in response to this event. If a target is absent, this is set to a low concentration. Proteins can also be used to control the operation of a node – for example, if there is a high concentration of a particular protein, then the node should adopt a high sampling rate.
The question now is how to design a GRN to run on our sensor network to undertake a particular task. Nature has had millenia to perfect the operation of gene regulatory networks through its search algorithm, evolution. We use a similar tactic and use differential evolution to find candidate controllers. To make the problem more tractable, we use discrete protein concentrations (e.g. High, Medium, Low).
In summary, in response to user requirements, we have developed a method to evolve code which runs in a sensor network in a distributed and self-organizing manner. This is a preliminary proof-of-concept, and we welcome collaboration to explore this exciting area further. Click to see some more examples of target tracking.
[wp-publications bib=”citations.bib” search=”dGRN”]
You can download the dGRN code here. This is a python script that performs differential evolution. All results are saved in a MySQL database.