Sistema Experto
Short Description
Descripción: Sistema Experto...
Description
Facultad de Ingeniería de Sistemas, Computación y Telecomunicaciones
“Sistema Experto Para Mantenimiento y Reparación De Computadoras” CURSO: SISTEMAS BASADOS EN EL CONOCIMIENTO
INFORME DE CURSO MODALIDAD NO PRESENCIAL
Presentado por
CARLOS ENRIQUE ARANGO PARRA
INDICE DE CONTENIDO RESUMEN...................................................................................................... 3 PALABRAS CLAVES...................................................................................... 3 1. INTRODUCCION..................................................................................... 3 1.1. Usos de un Sistema Experto.........................................................4 1.2. Arquitectura y Funcionamiento de un Sistema Experto..........5 Imagen 1: Arquitectura de un Sistema Experto....................................5 1.2.1. Base de Conocimientos...........................................................6 1.2.2. Base de Datos...........................................................................6 1.2.3. Motor de Inferencias...............................................................8 1.2.4. Interfaz con el Usuario............................................................9 1.2.5. Módulo de Explicación.............................................................9 1.2.6. Módulo de Adquisición..........................................................10 1.3. Ventajas e Inconvenientes de un Sistema Experto................10 1.3.1. Ventajas................................................................................... 10 1.3.2. Inconvenientes.......................................................................11 1.4. Lenguaje de Programación Usado.............................................12 1.4.1. Introducción a Prolog............................................................12 1.4.2. Características de Prolog.....................................................12 2. NOMBRE DE SISTEMA EXPERTO.......................................................13 2.1. Planteamiento y diseño..............................................................13 2.2. Implementación............................................................................15 2.2.1. Base de Conocimiento...........................................................15 2.2.2. Motor de Inferencia...............................................................19 3. EJECUCIÓN........................................................................................... 21 4. REFERENCIAS BIBLIOGRÁFICAS........................................................23
INDICE DE ILUSTRACIONES Ilustración 1: Arquitectura de un Sistema Experto..............................5 Ilustración 2: Base de Conocimiento.......................................................6 Ilustración 3: Base de Datos.....................................................................7 Ilustración 4: Comparación entre Base de conocimiento y Base de Datos............................................................................................................. 8 Ilustración 5: Inicio................................................................................... 21
P á g i n a 1 | 19
Ilustración 6: Pregunta 1.........................................................................21 Ilustración 7: Pregunta 2.........................................................................22 Ilustración 8: Pregunta 3.........................................................................22 Ilustración 9: Diagnóstico.......................................................................22
RESUMEN En el presente informe mostrare el desarrollo de un Sistema Experto para el Mantenimiento y Reparación de Computadoras en Prolog, basado en el análisis de algunos síntomas que muestra un computador defectuoso para su pronta reparación con el propósito de brindar al usuario una manera más precisa y rápida lo que estaría mal en su computador y ya luego de saber el diagnostico también nos mostrara la posible solución a su problema. Para ello utilizaremos una base de conocimiento donde guardaremos datos de problemas comunes que sufren las computadoras y sus posibles soluciones hallados en internet, también hablare de manera breve acerca de lo que es un Sistema Experto y sus características principales.
PALABRAS CLAVES Prolog, Sistema Experto, Base del conocimiento, Base de Datos, Motor de Inferencia, Interfaz, Modulo de Explicación, Modulo de Adquisición.
P á g i n a 2 | 19
1. INTRODUCCION Los sistemas expertos son programas que reproducen el proceso intelectual de un experto humano en un campo particular, pudiendo mejorar su productividad, ahorrar tiempo y dinero, conservar sus valiosos conocimientos y difundirlos más fácilmente. Un experto es alguien que posee unos determinados conocimientos y experiencia en un campo de la actividad humana y es capaz de aplicarlos con rapidez y eficiencia en la resolución de tareas diferentes aunque no le hayan sido encomendadas con anterioridad, pero que caen dentro de su dominio. Así, un sistema experto es un cuerpo de programas de ordenador que intenta imitar e incluso superar en algunas situaciones a un experto humano en un ámbito concreto de su actividad. No pretende, en absoluto, reproducir el pensamiento
humano,
sino
simplemente
la
pericia
de
un
profesional
competente (téngase en cuenta que para construir un SBC se suele contar con grandes expertos en la materia que incorporan su conocimiento al sistema). Esta pretensión es más sencilla ya que en algunos campos reducidos los expertos trabajan siguiendo reglas, aunque, generalmente, no sean conscientes de ello. En aquellos campos en los que no sea necesario aplicar la intuición ni el sentido común, los sistemas basados en el conocimiento han conseguido notables éxitos, consiguiendo en ocasiones ser más regulares y rápidos que los propios expertos.
1.1.
Usos de un Sistema Experto Los
sistemas
expertos
se
desenvuelven
en
distintas
áreas
del
conocimiento algunas de las más utilizadas son la medicina, ingeniería, administración, contabilidad, bolsa de valores. Un sistema experto puede resolver problemas y responder preguntas de manera mucho más rápida que un experto humano; por ello podríamos decir que son muy valiosos en casos en los que el tiempo es escaso. Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad
de
información,
interpretándola
y
proporcionando
una
recomendación a partir de la misma. Los sistemas expertos son buenos para predecir resultados futuros a partir del conocimiento que tienen. Los sistemas meteorológicos y de inversión en bolsa son ejemplos de utilización en este sentido. La planificación es la secuencia de acciones necesarias para lograr una meta. Conseguir una buena planificación a largo plazo es muy difícil. Por ello, se usan sistemas expertos para gestionar proyectos de desarrollo, planes de producción de fábrica, estrategia militar y configuración de complejos sistemas informáticos, entre otros.
P á g i n a 3 | 19
Cuando se necesita controlar un proceso tomando decisiones como respuesta a su estado y no existe una solución algorítmica adecuada, es necesario usar un sistema experto. Muchas veces se puede observar en campos que comprende el supervisar fábricas automatizadas, factorías químicas o centrales nucleares. Esto demuestra los distintos usos y el gran avance que tiene los sistemas expertos en el ámbito laboral y lo primordial que ayuda la toma de decisiones de muchos casos.
1.2.
Arquitectura y Funcionamiento de un Sistema Experto Los componentes básicos del sistema experto los podemos apreciar en la siguiente imagen y serán explicadas a continuación.
Ilustración 1: Arquitectura de un Sistema Experto.
P á g i n a 4 | 19
1.2.1.
Base de Conocimientos Es un tipo especial de base de datos para la gestión del conocimiento. Provee los medios para la recolección, organización y recuperación computarizada de conocimiento. Una base de conocimiento es un depósito de información creado gracias a una extensa investigación organizada en un árbol de conocimiento completo.
Datos son hechos en bruto Información son datos con el contexto y perspectiva. Conocimiento es información con una guía para la acción basad
en conocimiento y experiencia. La base de conocimiento cambia todo el tiempo debido a que el nuevo conocimiento la cambia.
Ilustración 2: Base de Conocimiento.
1.2.2.
Base de Datos Es un conjunto de datos pertenecientes a un mismo contexto y almacenamiento sistemáticamente para su posterior uso. Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
El conocimiento se puede utilizar para cambiar el estado del agente inteligente debido al proceso de aprendizaje involucrado, pero los datos no pueden.
P á g i n a 5 | 19
Los sistemas basados en datos únicamente procesan datos y no muestran información.
Ilustración 3: Base de Datos.
Ilustración 4: Comparación entre Base de conocimiento y Base de Datos
1.2.3.
Motor de Inferencias Es un programa que controla el proceso de razonamiento que seguirá el sistema experto, se podría decir que es el corazón de todo sistema experto. Utilizando los datos que se le suministran, recorre la base de conocimientos para alcanzar una solución. La estrategia de control puede ser de encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se comienza con los hechos disponibles en la base de datos, y se buscan reglas que satisfagan esos datos, es
P á g i n a 6 | 19
decir, reglas que verifiquen la parte SI. Normalmente, el sistema sigue los siguientes pasos: A. Evaluar las condiciones de todas las reglas respecto a la base de datos, identificando el conjunto de reglas que se pueden aplicar (aquellas que satisfacen su parte condición) B. Si no se puede aplicar ninguna regla, se termina sin éxito; en caso contrario se elige cualquiera de las reglas aplicables y se ejecuta su parte acción (esto último genera nuevos hechos que se añaden a la base de datos). C. Si se llega al objetivo, se ha resuelto el problema; en caso contrario, se vuelve al paso A. A este enfoque se le llama también guiado por datos, porque es el estado de la base de datos el que identifica las reglas que se pueden aplicar. Cuando se utiliza este método, el usuario comenzará introduciendo datos del problema en la base de datos del sistema. Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilístico. El motor de inferencia es también responsable de la propagación de este conocimiento incierto. Es probablemente es componente más débil de casi todos los sistemas expertos.
1.2.4.
Interfaz con el Usuario El interfaz de usuario permite que el usuario pueda describir el problema al sistema experto. Interpreta sus preguntas, los comandos y la información ofrecida ya que viene a ser el enlace entre el sistema experto y el usuario, por ello debe incorporar mecanismos eficientes para mostrar y obtener información de forma fácil y agradable. A la inversa, formula la información generada por el sistema incluyendo respuestas a las preguntas, explicaciones y justificaciones. Es decir, posibilita que la respuesta proporcionada por el sistema sea inteligible para el interesado. También puede solicitar más información si le es necesaria al sistema experto. En algunos sistemas se utilizan técnicas de tratamiento del lenguaje natural para mejorar la comunicación entre el usuario y el sistema experto. La mayoría de los sistemas expertos contienen un módulo de explicación, diseñado para aclarar al usuario la línea de razonamiento
P á g i n a 7 | 19
seguida en el proceso de inferencia. Si el usuario pregunta al sistema cómo ha alcanzado una conclusión, éste le presentará la secuencia completa de reglas usada. Esta posibilidad de explicación es especialmente valiosa cuando se tiene la necesidad de tomar decisiones importantes amparándose en el consejo del sistema experto. Además, de esta forma, y con el tiempo suficiente, los usuarios pueden convertirse en especialistas en la materia, al asimilar el proceso de razonamiento seguido por el sistema. El subsistema de explicación también puede usarse para depurar el sistema experto durante su desarrollo.
1.2.5.
Módulo de Explicación Explica el proceso seguido por el motor de inferencia o por el subsistema de ejecución (explicación de las conclusiones sacadas o de las acciones iniciadas por el sistema experto). Por ejemplo, si un cajero automático decide rechazar la palabra clave (una acción), la maquina puede mostrar un mensaje (una explicación) como la siguiente ¡Lo siento!, su palabra clave es todavía incorrecta tras tres intentos. Retenemos su tarjeta de crédito, para garantizar su seguridad. Por favor, póngase en contacto con su banco en horas de la oficina. En muchos dominios de aplicaciones es necesario la explicación de las conclusiones debido a los riesgos asociados con las acciones a ejecutar.
1.2.6.
Módulo de Adquisición El módulo de adquisición del conocimiento permite que se puedan añadir, eliminar o modificar elementos de conocimiento (en la mayoría de los casos reglas) en el sistema experto. Si el entorno es dinámico es muy necesario, puesto que, el sistema funcionará correctamente sólo si se mantiene actualizado su conocimiento. El módulo de adquisición permite efectuar ese mantenimiento, anotando en la base de conocimientos los cambios que se producen.
1.3. 1.3.1.
Ventajas e Inconvenientes de un Sistema Experto
Ventajas
Permanencia: A diferencia de un experto humano un Sistema Experto (sistema experto) no envejece, y por tanto no sufre pérdida de facultades con el paso del tiempo.
P á g i n a 8 | 19
Replicación: Una vez programado un Sistema Experto lo podemos
replicar infinidad de veces. Rapidez: Un Sistema Experto puede obtener información de una base de datos y realizar cálculos numéricos mucho más
1.3.2.
rápido que cualquier ser humano. Bajo costo: A pesar de que el costo inicial pueda ser elevado,
gracias a la capacidad de duplicación el coste finalmente es bajo. Entornos peligrosos: Un Sistema Experto puede trabajar en
entornos peligrosos o dañinos para el ser humano. Fiabilidad: Los Sistema Experto no se ven afectados
condiciones externas, un humano sí (cansancio, presión, etc.). Consolidar varios conocimientos. Apoyo Académico. Fácil acceso y disponibilidad de conocimiento experto. Respuestas no subjetivas. Permanencia del Sistema Experto.
por
Inconvenientes
Sentido común: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no ser que se especifique
que esto no es posible ya que un hombre no puede gestar hijos. Lenguaje natural: Con un experto humano podemos mantener
una conversación informal mientras que con un SE no podemos. Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y de errores ajenos, que un SE haga esto
es muy complicado. Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones relevantes de un problema y separarlas
de cuestiones secundarias. Capacidad sensorial: Un SE carece de sentidos. Flexibilidad: Un humano es sumamente flexible a la hora de
aceptar datos para la resolución de un problema. Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco estructurado.
1.4. 1.4.1.
Lenguaje de Programación Usado
Introducción a Prolog Prolog, del francés: Programation en Logique. Es el lenguaje declarativo, quien a partir de los datos introducidos deduce nuevos hechos y resuelve el problema automáticamente. PROLOG tiene incluido, por tanto, un motor de inferencia que se encarga de realizar búsquedas en su base de hechos.
P á g i n a 9 | 19
1.4.2.
Características de Prolog Prolog tiene las siguientes características:
Basado en lógica y programación declarativa. No se especifica cómo debe hacerse, sino qué debe lograrse. Una característica importante en Prolog y que lo diferencia de otros lenguajes de programación, es que una variable sólo puede tener
un valor mientras se cumple el objetivo. El programador se concentra más en el conocimiento que en los algoritmos. - ¿Qué es conocido? (hechos, reglas) - ¿Qué preguntar? (Cómo resolverlo)
En Prolog, se llega a una solución infiriéndola desde algo ya conocido.
2. NOMBRE DE SISTEMA EXPERTO 2.1.
Planteamiento y diseño Mediante el siguiente informe mostraremos el desarrollo de nuestro Sistema Experto basado en el diagnóstico de algunos problemas que suelen presentar las computadoras frecuentemente, con la finalidad de ayudar a las personas a resolver sus problemas de su computador de manera más rápida y eficiente. Para realizar este diseño hemos partido del diagrama de un árbol, en el que cada nodo tiene una pregunta asociada que se imprimirá por pantalla y que el cliente tendrá que responder, según la respuesta que responda el programa se encaminará a la rama del nodo correspondiente a la respuesta elegida por el cliente. Una vez recorrido todo el árbol se llegará a una de las hojas del árbol que contendrá la respuesta final. A continuación mostraremos el árbol de nuestro sistema Experto
¿Continuo reinicio automático del ordenador?
P á g i n a 10 | 19
N
SI
¿Al encender el equipo no carga absolutamente nada?
¿Error serio al escribir en la unidad ?
¿
N O
SI SI
¿El equipo se bloquea con cualquier aplicación?
…? ¿Error de datos al leer la unidad ?
SI …? RAM dañada
2.2.
…?
Implementación Para implementar nuestro Sistema Experto en Prolog dividimos el código en dos grandes bloques.
P á g i n a 11 | 19
2.2.1. Base de Conocimiento %BASE DE CONOCIMIENTOS ram:-ram_daniada, pregunta('Continuo reinicio automático del ordenador?'), pregunta('Al encender nada(pantalla negra?'),
el
equipo
no
carga
absolutamente
pregunta('El equipo se bloquea con cualquier aplicación?').
discoduro:-discoduro_daniado, pregunta('Error serio de disco al escribir en la unidad ?'), pregunta('Error de datos al leer la unidad ?'), pregunta('Continuos ruidos al interior del CPU?').
motherboard:-motherboard_daniada, pregunta('Se apaga solo el computador y vuelve a prender?'), pregunta('Hay buses desconectados?'), pregunta('Hay chips explotados?').
procesador:-procesador_daniado, pregunta('El ventilador del procesador no funciona?'), pregunta('El disipador de calor esta sucio?'), pregunta('Encendido lento?').
tarjetavideo:-tarjetavideo_daniada, pregunta('Cuando arranca el equipo escucha 3 pitillos?'), pregunta('Parpadea el monitor?').
fuente:-fuente_daniada, pregunta('El ventilador de la fuente no funciona?'), pregunta('Se escuchan ruidos eléctricos?'), pregunta('El computador no prende?').
unidadesopt:-unidadesopt_daniadas, pregunta('La unidad no lee ningún disco?'), pregunta('Al leer el disco se bloquea la PC?'), pregunta('Cuando gira el disco emite un zumbido fuerte?').
P á g i n a 12 | 19
tarjetasonido:-tarjetasonido_daniada, pregunta('No reconoce dispositivos de sonido?'), pregunta('El sonido tiene interferencias?'), pregunta('El volumen de sonido es bajo?').
mouse:- mouse_daniado, pregunta('El cursor en la pantalla brinca?'), pregunta('El cursor no da movimientos?').
pantalla:-pantalla_daniada, pregunta('Los colores estan distorsionados?'), pregunta('La pantalla se pone negra y vuelve a su estado normal constantemente?').
impresora:-impresora_daniada, pregunta('Imprime caracteres no correspondientes a la impresión?'), pregunta('La impresión sale desalineada?').
teclado:-teclado_daniado, pregunta('Al encender el equipo las luces indicadoras del teclado tienen una intensidad baja?'),
pregunta('Algunas letras?').
veces
tiene
problemas al
presionar
algunas
desconocido:- se_desconoce_danio. ram_daniada:ordenador?'),!.
pregunta('Continuo
reinicio
automático
del
discoduro_daniado:- pregunta('Error serio de disco al escribir en la unidad ?'),!.
motherboard_daniada:- pregunta('Se apaga solo el computador y vuelve a prender?'),!. procesador_daniado:funciona?'),!.
pregunta('El
tarjetavi deo_daniada:escucha 3 pitillos?'),!.
ventilador
pregunta('Cuando
del
procesador
arranca
el
no
equipo
fuente_daniada:- pregunta('El ventilador de la fuente no funciona?'),!.
P á g i n a 13 | 19
unidadesopt_daniadas:- pregunta('La unidad no lee ningún disco?'),!. tarjetasonido_daniada:sonido?'),!.
pregunta('No
reconoce
dispositivos
de
mouse_daniado:- pregunta('El cursor en la pantalla brinca?'),!. pantalla_daniada:- pregunta('Los colores estan distorsionados?'),!. impresora_daniada:pregunta('Imprime correspondientes a la impresión?'),!.
caracteres
teclado_daniado:- pregunta('Al encender el equipo indicadoras del teclado tienen una intensidad baja?'),!.
las
no luces
:-dynamic si/1, no/1.
preguntar(Problema):MANTENIMIENTO')),
new(Di,dialog('REPARACION
new(L2,label(texto,'Responde las siguientes preguntas')), new(La,label(prob,Problema)), new(B1,button(si,and(message(Di,return,si)))), new(B2,button(no,and(message(Di,return,no)))), send(Di,append(L2)), send(Di,append(La)), send(Di,append(B1)), send(Di,append(B2)), send(Di,default_button,si), send(Di,open_centered),get(Di,confirm,Answer), write(Answer),send(Di,destroy), ((Answer==si)->assert(si(Problema)); assert(no(Problema)),fail). pregunta(S):- (si(S)->true; (no(S)->fail; preguntar(S))). limpiar:-retract(si(_)),fail. limpiar:-retract(no(_)),fail. limpiar. botones:-lim,
send(@boton,free), send(@btncarrera,free), danio(Danio),
P á g i n a 14 | 19
Y
send(@texto,selection('De acuerdo con los datos obtenidos su PC tiene: ')), send(@resp1,selection(Danio)),
new(@boton,button('Iniciar',message(@prolog,botones))), send(Menu,display,@boton,point(40,50)), send(Menu,display,@btncarrera,point(20,50)), limpiar. lim:- send(@resp1,selection('')).
2.2.2.Motor de Inferencia % INTERFAZ DEL PROGRAMA interfaz:new(Menu,dialog('SISTEMA EXPERTO', size(500,500))), new(L, label(nombre,'MANTENIMIENTO Y REPARACION DE PCs')), new(@texto,label(nombre,'Segun lo que responda se le dará un resultado:')), new(@resp1,label(nombre,'')), new(Salir,button('SALIR',and(message(Menu,destroy),message(Men u,free)))), new(@boton,button('Consultar',message(@prolog,botones))), send(Menu,append(L)),new(@btncarrera,button('¿Diagnotisco?')), send(Menu,display,L,point(125,20)), send(Menu,display,@boton,point(100,150)), send(Menu,display,@texto,point(20,100)), send(Menu,display,Salir,point(20,400)), send(Menu,display,@resp1,point(20,130)), send(Menu,open_centered).
danio('Defectos de RAM'):-ram,!. danio('Defectos de Disco Duro'):-discoduro,!. danio('Defectos en la Tarjeta Madre'):-motherboard,!. danio('Defectos de Procesador'):-procesador,!. danio('Defectos de Tarjeta de Video'):-tarjetavideo,!. danio('Defectos de la Fuente de Alimentacion'):-fuente,!. danio('Defectos en las Unidades Opticas'):-unidadesopt,!. danio('Defectos en la Tarjeta de Sonido'):-tarjetasonido,!.
P á g i n a 15 | 19
danio('Defectos en el Mouse'):-mouse,!. danio('Defectos en la Pantalla'):-pantalla,!. danio('Defectos en la Impresora'):-impresora,!. danio('Defectos en el teclado'):-teclado,!. danio('sin daño').
3. EJECUCIÓN Mostraremos ahora un ejemplo de la ejecución de nuestro Sistema Experto en el cual diagnosticaremos defectos en la RAM.
Empezamos dándole click en Consultar
P á g i n a 16 | 19
Ilustración 5: Inicio
En este paso debemos contestar a las preguntas que nos haga el Sistema Experto referente a los posibles problemas que tenga nuestro computador.
Ilustración 6: Pregunta 1
Ilustración 7: Pregunta 2
P á g i n a 17 | 19
Ilustración 8: Pregunta 3
4. REFERENCIAS BIBLIOGRÁFICAS
http://es.slideshare.net/ingenioalex/sistemas-expertos http://www.ecured.cu/index.php/Sistemas_expertos Ilustración 9: Diagnóstico http://www.informaticaintegral.net/sisexp.html http://www.redcientifica.com/doc/doc199908210001.html http://es.slideshare.net/uni_fcys_sistemas/bases-de-conocimiento-vs-
bases-de-datos https://docs.google.com/document/d/1cx7xs4Gnq_3fES-
AzkG7ejmOIgEVarVe_4SQl9gL39A/edit?hl=en_US&pli=1 http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/moreno_a_jl/capitulo
3.pdf http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r101181.PDF http://www.ecured.cu/index.php/ProLog#Caracter.C3.ADsticas_del_lengua
je_ProLo http://artemisa.unicauca.edu.co/~lgarreta/elenguajes/classes/logical/apu
ntes05lp-prolog.pdf http://es.wikipedia.org/wiki/Prolog
P á g i n a 18 | 19
View more...
Comments