New Version 1.2 of FREVO Released

frevo12We proudly announce the new release 1.2 of FREVO (FRamework for EVOlutionary design). FREVO helps to reduce the time to implement, set up and run an evolutionary algorithm to evolve an agent’s behavior as a solution to a particular control problem. FREVO supports decomposing the task into problem definition, solution representation and the optimization method. The componentwise separation allows to experiment with different combinations of algorithms and neural networks for different tasks.

The following features were added to the new release of FREVO:

  • HEMS – a simulation for modeling trading behavior of loads and local energy generators.
  • SinglePong – a simulation of the one player pong game where several paddles can cooperate in order to achieve better performance.
  • Pong – a simulation of the pong game where two teams can play against each other.

Quick start:

  • download the newest version at
  • unpack the ZIP file
  • unless you have it already on your system, install Java
  • execute the createscrips.jar (“java -jar createscrips.jar”)
  • you can now run FREVO using the script named launch_Frevo

…or have a look at the following video explaining the basic steps to get started with FREVO:

For more information see the following sources:


Comparison of Metaheuristic Algorithms for Evolving a Neural Controller for an Autonomous Robot

Previous work has shown that evolving artificial neural networks (ANN) with an evolutionary algorithms (EA) is a feasible way to find a feasible control algorithm for self-organizing systems.

phototaxisWe used a simulation of a robot that is searching for a light source as a testbed to determine which combination of parameters is advantageous for evolving an ANN. While ANNs are often programmed using example input-output pairs which are learned by a backpropagation algorithm (supervised learning), in our case we left the how up to the system and only required the what – the robot should be able to find the light source by operating its wheels and using its sensors – that is called learning with belated rewards or reinforcement learning. We compared different EA, namely simple EA, two dimensional cellular EA, and random search, according to their performance in evolving a successful algorithm for the light-searching robot. In our experiments we studied the effects of EA parameters on performance, such as population size and number of generation. The simulations have been done using the open-source tool Framework for Evolutionary Design (FREVO).

Possible implementation in hardware

Possible implementation in hardware

The results explain how the choice of the neural network (three-layered or fully-connected) may influence the quality of a final solution. The results indicate that cEA and simple EA are the most applicable for evolving a neural controller. A fully-connected ANN outperforms three-layered ANN in all conducted experiments. Based on our findings, we recommend to use cEA and fully-connected ANN for problems that require short evaluation phase. For a large number of generations and population size the efficiency of both algorithms are approximately the same. In the experiments we measured an influence of population size and number of generations on performance of metaheuristic algorithms. The dependencies on these parameters are negligible. This information is important for the conduction of experiments. To accelerate a simulation, the population size should be the same as the number of cores on the server, where these experiments will be performed.

Evolving a Self-organizing Energy Market for Microgrids

Graphical user interface of the simulator plugin for FREVO

Graphical user interface of the simulator plugin for FREVO

A smart microgrid is the integration of an energy production unit with energy consumers. Production is often done via photovoltaic or wind power, but these require either expensive energy storage or the coordination of all consumers for adjusting energy consumption based on availability of generated energy.
In a paper presented at Energieinformatik in Zurich, Monacchi, Zhevzhyk, and Elmenreich suggest a self-organizing mechanism to coordinate consumer and producer behavior in such a system. The coordination is implemented at device level via market-based energy allocation solutions, where a device has to bet money based on its need to run. If production is insufficient to run all devices, those having the highest utility (reflected in willingness to pay a high price) are able to run. A device that is more flexible will learn to shift its operation to a time when the price is lower due to a higher production or a lower demand. The device behavior is realized via smart controllers with a neural network evolved with the Framework for Evolutionary Design (FREVO). The approach is implemented in a simulator extension to FREVO, which is released for open use. With the help of FREVO, artificial neural network controllers for energy prosumers are designed using an evolutionary algorithm. Minimizing individual and overall running costs enables a better use of local energy production from renewable sources while considering residents’ necessities to minimize discomfort.


Scalability in Self-Organizing Systems

One of the properties of self-organizing systems is scalability. It means that system keeps its working capabilities even if we remove some of its components or add more of them. In our reseach, we employ different evolutionary algorithms (EAs) to create a self-organizing system. In particular, algorithms like a simple evolutionary algorithm or a two dimensional cellular EA are used  for adjusting the synaptic weights of an neural controller. The best solutions are identified based on simulations of the target application. Typically, the simulation parameters limit the applicability of the solution – there is no guarantee that an evolved solution is adaptable or scalable to situations not specified in the simulation parameters. On the other hand, there are many examples in nature where solutions could be successfully employed in other contexts. We decided to check how our soccer teams, which consist of evolved neural controllers, can scale.For the FIFA World Cup in Brazil we organized our own tournament between evolved self-organized soccer teams. This is an exciting show – to see how simple agents having only partial information about the environment around them are reaching its goal (score a goal) as a team. Will they be able to play in the same manner if we take the contoller, trained in the simulation with 10 players per team, and increase or decrease the number of players? This question has remained open until today.

In our first scenario, we assume that we invited two soccer teams to show us a fantastic game, but due to some circumstances, only 4 players per teamshow up.
Thus our first experiment can be seen in the video below.
Despite the players being evolved in a context of 11 players on each side, reducing the number of players did not affect the ability of players to show good game.

To check the other extreme, we settled a very dangerous experiment – each team consisting of 40 players! The results were stunning (see video below). These soccer heroes could play as a team even with significantly increased number of players. Unfortunately, they could not play for a long time in this mode: Marco Materazzi headbutted Zinadine Zidane in the chest and shouted “Revenge!”; Luis Suarez bit two players in order to show his perfect teeth; Diego Maradona scored the goal by striking the ball with his hand and this time he was disqualified for this trick. We didn’t care about these incidents since we got the results of our experiment: