You are on page 1of 10

Inteligencia Artificial.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.
Asignatura: Inteligencia Artificial.
Gua de laboratorio para desarrollar sistemas expertos usando E. S. T. A.
Elaborado por: Ing. Ariel Chvez Toruo.

Introduccin.
Un sistema experto es un sistema computacional que imita la conducta de un experto humano en algn
rea especfica. La idea detrs de crear un sistema experto es que puede permitirles a muchas personas que
se beneficien del conocimiento de una persona - el experto. Y puede dejar al experto para los problemas
ms difciles.
Proporcionndole una base de conocimiento para un cierto problema o contexto, ESTA permite crear un
sistema especialista para ese asunto.
ESTA posee todos los medios para escribir las reglas que constituyen la base del conocimiento y permite
realizar inferencias que aconsejen sobre la base de su conocimiento.
ESTA hace uso de parmetros como variables para determinar el flujo de mando entre las secciones.
Cualquier parmetro consiste en un campo de la declaracin y un campo del tipo. Ms all pueden usarse
varios campos optativos, dependiendo del tipo del parmetro, para describir el parmetro. Un parmetro
puede ser uno de lo siguiente cuatro tipos:
boolean parameter
text parameter
number parameter
category parameter
Cualquier parmetro puede obtener un valor en uno de las maneras siguientes:
Por una respuesta a una pregunta.
Como resultado de seguir algunas reglas.
Una asignacin que resulta de un asigne accin.
Sintaxis bsica de ESTA.
parameter name 'El nombre del usuario'
type text
question 'Cmo te llamas?'
parameter pc_colour 'El color favorite del usuario'
type category
options
red,
blue,
green.
question 'Cul de los siguientes colores prefieres?'
picture 'colour_screen_picture'
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Inteligencia Artificial.
parameter colour 'Unas palabras que describen el color'
type text
explanation
'Los humanos normalemte usan los nombres de los colores para describer la frecuencia especfica de la
onda de luz correspondiente. Este parmetro representa colores como el rojo, azul, etc'
rules
'blue' if frequency < 1000,
'red' if frequency > 2000 and frequency < 3000,
'invisible'.

Luego la accin del consejo es ejecutada por un Advice estableciendo los valores de todos los parmetros
involucrados en la expresin del texto y entonces escribiendo el texto resultante en una ventana en la
pantalla. Los cuadros pueden ser incluidos en cualquier parte en el consejo y por eso se mostrado en la
pantalla como parte del consejo. Su sintaxis es:
<advice>
::= advice <specification>
<specification> ::= <advice-item> {<specification>}
<advice-item> ::= text-expression | picture <picture-name>
Luego la asignacin se realize mediante los valores de los parmetros, de la siguiente manera: <assign>
::= assign <parameter-name> := <expression>
El siguiente ejemplo ilustra la asignacin.
section start 'Una seccin muy corta para ilustrar la asignacin'
assign n := 7 + 8 / 2
advice 'la evaluacin de 7 + 8 / 2 resulta en ' n
assign n := (7 + 8) / 2
advice 'la evaluacin de (7 + 8) / 2 resulta en ' n
'porque / tiene mayor prioridad que +.' &
'Observer que el parmetro cambia su valor'
parameter n 'n'
type number
El comando Chain Action permite consultar distintas bases de conocimientos, en el caso que el
conocimiento este estructurado en varias bases. La sintaxis es <chain> ::= chain <filename>
Adems pueden transferirse valores de parmetros entre dos BC usando save_values y restaurar el valor
en la nueva BC usando restore_values, pero se pierden las definiciones de los valores, y la nueva BC
desplaza a la antes cargada en la memoria de la PC.

El comando do action transfiere el mando a una nueva seccin, conocido esto como encadenamiento
hacia delante. Su sintaxis es:
section start 'primera seccin a ejecutarse'
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Inteligencia Artificial.
if answer = 'yes' (do positive_section, do next_section)
if answer = 'no' do negative_section
Dependiendo del valor de anwer, se ejecutara la parte positiva o negativa.
El comando do_section_of toma un argumento o un parmetro de la categora tipo; y la
correspondiente es una alternativa a las frases a menudo usadas en declaraciones de la seccin:

accin

if <category parameter name> = <option1> do <option1>


if <category parameter name> = <option2> do <option2>
En lugar de listar todos los si-declaracin que corresponden a las posibles opciones, puede escribir
simplemente: do_section_of <el nombre de parmetro de categora>
En una sesin de la consultacin el valor del parmetro determinar a que seccin se transferir el control.
Si el parmetro tiene no consigui un valor, ESTA evala el parmetro primero y el valor obtenido es una
referencia a la seccin correspondiente. La funcionalidad del do_section_of y el do_action es exactamente
el mismo. La diferencia es que usted no tiene que escribir todas las frases iguales con los hacerdeclaracin, pero en cambio slo una frase. Recuerde que que la opcin nombra del parmetro de la
categora debe corresponder a los nombres de la seccin en la base de conocimiento.
Ejemplo
section start 'seccin principal'
do_section_of problem
parameter problem : 'el problema con su carro'
type category
explanation
'Identifique el problema con su carro.'
options
starting_problems - 'Problema de arranque'
overheating - 'Motor sobrecalentado'
smell_of_gasoline - 'Olor a gasolina'
bad_running - 'El motor funciona mal'
brakes - 'Las llaves'
vibration - 'Vibracin excesiva'
wiper_motor - 'ruido del motor'
light_problem - 'las luces'
horn_problem - 'calentamiento'.
question
'Cul es el problema con su carro ' car ' ?'
picture 'car'
La function <exit> ::= exit simplemente termina la consulta a la actual base de conocimientos. En cambio
<stop> ::= stop realiza una parada para que no se realicen ms acciones o ejecuten expresiones sobre la
BC.
section start1 'seccion start sin stop'
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.

Inteligencia Artificial.
if p1 and p2 and p3 and p4 and p5 and p6 and p7
advice 'realizando p1 - p7 es verdadero , se muestra este mensaje'
if not (p1 and p2 and p3 and p4 and p5 and p6 and p7)
advice 'el segundo mensaje se muestra una vez que p1 - p7 es falso'
section start2 'seccion start con stop'
if p1 and p2 and p3 and p4 and p5 and p6 and p7
(advice 'verificando p1 - p7 es verdadero , es mostrado el mensaje',
stop)
advice 'el Segundo mensaje es mostrao si p1 - p7 es falso'
La llamada call permite ejecutar procedimientos definidos anteriormente. La sintaxis para la accin de la
llamada es como sigue, ilustr con el construir-en procedimientos:
<call> ::= call clear_all() |
call clear_value(<parameter_name>) |
call display(<filename>) |
call
hyperadvice(<filename>,<name>) |
call restore_values(<filename>) |
call save_values(<filename>) |
call showpic(<picture_name>) |
call
sound(<Duration>,<Frequency>) |
call system(<string>)
Procedimientos:
Se crear un rbol para definir el
problema o conocimiento que seguir
la aplicacin experto y poder ayudar al
usuario a resolver su problema o
necesidad. Esto se desarrollar usando
la aplicacin ESTA (Expert Shell
System for Text Animation.)
1. Al ejecutar la aplicacin ESTA
aparece el mensaje de la figura,
si se est trabajando con la
versin educacional y para
todas las aplicaciones de
conocimientos creadas a partir
de ella.

2. Luego de la ventana de bienvenida puede empezar a crearse la base de conocimiento que servir
para el funcionamiento del sistema experto, como se indica a continuacin.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Inteligencia Artificial.

3. Como se mencion anteriormente, las bases


de conocimiento (BC) de ESTA (*.kb)
trabajan mediante rboles de bsquedas
donde sus nodos se llaman secciones y stos
se comunican entre ellos, mediante
parmetros. Como prctica se crear el
siguiente rbol de sistema experto.
4. La primera seccin (nodo inicial) debe
llamarse Star, y se crea as:

5. A continuacin debe crearse el parmetro


inicial del problema, tipo categora; es decir
opcin mltiple. Y modifique el parmetro
de acuerdo con el siguiente cdigo. Despus
se guarda el parmetro pulsando S,
sobre la ventana de Update problema
before closing. Si desea modificar el
parmetro creado puede escogerse
Parmetros \ Editar Parmetros, y
seleccionarlo de la lista.
6. Para verificar el progreso de la base de
conocimiento puede hacerse clic en
Consultar \ Iniciar.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Inteligencia Artificial.

parameter problema : 'Problema a resolver con ToolBook Instructor II'


type category
explanation 'Identificar en cual categora se encuentra la situacin a resolver a nivel de autor.'
options
libro - 'Crear un libro electrnico',
pagina - 'Crear o modificar pgina(s) en un libro existente',
fondo - 'Agregar o modificar un fondo de pgina'.
/* rules field */
question '' Nombre ' Qu es lo que desea realizar? '
picture ' '
Observe que la seccin start incluye en la pregunta Nombre; el
cual es un parmetro tipo texto. Y debe contener lo siguiente.

parameter Nombre : ' '


type text
explanation ' '
/* rules field */
question 'Cul es su nombre? '
picture ' '

section start : 'Seccin principal del programa '


7. Al volver a la seccin Star creada
inicialmente (Seccin \ Editar Seccin),
debe escribirse lo siguiente:

if problema = 'libro' do crear_libro


if problema = 'pagina' do crear_pag
if problema = 'fondo' do crear_bg

8. Al definir por cada opcin la seccin a


ejecutar (do), automticamente se crea la seccin as nombrada (crear_libro, crear_pag, crear_bg.)
Lo que puede observarse desde :

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Inteligencia Artificial.
9. Posteriormente deber crearse cada una de la secciones del rbol, lo cual puede hacerse pulsando
doble clic desde el rbol.
10. La siguiente seccin a crear (crear_libro), mostrar en pantalla un mensaje., usando advice
indicando los pasos a seguir por el usuario.
section crear_libro : 'Indica al usuario como crear un libro electrnico '
advice
'' Nombre ' Los libros que crea Instructor pueden ser desde plantillas prediseadas, libros DHTML,
hasta evaluaciones diversas; y se trabajar con Blank Native ToolBook Book.'
11. La seccin crear_fondo se
define mediante un parmetro
fondo tipo boolean, de la
siguiente manera:
12. La seccin crear_fondo deber
evaluar si el usuario responde
Si / No a la pregunta del
parmetro.
Asignacin:

parameter fondo : ' '


type boolean
explanation ' '
/* rules field */
question 'El libro electrnico ya tiene un fondo de pgina? '
picture ' '
section crear_bg : ' '
if (fondo) do elige_bg
if not(fondo) advice ''Nombre 'Pulse la funcin F4 para
trabajar en el fondo de la aplicacin como si fuera una
pgina ms del libro, y regrese a la pgina pulsando
nuevamente F4 cuando haya terminado '

1. Realice
las
actividades
anteriores.
2. Completar los comentarios de
las secciones y parmetros anteriores.
3. Crear la seccin crear_pag, la cual debe preguntar al usuario, para que l elija las opciones de
crear una nueva pgina, usar una existente, o aplicar una plantilla de diseo.
4. Por cada una de estas opciones deber existir otra seccin que indique al usuario como realizar
cada actividad.
5. Crear un nuevo rbol para un problema determinado:
a. Con cuatro opciones iniciales.
b. Con cinco niveles de profundidad
c. Explicando cada uno de los pasos llevados a cabo tomando como referencia esta gua.
d. Usando parmetros tipo:
i. Boleanos.
ii. Categora.
iii. Texto.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Inteligencia Artificial.
Universidad Nacional de Ingeniera.
Facultad de Ciencias y Sistemas.
Asignatura: Inteligencia Artificial.
Gua de laboratorio para desarrollar sistemas expertos usando E. S. T. A.
Elaborado por: Ing. Ariel Chvez Toruo.

Introduccin.
Cuando se trabaja con ESTA, tambin existe la posibilidad de incluir el uso de interfaz grfica, as como
el uso de imgenes como zonas sensibles que se combinan con los parmetros definidos de las secciones
en la base de conocimientos.
Adems puede evaluarse mltiples parmetros, de manera que pueda realizarse una accin (llamar una
seccin) dependiendo si ms de uno de ellos es verdadero, falso, o tiene un valor especfico.
Objetivos.
Complementar la elaboracin de un Shell experto, maximizando la herramienta ESTA para la creacin y
uso de la base de conocimiento.
Procedimientos
Inicialmente complementaremos el rbol anteriormente creado, agregando la opcin programar en el
parmetro problema de la seccin start (inicial).
1. Editar el parmetro problema,
agregando la siguiente lnea de
cdigo y observando que la ltima
opcin debe terminar en (.).

fondo - 'Agregar o modificar un fondo de pgina',


programar - 'Programar usando ToolBook Instructor II'.

2. Insertar la siguiente condicin en la seccin start: if problema = 'programar' do sprogramar


3. La seccin sprogramar debe preguntar independientemente si se desea programar en OpenScript o con
el Editor de Acciones, validando que ambas no pueden usarse a la vez. Para lo cual se definirn dos
parmetros: openscript y accionedit como tipo bolanos.
section sprogramar : ' '
if (openscript) and (accionedit)
advice 'No es posible'
if (openscript) do sopenscript
if (accionedit) do saccionedit
if not(openscript) do
saccionedit
if not (accionedit) do
sopenscript

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

section sopenscript : ' '


if (openscript) advice 'OpenScript permite iniciar, mostrar, detener,
etc; las animaciones por trayectoria enviando mensajes a la
aplicacin para indicar movimiento a travs de la trayectoria o por
pasos a travs de la misma, por medio de los mensajes'
parameter openscript : ' '
type boolean
explanation ' '
/* rules field */
question 'Desea programar usando OpenScript para ToolBook?'
picture ' '

Inteligencia Artificial.

section saccionedit : ' '


if (accionedit) advice 'Es la herramienta de programacin visual que permite crear o editar una serie de
comportamientos llamados secuencias de accciones. ste incluye mens y barras de herramientas de
protocolos estndares y permiten responder a eventos, reproducir multimedia, mostrar cuadros de
entrada, modificar la apariencia y comportamiento de objetos, controlar la navegacin, crear variables y
ciclos, etc'

parameter accionedit : ' '


type boolean
explanation ' '
/* rules field */
question 'Desea utilizar el asistente para editar acciones?'
picture ' '

4. Otra opcin es disear una pantalla


de bienvenida que incluya una
imagen alusiva al tema del sistema
experto. Lo cual se elige desde el
men Imgenes \ BD de imgenes,
y en la ventana emergente se pulsa
sobre el botn Importar con la
salvedad que solo pueden agregarse imgenes en formato BMP y WMF, y se guarda dicha imagen con
un nombre en la base de datos de imgenes.

5. Importada la imagen, se elige Ttulo \ Nuevo ttulo y se escribe *<nombreimagen>*. nicamente


puede existir un ttulo, por tanto al crear uno nuevo se remplazar el existente en caso que este exista.
6. Tambin pueden definirse zonas sensibles asociadas a parmetros tipo categora, lo que permite al
usuario utilizarlas en vez de elegir el texto de la opcin. Esto se realiza de la siguiente manera:
6.1. Se importa una nueva imagen desde Imgenes \ BD imgenes \ Importar

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

Inteligencia Artificial.

6.2. Se guarda con un nombre. Si por accidente import una


imagen incorrecta y pulsa el botn Eliminar, la imagen se
borrar de la base de imgenes y tambin se borrar de su
ubicacin original.

6.3. La imagen importada se


selecciona y se pulsa la
pestaa Hotspot para definir
las zonas sensibles y los
parmetros correspondientes.
6.4. Se elige el parmetro, en este
caso problema, por que es el
parmetro inicial de start; y la
opcin correspondiente para el
mismo.
6.5. Se activa la opcin del atributo
visible / invisible y se dibuja
un rectngulo sobre la
imagen. Se repiten los pasos
6.4 y 6.5 por cada valor del
parmetro; y luego se pulsa
aceptar.
6.6. Para reflejar los cambios, debe
modificarse el parmetro
problema, y escribir picture
'menuesta'.
6.7. Al reiniciar la consulta se
observan
los
cambios
realizados.
Actividades.
1. Realizar las actividades de esta
gua.
2. Aplicar
los
nuevos
conocimientos en su propio
rbol de problema creado en el
laboratorio anterior.

Universidad Nacional de Ingeniera.


Facultad de Ciencias y Sistemas.

10

You might also like