WUCShell Tutorial

85
Universidad Central de Las Villas Santa Clara, Cuba 1999 Manual para el uso de la Máquina de inferencia WUCShell Versión 1.0 Autores: Dr. Mateo Lezcano Brito

Transcript of WUCShell Tutorial

Universidad Central de Las Villas

Santa Clara, Cuba

1999

Manual para el uso de la

Máquina de inferencia WUCShell

Versión 1.0

Autores:

Dr. Mateo Lezcano Brito

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Lic. Rolando Lorenzo Vera

CAPÍTULO I. GENERALIDADES.....................................4

I.1 LOS SISTEMAS EXPERTOS.......................................4I.2 FORMAS DE REPRESENTACIÓN DEL CONOCIMIENTO......................4I.3 MANIPULACIÓN DEL CONOCIMIENTO REPRESENTADO......................5I.4 TRATAMIENTO DE LA INCERTIDUMBRE..............................6I.5 FUENTES DE INCERTIDUMBRE...................................7I.6 DESARROLLO DE UN SE........................................7I.7 CARACTERÍSTICAS GENERALES DE SESE............................8

I.7.1 Manipulación de la incertidumbre en el SESE...................................................8

CAPÍTULO II. WUCSHELL, MANUAL DEL USUARIO....................14

II.1 EL MENÚ DE TAREAS Y LA BARRA DE HERRAMIENTAS.................14Opción File................................................................................................................... 15

Opción Edit.................................................................................................................. 17

Opción Search............................................................................................................. 18

Opción View................................................................................................................. 19

Opción Project............................................................................................................. 20

Opción Run.................................................................................................................. 21

Opción Tools................................................................................................................ 22

Opción Help................................................................................................................. 23

II.2 CAJAS DE DIÁLOGOS DEL MENÚ FILE............................24Dialogo Open............................................................................................................... 24

Diálogo Save del comando Save as...........................................................................25

II.3 VISTAS.................................................26Vista de las propiedades de los atributos.................................................................26

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista para editar las propiedades de los atributos.................................................27

Vista para la edición de los breakpoints...................................................................28

Vista que muestra la lista de breakpoints................................................................29

Vista que muestra el Stack.........................................................................................30

Vista para la edición de proyectos............................................................................31

Vista de la interfaz para las respuestas....................................................................32

CAPÍTULO III: MANUAL DEL PROGRAMADOR.........................33

III.1 SINTAXIS DE LAS BASES DE CONOCIMIENTO......................33Definición del bloque de atributos externos............................................................34

Definición del bloque de preguntas..........................................................................36

Definición del bloque de reglas.................................................................................37

Definición del bloque de acciones.............................................................................38

III.2 CONCEPTOS GENERALES.....................................39Definición de la meta sentencia Ask..........................................................................39

Definición de imagen.................................................................................................. 40

Conjunto de selección................................................................................................. 40

Dominio de definición................................................................................................. 41

Definición de explicación............................................................................................ 42

Definición de elemento visible...................................................................................45

Definición de literal..................................................................................................... 49

III.3 SENTENCIAS.............................................50Sentencia Display........................................................................................................ 50

Sentencia Is.................................................................................................................. 52

Sentencia Repeat......................................................................................................... 53

Sentencia Find............................................................................................................. 54

Sentencia Reset............................................................................................................ 55

Sentencia SaveFact...................................................................................................... 56

Sentencia Chain........................................................................................................... 57

III.4 DEFINICIÓN DE REGLAS....................................59Definición de Conclusión............................................................................................61

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Definición de Condición.............................................................................................. 62

Definición de Expresión..............................................................................................66

Definición de Funciones.............................................................................................. 67

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

Capítulo I. GeneralidadesI.1 Los sistemas expertosDentro de las áreas de la Inteligencia Artificial (IA) losSistemas Expertos (SE) se destacan por los éxitos alcanzados,ellos son programas que resuelven problemas de un dominio deaplicación concreto de manera similar o aproximadamente similara como lo haría un experto humano en esa materia. Estossistemas están compuestos por dos elementos básicos: 1. La Base de Conocimiento (BC), que contiene el conocimiento

sobre el problema.2. La Máquina de Inferencia (MI), que implementa los métodos

para manipular dicho conocimiento. La segunda se encarga de inferir nuevos conocimientos, através de un determinado mecanismo y utiliza con ese fin elcontenido de la primera que expresa, en un formalismo dado, elconocimiento acerca de un dominio específico. Podemos ver entonces al Sistema Experto como un modelo: SE = BC + MILa BC almacena el conocimiento en una determinada notación,conocida como Forma de Representación del Conocimiento (FRC)que constituye el formalismo de este modelo. La MI, por su parte, implementa los Métodos de Solución delProblema (MSP). Desde este punto de vista un SE es entonces: SE= FRC + MSP

I.2 Formas de representación del conocimientoSe denomina Forma de Representación del Conocimiento (FRC) a lanotación usada para representar el conocimiento, es decir a lamanera en que éste se describe y se almacena.No existe actualmente una FRC general que permita usarse entodo tipo de aplicación y ante un problema de un dominioespecífico es necesario realizar la selección de la FRC másadecuada para dicho problema. La FRC utilizada por el sistema SESE se conoce con el nombre dereglas de producción y fueron introducidas en 1943 por Post. Una regla de producción consta de un par ordenado (A, B),representado en el Cálculo Proposicional como A B, donde Arepresenta el antecedente y B el consecuente de la regla.

5

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

Una regla de producción se interpreta como “si se satisface elantecedente, entonces se cumple el consecuente”, esta manera deinterpretar la regla permite considerarla como una unidadrelativamente independiente de conocimiento.

Las reglas de producción pueden adoptar varias formas:1. Si condición P entonces conclusión C.

Ejemplo. 1.1If (P >= 180) then C := ‘Pesado’

2. Si condición P entonces acción A. Ejemplo 1.2If (P = 100)then

action Find A

3. Si condición P entonces no C.Ejemplo 1.3If (P < 180) then C := ‘no es pesado’

Los antecedentes de las reglas, independientemente de la formaque éstas adopten, pueden ser simples o compuestos. Loscompuestos se forman uniendo varias condiciones simples pormedio de conectivas lógicas.

I.3 Manipulación del conocimiento representadoPara la manipulación del conocimiento representado en reglas deproducción se usan los llamados Sistemas de Producción (SP).

Un SP consta de tres componentes básicos:1. Base de datos (BD):

6

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

Se utiliza como memoria de trabajo y sirve para almacenarlos datos iniciales e intermedios.

2. Conjunto de reglas:Las reglas de producción operan sobre la memoria de trabajo.Cada regla tiene una condición que es o no satisfecha porlos datos de la BD. Típicamente una regla tiene una parte izquierda (lascondiciones) que tiene que ser verdadera de acuerdo a lainformación existente en la memoria de trabajo para poderusar su parte derecha (las conclusiones).El que la parte izquierda de una regla se satisfaga puedeestablecerse por referencia a la BD o preguntando alusuario del sistema de producción.

3. Intérprete:Tiene como función llevar a cabo el proceso de inferencia.

Este último comprende las siguientes tareas: Seleccionar las posibles reglas a aplicar. Verificar cuáles de ellas se satisfacen. Ejecutar las acciones especificadas por las reglassatisfechas.

En un esquema clásico se recorren todas las reglas buscando unaque se satisfaga, posteriormente se aplica y esa acción, enmuchos casos, provoca cambios en la BD. El conjunto de reglasse sigue recorriendo hasta que se soluciona el problema (sealcanza el objetivo) o no es posible invocar más reglas,constituyendo ésta la condición de terminación.

La dirección de búsqueda de una solución sigue diferentesestrategias1.Dirigido por datos o encadenamiento hacia delante (forward

chaining). Consiste en buscar reglas que se cumplan a partirde hechos conocidos que están almacenados en la BD, o sea apartir de condiciones probadas agrega nuevos hechos orealiza acciones que están expresadas en las conclusiones delas reglas que se cumplen.

2.Dirigido por objetivos o encadenamiento hacia atrás(backward chaining). Dado un objetivo a probar busca lasreglas que contienen ese objetivo en su conclusión para

7

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

posteriormente tratar de establecer la verdad de suscondiciones.

3.Una combinación de los dos anteriores.

Los esquemas anteriores se enfrentan al conflicto que surgecuando hay más de una regla que puede ser seleccionada, porsupuesto que no se trata de aplicarlas todas a la vez, de ahíque surja la necesidad de tener una Estrategia de Resolución deConflictos que seleccione la regla que se debe aplicar.

Existen diversas estrategias, entre otras podemos citar: 1. Establecer orden en los datos.2. Clasificar las reglas por prioridad de ejecución.3. Ejecutar la regla más recientemente instanciada o la última.

Una dificultad con esta FRC es que si bien a medida que creceel número de reglas crece el conocimiento del sistema, tambiénse hace más difícil la búsqueda. Una solución parcial a esteproblema es descomponer la BC inicial en varias partes quepuedan ser procesadas de manera independiente. Además dedescomponer la BC es necesario descomponer, por supuesto, lacondición de terminación en varias subcondiciones, una paracada subbase. Un caso especial de esta descomposición esexpresarla como una conjunción de las subcondicionescomponentes. Los sistemas de producción que permiten descomponer su BC y lacondición de terminación reciben el nombre de Sistemas deProducción Descomponibles, SESE implementa una sentencia (Chain)que lo permite.

I.4 Tratamiento de la incertidumbre En el desarrollo de un proceso de razonamiento intervienen, almenos, tres elementos: 1. El conocimiento sobre el dominio de aplicación.2. Un método para procesar el conocimiento.3. Ciertas observaciones vinculadas con el objeto de

razonamiento.

El razonamiento con incertidumbre denota un proceso de razonamientoen el que alguno de estos elementos no es totalmente preciso, osea, el razonamiento se realiza sobre la base de una

8

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

información parcial y, por lo tanto, los resultados de éste sonsugeridos pero no asegurados por las premisas del mismo.A diferencia de la IA, el software algorítmico tradicional nopuede lidiar con información incompleta ya que si algún dato esincorrecto, la respuesta será incorrecta.

I.5 Fuentes de incertidumbreLa presencia de incertidumbre en los sistemas de razonamientose puede originar por varias fuentes, entre ellas se puedenmencionar: Imprecisiones en la definición de los conceptos y susrelaciones.

Imprecisiones y pobre seguridad de los instrumentos usadospara hacer las observaciones.

Imprecisiones del lenguaje de representación en el que setrasmite la información.

Falta de idoneidad de un formalismo para representar ciertaclase de conocimiento.

Agregación de información desde múltiples fuentes. Falta de seguridad en si un elemento dado pertenece a unconjunto bien definido, o en la pertenencia parcial de unelemento dado a un conjunto cuyas cotas no están definidasrigurosamente.

El dominio relevante es realmente aleatorio. El dominio relevante no es aleatorio dada la suficientecantidad de datos, pero nuestro programa no siempre tendráacceso a todos esos datos.

Durante el razonamiento, la incertidumbre proveniente de estasfuentes se combina produciendo resultados parciales y finalesque tienen su propia incertidumbre. A este proceso se le llamapropagación de la incertidumbre. Las representaciones numéricas son propias para representar ymanipular la incertidumbre dada por la información imprecisa,pues ellas permiten trabajar con valores de confidencia. Esposible, además, definir un cálculo que ofrece un mecanismopara propagar la incertidumbre a través del proceso derazonamiento, sin embargo, la representación numérica no puedeofrecer una explicación clara de las razones que conducen a unaconclusión dada.

9

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

Los modelos basados en este enfoque están, en su mayor parte,designados para manipular el aspecto de la incertidumbrederivado de la información incompleta, pues, al carecer demedidas para cuantificar los niveles de confidencia, soninadecuados para manipular la información imprecisa y son másapropiados para permitir seguir la traza desde las fuentes deinformación a las conclusiones.

I.6 Desarrollo de un SEPara desarrollar un SE es importante conocer los siguientesconceptos: Ingeniería del Conocimiento: Es la disciplina relacionada conla forma en que se organizan, construyen y verifican las BCde un SE.

Adquisición del Conocimiento: Es el proceso de extracción,codificación y verificación del conocimiento de un expertohumano. Si se usa Reglas de Producción como forma derepresentación del conocimiento, la extracción se refiere ala formulación de las reglas, la codificación, a la escriturade las mismas en una determinada sintaxis y la verificaciónal refinamiento de la BC. La adquisición del conocimiento esconocida como el “Cuello de Botella” de las aplicaciones delos S.E.

Ingeniero en Conocimiento (IC): Es la personaresponsabilizada con desarrollar las tareas de la ingenieríadel conocimiento. Debe ser capaz de conocer y comprender losSE, saber usar las herramientas para crear los mismos, ser unbuen programador en un lenguaje de IA y un hábilentrevistador.

I.7 Características generales de SESELas bases de conocimiento para el sistema SESE se escriben enforma de “Reglas de Producción”, este formalismo es el másampliamente conocido y usado como paradigma de representacióndel conocimiento.Las máquinas de inferencia de SESE (WUCShell y TeachShell)interpretan un código previamente generado por cualquiera desus compiladores, los cuales tienen que leer e interpretar elconocimiento, expresado en un lenguaje fuente dado, paraconstruir una cierta estructura interna que lo represente.

10

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

SESE está disponible para los sistemas operativos MS-DOS yWindows (9x y NT). La versión sobre Windows está formado porcuatro partes relativamente independientes: WUCShell : Es un ambiente integrado para el desarrollo deSistemas Expertos. Este módulo no necesita de ningún otrocomponente del sistema aunque, puede interpretar las basescompiladas por el módulo RulesCompiler. Este manual hacereferencia a SESE porque todos los conceptos sirven para elsistema en general, pero si desea usar las otras partes debeconsultar la bibliografía correspondiente y adquirir elproducto.

TeachShell : Una modificación de WUCShell que incorpora unmecanismo con propósitos docentes.

RulesCompiler : Un compilador de línea para las bases deconocimientos de WUCShell y TeachShell.

Expert : Un módulo que contiene el mecanismo de inferencia deWUCShell con el fin de incorporarlo a otras aplicaciones.

Los objetos que manipulan las máquinas de inferencia de SESE sedenominan Atributos, y pueden ser de tres tipos:1. Hechos, cuando tienen un valor asociado.2. Deducibles, cuando forman parte de la conclusión de una

regla.3. Preguntables, cuando tienen una pregunta asociada.

Los dos últimos pueden convertirse en hechos durante el procesode inferencia, adicionalmente cualquier atributo puede tener lacualificación de externo.

I.7.1 Manipulación de la incertidumbre en el SESELa manipulación del conocimiento y los datos inciertos,inseguros e inexactos es típica de los SE. El mecanismo de estamanipulación constituye una parte sustancial de la MI. LaIncertidumbre se expresa, generalmente, por pesos, medidas,grados de confianza, factores de creencia, probabilidadessubjetivas, etc. Estas medidas, generalmente, alcanzan valoresen los intervalos (0,1] y están representados en SESE en elintervalo (0,100]. La incertidumbre sobre el grado de veracidadde los resultados alcanzados por un sistema experto tiene dosfuentes fundamentales:

11

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

Imprecisión en el valor de los atributos que sirven comohechos iniciales.

La interfaz de SESE ofrece la posibilidad de entrar el valor delos hechos con un valor de certidumbre dado. Existencia de reglas débiles debido a que el experto oconstructor del modelo es incapaz de establecer unacorrelación fuerte entre la condición y la conclusión, locual hace que la implicación no sea categórica y permita laposibilidad de excepciones a la regla.

Ejemplo 1.4 rule 1 if A = 10 cnf 98 then C := 19 end;

En el caso anterior se expresa que C es igual a 19 cuando setiene la certeza (cnf) 98/100 de que el valor de A es igual a10, lo cual convierte a la regla en débil. La declaración de implicaciones débiles permite que elIngeniero de Conocimiento declare reglas débiles definiendo elvalor de correlación entre la condición y la conclusión de laregla.Las generalizaciones de conjunciones y disyunciones juegan unpapel vital en el manejo de la incertidumbre en los SE; ellasson usadas en la evaluación de la satisfacción de lascondiciones, en la propagación de la incertidumbre a través delencadenamiento de las reglas y en la consolidación de la mismaconclusión derivada de diferentes reglas. El mecanismo de manipulación de la incertidumbre en losSistemas Expertos básicamente tiene que responder a estaspreguntas: Cuando una condición está compuesta de múltiples cláusulasX1, X2,...,Xn, ¿Cuál es la función T(X1,X2,...,Xn) quedetermina el grado de certeza Xp de la condición?

Cuando una implicación no es totalmente cierta, o sea, tieneuna certeza Sr ¿Cuál es la función G(Xp, Sr) que propaga laincertidumbre a través de la regla?

Cuando la misma conclusión está establecida por múltiplesreglas con grados de certeza Y1,..,Ym ¿Cuál es la funciónS(Y1,...Ym) que permite calcular el grado final de certeza deesta conclusión agregando estos grados de certeza?

12

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

SESE define las siguientes reglas para la propagación de laincertidumbre:1. Para el cálculo de las implicaciones débiles:

Para los operadores (>, >=, <, <=, <>).Si la regla tiene implicaciones débiles la certidumbre de lascomparaciones es el valor que indique la implicación débil.Ejemplo 1.5 rule 1 if A > 10 cnf 98 then C := 19 end;

La certidumbre de que A sea mayor que 10 es 98.

Si la regla no tiene implicaciones débiles (no hay cnfasociados a la condición), la certidumbre de lascomparaciones es 100.Ejemplo 1.6 rule 2 if C <= 19 then D := 'Si' end;

La certidumbre de que C sea menor o igual a 19 es 100

Para el operador (=).Si la regla tiene implicaciones débiles la certidumbre de lacomparación es el valor que indique la implicación débil.Ejemplo 1.7rule 1 if A = 10 cnf 98 then C := 19 end;

La certidumbre de que A sea igual a 10 es 98.

Si la regla no tiene implicaciones débiles la certidumbre dela comparación es el valor de certidumbre que el atributotenga. Ese valor pudo haber sido obtenido a través de la

13

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

interfaz en el caso de que los atributos sean preguntables opuede calcularse cuando los atributos sean deducibles.Ejemplo 1.8 rule 2 if C = 19 then D := 'Si' end;

La certidumbre de que C sea igual a19 es igual a lacertidumbre con que fue probado C.

2. Para el cálculo del FC en la premisa se usan:

Condiciones unidas por la conectiva AND FC(A and B) = mín(FC(A), FC(B)). Condiciones unidas por la conectiva OR FC(A or B) = máx(FC(A), FC(B)).Ejemplo 1.10rule 1 if

(A = 10) and (B > 76)

then C := 19

end;

El valor de la certidumbre se calcula como:FC(Condición) = mín(FC(A=10),FC(B>76))

Ejemplo 1.11 rule 2if

(A = 10) or (B > 76)

then D := 'Si'

end;

El factor de la certidumbre se calcula como:

14

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

FC(Condición) = máx(FC(A=10),FC(B>76))

3. Para el cálculo del FC de la conclusión se usa:

If A then B cnf v FC(B) = FC(A) * v

Ejemplo 1.12rule 1

if (A > 10) and (B = 90) or (A < 20)

then C := 19 cnf 87

end;El factor de certidumbre se calcula como:

FC(C) = FC((A > 10) and (B = 90) or (A < 20))*87

Si la conclusión no contiene la especificación de certidumbre(cnf) el valor es 100Ejemplo 1.13 rule 2

ifC = 19

ThenD := 'Si' // FC(D) = FC(C=19)

end;

4. Para el cálculo del FC cuando varias reglas tienen la mismaconclusión:

R1: if A then B cnf v1

R2: if C then B cnf v2

FC(B) = FC(BR1) + FC(BR2) - FC(BR1) * FC(BR2)Ejemplo 1.14rule 1 if A > 10 cnf 98 then C := 19

15

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo I. Generalidades

end;

rule 2 if D <= 19 then C := 19 // La misma conclusión end;

16

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo II. WUCShell, Manual del usuarioII.1 El menú de tareas y la barra de herramientas

La figura anterior muestra una vista general del sistemaWUCShell (Shell de la Universidad Central, versión sobreWindows), se destacan algunas de sus partes.

Menú de tareas

Barra de herramientas

Editor del sistema

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

El Menú de tareas permite acceder a diferentes facilidades delsistema y existen dos formas de activar cada una de susopciones: 1. Usando el ratón.2. Usando la combinación de teclas ALT + Letra Subrayada.

Ambas acciones provocan que se presente un menú desplegableasociado a cada una de las opciones del menú de tareas; de esaforma se puede acceder a diferentes comandos, que permitenrealizar varias tareas dentro del sistema.

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción File La opción File se usa para abrir, guardar y cerrar proyectos.La siguiente figura nos permite apreciar su aspecto con el menúcorrespondiente desplegado.

Comandos Descripción .New Crea una nueva base de conocimiento.Open Usa una caja de diálogo para cargar una base deconocimiento

dada.Save Guarda la base de conocimiento. Save As Guarda la base de conocimiento actual usando unnuevo

nombre. Save All Guarda todos los proyectos abiertos.Close Cierra la base de conocimiento actual.Close All Cierra todas las bases de conocimiento.Exit Cierra los proyectos y sale del sistema.

Debajo del Menú de tareas se observa la Barra de herramientasque se puede configurar usando el comando SpeedBar localizadoen el menú desplegable que acompaña de la opción View.

New Project

Save Project

Open Project

Close All

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

La Barra de herramientas permite un acceso rápido a casi todoslos comandos asociados a cada una de las opciones del menú, lafigura anterior muestra la parte de la Barra de herramientasque se corresponde con el menú File. El acceso a los comandosusando esta facilidad sólo se logra con el uso del ratón.Nótese que la vista general del sistema muestra una de lasposibles configuraciones ya que como se dijo anteriormente laBarra de herramientas se puede configurar.

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción Edit

La opción Edit se utiliza para manipular textos en la ediciónde proyectos.

Comandos Descripción.Undo Deshace la última acción o el último borrado.Redo Hace lo contrario de el último undo.Cut Retira de la ventana de edición el texto marcadoy lo envía al

porta papeles o clipboard.Copy Pone una copia del texto seleccionado en el portapapeles

dejando el texto marcado en su lugar original.Paste Copia el contenido del porta papeles en laposición del cursor.Delete Borra el texto seleccionado.Select All Selecciona todo el texto contenido en la ventanade edición.

Opciones disponibles en la Barra de herramientas.

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Undo

Redo

Cut

Copy

Paste

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción SearchLa opción Search se utiliza para localizar textos y símbolosdentro del archivo en edición, actualmente dispone de un solo

comando .

Comando Descripción .Find Busca la primera aparición del texto

especificado dentro de la base deconocimiento en edición.

Opción disponible en la Barra de herramientas.

Find

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción ViewSe utiliza para mostrar las diferentes vistas del ambiente del

WUCShell.

Comandos Descripción .Call Infer Muestra una ventana donde se coloca el

atributo que se está infiriendo y la regla que se está

usando.Attributes Muestra las propiedades de los atributosdurante el

proceso de inferencia. Breakpoints Muestra, en una caja de diálogo, la lista delos

Breakpoints.SpeedBar Permite configurar la Barra de herramienta.

Opciones disponibles en la Barra de herramientas.

Call Infer

Attributes

Breakpoints

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción Project La opción Project se usa para compilar una base de conocimientoque debe estar abierta.

Comandos Descripción .Compile Si la base de conocimiento actual ha sido

Modificada, la compila.Syntax Check Chequea sintácticamente la base de

conocimiento actual, pero no genera código.Information Muestra información acerca del proyecto yel

estado actual después de su compilación.

Opciones disponibles en la Barra de herramientas.

Breakpoints

Compile Syntax

Check

Information

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción RunLa opción Run permite la ejecución de la inferencia y ayuda adepurar los programas.

Comandos Descripción .Run Compila la base de conocimiento

(si ha sido modificada) y ejecuta laaplicación.Step Over Ejecuta un proyecto paso a paso. Trace Into Ejecuta un proyecto paso a paso. Run To Cursor Ejecuta el proyecto hasta la posición del

cursor, para continuar de ahí en adelantese tiene que utilizar unas de las dos opciones anteriores.

Show Execution Point Cuando se está ejecutando un programapaso

a paso, posiciona el cursor en la línea de ejecución dentro de la ventana de edición.

Program Pause Detiene temporalmente la ejecución de laaplicación.

Program Reset Termina la inferencia.Add Breakpoint Abre una caja de diálogo para crear omodificar puntos

de ruptura ("breakpoints").

Las opciones en la Barra de herramientas son:

Run Trace Into

Trace Over

Pause

Run to Cursor

Show Execute Point

Add BreakPoint

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción Tools Tools se utiliza actualmente sólo para permitir especificar quese compile la base de conocimiento con información simbólica,de manera que sirva de entrada para el sistema TeachShell. Apartir de este opción se podrán configurar, en versionesposteriores, el aspecto que se desea para cada una de laspartes del sistema.

Comandos Descripción .Environment Options Marque la opción "compile with debuginformation"

en la caja de diálogo que acompaña a este comando"

Trace Over

Environment Option

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Opción Help Help ofrece una amplia ayuda acerca del uso del sistema.

Comandos Descripción .Contents Mantiene una "guía" de los últimos accesos ala ayuda del

sistema.Programmers Guid Es la ayuda para los Ingenieros deConocimiento, explica

la sintaxis de cada una de las sentencias de

UCShell.Presenta algunos conceptos generales que se

utilizan en el sistema e ilustra, con ejemplos apropiados, el

uso de sus posibilidades.

Shell Guid Explica la interfaz del sistema experto.About Muestra la versión del sistema y datos acercadel equipo

que concibió y programó el sistema.

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

II.2 Cajas de diálogos del menú FileDialogo Open La caja de diálogo Open se usa para cargar una base deconocimiento en memoria.

Entradas Descripción .File Name Escriba el nombre del archivo que desee cargar(la

extensión kbs es para archivos de base deconocimiento y

la extensión kbo es para archivos que han sidopreviamente compilados).

Files of type Presenta una lista desplegable paraseleccionar el tipo de

Archivo (kbs o kbo).Look in Permite especificar un camino o ruta de accesohacia el

archivo que se desea cargar.

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Diálogo Save del comando Save asLa caja de diálogo Save se utiliza para guardar el archivo enedición.

Entradas Descripción .File Name Permite escribir el nombre del archivo que sedesea

guardar.Save as type Presenta una lista desplegable paraseleccionar el formato

del archivo que se desea guardar.Save in Permite especificar la localización donde sedesea

guardar el archivo

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

II.3 Vistas Vista de las propiedades de los atributos.Esta vista, que sólo está disponible durante el proceso deinferencia, permite visualizar el nombre y el valor de losatributos de la base de conocimiento que se está usando.

Forma de acceso:1. Usando el comando Attributes de la opción View en el Menú

de tareas.2. Usando el icon correspondiente dentro de la opción VIEW en

la Barra de herramientas.

Valor del atributo

Nombre del atributo

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista para editar las propiedades de los atributos.Esta vista permite, durante el proceso de inferencia, laedición de las propiedades de los atributos.

Para acceder a ella hay que activar la vista anterior y hacerdoble click sobre el nombre del atributo que se desea editar.

Tipo del atributo

Valor del atributo

Valor de certidumbre

Nivel de inferencia

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista para la edición de los breakpoints.Esta vista permite, durante el proceso de inferencia, laedición de los breakpoints.

Forma de acceso:1. Usando el comando Add Breakpoints de la opción Run en el

Menú de tareas.2. Usando el icon correspondiente dentro de la opción Run en la

Barra de herramientas.

Nombre del proyecto

Línea del Breakpoint

Condición de parada

Veces a ejecutar

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista que muestra la lista de breakpoints.Muestra la lista de los breakpoints actuales y sus propiedades.

Forma de acceso:1. Usando el comando Breakpoints de la opción View en el Menú

de tareas.2. Usando el icon correspondiente dentro de la opción View en

la Barra de herramientas.

Al pulsar doble click con el ratón sobre algún breakpoint de lalista se presenta el editor del sistema con el cursor sobre lalínea donde aparece la sentencia dada.

Nombre del proyecto

Número de línea del breakpoint

Breakpoint deshabilitado

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista que muestra el Stack. Esta vista muestra el estado del stack durante el proceso deinferencia.

Forma de acceso:3. Usando el comando Call Infer de la opción View en el Menú

de tareas.4. Usando el icon correspondiente dentro de la opción View en

la Barra de herramientas.

Doble click sobre cualquier atributo, activa la vista deleditor y sitúa el cursor en el lugar desde donde se ordenó lainferencia del atributo.Doble click sobre la regla, activa la vista del editor y sitúael cursor sobre dicha regla.

Atributos infiriendose

Reglas pendientes

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista para la edición de proyectos.Esta vista permite la edición de los proyectos. Brindafacilidades para marcar, cortar, copiar y pegar bloques;permite, además, deshacer las modificaciones.

Click derecho sobre el editor activa un menú Pop up que permitecerrar el proyecto y ubicar breakpoints entre otras opciones.

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Vista de la interfaz para las respuestasEsta vista aparece durante el proceso de inferencia, a travésde ella se deben responder las distintas preguntas que hace elsistema.La vista puede tener diferentes aspectos en dependencia de sila respuesta debe ser editada o si se debe seleccionar dentrode un conjunto de posibles respuestas, como se aprecia acontinuación.Las respuestas tienen por defecto el valor de certidumbre 100(totalmente seguro) pero este campo se puede editar cuando lacertidumbre no es total.

Texto de la pregunta

Certidumbre de la respuesta

Elementos del Dominio

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Capítulo III: Manual del programador

III.1 Sintaxis de las bases de conocimientoUna Base de Conocimiento para el sistema SESE está compuestapor cuatro partes, tres de ellas son opcionales y la tercera,denominada bloque de acciones, es obligatoria. La siguiente figura muestra un esquema de su sintaxis.

De acuerdo a la sintaxis anterior, una base de conocimientoestá compuesta por tres módulos opcionales que debenescribirse en el orden mostrado. Estos son:1. Bloque de atributos externos. Se especifica por la palabra

reservada External.2. Bloque de preguntas, especificado por la palabra reservada

Asks.3. Bloque de reglas, su definición comienza con la palabra

reservada Rules.Adicionalmente existe un cuarto módulo obligatorio y conocidocomo Bloque de acciones, que se define con la palabrareservada Actions.El fin de un bloque se especifica, implícitamente, con elinicio de otro, excepto el bloque de acciones que finalizacon la palabra reservada End seguida por un punto lo queconstituye, además, el fin de la base de conocimiento.

Ejemplo 3.1External Familia

...Asks Ask Patas: '¿Cuántos pares de patas tiene el animal?'

...Rules Rule 1 If Familia = 'Artrópodos' and Patas = 6

42

Base de Conocimiento

External

Actions

.Asks

Rules

End

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Then SubFamilia := ‘Insectos’ End;

...Actions Find SubFamilia

...End.

43

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición del bloque de atributos externosSe considera un atributo declarado (implícitamente), cuandoéste aparece en una sentencia ASK del bloque de preguntas oforma parte de la conclusión de una regla. La especificación External define el bloque de atributosexternos y especifica una lista de atributos que se usan enuna base dada y no están declarados en ella. Esta facilidadpermite enlazar hechos entre diferentes bases. En el ejemploanterior se observa que el atributo Familia no está declaradoen esa base de conocimiento (no está en la conclusión deninguna regla ni en el bloque de preguntas de la base), deahí la declaración de ese atributo como externo para que laregla 1 pueda utilizarlo.

WUCShell ejecuta sentencias, los atributos externos estánligados a dos de ellas: SaveFact y Chain de la siguienteforma: La sentencia Savefact permite guardar, temporalmente, los

valores de los atributos inferidos, de manera que puedanser utilizados, como hechos, en otras bases deconocimiento.

La sentencia Chain permite cambiar el proceso deinferencia de una base de conocimiento hacia otra.

La forma de utilización de estas facilidades es la siguiente:Supongamos que se tiene un sistema experto que utiliza dosbases de conocimiento B1 y B2. Algunos de los atributosinferidos durante la utilización de la base B1 van serutilizados en la base B2. Los pasos a seguir son lossiguientes:1. En B1 utilizar la sentencia SaveFact para preservar los

valores de los atributos inferidos que se utilizarán enB2. Esa acción hay que realizarla antes de ejecutar lasentencia Chain,

2. En B1 poner la sentencia (Chain ‘B2.KBO’) en el lugarapropiado para cambiar la inferencia de B1 a B2 en elmomento deseado.

3. En B2 declarar externos los mismos atributos.

44

Identificador de atributo externo

EXTERNAL

,

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Obsérvese que la sentencia Chain utiliza el archivo B2.KBO,por lo que el archivo B2.KBS debe haberse compiladopreviamente. Ejemplo 3.2 Archivo b1.kbsAsks

Ask Exoesqueleto: '¿El animal tiene un esqueleto externo de quitina?'Ask Patas: '¿Sus patas son articuladas?'

RulesRule 1If Exoesqueleto = 'Si' and

Patas = 'Si'Then

Familia := 'Artrópodos'End;

ActionsFind FamiliaSavefact FamiliaChain 'B2.KBO'

End.

Archivo b2.kbsExternal FamiliaAsks Ask Patas: '¿Cuántos pares de patas tiene el animal?'Rules Rule 1 If Familia = 'Artrópodos' and Patas = 6 Then SubFamilia := ‘Insectos’ End;Actions Find SubFamiliaEnd.

45

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición del bloque de preguntas

La especificación Asks define el bloque de preguntas o seacontiene la declaración de todos los atributos preguntables(definidos por la meta sentencia (MS) Ask).

Las preguntas definen la interfaz entre la máquina deinferencia y el usuario del sistema experto. Ejemplo 3.3asks ask Reaccion : 'Después de calentar la sustancia como máximo /n' + 'una hora, a reflujo, con ácido sulfúrico al /n' + '60% se observa que : ' domain 'Se disuelve sin desprendimiento de gas', 'Se disuelve con fuerte desprendimiento de CO2', 'Se obtiene una solución marrón oscura' because 'Porque estoy tratando de investigar si se trata de una /n' , 'Poliamida, un Poliuretano o una Resina de Urea, para lo cual /n' , 'estas reacciones son determinantes.'

ask CapaEterea : 'Por hidrólisis con HCL al 20% durante 4 horas, extracción/n'+ 'con éter y concentración de las capas acuosa y/n'+ 'etérea se obtienen sólidos se determinada temperatura/n'+ 'de fusión. En este caso, cuál es la temperatura de fusión /n'+ 'alcanzada por la capa etérea? (en grados Celcius)' choice 133,152

46

Definición de MS ASK

ASKS

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición del bloque de reglasLa especificación Rules define un bloque de reglas de tipoIF-THEN, ésta es una parte medular de la base de conocimientoya que las reglas representan el conocimiento del sistema.

Ejemplo 3.4Rules

Rule 22 If (Familia = 'Poliuretano') And

(Rf = 0.58) And(Color = 'Amarillo')

ThenComposicion := '3'Actions

Display 'Está formado por 4,4 diaminodifenilmetano.'End;

Rule 23If (Familia = 'Poliuretano') And

(Rf = 0.53) And(Color = 'Amarillo')

ThenComposicion := '4'Actions

Display 'Está formado por 4,4 diamino di-o-tolilmetano.'End;

47

Definición de regla

RULES

;

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición del bloque de accionesLa palabra reservada Actions especifica la lista de accionesque serán ejecutadas durante el proceso de inferencia.

El bloque de acciones principal define el punto de entradapara comenzar la secuencia de deducción de la máquina deinferencia.

El bloque de acciones de una regla define el conjunto deacciones que se ejecutarán cuando la condición de la reglase haga verdadera durante el proceso de inferencia.

Ejemplo 3.5 Bloque de acciones principal.External ...Asks ...Rules ...Actions

Repeat Reset all Find Familia Find Subfamilia Find Composicion Find Resumen Find Finalizar

Untilknown FinalizarEnd.

Ejemplo 3.6 Bloque de acciones de una regla.Rules

Rule 39If Reconsulta = 'Si'

ThenFinalizar :='No'ActionsReset Finalizar

End;Rule 40If Reconsulta = 'No'

Then

48

Definición de Acciones

ACTIONS

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Finalizar := 'Si'ActionsDisplay 'Gracias por su consulta'

End;

49

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

III.2 Conceptos generales Existen dos tipos de sentencias:1.Las primeras son en realidad meta sentencias ya que no

tienen efecto en el proceso de inferencia; sólo seutilizan durante el proceso de compilación para generar laforma interna, ej. ASK.

2.Las segundas son las verdaderas sentencias y sonejecutadas por la máquina de inferencia durante el procesode prueba de un objetivo dado, este grupo de sentenciaspueden ser escritas dentro de los bloques de accionessolamente.

Definición de la meta sentencia Ask Declara un atributo como un preguntable.

50

Texto de la pregunta

Certidumbre de la respuesta

Editor de respuesta

Dominio de definición

Conjunto de Selección

Definición de explicación

Nombre de Atributo

ASK : Pregunta

‘Cadena de Caracteres’

Pregunta

Definición de imagen

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Cada meta sentencia Ask define una pregunta para la interfazdel sistema experto y, como puede inferirse a partir de lasintaxis anterior, puede presentarse en dos formas:1. Preguntas de cadena de caracteres (vista anterior).2. Preguntas con imágenes.

Definición de imagenSe utiliza la palabra reservada Image para especificar elcamino de búsqueda de una archivo (incluye el archivo) quecontiene la imagen que se desea mostrar como parte de lainterfaz del usuario.

Se puede utilizar esta facilidad para mostrar preguntas conimágenes , elementos de un dominio con imágenes asociadas, opara mostrar una imagen mediante la sentencia Display.

Conjunto de selecciónEl Conjunto de selección se define mediante la palabrareservada Choice y especifica una lista de literales oatributos separados por coma, como posibles respuestas a laspreguntas.

51

,

CHOICE

Conjunto de selección

Literal

Atributo

Definición de imagen

( )‘Camino de búsqueda’

IMAGE

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Los literales pueden ser cualquiera de los tipos definidospor el sistema (string, real, integer). Los atributospreguntables que forman parte del Conjunto de seleccióntienen que haber sido previamente definidos en la base deconocimiento de lo contrario se genera un error decompilación debido a que dichos atributos se tienen quehaber convertido previamente en hechos (tienen un valorasignado) porque el compilador del sistema es de una solapasada.

Ejemplo 3.7. Pregunta con imagen y conjunto de selección.

Ask Mancha1: Image(‘Mancha.bmp')Choice 'Caderas', 'Murciélago'

52

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Dominio de definición La palabra reservada Domain define el dominio de respuesta.

Los literales pueden ser cualquiera de los tipos definidospor el sistema string, real, integer.Los elementos del dominio que tienen una interfaz gráficamediante la definición de una imagen toman el valor literaldefinido después del operador Igual (=). De no existir éste,el valor que toma el elemento del dominio es el índice queocupa dentro de la lista (comenzando por cero).Tanto en tiempo de compilación como en tiempo de ejecución elsistema garantiza que los atributos definidos por domain sólopuedan tomar valor dentro del dominio.

53

Literal

Definición de imagen

Literal

,=

Dominio de definición

DOMAIN

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Ejemplo 3.8. Pregunta de cadena de caracteres con dominio dedefinición sin

imagen asociada.Ask Reaccion_a :'Caliente el material seco en un tubo de combustión /n' +

'conteniendo en la boca un papel de PH./n/n/n'+'¿Cómo se comporta?'

Domain 'Débilmente alcalino', 'Neutro o débilmente ácido'

54

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición de explicaciónLa palabra reservada Because permite asociar a cada preguntauna explicación que faculta al sistema experto parajustificarlas cuando el usuario lo solicite.Un texto definido como because de una pregunta se mostrarácomo parte de la interfaz cuando se oprima el botón de<<Because>>.

Ejemplo 3.9 Pregunta con explicación asociada. Ask Mancha1: Image(‘Mancha.bmp') Choice 'Caderas', 'Murciélago' Because 'Se necesita saber la reacción del paciente ante la mancha 1 deltest'.

55

Imagen de la pregunta

Certidumbre de la respuesta

Texto del because de la pregunta

Botón del because

Botón del browser

,

Definición de explicación

Definición de items a mostrar

BECAUSE

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Se pueden definir preguntas sin conjunto de selección nidominio de definición asociado, para este tipo de preguntas ypara las de conjunto de selección (definidas por choice) sesiguen las siguientes reglas:El editor de respuesta capta el conjunto de caractereseditados por el usuario como respuesta a una pregunta. Larespuesta se asigna al atributo que generó la pregunta peroantes se convierte a uno de los siguientes tipo de literales:string, integer o real, según las siguientes reglas:1. Si la respuesta está compuesta solo por números en el

rango que define el integer entonces la respuesta es unnúmero entero (tipo integer).

2. Si la respuesta está compuesta por números y un punto (.)en el formato y rango que define un real entonces larespuesta es un número real (tipo real).

3. Si la respuesta no cumple ninguna de las reglas anterioresentonces la respuesta es un cadena de caracteres (tipostring).

Los atributos que no están definidos previamente comopreguntables ni externos se consideran deducibles y en tiempode ejecución se tratan de inferir mediante un encadenamientohacia atrás teniendo en cuenta solo los atributos que sonhechos. A todo elemento del dominio que no cuente con una imagenasociada, se le asignará una imagen por defecto.

Ejemplo 3.10 Pregunta de cadena de caracteres con dominio dedefinición e

imagen asociada.ask Color: 'Cual es el color de la mancha ?' domain Image('AP.bmp') = 'Amarillo Pardo', Image('A.bmp') = 'Amarillo', Image('RC.bmp') = 'Rojo Carmín', Image('Az.bmp') = 'Azul Violeta'

56

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Ejemplo 3.11 Pregunta de cadena de caracteres con dominio dedefinición sin

imagen asociada.Ask Country: 'Entre el país a que pertenece.'Domain 'USA', 'China', 'Cuba', 'Rusia', 'Canada'

57

Texto de la pregunta

Certidumbre de la respuesta

Elementos del Dominio

Texto de la pregunta

Certidumbre de la respuesta

Elementos del Dominio

Imagen por defecto

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Las imágenes mostradas por las preguntas visuales y por lassentencia Display se enmarcarán dentro del espacio que lainterfaz le asigne a las imágenes reduciendo su tamañoproporcionalmente, estas imágenes reducidas pueden ser vistasen toda su dimensión mediante un doble click sobre la imagen.

Ejemplo 3.11 Resumen de ASK con dominioAsks

Ask Color: '¿Cuál es el color de la mancha?'Domain

Image('AP.bmp') = 'Amarillo Pardo', Image('A.bmp') = 'Amarillo',Image('RC.bmp') = 'Rojo Carmín',Image('Az.bmp') = 'Azul Violeta'

Ask IndexColor: 'Cual es el color de la mancha ?'Domain

Image('AP.bmp'), // Toma valor 0Image('A.bmp'), // Toma valor 1 Image('RC.bmp'), // Toma valor 2Image('Az.bmp') // Toma valor 3

Ask Country: 'Entre el país a que pertenece.'Domain 'USA', 'China', 'Cuba', 'Rusia', 'Canada'

Rules Rule 1 If IndexColor = 0 Then Color := 'AmPar' // Error AmPar no está en el Dominio End;

58

Imagen por defecto

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición de elemento visibleLa definición de una lista de elementos visible permite quelas sentencias Because y Display incluyan: Literales: Imprime el valor del literal. Atributos: Si el atributo no ha sido instanciado loinfiere y luego imprime el valor

Texto de Preguntas: Si el identificador no es unpreguntable genera un error de compilación de lo contrarioimprime el texto de la pregunta del identificador.

CNF de atributos: Si el identificador no ha sidoinstanciado lo induce y luego imprime la certidumbre delvalor asignado al atributo.

Ejemplo 3.12Asks Ask A: '¿Qué valor le asigna a A?' Because 'Me es imprescindible su valor' Ask B : '¿Cuánto vale B?' Because 'Es uno de los componentes de la fórmula'Rules Rule 1 If (a <> 0) and (b <> 0) Then C := a /b M := LN(100) Actions Display 'El valor de C es:', C, 'y lo he calculado de acuerdo

a:' C = A / B /n', '1.- Le pregunté "',A.Ask,'" y dijo que A era: ',A,'/n', '2.- Le pregunté "',B.Ask,'" y dijo que B era: ',B,'/n', 'El valor de M es: ',M End;Actions Find cend.

59

Definición de elemento visible

Atributo

Literal

. Ask

Cnf

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Ejemplo 3.13rules rule 1 if Mancha1 = 'Caderas' then Reaccion := 'Sexual' actions Display 'Imagen mas similar' Display Image('C:\UCLV\MFC\ManchaSex.bmp') end;

60

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Efecto de una sentencia display con texto solamente

Efecto de una sentencia display con una imagen asociada

61

Imagen mostrada por Display

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Efecto de un zoom sobre una imagen

62

Imagen mostrada por Display

Ampliación de la Imagen

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Definición de literalEl sistema es capaz de manipular literales como: Cadena de caracteres: de cualquier tamaño encerrado entrecomillas.

Enteros: Secuencia de dígitos en el rango de -32768..32767.

Reales: Secuencia de dígitos permitiendo la inclusión depunto flotante en el rango 2.9x10-39..1.7x1038

Ejemplo 3.14'Esto es un literal de tipo cadena de caracteres ''Los cambios de línea se definen como un literal del tipo cadena de caracteres “\n”'-156 // literal entero 54 // literal entero32767 // literal entero-45.3 // literal real0.67 // literal real78.078 // literal real

63

Cadena de caracteres

Definición de literal

Entero

Real

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador 64

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

III.3 Sentencias Las acciones que se pueden realizar sobre los elementos de labase de conocimiento están definidos por un conjunto desentencias que especifican operaciones sobre los atributos ola base de conocimiento en sentido general. Las sentencias pueden escribirse dentro de los bloques deacciones solamente y son :Display, Find, Reset, Is, Chain, Repeat y SaveFact

Sentencia DisplayLa sentencia Display permite especificar una lista deelementos visibles que serán mostrados en pantalla en tiempode ejecución.

Ejemplo 3.15Asks Ask A: 'Que valor le asigna a A ?' Ask B : 'Cuanto vale B ?' Rules Rule 1 If (a <> 0) And (b <> 0) Then C := a /b End;Actions Find c Display 'Contenido de C = A / B = ',c,'/n', 'Las A y B toman el valor que usted le asigno : /n', ' A = ',a,' CNF = ',a.Cnf,'/n', ' B = ',b,' CNF = ',b.Cnf,'/n', 'Las pregunta son : /n', ' para a : "',a.ask,'" /n', ' para b : "',b.ask,'" /n', 'El valor de M es : ',MEnd.

65

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Imagen

Sentencia Display

,

Elemento visible

DISPLAY

Capítulo III. Manual del programador 66

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Sentencia IsLa declaración de hechos se define con la palabra reservadaIS. Esta es la única forma directa de convertir un atributo,de cualquier clase, en un hecho.

Los atributos pueden convertirse en hechos de las siguientesformas:1. Inferidos a partir de la prueba de una o varias reglas

durante una consulta.2. Por las respuestas del usuario, cuando son preguntables. 3. Por medio de la sentencia ISLa certidumbre del valor asignado por medio de is tendrá elvalor máximo del sistema.Si al atributo de la izquierda se le asigna un atributo convalor desconocido, éste se inferirá antes de que su valor seaasignado.

Ejemplo 316Asks Ask B : 'Cuanto vale B ?' Because 'Lo uso para calcular C'Rules Rule 1 If (a <> 0) And

(b <> 0) Then C := a /b Actions h Is C End;Actions A Is 67 Find c End.

67

Atributo

Sentencia Is

Atributo

LiteralIS

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Sentencia Repeat Mediante la sentencia Repeat es posible definir un conjuntode acciones cíclicas que serán llevadas a cabo por cualquierade las sentencias permisibles. El fin del ciclo se especificacon la palabra reservada UntilKnown.La condición de terminación del ciclo se alcanza cuando elatributo que sigue al UntilKnown recibe un valor diferente dedesconocido (definido por la constante Unknown). El atributo que se encuentra como condición de parada no seinferirá en el momento de la evaluación solo se verificará sisu valor es conocido o no.

Ejemplo 3.17Actions Repeat Reset all Find Familia Find Subfamilia Find Composicion Find Resumen Find Finalizar Untilknown FinalizarEnd.

68

Sentencia Repeat

Sentencia

REPEAT UNTILKNOWN Atributo

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Sentencia FindLa sentencia Find permite iniciar el proceso de inferenciadel atributo especificado.

Si el atributo a inferir es un preguntable, se realizarála pregunta asociada al atributo.

Si el atributo es un deducible se infiere, siguiendo unadirección de búsqueda Backward chaining o Dirigida porobjetivos.

Si el atributo es externo esta acción no provoca ningúncambio.

Ejemplo 3.18Actions Repeat Reset all Find Familia Find Subfamilia Find Composicion Find Resumen Find Finalizar Untilknown FinalizarEnd.

69

Sentencia Find

FIND Atributo

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Sentencia Reset La sentencia Reset especifica una lista de atributosseparados por coma a los que se les asignará el valor dedesconocido (Unknown) cuando esta acción sea ejecutada.

Por defecto todos los atributos tienen asignado el valorUnknown. Si después de una inferencia se desea asignar esevalor a todos los atributos de la base de conocimiento sedebe utilizar la cláusula All como parámetro de la acciónReset.

Ejemplo 3.20Rules Rule 39 If Reconsulta = 'Si' Then Finalizar := 'No' Actions Reset Finalizar End; Rule 40 If Reconsulta = 'No' Then Finalizar := 'Si' actions Display 'Gracias por su consulta' End;Actions repeat Reset all Find Familia Find Resumen Find Finalizar Untilknown FinalizarEnd.

70

Sentencia Reset

ALL

,

RESET

Atributo

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador 71

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Sentencia SaveFactLa sentencia SaveFact permite guardar los valores asociados alos atributos de la base de conocimiento activa (base origen)con el objetivo de hacer una enlace con otra base deconocimiento (base destino). Los atributos que se guarden conesta sentencia, deberán ser declarados externos en la base deconocimiento destino .

Para guardar todos los atributos de la base de conocimientoactual se utiliza la cláusula All como parámetro de la acciónSaveFact. La acción SaveFact utiliza una zona de memoria para almacenarla dirección de los últimos atributos guardados, cadaejecución de la acción SaveFact sobrescribe las direccionesanteriores.

72

Atribu

ALL

,

Sentencia

SAVEFACT

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Sentencia ChainLa sentencia Chain especifica el camino hacia una base deconocimiento destino con la que se va a enlazar la base deconocimiento origen.La base de conocimiento destino tiene que haber sidopreviamente compilada (.KBO).

La ejecución de la sentencia Chain provoca:1. Un cambio de ejecución desde la base de conocimiento

origen hacia una base de conocimiento destino.2. Realiza el intercambio de hechos entre las bases. Para que

el intercambio se haga correctamente antes de ejecutar lasentencia Chain debe haberse ejecutado una sentenciaSaveFact para guardar los atributos (con sus valores) dela base origen que se deseen conservar en la base destino.

3. Antes de cargar la base de conocimiento destino, Chain leasigna a todos los atributos externos (External) de labase de conocimiento destino el valor de los atributosguardados por la ultima acción SaveFact, asegurando deesta forma que los hechos de la base de conocimientoorigen se conserven para la base de conocimiento destino.

4. Luego de ejecutar la base de conocimientos destino, Chainretorna a la base origen y le asigna a todos losatributos externos (External) de esta última el valor delos atributos guardados por la ultima acción SaveFact dela base de conocimiento destino. De esta forma se aseguraque los hechos de la base de conocimiento destino tenganvalor en la base de conocimiento origen.

La ejecución de la base de conocimiento destino se efectúasobre otro hilo del sistema dejando el hilo activo en esperade la terminación de éste y mostrando otra interfaz deejecución para la base destino.La forma de utilización de estas facilidades es la siguiente:Supongamos que se tiene un sistema experto que utiliza dosbases de conocimiento B1 y B2. Algunos de los atributosinferidos durante la utilización de la base B1 van serutilizados en la base B2. Los pasos a seguir son lossiguientes:

73

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

CaminoChain

Sentencia Chain

Capítulo III. Manual del programador

4. En B1 utilizar la sentencia SaveFact para preservar losvalores de los atributos inferidos que se utilizarán enB2. Esa acción hay que realizarla antes de ejecutar lasentencia Chain,

5. En B1 poner la sentencia (Chain ‘B2.KBO’) en el lugarapropiado para cambiar la inferencia de B1 a B2 en elmomento deseado.

6. En B2 declarar externos los mismos atributos. Obsérvese que la sentencia Chain utiliza el archivo B2.KBO,por lo que el archivo B2.KBS debe haberse compiladopreviamente.

74

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

Ejemplo 3.21 Archivo b1.kbsAsks

Ask Exoesqueleto: '¿El animal tiene un esqueleto externo de quitina?'Ask Patas: '¿Sus patas son articuladas?'

RulesRule 1If Exoesqueleto = 'Si' and

Patas = 'Si'Then

Familia := 'Artrópodos'End;

ActionsFind FamiliaSavefact FamiliaChain 'B2.KBO'

End.Archivo b2.kbsExternal FamiliaAsks Ask Patas: '¿Cuántos pares de patas tiene el animal?'Rules Rule 1 If Familia = 'Artrópodos' and Patas = 6 Then SubFamilia := ‘Insectos’ End;Actions Find SubFamiliaEnd.

75

Interfaz de la base de conocimiento del Chain

Nueva interfaz activa

Capítulo III. Manual del programador

III.4 Definición de reglasLas reglas que forman parte del Bloque de reglas seespecifican por la palabra reservada Rule y tienen el formatoIF..THEN..ACTION

Entero: Es un número entero que especifica el nivel(Level) de prioridad de la regla en cuestión y tiene queser único para la base de conocimiento.

Condición: Es el conjunto de condiciones que son necesariaspara que las conclusiones y acciones de la regla puedanser ejecutadas.

Conclusión: Especifica las conclusiones que se ejecutaráncuando la condición de la regla sea verdadera.

Bloque de acciones: Especifica las acciones que se ejecutaráncuando la condición de la regla sea verdadera

Todo atributo que se encuentre en la parte derecha de unaconclusión será definido como un atributo deducible, lo queimplica que no puede ser definido como preguntablepreviamente.El entero que especifica el nivel (Level) de la regla nodefine el orden en que las reglas serán ejecutadas por laMáquina de Inferencia en el momento de la deducción de unatributo, éste tiene una tarea importante en el Método deSolución de Conflictos de la máquina.

76

Definición de regla

Entero

Rule

Bloque de Acciones

End

Conclusión

CondiciónIf

Then

Capítulo III. Manual del programador

Ejemplo 3.22rules

rule 1if (ReaccionA = 'Neutro o débilmente ácido') and

(ReaccionB = 'Es soluble a un 20% y precipita al enfriar') and(ReaccionC = 'Se disuelve con fuerte desprendimiento de CO2')

thenTipoPlastico := 'Poliuretano'actions

Display'El material a clasificar es un Poliuretano. /n','Los poliuretanos son los productos de poliadición de ', 'isocianatos polifuncionales con polialcoholes, polieteres','o polieteres, conteniendo grupos hidroxilos. Si se pasan ','los vapores de la pirólisis del plástico por acetona ','anhidra y esta se trata con nitrito de sodio al 10% /n ','aparece un color naranja o rojo pardo, el cual ratifica ','que la sustancia es efectivamente un Poliuretano./n','Procederemos a la identificación del tipo de Poliuretano.'

end;rule 2

if Reconsulta = 'Si'then

Finalizar := 'No'actionsReset Finalizar

end;rule 3

if Reconsulta = 'No'then

Finalizar := 'Si'actionsDisplay 'Gracias por su consulta'

end;

77

Capítulo III. Manual del programador

Definición de ConclusiónLa definición de Conclusión especifica el valor que losatributos deducibles obtendrán cuando ésta sea ejecutada porla Máquina de Inferencia.

Mediante la declaración de una conclusión se define unAtributo como deducible. El bloque para el cálculo de la certidumbre (opcional)definido por la palabra reservada CNF se usa de acuerdo alsiguiente convenio: el valor real que sigue a CNF se multiplica por el valor

de certidumbre que la condición de la regla tenga durantela inferencia.

en caso de que no se especifique el bloque CNF el valor dela certidumbre de la conclusión es la máxima definida porel sistema.

Ejemplo 3.23rules rule 1 if (A = 10 cnf 90) and (B > 30 cnf 50) and (C = 15) and (D <> 89) then Conc := 87 cnf 89 NewC := 78 end;

78

Atributo

Definición de Conclusión

:=

Atributo

Literal

RealCnf

Capítulo III. Manual del programador

Definición de CondiciónLa definición de condición permite expresar las premisasnecesarias para que una regla sea verdadera, lo que significaque se efectúen las acciones que la regla especifica y seasignen a los atributos de la conclusión los valorescorrespondientes.Las condiciones están definidas según el formato estándarANSII, con los niveles de prioridad requeridos.

Operadores CondicionalesOperador Operación Prioridad Relación Ejemplo . Not negación 2da unario not(A = B), not(ExcludeB)And and lógico 3ra binario (A = B) and (B =C) and (C = D)Or or lógico 4ta binario (A = B) or (B = C) or (C =D)

Para el operador not la sentencia “not A” es verdadera siy solo si A es falsa.

Para el operador and la sentencia “A and B” es verdaderasi y solo si A es verdadera y B es verdadera.

Para el operador or la sentencia “A or B” es verdadera siy solo si al menos uno de los operandos A o B esverdadero.

Los operadores lógicos son asociativos de izquierda aderecha.

Para el operador and la evaluación de las condiciones sedefine como de circuito corto o evaluación parcial (short-circuit) lo que significa que si en algún momento de laevaluación de las condiciones relacionadas con and alguna esfalsa (lo que implica que la condición sea falsa), laevaluación falla. De acuerdo con las exigencias del cálculo de la certidumbrepara el operador or la evaluación de las condiciones sedefine como de circuito largo o evaluación completa(complete-circuit) lo que significa que todas las condicionesde la sentencia se evaluarán sean cuales sean los resultados.Los operadores lógicos no se comportan como operadores sobrebits por lo que las condiciones de comparación, que son lasde mas relevante importancia, tienen la máxima prioridad.

79

Capítulo III. Manual del programador

Operadores RelacionalesOperador Operación Prioridad Relación Ejemplo = Igual 1ra binaria A=5, A=‘string’,A=5.3 <> Diferente 1ra binaria A<>5,<>‘string’,A<>5.3< Menor que 1ra binaria A<5, A<‘string’,A<5.3> Mayor que 1ra binaria A>5,A>‘string’ ,A>5.3<= Menor o igual que 1ra binaria

A<=5,A<=‘string’,A<=5.3>= Mayor o igual que 1ra binaria

A>=5,A>=‘string’,A>=5.3Exclude Control de inferencia 1ra unarianot(ExcludeB)

exclude b

Mediante la combinación de los operadores condicionales yrelacionales se puede definir una gama de complejascondiciones capaces de satisfacer, en gran medida, lasnecesidades de los ingenieros del conocimiento.

El compilador mantiene un estricto chequeo de tipo paralos literales de los operadores relacionales, mostrandolos errores de incompatibilidad de tipo.

La máquina de inferencia hace lo mismo para los atributosinstanciados (en tiempo de ejecución). En caso de ocurrirerrores, aborta la inferencia e informa de laincompatibilidad generada.

El operador relacional exclude <atributo> se interpreta dela siguiente forma:

Falla si atributo es conocido (lo que hace fallar laregla donde se define).

Sucede en otro caso.

80

Atributo

Definición de comparación

EXCLUDE

Relación RealCnf

Expresión

Expresión =

<=

<

>

>=

<>

UNKNOWN

Definición de Relación

Capítulo III. Manual del programador

Los operadores relacionales pueden ser definidos sobreelementos del mismo tipo o sobre los tipos compatibles(Entero versus real).Mediante la definición de la palabra reservada Unknown sepueden realizar comparaciones para determinar si un atributodado ha sido inferido (si ya tiene un valor se dice que es unhecho). La constante Unknown solo puede usarse con losoperadores relacionales, tratar de asignarla a un atributomediante la sentencia de conclusión (:=) o de hecho (is)provocará un error de compilación ya que la única forma deasignar esta constante a un atributo es usando la sentenciaReset.Los atributos ligados con los operadores relacionales seinducen en el momento de la evaluación (si todavía no se hanconvertido en hechos) o sea la inclusión de un atributo en lacondición de una regla puede provocar un proceso deinferencia. Bajo estas circunstancias el ejemplo siguienteprovocaría una inferencia cíclica (detectada en tiempo deejecución).Ejemplo 3.24rules rule 1 if (A = Unknown) then A := 'Error de ejecución' end;Actions Find AEnd.

81

Capítulo III. Manual del programador

Obsérvese que si A ya tuviera un valor asignado la reglaanterior fallaría (porque falla su primera condición) por latanto no provocaría error de ejecución.El sistema SESE en general y, por supuesto, WUCShell enparticular sigue un mecanismo de inferencia de "exploracióntotal". Lo anterior significa que la prueba de un atributodado implica que se traten de probar todas las reglas dondeese atributo esté como conclusión ya que la máquina deinferencia no para inmediatamente después de probar elatributo por la primera vía exitosa sino que continúa hastaagotarlas todas. La razón fundamental para usar el mecanismo de "exploracióntotal" viene dada por la necesidad de calcular la certidumbretomando en cuenta los niveles de cada regla (lo cual no seconoce si no se exploran todas). Si se desea evitar esemecanismo se puede usar el operador relacional exclude comoparte de la condición de la regla que no se desee explorartotalmente, la forma de hacer esto es la siguiente: -- Dada una regla con conclusión C -- Incluya la sentencia Exclude C como primera premisa de la

regla. -- Esa inclusión hace que no se traten de probar lasrestantes condiciones de la regla en cuestión si el atributoC ya fue probado, lo cual acelera el proceso de inferencia.O sea exclude C es una orden equivalente a: "No busque en elresto de esta regla si C ya es conocido (es un hecho)"Obsérvese que existen reglas que, por su naturaleza, sonmutuamente excluyentes; esto hace que el usuario del sistemasolo se percate de la diferencia entre utilizar o no lasfacilidades de exclude si sigue el proceso de inferenciapaso a paso (Run | Trace Into). No obstante si las reglas noson excluyentes puede obtener resultados no esperados si nousa esta facilidad.En el ejemplo siguiente, tomado de un sistema real (sistemaexperto "Plástico"), las dos primeras reglas son mutuamenteexcluyentes debido a que tienen los mismos atributos en suspremisas pero con diferentes condiciones. La tercera regla notiene nada que ver con las anteriores, en relación a laspremisas, sin embargo todas tienen el mismo atributo en laasignación de la conclusión (Tipo).Supongamos que la tercera regla no tiene la primera línea, osea la primera premisa (que hace uso de exclude), puedesuceder lo siguiente:

82

Capítulo III. Manual del programador

1. El sistema asigna un valor al atributo Tipo por cualquierade las dos primeras reglas (solo una se cumplirá ya queson excluyentes).

2. Posteriormente trata de inferir la tercera, como en esecaso la regla no hace uso de exclude, pasa a probar elatributo Molish, supongamos que éste toma el valor 'SI'.

3. Ahora el atributo Tipo toma un nuevo valor, lo cual eserróneo desde el punto de vista de la concepción de estesistema porque un plástico solo puede ser de un tipo dado.

En conclusión de la forma en que está escrita la regla 3 soloserá tomada en cuenta cuando el atributo Tipo sea desconocido(tiene como valor asignado la constante Unknown)

Ejemplo 3.25rules rule 1 if (Reaccion_a = 'Débilmente alcalino') and (Reaccion_b = 'Se disuelve sin desprendimiento de gas') and (Reaccion_c = 'Se disuelve sin desprendimiento de gas') then Tipo := 'Poliamida'end; rule 2 if (Reaccion_a = 'Neutro o débilmente ácido') and (Reaccion_b = 'Es soluble como máximo a un 20% y...') and (Reaccion_c = 'Se disuelve con fuerte desprendimiento de CO2') then Tipo := 'Poliuretano'end;rule 3 if (EXCLUDE Tipo) and (Molish = 'SI') then Tipo := 'Nitrocelulosa' actions display 'El material a clasificar es una Nitrocelulosa./n',end;

Otra consideración en relación a exclude se puede hacer apartir del ejemplo siguiente

Ejemplo 3.26rules rule 3 if (Exclude A) then A := 'Urea' end;

83

Capítulo III. Manual del programador

Si en lugar de Exclude A se utilizara la comparación (A =Unknown) y A no es aún un hecho (tiene un valor igual aunknown, por eso no es un hecho), el sistema tratará deinferir A una y otra vez lo que provoca una inferenciacíclica y esa es una mala noticia; la buena es que ese ciclose detecta en tiempo de ejecución (quizás un poco tarde paraalgunos).Utilice Exclude también cuando desee comprobar que unatributo es un hecho o sea que ya fue probado (no tiene elvalor Unknown) para luego realizar comparaciones con esteatributo.

Ejemplo 3.27rules rule 1 if Not (Exclude SubTipo) and (SubTipo = 'Resina') then Composición := 10 end;

Si la primera condición de la regla se cumple, significa queel atributo SubTipo ya tiene un valor o sea ya es un hecho.

El bloque de certidumbre definido por la palabra reservadaCnf brinda la posibilidad de definir la certidumbre con lacual se probará la condición. Ejemplo 3.28rules rule 1 if (A = 10 cnf 90) and (B > 30 cnf 50) and (C = 15) and (D <> 89) then Conc := 87 cnf 89 end; rule 2 if ((A = 10) or (B > 30)) and ((C = 15) or (D <> 89)) then NewC := 78 end;

Definición de ExpresiónLa definición de expresión permite conformar las máscomplejas relaciones entre operandos aritméticos teniendo encuenta su nivel de prioridad y la asociación de losoperadores de igual prioridad.Operadores Aritméticos

84

Capítulo III. Manual del programador

Operador Operación Prioridad Relación Compatibilidad . * Multiplicación 5ta binaria Operandos numéricos/ División 5ta binaria Operandos numéricosDiv División Entera 5ta binaria Operandosenteros% Resto de la división 5ta binaria Operandosenteros+ Adición 6ta binaria Operandos numéricos+ Concatenación 6ta binaria Operandos de cadena- Sustracción 6ta binaria Operandos numéricos- Signo 6ta unaria Operandos numéricos

Existen tres reglas básicas de precedencia: Si dos operadores tienen diferente prioridad se ejecutaráprimero el de mayor prioridad.

Si dos operadores tienen igual prioridad se ejecutaráprimero el de la izquierda.

Las expresiones entre paréntesis tienen la máximaprioridad y se ejecutarán primero que cualquier operadorsimple.

El compilador, en tiempo de ejecución, reduce los operadoreseliminando los cálculos innecesarios.

85

Capítulo III. Manual del programador

Definición de FuncionesEl sistema ofrece un conjunto de sentencia para la ejecuciónde funciones matemáticas de gran uso.

Funciones MatemáticasFunción Operación Entrada Salida .COS Coseno Numérica Real (Radianes)ACOS Arco Coseno Numérica Real (Radianes)COSH Coseno HiperbólicoNumérica Real (Radianes)SIN Seno Numérica Real (Radianes)ASIN Arco Seno Numérica Real (Radianes)SINH Seno Hiperbólico Numérica Real (Radianes)TAN Tangente Numérica Real (Radianes)ATAN Arco Tangente Numérica Real (Radianes)TANH Tangente Hiperbólica Numérica Real

(Radianes)LN Logaritmo Neperiano Numérica NuméricaLOG Logaritmo Natural Numérica NuméricaSQR Potencia de 2 Numérica NuméricaSQRT Raíz Cuadrada Numérica NuméricaEXP Exponencial Numérica NuméricaABS Módulo(Valor Absoluto) Numérica Numérica

86