I attended EuroGP in Valencia in 2007. At one point, the program committee wondered about the possibilities that could be realized through evolutionary algorithms at some point in time in the future. One of the ideas that came forward was that there may come a point in time where evolutionary algorithms could begin evolving whole operating systems.
I contemplated a little on this idea today as I was asked by a couple of friends for ideas to work in cloud computing. So some of the ideas I gave in light of the memories I had from EuroGP are in order.
Evolutionary algorithms, and other machine learning algorithms, could be used to evolve (or improve) cloud operating systems, or parts of them. Implementation details aside, an evolutionary algorithm could silently monitor the user experience of a cloud operating system. One such operating system is OpenStack. Based on the feedback obtained by the monitors, the evolutionary algorithm could then update its future generations of solutions to those problems. The newer generations of solutions could be used as improvements to the existing solutions in the operating system.
For experimental purposes, evolutionary algorithms could be used to solve miniature problems that affect the user experience. As it may be envisioned, a lot of things add to the user experience of a complicated operating system for cloud computing. There is the graphical user interface that a user uses to interact and work with a computer or a cluster. Then there are parts of the kernel that should supposedly make the computing efficient and directly or indirectly affect the user experience.
A researcher could take one issue at a time. Let it be the graphical user interface, or a program that manages it. In the case of Ubuntu systems, it could be the unity desktop. Monitors could be embedded in a usability matrix which could keep track of various aspects of level of satisfaction of the user with the interface. Such monitors can then send data back to an evolutionary algorithm to update its state. Iteratively, the evolutionary algorithm can adapt and improve parts of the user interface (or unity desktop). Over multiple generations, and based on the feedback obtained from experience of many users, it can be hoped to improve the unity engine to great extent. Same can be done with other parts of the OS.
If you found an error, highlight it and press Shift + Enter or click here to inform us.