PARADIGMA HEURÍSTICO.

  Muchas de las tareas más interesantes y difíciles de programación implican utilizar el ordenador para resolver problemas del tipo: "¿Cuál es el camino más corto?" "Listar todos los casos posibles", "¿Existe una disposición de elementos que satisfaga?. Las características de estos problemas implica potencialmente una búsqueda exhaustiva de todas las posibles combinaciones de algún conjunto finito, que si no está controlado puede producir una "explosión combinatoria" (incremento exponencial del espacio de búsqueda con la dimensión del problema) imposible de tratar.

 

  La Programación Heurística ha venido a significar el uso del conocimiento específico del dominio para cubrir esta explosión de posibilidades guiando la búsqueda por las direcciones más prometedoras. Se puede definir como "aquel tipo de programación computacional que aplica para la resolución de problemas reglas de buena lógica (reglas del pulgar). denominadas heurísticas, las cuales proporcionan entre varios cursos de acción uno que presenta visos de ser el más prometedor, pero no garantiza necesariamente el curso de acción más efectivo."

 

  La Programación Heurística implica una forma de modelizar el problema en lo que respecta a la representación de su estructura, estrategias de búsqueda y métodos de resolución, que configuran el Paradigma Heurístico.

Este tipo de programación se aplica con mayor intensidad en el campo de la Inteligencia Artificial (IA), y en especial, en el de la Ingeniería del Conocimiento, dado que el ser humano opera la mayor parte de las veces utilizando heurísticas, un hecho cierto que una heurística es la conclusión del razonamiento humano en un dominio específico, por lo que es normal que este tipo de programación que encuadrado en el área de la I.A., ya que implementa el conocimiento humano, dado por la experiencia, utilizando reglas de buena lógica.

 

Como se ha señalado inicialmente, un paradigma de programación es un modelo básico de diseño e implementación de programas. Un modelo que permite producir programas de acuerdo con una metodología específica. Así, el paradigma de programación estructurada se basa en estructuras modulares, con fuerte cohesión en el módulo y bajo acoplamiento entre ellos, desarrollo "top-down", utilización de diagramas privilegiados, etc.

 

  El Paradigma Heurístico define pues, un modelo de resolución de problemas en el que se incorpora alguna componente heurística sobre la base de:

  Una representación más apropiada de la estructura del problema para su resolución con técnicas heurísticas

  La utilización de métodos de resolución de problemas aplicando funciones de evaluación con procedimientos específicos de búsqueda heurística para la consecución de las metas.

  Por otra parte, la Programación Heurística se presenta y utiliza desde diferentes puntos de vista.

 

Como técnica de búsqueda para la obtención de metas en problemas no algorítmicos, o con algoritmos que generan explosión combinatoria (ej. damas. ajedrez, etc.).

 

  En Herramientas

      ► Tratamiento fundamentalmente simbólico, dado que la mayor parte de los problemas que precisan tratamiento heurístico tienen estructura simbólica.

      ► Unidades funcionales autónomas que posibiliten modelar una heurística y su mecanismo de ejecución, definiendo módulos independientes.

      ► Estructuras de datos que permitan describir estados de problemas y relaciones entre estados.

      ► Estructuras procedimentales de control y de proceso (o de definición) que permitan la ejecución coherente del modelo heurístico, y posibiliten la adquisición y utilización del conocimiento adquirido en el proceso de resolución del problema.