siguiente anterior arriba atrasadelante (solo si previamente se ha ido
atras)

2.3.2. Reglas y triplas

Los sistemas basados en reglas obedecen al modelo de los sistemas de producción (Apartado 2.3.1). En general, una regla tiene la forma:

«IF A1 y A2 y... THEN B1 y B2»

Los componentes de una regla reciben los nombres de «antecedentes» y «consecuentes» (reglas de implicación, pero en los Apartados 3.33.4.1 matizaremos lo que significa «implicación» en lógica), o «condiciones» y «acciones» (reglas de activación), o, simplemente, «lado izquierdo» y «lado derecho» . Las reglas del ejemplo del cajero (Figura 1.4) son de este tipo. Puede observarse que algunas de ellas (R2, R5, R6 y R13) son de implicación y otras de activación. También (regla R2), que en los antecedentes (pero no en los consecuentes) puede utilizarse, además de la conjunción («y» ) la disyunción («o» ), así como la negación («no» ).

Desde el punto de vista semántico, las reglas de implicación pueden expresar conocimiento de dos tipos:

Las herramientas para el desarrollo de sistemas basados en reglas suelen utilizar el convenio de codificar los componentes de las reglas como triplas objeto-atributo-valor. En la conceptuación, los elementos del universo del discurso son objetos que tienen propiedades llamadas atributos; un objeto queda determinado por los valores de sus distintos atributos. Por ejemplo, si utilizamos una de estas herramientas para implementar las reglas del cajero podríamos definir:

objetos atributos valores



talón banco este_banco, otro_banco
aceptable sí, no
cumplimentadosí, no
endosado sí, no
completo sí, no
fecha_correcta sí, no
fecha M/D/A
acción pagar, rechazar, anotar
portadortiene_cuenta sí, no
DNI sí, no
firmantesaldo sí, no
pago modo metalico, en_cuenta

y codificar así las reglas (naturalmente, la sintaxis puede ser ésta u otra similar, dependiendo de la herramienta):

    IF (talon, banco, otro_banco)  
       AND (portador, tiene_cuenta, no)  
    THEN (talon, accion, rechazar)  
    .....  
 
    IF (talon, fecha, X)  
       AND ($system, $date, Y)  
       AND ((Y-X) > 0)  
       AND ((Y-X) < 90)  
    THEN (talon, fecha_correcta, si)

(Suponemos que la herramienta ofrece las facilidades que se usan en la última regla para obtener la fecha actual y hacer las operaciones de sustracción y comparación).

Otro ejemplo, más alejado de la realidad, pero quizás más sugerente, podría ser el de un experto médico que contuviera las reglas:

     R1: Si el paciente tiene mucha fiebre  
          y tose bastante  
          y tiene dolores musculares  
         entonces padece gripe  
 
     R2: Si el paciente padece gripe o resfriado  
          y no tiene úlcera gastroduodenal  
         entonces recomendar aspirina y coñac

La traducción de tales reglas podría ser algo así:

     R1: IF (paciente, fiebre, mucha)  
           AND (paciente, tose, bastante)  
           AND (paciente, dolor_muscular, sí)  
         THEN (paciente, padece, gripe)  
 
     R2: IF ((paciente, padece, gripe)  
           OR (paciente, padece, resfriado))  
           AND (paciente, úlcera_gastroduodenal, no)  
         THEN (paciente, recomendar, aspirina)  
           AND  (paciente, recomendar, coñac)

Decíamos al principio de este Apartado que en los consecuentes no puede aparecer «o» , porque la regla representaría un conocimiento incierto (Apartado 1.8) que reflejaría una «duda» en el conocimiento de la persona que ha establecido la regla si los antecedentes se satisfacen entonces o bien B1 o bien B2 o bien..., pero ¿cuál o cuáles de ellos?1. Y sin embargo, tales dudas son frecuentes cuando se trata de explicitar el conocimiento de los expertos. Así, en lugar de la regla R1 anterior sería seguramente más razonable escribir:

     R1: IF (paciente, fiebre, mucha)  
            AND (paciente, tose, bastante)  
            AND (paciente, dolor_muscular, sí)  
         THEN (paciente, padece, gripe)  
            OR (paciente, padece, bronquitis)  
            OR (paciente, padece, tuberculosis)  
            OR ...

Por supuesto, este tipo de reglas no permiten llegar a ninguna conclusión con una lógica puramente deductiva. Pero hay algo más en la mente del experto humano (si no lo hubiera, tampoco él podría concluir nada): ante unas evidencias (signos y síntomas en el caso del diagnóstico médico), puede albergar dudas, pero normalmente «cree» más en unas alternativas que en otras. El problema es cómo cuantificar ese «grado de creencia» , y cómo trabajar con él para poder hacer inferencias (que no «deducciones» ) aceptables, como hace el propio experto.

En el caso de este ejemplo está bastante claro que se trata de una regla de diagnóstico, adecuada para un razonamiento abductivo que se puede formalizar y mecanizar con lógica bayesiana (Apartado 6.2). En los sistemas expertos de primera generación se utilizó un método heurístico para trabajar con este tipo de «reglas dudosas» , basado en «factores de incertidumbre» . Como aún se sigue utilizando en herramientas sencillas, veamos en qué consiste.


siguiente
anterior arriba atrasadelante (sólo si previamente se ha ido atras)


algunos derechos reservados DIT-ETSIT-UPM
Portada