You are on page 1of 7
ALGUNOS ALGORITMOS RAPIDOS PARA EL PROBLEMA DEL EMPAREJAMIENTO DE PATRONES F. J. Vigo Bustos M. Teresa Lépez Bonal Francisco J. Vigo Busts y M. Teresa Lépez Bonal esa ‘an of Dpto. de Informatie. EUPA, Universidad de Cala. a Mancha RESUMEN BI algoritmo de emparejamiento RETE es un método para comparar un conjunto de patrones 0 regas con un conjunto de objets y asf datermina’to- dos los posibles emparejamientos. ASIA. es una am el algoritmo ETE levada a cabo para poder trabajar con datos captados de disposives extemos. En este aticule se realizaré na visién general de ambos algoritmos 1 se desarzollan algunos ejemplos para sv mejor comprensién. 1. INTRODUCCION 'N sistema experto ha de ofrecer una respuesta dentro de unos Iimi- tes razonables de tiempo y esta exigencia se hace especialmente necesaria cuando el sistema experto interacttia con el entorno en el que se encuentra inmerso. Por tanto, es obvia la necesidad de algoritmos que leven a cabo su labor de la forma mas répida posible. Una de las tareas principales que ha de Hevar a cabo un intérprete de un sistema de produccidn es el emparejamiento o «matching» que consiste en comparar el antecedente de las reglas (LHS) con los ele~ ‘mentos de Ia memoria de trabajo (EMT) para asf calcular el conjunto de reglas que pueden ser activadas. ‘Una forma posible de realizar la tarea descrita en el pérrafo anterior serfa comparar todos los antecedentes con todos los EMT, sin embar- 20, ésta no serfa una buena solucién en el caso de tener un nimero ele~ vado de reglas 0 de EMT por lo que se hace necesario encontrar solu- ciones alternativas, 259 260 2. EL ALGORITMO RETE RETE es un algoritmo que reduce sensiblemente el tiempo necesa- rio para calcular las reglas que pueden ser activadas evitando iterar s0- bre la memoria de trabajo y sobre la memoria de produccién. 2.1. Tratamiento de la memoria de trabajo El intérprete simple, como ya se ha descrito, iteraré sobre la memo- ria de trabajo comparando el patrén en cuestién con todos los elemen- tos de la memoria de trabajo. RETR. va a evitar esta iteraciGn asocian- do a cada patrén una lista que contendra todos aquellos elementos con Jos que empareja; esta lista serd actualizada cuando se produzca alin cambio en la memoria de trabajo los cuales van a poder ser descritos ‘mediante tokens. Un token serd un par ordenado de la forma: en Ia que la etiqueta nos indicaré si el elemento es afiadido (+) 0 supri- mido Ej. <- (Bxpresién tNombre Expr41 #Argl ¥ #0p + #Arg2 Y) > 2.2, Tratamiento de la memoria de produccién El algoritmo RETE ademis de no iterar sobre Ja memoria de traba- jo tampoco itera sobre 1a memoria de produccién. Para ello, el algorit- Tmo va a generar un grafo que represente el conjunto de reglas que seré tusado para determinar sila LHS de las reglas se verifican. 2.2.1. El proceso de generacién del grafo 0 compilado de patrones En un elemento de 1a memoria de trabajo vamos a poder distinguir dos tipos de caracteristicas: 1. Caracteristica intra-clementos: sélo se tienen en cuenta elemen- tos de la memoria de trabajo, Si consideramos el siguiente pa- tron, (Bxpresién #Nombre #argl 0 #0p + #Arg2 ! el emparejador de patrones intentard encontrar elementos de ta memoria de trabajo que posean las siguientes caracteristicas in- tra-elementos: — Laclase de elemento ha de ser expresién. — El valor del atributo Arg ha de ser el niimero 0. — El valor del atributo Op ha de ser el étomo +. 2. Caracteristicas inter-clementos: este tipo de caracteristicas se ddan cuando una variable aparece en més de un patrén. Si consideramos la LHS siguiente (P sumaox (Objetivo #Tipo Simplificar #Objeto ) ( Expresién Wonbrea> #Argl 0 fp + #Arg2 <> ) £22) podemos extraer la siguiente caracterfstica intra-elementos: = El valor del atributo Objeto del objetivo ha de ser igual al va- lor del atributo Nombre de expresién, ‘Veamos a continuacién los pasos de que constarfa el proceso de compilado: 1, Determinar la caracteristica intra-elementos que cada patr6n re- quiere y construir la secuencia lineal de nodos correspondientes. Cada nodo, denominado nodo constante, verificard si una deter- minada caracteristica se cumple, 2, Construcci6n de nodos para verificar las caracteristicas inter- elementos (nodos de dos entradas). En un nodo con dos entradas confluiran Jas secuencias lineales de dos patrones, por lo que ser necesario un nuevo tipo de nodo denominado nodo de memoria para almacenar los tokens que Ileguen al nodo de dos entrads. 3. Construccién de los nodos terminales que representan a la pro- duccién, Supongamos que tenemos el siguiente conjunto de reglas Regla Ri It (cl Wal 1 #a2 ae) (C2 #al ae #A2 25) (C3 #al a2 25) (c4 fat ) ‘Then 261 262 Si aplicamos el algoritmo que se ha descrito previamente el grafo resultante seria el que aparece en Ia figura 1 ' va | Ce | reseat Memoria = eee ae a ea = a = Nodos de a) ao I Bos Entradas | | 2.2.2. Un ejemplo ‘Veamos a continuacién qué ocurre en el grafo representado en la fi- gura anterior cuando se introducen en la memoria de trabajo los si- guientes elementos (c2 #A1 <10> #2 25) (c@ #1 <10>) En primer lugar, se crea el token <+(C2#A1 <10> #A2 25)> y se envia a la rafz de la red, Este nodo envia el token a todos sus sucesores siendo aceptado tan s6lo por el segundo sucesor, el cual a su vez, envia el token a su sucesor siendo de nuevo aceptado por este iltimo, Ahora el token es enviado al nodo de dos entradas y puesto que no ha llegado ningéin otfo token, queda almacenado ya que no es posible realizar nin- guna comparaci A continuaci6n se pasaria a procesar el token <#(C4 #A1 <10>)>. ‘Ahora sf que se puede llevar a cabo la comparacién puesto que ha Ile~ gado un nuevo token al nodo de dos entradas, Puesto que 1a compara- cin es satisfactoria, esta instanciacién de la produceién puede ser afia- dida al conjunto de reglas candidatas a ser disparadas. 3. EL ALGORITMO ASIA FLEX es un shell especializado en la construccién de sistemas ¢x- pertos en tiempo real para la resolucién de problemas de control FLEX esté compuesto por los siguiente médulos: — FLEXIE: motor de inferencia. — FLEXEN: interface con el entorno. FLEXIE usa un algoritmo denominado ASIA (ASinchronous Infor- ‘mation Access) para llevar a cabo el emparejamicnto de patrones, ASIA es una extensién del algoritmo RETE hecha para poder incluir datos de sensor y datos de estado en el proceso de inferencia, © Datos de Sensor: Son datos de entrada y se usan para represen- tar las sefiles de los sensores extemios y de los diversos disposi- tivos de medida. © Datos de Estado: Se usan para representar informacién de reali- mentacién que seré intercambiada con otros médulos de control cuando un sistema experto construido con FLEX opera como tuna parte de un sistema de control més complejo. Como consecuencia de la necesidad de manejar los dos nuevos ti- pos de datos descritos, la red RETE incluira dos nuevos tipos de nodos debido a que: 1, Se debe permitir hacer referencia a datos de sensor y de estado en la posicién valor de los pares A225) (ca #al ) ‘when. (outstat2 1) /* Situacién de Alarma */ La red resuiltante serfa la de la figura 2 oboe Ciase = Ct Constantes do A ‘i= Sent Nodos de. | Memoria, = wet. io Neds de = = odes L_—a—_ ot ‘Dos Entradas ce | hea | et Tee! aa) 4, CONCLUSIONES El algoritmo de emparejamiento RETE es eficiente incluso cuando tanto el niimero de patrones como de objetos es muy elevado. Sin em- bargo pueden darse situaciones en las que es preferible su. no aplica- cién; puede ocurir que los objetos de 1a memoria de trabajo cambien tan rapidamente que se produzcan situaciones de inconsistencia resul- tando por tanto el algoritmo tan initil como ineficiente. El algoritmo ASIA es una extensién del algoritmo RETE para el cual es relativamente fécil diseiar una arquitectura para un empareja~ dor de patrones hardware. Esta implementacién hardware del algorit- ‘mo resulta especialmente interesante para las aplicaciones de tiempo real las cuales imponen fuertes restricciones temporales. 6. BIBLIOGRAFIA [1] Deveozic, V.; Vetasevic, D. (1992): «Fast Reasoning with External Deta on Personal Computers. Engns. Applic. Artif Intell. (5), pp. 87-99, [2} Foray, CL. (1982): «Rete: A Fast Algorithm for the Many Patter/Many Object aterm Match Problemy, Artificial Intelligence (19), pp. 17-31. [5] Nitssox, N.J. (1987): Principias de Inteligencia Artificial. Diaz de Santos. 265

You might also like