13.05.2013 Views

UD SHELL Versión 2.0. - Universidad de Manizales

UD SHELL Versión 2.0. - Universidad de Manizales

UD SHELL Versión 2.0. - Universidad de Manizales

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

Herramienta software para la construcción<br />

<strong>de</strong> sistemas basados en el conocimiento0<br />

– <strong>UD</strong> <strong>SHELL</strong> <strong>Versión</strong> <strong>2.0.</strong><br />

Victor Fermín Cerón Baquero 1 - Yamile Montero Salas 2<br />

Resumen<br />

El presente artículo muestra el proceso <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> la Herramienta<br />

Software para la Construcción <strong>de</strong> Sistemas Basados en el Conocimiento <strong>UD</strong><br />

Shell versión <strong>2.0.</strong>; software que permite el apoyo en la toma <strong>de</strong> <strong>de</strong>cisiones en<br />

cualquier área <strong>de</strong>l conocimiento. El propósito fundamental es ofrecer una<br />

herramienta para el <strong>de</strong>sarrollo <strong>de</strong> sistemas expertos y sistemas basados en el<br />

conocimiento utilizando como forma <strong>de</strong> representación <strong>de</strong>l conocimiento los<br />

Sistemas <strong>de</strong> Producción. En su primera parte, se muestra la justificación <strong>de</strong>l<br />

<strong>de</strong>sarrollo, luego se hace un recuento <strong>de</strong> sus principales características. En<br />

tercer lugar, se muestran diferentes pruebas con las cuales se indican los<br />

resultados obtenidos.<br />

Palabras clave: Métodos <strong>de</strong> Inferencia, Sistemas Basados en el<br />

Conocimiento, Representación <strong>de</strong>l Conocimiento, Sistemas <strong>de</strong> Producción,<br />

Incertidumbre.<br />

I. INTRODUCCIÓN<br />

La toma <strong>de</strong> <strong>de</strong>cisiones es un proceso en el cual se plantean diferentes<br />

puntos <strong>de</strong> vista y posibles alternativas <strong>de</strong> solución a <strong>de</strong>terminada<br />

problemática, es por tanto uno <strong>de</strong> los mayores problemas que aqueja a las<br />

diferentes empresas; en muchas ocasiones quienes toman éstas <strong>de</strong>cisiones<br />

en ocasiones carecen <strong>de</strong> información y sobre todo <strong>de</strong> experiencia y<br />

conocimiento, <strong>de</strong>bido a que no se cuenta con el recurso humano suficiente ni<br />

capacitado; en otros casos una <strong>de</strong>cisión <strong>de</strong>be ser tomada por diferentes<br />

expertos en el área en cuestión, para po<strong>de</strong>r plantear soluciones viables. Lo<br />

anterior, ocasiona que las <strong>de</strong>cisiones tomadas no sean completamente<br />

acertadas.<br />

Con el fin <strong>de</strong> <strong>de</strong>sarrollar una herramienta para apoyar la toma <strong>de</strong> <strong>de</strong>cisiones,<br />

se <strong>de</strong>sarrolló <strong>UD</strong> Shell, el cual minimiza el tiempo <strong>de</strong> búsqueda <strong>de</strong> una<br />

solución y proporciona una mayor fiabilidad a ésta. Entre sus características<br />

principales están: la construcción <strong>de</strong> Bases <strong>de</strong> Conocimiento (BC) a partir <strong>de</strong><br />

Sistemas <strong>de</strong> Producción, la inferencia se realiza a partir dos métodos<br />

1 Tecnólogo en Sistematización <strong>de</strong> Datos, <strong>Universidad</strong> Distrital Francisco José <strong>de</strong> Caldas.<br />

2<br />

Tecnólogo en Sistematización <strong>de</strong> Datos, <strong>Universidad</strong> Distrital Francisco José <strong>de</strong> Caldas. E-mail:<br />

yamilemon@yahoo.com<br />

VENTANA INFORMÁTICA No. 12 – <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005 – pp 97-110


- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />

(inferencia orientada por datos e inferencia orientada por objetivos), otra<br />

característica a <strong>de</strong>stacar es la implementación <strong>de</strong> manejo <strong>de</strong> incertidumbre y<br />

metaconocimiento.<br />

La aplicabilidad <strong>de</strong> <strong>UD</strong> Shell pue<strong>de</strong> ser vista en dos contextos: la utilización<br />

por parte <strong>de</strong> expertos y su uso en la aca<strong>de</strong>mia. En el campo académico su<br />

<strong>de</strong>sarrollo se justifica en virtud a la posibilidad <strong>de</strong> sustentar la explicación<br />

teórica <strong>de</strong> clases como Inteligencia Artificial con un producto en el que se<br />

pue<strong>de</strong> experimentar y mostrar resultados. La utilidad <strong>de</strong> la herramienta es<br />

relativa a la necesidad <strong>de</strong>l campo en que se quiera trabajar, se pue<strong>de</strong>n<br />

encargar <strong>de</strong>: toma <strong>de</strong> <strong>de</strong>cisiones, configuración <strong>de</strong> equipos <strong>de</strong>pendiendo <strong>de</strong><br />

unos componentes existentes y las restricciones <strong>de</strong> cada caso, diagnostico y<br />

tratamiento <strong>de</strong> enfermeda<strong>de</strong>s o averías, interpretación y análisis <strong>de</strong> datos,<br />

monitorización <strong>de</strong> procesos industriales, planificación <strong>de</strong> fases y recursos,<br />

entre otros.<br />

II. Desarrollo <strong>de</strong> la herramienta<br />

El área en la que se enmarca el presente <strong>de</strong>sarrollo es la Ingeniería <strong>de</strong><br />

Software y la Inteligencia Artificial; aun cuando el propósito <strong>de</strong> esta última en<br />

los Sistemas Basados en el Conocimiento / Sistemas Expertos no es nuevo y<br />

ha sido <strong>de</strong> gran aceptación en empresas <strong>de</strong> países como Japón, parte <strong>de</strong><br />

Europa, Estados Unidos, México entre otras; a nivel Latinoamericano <strong>de</strong>s<strong>de</strong><br />

mediados <strong>de</strong> los años 90 se ha estado imponiendo la ten<strong>de</strong>ncia al <strong>de</strong>sarrollo<br />

<strong>de</strong> Shells, los cuales poseen diferentes características en cuanto a método<br />

<strong>de</strong> inferencia, manejo <strong>de</strong> incertidumbre y diseño <strong>de</strong> bases <strong>de</strong> conocimiento<br />

(proceso <strong>de</strong> actualización, representación <strong>de</strong>l conocimiento, etc.).<br />

A. ¿Por qué <strong>UD</strong>-Shell?<br />

El problema central al crear bases <strong>de</strong> conocimiento es el tiempo que se gasta<br />

al codificar reglas, ya sea por la forma como se <strong>de</strong>ben estructurar o por que<br />

al tener que actualizar Bases <strong>de</strong> Conocimiento se <strong>de</strong>be reorganizar el<br />

esquema jerárquico para obtener mejores resultados. Los Shell actuales<br />

permiten actualizar y/o visualizar solamente una base <strong>de</strong> conocimiento,<br />

proceso por el cual el comparar resultados o el transmitir reglas <strong>de</strong> una base<br />

<strong>de</strong> conocimiento a otra es sencillamente imposible. Otro factor importante es<br />

el manejo <strong>de</strong> información incompleta o aproximada, el tratamiento <strong>de</strong> la<br />

incertidumbre constituye uno <strong>de</strong> los campos fundamentales <strong>de</strong> la Inteligencia<br />

Artificial, sin embargo pocos Shells cuentan con métodos que permitan tratar<br />

con el manejo <strong>de</strong> incertidumbre, ya sea con el método probabilístico clásico,<br />

re<strong>de</strong>s bayesianas o factores <strong>de</strong> certeza.<br />

La Herramienta Software para la Construcción <strong>de</strong> Sistemas Basados en el<br />

Conocimiento <strong>UD</strong> Shell <strong>Versión</strong> 2.0 utiliza como método <strong>de</strong> representación<br />

<strong>de</strong>l conocimiento los Sistemas <strong>de</strong> Producción, junto con sus dos métodos <strong>de</strong><br />

2


CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

inferencia (enca<strong>de</strong>namiento hacia a<strong>de</strong>lante y enca<strong>de</strong>namiento hacia atrás)<br />

los cuáles simulan la inducción y <strong>de</strong>ducción <strong>de</strong>l razonamiento humano.<br />

B. ¿Cómo se Desarrolló?<br />

Se utilizó la metodología <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> software orientada a objetos P<strong>UD</strong><br />

Plan Unificado <strong>de</strong> Desarrollo usando notación UML (Lenguaje <strong>de</strong> Mo<strong>de</strong>lado<br />

Unificado) tanto para su mo<strong>de</strong>lo lógico como para su mo<strong>de</strong>lo físico. En el<br />

mo<strong>de</strong>lo lógico se especifica el comportamiento <strong>de</strong>l sistema (<strong>de</strong>sarrollo y<br />

ejecución <strong>de</strong> las bases <strong>de</strong> conocimiento creadas con la Herramienta Software<br />

para la Construcción <strong>de</strong> Sistemas Basados en el Conocimiento <strong>UD</strong> Shell<br />

<strong>Versión</strong> <strong>2.0.</strong>), y en el mo<strong>de</strong>lo físico se <strong>de</strong>finen las clases y sus relaciones,<br />

colaboración entre objetos; mediante el uso <strong>de</strong> diagramas <strong>de</strong> clases,<br />

diagramas <strong>de</strong> secuencia, diagramas <strong>de</strong> activida<strong>de</strong>s. Como lenguaje <strong>de</strong><br />

programación se utilizó Java 2, por ser multiplataforma y un lenguaje<br />

universal.<br />

Mediante el uso <strong>de</strong> factores <strong>de</strong> certeza se busca manejar la incertidumbre<br />

propia <strong>de</strong> los expertos para obtener resultados más confiables, haciendo que<br />

cada regla sea capaz <strong>de</strong> asociar cierta información y combinarla localmente a<br />

medida que se enca<strong>de</strong>nen las reglas. Al hacer que <strong>UD</strong> Shell utilice<br />

metaconocimiento se busca que el sistema proporcione un mecanismo <strong>de</strong><br />

revisión en la construcción <strong>de</strong> las reglas para obtener como resultado bases<br />

<strong>de</strong> conocimiento libres <strong>de</strong> fallas tanto sintácticas como lógicas. A<strong>de</strong>más,<br />

proporciona una explicación más completa para que el usuario pueda saber<br />

verda<strong>de</strong>ramente qué condujo a la herramienta a dar la solución. Asimismo, el<br />

software verifica qué reglas no son usadas constantemente y solicita al<br />

usuario una revisión en su estructura.<br />

Las principales características con que cuenta <strong>UD</strong> Shell son:<br />

Factores De Certeza:<br />

El tratamiento <strong>de</strong> la incertidumbre constituye uno <strong>de</strong> los campos<br />

fundamentales <strong>de</strong> la Inteligencia Artificial, pues afecta en mayor o menor<br />

medida a todos los <strong>de</strong>más. En situaciones reales, no siempre es posible<br />

contar con toda la información, inclusive la información disponible pue<strong>de</strong> ser<br />

incorrecta, incompleta o cambiar muy rápidamente. En particular, una <strong>de</strong> las<br />

propieda<strong>de</strong>s esenciales <strong>de</strong> los sistemas expertos, y a la vez una <strong>de</strong> las más<br />

complejas, es el tratamiento <strong>de</strong> la incertidumbre; en <strong>UD</strong> Shell se hace por<br />

medio <strong>de</strong> factores <strong>de</strong> certeza (método también utilizado por MYCIN).<br />

Llamado por algunos autores como factores <strong>de</strong> certidumbre, surgió ante la<br />

necesidad <strong>de</strong> que fuese capaz <strong>de</strong> representar y razonar con la incertidumbre<br />

expresada por los expertos, se necesitaba un mo<strong>de</strong>lo <strong>de</strong> tratamiento <strong>de</strong> la<br />

incertidumbre capaz <strong>de</strong> asociar cierta información a cada regla y combinar<br />

localmente esa información a medida que se enca<strong>de</strong>nasen las reglas.<br />

3


- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />

III. Manejo <strong>de</strong> ecuaciones<br />

En vista <strong>de</strong> que el conocimiento no sólo se representa simbólicamente, se<br />

hizo necesaria la implementación <strong>de</strong> las operaciones: adición, sustracción,<br />

multiplicación, división, módulo y potenciación. A<strong>de</strong>más el uso <strong>de</strong><br />

operaciones lógicas: >, >=,


CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

IV. Módulo <strong>de</strong> presentación<br />

Look And Feel<br />

Buscando un entorno en don<strong>de</strong> el usuario final se encuentre trabajando a<br />

gusto se le permite cambiar la interfaz <strong>de</strong> <strong>UD</strong> Shell a diferentes estilos y / o<br />

colores, éstas pue<strong>de</strong>n escogerse <strong>de</strong> tres plataformas conocidas, la que trae<br />

Java por <strong>de</strong>fecto, la clásica <strong>de</strong> Windows o la interfaz <strong>de</strong> Unix.<br />

A. Arquitectura <strong>de</strong> un Sistema Basado en el Conocimiento (SBC)<br />

La arquitectura <strong>de</strong> un Sistema Basado en el Conocimiento refleja <strong>de</strong> alguna<br />

manera la estructura cognitiva y los procesos humanos. Ver la Figura 1. La<br />

primera parte <strong>de</strong> esta arquitectura es la memoria <strong>de</strong> largo plazo, en don<strong>de</strong><br />

guarda los hechos (Base <strong>de</strong> Hechos) y los conocimientos (Base <strong>de</strong><br />

Conocimientos) acerca <strong>de</strong>l dominio en el que tiene experiencia.<br />

SISTEMA BASADO EN CONOCIMIENTO<br />

BASE DE HECHOS<br />

MOTOR DE INFERENCIA<br />

UNIDADES DE ENTRADA / SALIDA<br />

BASE DE<br />

CONOCIMIENTO<br />

USUARIO PROGRAMAS<br />

EXTERNOS<br />

EXPERTO<br />

Figura 1. Arquitectura <strong>de</strong> un Sistema Basado en el Conocimiento<br />

La segunda parte es el sistema que realiza la función <strong>de</strong> razonamiento para<br />

resolver problemas (Motor <strong>de</strong> Inferencia). La tercera parte la conforman las<br />

unida<strong>de</strong>s <strong>de</strong> entrada y salida que permiten la comunicación entre el sistema y<br />

su entorno (subsistema <strong>de</strong> usuario, explicación y adquisición <strong>de</strong>l<br />

conocimiento). Adicionalmente algunos SBC pue<strong>de</strong>n contener otras<br />

herramientas <strong>de</strong> apoyo.<br />

5


- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />

A continuación se <strong>de</strong>scriben las principales características <strong>de</strong> estas<br />

unida<strong>de</strong>s:<br />

• Base <strong>de</strong> Conocimientos (BC). Es el componente más importante <strong>de</strong>l<br />

SBC. Contiene el conocimiento sobre el dominio en el cual se especializa.<br />

El conocimiento tiene que estar representado en la forma que resulte más<br />

a<strong>de</strong>cuada para el dominio <strong>de</strong> su competencia (Re<strong>de</strong>s Semánticas,<br />

Sistemas <strong>de</strong> Producción, Lógica <strong>de</strong> Predicados y Frames). Una base <strong>de</strong><br />

conocimientos <strong>de</strong>be ser coherente, rápida, modular, fácil <strong>de</strong> <strong>de</strong>sarrollar y<br />

mantener.<br />

• Base <strong>de</strong> Hechos (BH). Es el conjunto <strong>de</strong> información que no varía <strong>de</strong><br />

una sentencia a otra. Los hechos se diferencian <strong>de</strong> los datos en el sentido<br />

que los hechos forman parte <strong>de</strong>l SBC, mientras que los datos, al po<strong>de</strong>r<br />

variar <strong>de</strong> una solución a otra, conviene agruparlos en archivos externos al<br />

SBC.<br />

Algunos autores no consi<strong>de</strong>ran a la base <strong>de</strong> hechos en forma<br />

in<strong>de</strong>pendiente. Los conocimientos y los hechos pue<strong>de</strong>n aparecer<br />

conjuntamente en una sola base, la <strong>de</strong> conocimientos.<br />

• El Motor <strong>de</strong> inferencia (MI). Junto con la BC, constituye el núcleo <strong>de</strong>l<br />

SBC. Contiene los algoritmos con los cuales selecciona, <strong>de</strong>ci<strong>de</strong>, interpreta<br />

y aplica el conocimiento <strong>de</strong> la base <strong>de</strong> conocimientos sobre la base <strong>de</strong><br />

hechos con el fin <strong>de</strong> obtener la solución buscada. Un mecanismo <strong>de</strong><br />

inferencia <strong>de</strong>be ser in<strong>de</strong>pendiente <strong>de</strong>l conocimiento y <strong>de</strong> los hechos. Está<br />

caracterizado por:<br />

El lenguaje en que ha sido escrito.<br />

La velocidad <strong>de</strong> trabajo: Inferencias/segundo.<br />

Las estrategias <strong>de</strong> búsqueda <strong>de</strong> soluciones:<br />

No Or<strong>de</strong>nada: aleatoria, heurística.<br />

Or<strong>de</strong>nada: enca<strong>de</strong>namiento hacia a<strong>de</strong>lante (guiado por los<br />

datos, <strong>de</strong>ductivo), enca<strong>de</strong>namiento hacia atrás (guiado por<br />

los objetivos, inductivo).<br />

La forma en que elige el conocimiento.<br />

La posibilidad <strong>de</strong> incorporar metaconocimiento.<br />

El método que utiliza para la evaluación <strong>de</strong>l conocimiento<br />

incompleto o incierto.<br />

El intérprete <strong>de</strong> reglas se encarga <strong>de</strong> seleccionar aquéllas reglas cuya<br />

condición se satisfaga, pue<strong>de</strong> establecer si se satisface o no una condición<br />

consultando en la BH o preguntando al usuario. Cuando encuentra una regla<br />

cuya parte <strong>de</strong> condición se satisface la dispara ejecutando la parte <strong>de</strong> acción<br />

<strong>de</strong> la regla que pue<strong>de</strong> significar cosas distintas: añadir algo a la base <strong>de</strong><br />

hechos, hacer una sugerencia al usuario o consultar otro conjunto <strong>de</strong> reglas.<br />

6


CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

• Subsistema <strong>de</strong> usuario: Permite <strong>de</strong>scribir el problema al SBC, consta <strong>de</strong><br />

menús y gráficos para realizar un diálogo en forma sencilla.<br />

• Subsistema <strong>de</strong> explicación: Proporciona al usuario una justificación <strong>de</strong>l<br />

razonamiento realizado por el motor <strong>de</strong> inferencia, y pue<strong>de</strong> ser <strong>de</strong> dos<br />

tipos:<br />

Explicación <strong>de</strong> tipo why (por qué): cada vez que el usuario pi<strong>de</strong> al<br />

sistema la verdad o la falsedad <strong>de</strong> un hecho, éste pue<strong>de</strong> preguntar<br />

por qué le hace esa pregunta. La respuesta <strong>de</strong>l sistema será<br />

explicar la regla que quiere aplicar para lo cual necesita comprobar<br />

el hecho.<br />

Explicación <strong>de</strong> tipo how (cómo): cada vez que el sistema llega a<br />

una conclusión el usuario pue<strong>de</strong> preguntarle cómo ha llegado a<br />

ella. El sistema respon<strong>de</strong> mostrando el enca<strong>de</strong>namiento <strong>de</strong> reglas<br />

que se ha producido para llegar a la conclusión.<br />

• Subsistema <strong>de</strong> adquisición <strong>de</strong>l conocimiento: Permite actualizar los<br />

datos en la base <strong>de</strong> conocimientos, pue<strong>de</strong> darse <strong>de</strong> las siguientes formas:<br />

Actualización manual <strong>de</strong> conocimientos, en este caso el Ingeniero<br />

Conocimiento es quién interpreta la información dada por un<br />

experto para realizar la posterior actualización.<br />

La segunda forma es cuando el experto en el área ingresa<br />

directamente el conocimiento revisado sin la ayuda <strong>de</strong> un Ingeniero<br />

Conocimiento.<br />

B. ¿Cómo Funciona?<br />

La interfaz con el usuario <strong>de</strong> <strong>UD</strong> Shell esta diseñada a base <strong>de</strong> ventanas, lo<br />

que permite que el usuario tenga una buena comunicación con el sistema y a<br />

su vez un fácil <strong>de</strong>splazamiento ya que, se permite el manejo con mouse o<br />

teclado.<br />

<strong>UD</strong> Shell permite dos tipos <strong>de</strong> usuario para el trabajo en las Bases <strong>de</strong><br />

Conocimiento, como son "Experto" e "Ingeniero <strong>de</strong> Conocimiento". En el<br />

modo Ingeniero <strong>de</strong> Conocimiento se tiene control total <strong>de</strong> la Base <strong>de</strong><br />

Conocimiento (actualización, inferencia, cambio <strong>de</strong> clave, <strong>de</strong>sarrollo <strong>de</strong><br />

interfaz <strong>de</strong> presentación, realizar copias <strong>de</strong> seguridad, etc), mientras que el<br />

modo Experto no tiene acceso a la actualización <strong>de</strong> la Base <strong>de</strong> Conocimiento<br />

sino sólo al proceso <strong>de</strong> inferencia.<br />

El entorno <strong>de</strong> <strong>UD</strong> Shell consta <strong>de</strong> una ventana con:<br />

• Una barra <strong>de</strong> menús y sus respectivos submenús.<br />

7


• Una barra <strong>de</strong> herramientas.<br />

• Una ficha con 3 páginas.<br />

• Una barra <strong>de</strong> estado.<br />

- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />

Figura 2. Entorno <strong>de</strong> <strong>UD</strong> Shell.<br />

El conocimiento en <strong>UD</strong> Shell se representa tomando como base los Sistemas<br />

<strong>de</strong> Producción, ya que estos proporcionan una estructura que facilita la<br />

<strong>de</strong>scripción y ejecución <strong>de</strong> un proceso <strong>de</strong> búsqueda y representación. De<br />

aquí parten las Reglas <strong>de</strong> Producción, y por tanto su implementación a <strong>UD</strong><br />

Shell, ya que su simplicidad y similitud con el razonamiento humano han<br />

contribuido para su popularidad en diferentes dominios.<br />

Las reglas representan el conocimiento, utilizando un formato SI......<br />

ENTONCES, es <strong>de</strong>cir tienen 2 partes:<br />

• La parte SI, que es el antece<strong>de</strong>nte, premisa o condición.<br />

• La parte ENTONCES que es el consecuente, conclusión, acción o<br />

respuesta.<br />

Para agregar una regla primero se <strong>de</strong>be crear una hipótesis, como se<br />

muestra a continuación:<br />

8


CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

Figura 3. Agregar regla<br />

La tabla <strong>de</strong> los posibles valores <strong>de</strong>l factor <strong>de</strong> certeza es la siguiente, se<br />

muestra al dar click en el botón valores <strong>de</strong>l cuadro <strong>de</strong> dialogo nueva regla.<br />

Figura 4. Valores posibles <strong>de</strong>l Factor <strong>de</strong> Certeza<br />

Para crear una nueva condición, don<strong>de</strong> se incorporará toda la información<br />

pertinente a la condición, como lo es su atributo, valor, <strong>de</strong>scripción (opcional),<br />

operador matemático, operador lógico que permitirá unir las condiciones<br />

cuando hay más <strong>de</strong> una en una regla, a<strong>de</strong>más posee dos botones Agregar y<br />

Borrar condición.<br />

Figura 5. Agregar condición<br />

9


- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />

El proceso <strong>de</strong> inferencia consiste en la utilización <strong>de</strong>l dominio que esta<br />

almacenado en la Base <strong>de</strong> Conocimiento y el que el usuario facilita, para<br />

generar nuevo conocimiento, es <strong>de</strong>cir, con la información que se encuentra<br />

en la Base <strong>de</strong> Conocimiento y la suministrada por el usuario. Se pue<strong>de</strong> iniciar<br />

un proceso <strong>de</strong> búsqueda <strong>de</strong> soluciones empleando uno <strong>de</strong> los dos métodos<br />

<strong>de</strong> inferencia que <strong>UD</strong> Shell proporciona, como lo son el enca<strong>de</strong>namiento<br />

hacia a<strong>de</strong>lante y el enca<strong>de</strong>namiento hacia atrás. Si el usuario no brinda la<br />

información necesaria para este proceso <strong>de</strong> inferencia, difícilmente se podrán<br />

encontrar soluciones.<br />

El proceso <strong>de</strong> inferencia por medio <strong>de</strong>l enca<strong>de</strong>namiento hacia a<strong>de</strong>lante, parte<br />

<strong>de</strong> la información que el usuario suministra, es <strong>de</strong>cir está orientado por los<br />

datos. Esta información se introduce en la base <strong>de</strong> hechos y a partir <strong>de</strong> dicha<br />

información, <strong>UD</strong> Shell comienza a <strong>de</strong>ducir qué nuevos hechos se pue<strong>de</strong>n<br />

agregar a la base <strong>de</strong> hechos, teniendo en cuenta que una regla se pue<strong>de</strong><br />

disparar si todas sus condiciones se cumplen. Si hay reglas que se pue<strong>de</strong>n<br />

disparar, su parte conclusión se agrega a la base <strong>de</strong> hechos como un nuevo<br />

hecho.<br />

Este proceso en <strong>UD</strong> Shell se realiza así: primero se selecciona<br />

Enca<strong>de</strong>namiento a<strong>de</strong>lante <strong>de</strong>l menú Inferencia, inmediatamente <strong>UD</strong> Shell<br />

visualiza el panel <strong>de</strong> enca<strong>de</strong>namiento hacia a<strong>de</strong>lante.<br />

Figura 6. Panel enca<strong>de</strong>namiento hacia a<strong>de</strong>lante<br />

El proceso <strong>de</strong> inferencia por medio <strong>de</strong>l enca<strong>de</strong>namiento hacia atrás, parte <strong>de</strong><br />

los objetivos, es <strong>de</strong>cir, parte <strong>de</strong> una hipótesis. Se intenta verificar si la<br />

hipótesis sugerida se satisface o no. <strong>UD</strong> Shell examina que reglas se pue<strong>de</strong>n<br />

disparar para concluir que la hipótesis es cierta.<br />

Este método <strong>de</strong> inferencia tiene una gran ventaja y es que solicita<br />

únicamente la información necesaria para ejecutar las reglas que estén<br />

relacionadas con la hipótesis seleccionada.<br />

10


CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

En <strong>UD</strong> Shell, este método <strong>de</strong> inferencia inicia visualizando el panel <strong>de</strong><br />

enca<strong>de</strong>namiento hacia atrás, que contiene una lista con todas las hipótesis<br />

<strong>de</strong> las reglas existentes y un botón llamado "Inferir" que es el encargado <strong>de</strong><br />

iniciar el proceso <strong>de</strong> inferencia hacia atrás.<br />

Figura 7. Panel enca<strong>de</strong>namiento hacia atrás<br />

C. Resultados<br />

<strong>UD</strong> Shell es una herramienta multiplataforma <strong>de</strong> propósito general puesto<br />

que se pue<strong>de</strong> usar en cualquier dominio <strong>de</strong>l conocimiento, admite la<br />

manipulación <strong>de</strong> múltiples bases <strong>de</strong> conocimiento, mejorando no sólo la<br />

representación <strong>de</strong>l conocimiento sino que también disminuyendo la<br />

complejidad y el tiempo <strong>de</strong> creación <strong>de</strong> las mismas. Presenta una interfaz<br />

amigable con el usuario con el fin <strong>de</strong> ponerlo en un ambiente <strong>de</strong> trabajo<br />

cómodo y <strong>de</strong> fácil manejo, posibilitando que el experto brin<strong>de</strong> información<br />

adicional sobre la base <strong>de</strong> conocimiento in<strong>de</strong>pendiente <strong>de</strong> la justificación <strong>de</strong><br />

las reglas ingresadas. A<strong>de</strong>más la herramienta permite reutilizar bases <strong>de</strong><br />

conocimiento existentes mediante el uso <strong>de</strong> importar, cortar, copiar y pegar.<br />

Posee un buen manejo <strong>de</strong> seguridad restringiendo el acceso a usuarios no<br />

<strong>de</strong>seados, realizando auto guardado según un intervalo <strong>de</strong> tiempo<br />

seleccionado por el usuario, por otra parte tiene la opción <strong>de</strong> realizar copias<br />

<strong>de</strong> seguridad en caso <strong>de</strong> fallas en el suministro eléctrico, bloqueo <strong>de</strong>l<br />

sistema. El usuario pue<strong>de</strong> seleccionar una apariencia según el Sistema<br />

Operativo instalado proporcionando una interfaz más amigable. Una<br />

particularidad a <strong>de</strong>stacar es el uso <strong>de</strong> dos métodos <strong>de</strong> inferencia<br />

(enca<strong>de</strong>namiento hacia a<strong>de</strong>lante y enca<strong>de</strong>namiento hacia atrás, mientras que<br />

otros shells (Microexpert, Emycin, Esbac, etc.) solo implementan uno.<br />

La herramienta muestra una lista <strong>de</strong> las reglas ejecutadas para llegar a<br />

cumplir un objetivo, a<strong>de</strong>más muestra porque se ejecuto una regla.<br />

<strong>UD</strong> Shell ha servido <strong>de</strong> ayuda para las <strong>Universidad</strong>es (Distrital, Nacional,<br />

Uniboyacá, La Salle, Fundación Universitaria Konrad Lorenz y<br />

11


- <strong>Universidad</strong> <strong>de</strong> <strong>Manizales</strong>, enero – junio / 2005<br />

Cundinamarca) en la enseñanza <strong>de</strong> parte <strong>de</strong>l contenido <strong>de</strong>l área <strong>de</strong><br />

Inteligencia Artificial siendo actualmente utilizada por más <strong>de</strong> 250 personas.<br />

A<strong>de</strong>más estamos <strong>de</strong>sarrollando un programa alternativo a los que<br />

actualmente se están realizando en Colombia.<br />

<strong>UD</strong> Shell se presento a la comunidad académica por medio <strong>de</strong> conferencias<br />

realizadas a los estudiantes <strong>de</strong> Inteligencia Artificial <strong>de</strong> la <strong>Universidad</strong> Distrital<br />

y en un concurso <strong>de</strong> software a nivel <strong>de</strong> la facultad obtuvo el primer puesto,<br />

a<strong>de</strong>más se presentó en el “Premio Nacional a la Innovación en Tecnologías<br />

<strong>de</strong> la Información y las Comunicaciones – 2003”, realizado por ETB y la<br />

<strong>Universidad</strong> Nacional <strong>de</strong> Colombia. También en el I Congreso Binacional <strong>de</strong><br />

Tecnologías Informáticas UFPS, que se llevó a cabo en Cúcuta <strong>de</strong>l 29 <strong>de</strong><br />

septiembre al 2 <strong>de</strong> octubre <strong>de</strong> 2004.<br />

V. Conclusiones<br />

• Los Sistemas Expertos y los Sistemas Basados en el Conocimiento son<br />

importantes en toda área <strong>de</strong>l conocimiento, tanto para la enseñanza <strong>de</strong> la<br />

inteligencia artificial como para la toma <strong>de</strong> <strong>de</strong>cisiones en las finanzas, la<br />

medicina, los estándares <strong>de</strong> calidad, etc. Es por esto que se hace<br />

necesario el <strong>de</strong>sarrollo <strong>de</strong> shells que proporcionen herramientas para la<br />

construcción <strong>de</strong> bases <strong>de</strong> conocimiento libres <strong>de</strong> fallas.<br />

• <strong>UD</strong> Shell es una herramienta <strong>de</strong> <strong>de</strong>sarrollo fácil <strong>de</strong> manejar y enten<strong>de</strong>r,<br />

por lo tanto pue<strong>de</strong> ser utilizada por cualquier persona interesada en la<br />

construcción <strong>de</strong> Sistemas Expertos y Sistemas Basados en el<br />

Conocimiento en cualquier dominio.<br />

• Con el manejo <strong>de</strong> incertidumbre se hace más fácil el manejo <strong>de</strong><br />

información parcial, incompleta, errónea, imprecisa dándole a los<br />

Sistemas Basados en el Conocimiento la habilidad <strong>de</strong> manipular<br />

información menos específica.<br />

• El metaconocimiento brinda la posibilidad <strong>de</strong> construir reglas <strong>de</strong> una<br />

forma correcta sin caer en errores <strong>de</strong> diseño, a<strong>de</strong>más <strong>de</strong> brindar una<br />

mejor explicación al momento <strong>de</strong> inferir.<br />

• Una característica que hace diferente a <strong>UD</strong> Shell <strong>de</strong> otras herramientas<br />

en la utilización <strong>de</strong> dos métodos <strong>de</strong> inferencia como lo son el<br />

enca<strong>de</strong>namiento hacia a<strong>de</strong>lante y el enca<strong>de</strong>namiento hacia atrás.<br />

• A pesar <strong>de</strong> las ventajas que presenta esta solución, en nuestro país el<br />

<strong>de</strong>sarrollo <strong>de</strong> Shells no se ha masificado, <strong>de</strong>bido a las i<strong>de</strong>as erróneas <strong>de</strong><br />

altos gastos en equipos e infraestructura para su implementación,<br />

a<strong>de</strong>más se cree carecer <strong>de</strong> personal que domine este tipo <strong>de</strong> tecnologías;<br />

12


CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA<br />

por esto, es fundamental realizar investigaciones que <strong>de</strong>n cómo resultado<br />

herramientas que permitan popularizar este tipo <strong>de</strong> software.<br />

Referencias<br />

[1] Dankel, Douglas D. (1993). The Engineering Of Knowledge-Based<br />

Systems. Theory And Practice. Editorial Prentice Hall, New Jersey.<br />

[2] Giarratano, Joseph. (2001). Sistemas Expertos Principios y<br />

Programación. International Thomson Editores, México.<br />

[3] McClure, Carma L. (1993). CASE La Automatización <strong>de</strong>l Software.<br />

Editorial Addison - Wesley Iberoamericana.<br />

[4] Nixford, Siemens. (1991). Sistemas Expertos. Parte 2: Experiencia <strong>de</strong> la<br />

Práctica. Editorial Marcombo S.A., España.<br />

[5] Puerta, José Miguel. (1998). Sistemas Expertos Probabilísticos. Ediciones<br />

<strong>de</strong> la <strong>Universidad</strong> <strong>de</strong> Castilla, La Mancha.<br />

[6] Rolston, David W. (2003). Inteligencia Artificial y Sistemas Expertos.<br />

Editorial McGraw-Hill. Bogotá, Colombia.<br />

13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!