Friday, February 13, 2015

FREVO 1.2 release

FREVO 1.2 - new version of the Framework for Evolutionary DesignWe 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 components were added to 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 frevo.sourceforge.net 
  • 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:

Thursday, February 5, 2015

Simulating Swarm Behavior with Scratch

My young audience
Today I was giving a lecture to kids at age 8 to 12 at our University. The lecture was part of an initiative called “Kinderuni” (Children’s University) which aims at increasing awareness of our academic business already at young age.
In my lecture I approached the general topic of computer software by the example of the programming language Scratch. Scratch is a graphical programming language designed by the Lifelong Kindergarten Group at the MIT media lab. The language aims to be simple, colorful and fun in order to enable and motivate children at a young age to create programs with their own ideas.
I explained how Scratch works and together the kids and I coded a simple computer game in 25 minutes, which was definitely a challenge to do this in this short time. Another challenge was to create the connection between making a simple game with scratch and doing research at a university. However, this might be easier than you think. While Scratch is in general a programming language for kids, it can be actually useful to explore and demonstrate multi-agent behavior with comparably little effort. Especially with the introduction of cloned objects in Scratch 2.0, the implementation of swarm behavior with a variable number of interacting agents became easy.

http://scratch.mit.edu/studios/215351/
Some projects from swarm behavior studio

The Scratch Studio Swarm Behavior gathers online simulations and games related to swarm behavior, multi-agent systems, clone interactions, self-organizing systems, and artificial life. The simulations show how Scratch can be used to demonstrate swarm behavior and how such a simulation can be implemented. Scratch is of course of low value regarding functionalty and performance - so you might have to drop the idea of having kindergarten kids coding the simulations for your next journal paper ;-).

Sunday, February 1, 2015

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

Robots are a good way to test things. Hope our robot overlords of the future will not take this to personal…

The task
We used a simulation of a robot that is searching for a light source as a testbed to compare how well a solution can be created by evolving an artificial neural network (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 evolutionary algorithms (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).

The results explain how the choice of the neural network (three-layered or fully-connected) may inf
Possible implementation in hardware
luence 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.

Tuesday, January 20, 2015

Boxplots grouped by categories

Simulating self-organizing systems often requires a compact representation of numerical data. One way to achieve this is via Boxplots,which indicate statisical distributions of data series through their quartiles. Usually, a box shows the median, the lower and the upper quartile values of a data series. The whiskers depict the lowest datum still withing 1.5 IQR (interquartile range) of the lower quartile and the highest datum still within 1.5 IQR of the upper quartile. Boxplots depict a good deal of information for statistical interpretation of data. Most of the tools for statistical computing and graphics can easily build boxplots, e.g., the boxplot function in R, the boxplot function in MATLAB, and the boxplot function in Python. As you can see, there are many affordable tools to display boxplots, but things get tricky if there is a need to group in categories. To achieve this, Sergii Zhevzhyk wrote a Python program using the matplotlib library which supports customization and adaptation of graphs. Data are loaded from the given csv files. One boxplot sample is shown below. The source code of our implementation can be found at GitHub.         
The image above shows the results of two measurements for different type of the candies. The comparison of two measurements can be done without problem, because they placed close to each other and have different colors. Two files (first file, second file) contain the data for this boxplot.

Links:

Call for Papers 10th International Conference on Soft Computing Models in Industrial and Environmental Applications (SOCO 2015)



In conjunction with:
CISIS 2015
and
ICEUTE 2015

The 10th International Conference on Soft Computing Models in Industrial and Environmental Applications will take place in Burgos, Spain. Soft computing represents a collection or set of computational techniques in machine learning, computer science and some engineering disciplines, which investigate, simulate, and analyze very complex issues and phenomena. This conference is mainly focus on its industrial and environmental applications.

Topics of interest include, but are not limited to:
• Green Computing
• Evolutionary Computing
• Neuro Computing
• Probabilistic Computing
• Immunological Computing
• Hybrid Methods
• Causal Models
• Case-based Reasoning
• Chaos Theory Fuzzy Computing
• Intelligent Agents and Agent Theory
• Interactive Computational Models

The application fields of interest cover, but are not limited to:
• Decision Support
• Process and System Control
• System Identification and Modelling
• Optimization
• Signal or Image Processing
• Vision or Pattern Recognition
• Condition Monitoring
• Fault Diagnosis
• Systems Integration
• Internet Tools
• Human Machine Interface
• Time Series Prediction
• Robotics
• Motion Control & Power Electronics
• Biomedical Engineering
• Virtual Reality
• Reactive Distributed AI
• Telecommunications
• Consumer Electronics
• Industrial Electronics
• Manufacturing Systems
• Power and Energy
• Data Mining
• Data Visualisation
• Intelligent Information Retrieval
• Bio-inspired Systems
• Autonomous Reasoning
• Intelligent Agents

Important Dates

Paper submission deadline: 24th January, 2015
Acceptance notification: 13th February, 2015
Submission of final papers: 3rd March, 2015
Final version submission: 13th March, 2015
Conference dates: 15th-17th June, 2015

Monday, December 1, 2014

Advent Programming Contest 2014

Still in the flow from the IEEEXtreme programming challenge? Looking for a daily new programming problems to train your skills?
The Advent Programming Contest 2014, organized by the IEEE Student Branch Klagenfurt will provide a new problem every day from December 1st to December 24th. On Saturdays and Sundays, new problems will appear at 12:00 Central European Time, on workdays at 18:00 CET. You can submit solutions any day until the contest ends on December 26. You can choose to use C, C++, Java, Python or Perl as programming language. The programming tasks can be solved with short programs (typically less than 100 lines of code). Until a solution is correct you can submit your program as often as you want (but please don't spam our server). Your score depends on the number of correct solutions and the time and trials you needed to solve the problem. Winners will be announced after closing of the contest.

The event is open to everyone. If you want to participate, please register at http://mooshak.nes.aau.at/ When you register please indicate if you belong to the group University, Pupils or other.
This is an individuals competition, not a team contest - be fair!
You can also join the contest after 1st December, registration is possible until December 24.

Monday, November 24, 2014

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:


Links: