Showing posts with label tools. Show all posts
Showing posts with label tools. Show all posts

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:

Friday, July 4, 2014

On Evolving Self-organizing Technical Systems

Moofushi Kandu fish (Image by Bruno
de Giusti under CC-BY-SA-2.5)
Individual swarm fish behave according to simple rules, which make the overall swarm an efficient entitiy for hunting and avoiding predators. Despite the simple local rules, a school of fish is a working, intelligent system. István Fehervari examined in his doctoral thesis how this behavior can be transferred to technical systems. The result is a tool making it easier to develop self-organizing systems.
Sometimes, it is possible to mimic natural self-organizing behavior for a technical system. At other times, you might not have access to such a template. "If there is no natural system, which we can copy, we have to develop it on our own," says István Fehérvári from the Institute of Networked and Embedded Systems at Alpen-Adria-Universität Klagenfurt. Fehérvári further explains: "This is very difficult because the behavior of a complex system is difficult to predict and the definition of the proper interaction behaviors is hard. Any change in the system creates an effect, often with unwanted consequences. This is why we apply an artificial evolution approach to evolve the local interaction rules,"

To make this approach feasible, the FREVO software has been developed, a tool that helps to apply the evolutionary approach in a unified way to different problem statements and settings. "FREVO provides a one-stop shop, with all the necessary steps for designing a self-organized algorithm for a given problem." says Fehérvári who devoted a major part of his thesis work to design and implement FREVO.  Now the tool is available to other researchers for further experiments and investigations. FREVO is an open-source program in Java that can be freely downloaded at frevo.sourceforge.net

Further readings and downloads:

Monday, September 16, 2013

The Complex Systems Community Explorer

If you are working in the field of complex systems, you face network analysis and graphical data representation. So why not use these features to organize your research network and to identify possible collaborators?
The complex systems community explorer developed at ISC-PIF by Julian Bilke and David Chavalarias is doing exactly this. In particular, it visualizes data are taken from the complex systems registry directory. This directory is an open directory maintained by several complex systems organisations and coordinated by the Complex Systems Society. After registering your data and interests, you can explore other scholars graphically. Links symbolize how semantically close two researchers are. The more shared keywords match, the stronger the link.


Friday, May 10, 2013

Evolution as a Tool to Design Self-Organizing Systems

Self-organizing Systems exhibit numerous advantages such as robustness, adaptivity and scalability, and thus provide a solution for the increasing complexity we face within technical systems. While they are attractive solutions, due to their nature, designing self-organizing systems is not a straightforward task. Artificial evolution has been proposed as a possible way to build self-organizing systems, but there are still many open questions on how an engineer should apply this method for this purpose.
Evolutionary design process
We propose a system architecture for evolving self-organizing systems that marks the major cornerstones and decisions the designer has to face:


In particular, the following aspects need to be considered:

Simulation setup:
  • Accuracy/granularity of the simulation?
  • Physical capabilities of the agent + environment
  • How many agents, homogeneous/heterogeneous configuration?
Interaction interface:
  • How should the agent interact with the environment/other agents
  • Number/type of sensors
  • Ability to change the environment (enable stygmergy)
Evolvable decision unit
  • Must be evolvable
  • Smooth search space, not too large
  • Genotype-to-phenotype mapping
Search algorithm
  • There exists literally a zoo on metaheuristic optimization algorihtms (Cuckoo search, Honeybee, Frog leap, Firefly, ...)
  • Ability to find global optimum
  • Number of tweaking parameters?
Objective function
  • Should contribute to a smooth search space
  • Avoid modeling the solution instead of the problem
  • Mapping of multiple objectives (or weighted sum?)
Framework for Evolutionary Design (FREVO)
  • Is a way to implement an evolutionary design task for multi-agent system
  • Needs a simulation of the problem
  • Interface for sensor/actuator connections to the agents
  • Feedback from a simulation run -> objective function
  • Written in Java, runs on multiple platforms including Linux, Mac OS, Windows
  • FREVO is available as open soure at http://frevo.sourceforge.net/
  • FREVO introduction video including installation, setting up a simulation and running it (length 6 minutes)

Literature

Thursday, March 21, 2013

JGridMap - Fast and Easy Visualization of Objects in a Grid

Conway's Game of Life implemented
with JGridMap
Many models for complex systems start with some markings on a piece of squared paper. This is probably the most straightforward approach to depict agents in their environment. However, in order to model a complex system, the cells need to interact, which is hard to implement on paper but easily done with a computer. However, if you, like me, have a favor for Java, then there was no quick way for implementing a cellular automata with graphical visualization. In the end, programmer have spent 90% of the time getting the graphics right and at most 10% remained for the actual model of interest.

After reviewing several frameworks for displaying nice grid structures, we decided there is a need for an easy to use and fast Java library. Our project JGridMap is now about two years old and mature to support you for fast and easy visualization of objects in a grid. With JGridMap you can quickly implement a visualization for cellular automata including proper routines for zooming. Cells can be painted with a selected color or with a picture of your choice, which makes it easy to create attractive visualizations.

JGridMap is available as open source project at http://sourceforge.net/projects/jgridmap/ under GPLv3.

Examples of projects done with JGridMap:


Langton's Ant simulation:


Vampires vs. Werewolves simulation:



Integrated in the Framework for Evolutionary Design (FREVO):


Graphical engine for a Smart Grid simulator:

Wednesday, September 26, 2012

The 6-minute introduction to FREVO

Evolution is a slow process. In earth history, evolution took millions of years to achieve something. Computer simulations of evolutionary processes are much better, but still taking weeks of simulation time on a cluster to run some evolutionary algorithm.

We challenge this!

Our software FREVO (FRamework for EVOlutionary design) is aimed 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 is decomposing the task into problem definition, solution representation and the optimization method, in order to ... let's stop talking! I will show you in just 6 minutes!

As demonstrated in the video below, 6 minutes are sufficient to download the framework, install it, set up a simulation, evolve a neural network controller for an inverted pendulum problem and check the results! See for yourself!



The tool is available at http://frevo.sourceforge.com
There are also tutorials on advanced projects with FREVO. If you are doing research in engineering complex systems, this tool might be useful for your thesis ;-)

If FREVO is useful for you, please cite this paper:

A. Sobe, I. Fehérvári, and W. Elmenreich. Frevo: A tool for evolving and evaluating self-organizing systems. In Proceedings of the 1st International Workshop on Evaluation for Self-Adaptive and Self-Organizing Systems, Lyon, France, September 2012.