Historia de los algoritmos


Un algoritmo sencillamente son pasos para resolver un problema, como leer una receta de cocina, es decir, es una receta para solución de problemas. Los algoritmos están en todas partes, desde que te levantas en la mañana estas en contacto con algoritmos, ya sea cuando suena tu despertador en tu teléfono, uses cualquier equipo electrónico, cuando estas frente a un semáforo, pagues con la tarjeta de crédito o débito, en fin, no puedes volver a dormir sin estar en contacto con ellos. ¿Pero cual es su historia? ¿Cómo llegaron a ser parte fundamental de nuestro diario vivir?

A pesar de que aparentase que el empleo de algoritmos es algo reciente, la realidad es que en la antigüedad ya se empleaban algoritmos como en el caso de los babilonios para resolver multiplicaciones y raíces cuadradas[1]. Los egipcios usaban un algoritmo de multiplicación similar al de expansión binaria[2]. Sin embargo, aún no existía el concepto de algoritmo como tal ni las bases teóricas para ello.

La palabra algoritmo proviene de la traducción al latín de Al-Khwārizmī que es el nombre de un matemático y astrónomo quien escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX llamado Quitab Al Jabr Al Mugabala[3]. En sus escritos se recolectan el sistema de numeración hindú, el concepto del cero y desarrolló con un número limitados de procesos para resolver ecuaciones de primer y segundo grado. Alcanzó gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales[4]Al-Khwārizmī preservó y difundió el conocimiento griego e hindú. Lamentablemente su texto sobre tratados de números se perdió, su versión latina del libro de cálculo con los números hindúes sí se conoce. Sin embargo, del libro de algebra si se preserva manuscritos árabes, pero son datados cinco siglos posterior a la fecha de redacción de Al-Khwārizmī [5]. Debemos tener en cuenta que Al-Khwārizmī no fue el creador del primer algoritmo –anteriormente mencionamos que ya se empleaban algoritmos-, pero si fue el primero en pensar en modo algorítmico.

Por un tiempo los algoritmos solo se conceptualizaban para reglas de aritmética para números arábicos. No fue hasta el siglo VXIII que se comienza a emplear algoritmos con el concepto tal y como hoy se conoce.

El primer caso de algoritmos computacionales proviene del año 1842 de los escritos de la matemática británica Ada Lovelace para la maquina analítica de Charles Babbage[6]. De allí que sea considerada como el primer programador de la historia[7], que además en su honor a un lenguaje de programación se le ha colocado su nombre, este es el lenguaje de programación Ada. Sin embargo, dado que Babbage nunca terminó su máquina analítica, el algoritmo que realizó no llegó a implementarse[8]. No obstante, su trabajo inspiró a otros investigadores que se dedicaron a este campo.

Años más tarde en el 1900 el matemático David Hilbert había propuesto varias preguntas fundamentales sobre problemas teóricos de las matemáticas, como es el caso del problema de la decisión planteada por el matemático Gottfrie Leibniz que decía: "¿Es posible encontrar una manera sencilla de decidir si un problema matemático cualquiera tiene solución?". En el año 1931 el matemático Kurt Gödel publica el Teorema de incompletud donde postula que existen proposiciones que son indecidibles. En base a este problema entre los años 1930 y 1940 derivó el desarrollo teórico y formalización de los algoritmos con los trabajos de Alan Turing, Emil Post, Stephen Kleene y Alonzo Church con el objetivo de resolver este problema o demostrar el Teorema[9]

Entre los años 1950 y 1960 los lenguajes de programación, compiladores y sistemas operativos estaban en desarrollo, por lo tanto, se convirtieron tanto en el sujeto como la base para la mayoría del trabajo teórico sobre los algoritmos. Sin embargo, no fue hasta la década de 1980 de la mente de Paul Benioff y Richard Feynman que una nueva revolución en la teoría de los algoritmos resurge, esta fue la computación cuántica, que a diferencia de las clásicas funciona sobre los principios de la mecánica cuántica, en donde los bits podían estar superposicionados en diferentes estados a la vez a diferencia de las computadoras clásicas que solo pueden estar en 1 o 0. A este nuevo estado superposicionado de bit se le llama qbits y es la base de este tipo de computadoras. Esto trajo consigo el desafío de desarrollar algoritmos para computadoras cuánticas. Entre  los años 1992 y 1998 David Deutsch, Richard Cleve, Artur Ekert, Chiara Macchiavello, Michele Mosca, Peter Shor y Lov Grover realizaron trabajos sobre algoritmos cuánticos[10] [11] [12] [13].

Desde la creación del primer algoritmo estos han sido indispensables para el desarrollo humano, especialmente hoy en día estamos dominado por la era de los algoritmos. Podríamos decir que desarrollar algoritmos es una de las herramientas más importantes para el desarrollo de cualquier civilización, por lo tanto, conocer su historia es conocer el desarrollo de la civilización humana.




[1] Páez Gutiérrez, Tomás David. 2010. Las matemáticas a lo largo de la historia de la prehistoria a la antigua Grecia. Madrid : Vision Libros, 2010. pág. 45. ISBN: 978-84-9886-744-2.
[2] Charles D. Miller, Vern E. Heeren, John Jornsby. 2006. Matemática: razonamiento y aplicaciones. [ed.] Décima. s.l. : Person Educación, 2006. pág. 155. ISBN: 970-26-0752-3.
[3] Joyanes Aguilar, Luis. 2008. Fundamentos de programación. Algoritmos, estructura de datos y objetos. [ed.] Cristina Sánchez José Luis García. Cuarta. s.l. : McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S. A. U., 2008. pág. 46. ISBN: 978-84-481-6111-8.
[4] Al-Khalili, Jim. 2018. BBC. [En línea] 5 de Agosto de 2018. [Citado el: 19 de Marzo de 2019.] https://www.bbc.com/mundo/noticias-44933192.
[5] Historias de al-Khwārizmī (2ª entrega): Los libros. Puig, Luis. 2008. 59, Noviembte de 2008, Suma, págs. 105-112. 
[6] Lovelace & Babbage and the Creation. John Fuegi, Jo Francis. 2003. 2003, Annals of the History of Computing, págs. 16-26.
[7] Essinger, James. 2014. Ada's Algorithm: How Lord Byron's Daughter Ada Lovelace Launched the Digital Age. 2014. ISBN: 978-1-61219-408-0 / ISBN: 978-1-61219-409-7.
[8] Graham-Cumming, John. 2010. Newscientist. Let's build Babbage's ultimate mechanical computer. [En línea] 15 de Diciembre de 2010. https://www.newscientist.com/article/mg20827915-500-lets-build-babbages-ultimate-mechanical-computer/.
[9] Davis, Martin. 2004. The Undecidable: Basic Papers on Undecidable Propostions, Unsolvable Problems and Computable Functions. s.l. : Dover Publications Inc, 2004. ISBN-10: 0486432289 / ISBN-13: 978-0486432281.
[10] Richard P., Feynman. Conferencias sobre computación. s.l. : Editorial Crítica. ISBN-10: 8417067922, ISBN-13: 978-8417067922.
[11] Moret Bonillo, Vicente. 2013. Principios fundamentales de computación cuántica. 2013.
[12] Simulating Physics with Computers. Feynman, Richard P. 1982. 6/7, s.l. : International Journal of Theoretical Physic, 1982, Vol. 21.
[13] Yanofsky, Nason S. y Mannucci, Mirco A. 2008. Quantum Computing for Computer Scientists. s.l. : Cambridge University Press, 2008. ISBN-10: 0521879965, ISBN-13: 978-0521879965.

Comentarios

Entradas populares