Un algoritmo es un pro­ce­di­mie­n­to pre­de­fi­ni­do que resuelve problemas o tareas paso a paso. Aunque los al­go­ri­t­mos se en­cue­n­tran en casi todos los ámbitos de la vida cotidiana, son ese­n­cia­les para la in­fo­r­má­ti­ca y los programas de software. Algunos ejemplos conocidos son el algoritmo de Google, que determina la cla­si­fi­ca­ción de los re­su­l­ta­dos de las búsquedas, y los al­go­ri­t­mos de las noticias de Facebook o Instagram.

Breve de­fi­ni­ción de los al­go­ri­t­mos

Los al­go­ri­t­mos son se­cue­n­cias pre­de­fi­ni­das y finitas de acciones uti­li­za­das para resolver problemas. En otras palabras, se utilizan para realizar tareas es­pe­cí­fi­cas uti­li­za­n­do se­cue­n­cias fijas de pasos o co­n­vi­r­tie­n­do valores de entrada en valores de salida. Los pasos están pre­de­te­r­mi­na­dos y se ejecutan en una secuencia. Los al­go­ri­t­mos son in­de­pe­n­die­n­tes de un lenguaje es­pe­cí­fi­co y, por tanto, funcionan con y sin máquinas. Sin embargo, los al­go­ri­t­mos no solo se en­cue­n­tran en las ma­te­má­ti­cas y la in­fo­r­má­ti­ca, también están a nuestro alrededor: desde las luces de los semáforos hasta la función de llamada de un ascensor.

6 pro­pie­da­des que debe tener un algoritmo

Mientras que antes los al­go­ri­t­mos se definían de forma aleatoria, hoy es posible ide­n­ti­fi­car un algoritmo según seis pro­pie­da­des:

Si­n­gu­la­ri­dad/eficacia

Cada paso de la secuencia de acciones de un algoritmo debe ser eficaz e ine­quí­vo­co. Esto significa que, para obtener un resultado o valor de salida, cada in­s­tru­c­ción debe tener sentido y ser adecuada para su fin.

Ejecución

Las acciones y los pasos in­di­vi­dua­les deben ser eje­cu­ta­bles y lógicos.

Finitud

El objetivo de un algoritmo es convertir los datos de entrada en datos de salida. Esto solo es posible si el proceso es finito. Los al­go­ri­t­mos deben tener una forma finita, por ejemplo, mediante un número limitado de ca­ra­c­te­res o una memoria limitada.

Te­r­mi­na­ción

Los pasos in­di­vi­dua­les eje­cu­ta­bles, lógicos y finitos deben conducir a un resultado en un tiempo finito. La secuencia debe estar dirigida a un objetivo y no terminar en un bucle sin fin y sin resultado.

De­te­r­mi­na­ción

Las mismas entradas en las mismas co­n­di­cio­nes deben conducir a los mismos re­su­l­ta­dos. Solo así los al­go­ri­t­mos pueden ga­ra­n­ti­zar que una apli­ca­ción y la solución de un problema funcionen de forma fiable.

De­te­r­mi­ni­s­mo

En la secuencia de pasos del algoritmo, siempre hay una única forma de resolver el problema. Así, los pasos po­s­te­rio­res están cla­ra­me­n­te definidos por los re­su­l­ta­dos in­te­r­me­dios y no son alea­to­rios.

¿Cuál es la im­po­r­ta­n­cia de los al­go­ri­t­mos?

Los al­go­ri­t­mos solían de­sem­pe­ñar un papel central en los siglos XIX y XX, es­pe­cia­l­me­n­te en el campo de las ma­te­má­ti­cas y la lógica, donde eran temas comunes de debate. Hoy, los al­go­ri­t­mos se en­cue­n­tran en casi todos los ámbitos de la vida cotidiana. Sin embargo, no­r­ma­l­me­n­te no somos co­n­s­cie­n­tes de los al­go­ri­t­mos que hacen posible ciertos usos, como la cinta de la caja re­gi­s­tra­do­ra del su­pe­r­me­r­ca­do, nuestros di­s­po­si­ti­vos de na­ve­ga­ción o el mecanismo de cla­si­fi­ca­ción de un motor de búsqueda como Google.

En in­fo­r­má­ti­ca, los al­go­ri­t­mos co­n­s­ti­tu­yen la base central de la pro­gra­ma­ción. Cua­l­quie­ra que quiera aprender a programar se da cuenta rá­pi­da­me­n­te de que casi todos los programas utilizan al­go­ri­t­mos para realizar una tarea. En pocas palabras, cualquier programa es un algoritmo.

Sin embargo, no todo algoritmo es un programa, porque los al­go­ri­t­mos son in­de­pe­n­die­n­tes de los lenguajes de pro­gra­ma­ción web. De hecho, también pueden fo­r­mu­lar­se en lenguaje “natural”, re­pre­se­n­tar­se en fórmulas ma­te­má­ti­cas o eje­cu­tar­se de forma no mecánica. El origen del término se encuentra en el lenguaje khorezmi, y fue acuñado en el siglo VIII por el pensador y ma­te­má­ti­co al-Chwarizmi, abre­via­ción de Abu Jah'far Muhammad ibn Musa al-Chwārizmī.

Apli­ca­cio­nes de los al­go­ri­t­mos

Los al­go­ri­t­mos no se limitan a lenguajes y métodos ni a ámbitos es­pe­cí­fi­cos de apli­ca­ción. Dado que su utilidad reside en la re­so­lu­ción de problemas, re­pre­se­n­tan un curso de acción y un pro­ce­di­mie­n­to es­pe­cí­fi­co que funciona con di­fe­re­n­tes variables y se­cue­n­cias de pasos. Es el caso, por ejemplo, del cálculo de rutas para di­s­po­si­ti­vos de na­ve­ga­ción, los sistemas de re­co­me­n­da­ción en tiendas online, la pu­bli­ci­dad pro­gra­má­ti­ca para la pu­bli­ci­dad online in­te­li­ge­n­te y en tiempo real, las apps de tra­du­c­ción y las si­mu­la­cio­nes por ordenador.

En pa­r­ti­cu­lar, dentro de los ámbitos del big data y la in­te­li­ge­n­cia ar­ti­fi­cial (IA) los al­go­ri­t­mos siguen ganando pro­ta­go­ni­s­mo. La di­gi­ta­li­za­ción y la presencia de te­c­no­lo­gías in­te­li­ge­n­tes como los sma­r­t­pho­nes, los sma­r­t­wa­t­ches y la IA en los coches y el hogar in­te­li­ge­n­te hacen que los datos aumenten rá­pi­da­me­n­te.

Esto requiere or­de­na­do­res y se­r­vi­do­res que tengan la su­fi­cie­n­te potencia de cálculo, pero también al­go­ri­t­mos para organizar, evaluar, procesar o aplicar los volúmenes de datos. Los sensores de los vehículos au­to­ma­ti­za­dos, que activan las acciones del vehículo basándose en los datos re­gi­s­tra­dos, son un ejemplo de ello. Los al­go­ri­t­mos in­fo­r­má­ti­cos ma­te­má­ti­cos también de­sem­pe­ñan un papel decisivo en la creación de si­mu­la­cio­nes cli­má­ti­cas.

Los motores de búsqueda y pa­th­fi­n­di­ng en in­fo­r­má­ti­ca tampoco podrían existir sin al­go­ri­t­mos. Los llamados web crawlers se utilizan para buscar, analizar e indexar co­n­te­ni­dos web. Los ra­s­trea­do­res catalogan e indexan los datos basándose en el algoritmo de un motor de búsqueda. A su vez, la cla­si­fi­ca­ción y la po­si­bi­li­dad de encontrar los re­su­l­ta­dos de la búsqueda dependen de una ca­ta­lo­ga­ción adecuada. Por lo tanto, el algoritmo del motor de búsqueda sirve de orie­n­ta­ción para un eficiente Search Engine Op­ti­mi­za­tion.

Ejemplos de al­go­ri­t­mos

Cada día aparecen nuevos al­go­ri­t­mos con prácticas opciones de uso. Los si­guie­n­tes ejemplos ilustran algunos al­go­ri­t­mos exi­s­te­n­tes en nuestra vida cotidiana.

Algoritmo de Google

Google tarda una fracción de segundo en mostrar los re­su­l­ta­dos de la búsqueda cuando in­tro­du­ces términos de búsqueda o realizas una consulta en la barra de búsqueda. Esto es posible gracias al algoritmo del motor de búsqueda de Google, que ordena los re­su­l­ta­dos en función de la re­le­va­n­cia, las palabras clave, la es­tru­c­tu­ra de los enlaces, la le­gi­bi­li­dad del contenido y la seguridad. Sin embargo, el algoritmo exacto y su fu­n­cio­na­mie­n­to detallado siguen siendo un secreto.

Recetas de cocina

Las recetas de cocina sencillas encarnan el principio básico de un algoritmo. Los in­gre­die­n­tes pueden en­te­n­de­r­se como entradas que conducen al resultado en una secuencia es­pe­cí­fi­ca y fija de acciones. Las páginas web de cocina que permiten calcular la cantidad de in­gre­die­n­tes en función de las raciones y el número de personas utilizan al­go­ri­t­mos.

Índice de masa corporal

El po­r­ce­n­ta­je de grasa corporal de una persona puede ca­l­cu­lar­se mediante el índice de masa corporal. En este caso, el peso corporal se establece en relación con la altura del cuerpo. Las entradas son el peso y la altura de una persona, y la salida es el IMC. El IMC indica si una persona tiene un peso normal, bajo peso, sobrepeso u obesidad.

ASIC

El llamado circuito integrado de apli­ca­ción es­pe­cí­fi­ca puede en­te­n­de­r­se como un algoritmo in­co­r­po­ra­do al hardware. Son circuitos no variables en el hardware que realizan una función es­pe­cí­fi­ca. Un ejemplo de ello es un pro­ce­sa­dor gráfico.

Data mining

La búsqueda, re­co­pi­la­ción, análisis, ca­ta­lo­ga­ción e in­de­xa­ción de datos también se denomina data mining. Aquí se utilizan al­go­ri­t­mos, in­te­li­ge­n­cia ar­ti­fi­cial y machine learning.

Al­go­ri­t­mos de minería de cri­p­to­mo­ne­das

En cr­y­p­to­mi­ni­ng, las tra­n­sac­cio­nes con cri­p­to­mo­ne­das se do­cu­me­n­tan, se verifican y se publican en el blo­c­k­chain. Como parte del proceso, los mineros de cri­p­to­mo­ne­das resuelven los al­go­ri­t­mos re­la­cio­na­dos con las tra­n­sac­cio­nes, similares a los ro­m­pe­ca­be­zas numéricos. Al resolver los ro­m­pe­ca­be­zas se verifican las tra­n­sac­cio­nes.

Redes neu­ro­na­les

Una neuronal network es un área del deep learning. Los al­go­ri­t­mos de deep learning se utilizan para simular y re­pro­du­cir las funciones del cerebro humano. Pueden uti­li­zar­se para diversas funciones, como la asi­s­te­n­cia li­n­güí­s­ti­ca, la tra­du­c­ción, la pro­te­c­ción contra ci­ber­ata­ques o la ge­ne­ra­ción de textos.

Ir al menú principal