stringtranslate.com

Sistema de producción (informática)

Un "sistema de producción" (o "sistema de reglas de producción") es un programa informático que normalmente se utiliza para proporcionar alguna forma de inteligencia artificial , que consiste principalmente en un conjunto de reglas sobre el comportamiento, pero también incluye el mecanismo necesario para seguir esas reglas como tal. el sistema responde a los estados del mundo [ cita necesaria ] . Esas reglas, denominadas producciones , son una representación básica que resulta útil en la planificación automatizada , los sistemas expertos y la selección de acciones .

Las producciones constan de dos partes: una precondición sensorial (o declaración "SI") y una acción (o "ENTONCES"). Si la condición previa de una producción coincide con el estado actual del mundo, entonces se dice que la producción está activada . Si se ejecuta la acción de una producción , se dice que ha sido despedida . Un sistema de producción también contiene una base de datos, a veces llamada memoria de trabajo , que mantiene datos sobre el estado o conocimiento actual, y un intérprete de reglas. El intérprete de reglas debe proporcionar un mecanismo para priorizar producciones cuando se activa más de una. [ cita necesaria ]

Operación básica

Los intérpretes de reglas generalmente ejecutan un algoritmo de encadenamiento directo para seleccionar producciones a ejecutar para cumplir con los objetivos actuales, que pueden incluir la actualización de los datos o creencias del sistema . La parte de condición de cada regla ( lado izquierdo o LHS) se compara con el estado actual de la memoria de trabajo.

En los sistemas de producción idealizados u orientados a datos, se supone que cualquier condición desencadenada debe ejecutarse: las acciones consiguientes ( lado derecho o RHS) actualizarán el conocimiento del agente, eliminando o agregando datos a la memoria de trabajo. El sistema deja de procesar cuando el usuario interrumpe el ciclo de encadenamiento directo; cuando se ha realizado un número determinado de ciclos; cuando se ejecuta un RHS de "detención", o cuando ninguna regla tiene LHS que sean verdaderos.

Por el contrario, los sistemas expertos y en tiempo real a menudo tienen que elegir entre producciones mutuamente excluyentes: dado que las acciones toman tiempo, sólo se puede realizar una acción o (en el caso de un sistema experto) recomendarla. En tales sistemas, el intérprete de reglas, o motor de inferencia , recorre dos pasos: hacer coincidir las reglas de producción con la base de datos, seguido de seleccionar cuál de las reglas coincidentes aplicar y ejecutar las acciones seleccionadas.

Emparejar las reglas de producción con la memoria de trabajo

Los sistemas de producción pueden variar según el poder expresivo de las condiciones en las reglas de producción. En consecuencia, el algoritmo de coincidencia de patrones que recopila reglas de producción con condiciones coincidentes puede variar desde lo ingenuo (probar todas las reglas en secuencia, deteniéndose en la primera coincidencia) hasta lo optimizado, en el que las reglas se "compilan" en una red de condiciones interrelacionadas. .

Esto último está ilustrado por el algoritmo Rete , diseñado por Charles L. Forgy en [1] 1974, que se utiliza en una serie de sistemas de producción, denominados OPS y desarrollados originalmente en la Universidad Carnegie Mellon que culminaron en OPS5 a principios de los años 1980. OPS5 puede verse como un lenguaje de programación completo para la programación de sistemas de producción.

Elegir qué reglas evaluar

Los sistemas de producción también pueden diferir en la selección final de las reglas de producción a ejecutar o despedir . La colección de reglas resultantes del algoritmo de coincidencia anterior se denomina conjunto de conflictos y el proceso de selección también se denomina estrategia de resolución de conflictos .

Una vez más, tales estrategias pueden variar desde lo simple: utilizar el orden en que se escribieron las reglas de producción; asignar pesos o prioridades a las reglas de producción y ordenar el conjunto de conflictos en consecuencia (al complejo); ordenar el conjunto de conflictos según los momentos en que se activaron previamente las reglas de producción; o según el alcance de las modificaciones inducidas por sus RHS. Cualquiera que sea la estrategia de resolución de conflictos que se implemente, el método es ciertamente crucial para la eficiencia y corrección del sistema de producción. Algunos sistemas simplemente activan todas las producciones coincidentes.

Usando sistemas de producción

El uso de sistemas de producción varía desde simples reglas de reescritura de cadenas hasta el modelado de procesos cognitivos humanos, desde sistemas de reducción y reescritura de términos hasta sistemas expertos .

Un ejemplo simple de sistema de producción de reescritura de cadenas

Este ejemplo muestra un conjunto de reglas de producción para invertir una cadena de un alfabeto que no contiene los símbolos "$" y "*" (que se utilizan como símbolos de marcador).

P1: $$ -> *P2: *$ -> *P3: *x->x*P4: * -> nulo y detenerP5: $xy -> y$xP6: nulo -> $

En este ejemplo, las reglas de producción se eligen para realizar pruebas según su orden en esta lista de producción. Para cada regla, la cadena de entrada se examina de izquierda a derecha con una ventana móvil para encontrar una coincidencia con el LHS de la regla de producción. Cuando se encuentra una coincidencia, la subcadena coincidente en la cadena de entrada se reemplaza con el lado derecho de la regla de producción. En este sistema de producción, xey son variables que coinciden con cualquier carácter del alfabeto de cadena de entrada. El emparejamiento se reanuda con P1 una vez realizado el reemplazo.

La cadena "ABC", por ejemplo, sufre la siguiente secuencia de transformaciones según estas reglas de producción:

$ABC (P6)B$AC (P5)BC$A (P5)$BC$A (P6)C$B$A (P5)$C$B$A(P6)$$C$B$A (P6)*C$B$A (P1)C*$B$A(P3)C*B$A (P2)CB*$A (P3)CB*A (P2)ACB* (P3)convenio colectivo (P4)

En un sistema tan simple, el orden de las reglas de producción es crucial. A menudo, la falta de una estructura de control dificulta el diseño de los sistemas de producción. Por supuesto, es posible agregar una estructura de control al modelo de sistemas de producción, es decir, en el motor de inferencia o en la memoria de trabajo.

Un ejemplo de regla de producción de OPS5

En un mundo de simulación de juguetes donde un mono en una habitación puede agarrar diferentes objetos y trepar a otros, una regla de producción de ejemplo para agarrar un objeto suspendido del techo sería la siguiente:

(p Sostiene::Objeto-Techo {(objetivo ^estado activo ^tipo mantiene ^objid <O1>) <objetivo>} {(objeto físico ^identificación <O1> ^ peso ligero ^en <p> ^en el techo) <objeto-1>} {(objeto físico ^escalera de identificación ^en <p> ^en el piso) <objeto-2>} {(mono ^en la escalera ^tiene NIL) <mono>} -(objeto-físico ^en <O1>)--> (escribir (crlf) Agarra <O1> (crlf)) (modificar <objeto1> ^en NIL) (modificar <mono> ^mantiene <O1>) (modificar <objetivo> ^estado satisfecho))

En este ejemplo, los datos de la memoria de trabajo están estructurados y las variables aparecen entre paréntesis angulares. El nombre de la estructura de datos, como "objetivo" y "objeto físico", es el primer literal de las condiciones; los campos de una estructura tienen el prefijo "^". El "-" indica una condición negativa.

Las reglas de producción en OPS5 se aplican a todas las instancias de estructuras de datos que coinciden con las condiciones y se ajustan a enlaces variables. En este ejemplo, si se suspendieran varios objetos del techo, cada uno con una escalera diferente cerca que sostuviera un mono con las manos vacías, el conjunto de conflicto contendría tantas instancias de reglas de producción derivadas de la misma producción "Holds::Object-Ceiling". El paso de resolución de conflictos seleccionaría posteriormente qué instancias de producción activar.

La vinculación de variables resultantes de la coincidencia de patrones en el LHS se utiliza en el RHS para referirse a los datos a modificar. La memoria de trabajo contiene datos de estructura de control explícitos en forma de instancias de estructura de datos de "objetivo". En el ejemplo, una vez que un mono sostiene el objeto suspendido, el estado del objetivo se establece en "satisfecho" y la misma regla de producción ya no se puede aplicar ya que su primera condición falla.

Relación con la lógica

Tanto Artificial Intelligence: A Modern Approach de Russell y Norvig como Knowledge Representation: Logical, Philosophical, and Computational Foundations de John Sowa caracterizan los sistemas de producción como sistemas de lógica que realizan razonamientos mediante encadenamiento directo. Sin embargo, Stewart Shapiro , al revisar el libro de Sowa, sostiene que se trata de una tergiversación. [2] De manera similar, Kowalski y Sadri [3] sostienen que, debido a que las acciones en los sistemas de producción se entienden como imperativos, los sistemas de producción no tienen una semántica lógica. Su lógica y lenguaje informático Logic Production System [4] (LPS) combina programas lógicos, interpretados como las creencias de un agente, con reglas reactivas, interpretadas como los objetivos de un agente. Argumentan que las reglas reactivas en LPS dan una semántica lógica a las reglas de producción, de la que de otro modo carecerían. En el siguiente ejemplo, las líneas 1 a 3 son declaraciones de tipo, 4 describen el estado inicial, 5 es una regla reactiva, 6 a 7 son cláusulas de programa lógico y 8 es una ley causal:

1. fuego fluido.2. acciones eliminar, escapar.3. eventos tratar_con_fuego.4. inicialmente fuego.5. Si hay fuego, entonces trata_con_fuego.6. Deal_with_fire si se elimina.7. tratar_con_fuego si escapas.8. eliminar termina el fuego.

Observe en este ejemplo que la regla reactiva en la línea 5 se activa, al igual que una regla de producción, pero esta vez su conclusión trato_con_fuego se convierte en una meta que se reduce a submetas usando los programas lógicos en las líneas 6 y 7. Estos subobjetivos son acciones (línea 2), al menos una de las cuales debe ejecutarse para satisfacer el objetivo.

Sistemas relacionados

Referencias

  1. ^ "Documentación de babeos".
  2. ^ Shapiro, S. (2001). Revisión de la representación del conocimiento: fundamentos lógicos, filosóficos y computacionales. Lingüística Computacional, 2(2), 286-294
  3. ^ Kowalski, Robert; Sadri, Fariba (12 de enero de 2009). "LPS: un marco de sistema de producción basado en lógica". {{cite journal}}: Citar diario requiere |journal=( ayuda )
  4. ^ "LPS | Sistemas de producción lógica".

Ver también