stringtranslate.com

Sistema basado en reglas

En informática , un sistema basado en reglas es un sistema informático en el que el conocimiento específico del dominio se representa en forma de reglas y se utiliza un razonamiento de propósito general para resolver problemas en el dominio.

En la década de 1970 surgieron dos tipos diferentes de sistemas basados ​​en reglas dentro del campo de la inteligencia artificial :

Las diferencias y relaciones entre estos dos tipos de sistemas basados ​​en reglas han sido una fuente importante de malentendidos y confusión.

Ambos tipos de sistemas basados ​​en reglas utilizan encadenamiento hacia adelante o hacia atrás , a diferencia de los programas imperativos , que ejecutan comandos enumerados secuencialmente. Sin embargo, los sistemas de programación lógica tienen una interpretación lógica, mientras que los sistemas de producción no.

Reglas del sistema de producción

Un ejemplo clásico de un sistema basado en reglas de producción es el sistema experto de dominio específico que utiliza reglas para hacer deducciones o elecciones. [1] Por ejemplo, un sistema experto podría ayudar a un médico a elegir el diagnóstico correcto basándose en un conjunto de síntomas, o seleccionar movimientos tácticos para jugar un juego.

Los sistemas basados ​​en reglas se pueden utilizar para realizar análisis léxicos para compilar o interpretar programas informáticos o en el procesamiento del lenguaje natural . [2]

La programación basada en reglas intenta derivar instrucciones de ejecución a partir de un conjunto inicial de datos y reglas. Este es un método más indirecto que el empleado por un lenguaje de programación imperativo , que enumera los pasos de ejecución de manera secuencial.

Construcción

Un sistema típico basado en reglas tiene cuatro componentes básicos: [3]

  • Coincidencia: En esta primera fase, los lados de condición de todas las producciones se comparan con los contenidos de la memoria de trabajo. Como resultado, se obtiene un conjunto (el conjunto de conflicto ), que consiste en instancias de todas las producciones satisfechas. Una instancia de una producción es una lista ordenada de elementos de la memoria de trabajo que satisface el lado de condición de la producción.
  • Resolución de conflictos : en esta segunda fase, se elige una de las instancias de producción del conjunto de conflictos para su ejecución. Si no se satisface ninguna producción, el intérprete se detiene.
  • Actuar: En esta tercera fase se ejecutan las acciones de la producción seleccionadas en la fase de resolución de conflictos. Estas acciones pueden cambiar el contenido de la memoria de trabajo. Al final de esta fase, la ejecución vuelve a la primera fase.

Mientras que la fase de comparación del motor de inferencia tiene una interpretación lógica, las fases de resolución de conflictos y de acción no la tienen. En cambio, "su semántica suele describirse como una serie de aplicaciones de varios operadores de cambio de estado, que a menudo resultan bastante complejos (dependiendo de las decisiones que se tomen al decidir qué reglas de ECA se activan, cuándo, etc.), y difícilmente pueden considerarse declarativas". [5]

Reglas de programación lógica

La familia de programación lógica de sistemas informáticos incluye el lenguaje de programación Prolog , el lenguaje de base de datos Datalog y el lenguaje de representación de conocimiento y resolución de problemas Answer Set Programming (ASP). En todos estos lenguajes, las reglas se escriben en forma de cláusulas :

A :- B1, ..., Bn.

y se leen como oraciones declarativas en forma lógica:

A if B1 and ... and Bn.

En el caso más simple de las cláusulas de Horn (o cláusulas "definidas"), que son un subconjunto de la lógica de primer orden , todas las A, B 1 , ..., B n son fórmulas atómicas .

Aunque los programas lógicos de cláusula Horn son Turing completos , [6] [7] para muchas aplicaciones prácticas, es útil extender los programas de cláusula Horn permitiendo condiciones negativas, implementadas por la negación como falla . Dichos programas lógicos extendidos tienen las capacidades de representación de conocimiento de una lógica no monótona .

Diferencias y relaciones entre las reglas de producción y las reglas de programación lógica

La diferencia más obvia entre los dos tipos de sistemas es que las reglas de producción se escriben normalmente en dirección hacia adelante, si A entonces B , y las reglas de programación lógica se escriben normalmente en dirección hacia atrás, B si A . En el caso de las reglas de programación lógica, esta diferencia es superficial y puramente sintáctica. No afecta a la semántica de las reglas. Tampoco afecta a si las reglas se utilizan para razonar hacia atrás, al estilo Prolog, para reducir el objetivo B a los subobjetivos A , o si se utilizan, al estilo Datalog, para derivar B a partir de A .

En el caso de las reglas de producción, la dirección hacia adelante de la sintaxis refleja el carácter de estímulo-respuesta de la mayoría de las reglas de producción, donde el estímulo A viene antes de la respuesta B. Además, incluso en los casos en que la respuesta es simplemente extraer una conclusión B de una suposición A , como en el modus ponens , el ciclo de emparejamiento-resolución-acción se limita a razonar hacia adelante de A a B. Razonar hacia atrás en un sistema de producción requeriría el uso de un tipo de motor de inferencia completamente diferente.

En su Introducción a la ciencia cognitiva, [8] Paul Thagard incluye la lógica y las reglas como enfoques alternativos para modelar el pensamiento humano. No considera los programas lógicos en general, pero considera que Prolog no es un sistema basado en reglas, sino "un lenguaje de programación que utiliza representaciones lógicas y técnicas deductivas" (pág. 40).

Sostiene que las reglas, que tienen la forma SI condición ENTONCES acción , son "muy similares" a los condicionales lógicos, pero son más simples y tienen mayor plausibilidad psicológica (página 51). Entre otras diferencias entre la lógica y las reglas, sostiene que la lógica utiliza la deducción, pero las reglas utilizan la búsqueda (página 45) y pueden usarse para razonar hacia adelante o hacia atrás (página 47). Las oraciones en lógica "tienen que interpretarse como universalmente verdaderas ", pero las reglas pueden ser predeterminadas , que admiten excepciones (página 44). No observa que todas estas características de las reglas se apliquen a los sistemas de programación lógica.

Véase también

Referencias

  1. ^ Crina Grosan; Ajith Abraham (29 de julio de 2011). Sistemas inteligentes: un enfoque moderno. Springer Science & Business Media. pp. 149–. ISBN 978-3-642-21004-4.
  2. ^ Sin-Wai Chan (13 de noviembre de 2014). Enciclopedia Routledge de Tecnología de la Traducción. Routledge. pp. 454–. ISBN 978-1-317-60815-8.
  3. ^ "¿Qué es un sistema basado en reglas?". j-paine.org .
  4. ^ Cabitza, F., y Dal Seno, B. (2005). "DJess: un middleware de intercambio de conocimientos para implementar sistemas de inferencia distribuida". Revista internacional de ingeniería informática y de la información . 2 : 66–69. doi :10.1109/PERSER.2005.1506416. S2CID  27323155.{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  5. ^ Maier, D., Tekle, KT, Kifer, M. y Warren, DS, 2018. Datalog: conceptos, historia y perspectivas. En Programación lógica declarativa: teoría, sistemas y aplicaciones (pp. 3-100).
  6. ^ Tärnlund, S.Å. (1977). "Computabilidad de la cláusula de Horn". BIT Numerical Mathematics . 17 (2): 215–226. doi :10.1007/BF01932293. S2CID  32577496.
  7. ^ Andréka, H.; Németi, I. (1978). "La completitud generalizada de la lógica de predicados de Horn como lenguaje de programación". Acta Cybernetica . 4 (1): 3–10.
  8. ^ Thagard, Paul (2005). Mente: Introducción a la ciencia cognitiva . The MIT Press. pág. 11. ISBN 9780262701099.https://www.google.co.uk/books/edition/Mind_first_edition/gjcR1U2HT7kC?hl=en&gbpv=1&pg=PP11&printsec=frontcover

Véase también