Monday, June 20, 2016

Top Journals in Multidisciplinary Science

Alex Vespignani says it briefly and concise in his tweet: for those who are fans of rankings, this would be the ten top journals in multidisciplinary science:


These are for sure great Journals to publish in, but the fact that you do work in a multidisciplinary area does not necessarily endorse you to publish in a particular journal on this list, even if your work is excellent. However, it is definitely worth to check out these journals and learn what makes them so important (this advise of course contributes to the Matthew effect :-) ).
Hope to read from you in one of these journals soon!

See also You don’t cite me anymore - Scientific publications and the ravages of time.

Tuesday, January 12, 2016

Call for Papers Fifteenth International Conference on the Synthesis and Simulation of Living Systems (ALIFEXV)

The Fifteenth International Conference on the Synthesis and Simulation of Living Systems (ALIFEXV) will be held in Cancun, Mexico on July 4th-8th. 2016.
Paper/ abstract submission deadline: February 14th, 2016
Notification to authors: March 25th, 2016
Camera ready due: April 24th, 2016

We cordially invite you to submit your work in either full paper (8 pages) or extended abstract (2 pages) format. Accepted papers and abstracts will be published by MIT Press as open-access electronic proceedings.

Topics of interest include, but are not limited to, the following aspects of Artificial Life:

– Computational humanities/anthropology/archeology
– Evolution of language, computational linguistics
– Bio-inspired, cognitive and evolutionary robotics
– Self-replication, self-repair and morphogenesis
– Artificial chemistry, origins of life
– Cellular automata and discrete dynamical systems
– Perception, cognition and behavior
– Embodied, interactive systems
– Collective dynamics of swarms
– Complex dynamical networks
– Evolutionary dynamics
– Ecological and social dynamics
– Economy/society/social media as living systems
– Methodologies and tools for artificial life
– Living technology
– Applications to nanotechnology, biology or medicine
– Applications to business and finance
– Applications to games and entertainment
– Artificial life-based art
– Philosophical and ethical issues
– Artificial life and education
Paper/abstract formatting instructions:
To properly format their contributions, participants should download and use the following formatting instructions and template files:

Please download DOC template and LaTeX template.

Note that color figures are possible, since the proceedings will be published online in electronic format.

Papers and abstracts should be uploaded in a single file, in PDF format, to the EasyChair paper submission system. No other format is accepted.

NOTE: Even if you are submitting only an abstract, please prepare it in a formatted PDF and upload it to EasyChair just like a full paper submission. Don’t use the “Abstract Only” check box.

Workshop papers are managed separately from the main conference. To submit a paper to a workshop, go to its own website, which will be listed in the Workshops page.

Camera-ready requirements for MIT Press:

All the authors must follow the following instructions carefully:

All pages sized consistently at 8.5 x 11 inches (US letter size).
No visible crop marks.
Images at no greater than 300 dpi, scaled at 100%.
Embedded open type fonts only.
All layers flattened.
No attachments.
All desired links active in the files.

Note that individual articles (PDFs) must not exceed 5 MB if they are to be indexed by Google Scholar. Additional information about Google Scholar can be found here: http://www.google.com/intl/en/scholar/inclusion.html.

Authors of selected papers will be invited to publish an extended version of their work in a special issue of the Artificial Life journal published by MIT Press.

NOTE: At least one author of every accepted paper or poster must be registered 30 days prior to the conference, or the paper/poster will be withdrawn.

Monday, January 11, 2016

Call for Papers Genetic and Evolutionary Computation Conference (GECCO 2016)

2016 Genetic and Evolutionary Computation Conference (GECCO 2016) 
July 20-24, 2016
Denver, Colorado, USA
http://gecco-2016.sigevo.org/

The Genetic and Evolutionary Computation Conference (GECCO 2016) will present the latest high-quality results in genetic and evolutionary computation. Topics include: genetic algorithms, genetic programming, evolution strategies, evolutionary programming, memetic algorithms, hyper heuristics, real-world applications, evolutionary machine learning, evolvable hardware, artificial life, adaptive behavior, ant colony optimization, swarm intelligence, biological applications, evolutionary robotics, coevolution, artificial immune systems, and more.

The GECCO 2016 Program Committee invites the submission of technical papers describing your best work in genetic and evolutionary computation. Abstracts need to be submitted by January 27, 2016. Full papers are due by the non-extensible deadline of February 3, 2016.

Each paper submitted to GECCO will be rigorously evaluated in a double-blind review process. The evaluation is on a per-track basis, ensuring high interest and expertise of the reviewers. Review criteria include significance of the work, technical soundness, novelty, clarity, writing quality, and sufficiency of information to permit replication, if applicable. All accepted papers will be published in the ACM Digital Library.  Researchers are invited to submit abstracts of their work recently published in top-tier conferences and journals to the Hot Off the Press track. Contributions will be selected based on quality and interest to the GECCO community.

By submitting a paper, the author(s) agree that, if their paper is accepted, they will:

 - Submit a final, revised, camera-ready version to the publisher on or
   before the camera ready deadline
 - Register at least one author to attend the conference on or before
   the advance registration deadline
 - Attend the conference (at least one author)
 - Present the accepted paper at the conference

Monday, November 30, 2015

Advent Programming Contest 2015

An Advent calendar is a special calendar used to count or celebrate the days in anticipation of Christmas. Advent calendars typically begin on December 1 and provide a window to open until December 24. Usually they have windows, which you can open each day containing some chocolate or other stuff. But what is better to kill some time until Christmas, Hanukkah, Yule, Kwanzaa, Diwali, Boxing Day, etc. than an Advent calendar giving you a programming problem every day?

The Advent Programming Contest, being organized by the IEEE Student Branch Klagenfurt will provide a new problem every day from December 1st to December 24th. You can submit solutions any day until the contest ends on December 26. You can choose to use C, C++, C#, Java, Perl, Python 2.x or Python 3.x 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). The number of tries will not be a criterion for determining your score. The idea is to do it just for fun, but we will try to announce a winner after the contest is closed. The event is open to everyone. There are separate categories for pupils, university students and others. If you want to participate, please register at http://mooshak.nes.aau.at/ (Registration is also possible after 1st December)

Tuesday, November 24, 2015

Random Numbers in Java: Comparison of java.util.random, Xorshift, and PCG

In a previous post, we have shown how to replace the Java random number generator with a faster Xorshift algorithm, which also has nicer properties than the Java random number generator which was implemented in 1995.

Melissa E. O’Neill from Harvey Mudd College suggests a new class of random number generators called PCG. For a detailed description, see her paper "PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation".

Like the Xorshift algorithm, PCG is using a couple of shift and bitwise logical operators to generate random integers. Typically this is faster that Java's linear congruential generator. We have implemented a simple version of the PCG algorithm in order to compare its performance to java.util.random and our Xorshift implementation.

The best way to replace the Java random generator in our opinion is to make a subclass of java.util.random and to overwrite the next() method. For Xorshift, the algorithm is as follows:

import java.util.Random;

/**
 * A subclass of java.util.random that implements the 
 * Xorshift random number generator
 */

public class XSRandom extends Random {
 private long seed;

 public XSRandom(long seed) {
  this.seed = seed;
 }

 protected int next(int nbits) {
  long x = seed;
  x ^= (x << 21);
  x ^= (x >>> 35);
  x ^= (x << 4);
  seed = x;
  x &= ((1L << nbits) - 1);
  return (int) x;
 }
}

We implemented the PCG algorithm in Java based on the minimal C code example by M.E. O'Neill at pcg-random.org:

import java.util.Random;

/**
 * A subclass of java.util.random that implements the 
 * PCG32 random number generator
 * Based on the minimal code example by M.E. O'Neill / pcg-random.org
 * Licensed under Apache License 2.0
 */

public class PCGRandom extends Random {
 private long inc;
 private long state;
 
 public PCGRandom(long seed) {
  this.state = seed;
  inc=1;
 }

 public PCGRandom(long seed, long initseq) {
  // initseq selects the output sequence for the RNG
  this.state = seed;
  this.inc=initseq;
 }

 protected int next(int nbits) {
  long oldstate=state;
  // Advance internal state
  state=oldstate * 6364136223846793005L + (inc | 1);
  // Calculate output function (XSH RR), uses old state for max ILP
  long xorshifted = ((oldstate >> 18) ^ oldstate) >> 27;
  long rot = oldstate >> 59;
  return (int) ((xorshifted >> rot) | (xorshifted << ((-rot) & 31)));
 }
}

To use the class in legacy code, you may also instantiate an XSRandom object and assign it to a java.util.Random variable:
  java.util.Random rand = new XSRandom(); // or new PCGRandom
All method calls to rand are then using the new implementation.

The PCG algorithm comes with better properties regarding its period. But what about the performance?
We tested the performance by calculating 107 random numbers subsequently, repeating this 10 times with different starting seeds. Then we compared the average execution time for a program compiled under Java 8 running single threaded on an core i7 notebook computer. Results show that for our implementation, the PCG algorithm has a very similar execution time to the original Java random generator, while the Xorshift is significantly faster.

Execution time of java.util.random, Xorshift, and PCG. Please note that y axis starts at 10 ns.
So if you mainly care about speed, go for Xorshift. If statistical quality is important, go for PCG. If you want a bad random number generator and have a lot of time, stick with java.util.random.

Tuesday, June 2, 2015

Five postdoctoral fellowships in complex systems, Mexico

The Center for Complexity Science of the National Autonomous University of Mexico is seeking outstanding candidates for five one year postdoctoral positions beginning in August, 2015. Research plans from all areas related to complex systems are encouraged.

Please send CV and research plan to cgg [at] unam.mx before June 10th.

Original post: Complexes: Five postdoctoral fellowships in complex systems, UNAM

Monday, April 13, 2015

Hardware for Swarm Robotics

Collective behavior that emerges from the interactions between agents and with the environment are one of the most prominent examples of self-organizing systems. The field of swarm robotics allows to research and engineer such collective behavior. However to do this, there is the need for small cost-effective swarmbots. 

The table below lists a number of robots used in real experiments in the field of swarm robotics. It shows the most important parameters and information about the robots simplifying comparison between them. For more detailed description there are links (right after the robots' names) to websites or articles exhibiting specifications or conducted experiments.
RobotCostLocomotionSpeed (cm/s)Size (cm)Battery life (hours)Communication
Alice[1]N/Awheels42.1x2.1x2.110RF
Jasmine[1,2]$118wheelsN/A2.6x2.6x2.61-2RF, IR
Elisa[1]$390wheels60∅53RF,IR
Colias[1,2]$37wheels35∅41-3IR
Kilobot[1,2]$111vibration1∅3.33-24IR
Flockbots[1]$500wheelsN/A∅183Wi-Fi
E-puck[1,2]$850wheels13∅71-10Bluetooth, ZigBee
Kobot[1,2]$1174wheelsN/A∅1210ZigBee
R-one[1,2]$322wheels30 cm/s∅106RF, IR
ZeeRO[1]N/AwheelsN/A∅25N/ABluetooth
MinDART[1]N/Atracks1729x24x37N/ANone
marXbot[1,2]N/Atreels50∅174-7Wi-Fi
JL-2[1]N/Atracks 2035x25x152Wi-Fi
Khepera IV[1, 2]$2700wheels 100∅144-7Wi-Fi, Bluetooth

One of the first questions, coming up in the beginning of a project concerning swarm robotics, is money. Conducting real experiments with dozens of robots require high investments to buy all needed hardware and software. The price of the robots varies greatly that depends on a number of sensors and actuators, quality of a robot's frame, and demand for a particular robot. Unfortunately, the price of some robots is not specified. The most of these robots have an open-source design and code so they can be built from scratch in case there is such a need.

The table shows that the majority of the robots are differential drive robots whose movement is based on two wheels placed on either side of the robot. It allows achieving higher speed and precisely controlling the direction of movement. However, there are also some disadvantages, such as a need for a prepared surface without pits and bumps. Robots using the tracks usually can move on the unprepared surface, which facilitates a preparation for experiments and demonstrations. A unique type of locomotion is vibration (check the Kilobot robot) which tends to be slow and imprecise way of movement. It also requires a special smooth surface.

Size matters in the field of swarm robotics. A swarm consists of a large number of individuals which are quite effective in performing of important tasks for surviving of the colony. A significant number of robots is important in order to reproduce the swarm behavior or to check a hypothesis.

Unlike individuals in the real swarms, robots cannot generate energy from organics and still require a source of energy such as a battery. The working time of a robot depends on the capacity of battery and the amount of sensor and actuators using by a robot in experiments. Some of the robots have charging stations (e.g. Elisa, Jasmine) which may be useful in conducting of long-term experiments. The marXbot goes even further supporting exchange of the battery in less than 10 seconds without shutting down the power.

Communication in swarm robotics can play a crucial role while the effectiveness of the whole colony depends on how well the robots can send and receive messages. There are two types of communication: abstract (e.g. Wi-Fi, Bluetooth, ZigBee, RF) and situated (e.g. IR). Both of them work well for messages exchange, but situated communication provides additional information about the sender and the message, e.g. strength of the signal and its direction.

The choice of the robot depends on experiments where it will be used. Select the most important features of the future research and pick a robot that fits best.