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.
[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
Publicar un comentario