SlideShare a Scribd company logo
1 of 47
The  art  of  Evolutionary Algorithms programming, by  Dr. Juan-Julián Merelo, Esq. Calling from the University of Granada  in the Old Continent of  Europe
You  suck
Don't worry I suck too
This is about sucking less At programming  evolutionary algorithms , no less! Or any other, for that matter!
And about the  zen
And about writing publishable papers painlessly through efficient, maintainable, scientific programming
1.   Mind your  environment
Tools of the trade ,[object Object]
Programmer's editor: kate, emacs, geany (your favorite editor here) + Debugger (gdb, language-specific debugger) ,[object Object],[object Object],[object Object]
2.  Open source  your code and data
Aw, maaaan! ,[object Object]
Easier for others to compare with your approach ,[object Object],[object Object]
If you don't share, you don't care!
3.  Minimize bugs via  test-driven  programming
Tests before code ,[object Object]
But will it be even if you change an upstream function? Or the representation? ,[object Object]
Doest it follow (roughly) the mutation rate?
Use testing frameworks ,[object Object]
4.  Control the  source  of your power
Source control systems save the day ,[object Object]
Code repositories
Individual responsability over code changes
Branches ,[object Object]
Centralized are  out : subversion, cvs.
Instant backup!
Code complete ,[object Object]
Make changes
Commit changes (and push to  central  repository) ,[object Object]
Make changes
Test your code
Commit changes (and push to  central  repository)
5.  Be language agnostic
Language shapes thought ,[object Object]
Consider DSL: Damn Small Languages
Python, Perl, Lua, Ruby, Javascript... interpreted languages  are  faster.
Language agnoticism at its best Evolving Regular Expressions for GeneChip Probe Performance Prediction http://www.springerlink.com/content/j3x8r108x757876w/ The regular expresions are coded in AWK scripts: Although this may seem complex, gawk (Unix’ free interpreted pattern scanning and processing language) can handle populations of a million individuals.
Programming speed  >  program speed 6
Scientists, not software engineers ,[object Object]
What should be optimized is speed-to-publish.
Make no sense to spend 90% time programming – 10 % writing paper
Scripting languages rock ,[object Object]
Perl faster than Java? Algorithm::Evolutionary, a flexible Perl module for evolutionary computation http://www.springerlink.com/content/8h025g83j0q68270/   ,[object Object]
10. Become an adept of the chosen language
Don't teach an old dog new tricks ,[object Object]
But no two languages are the same
Every language includes very efficient solutions ,[object Object]
Symbolic processing

More Related Content

Viewers also liked

Bommarito Presentation for University of Houston Computational Law Conference
Bommarito Presentation for University of Houston Computational Law ConferenceBommarito Presentation for University of Houston Computational Law Conference
Bommarito Presentation for University of Houston Computational Law Conference
mjbommar
 
The vietnam-war
The vietnam-warThe vietnam-war
The vietnam-war
keza123
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
Dang Tuan
 
Golda Meir And Arab Israeli Relations 35 Years After[1]
Golda Meir And Arab Israeli Relations 35 Years After[1]Golda Meir And Arab Israeli Relations 35 Years After[1]
Golda Meir And Arab Israeli Relations 35 Years After[1]
Hackelmeier_Library
 
Similarities
SimilaritiesSimilarities
Similarities
ippnw
 
Algorithms Vs Meta Language
Algorithms Vs Meta LanguageAlgorithms Vs Meta Language
Algorithms Vs Meta Language
Kelly Bauer
 
1948 Arab–Israeli
1948 Arab–Israeli1948 Arab–Israeli
1948 Arab–Israeli
jakblack
 
On The Day the Last Nuclear Weapon is Destroyed
On The Day the Last Nuclear Weapon is DestroyedOn The Day the Last Nuclear Weapon is Destroyed
On The Day the Last Nuclear Weapon is Destroyed
kenleybutler
 
Israeli-Palestinian Conflict
Israeli-Palestinian ConflictIsraeli-Palestinian Conflict
Israeli-Palestinian Conflict
theironegoodson
 
Rosinesita
RosinesitaRosinesita
Rosinesita
galcec
 

Viewers also liked (20)

Bommarito Presentation for University of Houston Computational Law Conference
Bommarito Presentation for University of Houston Computational Law ConferenceBommarito Presentation for University of Houston Computational Law Conference
Bommarito Presentation for University of Houston Computational Law Conference
 
Turing Machine
Turing MachineTuring Machine
Turing Machine
 
A global picture of drought occurrence, magnitude, and preparedness
A global picture of drought occurrence, magnitude, and preparednessA global picture of drought occurrence, magnitude, and preparedness
A global picture of drought occurrence, magnitude, and preparedness
 
The vietnam-war
The vietnam-warThe vietnam-war
The vietnam-war
 
Egypt
EgyptEgypt
Egypt
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 
Golda Meir And Arab Israeli Relations 35 Years After[1]
Golda Meir And Arab Israeli Relations 35 Years After[1]Golda Meir And Arab Israeli Relations 35 Years After[1]
Golda Meir And Arab Israeli Relations 35 Years After[1]
 
“Digital democracy” helen milner digital leaders annual lecture 24 february 2015
“Digital democracy” helen milner digital leaders annual lecture 24 february 2015“Digital democracy” helen milner digital leaders annual lecture 24 february 2015
“Digital democracy” helen milner digital leaders annual lecture 24 february 2015
 
Similarities
SimilaritiesSimilarities
Similarities
 
27 NP Completness
27 NP Completness27 NP Completness
27 NP Completness
 
Algorithms Vs Meta Language
Algorithms Vs Meta LanguageAlgorithms Vs Meta Language
Algorithms Vs Meta Language
 
Report on HISTORY OF MONEY IN CHINA
Report on HISTORY OF MONEY IN CHINAReport on HISTORY OF MONEY IN CHINA
Report on HISTORY OF MONEY IN CHINA
 
Heroines And Heroes Of Sindh Long March
Heroines And Heroes Of Sindh Long MarchHeroines And Heroes Of Sindh Long March
Heroines And Heroes Of Sindh Long March
 
1948 Arab–Israeli
1948 Arab–Israeli1948 Arab–Israeli
1948 Arab–Israeli
 
On The Day the Last Nuclear Weapon is Destroyed
On The Day the Last Nuclear Weapon is DestroyedOn The Day the Last Nuclear Weapon is Destroyed
On The Day the Last Nuclear Weapon is Destroyed
 
Chapter7
Chapter7Chapter7
Chapter7
 
Israeli-Palestinian Conflict
Israeli-Palestinian ConflictIsraeli-Palestinian Conflict
Israeli-Palestinian Conflict
 
Lesson 3 fundamentalism
Lesson 3   fundamentalismLesson 3   fundamentalism
Lesson 3 fundamentalism
 
Rosinesita
RosinesitaRosinesita
Rosinesita
 
Hemp History China
Hemp History ChinaHemp History China
Hemp History China
 

Similar to The Art of Evolutionary Algorithms Programming

scale_perf_best_practices
scale_perf_best_practicesscale_perf_best_practices
scale_perf_best_practices
webuploader
 
Chelberg ptcuser 2010
Chelberg ptcuser 2010Chelberg ptcuser 2010
Chelberg ptcuser 2010
Clay Helberg
 
Computer Tools for Academic Research
Computer Tools for Academic ResearchComputer Tools for Academic Research
Computer Tools for Academic Research
Miklos Koren
 
Writting Better Software
Writting Better SoftwareWritting Better Software
Writting Better Software
svilen.ivanov
 

Similar to The Art of Evolutionary Algorithms Programming (20)

scale_perf_best_practices
scale_perf_best_practicesscale_perf_best_practices
scale_perf_best_practices
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmer
 
Java
JavaJava
Java
 
Chelberg ptcuser 2010
Chelberg ptcuser 2010Chelberg ptcuser 2010
Chelberg ptcuser 2010
 
Big Java Chapter 1
Big Java Chapter 1Big Java Chapter 1
Big Java Chapter 1
 
Intro. to prog. c++
Intro. to prog. c++Intro. to prog. c++
Intro. to prog. c++
 
Computer Tools for Academic Research
Computer Tools for Academic ResearchComputer Tools for Academic Research
Computer Tools for Academic Research
 
Debugging
DebuggingDebugging
Debugging
 
Good programming
Good programmingGood programming
Good programming
 
Modern web dev_taxonomy
Modern web dev_taxonomyModern web dev_taxonomy
Modern web dev_taxonomy
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
X page developer
X page developerX page developer
X page developer
 
debugging (1).ppt
debugging (1).pptdebugging (1).ppt
debugging (1).ppt
 
An important characteristic of a test suite that is computed by a dynamic ana...
An important characteristic of a test suite that is computed by a dynamic ana...An important characteristic of a test suite that is computed by a dynamic ana...
An important characteristic of a test suite that is computed by a dynamic ana...
 
Writting Better Software
Writting Better SoftwareWritting Better Software
Writting Better Software
 

More from Juan J. Merelo

Redes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisaRedes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisa
Juan J. Merelo
 

More from Juan J. Merelo (20)

Acta de defunción de juan monserrat vergés
Acta de defunción de juan monserrat vergésActa de defunción de juan monserrat vergés
Acta de defunción de juan monserrat vergés
 
Ciencia y videojuegos v4
Ciencia y videojuegos v4Ciencia y videojuegos v4
Ciencia y videojuegos v4
 
Como triunfar con tu proyecto en un hackatón
Como triunfar con tu proyecto en un hackatónComo triunfar con tu proyecto en un hackatón
Como triunfar con tu proyecto en un hackatón
 
Benchmarking languages for evolutionary computation
Benchmarking languages for evolutionary computationBenchmarking languages for evolutionary computation
Benchmarking languages for evolutionary computation
 
Benchmarking languages for evolutionary algorithms
Benchmarking languages for evolutionary algorithmsBenchmarking languages for evolutionary algorithms
Benchmarking languages for evolutionary algorithms
 
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
 
Creación de panorámicas con Hugin
Creación de panorámicas con HuginCreación de panorámicas con Hugin
Creación de panorámicas con Hugin
 
Introducción a HDR y Tonemapping con Luminance
Introducción a HDR y Tonemapping con LuminanceIntroducción a HDR y Tonemapping con Luminance
Introducción a HDR y Tonemapping con Luminance
 
Introducción al 7º hackathon UGR
Introducción al 7º hackathon UGRIntroducción al 7º hackathon UGR
Introducción al 7º hackathon UGR
 
Nuevas tecnologías, Modas y docencia en el siglo XXI
Nuevas tecnologías, Modas y docencia en el siglo XXINuevas tecnologías, Modas y docencia en el siglo XXI
Nuevas tecnologías, Modas y docencia en el siglo XXI
 
Open Access and Copyleft
Open Access and CopyleftOpen Access and Copyleft
Open Access and Copyleft
 
Luminance 2014 presentaciión sobre luminance
Luminance 2014 presentaciión sobre luminanceLuminance 2014 presentaciión sobre luminance
Luminance 2014 presentaciión sobre luminance
 
Enforcing Corporate Security Policies via Computational Intelligence Techniques
Enforcing Corporate Security Policies via Computational Intelligence TechniquesEnforcing Corporate Security Policies via Computational Intelligence Techniques
Enforcing Corporate Security Policies via Computational Intelligence Techniques
 
Evostar 2014 Introduction to the conference
Evostar 2014 Introduction to the conferenceEvostar 2014 Introduction to the conference
Evostar 2014 Introduction to the conference
 
Presentación Open Data Day en Granada, 2014
Presentación Open Data Day en Granada, 2014Presentación Open Data Day en Granada, 2014
Presentación Open Data Day en Granada, 2014
 
Introducción al uso de git, el sistema de control de fuentes más molón.
Introducción al uso de git, el sistema de control de fuentes más molón. Introducción al uso de git, el sistema de control de fuentes más molón.
Introducción al uso de git, el sistema de control de fuentes más molón.
 
Redes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisaRedes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisa
 
¿Necesitas a la oficina de software libre de la Universidad de Granada?
¿Necesitas a la oficina de software libre de la Universidad de Granada?¿Necesitas a la oficina de software libre de la Universidad de Granada?
¿Necesitas a la oficina de software libre de la Universidad de Granada?
 
Presentación 8º CUSL/6º CUSL granadino
Presentación 8º CUSL/6º CUSL granadinoPresentación 8º CUSL/6º CUSL granadino
Presentación 8º CUSL/6º CUSL granadino
 
El software libre contado a los universitarios
El software libre contado a los universitariosEl software libre contado a los universitarios
El software libre contado a los universitarios
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

The Art of Evolutionary Algorithms Programming

Editor's Notes

  1. CC picture from http://www.flickr.com/photos/torsteinsaltvedt/2459322441/in/photostream/
  2. Wonderful drawing from http://www.flickr.com/photos/keeki/4264005006/in/photostream/
  3. Picture from http://www.flickr.com/photos/imsbildarkiv/4962991603/in/photostream/ Zen means totality, and this tutorial is not just about how to write programs, but about the whole process from idea to publishing a paper in a high-impact index journal (and everything in between). So we'll make in the shape of mantras that should be followed when programming evolutionary algorithms (and probably all metaheuristics)
  4. Picture By MarionVoss http://www.flickr.com/photos/ooocha/2869488840/in/photostream/
  5. Forge picture from http://www.flickr.com/photos/jamesclay/1396990924/in/photostream/
  6. You need real operating systems to speed up the gathering of tools to start. It needs to be free and gratis, so that you can have all the libraries you need, and designed for programming, not for desktop and office environment. Programmer's editors speed up coding, allowing you to check the structure of a program at first glance. Every one has his favorite program, but you need to settle for one, since you'll be much more productive with it. Emacs or vi are probably a good choice, since you can live in them and with them. NetBeans and Eclipse are free, and popular, and good, but it's overkill if you want to do small programs and scripts (which is all you need sometimes) There are other IDEs for particular languages, worth checking out.
  7. Picture http://www.flickr.com/photos/goldenberg/22276200/in/photostream/ Now it's more important than ever to open source because research topics are more and more narrower and the code is the law
  8. http://www.flickr.com/photos/wohinauswandern/4146824312/in/photostream/
  9. http://www.flickr.com/photos/paulwatson/43393028/in/photostream/
  10. http://www.flickr.com/photos/anotherpioneer/5252749975/
  11. http://www.flickr.com/photos/youngrobv/2497132840/
  12. Speed will depend on many factors, and every language is geared for particular features.
  13. Aho, Weinberger, Kernighan, AWK is a data-driven language included in all Unices. Extremely mature, extremely fast, extremely unknown... and also the best tool for this paper.
  14. Foto: http://www.flickr.com/photos/gnackgnackgnack/3297936548/in/photostream/
  15. In fact, test by Kernighan and Pike over Markov chains, back in 99, proved the same. Things have evolved, but in both languages.
  16. http://www.flickr.com/photos/inoxkrow/1041584485/in/photostream/
  17. There is a balance between efficiency in programming and efficiency when doing a task. There's a power law: you can be best at one, maybe 3 languages, but at least know the potentialities of several others. Or at least know enough to tell a graduate student where she should look.
  18. Foto de http://www.flickr.com/photos/marcelgermain/2071204651/in/photostream/
  19. A profiler, which is available for every computer language but we show here for Perl, allows to know how much time is spent in every function, and then in every line of every function. That allows identification of bottlenecks, and surgically directed optimization.
  20. Parameters of an evolutionary algorithm really matter, and the two main ones are chromosome and population size. This is, BTW, the first purely evolutionary-algorithmic stuff I introduce here. It can vary in complex ways, and differently depending on implementation, computer languaje, and lots of other factors. In this case what is being measured is the running time of three different implementations. Details in an upcoming paper (from SpringerLink) You probably know this already. But it's good to remember it from time to time.
  21. How can you optimize? By looking for a better algorithm, like the cat is doing. Picture from http://www.flickr.com/photos/broterham/13140244/in/photostream/
  22. Instead of sorting, some algorithms just need the max or two max. You have to look for the best implementation in your programming language of choice. A choide of data structure forces using lenguage function and algorithms, which might be slow or the other way round. For instance, if you use a string instead of a bitvector you will be forced to use string operations a language might not be prepared for.
  23. Image from http://www.flickr.com/photos/adactio/502362353/in/photostream/
  24. Imagen de http://www.flickr.com/photos/lwr/3462352862/in/photostream/
  25. De hecho, también lo aconseja en “The practice of programming”: hacer tests estadísticos simples. It's an example of evoluitonary algorithm for MasterMind. It does not work very well: too many copies of a single one in the population. Having a YAML log allowed easy off-linen visualization of the evolution of the population.
  26. Image from http://www.flickr.com/photos/dacran/2369215001/in/photostream/
  27. Picture from RealBlades http://www.flickr.com/photos/xtl/3007809619/
  28. Picture by Fernando Rodríguez, http://www.flickr.com/photos/frodrig/5317382828/
  29. Picture by 1967geezer http://www.flickr.com/photos/chrisguise/5607158342/in/photostream/
  30. Picture by doviende from http://www.flickr.com/photos/doviende/77324602/