SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
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
 
+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@
 

Kürzlich hochgeladen (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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...
 
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
 
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
 
+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...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

The Art of Evolutionary Algorithms Programming

Hinweis der Redaktion

  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/