martes, 17 de octubre de 2017

BIENVENIDOS A ALGORITMIA

En un mundo fantástico existe un lugar donde viven las soluciones a todos los problemas y se llama Algoritmia. Esta rama de la ciencia de la computación y las matemáticas estudia los algoritmos. Como hemos visto antes, un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema.

Estos procedimientos se remontan a la Grecia Antigua donde Euclides (300 A.C.) planteó la resolución del problema del máximo común divisor mediante un ingenioso sistema de divisiones geométricas. Con toda probabilidad existieron algoritmos anteriores a los griegos, pues tanto egipcios como babilonios fueron excelentes geómetras y tuvieron que lidiar con problemas de todo tipo.



La importancia de los algoritmos en la programación se entiende cuando recordamos que los ordenadores son elementos mecánicos que repiten secuencias de instrucciones. Esas secuencias pueden ser extremadamente complejas, pero siguen siendo mecánicas.

Cuando en 1980 un fabricante de juguetes puso a la venta un endiablado cubo con seis colores por cara, no se imaginaba la fiebre que generaría la resolución del mismo, entre los 43 trillones de posibilidades. Esto supuso que miles de matemáticos y aficionados en todo el mundo buscaran el algoritmo del famoso cubo de Rubik, que tardó un año en encontrarse, pero continuó durante una década ocupando la mente de los más concienzudos estudiosos. Por cierto, os adjuntamos un algoritmo para la resolución del tradicional cubo de 6x6x6.



Los algoritmos más sencillos, como la ordenación de elementos o resolución de operaciones aritméticas simples, pueden ser desarrollados por cualquiera de nosotros. Sin embargo existen bases de datos en todo el mundo que recogen las mejores soluciones para estos problemas. Entre ellas destaca LEDA (Library of Efficient Data Types and Algorithms) que es un conjunto de algoritmos desarrollados en el lenguaje C++ por la empresa alemana Algorithmic Solutions. Algo más asequible, pero muy completa, es la lista de algoritmos con su desarrollo que nos ofrece Wikipedia (en inglés).

Hay que tener en cuenta que nuestra civilización descansa en varios algoritmos y esto determina nuestra forma de vida. Si crees que esto es una exageración te invitamos a que pienses que harías sin:

  1. El buscador de Google.
  2. El secuenciador genético del proyecto Genoma Humano.
  3. El reconocimiento facial de Facebook.
  4. Las recomendaciones de compra Google Adwords, Amazon y demás.
  5. La compresión de imágenes en Netflix o en tu cámara de fotos.
  6. La comprobación de suma (checksum) de los mensajes por Internet.
  7. El buscador de ruta eficiente en los GPS y Google Maps.
  8. Encriptación de operaciones bancarias y compras por Internet.
  9. Expedición automática de multas de tráfico por reconocimiento de matrículas.
  10. Trading algorítmico de alta frecuencia en la bolsa.


Efectivamente, los algoritmos lo controlan casi todo. Pero esto no es el final. Debemos tener en cuenta que la Inteligencia Artificial se basa en algoritmos complejos que son reprogramados por ellos mismos. Actualmente existen los algoritmos genéticos, las redes neuronales, los sistemas expertos y la lógica borrosa como técnicas más prometedoras en cuanto a simulación de la mente humana.

Después de este resumen, no olvides que la secuencia de tareas que realizas cada día para llegar al colegio, o alimentarte, se pueden considerar un algoritmo. Esperamos que ahora puedas ver la vida con otros ojos: los ojos de la algoritmia. Y no olvides enviarnos tus comentarios...

J. Carlos Avendaño Cuéllar
Club Tecnológico