1.2AOMay 27, 2019Code
Power laws in code repositories: A skeptical approachBartolomé Ortiz, J. J. Merelo-Guervós
Software development as done using modern methodologies and source control management systems, has been often established as an example of self-organization, with code growing and evolving organically, through activities that do not stem from entralized power, leader or directives. The main challenge in proving these claims is that self organization cannot be detected through direct observation, but through measurements on the system, looking for hints such as the existence of power laws over some features, such as the size of changes over time. The problem we intend to tackle in this paper is to establish a methodology for checking, for a chosen set of repositories we had already measured in the past, if the claims about power laws actually hold from a precise mathematical point of view, since, although shown as pervasive in the software engineering literature (and others), power laws are more elusive than they might seem at first sight. For that reason, in this paper we present a statistically accurate set of tests that will help us decide, from the way repositories are changing, if they are really distributed by a power law, which could indicate us the existence of a state reached via self-organization, or actually, how accurately a power law fits the observed distribution of the size of changes of commits in git repositories of 16 open source repositories. We revisit one of the most representative papers of these observations to reevaluate its results and compare them with the current status of the repositories analyzed in it, trying to elucidate if there has been any change in the possible presence, or not, of a power law.
2.3CYApr 9, 2021
Agile (data) science: a (draft) manifestoJuan Julián Merelo-Guervós, Mario García-Valdez
Science has a data management problem, as well as a project management problem. While industrial-grade data science teams have embraced the agile mindset, and adopted or created all kind of tools to create reproducible workflows, academia-based science is still (mostly) mired in a mindset that is focused on a single final product (a paper), without focusing on incremental improvement, on any specific problem or customer, or, paying any attention reproducibility. In this report we argue towards the adoption of the agile mindset and agile data science tools in academia, to make a more responsible, and over all, reproducible science.
11.0NENov 19, 2020
Metaheuristics "In the Large"Jerry Swan, Steven Adriaensen, Alexander E. I. Brownlee et al.
Following decades of sustained improvement, metaheuristics are one of the great success stories of optimization research. However, in order for research in metaheuristics to avoid fragmentation and a lack of reproducibility, there is a pressing need for stronger scientific and computational infrastructure to support the development, analysis and comparison of new approaches. We argue that, via principled choice of infrastructure support, the field can pursue a higher level of scientific enquiry. We describe our vision and report on progress, showing how the adoption of common protocols for all metaheuristics can help liberate the potential of the field, easing the exploration of the design space of metaheuristics.
Overview of PicTropes, a film trope datasetRubén H. García-Ortega, Juan J. Merelo-Guervós, Pablo García Sánchez et al.
From the database DBTropes.org, we have created a dataset of films and the tropes that they use, which we have called PicTropes. In this report we provide the descriptive analysis and a further discussion on the dataset PicTropes: The extracted features will help us decide the best values for a future recommendation system and content generator, whereas the analysis of the distribution functions that fit the best will help us interpret the relation between the films and the tropes that were found inside them. Additionally, we provide rankings of the top-25 tropes and films, which will help us discuss and formulate questions to guide future extensions of the PicTropes dataset.
RedDwarfData: a simplified dataset of StarCraft matchesJuan J. Merelo-Guervós, Antonio Fernández-Ares, Antonio Álvarez Caballero et al.
The game Starcraft is one of the most interesting arenas to test new machine learning and computational intelligence techniques; however, StarCraft matches take a long time and creating a good dataset for training can be hard. Besides, analyzing match logs to extract the main characteristics can also be done in many different ways to the point that extracting and processing data itself can take an inordinate amount of time and of course, depending on what you choose, can bias learning algorithms. In this paper we present a simplified dataset extracted from the set of matches published by Robinson and Watson, which we have called RedDwarfData, containing several thousand matches processed to frames, so that temporal studies can also be undertaken. This dataset is available from GitHub under a free license. An initial analysis and appraisal of these matches is also made.
1.2DCSep 2, 2017
Artificial life, complex systems and cloud computing: a short reviewJuan-Julián Merelo-Guervós
Cloud computing is the prevailing mode of designing, creating and deploying complex applications nowadays. Its underlying assumptions include distributed computing, but also new concepts that need to be incorporated in the different fields. In this short paper we will make a review of how the world of cloud computing has intersected the complex systems and artificial life field, and how it has been used as inspiration for new models or implementation of new and powerful algorithms
1.2DCJan 7, 2016
NodIO, a JavaScript framework for volunteer-based evolutionary algorithms : first resultsJuan-J. Merelo, Mario García-Valdez, Pedro A. Castillo et al.
JavaScript is an interpreted language mainly known for its inclusion in web browsers, making them a container for rich Internet based applications. This has inspired its use, for a long time, as a tool for evolutionary algorithms, mainly so in browser-based volunteer computing environments. Several libraries have also been published so far and are in use. However, the last years have seen a resurgence of interest in the language, becoming one of the most popular and thus spawning the improvement of its implementations, which are now the foundation of many new client-server applications. We present such an application for running distributed volunteer-based evolutionary algorithm experiments, and we make a series of measurements to establish the speed of JavaScript in evolutionary algorithms that can serve as a baseline for comparison with other distributed computing experiments. These experiments use different integer and floating point problems, and prove that the speed of JavaScript is actually competitive with other languages commonly used by the evolutionary algorithm practitioner.
There is no fast lunch: an examination of the running speed of evolutionary algorithms in several languagesJuan-J. Merelo, Pablo García-Sánchez, Mario García-Valdez et al.
It is quite usual when an evolutionary algorithm tool or library uses a language other than C, C++, Java or Matlab that a reviewer or the audience questions its usefulness based on the speed of those other languages, purportedly slower than the aforementioned ones. Despite speed being not everything needed to design a useful evolutionary algorithm application, in this paper we will measure the speed for several very basic evolutionary algorithm operations in several languages which use different virtual machines and approaches, and prove that, in fact, there is no big difference in speed between interpreted and compiled languages, and that in some cases, interpreted languages such as JavaScript or Python can be faster than compiled languages such as Scala, making them worthy of use for evolutionary algorithm experimentation.
3.3DCMar 22, 2015
Modeling browser-based distributed evolutionary computation systemsJuan Julián Merelo-Guervós, Pablo García-Sánchez
From the era of big science we are back to the "do it yourself", where you do not have any money to buy clusters or subscribe to grids but still have algorithms that crave many computing nodes and need them to measure scalability. Fortunately, this coincides with the era of big data, cloud computing, and browsers that include JavaScript virtual machines. Those are the reasons why this paper will focus on two different aspects of volunteer or freeriding computing: first, the pragmatic: where to find those resources, which ones can be used, what kind of support you have to give them; and then, the theoretical: how evolutionary algorithms can be adapted to an environment in which nodes come and go, have different computing capabilities and operate in complete asynchrony of each other. We will examine the setup needed to create a very simple distributed evolutionary algorithm using JavaScript and then find a model of how users react to it by collecting data from several experiments featuring different classical benchmark functions.
Measuring the local GitHub developer communityJ. J. Merelo, Nuria Rico, Israel Blancas et al.
Creating rankings might seem like a vain exercise in belly-button gazing, even more so for people so unlike that kind of things as programmers. However, in this paper we will try to prove how creating city (or province) based rankings in Spain has led to all kind of interesting effects, including increased productivity and community building. We describe the methodology we have used to search for programmers residing in a particular province focusing on those where most population is concentrated and apply different measures to show how these communities differ in structure, number and productivity.
3.0AIMar 12, 2014
Emerging archetypes in massive artificial societies for literary purposes using genetic algorithmsR. H. García-Ortega, P. García-Sánchez, J. J. Merelo
The creation of fictional stories is a very complex task that usually implies a creative process where the author has to combine characters, conflicts and plots to create an engaging narrative. This work presents a simulated environment with hundreds of characters that allows the study of coherent and interesting literary archetypes (or behaviours), plots and sub-plots. We will use this environment to perform a study about the number of profiles (parameters that define the personality of a character) needed to create two emergent scenes of archetypes: "natality control" and "revenge". A Genetic Algorithm (GA) will be used to find the fittest number of profiles and parameter configuration that enables the existence of the desired archetypes (played by the characters without their explicit knowledge). The results show that parametrizing this complex system is possible and that these kind of archetypes can emerge in the given environment.
2.5NEJul 5, 2012
An experimental study of exhaustive solutions for the Mastermind puzzleJ. J. Merelo, Antonio M. Mora, Carlos Cotta et al.
Mastermind is in essence a search problem in which a string of symbols that is kept secret must be found by sequentially playing strings that use the same alphabet, and using the responses that indicate how close are those other strings to the secret one as hints. Although it is commercialized as a game, it is a combinatorial problem of high complexity, with applications on fields that range from computer security to genomics. As such a kind of problem, there are no exact solutions; even exhaustive search methods rely on heuristics to choose, at every step, strings to get the best possible hint. These methods mostly try to play the move that offers the best reduction in search space size in the next step; this move is chosen according to an empirical score. However, in this paper we will examine several state of the art exhaustive search methods and show that another factor, the presence of the actual solution among the candidate moves, or, in other words, the fact that the actual solution has the highest score, plays also a very important role. Using that, we will propose new exhaustive search approaches that obtain results which are comparable to the classic ones, and besides, are better suited as a basis for non-exhaustive search strategies such as evolutionary algorithms, since their behavior in a series of key indicators is better than the classical algorithms.