Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CAPTULO I. GENERALIDADES ................................................................................ 4
I.1 LOS SISTEMAS EXPERTOS ....................................................................................... 4
I.2 FORMAS DE REPRESENTACIN DEL CONOCIMIENTO ................................................... 4
I.3 MANIPULACIN DEL CONOCIMIENTO REPRESENTADO ................................................. 5
I.4 TRATAMIENTO DE LA INCERTIDUMBRE ....................................................................... 6
I.5 FUENTES DE INCERTIDUMBRE ................................................................................. 7
I.6 DESARROLLO DE UN SE .......................................................................................... 7
I.7 CARACTERSTICAS GENERALES DE SESE ................................................................ 8
I.7.1 Manipulacin de la incertidumbre en el SESE .............................................. 8
CAPTULO II. WUCSHELL, MANUAL DEL USUARIO ............................................ 14
II.1 EL MEN DE TAREAS Y LA BARRA DE HERRAMIENTAS .............................................. 14
Opcin File .......................................................................................................... 15
Opcin Edit .......................................................................................................... 17
Opcin Search .................................................................................................... 18
Opcin View ........................................................................................................ 19
Opcin Project ..................................................................................................... 20
Opcin Run ......................................................................................................... 21
Opcin Tools ....................................................................................................... 22
Opcin Help ........................................................................................................ 23
II.2 CAJAS DE DILOGOS DEL MEN FILE ..................................................................... 24
Dialogo Open ...................................................................................................... 24
Dilogo Save del comando Save as ................................................................... 25
II.3 VISTAS ............................................................................................................... 26
Vista de las propiedades de los atributos. .......................................................... 26
Vista para editar las propiedades de los atributos. ............................................. 27
Vista para la edicin de los breakpoints. ............................................................. 28
Vista que muestra la lista de breakpoints. .......................................................... 29
Vista que muestra el Stack. ................................................................................ 30
Vista para la edicin de proyectos. ..................................................................... 31
Vista de la interfaz para las respuestas .............................................................. 32
Captulo I. Generalidades
Captulo I. Generalidades
I.1 Los sistemas expertos
Dentro de las reas de la Inteligencia Artificial (IA) los Sistemas Expertos (SE) se
destacan por los xitos alcanzados, ellos son programas que resuelven problemas
de un dominio de aplicacin concreto de manera similar o aproximadamente similar a
como lo hara un experto humano en esa materia. Estos sistemas estn compuestos
por dos elementos bsicos:
1. La Base de Conocimiento (BC), que contiene el conocimiento sobre el problema.
2. La Mquina de Inferencia (MI), que implementa los mtodos para manipular dicho
conocimiento.
La segunda se encarga de inferir nuevos conocimientos, a travs de un determinado
mecanismo y utiliza con ese fin el contenido de la primera que expresa, en un
formalismo dado, el conocimiento acerca de un dominio especfico.
Podemos ver entonces al Sistema Experto como un modelo:
SE = BC + MI
La BC almacena el conocimiento en una determinada notacin, conocida como
Forma de Representacin del Conocimiento (FRC) que constituye el formalismo de
este modelo.
La MI, por su parte, implementa los Mtodos de Solucin del Problema (MSP).
Desde este punto de vista un SE es entonces:
SE= FRC + MSP
Captulo I. Generalidades
Captulo I. Generalidades
Captulo I. Generalidades
I.6 Desarrollo de un SE
Para desarrollar un SE es importante conocer los siguientes conceptos:
Ingeniera del Conocimiento: Es la disciplina relacionada con la forma en que se
organizan, construyen y verifican las BC de un SE.
Adquisicin del Conocimiento: Es el proceso de extraccin, codificacin y
verificacin del conocimiento de un experto humano. Si se usa Reglas de
Produccin como forma de representacin del conocimiento, la extraccin se
refiere a la formulacin de las reglas, la codificacin, a la escritura de las mismas
en una determinada sintaxis y la verificacin al refinamiento de la BC. La
adquisicin del conocimiento es conocida como el Cuello de Botella de las
aplicaciones de los S.E.
Ingeniero en Conocimiento (IC): Es la persona responsabilizada con desarrollar
las tareas de la ingeniera del conocimiento. Debe ser capaz de conocer y
comprender los SE, saber usar las herramientas para crear los mismos, ser un
buen programador en un lenguaje de IA y un hbil entrevistador.
Captulo I. Generalidades
Captulo I. Generalidades
Captulo I. Generalidades
10
end;
La certidumbre de que C sea menor o igual a 19 es 100
Para el operador (=).
Si la regla tiene implicaciones dbiles la certidumbre de la comparacin es el valor
que indique la implicacin dbil.
Ejemplo 1.7
rule 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 dbiles la certidumbre de la comparacin es el
valor de certidumbre que el atributo tenga. Ese valor pudo haber sido obtenido a
travs de la interfaz en el caso de que los atributos sean preguntables o puede
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 la certidumbre con que fue
probado C.
2. Para el clculo del FC en la premisa se usan:
Condiciones unidas por la conectiva AND
FC(A and B) = mn(FC(A), FC(B)).
Condiciones unidas por la conectiva OR
FC(A or B) = mx(FC(A), FC(B)).
Ejemplo 1.10
rule 1
if
(A = 10) and
(B > 76)
then
C := 19
end;
Captulo I. Generalidades
11
rule 2
if
(A = 10) or
(B > 76)
then
D := 'Si'
end;
El factor de la certidumbre se calcula como:
FC(Condicin) = mx(FC(A=10),FC(B>76))
3. Para el clculo del FC de la conclusin se usa:
If A then B cnf v
FC(B) = FC(A) * v
Ejemplo 1.12
rule 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 conclusin no contiene la especificacin de certidumbre (cnf) el valor es 100
Ejemplo 1.13
rule 2
if
C = 19
Then
D := 'Si'
// FC(D) = FC(C=19)
end;
4. Para el clculo del FC cuando varias reglas tienen la misma conclusin:
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.14
rule 1
if
A > 10 cnf 98
then
Captulo I. Generalidades
C := 19
end;
rule 2
if
D <= 19
then
C := 19 // La misma conclusin
end;
12
14
Barra de herramientas
La figura anterior muestra una vista general del sistema WUCShell (Shell de la
Universidad Central, versin sobre Windows), se destacan algunas de sus partes.
El Men de tareas permite acceder a diferentes facilidades del sistema y existen
dos formas de activar cada una de sus opciones:
1. Usando el ratn.
2. Usando la combinacin de teclas ALT + Letra Subrayada.
Ambas acciones provocan que se presente un men desplegable asociado a cada
una de las opciones del men de tareas; de esa forma se puede acceder a diferentes
comandos, que permiten realizar varias tareas dentro del sistema.
15
Opcin File
La opcin File se usa para abrir, guardar y cerrar proyectos. La siguiente figura nos
permite apreciar su aspecto con el men correspondiente desplegado.
Comandos
New
Open
Save
Save As
Save All
Close
Close All
Exit
Descripcin
.
Crea una nueva base de conocimiento.
Usa una caja de dilogo para cargar una base de conocimiento
dada.
Guarda la base de conocimiento.
Guarda la base de conocimiento actual usando un nuevo
nombre.
Guarda todos los proyectos abiertos.
Cierra la base de conocimiento actual.
Cierra todas las bases de conocimiento.
Cierra los proyectos y sale del sistema.
Save Project
Close All
16
Ntese que la vista general del sistema muestra una de las posibles
configuraciones ya que como se dijo anteriormente la Barra de herramientas se
puede configurar.
Captulo II. Manual del usuario
17
Opcin Edit
La opcin Edit se utiliza para manipular textos en la edicin de proyectos.
Comandos
Undo
Redo
Cut
Copy
Paste
Delete
Select All
Descripcin
.
Deshace la ltima accin o el ltimo borrado.
Hace lo contrario de el ltimo undo.
Retira de la ventana de edicin el texto marcado y lo enva al
porta papeles o clipboard.
Pone una copia del texto seleccionado en el porta papeles
dejando el texto marcado en su lugar original.
Copia el contenido del porta papeles en la posicin del cursor.
Borra el texto seleccionado.
Selecciona todo el texto contenido en la ventana de edicin.
Undo
Cut
Redo
Paste
Copy
18
Opcin Search
La opcin Search se utiliza para localizar textos y smbolos dentro del archivo en
edicin, actualmente dispone de un solo comando .
Comando
Find
Descripcin
.
Busca la primera aparicin del texto especificado dentro de
la base de conocimiento en edicin.
19
Opcin View
Se utiliza para mostrar las diferentes vistas del ambiente del WUCShell.
Comandos
Call Infer
Attributes
Breakpoints
SpeedBar
Descripcin
.
Muestra una ventana donde se coloca el atributo que se
est infiriendo y la regla que se est usando.
Muestra las propiedades de los atributos durante el
proceso de inferencia.
Muestra, en una caja de dilogo, la lista de los
Breakpoints.
Permite configurar la Barra de herramienta.
Attributes
Call Infer
Breakpoints
20
Opcin Project
La opcin Project se usa para compilar una base de conocimiento que debe estar
abierta.
Comandos
Compile
Syntax Check
Information
Descripcin
Si la base de conocimiento actual ha sido
Modificada, la compila.
Chequea sintcticamente la base de
conocimiento actual, pero no genera cdigo.
Muestra informacin acerca del proyecto y el
estado actual despus de su compilacin.
Compile
Syntax Check
Information
21
Opcin Run
La opcin Run permite la ejecucin de la inferencia y ayuda a depurar los
programas.
Comandos
Run
Step Over
Trace Into
Run To Cursor
Descripcin
.
Compila la base de conocimiento
(si ha sido modificada) y ejecuta la aplicacin.
Ejecuta un proyecto paso a paso.
Ejecuta un proyecto paso a paso.
Ejecuta el proyecto hasta la posicin del
cursor, para continuar de ah en adelante
se tiene que utilizar unas de las dos
opciones anteriores.
Cuando se est ejecutando un programa paso
a paso, posiciona el cursor en la lnea de
ejecucin dentro de la ventana de edicin.
Detiene temporalmente la ejecucin de la
aplicacin.
Termina la inferencia.
Abre una caja de dilogo para crear o modificar puntos
de ruptura ("breakpoints").
Run to Cursor
Pause
Trace Over
Show Execute Point
Add BreakPoint
22
Opcin Tools
Tools se utiliza actualmente slo para permitir especificar que se compile la base de
conocimiento con informacin simblica, de manera que sirva de entrada para el
sistema TeachShell. A partir de este opcin se podrn configurar, en versiones
posteriores, el aspecto que se desea para cada una de las partes del sistema.
Comandos
Environment Options
Descripcin
.
Marque la opcin "compile with debug information"
en la caja de dilogo que acompaa a este
comando"
Environment Option
Opcin Help
Help ofrece una amplia ayuda acerca del uso del sistema.
Comandos
Contents
Descripcin
.
Mantiene una "gua" de los ltimos accesos a la ayuda del
sistema.
Programmers Guid Es la ayuda para los Ingenieros de Conocimiento, 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 versin del sistema y datos acerca del equipo
que concibi y program el sistema.
23
24
Entradas
File Name
Files of type
Look in
Descripcin
.
Escriba el nombre del archivo que desee cargar (la
extensin kbs es para archivos de base de conocimiento y
la extensin kbo es para archivos que han sido
previamente compilados).
Presenta una lista desplegable para seleccionar el tipo de
Archivo (kbs o kbo).
Permite especificar un camino o ruta de acceso hacia el
archivo que se desea cargar.
Entradas
File Name
Save as type
Save in
Descripcin
.
Permite escribir el nombre del archivo que se desea
guardar.
Presenta una lista desplegable para seleccionar el formato
del archivo que se desea guardar.
Permite especificar la localizacin donde se desea
guardar el archivo
25
26
II.3 Vistas
Vista de las propiedades de los atributos.
Esta vista, que slo est disponible durante el proceso de inferencia, permite
visualizar el nombre y el valor de los atributos de la base de conocimiento que se
est usando.
Forma de acceso:
1. Usando el comando Attributes de la opcin View en el Men de tareas.
2. Usando el icon correspondiente dentro de la opcin VIEW en la Barra de
herramientas.
27
Nivel de inferencia
Para acceder a ella hay que activar la vista anterior y hacer doble click sobre el
nombre del atributo que se desea editar.
28
Condicin de parada
Veces a ejecutar
Forma de acceso:
1. Usando el comando Add Breakpoints de la opcin Run en el Men de tareas.
2. Usando el icon correspondiente dentro de la opcin Run en la Barra de
herramientas.
29
Breakpoint deshabilitado
Forma de acceso:
1. Usando el comando Breakpoints de la opcin View en el Men de tareas.
2. Usando el icon correspondiente dentro de la opcin View en la Barra de
herramientas.
Al pulsar doble click con el ratn sobre algn breakpoint de la lista se presenta el
editor del sistema con el cursor sobre la lnea donde aparece la sentencia dada.
30
Atributos infiriendose
Reglas pendientes
Forma de acceso:
3. Usando el comando Call Infer de la opcin View en el Men de tareas.
4. Usando el icon correspondiente dentro de la opcin View en la Barra de
herramientas.
Doble click sobre cualquier atributo, activa la vista del editor y sita el cursor en el
lugar desde donde se orden la inferencia del atributo.
Doble click sobre la regla, activa la vista del editor y sita el cursor sobre dicha regla.
31
Click derecho sobre el editor activa un men Pop up que permite cerrar el proyecto y
ubicar breakpoints entre otras opciones.
32
Texto de la pregunta
Certidumbre de la respuesta
33
Asks
End
Rules
.
De acuerdo a la sintaxis anterior, una base de conocimiento est compuesta por
tres mdulos opcionales que deben escribirse 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 definicin comienza con la palabra reservada Rules.
Adicionalmente existe un cuarto mdulo obligatorio y conocido como Bloque de
acciones, que se define con la palabra reservada Actions.
El fin de un bloque se especifica, implcitamente, con el inicio de otro, excepto el
bloque de acciones que finaliza con la palabra reservada End seguida por un
punto lo que constituye, adems, el fin de la base de conocimiento.
Ejemplo 3.1
External
Familia
...
Asks
Ask Patas: 'Cuntos pares de patas tiene el animal?'
...
Rules
Rule 1
If Familia = 'Artrpodos' and
Patas
= 6
Then
SubFamilia := Insectos
End;
...
Actions
Find SubFamilia
...
End.
34
,
WUCShell ejecuta sentencias, los atributos externos estn ligados a dos de ellas:
SaveFact y Chain de la siguiente forma:
La sentencia Savefact permite guardar, temporalmente, los valores de los
atributos inferidos, de manera que puedan ser utilizados, como hechos, en
otras bases de conocimiento.
La sentencia Chain permite cambiar el proceso de inferencia de una base de
conocimiento hacia otra.
La forma de utilizacin de estas facilidades es la siguiente:
Supongamos que se tiene un sistema experto que utiliza dos bases de
conocimiento B1 y B2. Algunos de los atributos inferidos durante la utilizacin de
la base B1 van ser utilizados en la base B2. Los pasos a seguir son los
siguientes:
1. En B1 utilizar la sentencia SaveFact para preservar los valores de los
atributos inferidos que se utilizarn en B2. Esa accin hay que realizarla antes
de ejecutar la sentencia Chain,
2. En B1 poner la sentencia (Chain B2.KBO) en el lugar apropiado para
cambiar la inferencia de B1 a B2 en el momento deseado.
3. En B2 declarar externos los mismos atributos.
Obsrvese que la sentencia Chain utiliza el archivo B2.KBO, por lo que el archivo
B2.KBS debe haberse compilado previamente.
Ejemplo 3.2
Archivo b1.kbs
Asks
Ask Exoesqueleto: 'El animal tiene un esqueleto externo de quitina?'
Ask Patas: 'Sus patas son articuladas?'
Rules
Rule 1
If Exoesqueleto = 'Si' and
Patas = 'Si'
Then
Familia := 'Artrpodos'
End;
Actions
Find Familia
Savefact Familia
Chain 'B2.KBO'
End.
Archivo b2.kbs
External
Familia
Asks
Ask Patas: 'Cuntos pares de patas tiene el animal?'
Rules
Rule 1
If Familia = 'Artrpodos' and
Patas
= 6
Then
SubFamilia := Insectos
End;
Actions
Find SubFamilia
End.
35
36
Definicin de MS ASK
37
Definicin de regla
;
Ejemplo 3.4
Rules
Rule 22
If (Familia = 'Poliuretano') And
(Rf
= 0.58)
And
(Color
= 'Amarillo')
Then
Composicion := '3'
Actions
Display 'Est formado por 4,4 diaminodifenilmetano.'
End;
Rule 23
If (Familia = 'Poliuretano') And
(Rf
= 0.53)
And
(Color
= 'Amarillo')
Then
Composicion := '4'
Actions
Display 'Est formado por 4,4 diamino di-o-tolilmetano.'
End;
38
Definicin de Acciones
39
Nombre de Atributo
Conjunto de Seleccin
Pregunta
Definicin de explicacin
Dominio de definicin
Pregunta
Cadena de Caracteres
Definicin de imagen
Texto de la pregunta
Certidumbre de la respuesta
Editor de respuesta
40
Cada meta sentencia Ask define una pregunta para la interfaz del sistema experto
y, como puede inferirse a partir de la sintaxis anterior, puede presentarse en dos
formas:
1. Preguntas de cadena de caracteres (vista anterior).
2. Preguntas con imgenes.
Definicin de imagen
Se utiliza la palabra reservada Image para especificar el camino de bsqueda de
una archivo (incluye el archivo) que contiene la imagen que se desea mostrar
como parte de la interfaz del usuario.
Definicin de imagen
IMAGE
Camino de bsqueda
Se puede utilizar esta facilidad para mostrar preguntas con imgenes , elementos
de un dominio con imgenes asociadas, o para mostrar una imagen mediante la
sentencia Display.
Conjunto de seleccin
El Conjunto de seleccin se define mediante la palabra reservada Choice y
especifica una lista de literales o atributos separados por coma, como posibles
respuestas a las preguntas.
Conjunto de seleccin
CHOICE
Literal
Atributo
,
Los literales pueden ser cualquiera de los tipos definidos por el sistema (string,
real, integer). Los atributos preguntables que forman parte del Conjunto de
seleccin tienen que haber sido previamente definidos en la base de
conocimiento de lo contrario se genera un error de compilacin debido a que
dichos atributos se tienen que haber convertido previamente en hechos (tienen
un valor asignado) porque el compilador del sistema es de una sola pasada.
Ejemplo 3.7. Pregunta con imagen y conjunto de seleccin.
Ask Mancha1: Image(Mancha.bmp')
Choice 'Caderas', 'Murcilago'
41
Dominio de definicin
La palabra reservada Domain define el dominio de respuesta.
Dominio de definicin
DOMAIN
Literal
Definicin de imagen
Literal
,
Los literales pueden ser cualquiera de los tipos definidos por el sistema string,
real, integer.
Los elementos del dominio que tienen una interfaz grfica mediante la definicin
de una imagen toman el valor literal definido despus del operador Igual (=). De
no existir ste, el valor que toma el elemento del dominio es el ndice que ocupa
dentro de la lista (comenzando por cero).
Tanto en tiempo de compilacin como en tiempo de ejecucin el sistema
garantiza que los atributos definidos por domain slo puedan tomar valor dentro
del dominio.
42
Definicin de explicacin
La palabra reservada Because permite asociar a cada pregunta una explicacin
que faculta al sistema experto para justificarlas cuando el usuario lo solicite.
Un texto definido como because de una pregunta se mostrar como parte de la
interfaz cuando se oprima el botn de <<Because>>.
Definicin de explicacin
BECAUSE
Certidumbre de la respuesta
43
Se pueden definir preguntas sin conjunto de seleccin ni dominio de definicin
asociado, para este tipo de preguntas y para las de conjunto de seleccin
(definidas por choice) se siguen las siguientes reglas:
El editor de respuesta capta el conjunto de caracteres editados por el usuario
como respuesta a una pregunta. La respuesta se asigna al atributo que gener la
pregunta pero antes se convierte a uno de los siguientes tipo de literales: string,
integer o real, segn las siguientes reglas:
1. Si la respuesta est compuesta solo por nmeros en el rango que define el
integer entonces la respuesta es un nmero entero (tipo integer).
2. Si la respuesta est compuesta por nmeros y un punto (.) en el formato y
rango que define un real entonces la respuesta es un nmero real (tipo real).
3. Si la respuesta no cumple ninguna de las reglas anteriores entonces la
respuesta es un cadena de caracteres (tipo string).
Los atributos que no estn definidos previamente como preguntables ni externos
se consideran deducibles y en tiempo de ejecucin se tratan de inferir mediante
un encadenamiento hacia atrs teniendo en cuenta solo los atributos que son
hechos.
A todo elemento del dominio que no cuente con una imagen asociada, se le
asignar una imagen por defecto.
Captulo III. Manual del programador
'Amarillo Pardo',
'Amarillo',
'Rojo Carmn',
'Azul Violeta'
Texto de la pregunta
Certidumbre de la respuesta
44
Texto de la pregunta
Certidumbre de la respuesta
Las imgenes mostradas por las preguntas visuales y por las sentencia Display
se enmarcarn dentro del espacio que la interfaz le asigne a las imgenes
reduciendo su tamao proporcionalmente, estas imgenes reducidas pueden ser
vistas en toda su dimensin mediante un doble click sobre la imagen.
Ejemplo 3.11 Resumen de ASK con dominio
Asks
Ask Color: 'Cul es el color de la mancha?'
Domain
Image('AP.bmp') = 'Amarillo Pardo',
Image('A.bmp') = 'Amarillo',
Image('RC.bmp') = 'Rojo Carmn',
Image('Az.bmp') = 'Azul Violeta'
Ask IndexColor: 'Cual es el color de la mancha ?'
Domain
Image('AP.bmp'), // Toma valor 0
Image('A.bmp'), // Toma valor 1
Image('RC.bmp'), // Toma valor 2
Image('Az.bmp') // Toma valor 3
Ask Country: 'Entre el pas 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;
45
Ask
Cnf
Ejemplo 3.12
Asks
Ask A: 'Qu valor le asigna a A?'
Because 'Me es imprescindible su valor'
Ask B : 'Cunto vale B?'
Because 'Es uno de los componentes de la frmula'
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 c
end.
Ejemplo 3.13
rules
rule 1
if Mancha1 = 'Caderas'
then Reaccion := 'Sexual'
actions
Display 'Imagen mas similar'
Display Image('C:\UCLV\MFC\ManchaSex.bmp')
end;
46
47
48
Ampliacin de la Imagen
49
Definicin de literal
El sistema es capaz de manipular literales como:
Cadena de caracteres: de cualquier tamao encerrado entre comillas.
Enteros: Secuencia de dgitos en el rango de -32768..32767.
Reales: Secuencia de dgitos permitiendo la inclusin de punto flotante en el
rango 2.9x10-39..1.7x1038
Definicin de literal
Cadena de caracteres
Entero
Real
Ejemplo 3.14
'Esto es un literal de tipo cadena de caracteres '
'Los cambios de lnea se definen como un literal del tipo cadena de
caracteres \n'
-156
// literal entero
54
// literal entero
32767
// literal entero
-45.3
// literal real
0.67
// literal real
78.078
// literal real
50
III.3 Sentencias
Las acciones que se pueden realizar sobre los elementos de la base de
conocimiento estn definidos por un conjunto de sentencias que especifican
operaciones sobre los atributos o la base de conocimiento en sentido general.
Las sentencias pueden escribirse dentro de los bloques de acciones solamente y
son :
Display, Find, Reset, Is, Chain, Repeat y SaveFact
Sentencia Display
La sentencia Display permite especificar una lista de elementos visibles que
sern mostrados en pantalla en tiempo de ejecucin.
Sentencia Display
DISPLAY
Imagen
Elemento visible
Ejemplo 3.15
Asks
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 : ',M
End.
51
52
Sentencia Is
La declaracin de hechos se define con la palabra reservada IS. Esta es la nica
forma directa de convertir un atributo, de cualquier clase, en un hecho.
Sentencia Is
Atributo
IS
Literal
Atributo
53
Sentencia Repeat
Mediante la sentencia Repeat es posible definir un conjunto de acciones cclicas
que sern llevadas a cabo por cualquiera de las sentencias permisibles. El fin del
ciclo se especifica con la palabra reservada UntilKnown.
La condicin de terminacin del ciclo se alcanza cuando el atributo que sigue al
UntilKnown recibe un valor diferente de desconocido (definido por la constante
Unknown).
El atributo que se encuentra como condicin de parada no se inferir en el
momento de la evaluacin solo se verificar si su valor es conocido o no.
Sentencia Repeat
REPEAT
Ejemplo 3.17
Actions
Repeat
Reset all
Find Familia
Find Subfamilia
Find Composicion
Find Resumen
Find Finalizar
Untilknown Finalizar
End.
Sentencia
UNTILKNOWN
Atributo
54
Sentencia Find
La sentencia Find permite iniciar el proceso de inferencia del atributo
especificado.
Sentencia Find
FIND
Atributo
Ejemplo 3.18
Actions
Repeat
Reset all
Find Familia
Find Subfamilia
Find Composicion
Find Resumen
Find Finalizar
Untilknown Finalizar
End.
55
Sentencia Reset
La sentencia Reset especifica una lista de atributos separados por coma a los
que se les asignar el valor de desconocido (Unknown) cuando esta accin sea
ejecutada.
Sentencia Reset
RESET
ALL
Atributo
Por defecto todos los atributos tienen asignado el valor Unknown. Si despus de
una inferencia se desea asignar ese valor a todos los atributos de la base de
conocimiento se debe utilizar la clusula All como parmetro de la accin Reset.
Ejemplo 3.20
Rules
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 Finalizar
End.
56
Sentencia SaveFact
La sentencia SaveFact permite guardar los valores asociados a los atributos de la
base de conocimiento activa (base origen) con el objetivo de hacer una enlace
con otra base de conocimiento (base destino). Los atributos que se guarden con
esta sentencia, debern ser declarados externos en la base de conocimiento
destino .
Sentencia SaveFact
SAVEFACT
ALL
Atributo
57
Sentencia Chain
La sentencia Chain especifica el camino hacia una base de conocimiento destino
con la que se va a enlazar la base de conocimiento origen.
La base de conocimiento destino tiene que haber sido previamente compilada
(.KBO).
Sentencia Chain
Chain
Camino
58
Ejemplo 3.21
Archivo b1.kbs
Asks
Ask Exoesqueleto: 'El animal tiene un esqueleto externo de quitina?'
Ask Patas: 'Sus patas son articuladas?'
Rules
Rule 1
If Exoesqueleto = 'Si' and
Patas = 'Si'
Then
Familia := 'Artrpodos'
End;
Actions
Find Familia
Savefact Familia
Chain 'B2.KBO'
End.
Archivo b2.kbs
External
Familia
Asks
Ask Patas: 'Cuntos pares de patas tiene el animal?'
Rules
Rule 1
If Familia = 'Artrpodos' and
Patas
= 6
Then
SubFamilia := Insectos
End;
Actions
Find SubFamilia
End.
59
Rule
If
Entero
Condicin
Then
Conclusin
End
Bloque de Acciones
60
Ejemplo 3.22
rules
rule 1
if (ReaccionA = 'Neutro o dbilmente cido') and
(ReaccionB = 'Es soluble a un 20% y precipita al enfriar') and
(ReaccionC = 'Se disuelve con fuerte desprendimiento de CO2')
then
TipoPlastico := 'Poliuretano'
actions
Display
'El material a clasificar es un Poliuretano. /n',
'Los poliuretanos son los productos de poliadicin de ',
'isocianatos polifuncionales con polialcoholes, polieteres',
'o polieteres, conteniendo grupos hidroxilos. Si se pasan ',
'los vapores de la pirlisis del plstico 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 identificacin del tipo de Poliuretano.'
end;
rule 2
if Reconsulta = 'Si'
then
Finalizar := 'No'
actions
Reset Finalizar
end;
rule 3
if Reconsulta = 'No'
then
Finalizar := 'Si'
actions
Display 'Gracias por su consulta'
end;
61
Definicin de Conclusin
La definicin de Conclusin especifica el valor que los atributos deducibles
obtendrn cuando sta sea ejecutada por la Mquina de Inferencia.
Definicin de Conclusin
Atributo
:=
Literal
Atributo
Cnf
Real
62
Definicin de Condicin
La definicin de condicin permite expresar las premisas necesarias para que
una regla sea verdadera, lo que significa que se efecten las acciones que la
regla especifica y se asignen a los atributos de la conclusin los valores
correspondientes.
Las condiciones estn definidas segn el formato estndar ANSII, con los niveles
de prioridad requeridos.
Operadores Condicionales
Operador Operacin Prioridad
Not
negacin
2da
And
and lgico 3ra
Or
or lgico
4ta
Relacin
unario
binario
binario
Ejemplo
.
not(A = B), not(Exclude B)
(A = B) and (B = C) and (C = D)
(A = B) or (B = C) or (C = D)
63
Operadores Relacionales
Operador Operacin
=
Igual
<>
Diferente
<
Menor que
>
Mayor que
<=
Menor o igual que
>=
Mayor o igual que
Exclude Control de inferencia
Prioridad
1ra
1ra
1ra
1ra
1ra
1ra
1ra
Relacin
binaria
binaria
binaria
binaria
binaria
binaria
unaria
Ejemplo
A=5, A=string, A=5.3
A<>5, <>string,A<>5.3
A<5, A<string, A<5.3
A>5, A>string ,A>5.3
A<=5,A<=string,A<=5.3
A>=5,A>=string,A>=5.3
not(Exclude B)
exclude b
Cnf
EXCLUDE
Real
Atributo
Definicin de Relacin
Expresin
Expresin
<
UNKNOWN
>
<=
>=
<>
Los operadores relacionales pueden ser definidos sobre elementos del mismo tipo
o sobre los tipos compatibles (Entero versus real).
64
Mediante la definicin de la palabra reservada Unknown se pueden realizar
comparaciones para determinar si un atributo dado ha sido inferido (si ya tiene un
valor se dice que es un hecho). La constante Unknown solo puede usarse con los
operadores relacionales, tratar de asignarla a un atributo mediante la sentencia de
conclusin (:=) o de hecho (is) provocar un error de compilacin ya que la nica
forma de asignar esta constante a un atributo es usando la sentencia Reset.
Los atributos ligados con los operadores relacionales se inducen en el momento
de la evaluacin (si todava no se han convertido en hechos) o sea la inclusin de
un atributo en la condicin de una regla puede provocar un proceso de inferencia.
Bajo estas circunstancias el ejemplo siguiente provocara una inferencia cclica
(detectada en tiempo de ejecucin).
Ejemplo 3.24
Captulo III. Manual del programador
rules
rule 1
if (A = Unknown)
then A := 'Error de ejecucin'
end;
Actions
Find A
End.
65
1. El sistema asigna un valor al atributo Tipo por cualquiera de las dos
primeras reglas (solo una se cumplir ya que son excluyentes).
2. Posteriormente trata de inferir la tercera, como en ese caso la regla no hace
uso de exclude, pasa a probar el atributo Molish, supongamos que ste toma
el valor 'SI'.
3. Ahora el atributo Tipo toma un nuevo valor, lo cual es errneo desde el punto
de vista de la concepcin de este sistema porque un plstico solo puede ser
de un tipo dado.
En conclusin de la forma en que est escrita la regla 3 solo ser tomada en
cuenta cuando el atributo Tipo sea desconocido (tiene como valor asignado la
constante Unknown)
Captulo III. Manual del programador
Ejemplo 3.25
rules
rule 1
if (Reaccion_a = 'Dbilmente 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 dbilmente cido')
and
(Reaccion_b = 'Es soluble como mximo 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;
66
Ejemplo 3.27
rules
rule 1
if Not (Exclude SubTipo) and
(SubTipo = 'Resina')
then Composicin := 10
end;
Si la primera condicin de la regla se cumple, significa que el atributo SubTipo ya
tiene un valor o sea ya es un hecho.
El bloque de certidumbre definido por la palabra reservada Cnf brinda la
posibilidad de definir la certidumbre con la cual se probar la condicin.
Ejemplo 3.28
rules
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;
Definicin de Expresin
La definicin de expresin permite conformar las ms complejas relaciones entre
operandos aritmticos teniendo en cuenta su nivel de prioridad y la asociacin de
los operadores de igual prioridad.
Operadores Aritmticos
Operador Operacin
Prioridad Relacin Compatibilidad
.
ta
*
Multiplicacin
5
binaria
Operandos numricos
/
Divisin
5ta
binaria
Operandos numricos
ta
Div
Divisin Entera
5
binaria
Operandos enteros
%
Resto de la divisin 5ta
binaria
Operandos enteros
ta
+
Adicin
6
binaria
Operandos numricos
+
Concatenacin
6ta
binaria
Operandos de cadena
ta
Sustraccin
6
binaria
Operandos numricos
Signo
6ta
unaria
Operandos numricos
Existen tres reglas bsicas 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 parntesis tienen la mxima prioridad y se ejecutarn
primero que cualquier operador simple.
El compilador, en tiempo de ejecucin, reduce los operadores eliminando los
clculos innecesarios.
67
Definicin de Funciones
El sistema ofrece un conjunto de sentencia para la ejecucin de funciones
matemticas de gran uso.
Funciones Matemticas
Funcin Operacin
COS
Coseno
ACOS
Arco Coseno
COSH
Coseno Hiperblico
SIN
Seno
ASIN
Arco Seno
SINH
Seno Hiperblico
TAN
Tangente
ATAN
Arco Tangente
TANH
Tangente Hiperblica
LN
Logaritmo Neperiano
LOG
Logaritmo Natural
SQR
Potencia de 2
SQRT
Raz Cuadrada
EXP
Exponencial
ABS
Mdulo(Valor Absoluto)
Entrada
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica
Salida
Real (Radianes)
Real (Radianes)
Real (Radianes)
Real (Radianes)
Real (Radianes)
Real (Radianes)
Real (Radianes)
Real (Radianes)
Real (Radianes)
Numrica
Numrica
Numrica
Numrica
Numrica
Numrica