Inteligencia Artificial Manual SBR
Transcript of Inteligencia Artificial Manual SBR
Inteligencia Artificial
1
Manual SBR Este proyecto consta de una herramienta denominada SBR mediante la cual el usuario
podrá realizar principalmente las siguientes actividades:
Crear un nuevo dominio.
Modificar el dominio existente.
Simular el encadenamiento hacia delante.
Simular el encadenamiento hacia atrás.
Entendiéndose por dominio el “tema” por así decirlo sobre el que queremos que trabaje la
aplicación, ofreciendo así una gran flexibilidad y proporcionando una visión más atractiva al
usuario ya que todo usuario podrá adaptar la aplicación a uno de sus temas favoritos, cine,
coches, animales...
Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una
visión global de la aplicación.
Inteligencia Artificial
2
1. Visión Global Inicialmente la aplicación muestra la siguiente apariencia:
Figura 1.1: Pantalla inicial
En el menú situado en la parte superior de la ventana tenemos las siguientes opciones:
i. Dominio
Figura 1.2: Pantalla Inicial 2
Inteligencia Artificial
3
a. Nuevo: El usuario pulsará esta opción cuando quiera crear un dominio desde cero.
b. Cargar: Se ofrece la posibilidad de utilizar un archivo que ha sido creado
previamente con la aplicación sobre un dominio determinado.
c. Guardar: El usuario podrá guardar la configuración del dominio actual.
d. Salir: Típica opción que permite abandonar la aplicación.
ii. Encadenamiento
Figura 1.3: Pantalla inicial 3
a. BC: Esta opción nos llevará a la parte de la aplicación dedicada al
encadenamiento hacia atrás. (Backward Chain)
b. FC: En este caso iremos a la sección del encadenamiento hacia delante (Forward
Chain).
iii. BH
Nos permite visualizar y modificar todo lo referente a los atributos del dominio y a sus
valores.
iv. Reglas
En este caso podremos Editar/Modificar toda la parte relacionada con las reglas.
Para facilitar la comprensión del manejo de la aplicación vamos a utilizar un ejemplo sencillo
mediante el cual vamos a realizar las tareas principales de la aplicación.
Ejemplo:
Atributos / Valores:
Color: amarillo, morado.
Forma: larga, redonda.
Frutal: árbol.
Semilla: hueso , múltiple.
Inteligencia Artificial
4
Fruta: plátano, ciruela, cereza.
Reglas:
R0: Si Forma=Larga Y Color=Amarillo Entonces
Fruta=Plátano.
Prioridad:10
R1: Si Frutal=árbol Y Color=Morado Y Semilla=Hueso
Entonces Fruta=ciruela.
Prioridad:10
Valores asignados a los atributos como datos :
o Color=Amarillo.
o Forma=Larga.
Inteligencia Artificial
5
2. Nuevo Dominio
En este sección de la aplicación el usuario se encontrará con la siguiente ventana:
Figura 2.1 : Pantalla Configura con la pestaña BH seleccionada.
La pestaña que tenemos actualmente activa en la correspondiente a la base de hechos, mediante
la cual el usuario podrá realizar todas las operaciones sobre los atributos/Valores del dominio que
esta creando.
Utilizando en ejemplo detallado en el punto 1, introducimos los atributos para ello pulsamos el
botón añadir, y nos encontramos con la siguiente ventana.
Inteligencia Artificial
6
Figura 2.2 : Pantalla Añadir/Modificar atributo 1
Comenzamos con el atributo fruta, para ello escribimos en el primer Edit el nombre del atributo ,
Color, ahora tenemos que introducir los distinto valores que posee para ello escribimos amarillo
en el edit que esta debajo del Label que pone “Valor Posible”.
De tal manera que nos quede así:
Figura 2.3 : Pantalla Añadir/Modificar atributo 3
Pulsamos el botón y pasamos a añadir el otro valor, morado, de la misma manera, quedando
de la siguiente manera:
Inteligencia Artificial
7
Figura 2.4 : Pantalla Añadir/Modificar atributo 3
Para el valor rojo procederíamos de la misma manera.
Si nos fijamos tenemos un edit que tiene asignado como valor por defecto “Desconocido” , si
quisiéramos modificar ese valor tan solo tendríamos que hace clic sobre el valor del comboBox
que quisiéramos tener.
Por Ejemplo Amarillo y tendríamos lo siguiente:
Figura 2.5 : Pantalla Añadir/Modificar atributo 4
Finalmente pulsamos el botón Aceptar , y vemos que la pestaña ha sido modificada, presentando
el siguiente aspecto:
Inteligencia Artificial
8
Figura 2.6 : Pantalla Configura con la pestaña Atributo seleccionada.
Con el resto de atributos procederemos de la misma manera, pero para ellos dejaremos como
valor por defecto “Desconocido”.
Tras introducir todos los atributos podremos visualizar lo siguiente:
Figura 2.7 : Pantalla Configura con la pestaña BH seleccionada y con los atributos.
Inteligencia Artificial
9
Ahora sólo queda por indicar que el valor que queremos asignar como dato a Forma es larga ,
para ello tenemos que pulsar sobre la celda correspondiente al atributo Forma, indicada en la
siguiente figura con fondo amarillo.
Figura 2.8 : Pantalla Configura con la pestaña BH seleccionada e indicando el valor a modificar
Al pulsar sobre esa celda nos aparece el siguiente diálogo:
Figura 2.9 : Valores del atributo seleccionado
Seleccionamos el valor Larga y pulsamos sobre el botón aceptar.
Inteligencia Artificial
10
Ahora el usuario podrá ver como el valor que posee el atributo forma ya no es desconocido sino
Larga.
Figura 2.10 : Pantalla Configura con la pestaña BH seleccionada y con los atributos 2.
Los otros dos botones, para este ejemplo no nos hacen falta , no obstante hay que comentar su
funcionalidad:
El botón Modificar se puede activar al seleccionar un atributo de la columna atributos, y pulsando
sobre él, por ejemplo, seleccionemos Tipo Semilla y pulsemos Modificar.
Inteligencia Artificial
11
Figura 2.11 : Pantalla Configura con la pestaña BH seleccionada la ventana cargada con los datos
del atributo seleccionado.
Mediante esta nueva ventana podemos añadir más valores al atributo o modificar el valor
asignado.
Como para nuestro ejemplo no queremos modificar nada, pulsamos el botón cancelar.
El otro botón que queda es el de “Todos a Desconocido” cuya función es poner como valor a todos
los atributos “Desconocido”.
Inteligencia Artificial
12
Vamos a ver la pestaña de reglas:
Figura 2.12 : Pantalla Configura con la pestaña reglas seleccionada.
En esta ventana cabe destacar las dos tablas IF y THEN donde la primera va a contener la
información de la parte del antecedente de la regla y la segunda del consecuente.
Concretando en el ejemplo. Tenemos que introducir las dos reglas detalladas en el apartado 1:
R0: Si Forma=Larga Y Color=Amarillo Entonces
Fruta=Plátano.Prioridad:10
R1: Si Frutal=árbol Y Color=Morado Y Semilla=Hueso Entonces
Fruta=ciruela.
Prioridad:10
Comenzamos con R0.
Tenemos que introducir Forma=Larga , para ello seleccionamos de la lista desplegable “Atributo”
Forma .
Inteligencia Artificial
13
Figura 2.13 : Pantalla Configura con la pestaña reglas seleccionada y mostrando los atributos disponibles para configurar la regla.
Ahora tenemos que indicar el valor para ello seleccionamos el valor Larga y pulsamos el botón
(el situado más arriba pues ahora estamos trabajando con el IF), inmediatamente podemos
observar que en la tabla del IF se nos ha incorporado dicho par de la siguiente manera:
Figura 2.14 : Pantalla Configura con la pestaña reglas seleccionada y atributo del If.
Procederemos de la misma manera para Color=Amarillo.
Inteligencia Artificial
14
Para el consecuente el mecanismo es el mismo , la única diferencia es que en vez de pulsar el
botón situado en la parte superior , pulsamos es que se encuentra más abajo.
Tras haber introducido el antecedente y el consecuente de la regla actual tendremos la siguiente
situación:
Figura 2.15: Pantalla Configura con la pestaña reglas seleccionada y atributos del If y Then
Llegados a este punto sólo queda por introducir la prioridad que en esta caso en 10.Tras
introducirla pulsamos el botón Añadir y vemos como en la tabla inferior se muestra la regla que
acabamos de construir.
Inteligencia Artificial
15
Figura 2.16 : Pantalla Configura con la pestaña reglas seleccionada y mostrando regla
añadida
Para la siguiente regla procederemos de la misma manera. Obteniendo finalmente la siguiente
situación:
Figura 2.17 : Pantalla Configura con la pestaña reglas seleccionada y mostrando las regla
añadidas
Inteligencia Artificial
16
Ya hemos terminado de introducir todo el dominio, pero han quedado dos botones por comentar :
Modificar: Nos permite modificar una regla tanto el antecedente, como el consecuente como su
prioridad.
Eliminar: Nos da la posibilidad de quitar una regla de nuestro dominio.
Salimos de la ventana pulsando el aspa situado en la parte superior derecha.
Ahora que tenemos el dominio definido podemos guardarlo en un fichero para ello utilizaremos la
opción comentada en el apartado de Visión Global.
Inteligencia Artificial
17
3. Modificar el dominio existente
Para la explicación de este apartado vamos a utilizar el fichero guardado con el dominio
definido en el punto 2.
Lo primero que tenemos que hacer es Cargar el dominio, tal y como se explicó, en el punto uno.
Para modificar el problema existente utilizaremos las opciones de la ventana principal de BH y
Reglas.
Figura 3.1 : Pantalla inicial resaltando las opciones para modificar un dominio existente.
Vamos a modificar la base de hechos añadiendo un atributo más, por ejemplo:
Num Semillas : 1, >1.
Para ello pulsaremos sobre la opción BH, donde veremos una pantalla como la de la figura:2.10, a
continuación para poder añadir un atributo nuevo a la base de hechos tenemos que pulsar sobre
el botón añadir y nos aparecerá una ventana como la de la figura:2.2, llegados a este punto
procederemos de la misma manera como hicimos al insertar un atributo nuevo cuando estábamos
configurando un nuevo dominio.
Inteligencia Artificial
18
La otra opción que tenemos para modificar el problema es la relativa a las reglas, imaginemos
que queremos modificar la regla R1 , quedando de la siguiente manera:
R1: Si Clase frutal=árbol Y Color=Rojo Y Tipo semilla=Hueso
Entonces Fruta=ciruela.
Prioridad:10.
si pulsamos la opción de Reglas nos aparecerá una ventana como la de la figura:2.17, si
quisiéramos modificar una regla existente tan solo tendríamos que seleccionar la regla a modificar
y pulsar el botón modificar, obteniendo una imagen como esta:
Figura 3.2: Estado de configurar al pulsar modificar R1
Ahora lo único que nos quedaría por hacer el quitar el atributo Color del If y Fruta de ciruela y
volver a seleccionarlos con sus valores, cuando ya hayamos insertado los nuevos valores
pulsamos el botón Añadir y nos quedaría el listado de reglas tal que así:
Inteligencia Artificial
19
Figura 3.3: Listado de las reglas tras insertar la modificación.
Inteligencia Artificial
20
4. Simular el encadenamiento hacia delante
Una de las opciones más importante que ofrece esta aplicación es la relativa a la
simulación del encadenamiento tanto hacia delante como hacia atrás pues de esa manera el
usuario además de calcular el nuevo conocimiento derivado tiene la opción de ver cómo la
aplicación llega hasta esa conclusión.
Vamos a utilizar el dominio definido en el apartado uno , para ello el usuario deberá cargarlo
previamente.
Comencemos por el encadenamiento hacia delante, por se el concerniente a este punto.
Para poder ejecutar esta opción tenemos que ir en la ventana principal a Encadenamiento y
de ella a FC (ForwardChain).Tal y como se muestra en la figura siguiente:
Figura 4.1: Inicio de FC.
Inteligencia Artificial
21
Tras pulsar la opción señalada anteriormente nos aparecerá la siguiente ventana:
Figura 4.2: Selección del objetivo para FC (1).
Debido a que estamos en el encadenamiento hacia delante el usuario puede escoger entre
establecer un objetivo previo o ninguno, con esta última opción lo que se está indicando es que se
derive el máximo conocimiento posible.
Seleccionemos como objetivo Fruta y pulsemos el botón aceptar, nos encontraremos con lo
siguiente:
Figura 4.3: Pantalla del encadenamiento hacia delante ciclo 0.
Inteligencia Artificial
22
Antes de comenzar la ejecución vamos a explicar el significado de los componentes más
relevantes de la pantalla.
Esta pantalla tiene cuatro grandes zonas destinadas a la visualización de información que son:
I. Matching: Encargada de mostrar al usuario la información de las reglas que en ciclo
actual se encuentran satisfechas.
II. Resolución de Conflictos: En caso de tener varias reglas satisfechas nos indicará cual
ha sido seleccionada para ejecutarse y nos explicará el motivo de esta selección. La
aplicación utilizará el criterio de la primera mejor y en caso de empate seleccionar aquella
regla con menor índice.
III. Disparar: Nos muestra el conocimiento derivado al disparar la regla.
IV. BC: Proporciona información sobre los atributos conocidos y su valor.
Comencemos con la simulación , para ello tenemos que pulsar el botón , a continuación la
aplicación nos muestra el ciclo 1.
Figura 4.4: Pantalla del encadenamiento hacia delante ciclo 1.
Para este dominio solo contábamos con dos reglas entre las cuales la única satisfecha es la R0,
por lo que la resolución de conflictos en esta paso no tiene un papel muy importante, aún así nos
indica que ha sido escogida por tener mayor prioridad (ya que no existe otra satisfecha con
mayor prioridad).También nos indica el nuevo conocimiento derivado como es fruta plátano , que
Inteligencia Artificial
23
coincide con nuestro objetivo, y en la BC ya aparece incorporado a la lista de atributos conocidos
con sus respectivos valores.
Ahora tenemos dos posibilidades:
-Pulsar el botón con lo que tendríamos la figura 4.3 , ya que estamos en el ciclo 1 y al pulsar
este botón lo que hacemos es poder visualizar el ciclo anterior.
-Pulsar el botón y obtendríamos:
Figura 4.5: Pantalla del encadenamiento hacia delante ciclo 2.
Llegados a este punto lo único que podemos hacer es visualizar los ciclo anteriores o seleccionar
en el menú archivo situado en la parte superior Reiniciar , con lo que volveríamos a la figura 4.2 o
Salir y pasaríamos a la pantalla inicial de la aplicación.
Observación: Hay que tener en cuenta que los hechos derivados en una ejecución, tanto para el
encadenamiento hacia atrás como para el encadenamiento hacia atrás, pasan a formar parte de
la base de conocimientos. Por lo que si quisiéramos hacer el mismo ejemplo para el
encadenamiento hacia atrás tendríamos que poner a desconocido en la base de conocimientos los
atributos derivados, en esta caso solo sería fruta.
Inteligencia Artificial
24
5. Simular el encadenamiento hacia atrás.
Vamos a utilizar el dominio definido en el apartado uno , para ello el usuario deberá cargarlo
previamente.
Comencemos por el encadenamiento hacia delante, por se el concerniente a este punto.
Para poder ejecutar esta opción tenemos que ir en la ventana principal a Encadenamiento y de
ella a FC (ForwardChain).Tal y como se muestra en la figura siguiente:
Figura 5.1: Pantalla inicial.
Tras pulsar la opción señalada anteriormente nos aparecerá la siguiente ventana:
Inteligencia Artificial
25
Figura 5.2: Selección del objetivo para BC (1)
Con esta ventana lo que se pretende es que el usuario seleccione el o los objetivos que desea,
para esta ejecución , como mínimo deberá seleccionar uno , no existiendo máximo establecido.
Para materializar la explicación del manejo de esta parte vamos a indicar a la aplicación que solo
queremos Fruta como objetivo para ello hacemos clic sobre Fruta y pulsamos el botón ,
quedándonos de la siguiente manera:
Figura 5.3: Selección del objetivo para BC (2)
El otro botón se utiliza en el caso de que queramos quitar un atributo que lo habíamos
seleccionado previamente.
Pulsamos el botón aceptar y nos encontramos con :
Inteligencia Artificial
26
Figura 5.4: Pantalla del encadenamiento hacia atrás, ciclo 0.
Antes de comenzar la ejecución vamos a explicar el significado de los componentes más
relevantes de la pantalla.
Esta pantalla tiene tres grandes zonas destinadas a la visualización de información que son:
V. Objetivos Reglas; Encargada de mostrar al usuario los objetivos y de las reglas que nos
permiten derivarlos , cuando se conozcan, y su estado *
VI. Traza: Explica al usuario todas las decisiones tomadas.
VII. BC: Proporciona información sobre los atributos conocidos y su valor.
En el ciclo 0 como aún no hemos comenzado la simulación Objetivos Reglas solo nos muestra el
objetivo, pues las reglas que nos permiten derivarlo aún no las conocemos.
Comencemos con la simulación , para ello tenemos que pulsar el botón , a continuación la
aplicación nos muestra el ciclo 1.
*El estado de los objetivos y de las reglas esta codificado mediante los colores que podemos
observar en la leyenda.
Inteligencia Artificial
27
Figura 5.5: Pantalla del encadenamiento hacia atrás, ciclo 1.
Como estamos trabajando con un ejemplo muy sencillo ya hemos llegado a la solución pues fruta
ya ha sido derivado por R0 (por eso esta en color verde), R1 como ni siquiera la llegamos a
examinar esta en negro.
Como en el encadenamiento hacia delante también podemos pulsar el botón para ver el ciclo
anterior. También mediante el menú archivo tenemos la opción de Reiniciar y salir.