Sistema Experto

download Sistema Experto

of 24

Transcript of Sistema Experto

SISTEMA EXPERTO

INDICE DE CONTENIDORESUMEN3PALABRAS CLAVES31.INTRODUCCION31.1.Usos de un Sistema Experto41.2.Arquitectura y Funcionamiento de un Sistema Experto5Imagen 1: Arquitectura de un Sistema Experto.51.2.1.Base de Conocimientos61.2.2.Base de Datos61.2.3.Motor de Inferencias81.2.4.Interfaz con el Usuario91.2.5.Mdulo de Explicacin91.2.6.Mdulo de Adquisicin101.3.Ventajas e Inconvenientes de un Sistema Experto101.3.1.Ventajas101.3.2.Inconvenientes111.4.Lenguaje de Programacin Usado121.4.1.Introduccin a Prolog121.4.2.Caractersticas de Prolog122.NOMBRE DE SISTEMA EXPERTO132.1.Planteamiento y diseo132.2.Implementacin152.2.1.Base de Conocimiento152.2.2.Motor de Inferencia193.EJECUCIN214.REFERENCIAS BIBLIOGRFICAS23

INDICE DE ILUSTRACIONESIlustracin 1: Arquitectura de un Sistema Experto.5Ilustracin 2: Base de Conocimiento.6Ilustracin 3: Base de Datos.7Ilustracin 4: Comparacin entre Base de conocimiento y Base de Datos8Ilustracin 5: Inicio21Ilustracin 6: Pregunta 121Ilustracin 7: Pregunta 222Ilustracin 8: Pregunta 322Ilustracin 9: Diagnstico22

RESUMENEn el presente informe mostraremos el desarrollo de un Sistema Experto para el Mantenimiento y Reparacin de Computadoras en Prolog basado en el anlisis de algunos sntomas que muestra un computador defectuoso para su pronta reparacin con el propsito de brindar al usuario una manera ms precisa y rpida lo que estara mal en su computador y ya luego de saber el diagnostico tambin nos mostrara la posible solucin 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, tambin hablaremos de manera breve acerca de los que es un Sistema Experto y sus caractersticas principales. PALABRAS CLAVESProlog, Sistema Experto, Base del conocimiento, Base de Datos, Motor de Inferencia, Interfaz, Modulo de Explicacin, Modulo de Adquisicin. 1. INTRODUCCIONLos 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 ms fcilmente.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 resolucin 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 (tngase en cuenta que para construir un SBC se suele contar con grandes expertos en la materia que incorporan su conocimiento al sistema). Esta pretensin es ms 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 intuicin ni el sentido comn, los sistemas basados en el conocimiento han conseguido notables xitos, consiguiendo en ocasiones ser ms regulares y rpidos que los propios expertos.1.1. Usos de un Sistema ExpertoLos sistemas expertos se desenvuelven en distintas reas del conocimiento algunas de las ms utilizadas son la medicina, ingeniera, administracin, contabilidad, bolsa de valores. Un sistema experto puede resolver problemas y responder preguntas de manera mucho ms rpida que un experto humano; por ello podramos 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 informacin, interpretndola y proporcionando una recomendacin a partir de la misma.Los sistemas expertos son buenos para predecir resultados futuros a partir del conocimiento que tienen. Los sistemas meteorolgicos y de inversin en bolsa son ejemplos de utilizacin en este sentido.La planificacin es la secuencia de acciones necesarias para lograr una meta. Conseguir una buena planificacin a largo plazo es muy difcil. Por ello, se usan sistemas expertos para gestionar proyectos de desarrollo, planes de produccin de fbrica, estrategia militar y configuracin de complejos sistemas informticos, entre otros. Cuando se necesita controlar un proceso tomando decisiones como respuesta a su estado y no existe una solucin algortmica adecuada, es necesario usar un sistema experto. Muchas veces se puede observar en campos que comprende el supervisar fbricas automatizadas, factoras qumicas 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 ExpertoLos componentes bsicos del sistema experto los podemos apreciar en la siguiente imagen y sern explicadas a continuacin.

Ilustracin 1: Arquitectura de un Sistema Experto.

1.2.1. Base de ConocimientosEs un tipo especial de base de datos para la gestin del conocimiento. Provee los medios para la recoleccin, organizacin y recuperacin computarizada de conocimiento.Una base de conocimiento es un depsito de informacin creado gracias a una extensa investigacin organizada en un rbol de conocimiento completo. Datos son hechos en bruto Informacin son datos con el contexto y perspectiva. Conocimiento es informacin con una gua para la accin basad en conocimiento y experiencia. La base de conocimiento cambia todo el tiempo debido a que el nuevo conocimiento la cambia.

Ilustracin 2: Base de Conocimiento.1.2.2. Base de DatosEs un conjunto de datos pertenecientes a un mismo contexto y almacenamiento sistemticamente para su posterior uso.Una base de datos es una coleccin de informacin organizada de forma que un programa de ordenador pueda seleccionar rpidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrnico. El conocimiento se puede utilizar para cambiar el estado del agente inteligente debido al proceso de aprendizaje involucrado, pero los datos no pueden. Los sistemas basados en datos nicamente procesan datos y no muestran informacin.

Ilustracin 3: Base de Datos.

Ilustracin 4: Comparacin entre Base de conocimiento y Base de Datos

1.2.3. Motor de InferenciasEs un programa que controla el proceso de razonamiento que seguir el sistema experto, se podra decir que es el corazn de todo sistema experto. Utilizando los datos que se le suministran, recorre la base de conocimientos para alcanzar una solucin. 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 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 condicin)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 accin (esto ltimo genera nuevos hechos que se aaden 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 tambin 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 mtodo, 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 probabilstico. El motor de inferencia es tambin responsable de la propagacin de este conocimiento incierto. Es probablemente es componente ms dbil de casi todos los sistemas expertos. 1.2.4. Interfaz con el UsuarioEl interfaz de usuario permite que el usuario pueda describir el problema al sistema experto. Interpreta sus preguntas, los comandos y la informacin 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 informacin de forma fcil y agradable. A la inversa, formula la informacin 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. Tambin puede solicitar ms informacin si le es necesaria al sistema experto. En algunos sistemas se utilizan tcnicas de tratamiento del lenguaje natural para mejorar la comunicacin entre el usuario y el sistema experto.La mayora de los sistemas expertos contienen un mdulo de explicacin, diseado para aclarar al usuario la lnea de razonamiento seguida en el proceso de inferencia. Si el usuario pregunta al sistema cmo ha alcanzado una conclusin, ste le presentar la secuencia completa de reglas usada. Esta posibilidad de explicacin es especialmente valiosa cuando se tiene la necesidad de tomar decisiones importantes amparndose en el consejo del sistema experto. Adems, 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 explicacin tambin puede usarse para depurar el sistema experto durante su desarrollo.1.2.5. Mdulo de ExplicacinExplica el proceso seguido por el motor de inferencia o por el subsistema de ejecucin (explicacin de las conclusiones sacadas o de las acciones iniciadas por el sistema experto).Por ejemplo, si un cajero automtico decide rechazar la palabra clave (una accin), la maquina puede mostrar un mensaje (una explicacin) como la siguiente Lo siento!, su palabra clave es todava incorrecta tras tres intentos. Retenemos su tarjeta de crdito, para garantizar su seguridad. Por favor, pngase en contacto con su banco en horas de la oficina. En muchos dominios de aplicaciones es necesario la explicacin de las conclusiones debido a los riesgos asociados con las acciones a ejecutar.1.2.6. Mdulo de Adquisicin El mdulo de adquisicin del conocimiento permite que se puedan aadir, eliminar o modificar elementos de conocimiento (en la mayora de los casos reglas) en el sistema experto. Si el entorno es dinmico es muy necesario, puesto que, el sistema funcionar correctamente slo si se mantiene actualizado su conocimiento. El mdulo de adquisicin permite efectuar ese mantenimiento, anotando en la base de conocimientos los cambios que se producen.1.3. Ventajas e Inconvenientes de un Sistema Experto1.3.1. Ventajas Permanencia: A diferencia de un experto humano un Sistema Experto (sistema experto) no envejece, y por tanto no sufre prdida de facultades con el paso del tiempo. Replicacin: Una vez programado un Sistema Experto lo podemos replicar infinidad de veces. Rapidez: Un Sistema Experto puede obtener informacin de unabase de datosy realizar clculos numricos mucho ms rpido que cualquier ser humano. 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 Sistema Experto puede trabajar en entornos peligrosos o dainos para el ser humano. Fiabilidad: Los Sistema Experto no se ven afectados por condiciones externas, un humano s (cansancio, presin, etc.). Consolidar varios conocimientos. Apoyo Acadmico. Fcil acceso y disponibilidad de conocimiento experto. Respuestas no subjetivas. Permanencia del Sistema Experto.1.3.2. Inconvenientes Sentido comn: Para un Sistema Experto no hay nada obvio. Por ejemplo, un sistema experto sobre medicina podra 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 conversacin 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 resolucin de un problema. Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco estructurado.

1.4. Lenguaje de Programacin Usado1.4.1. Introduccin a PrologProlog, del francs: Programation en Logique. Es el lenguaje declarativo, quien a partir de los datos introducidos deduce nuevos hechos y resuelve el problema automticamente.PROLOG tiene incluido, por tanto, un motor de inferencia que se encarga de realizar bsquedas en su base de hechos.1.4.2. Caractersticas de Prolog Prolog tiene las siguientes caractersticas: Basado enlgicayprogramacin declarativa. No se especifica cmo debe hacerse, sino qu debe lograrse. Una caracterstica importante en Prolog y que lo diferencia de otros lenguajes de programacin, es que una variable slo puede tener un valor mientras se cumple el objetivo. El programador se concentra ms en el conocimiento que en losalgoritmos. Qu es conocido? (hechos, reglas) Qu preguntar? (Cmo resolverlo)En Prolog, se llega a una solucin infirindola desde algo ya conocido.

2. NOMBRE DE SISTEMA EXPERTO 2.1. Planteamiento y diseo Mediante el siguiente informe mostraremos el desarrollo de nuestro Sistema Experto basado en el diagnstico 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 ms rpida y eficiente.Para realizar este diseo 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, segn 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 continuacin mostraremos el rbol de nuestro sistema Experto

Continuo reinicio automtico del ordenador?

NOSI

Error serio al escribir en la unidad ?Al encender el equipo no carga absolutamente nada?

NOSI

SI?

El equipo se bloquea con cualquier aplicacin?Error de datos al leer la unidad ?

SI

??RAM daada

2.2. Implementacin Para implementar nuestro Sistema Experto en Prolog dividimos el cdigo en dos grandes bloques.2.2.1. Base de Conocimiento%BASE DE CONOCIMIENTOSram:-ram_daniada,pregunta('Continuo reinicio automatico del ordenador?'),pregunta('Al encender el equipo no carga absolutamente nada(pantalla negra?'),pregunta('El equipo se bloquea con cualquier aplicacion?').

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 electricos?'),pregunta('El computador no prende?').

unidadesopt:-unidadesopt_daniadas,pregunta('La unidad no lee ningn disco?'),pregunta('Al leer el disco se bloquea la PC?'),pregunta('Cuando gira el disco emite un zumbido fuerte?').

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 impresin?'),pregunta('La impresin sale desalineada?').

teclado:-teclado_daniado,pregunta('Al encender el equipo las luces indicadoras del teclado tienen una intensidad baja?'),

pregunta('Algunas veces tiene problemas al presionar algunas letras?').desconocido:- se_desconoce_danio.ram_daniada:- pregunta('Continuo reinicio automatico del ordenador?'),!.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:- pregunta('El ventilador del procesador no funciona?'),!.tarjetavideo_daniada:- pregunta('Cuando arranca el equipo escucha 3 pitillos?'),!.

fuente_daniada:- pregunta('El ventilador de la fuente no funciona?'),!.unidadesopt_daniadas:- pregunta('La unidad no lee ningn disco?'),!.tarjetasonido_daniada:- pregunta('No reconoce dispositivos de sonido?'),!.mouse_daniado:- pregunta('El cursor en la pantalla brinca?'),!.pantalla_daniada:- pregunta('Los colores estan distorsionados?'),!.impresora_daniada:- pregunta('Imprime caracteres no correspondientes a la impresin?'),!.teclado_daniado:- pregunta('Al encender el equipo las luces indicadoras del teclado tienen una intensidad baja?'),!.

:-dynamic si/1, no/1.preguntar(Problema):- new(Di,dialog('REPARACION Y MANTENIMIENTO')), 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),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(Menu,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,!.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 dao').

3. EJECUCINMostraremos ahora un ejemplo de la ejecucin de nuestro Sistema Experto en el cual diagnosticaremos defectos en la RAM. Empezamos dndole click en Consultar

Ilustracin 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.Ilustracin 6: Pregunta 1

Ilustracin 7: Pregunta 2

Ilustracin 8: Pregunta 3

Ilustracin 9: Diagnstico

4. REFERENCIAS BIBLIOGRFICAS http://es.slideshare.net/ingenioalex/sistemas-expertos http://www.ecured.cu/index.php/Sistemas_expertos 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/capitulo3.pdf http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r101181.PDF http://www.ecured.cu/index.php/ProLog#Caracter.C3.ADsticas_del_lenguaje_ProLog http://artemisa.unicauca.edu.co/~lgarreta/elenguajes/classes/logical/apuntes05lp-prolog.pdf http://es.wikipedia.org/wiki/PrologPgina 18 | 23