sistemas reglas psicologia productivos produccion matematicas inteligencia hacia encadenamientos encadenamiento ejercicios ejemplos delante definicion con atras artificial adelante artificial-intelligence data-modeling prolog drools datalog

artificial intelligence - reglas - Encadenamiento hacia adelante vs encadenamiento hacia atrás



sistemas de produccion inteligencia artificial (4)

El encadenamiento hacia adelante tiene que ver con la pregunta "¿qué sucederá después?", Mientras que el encadenamiento hacia atrás mira la pregunta "¿por qué sucedió esto?".

Un ejemplo de encadenamiento hacia adelante es predecir si el estado del mercado de acciones tiene un efecto sobre los cambios en las tasas de interés.

Un ejemplo de encadenamiento hacia atrás es el diagnóstico de cáncer de sangre en humanos.

En pocas palabras, el encadenamiento hacia adelante se usa principalmente para predecir resultados futuros, mientras que el encadenamiento hacia atrás se usa principalmente para analizar datos históricos.

¿Para qué sirve uno que el otro no esté en la práctica? Entiendo la teoría de lo que hacen, pero ¿cuáles son sus limitaciones y capacidades en el uso práctico? Estoy considerando Drools vs un prólogo de java para un nuevo proyecto de AI, pero estoy abierto a otras sugerencias. ¿Cuáles son algunos enfoques populares para inferir sobre un conjunto de datos relacionales complicados o alternativas?


El encadenamiento hacia atrás (a la Prolog) es más como encontrar qué condiciones iniciales forman un camino hacia su meta. En un nivel muy básico, es una búsqueda hacia atrás desde su objetivo para encontrar las condiciones que lo cumplirán.

El encadenamiento hacia atrás se usa para aplicaciones interrogativas (búsqueda de elementos que cumplen con ciertos criterios): un ejemplo comercial de una aplicación de encadenamiento hacia atrás puede ser determinar qué pólizas de seguro están cubiertas por un contrato de reaseguro en particular.

El encadenamiento hacia adelante (a la CLIPS) coincide con las condiciones y luego genera inferencias a partir de esas condiciones. Estas condiciones pueden a su vez coincidir con otras reglas. Básicamente, esto toma un conjunto de condiciones iniciales y luego extrae todas las inferencias que puede de esas condiciones.

Las inferencias (si se confirman) también pueden ser acciones o eventos que pueden desencadenar acciones externas. Esto es útil en los sistemas controlados por eventos, ya que los conjuntos de reglas pueden configurarse para (por ejemplo) iniciar un flujo de trabajo o alguna otra acción. Este tipo de motor de reglas es el más utilizado en aplicaciones comerciales.

Los sistemas controlados por eventos son una aplicación común de los motores de reglas de encadenamiento hacia adelante. Un ejemplo de una aplicación de cadena de reenvío podría ser un motor de aprovisionamiento de planes de telecomunicaciones (que generalmente se usa para administrar planes de teléfonos móviles). Ingresar a un usuario en particular con un plan en particular activará una variedad de elementos que se configurarán en varios conmutadores de teléfono, sistemas de facturación, finanzas, sistemas de CRM, etc.


En los viejos tiempos de los viejos sistemas de expertos, solían decir que el encadenamiento hacia adelante era bueno para mirar alrededor (verificar lo que podría ser), mientras que el encadenamiento hacia atrás era bueno para confirmar (verificar si "realmente" lo es).

Configuración de pensar (encadenamiento hacia adelante, XCON [1]) y diagnóstico médico (MYCIN) [2]

  1. http://www.aaai.org/Papers/AAAI/1980/AAAI80-076.pdf
  2. https://www.amazon.com/Rule-Based-Expert-Systems-Addison-Wesley/dp/0201101726

La respuesta de la preocupación es muy buena. Cuando se me pide que reduzca la diferencia a un sonido fuerte, por lo general digo algo como:

Gran cantidad de hipótesis de salida + Gran cantidad de datos al frente => Usar encadenamiento hacia adelante

Menos hipótesis de salida + Debe consultar para datos => Usar encadenamiento hacia atrás

Pero es solo una regla de oro, no un mandamiento.