¿Qué es un algoritmo? Características y Tipos

La creencia es que los algoritmos se usan sólo en cuestiones relacionadas con las matemáticas. Nada más errado!

Si bien el término está muy presente en esta área, la computación y demás áreas relacionadas con los números, los algoritmos se usan mucho más de lo que creemos, y en todos los aspectos de nuestra vida diaria.

Que vas a encontrar aquí? Que es un algoritmo en informática? Concepto, características y tipos. Su historia. Ejemplos prácticos.

Si quieres ver como los algoritmos se relacionan prácticamente en todos los órdenes de nuestra vida, te invitamos a seguir leyendo el artículo hasta el final.

Índice de Contenidos()

    Qué es un Algoritmo?

    Un algoritmo nos permite llevar a cabo una tarea o encontrar la solución a un determinado problema a través de un flujo de instrucciones bien definidas y estructuradas, que además deben estar en orden, y ser finitas, es decir tener una solución o varias soluciones posibles.

    Definidos un estado inicial y una entrada, si seguimos las instrucciones formuladas llegaremos al estado final y encontraremos la solución al problema o alcanzaremos el objetivo definido.

    que-son-los-algoritmos- (1)

    Concepto de algoritmo

    El término algoritmo proviene del idioma árabe clásico “ḥisābu lḡubār”, luego trasformada al latín “Alborarismus”, que según los expertos podría traducirse como “cálculo mediante cifras arábigas”. El origen del vocablo se remonta a la Edad Media, más precisamente de la mano del matemático Al_ Khwarizmi, en una zona de Asia Central hoy conocida como Uzbekistán, en el Asia Central.

    El algoritmo es una serie ordenada de procesos o pasos que deben llevarse a cabo para alcanzar la solución a un problema específico. Los algoritmos pueden ser de distintos tipos, los de la vida diaria como seguir las instrucciones para lavarse los dientes, poner en funcionamiento un lavarropas, para resolver o llevar a cabo procesos más complicados como el funcionamiento de un programa de computación.

    que-son-los-algoritmos- (2)

    Una de las características de los algoritmos es que nos permiten definir una serie de pasos a seguir que se deben realizar para alcanzar el resultado que deseamos, es decir un resultado previsible. En este punto cabe destacar un ejemplo de uso de algoritmos: el software de computadoras, el cual consta de instrucciones precisas para llevar a cabo un procedimiento de manera siempre igual, pero escritas en un lenguaje de programación.

    Sin embargo, el uso de los algoritmos no se limita a las computadoras o a los sistemas automatizados, ya que también en la naturaleza y en nuestra vida los algoritmos están bien presentes. Básicamente podría considerarse como un algoritmo cualquier tarea que deba ser llevada a cabo mediante instrucciones y reglas definidas para ellos. Un ejemplo de ello sería lavarse las manos y tareas similares, como podremos ver más abajo en este mismo post.

    que-son-los-algoritmos- (3)

    Tipos de algoritmos

    En términos sencillos de entender, existen dos tipos de algoritmos. Los primeros son los llamados “algoritmos convencionales”, los cuales son aquellos que las personas realizan todos los días en su acontecer diario, con el fin de llegar a cumplir un determinado objetivo, como por ejemplo hacerse el desayuno, o para solucionar problemas en su jornada laboral, como por ejemplo programar lo que almorzará en base al tiempo que tiene disponible o calcular a que temperatura hay que subir el termostato de la sala.

    Aunque pueda parecer demasiado simple, lo cierto es que si nos llevamos del significado de algoritmo, el cual básicamente dicta que se trata de “secuencia lógica y finita de pasos que permite solucionar una problemática o cumplir con un determinado objetivo” cualquier de los ejemplos citados se ajustan al máximo al significado de algoritmo.

    que-son-los-algoritmos- (4)

    El otro tipo de algoritmos son los llamados “algoritmos computacionales”, los cuales son aquellos que utilizan las aplicaciones y el software de computadoras para realizar las tareas que les pedimos o las acciones automáticas que realizan los dispositivos sin que lo solicitemos. Nuevamente si tomamos la definición de algoritmo, vamos que se cumplen todas las condiciones requeridas.

    Cabe destacar en este punto que todas las operaciones aritméticas y algebraicas relacionadas con los algoritmos se engloba en una ciencia llamada Algoritmia. Si queremos saber más acerca de los algoritmos computacionales, te invitamos a seguir leyendo el resto del post, en donde encontrarás importantes definiciones acerca del tema.

    Historia de los algoritmos

    Si bien la mayoría de nosotros piensa que la implementación de algoritmos es un hecho más relacionado con la aparición de las computadoras modernas, lo cierto es que ya en tiempos muy antiguos se utilizaban para resolver problemas matemáticos como por ejemplo raíces cuadradas y multiplicaciones.

    En este sentido, los egipcios y babilonios ya usaban algoritmos, aun cuando no existían todavía ni la base teórica ni el concepto de algoritmo como tal, siendo los primeros quienes los usaban algoritmos muy parecidos a los de expansión binaria.

    La palabra algoritmo tiene su origen en el término árabe Al-Khwārizmī, derivado de Quitab Al Jabr Al Mugabala, el cual es el nombre con que se conocía a un importante astrónomo y matemático quien en el siglo IX dejara como legado numerosos tratados acerca de conceptos acerca del cero y de la numeración hindú, y en los que también trataba temas como el desarrollo y resolución de ecuaciones de primer y segundo grado con un número limitado de procesos. Estos tratados fueron de mucha ayuda para desarrollar enunciados para sumas, restas, multiplicaciones y divisiones de números decimales.

    Si bien Al-Khwārizmī no fue el creador del primer algoritmo, ya que como mencionábamos ya los egipcios y babilonios los utilizaban, aunque sin saberlo, se considera que el matemático árabe fue en el primero en utilizarlos con un orden. Pero los algoritmos del modo en que los conocemos y empleamos hoy, no se utilizaron hasta bien entrado el siglo VXIII.

    El salto más importante de los algoritmos y su relación con la computación ocurrió en el año 1842, de la mano de Charles Babbage, con su máquina analítica y de Ada Lovelace, creadora del primer algoritmo destinado a ser procesado por una máquina.

    Lamentablemente, Charles Babbage no pudo terminar su máquina analítica, por lo tanto, el algoritmo creado por Ada Lovelace no pudo llegar a implementarse nunca. Pero el trabajo llevado a cabo por ambos fue de gran inspiración para todos los investigadores que llegaron después.

    El otro gran salto de los algoritmos aplicados a las ciencias computacionales ocurrió unos cuantos años más tarde, precisamente en el año 1900, cuando el matemático David Hilbert declaró algunas consideraciones fundamentales acerca de la ciencia de las matemáticas, que llevaron a nuevos puntos de vista que más tarde serían de mucha importancia para el desarrollo de nuevas tecnologías, como por ejemplo los trabajos llevados a cabo por científicos como Alonzo Church, Alan Turing, Stephen Kleene o Emil Post.

    Finalmente, las décadas de 1950 y 1960 fueron testigo del nacimiento de muchos lenguajes de programación, compiladores y sistemas operativos, que nos llevaron a donde estamos hoy, todo gracias al trabajo realizado durante siglos por matemáticos y científicos en torno a los algoritmos.

    Alan Turing y los algoritmos

    El científico británico Alan Turing (1912-1954), fue generador de los conceptos de algoritmo y computación: la famosa máquina de Turing. Turing es conocido, en el campo de la inteligencia artificial, por ser el creador del test de Turing, mediante el cual es posible juzgar la inteligencia de una máquina, analizando si sus respuestas son imposibles de distinguir de las de un ser humano.

    Gracias a sus aportes, fue posible desarrollar la programación y computación de la actualidad. En uno de sus trabajos dedujo que existen varias cosas que los algoritmos no pueden resolver: Es posible que un algoritmo calcule si un programa de una computadora se "colgará" en algún momento? o seguirá corriendo para siempre? La respuesta es: No. Turing, allá por 1936 probó que ese algoritmo no puede existir. Escribió que no existe una manera de predecir consistentemente el "cuelgue" de una computadora. Tampoco es posible evitarlo.

    El algoritmo de Euclides

    En matemáticas, el algoritmo de Euclides, es un método eficiente para calcular el máximo común divisor de dos números enteros, también conocido como el máximo factor común o el máximo común divisor.

    Lleva el nombre del matemático griego Euclides, quien lo describió en los Libros VII y X de sus Elementos. En su forma más simple, el algoritmo de Euclides comienza con un par de números enteros positivos y forma un nuevo par que consiste en el número más pequeño y la diferencia entre los números más grandes y más pequeños.

    El proceso se repite hasta que los números son iguales. Ese número entonces es el máximo común divisor del par original. La descripción más antigua que se conserva del algoritmo euclidiano se encuentra en Euclid's Elements, lo que lo convierte en uno de los algoritmos numéricos más antiguos que aún se usan comúnmente.

    Algoritmo computacional

    Todos hemos escuchado la palabra “Algoritmo” relacionada con las ciencias de la computación, como por ejemplo cuando se habla del “algoritmo de Google” o del “algoritmo de Facebook”. Esto es porque nada sucede en computación sin un diagrama que definen una serie de pasos, los que definitivamente conforman un algoritmo.

    que-son-los-algoritmos- (5)

    En este sentido, el algoritmo informático es el elemento fundamental de cualquier programa de computación, y no está relacionado con el lenguaje de programación utilizado para desarrollarlo, sino en los pasos que deben realizarse para alcanzar el objetivo, es decir el conjunto de instrucciones y pasos desarrollados para llevar a cabo la tarea encomendada al software.

    Esto en pocas palabras significa que primero el desarrollador de software debe diseñar el diagrama de flujo, escribir el algoritmo y luego plasmarlo en el lenguaje de programación que más se adecue a sus propias necesidades y a los requerimientos de los clientes. Con el ello, el ingeniero en informática se asegura tener una base sólida desde la cual comenzar a crear una metodología con escenarios bien definidos y finitos, es decir que deben finalizar en algún momento de su recorrido.

    Básicamente el uso de un algoritmo en computación nos ofrece la posibilidad de hallar una solución genérica a un determinado problema, y nos va a permitir reutilizarlo cada vez que sea necesario para lograr el objetivo deseado.

    que-son-los-algoritmos- (6)

    Características de un algoritmo

    Hasta este punto hemos hablado de los diferentes tipos de algoritmos y sus orígenes, pero nos falta conocer un punto más que importante, cuales son las características fundamentales que debe cumplir todo algoritmo. Es por ello que debajo de estas líneas encontraremos los puntos fundamentales que debe cumplir un proceso para ser considerado un verdadero algoritmo.

    • Lo primero que debemos considerar es que un algoritmo debe ser preciso: es por ello que se debe indicar el orden exacto de ejecución de cada paso implicado en el proceso.
    • Otro punto más que importante a considerar es que un algoritmo debe estar perfectamente definido. Esto significa que en el caso de ejecutarse el mismo más de dos veces, siempre se debe obtener el mismo resultado independientemente de la cantidad de veces que se siga.
    • También es necesario saber que un algoritmo debe ser finito, es decir que el algoritmo debe culminar en algún momento de su ejecución, expresado en otras palabras, debe tener un número de pasos bien determinados hasta concluir con su tarea.
    • Asimismo, un algoritmo tiene que ser legible. Esto significa que el texto que describe debe ser claro y conciso, de una manera tal que permita su comprensión inmediata, es decir sin procedimientos rebuscados o poco claros.
    • Por último, un algoritmo debe estar definido en tres partes fundamentales, las cuales son: Entrada, Proceso y Salida. Si quieres saber más sobre este tema, más adelante en este mismo post encontrarás información al respecto.

    que-son-los-algoritmos- (7)

    Características de los algoritmos computacionales

    Originariamente, la idea de llevar este concepto del ámbito de las matemáticas al campo de la incipiente informática fue propuesto por el matemático inglés Alan Turing, quien sentó las bases para definir los elementos básicos de un algoritmo aplicado a las ciencias de la computación, los cuales debían ser los siguientes:

    • Una secuencia de pasos limitada, que deben estar definidas claramente. Asimismo estos pasos deben ser independientes el uno del otro.
    • Un agente, que puede ser en algunos casos un operador humano y en otros casos parte del propio programa es el actor que tiene como tarea aplicar cada una de las etapas del proceso en un punto específico del recorrido.
    • Este agente debe tener la capacidad de interpretar las instrucciones operacionales y simultáneamente tener la posibilidad de almacenar la información suministrada por el propio programa.
    • El resultado obtenido cuando se realizan las determinadas operaciones del programa siempre ha de comportarse igual, en cada paso de la operatoria, teniendo en cuenta por supuesto la configuración de los datos iniciales de entrada.
    • La operación siempre debe finalizar con un resultado conciso.

    En este punto cabe destacar que existen casos en los cuales el procedimiento requiere que se ofrezca un resultado concreto, y otros casos en los cuales no es necesario. Es por ello que los algoritmos repetitivos o irregulares que no culminan son tan habituales en la programación de aplicaciones para computadoras.

    El mejor ejemplo de esto son los sistemas operativos modernos como Windows, Linux o el SO de las computadoras Mac, los cuales deben seguir en ejecución para permitir que las demás aplicaciones y procesos de la computadora puedan seguir cumpliendo con su función o tarea.

    que-son-los-algoritmos- (8)

    Partes de un algoritmo

    A partir de este punto, conoceremos las reglas básicas de las partes que deben conformar un algoritmo para ser considerado como tal. Básicamente, los algoritmos deben estar compuestos por tres partes principales que son entrada, proceso y salida, independientemente de tratarse de algoritmos computacionales, algoritmos no computacionales, algoritmos cualitativos o algoritmos cuantitativos.

    Aquí abajo encontraremos las características que debe tener cada fase de un algoritmo.

    Entrada

    Esta fase del algoritmo se corresponde con los valores de entrada con que se debe alimentar al mismo. Básicamente se trata de la información que se entrega al algoritmo, es decir, los valores de datos con los que tendrá que ofrecer un determinado resultado.

    Proceso

    La segunda fase de un algoritmo ocupa los cálculos necesarios para procesar los datos con los que hemos alimentado al algoritmo, es decir que en este punto se procesará la información entrega a la entrada del algoritmo, y con la cual se debe llegar al resultado esperado.

    Salida

    La tercera y última fase de un algoritmo es donde se obtiene el resultado de la operación, es decir la transformación de los datos que fueron proporcionados en la fase de entrada y desarrollados en la fase de proceso.

    Como hacer un algoritmo

    En el caso que necesitemos realizar nuestro propio algoritmo para poder resolver problemas o mejorar algún proceso en nuestra actividad, lo podemos llevar a cabo de manera bastante sencilla, ya que lo único que tenemos que hacer es poner claro que necesitamos y como lo podemos resolver.

    Para ello debemos realizar la serie de pasos necesarios y sus derivaciones para poder llegar al resultado esperado del problema que tenemos entre manos. Los pasos para definir y concretar nuestro algoritmo son los siguientes:

    • Primer paso: Análisis previo del problema o necesidad. Lo primero que tenemos que hacer, antes de comenzar con el desarrollo de cualquier algoritmo es llevar a cabo un análisis pormenorizado de la situación o problema.
    • Segundo paso: Definir los requerimientos. En este paso se debe definir exactamente el problema que tenemos que solucionar y desglosarlo, incluyendo todas las derivaciones que puedan surgir.
    • Tercer paso: La identificación de los módulos. En este paso, identificar claramente los módulos es tan importante como la identificación de los requerimientos. Esto es así debido a que identificar correctamente los módulos nos va servir para simplificar considerablemente la puesta en marcha de los pasos del algoritmo correcto para nuestro problema, y que hemos identificado en el paso anterior.
    • Cuarto paso: La creación del algoritmo. En este punto debemos asegurarnos que el algoritmo cumpla con todos los requerimientos adecuados para llevar a cabo la función encomendad. Esto es similar tanto para los algoritmos no computacionales como para los algoritmos computacionales. En el caso de tratarse de un algoritmo computacional, además deberá cumplir con ciertas características para poder luego implementarse en cualquier lenguaje de programación.
    • Quinto paso: La implementación del algoritmo. En el caos de los algoritmos computacionales, la implementación de los mismos se debe llevar a cabo traduciendo el mismo a un lenguaje de programación con el propósito de que cualquier computadora pueda interpretar sus instrucciones y enviar a su hardware la información necesaria para poder completar los pasos correspondientes y de esta manera obtener el resultado esperado.
    • Sexto paso: Creación de las herramientas para llevar a cabo el algoritmo. En este último, y si pudimos cumplimentar correctamente con todos los pasos anteriores, ya estaremos en posición para poder crear las herramientas necesarias para poder ejecutar el algoritmo desarrollado. En el caso tratarse de un algoritmo computacional, podemos desarrollar a través de cualquier lenguaje de programación un aplicación para poder llevarlo a cabo, la cual contará con una serie de instrucciones que ordenadas una detrás de la otra podrán representar el algoritmo que hemos diseñado y poder ofrecer una solución a los requerimientos identificados. En los casos en que se trate de un algoritmo no computacional, podemos desarrollar lo necesario teniendo en cuenta los pasos que debe seguir el algoritmo, como por ejemplo una línea de producción.

    Ejemplos de algoritmos

    Los algoritmos pueden aplicarse en cualquier campo, y no son para nada ajemos a la vida diaria, es decir que no son sólo cálculos que se aplican en determinados campos científicos, ya que en nuestra vida diaria podemos encontrar decenas de ejemplos de algoritmos, los cuales la mayoría de las veces pasan desapercibidos para todos nosotros.

    Un ejemplo de algoritmo en la vida diaria es el proceso de digestión, el cual es básicamente un concepto de algoritmo con el que vivimos todos los días sin que tengamos que conocer implícitamente su definición para que ocurra. Esto significa que para que podamos realizar el proceso de digestión todos los días no es necesario que sepamos como este funciona ni los actores implicados en el procedimiento.

    que-son-los-algoritmos- (9)

    Los algoritmos se ponen en marcha infinidad de veces el día, pero nos hemos acostumbrado a ellos o quizás simplemente ignoramos que lo son, debido a que no estamos familiarizados con el concepto de algoritmo.

    Un hecho que debemos destacar es que los algoritmos en la vida diaria, no difieren demasiado de los algoritmos que se utilizan en las ciencias de la computación. En el siguiente ejemplo, proponemos comparar el algoritmo descripto con alguna situación dada en la vida real. ¡Te aseguramos que te sorprenderá el resultado!

    Para el ejemplo hemos realizado un algoritmo dónde se determina si una persona puede ingresar a una atracción mecánica en un parque de diversiones.

    Comienzo
    Paso 1Escribir “¿Cuál es la edad?”
    Paso 2Leer “Edad”
    Paso 3Escribir “¿Cuál es la altura?
    Paso 4Leer “Altura”
    Paso 5Si (“Edad” >= 18 “Altura” >= 148) entonces
    Paso 6Escribir “Puede ingresar”
    Paso 7En caso contrario “si no”
    Paso 8Escribir “No puede ingresar”
    Paso 9Finalización de “Si”
    FINAL

    Graciela Marker

    Periodista independiente con más de 20 años de experiencia en medios gráficos, audiovisuales y digitales. Formada académicamente en periodismo digital y comunicación multimedia, ámbito en el que se desenvuelve hace dos décadas. Especializada en ámbitos tales como la informática y la logística empresarial, entre otros.

    1. Jesush Galindez A. dice:

      Aunque tengo mas de 70 años y soy doctor en fisica teorica ( no soy fisico computista) y me estoy interesando en ver como son los algoritmos cuánticos para poder hacer comparaciones con los algoritmos clasicos, ; entonces veo MUY INTERESANTE LA FORMA QUE USTEDES PRESENTAN EL APRENDIZAJE. pODEIS ESCRIBIRME PARA LO CUAL DEJO MI EMAIL.
      CORDIALMENTE ......Jesus H.Galindez A.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Usamos cookies para darte una mejor experiencia de navegación. Si continuas navegando, aceptas su uso. Más Información sobre nuestras Cookies