Un diagrama para la Máquina Analítica. Por ArnoldReinhold – Obra propia, CC BY 4.0, https://commons.wikimedia.org/w/index.php?curid=69497631 La Máquina Analítica era un ordenador mecánico, una máquina que automatizaba los cálculos. Fue la Máquina Analítica para la que escribió el primer algoritmo. Su trabajo consistió en una fórmula que mostraba cómo configurar la máquina para calcular una determinada secuencia compleja de números, llamados números de Bernoulli. La fórmula es ahora ampliamente reconocida como el primer algoritmo informático de la historia.
Ada no se limitó a realizar cálculos puramente matemáticos. Dado que vivió en el siglo XIX, fue una verdadera visionaria.
Mientras que muchos de sus contemporáneos consideraban que los primeros ordenadores mecánicos eran sobre todo máquinas para hacer números, ella se preguntaba qué había más allá de los cálculos. Sentía curiosidad por el potencial más amplio de los ordenadores mecánicos como herramientas de colaboración. Esperaba ver ordenadores que potenciaran a los seres humanos mucho más que mediante la automatización de los cálculos.
Diagrama de Lovelace de la «nota G», el primer algoritmo informático publicado, por Ada Lovelace – http://www.sophiararebooks.com/pictures/3544a.jpg, Dominio público, https://commons.wikimedia.org/w/index.php?curid=37285970
Desgraciadamente, la construcción de la Máquina Analítica no se completó antes de la muerte de Ada, por lo que nunca pudo ver su algoritmo en acción. Lamentablemente, la Máquina Analítica no ha sido construida hasta el día de hoy. Otro diseño de Charles Babbage, la Máquina Diferencial №2, no fue construida por el Museo de Ciencias de Londres hasta 1991. Se demostró que era funcional, utilizando materiales y tecnologías disponibles para Charles Babbage. Parece que Babbage no tuvo suerte a la hora de conseguir construir sus diseños. Existen otras implementaciones parciales del trabajo de Charles en otros lugares, pero, por desgracia, no podemos ejecutar el algoritmo de Ada Byron en una máquina analítica real.
El siglo XIX se convirtió en una era de «algoritmos incrustados en máquinas».
Hubo muchos de ellos, que automatizaban todo tipo de acciones humanas. Si se necesitaba un patrón intrincado en una pieza de tela, Joseph Marie Jacquard, un tejedor y comerciante francés, tenía una solución para usted: el telar Jacquard. Permitió a los fabricantes de telas producir sofisticados patrones utilizando una serie de tarjetas perforadas que daban instrucciones al telar sobre cómo tejer. De forma similar, las primeras centrales telefónicas utilizaban sofisticados dispositivos mecánicos para conectar las llamadas telefónicas. Seguían automáticamente las instrucciones paso a paso para que, en última instancia, dos personas hablaran entre sí. Estas máquinas, ya sean telares o centrales, fueron pioneras en su época y siguen siendo impresionantes hasta hoy. Es difícil no admirar los niveles de complejidad de algunas de estas máquinas. Sin embargo, todos estos dispositivos seguían siendo puramente mecánicos. Estaban hechos de palancas, interruptores y ejes. Hacían mucho ruido. Y estaban muy lejos de lo que hoy llamamos ordenadores.
Los algoritmos en los ordenadores de propósito general
No fue hasta la década de 1930 cuando vimos las primeras menciones a los algoritmos en los ordenadores electrónicos (no mecánicos). Alan Turing fue uno de los primeros científicos que plasmó formalmente cómo los individuos realizaban los cálculos. El objetivo de Turing era capturar un proceso general, en lugar de uno específico para una tarea concreta, como la identificación de números primos o el cálculo del máximo común divisor. El proceso general podría entonces utilizarse para realizar tareas específicas. El trabajo conceptual de Turing condujo al desarrollo de lo que hoy se conoce como la máquina de Turing. La máquina de Turing, a su vez, condujo a la aparición de los ordenadores de propósito general. El prefijo de propósito general es esencial aquí. A diferencia de las máquinas anteriores, los nuevos ordenadores ejecutaban conjuntos arbitrarios de instrucciones. Podían utilizarse para fines no previstos por sus creadores. En otras palabras: El trabajo de Turing condujo al desarrollo de ordenadores en los que podemos instalar y ejecutar aplicaciones.
No hay Flappy Bird en tu smartphone sin el concepto de máquina de Turing.
Décadas después, los algoritmos se han vuelto extremadamente sofisticados. Tan sofisticados, de hecho, que a menudo nos resulta imposible explicar cómo funcionan. En el siglo XX, muchos preferían pensar en los algoritmos informáticos como cajas negras. No había que entender cómo funcionaban exactamente. Lo único que importaba eran las entradas -lo que entraba en la caja negra- y las salidas -lo que salía-. Esta simplificación fue una elección. En el siglo XXI, para algunos algoritmos esto ya no es una opción: los humanos no pueden explicar exactamente cómo los algoritmos alcanzan determinados resultados, por lo que nos vemos obligados a pensar en estos algoritmos como cajas negras, o quizás mágicas. Un grupo de estos algoritmos son algunos de los de la inteligencia artificial. Podemos explicar sus principios. Por ejemplo, podemos decir que un algoritmo utiliza una red neuronal artificial. También podemos explicar cómo se creó la red y cómo la entrada dio lugar a una salida determinada. Lo que no podemos explicar, sin embargo, es por qué ese resultado concreto fue la salida del algoritmo, más allá de una explicación puramente mecánica. Eric L. Loomis, cuya duración del encarcelamiento dependía de un algoritmo, trató de entender por qué el algoritmo COMPAS lo evaluó como un criminal de alto riesgo. Era sencillamente imposible. La sofisticación de los algoritmos es a menudo abrumadora. Y esto es sólo el principio.
Vivimos en un mundo en el que los algoritmos están por todas partes, no sólo en papel o en nuestras mentes, sino controlando máquinas, ordenadores y robots.
Son pequeños, omnipresentes y -al menos en algunos casos- inexplicables.
Una definición más formal de un algoritmo es «una especificación inequívoca de cómo resolver una clase de problemas» o «un conjunto autocontenido de operaciones a realizar paso a paso»
www.oed.com/view/Entry/4959
A fecha de octubre de 2018, el mayor número primo conocido es 277.232.917- 1, un número con 23.249.425 dígitos. Solo para comprobar si este único número es primo se necesitaron seis días de computación ininterrumpida en un ordenador doméstico contemporáneo. (https://www.mersenne.org/primes/press/M77232917.html)