SISTEMA EXPERTO BASADO EN REGLAS PARA ASESORAR LA ASIGNACION DE UN ANALISTA EN
UNA EMPRESA DE REDES
MENDEZ ECHEVARRIA, ALESSIA Estudiante Ing. Informtica Universidad Nacional de Trujillo alessia.mendez@hotmail.com
REYES MOZO, LIZETH Estudiante Ing. Informtica Universidad Nacional de Trujillo lizeth_12_0414@hotmail.com
ING. ARTURO DIAZ PULIDO
RESUMEN
Hoy en da la diferencia entre organizaciones del entorno bsicamente esta dada por la presencia de automatizacin en sus procesos e incluso mas all debido a la presencia de software en la ayuda de toma de decisiones, dentro de ellos se encuentra los sistemas expertos basado en reglas es por este motivo, implementaremos un sistema experto cuyo propsito es asesorar la asignacin de un tipo de analista segn los requerimiento de un cliente dado en una empresa que brinda el servicio de diseo y anlisis de redes LAN. Para ello realizaremos una serie de pasos y especificaciones con la que la empresa trabaja para luego realizar un estudio y anlisis para la construccin de dicho sistema experto.
Palabras clave: sistema experto, reglas lgicas, inteligencia artificial, analista de redes
1. INTRODUCCIN
Los sistemas expertos se pueden considerar como el primer producto verdaderamente operacional de la inteligencia artificial. Son programas de ordenador diseados para actuar como un especialista humano en un dominio particular o rea de conocimiento. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizar para ello el conocimiento que tenga almacenado y algunos mtodos de inferencia. Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fcil, reuniendo dos capacidades para poder cumplirlo: 1. Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicacin para cada una de estas reglas, que a la vez se basan en hechos. 2. Adquisicin de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que sta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con ms rapidez y eficacia todas las tareas que realiza.
1.1. Usos de un SE
Sus principales aplicaciones se dan en las gestiones empresariales debido a que casi todas las empresas disponen de un ordenador que realiza las funciones bsicas de tratamiento de la informacin: contabilidad general, decisiones financieras, gestin de la tesorera, planificacin, etc. ,este trabajo implica manejar grandes volmenes de informacin y realizar operaciones numricas para despus tomar decisiones. Esto crea un terreno ideal para la implantacin de los SE. Adems los SE tambin se aplican en la contabilidad en apartados como: Auditoria (es el campo en el que ms aplicaciones de Sistema Experto se est realizando) Fiscalidad, planificacin, anlisis financiero y la contabilidad financiera.
reas de aplicacin
Los Sistemas Expertos se aplican a una gran diversidad de campos y/o reas. A continuacin se listan algunas de las principales:
Militar Informtica Telecomunicaciones Qumica Derecho Aeronutica Geologa Arqueologa Agricultura Electrnica Transporte Educacin Medicina Industria Finanzas y Gestin
La aplicacin de los sistemas expertos ser adecuada all donde los expertos dispongan de conocimientos complejos en un rea muy delimitada, donde no existan algoritmos ya establecidos(o donde los existentes no pueden solucionar algunos problemas)
1.2. Arquitectura y funcionamiento de un SE
La arquitectura de un sistema experto est basada en una entrada de datos realizada por el usuario a fin de efectuar la oportuna consulta. Las entradas no solamente estn compuestas de estas consultas. El aprendizaje del sistema y las condiciones especficas del problema a tratar tambin han de encontrarse en la entrada. Junto a ello, se encuentra la administracin del sistema, compuesta por un interfaz encargado del manejo de la sintaxis del lenguaje y de la mquina de interferencias, que se encarga de efectuar la bsqueda de base de datos. Por ltimo, se tienen los resultados. Partes de un sistema experto:
Base de Conocimiento (BC): contiene conocimiento modelado extrado del dialogo experto. Base de Hechos (memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el anlisis. Motor de Inferencia: Modela el proceso de razonamiento humano. Mdulos de Justificacin: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusin Interfaz de Usuario: Es la interaccin entre el SE y el usuario y se realiza mediante el lenguaje natural Modulo de Comunicaciones: Es la interaccin con otros sistemas o con el otro experto, para poder recoger informacin o consultar bases de datos. Mdulo de adquisicin de Conocimientos: Permite al experto, la construccin de la base de conocimiento de una forma sencilla, as como disponer de una herramienta de ayuda para actualizar la base del conocimiento cuando sea necesario
1.3. Ventajas de un SE 1.3.1. Ventajas
Permanencia: A diferencia de un experto humano un SE (sistema experto) no envejece y por tanto no sufre prdida de facultades con el paso del tiempo Rapidez: Un SE puede obtener informacin de una base de datos y realizar clculos numricos mucho ms rpido que cualquier ser humano Duplicidad: una vez programado un lo podemos duplicar infinidad de veces Bajo costo: a pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicacin el coste finalmente es bajo Entornos peligrosos: un SE puede trabajar en entornos peligrosos o dainos para el ser humano 1.4. Lenguaje de Programacin
1.4.1. Introduccin a Prolog.
Prolog es un lenguaje de programacin diseado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienen conocimiento. Forma parte de lo que se conoce como programacin declarativa. En lenguajes tradicionales se indica como resolver un problema, en la programacin lgica se establecen hechos reales y reglas para as no saber como resolver el problema, sino que hacer para resolverlo. La popularidad de este lenguaje se debe a su capacidad de deduccin y adems es un lenguaje fcil de usar por su semntica y sintaxis. Slo busca relaciones entre los objetos creados, las variables y las listas, que son su estructura bsica. En este artculo se dar una resea histrica, para entender los orgenes del Prolog, una pequea descripcin del programa, as como las estructuras bsicas y algunos operadores. Tambin se mencionaran algunas ventajas y desventajas de Prolog, as como casos de uso. Por ltimo se mostrarn tres ejemplos para mostrar la sintaxis y funcionamiento de Prolog.
1.4.2. Caractersticas de Prolog
Un programa en Prolog consiste de una base de datos de relaciones lgicas y detalles que se cumplen para la aplicacin. Dicha base de datos no tiene una estructura impuesta, ni un procedimiento o clase principal. Los datos y relaciones de un programa en Prolog se escriben en un nico archivo, el cual es consultado por el programa cuando se le hace una pregunta. Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de los objetos, adems de sus relaciones y sus reglas. En lugar de correr en un programa para obtener una solucin, se hace una pregunta, el programa revisa la base de datos para encontrar la solucin a la pregunta. Si existe ms de una solucin, Prolog hace backtracking para encontrar soluciones distintas. El propio sistema es el que deduce las respuestas a las preguntas que se le plantean, dichas respuestas las deduce del conocimiento obtenido por el conjunto de reglas dadas. La ejecucin de Prolog consiste en una bsqueda en profundidad de un rbol conteniendo todas las posibles soluciones. Para cada una de ellas se evaluar su validez. La estructura de un programa en Prolog es lgica y directa. Se explican cada una de sus partes y operadores disponibles a continuacin.
Estructura de un programa en Prolog
La sintaxis Prolog incluye:
Hechos: es un hecho del lenguaje cotidiano. En lenguaje normal, una proposicin puede ser hace calor. Reglas: las capacidades del programa. Estas son consultadas al hacer una consulta para verificar su validez o invalidez. Variables: Representan objetos que el mismo Prolog determina. Una variable puede estar instanciada o no instanciada. Consultas: es la accin de hacerle una pregunta al programa sobre la informacin contenida en la base de datos. Una pregunta sencilla podra ser: ?- 'Hace Calor'. Una respuesta podra ser: si, seguido por el prompt: ?-. Un si significa que la pregunta es consistente con la informacin contenida en la base de datos. Si no existe suficiente informacin, responde: no.
1.4.3. Ventajas y Desventajas Ventajas Una ventaja desde el punto de vista del usuario es la facilidad para programar ya que se pueden escribir programas rpidamente, con pocos errores originando programas claramente legibles, aun si no se conoce muy bien el lenguaje. Otra ventaja de este tipo de lenguajes frente a otros, como Java o C++, es que no hay que pensar demasiado en la solucin del problema, ya que Prolog infiere sus respuestas basndose en las reglas declaradas dentro del programa. Desventajas La resolucin automtica no siempre es eficiente, por lo que eventualmente se podra dar una respuesta incorrecta a una consulta. Ciertos problemas estn ligados a la representacin del conocimiento, que Prolog no posee. Prolog es algunas veces es incapaz de reconocer que un problema es (para su propio conocimiento) inaplicable o insuficiente. Si el programa no contiene suficiente informacin para contestar una consulta, es incapaz de reconocerlo y responde no. En esta situacin sera ms eficiente conocer que la respuesta no es negativa, sino que no es posible inferir un resultado. Los motores de inferencia poseen algunos lmites.
2. ASIGNACION DE UN ANALISTA DE REDES
2.1. Planeamiento y Diseo
2.1.1. Requerimientos
Se requiere desarrollar un Sistema Experto para asesorar la asignacin de un analista segn los requerimientos de un cliente dado en una empresa que brinda el servicio de diseo y anlisis de redes LAN.
El sistema ser capaz de determinar el tipo de analista que debe ser asignado segn el problema del cliente. Se considera 3 tipos de analista: principiante, entrenado y experimentado. Considerando los siguientes factores de anlisis:
a) Tamao de la organizacin (nro. de personas que trabajan en la empresa): 20, menos de 100, menos de 500 o ms de 500 personas. De este modo se establece si la empresa es pequea, mediana, grande y muy grande. b) Presupuesto estimado para este proyecto: menor que 10000, mayor o igual que 10000 y menor que 50000, o mayor que 50000. Esto determina si el presupuesto es bajo, medio o alto. c) Costo: para determinar el costo estimado el SE debe consultar por el nmero de computadoras que sern conectadas, nmero de pisos en el edificio y nmero de edificios. Para calcular el costo estimado se proceder: - Tarjetas de red: $600 * nmero de nodos - Cableado: $2000 * nmero de pisos + 8000 * nmero de edificios - Mantenimiento: 9% del costo neto - Consultora: $2000 + 6% del costo neto (sin considerar mantenimiento) Luego calculamos un factor de costo dividiendo el costo estimado entre el presupuesto del cliente. Si el factor de costo es menor que 1, se considera que el costo esta aceptable, si el factor de costo es mayor que 1 y menor o igual que 1.5, el costo esta en rango, pero si el factor de costo es mayor que 1.5. se considera que el costo es alto. La decisin se toma considerando el nivel de presupuesto y el tamao de la organizacin combinado con el nivel del costo. Por ejemplo para pequeos presupuestos y pequeos tamaos de organizacin, aun sin interesar el costo se debe asignar a un analista principiante, pero en el otro extremo, se debe seleccionar entre un entrenado o experimentado.
La aplicacin de la tecnologa de SISTEMA EXPERTO al problema de la empresa de servicio de diseo y anlisis de redes LAN brindar como beneficios:
Una determinacin del tipo de analista a asignarse, de acuerdo a los requerimientos del cliente. El Sistema Experto disminuir el tiempo perdido en la determinacin del tipo de analista, as tendr a cada trabajador ya sea principiante, entrenado y experimentado libres para otros diferentes usuarios que lo necesiten. El Sistema Experto puede ser duplicado y usado donde sea que la empresa necesite dar el servicio.
2.1.2. Diagrama de bloque
Comprendido y entendido, tenemos que proceder a evaluar lo siguiente: Nivel de Presupuesto: Necesitamos saber Cul es el presupuesto estimado que cuenta la empresa para el proyecto? As sabremos si ser bajo, medio o Alto. Tamao de la Organizacin: Necesitamos saber el nmero de personas que trabajan en la organizacin. As sabremos si se trata de una pequea, mediana, grande o muy grande empresa. Nivel de Costo: Se involucra el Factor de Costo, para esto se necesita el presupuesto estimado y el costo estimado, esto nos dar si es: aceptable, en rango o alto. Mostramos a continuacin una mejor comprensin y abstraccin mediante el diagrama de bloques
Fig. Diagrama de bloque de la situacin decidida del SE
Dependiendo de la respuesta, al cliente se le asignara un: Analista Principiante. Analista Entrenado. Analista Experimentado. Determinacin del Tipo de Analista Tamao de la Organizacin Nivel del Presupuesto Nivel de Costo Presupuesto Estimado Costo Estimado Nmero de Personas Presupuesto Estimado Factor de Costo 2.1.3. Tabla de Decisiones
En la planeacin de la tabla de decisin surge del conjunto de reglas, en la que intervienen las tres condiciones, cada una de ellas puede tomar un nmero diferente de valores. Cuando los valores y condiciones estn totalmente listadas, puede determinarse el nmero de renglones de la tabla de decisin. En este caso hay 36 renglones: tres posibilidades para el nivel de presupuesto, por cuatro posibilidades para tamao de organizacin, por tres opciones para el nivel del costo
Condiciones: N de valores Nivel de Presupuesto (bajo, medio, alto) = 3 Tamao de la Organizacin (pequea, mediana, grande, muy grande) = 4 Nivel de Costo (Aceptable, En rango, Alto) = 3 Renglones = 3 x 4 x 3 = 36
Las reglas para la base de conocimiento, cada regla de la tabla de decisin se convierte en una regla SI-ENTONCES. La estructura y sintaxis de una regla est empieza con la palabra IF seguida por las condiciones. Una serie de condiciones pueden ser enlazadas con operadores lgicos OR (o) y AND (y). AND significa que las condiciones a ambos lados del operador deben ser verdaderas para que la regla se dispare.
REGLA1 IF presupuesto = bajo AND Nro. Personas = pequeo AND Nivel del Costo= Aceptable THEN Determinacin del tipo de analista = principiante;
Esta regla dice, Si durante la consulta, el valor de la variable presupuesto es bajo, Y el valor de la variable Nro. Personas es pequeo, Y el valor de la variable Nivel del Costo es Aceptable ENTONCES a la variable Determinacin del tipo de analista asignarle principiante.
Regla Nivel de Presupuesto Tamao de la Organizacin Nivel de Costo Conclusin de Determinacin del Tipo de Analista A1 bajo pequea aceptable principiante A2 bajo pequea En rango principiante A3 bajo pequea alto principiante A4 bajo mediana aceptable principiante A5 bajo mediana En rango principiante A6 bajo mediana alto principiante Regla Nivel de Presupuesto Tamao de la Organizacin Nivel de Costo Conclusin de Determinacin del Tipo de Analista A7 bajo grande aceptable entrenado A8 bajo grande En rango entrenado A9 bajo grande alto entrenado A10 bajo muy grande aceptable experimentado A11 bajo muy grande En rango experimentado A12 bajo muy grande alto experimentado A13 medio pequea aceptable principiante A14 medio pequea En rango principiante A15 medio pequea alto principiante A16 medio mediana aceptable entrenado A17 medio mediana En rango entrenado A18 medio mediana alto entrenado A19 medio grande aceptable entrenado A20 medio grande En rango entrenado A21 medio grande alto entrenado A22 medio muy grande aceptable experimentado A23 medio muy grande En rango experimentado A24 medio muy grande alto experimentado A25 alto pequea aceptable entrenado A26 alto pequea En rango entrenado A27 alto pequea alto entrenado A28 alto mediana aceptable entrenado A29 alto mediana En rango entrenado A30 alto mediana alto entrenado A31 alto grande aceptable experimentado A32 alto grande En rango experimentado A33 alto grande alto experimentado A34 alto muy grande aceptable experimentado A35 alto muy grande En rango experimentado A36 alto muy grande alto experimentado
2.2. Implementacin
Para implementar nuestro sistema experto, esta dividido bsicamente en dos bloque la parte lgica y nuestra interfaz.
2.2.1. Diseo de Interfaz Existen predicados definidos los cuales nos ayudan a definir una interfaz en Prolog. Crea una ventana de dialogo new(nombre, dialog(sistema experto)
Cdigo que crea una caja de texto donde ingresaremos nuestros valor y se almacenara en la variable Persona y tambin creara una etiqueta que podremos llamaremos numero_trabajadores new(Personas, text_item (numero_trabajadores)),
Crear botones donde existirn en nuestra interfaz de usuario. button(cancelar, hacer_predicado).
F Fig. Codigo en prolog de GUI
2.2.2. Reglas
El motor de inferencias trata de emparejar la lista de hechos con los patrones de las reglas. Las reglas fueron definidas con anterioridad de esa manera al obtener el valor de las respuestas, decidir cual es el analista correspondiente.
Primero el sistema evaluara los datos ingresados para luego obtener el nivel de presupuesto, luego el tamao de la empresa y el nivel del costo para ello utilizaremos los siguiente predicados que fueron tomados del anlisis del SE
Fig. Cdigo de las evaluaciones y clculo de los datos.
Luego de evaluacin para cada dato se determinara las reglas donde nos dir el tipo de analista que se necesita
F i g .
C o d i g o
e n
p r F Fig. Cdigo en prolog de las reglas para el motor de inferencia
3. EJECUCION
Para poder realizar la ejecucin del sistema experto escribiremos nuestro predicado ventana. De la siguiente manera
Para luego mostrar la siguiente interfaz donde nos pedir los siguientes datos
Prueba N1: Para 5000 trabajadores, con un presupuesto de 50000 nuevos soles, numero de edificios 50 y numero de pisos 5 para comunicar 300 nodos.
Prueba N2: Para 150 trabajadores, con un presupuesto de 5000 nuevos soles, numero de edificios 5 y numero de pisos 3 para comunicar 40 nodos.
Prueba N3: Para 50 trabajadores, con un presupuesto de 300 nuevos soles, numero de edificios 1 y numero de pisos 4 para comunicar 20 nodos.