Vous êtes sur la page 1sur 11

ExpertLab -- Ejemplo de Utilización Page 1 of 11

Manual de Usuario
ExpertLab
ExpertLab es un motor de inferencia diseñado para la enseñanza asistida por ordenador en
Inteligencia Artificial, y más concretamente, en el campo de los sistemas expertos. Sus características
son: soporte de lógica proposicional, explicación durante la inferencia, ventana final de recogida de
información, capacidad de respuesta a explicación (regla y camino recorrido) y encadenamiento hacia
adelante y hacia atrás.

Introducción
Ficheros utilizados por ExpertLab
Inserción de Hechos y Reglas
Opciones
Modo de explicación
Encadenamiento hacia adelante
Encadenamiento hacia atrás
Ejemplo sencillo

14/03/2000 Manual de Usuario de ExpertLab Sistemas


Expertos

Ficheros utilizados por ExpertLab

ExpertLab utiliza ficheros de extensión *.bc, que no son más que ficheros de texto, con un formato
sencillo:

; (c) Fichero generado por ExpertLab


; Los comentarios pueden ser incluidos siempre
; que se indique un punto y coma al comienzo de la línea

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 2 of 11

; Las siguientes partes no son obligatorias


; Título del Sistema Experto. Debe terminar con un punto.
; 'Cabecera' no es parte del título
\\\ Cabecera PhD Tesis.
; Objetivo que se intentará cumplir al realizar
; encadenamiento hacia atrás.
\\\ Objetivo Tesis.

; Hechos, separados por un salto de línea


\\\ Hechos
A

; La parte de reglas es obligatoria siempre, en cualquier


; fichero
; Las reglas van separadas por un salto de línea

\\\ Reglas
C :- A,B ; es lo mismo que if (a and b) then c

Los ficheros .bc pueden ser creados o modificados libremente en un procesador de textos que utilice
texto puro, sin códigos, como el bloc de notas de Windows o el Edit de MS-DOS (Microsoft(c)).

Introducción
La estructura de ExpertLab sigue el siguiente esquema:

De forma que la base de reglas y hechos es completamente independiente del programa en sí, que está
constituido por una serie de interfaces de usuario, un motor de inferencia y una memoria activa asociada
a éste.

ExpertLab, básicamente, acepta como entrada hechos y reglas en el siguiente formato:

Hechos:

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 3 of 11

llueve
estoy_en_la_calle

Reglas:

me_mojo :- llueve, estoy_en_la_calle

El formato lógico de reglas es equivalente a if (llueve and estoy_en_la_calle) then me_mojo.

consecuente :- precedente, precedente, ..., precedente

La visualización del trabajo con ExpertLab se realiza básicamente en base a tres ventanas dentro del
propio programa, Hechos, Reglas, e inferencia.

Una vez introducidas las entradas, es posible realizar inferencias en esta base de conocimiento,
encadenando hacia adelante o hacia atrás.

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 4 of 11

El encadenamiento hacia adelante es un proceso de inferencia dirigido por los datos, de forma que en
ExpertLab, a partir de una base de conocimiento como lo anterior, intenta deducir todo lo posible con
los hechos que posee, intentando emparejarlos con las reglas.

En este caso, se deduciría "me_mojo", ya que tenemos los dos hechos necesarios para disparar la
regla.

En el caso del encadenamiento hacia atrás, necesitamos un objetivo que el sistema pueda intentar
deducir. En el ejemplo anterior, podría preguntarse por "me_mojo". Es decir, cuando se pregunte al
usuario, al invocar el encadenamiento hacia atrás, por el objetivo, se debe introduir "me_mojo" (el texto
se puede copiar y pegar). Entonces el sistema, recursivamente hacia atrás, va buscando sucesivamente
los objetivos. Por ejemplo, al introducirle el objetivo mencionado, el sistema encuentra la regla
me_mojo :- llueve, estoy_en_la_calle, y entonces los objetivos a probar (mediante otras reglas u
otros hechos) pasa a ser llueve y estoy_en_la_calle.

Inserción de Hechos y Reglas

La inserción de hechos y reglas se realiza mediante las opciones correspondientes del menú "Insertar",
o bien pulsando las teclas CTRL+INS e INS, respectivamente.

 Para introducir el hecho 'llueve', puede pulsarse CTRL+INS o bien elegir la opción "Insertar-
>Hechos" del menú principal.

En el cuadro de diálogo, introducir "llueve" y pulsar enter. El hecho pasa a formar parte de la base de
hechos del programa.

 Para introducir una regla, seleccionar la opción "Insertar->Regla" en el menú principal, o bien pulsar
la tecla INS. En el cuadro de diálogo, introducir la regla a agregar a la base de reglas de la base de
conocimiento.

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 5 of 11

El formato a seguir, debe ser:

consecuente :- precedente, precedente, precedente, ..., precedente

Donde consecuente es el hecho a deducir si los precedentes están presentes.

Por ejemplo:

a :- b,c,d

Confirmamos 'a' (es decir, lo agregamos a la base de hechos) si podemos confirmar (si están en la
base de hechos) b, c, y d. En la notación de regla habitual, if(b and c and d) then a.

NOTA: Tanto en la introducción de hechos y de reglas, son indiferentes las mayúsculas y las
minúsculas.

Modo de explicación
ExpertLab guarda las preguntas y respuestas del usuario en una ventana del sistema llamada
"inferencia", y que puede ser recuperada después de cada uno de los encadenamientos.

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 6 of 11

Además, en el modo de explicación (Opciones->Opciones->Modo Explicación) o bien (Opciones-


>Modo Educativo), el programa indica paso a paso el objetivo que tiene planteado en ese momento, la
regla que está explorando, y las reglas que ha seguido para llegar a esa regla que está explorando y que
presumiblemente le permitirá condirmar (o descartar el objetivo).

Por otra parte, cada vez que ExpertLab realiza una pregunta - debido a que un hecho no reside en la
base de hechos y, que no es existe ninguna regla que ejecutándola permita deducir ese hecho -, permite,
pulsando en el botón de explicación, mostrar la regla que motiva esa pregunta, y pulsando el botón de
explicación una vez más. ver el camino recorrido para obtener esa regla.

Opciones
La opción del menú principal 'Opciones->Opciones' despliega la siguiente ventana.

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 7 of 11

 Activación de reglas según FIFO: Las reglas, al ser activadas, durante el encadenamiento hacia
atrás, se almacenan en el mismo orden en el que se encuentran al explorar la base de
conocimiento. El orden en el que se almacenen dicta el orden en el que se explorarán. Si se
desmarca esta opción, las reglas se ordenan según el menor número de precedentes, lo cuál
implica un menor número de hechos a demostrar, en principio, aunque puede por supuesto que
ésto no sea así (puede existir una regla con más precedentes que ninguna otra de las activadas,
para la cuál todos los precedentes residen ya en la base de hechos).
 Explicación durante el proceso inferencial: Si esta opción está activada, ExpertLab explica lo
que va haciendo durante el encadenamiento hacia atrás.
 Utilización de factores de certidumbre: A pesar de que esta opción está activada, no es posible
trabajar todavía con factores de certidumbre en ExpertLab.
 Ignorar 'Objetivo' en el fichero del SE: El sistema siempre preguntará por el objetivo a buscar
durante el encadenamiento hacia atrás, a pesar de que exista ya un objetivo definido en el campo
'Objetivo' del fichero .bc que aloja la base de conocimiento actual.

 Formato de reglas: Permite dos opciones: lógica o programática Un ejemplo equivalente es:

Programático if (A and B) then C


Lógico C :- A, B

 Copia de Seguridad: El programa realiza una copia de seguridad de la base de conocimiento


que en ese momento está corriendo el programa, cada vez que se sale del programa, o cada vez
que se realiza una inferencia.

La opción 'Opciones->Información del Sistema Experto' permite especificar el título del sistema
experto que en ese momento se está corriendo, a la vez que se puede especificar cual va a ser el objetivo
a verificar en el encadenamiento hacia atrás, de forma que no será necesaria la introducción del hecho
objetivo.

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 8 of 11

La opción 'Opciones->Modo Educativo', engloba por ejemplo Ativación de reglas FIFO, visualización
programática de las mismas y explicación durante la inferencia. La opción 'Opciones->Modo Eficiente'
elimina la activación según FIFO y la explicación.

Encadenamiento hacia adelante

El encadenamiento hacia adelante es una de las dos formas de inferencia incluidas en ExpertLab. La
opción, que sólo está disponible cuando existe por lo menos una regla, se sitúa desde el menú principal
'Operar->Encadenamiento hacia adelante', o desde la combinación de teclas ALT+R. También es posible
pulsar el botón rápido situado en la barra de botones de encadenamiento hacia adelante.

El encadenamiento hacia adelante es un proceso inferencial guiado por los datos, de forma que se
busca, según los datos que se poseen - en este caso, los hechos -, activar las reglas que emparejen con
esos hechos, y posteriormente ejecutarlas. En ExpertLab, este proceso continúa, recorriendo toda la base
de reglas en cada iteración, hasta que en una de estas iteraciones no se produzca ninguna ejecución. En
ese momento, el encadenamiento hacia adelante se para. Obsérvese que este comportamiento es bastante
costoso, a pesar de que como ventaja ofrece la ventaja de generar toda la posible información que ofrece
la situación actual, sea ésta relevante o no.

Reglas (formato lógico y programático)

Número de regla Lógico Programático


1 a :- b if (b) then a
2 b :- c if (c) then b
3 c :- d if (d) then c

Hechos

Encadenamiento hacia adelante

El hecho del que disponemos es d. Se recorre la base de reglas para saber cuáles de ellas emparejan
con este hecho, y se activan. La única regla que se activa tras este proceso es la tercera, ya que su único
precedente es d, que es el hecho del que disponemos. La regla se ejecuta, y añadimos c a la base de
hechos. Con esta situación, la siguiente regla activa es la segunda (no es posible ejecutar una regla más
de una vez), y al ejecutarla, obtenemos b. A continuación, se ejecuta la primera regla, con lo cuál
obtenemos a.

La base de hechos pasa a estar formada por


bh = <d,c,b,a>

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 9 of 11

Encadenamiento hacia atrás


El encadenamiento hacia atrás es el proceso inferencial más complejo del que dispone ExpertLab.
Este encadenamiento, es, como ya se ha dicho, un proceso inferencial, dirigido por los objetivos.

Por tanto, se debe interrogar al sistema sobre un objetivo en concreto, y el sistema tratará de verificar
ese objetivo, añadiendo durante la inferencia sólo aquella información relevante para la verificación.

Este encadenamento está disponible a partir de la introducción de la primera regla, bien en la opción
'Operar->Encadenamiento hacia atrás', bien pulsando CTRL+R, bien pulsando el botón de la barra de
herramientas de encadenamiento hacia atrás.

El encadenamiento hacia atrás se ve afectado por algunas opciones configurables por el usuario. Por
ejemplo, es posible disponer que el sistema explique lo que va realizando, según encadena hacia atrás,
paso a paso. Se recomienda al usuario la utilización de esta función de explicación, sobre un ejemplo
sencillo, para la mejor comprensión de como funciona.

Supongamos el siguiente ejemplo:

Reglas (formato lógico y programático)

Número de regla Lógico Programático


1 a :- b if (b) then a
2 b :- c if (c) then b
3 c :- d if (d) then c

Supongamos que para este ejemplo no existe ningún hecho en la base de hechos.

Al elegir 'Operar->Encadenamiento hacia atrás', el sistema preguntará el objetivo a verificar (a menos


que se haya especificado uno en el fichero de la base de conocimientos o en el menú opciones). En este
caso, introduciremos 'a' como hecho a verificar.

El sistema comienza intentando emparejar con alguna regla de la base de hechos. En este caso, sólo se
empareja la primera con el objetivo, por lo que es la única que se activa. Al examinar la regla, el sistema
sabe que debe verificar el precedente de la regla, b, para poder confirmar a. Recursivamente, ahora el
objetivo es b, y se activa la regla 2ª, ya que es la que pernite verificar b. Al analizar esta regla, se sabe
que para confirmar b, se debe verificar c. Finalmente, el objetivo ahora es c, y la única regla que permite
verificarlo es la tercera, de forma que se debe confirmar d. El sistema sigue la estrategia de mirar
primero en la base de hechos, buscar después una regla que demuestre el hecho, y finalmente, como en
este caso, si ninguna de estas opciones es viable, preguntar al usuario si d es cierto o no. Según la
respuesta del usuario, se 'c', 'b' y el objetivo, 'a' se añade a la base de hechos, y la inferencia acaba, o la
inferencia acab puesto que no es posible confirmar a, por lo que a es falso.

Ejemplo sencillo

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 10 of 11

A continuación, se muestra un ejemplo sencillo de un Sistema Experto sencillo, al final en formato


BC de ExpertLab.

El texto del ejercicio es el siguiente:

"El país se enriquece cuando su moneda es fuerte y cuando su economía está estabilizada. El hecho de
que suban las pensiones o de que existan trescientos mil parados son hechos que hacen que se estabilice
la economía. En España, la peseta es fuerte, y existen trescientos mil parados."

Tras un primer análisis y descomposición, obtenemos:

"Si la moneda es fuerte y su economía estabilizada, el país se enriquece"


"Si suben las pensiones, se estabiliza la economía"
"Si existen trescientos mil parados, se estabiliza economía"
"En España, la peseta es fuerte"
"En España. existen trescientos mil parados"

Que descompuesto es como sigue (obsérvese que sea tenido que uniformizar para que sea coherente),
en formato de reglas:

if (peseta_fuerte and estabiliza_economía) then enriquece_pais


if (suben_pensiones) then estabiliza_economia
if (trescientos_mil_parados) then estabiliza economía
trescientos_mil_parados
peseta_fuerte

En formato .bc, como entrada a ExpertLab, es como sigue:

; (c) Fichero generado por ExpertLab


; (c) 1998 Invierno 1999-2000. Escuela Universitaria de Informática

\\\ Cabecera Ejemplo de Sistema Experto Sencillo.


\\\ Objetivo Enriquece_Pais.

\\\ Hechos
Peseta_fuerte
Trescientos_mil_parados

\\\ Reglas
Enriquece_pais :- Peseta_fuerte, Estabiliza_economia
Estabiliza_economia :- Suben_pensiones
Estabiliza_economia :- Trescientos_mil_parados

Cópiese y péguese este trózo de código y guárdese como 'peseta.bc'. En ExpertLab, selecciónese
'Abrir' y las reglas y los hechos se cargarán en el programa.
Este ejemplo es posible resolverlo mediante el encadenamiento hacia adelante o hacia atrás.

Encadenamiento hacia adelante: El sistema examina la base de reglas, y resuelve que es posible

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010
ExpertLab -- Ejemplo de Utilización Page 11 of 11

ejecutar la 3ª regla. Es decir, la activa. La regla es ejecutada, y Estabiliza_Economía es añadido a la


base de hechos. A continuación, la 1ª regla se dispara, y Enriquece_País es añadido a la base de
hechos.
Encadenamiento hacia atrás: El objetivo del sistema es "Enriquece_País", tal y como se indica en el
fichero .bc. Así, la regla que concluye ésto es la primera, por lo que se intenta probar los dos
precedentes. El primero reside ya en la base de hechos, mientras que para el segundo existen dos regla
que confirmarían Estabiliza_Economía. Se activan las reglas segunda y tercera para intentar probar
éste hecho. La primera en intentar ser ejecutada es la que toma como precedente Suben_Pensiones. El
programa concluye que no es posible comprobar Suben_Pensiones, así que anota este hecho para
preguntar al usuario (la estrategia última) si es cierto o no, si no llega antes a la solución. La siguiente
regla activada se ejecuta, y esta es posible ejecutarla sin problemas, pues "Trescientos_mil_parados",
ya existe en la base de hechos. Por lo tanto, se añade "Enriquece_País" como verdadero, ya que se ha
comprobado el precedente que faltaba para resolver la primera regla, Estabiliza_Economía, lo cuál
permite disparar la regla.

Manual de Usuario de ExpertLab Sistemas


Expertos

http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html 26/11/2010

Vous aimerez peut-être aussi