Saltar al contenido

Algoritmos computacionales

algoritmos computacionales

La tecnología de los algoritmos computacionales es uno de los campos de mayor investigación dentro de las matemáticas, la informática, la lógica y todas las ramas de las ciencias de la computación. No son más que instrucciones bien definidas y que no poseen ambigüedades, las cuales permiten un número ordenado de acciones por parte de los softwares ante cualquier problema.

De esta manera, ante un problema de cualquier tipo el software puede seguir una serie de decisiones ya definidas mediante un diagrama de flujo. Estos diagramas de flujo pueden simplificarse para los usuarios como instrucciones escritas, por ejemplo, “Para abrir una puerta, ¿está cerrada con seguro? ¿Si?, ¿no?”, entonces dependiendo de la respuesta a la pregunta los algoritmos computacionales detallarán una acción en base a la situación.

En este sentido, los algoritmos computacionales pueden entenderse de una manera detallada y escrita entre las personas. Pero en el caso de los computadores, es necesario desarrollar dichos algoritmos en lenguaje matemático. Este lenguaje se conoce como seudocódigo o pseudocódigo.

Los pseudocódigos son un tipo de lenguaje complejo y abstracto que puede ser escrito y leído con independencia del lenguaje de programación del software que haga uso del algoritmo computacional. Se usa para poder expresar de manera detallada las instrucciones del algoritmo computacional y a su vez sean entendidas sin modificaciones luego de su traducción al lenguaje de programación.

Partes de un algoritmo

Para que un algoritmo sea tratado como tal, debe cumplir con una estructura, esta a su vez se caracteriza por seguir reglas que forman parte de cada elemento de la estructura. Todo esto sin importar el tipo de algoritmo que sea (los que se detallarán más adelante). Así, las partes principales de un algoritmo son:

Entrada

Es la porción que marca el inicio del algoritmo y le dará también orden y sentido a la lectura del mismo. En este punto también son dados los datos o “insumos” que son requeridos para iniciar y mantener los procesos que se desglosarán en el resto del algoritmo.

Proceso

Los datos y las formas que son dadas en la entrada del algoritmo, luego son desarrollados mediante estructuras de problemas y de sus soluciones. Esto se realiza hasta agotar la lógica del algoritmo, o lo que es igual, sin dejar sin explicación problemas que puedan surgir durante la ejecución de todo el algoritmo.

Salida

Son los resultados finales de los procesos desarrollados en la porción anterior del algoritmo. Deben ser concretos para ser considerados como parte de la “salida” del algoritmo. Representando así la transformación ultima de los insumos o datos añadidos en la entrada del algoritmo.

Tipos de algoritmos

Debido a la importancia de los algoritmos en la informática, se han podido desarrollar millones de ellos. Por eso, para poder entender las capacidades o formas en que funcionan los algoritmos, es más sencillo agruparlos primero de acuerdo a su tipo. De esta manera, los tipos de algoritmos computacionales más convencionales son:

Algoritmos cualitativos

Son sencillos algoritmos muy detallados y escritos en lenguaje convencional (cómo el castellano o el inglés), los cuales sirven como arboles de proceso para organizar la información sobre algún tema en específico.

Pueden ser utilizados como método de planificación y diseño de algoritmos mucho más complejos, tales como los computacionales o los cuantitativos.

Algoritmos cuantitativos

Este tipo de algoritmos utiliza solamente lenguaje matemático para expresar los procesos y cuestiones dentro del algoritmo. Normalmente es utilizado para ordenar procesos matemáticos de cálculo como ecuaciones largas o de resultado diverso.

Algoritmos computacionales:

Se puede diferenciar estos algoritmos de los cuantitativos pues usan el pseudocódigo como lenguaje. Debido a esto, aprovechan tanto cálculos matemáticos como escritura de programación para obtener el máximo detalle del significado de cada parte del algoritmo, y es debido a su misma complejidad que es necesario el uso de un computador para su creación o entendimiento.

Algoritmos no computacionales

Este tipo de algoritmos son de escritura bastante sencilla y fluida, por lo que no necesita del uso de computadores para su escritura o lectura, que solo requiere de herramientas menos avanzadas como calculadoras convencionales.

Características de los algoritmos

A pesar de que existen distintos tipos de algoritmos o que los propios algoritmos computacionales pueden ser muy complejos, todos los algoritmos comparten una serie de características. Estas son las que dan la utilidad a los mismos, y son las siguientes:

Deben ser secuenciales y ordenados

Todos los algoritmos (incluido los computacionales) deben estar escritos de manera secuencial y siguiendo un orden lógico, a modo de árbol de proceso. En donde cada paso o porción de la acción a realizar sean descritos al igual que las opciones posibles de resolución para cada paso, esto último normalmente estructurado mediante respuestas de “si” o “no”.

Son muy precisos

Para que cualquier algoritmo sea útil debe detallar todo el tema o problema que aborda, sin dejar cabos sueltos. De esta manera, en el caso de los algoritmos computacionales, se evitan la aparición de errores inesperados que no puedan ser resueltos dentro del algoritmo.

Tienen que ser finitos y concretos

Cada paso o rama del algoritmo, debe llevar a un final que de un resultado concreto para los problemas que este abordando el algoritmo. Pero, aunque estas son características de los algoritmos, no siempre son aplicadas, ya que es común encontrar algoritmos computacionales que dan resultados en bucle, esto es que un paso el algoritmo vuelve a un punto anterior del mismo.

Toda acción debe estar definida

Al desarrollar un algoritmo, en especial en los algoritmos computacionales escritos en pseudocódigo. Debe resumirse toda la información que deba transmitir cada parte del algoritmo, sin que por esto pierda sentido o disminuya la calidad del resultado esperado. Esto requiere de computadores y personal humano que domine a detalle el pseudocódigo.

¿Cómo se hace un algoritmo?

Aunque realizar un algoritmo computacional puede resultar una ardua tarea, si no se tienen conocimientos previos de pseudocódigos, programación o ciencias de la computación. Sin embargo, es posible escribir sencillos algoritmos cualitativos que sirvan de base o ejemplo para un algoritmo computacional.

De esta manera, los pasos que se deben seguir para hacer un algoritmo son:

  • Paso 1: Aquí se debe analizar y describir todo el problema a abordar, para así luego reducirlo a porciones que serán procesadas dentro del algoritmo.
  • Paso 2: Una vez analizado y desglosado el problema por partes, se ordena cada una de estas y se añaden todas las derivaciones posibles (“si”, “no”, etc).
  • Paso 3: A partir de aquí debe volver a separarse las partes del algoritmo a manera de módulos según los requerimientos o las acciones que estén tratando cada porción del algoritmo. Por ejemplo, si un algoritmo está tratando una acción “A” distinta a una acción “B”, ambos grupos pueden agruparse como módulos distintos.
  • Paso 4: En este paso, todo el algoritmo debe examinarse a manera de inspección, en busca de fallas o faltas de descripción en sus partes. Asegurando de esta manera un algoritmo completo y congruente.
  • Paso 5: Aquí debe probarse el algoritmo, en caso de ser un algoritmo computacional, siguiendo la lógica o funcionamiento de la programación del software, comprobando que cada instrucción de los módulos sean seguidas correctamente.
  • Paso 6: Se desarrolla el algoritmo computacional propiamente en el lenguaje de programación del software, ya no en pseudocódigo, integrando toda la información del algoritmo al programa.

Aplicaciones e importancia de los algoritmos computacionales

Los programadores al escribir un algoritmo computacional, están detallando al computador que pasos debe seguir ante cualquier acción que tenga que realizar o problema a resolver. Esto se cumple al añadir dichas acciones a la programación del software.

Pero, primero debe pensarse en un algoritmo, para agotar así por completo la cuestión que se vaya a tratar. Por esto, un algoritmo permite evitar la programación sin planificación, dando estructura, orden y jerarquía a las necesidades del programa y de las acciones que el mismo ofrece. Todo esto aumenta la calidad y eficacia de los computadores.

Los programadores al escribir un algoritmo computacional, están detallando al computador que pasos debe seguir ante cualquier acción que tenga que realizar o problema a resolver. Esto se cumple al añadir dichas acciones a la programación del software.

Pero, primero debe pensarse en un algoritmo, para agotar así por completo la cuestión que se vaya a tratar. Por esto, un algoritmo permite evitar la programación sin planificación, dando estructura, orden y jerarquía a las necesidades del programa y de las acciones que el mismo ofrece. Todo esto aumenta la calidad y eficacia de los computadores.

Otra de las cualidades de los algoritmos computacionales, es la de producir una respuesta en base a una serie de acciones acumuladas. Gracias a esto, son ampliamente utilizados dentro de plataformas importantes, las cuales aprovechan los algoritmos para aumentar la interacción que tienen con sus usuarios (por ejemplo recomendando películas o canciones que pueden ser del gusto del usuario).

Algunas plataformas reconocidas por su uso inteligente de los algoritmos son:

YouTube

La plataforma de streaming y red social YouTube, usa una serie de complejos algoritmos computacionales los cuales son capaces de analizar los datos de sus usuarios, deduciendo con ello gustos y desagrados, lo cual es aprovechado para recomendar videos y publicidad dirigida.

ORION

Este es el enorme algoritmo, de más de 1000 páginas de codificación, de la empresa de mensajería y transporte de paquetes UPS está especialmente diseñado para encontrar las rutas de entrega más eficientes entre millones de posibilidades.

Facebook

La red social Facebook, configura su feed de noticias mediante algoritmos los cuales están diseñados para medir las relaciones de sus usuarios con las páginas y publicaciones. Con lo que puede encontrar patrones de gustos, gracias a esto, Facebook organiza las noticias en nuestro muro en base a lo que más nos pueda agradar.

Inteligencias Artificiales

Actualmente se encuentran en desarrollo diversas inteligencias artificiales, las cuales tienen como objetivo ser capaces de realizar análisis de problemas y deducir soluciones o patrones. Esto lo logra mediante un algoritmo dinámico que puede adaptarse en base a las necesidades del análisis.