A software system that can quickly self-assemble into the most efficient form without humans telling it what to do has been developed by researchers at Lancaster University’s Data Science Institute for the first time. The Artificially intelligent (AI) computer software can learn, adapt and rebuild itself in real-time and could possibly help fight climate change.

The system is being developed with huge energy hungry data centers in mind and is called REx. Servers controlled by REx would need to do less processing, as they will be able to adjust to deal with a huge multitude of tasks rapidly and optimally. This would lead to them consuming less energy.

REx functions by using ‘micro-variation’. Depending on the task that needs to be performed, software components such as different forms of search and sort algorithms, and memory caches can be selected and assembled automatically from a large library of building blocks.

Dr Barry Porter, lecturer at Lancaster University’s School of Computing and Communications notes that the live system learns everything, assembles the required components and continually assesses their effectiveness to meet the requirements of the system at the time. Each component is small, making is easy to create natural behavioral variation. By assembling systems from these micro-variations autonomously, REx creates software designs that are automatically optimized to deal with the required task.

Porter added that the volume of data that needs to be processed and distributed is growing rapidly, especially as connected devices are used more frequently due to us moving into the era of the Internet of Things. This causes a substantial increase in the demand for energy through millions of servers at data centers. As an automated system such as REx is able to find the best performance in any conditions, this could offer a way to reduce this energy demand significantly.

Modern software systems, including operating systems and Internet infrastructure, are becoming increasingly complex and consists of millions of lines of code. This code needs to be maintained by large teams of software developers at significant cost. It is generally acknowledged that this level of complexity and management is not sustainable. Apart from saving energy in data centers, self-assembling software could have major advantages by improving our ability to develop and maintain increasingly complex software systems.

REx uses three complementary layers. At the base level, Dana, a novel component based programming language, enables the system to find, select and rapidly adapt the building blocks of software. The second layer consists of a perception, assembly and learning framework (PAL). PAL configures and perceives the behavior of the selected components. At the top layer, an online learning process learns the best software compositions in real-time. It does this by utilizing statistical learning methods known as ‘linear bandit models’.

The team will now look at automatically creating new software components that can be used by these systems. At the same time, they will attempt to increase automation further by making software systems an integral part of their own development teams. It is envisaged that the systems will provide live feedback and suggestions to human programmers.