Cómo aprovechar los algoritmos informáticos para acabar rápido con las tareas cotidianas
"Ok: tengo 10 pares de medias aquí mezcladas", dice el periodista de la BBC Jordan Dunbar informando desde... su habitación, frente al cajón en el que las guarda.
Su desafío: organizarlas.
"La primera que encuentro es una media negra larga con talón azul. La segunda, larga, negra... y ya. No es su par, así que vuelve al cajón".
El tiempo pasa...
"Ahora, una media negra, con talón rojo ¡y un hueco! Tampoco. Al cajón".
...nos vamos haciendo viejos...
"Siguiente: negra, larga y con talón verde. El diseño es similar, pero no es el par... ¡desesperante!".
Juntar medias, organizar libros... y el tiempo se nos escurre por entre los dedos.
Lo logró, pero ¿cuánto tiempo le tomó?
¿Habrá una forma eficaz de hacerlo?
La BBC le pidió auxilio a Brian Christian, filósofo, escritor e informático teórico, pues es el coautor de "Algoritmos para vivir: la teoría informática de las decisiones humanas", en el que argumenta que la informática puede ayudarnos a manejar situaciones cotidianas de una manera eficiente y lógica.
"Es una disciplina que constantemente se pregunta cómo tomar decisiones eficientes y encontrar procesos que son optimizados para resolver problemas con los que nos encontramos en la vida".
Volvamos a Dumbar, quien decidió escoger una media e ir sacando otras, una por una, hasta encontrar el par.
Ese método es un algoritmo, es decir, una suerte de receta, un proceso paso a paso.
Desafortunadamente, su algoritmo no es muy bueno.
¡Oh, no!
Si tuviera sólo dos pares de medias, no estaría mal, pero cada par más que esté en el cajón dificulta la tarea por dos razones.
- Tienes que aparear más medias
- El par de cada una de esas medias está escondido en un montón más grande
Así que juntar dos pares tomaría en promedio cuatro veces más tiempo que un sólo par.
Cinco pares tomaría 25 veces más tiempo.
100 pares tomaría 10.000 veces más tiempo, lo que sería grave, pero no tanto como el hecho de que tienes tantos pares de medias.
Tiene que haber una mejor forma de hacerlo
"El algoritmo que podría funcionar en este ejemplo es el que se llama radix sort", dice Brian Christian.
"La idea básica del radix sort es que hay que crear categorías basadas en alguna propiedad de -en este caso- las medias".
Empezaríamos separando todas las medias en grupos del mismo color, por ejemplo.
"Luego, dentro de esos grupos -o casilleros, buckets o bins como les llaman los informáticos- las separas de acuerdo a otra propiedad. Longitud, por ejemplo".
¿Qué tal si empieza por separar todo eso de acuerdo a la función: pantalones, blusas, vestidos?
"Una de las maneras en las que más puedes avanzar cuando tienes un problema es haciéndolo menor; al dividir esas medias en grupos más pequeños se vuelve más manejable", explica Christian.
Dumbar, entretanto, ha estado siguiendo sus instrucciones.
"Las blancas y las negras; las cortas y las largas entre las blancas y las negras; y los pares. ¡Así es mucho más fácil! ¡Soy un hombre nuevo!", exclama.
Claro que hay un método muchísimo más eficiente, descubierto por nuestros ancestros: comprarse todas las medias del mismo color, material y tamaño.
Ahora, los libros
Dumbar, entusiasmado, quiere ahora organizar sus libros. Aunque como lo de los colores y los tamaños en este caso no parece muy acertado, opta por su método tradicional.
"Usemos los nombres de los autores: Rowling, J.K... García Márquez, Gabriel -este primero y el de ella después-; Mann, Tomás -adelante de García Márquez-; Descartes, René -antes de todos-... ¡voy bien!".
Y sí, todo irá bien si sólo tiene ocho o diez libros, pero esa es precisamente la forma más inadecuada de hacer esa tarea: revisando cada vecino de un elemento y moviéndolos si están en el orden equivocado.
El nombre de ese algoritmo es ordenamiento de burbuja, y es muy ineficiente si tienes una biblioteca respetable.
¿Qué sugiere Christian?
Para esta tarea, un algoritmo que fue "top secret".
"El algoritmo indicado es uno que se llama ordenamiento de mezcla, que de hecho era considerado tan valioso que fue un alto secreto de la inteligencia militar de EE.UU. durante muchos años".
Como fue desclasificado, déjanos contarte el secreto:
Primero, crea muchas torres de dos libros cada una, en orden alfabético.
Luego, junta cada torre con la vecina, de manera que cada una de las nuevas torres tengan cuatro libros en orden alfabético.
Hazlo otra vez y otra y otra y otra hasta que tengas una sola fila de libros (la torre seguro colapsó en algún momento), ordenada alfabéticamente.
Cuando tienes un problema grande, divídelo en pequeños; ordena cada uno y luego junta dos de los ya ordenados; repite el proceso hasta llegar al fin de una tarea que te habría tomado más tiempo.
Es rápido y, si tienes amigos que te ayuden, cada uno puede encargarse de una esquina del problema o, en este caso, de un grupo de libros.
"Este algoritmo quizás no revele su verdadero poder a escala doméstica, pero imagínate que eres la oficina de censos y tienes que organizar 100 millones de tarjetas de censo. Resulta que si te vales de ese algoritmo, sólo son necesarios 29 pasos", señala Christian.
Impresionante, pero es que...
A veces ser tan organizado no es tan maravilloso.
¿Valió la pena?
En algunos casos, uno se pregunta si vale la pena gastar tiempo poniendo todo en su lugar.
Brian Christian concuerda. Y nos revela la manera en la que los expertos formulan esa misma pregunta, para que la uses la próxima vez que tengas que tender la cama.
"Para un teórico de informática, sólo hay una razón válida para ordenar las cosas: poder encontrarlas más rápido cuando las necesites", indica.
"Eso significa que puedes hacerte una pregunta muy clara: ¿será que el tiempo que me ahorraré en búsquedas en el futuro justifica el tiempo que voy a invertir organizando?".
"El email es un buen ejemplo. Arrastrar manualmente tus emails para meterlos en folders marcados es una tarea sin fin en un sistema en el que buscarlos y encontrarlos es muy rápido".
"Como en ese, en muchos casos, la respuesta es: no".
Ahí está: un poderoso argumento respaldado científicamente para dejar todo desordenado.