¿No les da la sensación de que las personas que saben cómo manejar nuestras vidas no tienen mucha idea de cómo manejar las suyas propias? Es aquello tan castizo de consejos vendo que para mí no tengo. Sin embargo, se puede demostrar matemáticamente que los problemas se resuelven más rápido si, de vez en cuando, nos salimos de todas las listas de consejos, si somos más genéticos. Todos sufrimos, en mayor o menor medida, esas comidas familiares propias de las fechas en las que celebramos el triunfo del día sobre la noche a partir del solsticio de invierno e, irremediablemente, la mayoría tenemos que escuchar con paciencia a algún familiar, posiblemente un cuñado, que nos regala sus mejores consejos sobre qué hacer con nuestras vidas. Como dice mi madre, son dos días al año, qué trabajo te cuesta escucharlo y ser amable. Pero esta maña cuñadil ha traspasado fronteras y es difícil terminar el día sin encontrar en la red alguna entrada del tipo «10 consejos para...».
a cansar a los demás, sino porque si seguimos todos los mismos consejos y convergemos todos en el mismo perfil, ya sea como humano o como usuario de Twitter, Facebook, Instagram, Flickr... no habrá evolución, no mejoraremos. Puede que todos lleguemos a ser un poco mejor, pero no llegaremos a las cotas más altas porque no existirá el elemento diferenciador que produzca la mutación necesaria para mejorar la especie. Huy, qué serio y profundo me ha quedado. Voy a explicarlo con matemáticas porque me resulta más fácil. Al menos, voy a intentarlo.
Existen problemas de optimización (encontrar el mejor valor para una determinada función objetivo: costes, beneficios, tiempo...) que no es posible resolver usando los métodos clásicos, ni siquiera aprovechando la potencia de un ordenador. Uno de los más típicos problemas de este tipo se conoce como el problema del viajante (traveling salesman problem, TSP por sus siglas en inglés). El planteamiento del TSP es muy simple: dado un conjunto de ciudades conectadas por carreteras, se trata de diseñar la ruta más corta que, saliendo desde un determinado punto, recorra todas las ciudades y vuelva al punto de partida. Por ejemplo, en la figura siguiente, se trataría de diseñar una ruta que, saliendo desde el punto marcado como casita, pasara por todas las librerías del plano y volviera al principio.
En un primer acercamiento a este problema, alguien podría pensar, y con razón, que para resolverlo basta con probar con todas las rutas posibles, intercambiando el orden de las ciudades visitadas, calcular la longitud de cada una de esas posibles rutas y quedarse con la más corta. Bien. Salvo por el
pequeño detalle de que solo es posible calcular esta solución para un número muy pequeño de ciudades. Para que nos hagamos una idea, si tenemos 100 ciudades, el número de rutas posibles es 100! (= factorial de 100, el signo de admiración no significa que esté gritando) y 100!, créanme, es un número una jartá de grande. Es mucho más grande que el número de partículas elementales en el universo observable. Por lo tanto, este primer intento de solución no es válido ni con la potencia de cálculo de los ordenadores.
¿Qué hacemos cuando no podemos encontrar la solución óptima (la mejor) ni siquiera con ordenadores? Pues se trata de buscar la mejor posible por aquello de que a falta de pan... Para ello se pueden usar, por ejemplo, los llamados algoritmos genéticos: algoritmos que tratan de simular el proceso darwinista mediante el cual la naturaleza consigue especies que se adapten a su medio. Voy a intentar explicarlo con un ejemplo del «problema TSP». Supongamos que tenemos 6 ciudades a las que denominamos A, B, C, D, E y F. Tratamos de encontrar la permutación óptima de dichas letras que nos dé la distancia mínima (saliendo de A y volviendo a A). Los elementos que componen nuestro algoritmo genético son los siguientes:
> Una población inicial: Esta población inicial tendrá el número de
individuos que decidamos de antemano. Para obtener dicha población nos basta con encontrar aleatoriamente tantas permutaciones como sean necesarias y, entre estas, escogemos por sorteo unas cuantas. Supongamos que, en nuestro caso, la población inicial es de 6 individuos. Construimos dichos individuos aleatoriamente y obtenemos los siguientes:
{ABEFDC, ABCEFD, AEBCFD, ACDBEF, AEFCDB, ADCBFEE}
Empezamos siempre en la A, que es donde está el punto de partida, y entendemos que al final hemos de volver a A. > Una función de evaluación: Algún criterio que nos mida cómo de buenos son los elementos de esta población que hemos creado aleatoriamente, asignando a cada elemento un número que será la medida de su aptitud. En el ejemplo de las 6 ciudades, este número sería la longitud de cada una de las rutas, sumando las distancias entre elementos consecutivos de cada permutación: para ABEFDC, por ejemplo, medimos la distancia de A a B, le sumamos la distancia de B a E, de E a F, de F a D, de D a C y de C a A. Si una de las parejas elegidas es, por ejemplo, la formada por los individuos ABCEFD y ACDBEF, tenemos que cruzarlos para obtener un nuevo individuo
para la siguiente población.
Hay varios métodos para hacer esto; voy a proponer uno simple: hacemos otro sorteo y elegimos un número entre 2 y 4. Sale 3. Eso significa que al cruzar ABCEFD con ACDBEF, vamos a obtener dos hijos: para el primero escogemos las 3 primeras ciudades de ABCEFD: ABC y el resto de las ciudades las recorremos, después de C, en el orden en el que aparecen en el otro progenitor, ACDBEF: después de C está D, después estaría B, pero como por B ya hemos pasado, nos la saltamos y vamos a E y por último a F; por tanto, el primer hijo sería ABCDEF. Ahora hacemos lo mismo empezando por ACDBEF y obtenemos el segundo hijo: ACDBEF (que, curiosamente, es igual que uno de sus padres, pero no nos preocupamos por ello).
Con este procedimiento tendríamos 2 hijos de cada una de las 3 parejas elegidas por sorteo, es decir, 6 nuevos individuos para volver a empezar y repetir el proceso si queremos mejorar la aptitud. Pero, ¡ojo!, ahora viene un detalle muy importante. Ahora interviene un elemento esencial, sin el cual el método no funcionaría; sin él la naturaleza no habría obtenido los individuos que mejor se adaptan a su hábitat: la mutación, las cadaunadas.
Mutaciones ocurren pocas y la mayoría son regresivas: dan peores individuos, pero, muy de vez en cuando, producen individuos mejor adaptados y sin ellas, el proceso darwiniano no tendría sentido. Así, lo que hacemos es, una vez obtenidos los hijos, realizamos un nuevo sorteo pero tal que la probabilidad de ser mutado sea muy pequeña (digamos 1 entre 1.000). Así, de cada 1.000 individuos mutamos aproximadamente a 1. Supongamos que uno de los hijos que hemos obtenido en el proceso anterior ABCDEF sale mutante: ¿qué hacemos? Otro sorteo (ya llevamos unos cuantos) y sacamos dos números entre el 2 y el 6, por ejemplo 3 y 5, pues intercambiamos las ciudades que aparecen en tercer y quinto lugar para obtener ABEDCF. Se trata ahora de medir la aptitud de la nueva población; si nos satisface, paramos; en otro caso, repetimos el proceso. Lo increíble de este tipo de algoritmos en el que se toman tantas decisiones aleatorias, con tantos sorteos, es que en muy pocos pasos se consiguen soluciones muy buenas. De hecho, existe un resultado matemático que nos asegura que, con este método, vamos a aproximarnos a la solución óptima tanto como queramos (cuantas más generaciones mejor) y que si no tenemos en cuenta algunos de los elementos, puede que nunca nos aproximemos a esa solución por quedarnos estancados en lo que se llama un óptimo local sin llegar al óptimo global, que es lo que estamos buscando.
¿Y qué tiene que ver todo esto con las listas de consejos para usar Twitter, Facebook, Instagram, Flickr...? Si todos adoptamos las listas de consejos, no estamos siguiendo un proceso evolutivo: nos estamos estancando en óptimos locales —que hacen que todos los individuos se parezcan— y eliminamos diversidad, que es fundamental para obtener mejores elementos. En algún sentido se puede decir que el mestizaje es fundamental para la mejora de la población, y que poblaciones muy endogámicas (como las familias reales) suelen degenerar y dar individuos muy defectuosos.
Un consejo: mézclense, y si alguna vez se les ocurre algo que a los demás les parece una auténtica locura, recuerden lo que decía Gaudí: «Mis ideas son de una lógica indiscutible; lo único que me hace dudar es que no hayan sido aplicadas anteriormente». No duden.