Los Algoritmos más importantes son…
Todos usamos algoritmos todo el tiempo con o sin nuestro conocimiento directo. Tienen aplicaciones en muchas disciplinas diferentes, desde matemáticas y física hasta, por supuesto, informática .
Resulta que los algoritmos tienen una larga e ilustre historia que se remonta a la antigua Mesopotamia. Pero, ¿cuál de estos complejos procesos de cálculo podría considerarse uno de los más importantes?
Una breve historia de los algoritmos
Los algoritmos son conjuntos de instrucciones predefinidos e independientes diseñados para ejecutar diversas funciones, y han existido durante más tiempo del que cabría esperar. Desde la antigua Babilonia hasta la actualidad, los algoritmos han sido una característica importante de nuestra sociedad durante milenios.
Los primeros ejemplos fueron algoritmos simples utilizados por los antiguos para rastrear su grano y ganado, entre otras cosas. A su paso, y con el advenimiento de un sistema numérico formalizado, se lograron otros saltos tecnológicos y conceptuales, entre ellos la invención del ábaco, el álgebra y el concepto de variables.
Los pensadores griegos antiguos como Euclides, Arquímedes y Eratóstenes usarían los primeros algoritmos para hacer cosas como determinar el máximo común divisor de diferentes números, aproximar Pi y calcular números primos.
Con el tiempo, tales hazañas darían lugar a símbolos y reglas involucradas en la formulación de sistemas de evaluación.
Se cree que el término “algoritmo” en sí mismo tiene su origen en el astrónomo y matemático persa del siglo IX, Muhammad ibn Mūsā al-Khwārizmī . Este hombre es ampliamente visto como la persona que introdujo por primera vez el posicionamiento decimal dentro del sistema numérico del mundo occidental.
Su apellido, latinizado como Algorithmi, se convertiría en sinónimo de instrucciones para realizar cálculos para ejecutar tareas.
También se le atribuye el desarrollo del primer sistema para resolver ecuaciones lineales y cuadráticas. El original, aunque formas rudimentarias de algoritmos, llamados algoritmos , fueron considerados como reglas para realizar cálculos aritméticos con números indo-arábigos.
El siguiente gran paso adelante en la historia de los algoritmos se produjo en el siglo XIX con el trabajo del gran George Boole. Muchos otros impulsaron algoritmos en los siglos XIX y XX, incluidos Giuseppe Peano y Ada Lovelace, por nombrar solo algunos.
Pero los algoritmos obtendrían una mejora importante con el trabajo de Emil Post y Alan Turing en la década de 1930 que finalmente darían lugar a la computadora moderna. Nada volvería a ser igual .
¿Cuáles son algunos de los algoritmos más importantes?
Y así, sin más preámbulos, aquí tienes algunos ejemplos de los algoritmos más importantes de todos los tiempos. La lista incluye ejemplos antiguos, así como algunos de los algoritmos informáticos y de programación más innovadores de la historia.
La siguiente lista de algoritmos está lejos de ser exhaustiva y no está en ningún orden en particular.
1. Los algoritmos babilónicos son los más antiguos jamás encontrados
Creador: Desconocido
Fecha de creación: alrededor del 1600 a. C.
Su impacto / implicaciones en el mundo: el primer algoritmo conocido del mundo
Aunque hay alguna evidencia de algoritmos de multiplicación tempranos en Egipto (alrededor de 2000-1700 a . C. ), se acepta ampliamente que el algoritmo escrito más antiguo se encontró en un conjunto de tablillas de arcilla babilónicas que datan de alrededor de 1800-1600 a. C.
Su verdadero significado solo salió a la luz alrededor de 1972 , cuando el científico informático y matemático Donald E. Knuth publicó las primeras traducciones al inglés de varias tablillas matemáticas cuneiformes.
Aquí hay algunos extractos de su manuscrito de 1972 que explican estos primeros algoritmos:
“Los cálculos descritos en las tablas babilónicas no son simplemente las soluciones a problemas individuales específicos; en realidad son procedimientos generales para resolver toda una clase de problemas”. – Páginas 672 a 673 de ” Algoritmos babilónicos antiguos “.
Las tabletas también parecen haber sido una forma temprana de manual de instrucciones:
“Tenga en cuenta también el final estereotipado, ‘Este es el procedimiento’, que se encuentra comúnmente al final de cada sección en una tabla. Por lo tanto, los procedimientos babilónicos son algoritmos genuinos, y podemos elogiar a los babilonios por desarrollar una buena manera de explicar un algoritmo por ejemplo, ya que el algoritmo mismo se estaba definiendo … “- Páginas 672 a 673 de” Algoritmos babilónicos antiguos “.
2. El algoritmo de Euclides todavía se usa en la actualidad.
Creador: Euclides
Fecha de creación: 300 a. C.
Su impacto / implicaciones en el mundo: el algoritmo de Euclides es uno de los primeros algoritmos jamás creados y, con algunas alteraciones, todavía lo utilizan las computadoras en la actualidad.
El algoritmo euclidiano es un procedimiento que se utiliza para encontrar el máximo común divisor (MCD) de dos enteros positivos. Fue descrito por primera vez por Euclides en su manuscrito Elementos escritos alrededor del 300 a . C.
Es una computación muy eficiente que todavía hoy utilizan las computadoras de una forma u otra.
El algoritmo de Euclides requiere la sucesiva división y cálculo de los residuos hasta que se alcanza el resultado. Se describe mejor mediante el uso de un ejemplo:
¿Cuál es el MCD de 56 y 12?
Paso 1 – Divida el número más grande por el más pequeño: –
56/12 = 4 (resto 8)
Paso 2 – Divida el divisor por el resto del paso anterior: –
12/8 = 1 (resto 4)
Paso 3: continúe con el paso 2 hasta que no queden restos (en este caso, es un proceso simple de 3 pasos): –
8/4 = 2 (sin resto)
En este caso, el GCD es 4.
Este algoritmo se usa ampliamente para reducir fracciones comunes a sus términos más bajos y en aplicaciones matemáticas avanzadas , como encontrar soluciones enteras a ecuaciones lineales.
3. El tamiz de Eratóstenes es un algoritmo antiguo y simple.
Creador : Eratosthenes
Fecha de creación: 200 a. C.
Su impacto / implicaciones en el mundo: El tamiz de Eratóstenes es ampliamente aceptado como uno de los algoritmos más antiguos de todos los tiempos. Le permite encontrar todos los números primos en una tabla de números dados (tantos como desee incluir).
Para realizarlo , busque todos los números mayores que 2, luego tache los divisibles por 2. Luego haga lo mismo para los números no tachados mayores que 3, así sucesivamente hasta el infinito hasta que todos los números compuestos (no primos ) los números están tachados.
4. El álgebra booleana (binaria) fue la base de la era de la información
Creador : George Boole
Fecha de creación: 1847
Su impacto / implicaciones en el mundo: este algoritmo es ampliamente reconocido como la base de la codificación informática moderna. Todavía se usa hoy en día, especialmente en circuitos de computadora.
5. El algoritmo de Ada Lovelace fue el primer programa informático
Creador : Ada Lovelace
Fecha de creación: 1842
Su impacto / implicaciones en el mundo: este algoritmo es ampliamente reconocido como el primer programa informático.
6. La transformada rápida de Fourier descompone las señales en frecuencias
Creador : Carl Gauss, Joseph Fourier, James Cooley y John Tukey
Fecha de creación: 1802, 1822, 1965
Su impacto / implicaciones en el mundo: este algoritmo se utiliza para descomponer una señal en las frecuencias que la componen, al igual que un acorde musical puede expresarse en frecuencias, o tonos, de cada nota que contiene.
7. El algoritmo de clasificación de Google (PageRank) podría ser el algoritmo más utilizado
Creador: Larry Page (principalmente) y Sergey Brin
Fecha de creación: 1996
Su impacto / implicaciones en el mundo: PageRank es, posiblemente, el algoritmo más utilizado en el mundo en la actualidad. Por supuesto, es la base del ranking de páginas en el motor de búsqueda de Google.
8. En Los Alamos se utilizó el método de Montecarlo (algoritmo de Metropolis).
Creador: John von Neumann, Stan Ulam y Nick Metropolis
Fecha de creación: 1946
Su impacto / implicaciones en el mundo: se utilizó como palabra clave de Los Alamos para las simulaciones estocásticas aplicadas para construir mejores bombas atómicas después de la Segunda Guerra Mundial.
9. Los algoritmos QR para calcular valores propios han demostrado ser increíblemente útiles
Creador: John GF Francis y Vera N. Kublanovskaya de forma independiente
Cuándo fue creado: finales de los 50
Su impacto / implicaciones en el mundo: el algoritmo QR simplifica enormemente los cálculos de valores propios (que son los números más importantes asociados con las matrices). Después de su desarrollo, el cálculo de estos molestos números se convirtió en una tarea rutinaria en lugar de un proceso formidable y laborioso.
10. La formulación del compilador optimizador de Fortran podría ser el evento más importante en la historia de la programación.
Creador: John Backus (y el equipo de IBM)
Fecha de creación: 1957
Su impacto / implicaciones en el mundo: Posiblemente el algoritmo / evento más importante en la programación de computadoras.
11 . Quicksort es excelente para ayudar a ordenar las cosas
Creador: Tony Hoare de Elliott Brothers, Limited, Londres
Fecha de creación: 1962
Su impacto / implicaciones en el mundo: proporcionó un medio para clasificar listas de manera rápida y eficiente en orden alfabético y numérico.
12. JPEG y otros algoritmos de compresión de datos son increíblemente útiles
Creador: Grupo Conjunto de Expertos en Fotografía, IBM, Mitsubishi Electric, AT&T, Canon Inc., Grupo de Estudio 16 del UIT-T
Fecha de creación: 1992
Su impacto / implicaciones en el mundo: Los algoritmos de compresión de datos, como JPEG , MP3, zip o MPEG-2, se utilizan ampliamente en todo el mundo. La mayoría se ha convertido en el estándar de facto para su aplicación particular. Han hecho que los sistemas informáticos sean más baratos y eficientes con el tiempo.
Es difícil destacar un algoritmo de compresión de datos en particular, ya que su valor o importancia depende de las aplicaciones de los archivos. Se han generalizado tanto hoy en día que se utilizan cada vez que descarga un archivo a su computadora, reproduce música o videojuegos, transmite videos, usa una base de datos o interactúa con la nube.