Algoritmos computacionales

algoritmos_computacionales

Los algoritmos son instrucciones bien definidas que se dan en un orden lógico, las cuales permiten un número ordenado de acciones. El área de los algoritmos computacionales, es uno de los de mayor investigación dentro de un conjunto de ciencias como las matemáticas, la informática y otras ramas que en su conjunto se denominan ciencias de la computación.

En este sentido, los algoritmos computacionales pueden entenderse de una manera detallada y escrita entre personas, pero en el caso de las computadoras es necesario desarrollar dichos algoritmos en un lenguaje que estos lo puedan interpretar. A raíz de esto se desarrollan los lenguajes de programación.

Por otra parte se tiene al pseudocódigo, es un tipo de lenguaje abstracto que puede ser escrito e interpretado con independencia del lenguaje de programación. Se utilizan para poder expresar de manera detallada las acciones a llevar a cabo por un algoritmo computacional.

Partes de un algoritmo

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. 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 última etapa de transformación de los insumos o datos añadidos en la entrada del algoritmo.

Tipos de algoritmos

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. 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 árboles 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

caracteristicas_de_un_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 esté 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

como_se_hace_un_algoritmos

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

aplicacion_de_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 basándose en 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).

Ejemplos de aplicación

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

YouTube

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

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 basándose en lo que más nos pueda agradar.

Inteligencias Artificiales

inteligencia_artificial

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 con base en las necesidades del análisis.

Subir