Conceptos de Eurística y Algoritmo

Eurística,  término que proviene del griegoy significa “hallar, inventar”, es el conjunto de técnicas o métodos para resolver un problema.

La heurística es vista como el arte de inventar por parte de los seres humanos, con la intención de procurar estrategias, métodos, criterios, que permitan resolver problemas a través de la creatividad, pensamiento divergente o lateral.

 

También, se afirma que la heurística se basa en la experiencia propia del individuo, y en el de los demás para encontrar la solución más viable al problema.

La heurística, como disciplina científica, y en su sentido amplio puede ser aplicada a cualquier ciencia con la finalidad de elaborar medios, principios, reglas, estrategias como ayuda para lograr encontrar la solución más eficaz y eficiente al problema que analiza el individuo.

La heurística existe desde la Antigua Grecia, pero fue un término popularizado por el matemático George Pólya, en su libro “Cómo resolverlo”, en el cual explica el método heurístico a sus alumnos de matemáticas, y a todos aquellos que desean aprender de la disciplina, citando cuatro ejemplos:

  • Si no consigues entender un problema, dibuja un esquema.
  • Si no encuentras la solución, haz como si ya la tuvieras y mira qué puedes deducir de ella, razonando a la inversa.
  • Si el problema es abstracto, prueba a examinar un ejemplo concreto.
  • Intenta abordar primero un problema más general.

La heurística es un conjunto de métodos o reglas que pueden ser positivos o negativos, que indican cuales son las acciones idóneas que pueden generar soluciones al problema. En su trabajo de programa científico de investigación, indico que todo programa contempla una estructura que puede servir de guía de modo positivo o negativo.

La heurística positiva es aquella que establece directrices de cómo desarrollar un programa de investigación, en cambio, la heurística negativa de un programa señala lo que no se puede cambiar, ni modificar, conocido como el núcleo central.

Para la informática, la heurística consiste en encontrar o construir algoritmos con buena velocidad para ser ejecutados. Ejemplos de la definición proporcionada, son los juegos informáticos, o programas que detectan si un correo electrónico es un spam o no, o en el caso de los antivirus si cumplen con idoneidad su cometido.

Al-Khwarizmi

Mohammed ibn Musa al-Khwarizmi. Bagdad 780 a 850 dc. Matemático y astrónomo árabe. Su principal aportación fue la de introducir a los matemáticos europeos en los numerales indo arábigos y en los principios fundamentales del álgebra.

Al-Khwarizmi o Juarismi

Vivió en Bagdad bajo los califatos de al-Ma’mum y al-Mu’tasim, en la edad de oro de la ciencia islámica. Su obra Kitab al-jabr wa al-muqabalah fue traducida al latín en el siglo XII dando origen al término “álgebra”. En ella se compilan una serie de reglas para obtener las soluciones aritméticas de las ecuaciones lineales y de las cuadráticas. Su método de resolución de tales ecuaciones no difiere en esencia del empleado en nuestros días.

Otra obra de este insigne matemático árabe, de la que sólo se conserva su traducción al latín, es Algoritmi de numero Indorum, de la que se derivó a su vez el término “algoritmo”. Nunca se imaginó que su nombre estaría en boca de todos siglos después.

Este señor es el matemático gracias al cuál se acuñó el término “algoritmo”, una de las palabras de moda gracias sobre todo al auge de la inteligencia artificial.

Origen de la palabra algoritmo

Si nos remitimos a las matemáticas, qué es el ámbito en el que el término se origina, podemos decir que algoritmo es un conjunto ordenado y finito de operaciones que deben seguirse para resolver un problema.

 Vamos a descomponerlo en 2 partes:

  • Es un conjunto ordenado de operaciones, lo que quiere decir qué es una cadena de instrucciones precisas que deben seguirse por orden.

Una buena forma de imaginarlo es a través de una receta de cocina, que no deja de ser un algoritmo sencillo. En cualquiera de ellas, se nos describe un procedimiento concreto y ordenado (“Primero pon a calentar media olla de agua. Después échale una pizca de sal. Después trocea el pimiento, quitando las semillas y los nervios…”) , de forma que cada una de esas operaciones son las que forman el algoritmo.

Así, el algoritmo tendrá la forma de un diagrama de flujo.

  • Su objetivo es resolver un problema, lo que significa que tiene un objetivo delimitado.

Esta es la parte que complica un poco las cosas. Cuando escribimos un algoritmo, lo hacemos para que produzca un resultado. No se trata tan sólo de escribir un bonito conjunto de órdenes que no conduzcan a ninguna parte, sino que se hace racionalmente y con un objeto determinado.

Si creamos un algoritmo diseñado para actuar en la vida real, las órdenes que incluya el algoritmo deberán incluir instrucciones que tengan en cuenta las diversas situaciones que podamos encontrarnos.

Así la forma del diagrama de flujo que forme el algoritmo se convertirá en un enorme “árbol” de instrucciones que, según su complejidad, podrá incluso ofrecernos resultados sorprendentes que nunca habríamos podido prever.

Para que se utilizan los Algoritmos

Cuando un desarrollador crea un programa, en esencia lo que está creando es un conjunto de algoritmos.

Un programa de ordenador es un conjunto de órdenes que se dan a la máquina, escritas en un lenguaje concreto, para que realice una serie de operaciones determinadas con el fin de obtener un resultado.

Un ordenador, no entiende el lenguaje humano. Es por eso que, para comunicarse con su equipo, el programador utiliza los lenguajes de programación. Este es, la herramienta que sirve de puente entre el lenguaje humano y el lenguaje que puede entender la máquina.

Gracias a él, el programador puede elaborar los algoritmos y crear una serie de instrucciones que el ordenador puede “entender” gracias al lenguaje de programación y obedecer. Para llegar a la solución teórica de un problema el algoritmo debe de seguir tres pasos:

  • Entrada: Los datos necesarios para realizar la operación
  • Proceso: Los cálculos que se van a necesitar y las herramientas precisas
  • Salida: Solución esperada

Hay dos métodos básicos para expresar un algoritmo:

  • Pseudocódigo
  • Diagramas de Flujo

Estas formas de representar un algoritmo se pueden utilizar para cualquier lenguaje de programación. Es visualmente mas comprensible y una vez que el resultado del algoritmo es óptimo se podrá adaptar a un código fuente

Einstein dijo “Si yo tuviera una hora para resolver un problema, utilizaría 55 minutos en analizarlo para llegar a un diagnóstico certero y una vez conocidas las causas tardaría 5 minutos en encontrar la solución

Hay algoritmos que invierten en bolsa, algoritmos que predicen un crimen, algoritmos que ordenan nuestras búsquedas en Internet…

Los algoritmos están por todos lados, incluso aunque no los hayamos percibido. Orientan nuestra economía, nuestras compras, e incluso nuestra forma de pensar.

Futuro de la Algoritmia

La algoritmia está en el corazón de tecnologías tan poderosas como la inteligencia artificial. En la actualidad, los algoritmos son la base de las tecnologías de aprendizaje automático, o machine learning, que sorprenden cada día con nuevas posibilidades.

Los algoritmos se encuentran detrás de tecnologías como los asistentes virtuales o los vehículos autónomos.  Cualquier software de monitorización está lleno de algoritmos por dentro.

 

 

Deja una respuesta

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