Está en la página 1de 8

GUIA DE LABORATORIO

ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA

SISTEMAS EXPERTOS 299017

Elaborado por:
DIANA MARCELA CARDONA ROMN

Modificada por: JHON JAIRO PEREZ BURBANO

PITALITO (HUILA) PROGRAMA INGENIERA DE SISTEMAS AGOSTO 2013

GUIA DE LABORATORIO Nombre del curso: Programa al que pertenece SISTEMAS EXPERTOS Ingeniera de Sistemas Director de curso: Jhon Jairo Perez Burbano

Prctica No. 1 Introduccin a los Sistemas Expertos Objetivos de la prctica de laboratorio: Introducir a los estudiantes en los conceptos de construccin de un SE, utilizando lgica proposicional, encadenamiento hacia adelante y hacia atrs. Descripcin de la prctica / actividad Abrir el software ExpertLab, realizar el siguiente ejemplo
; Fichero ExpertLab \\\ Cabecera Pelcula Viable. \\\ Objetivo Pelicula_hecha. \\\ Hechos Idea \\\ Reglas Pelicula_hecha :- Idea, Director, Actores, Productor, Dinero, Ambiente_agradable Dinero :- Productor Ambiente_agradable :- dinero, horarios_flexibles, buenos_camerinos

Este fichero puede ser grabado con extensin .bc con el Bloc de Notas para Windows (c), y abierto desde ExperLab en el men archivo, opcin abrir. Si una vez cargado el fichero (la base de conocimiento), seleccionamos Operar, y la opcin Enadenamiento hacia atrs, entonces ExpertLab tratar de demostrar el objetivo (Pelicula_hecha), a partir de las reglas disponibles. As mismo, cada uno de los precedentes ser a su vez un subobjetivo, de forma que tratar de ser demostrado de la misma manera. En caso de no existir un hecho o una regla que permita probar el objetivo, entonces se preguntar al usuario. 1. El ejercicio es el siguiente, con base al texto siguiente, descompngalo en sentencias proposicionales y mustrelas, luego mustrelas en forma de reglas si-entonces y codifique las reglas en expertLab, ejecute el encadenamiento hacia delante y el encadenamiento hacia atrs, describa que hace cada uno: "El pas se enriquece cuando su moneda es fuerte y cuando su economa est estabilizada. El hecho de que suban las pensiones o de que existan trescientos mil empleados son hechos que hacen que se estabilice la economa. En Colombia, el peso es fuerte, y existen trescientos mil empleados." 2. Codifique el siguiente ejercicio en expertLab: En la UNAD el estudiante es responsable de su formacin cuando desarrolla su aprendizaje de manera autnoma e independiente, el hecho de descargar los mdulos y leerlos hacen que se desarrolle esta metodologa, el hecho de asistir al aula virtual y desarrollar las actividades planificadas hace que conozca el funcionamiento de la tecnologa y el hecho de realizar sus actividades prcticas lo contextualiza en un ambiente laboral.

3. Crear en ExpertLab las siguientes bases de conocimientos: Una base de conocimiento que contenga al menos 10 hechos y 10 reglas de enfermedades tpicas. Una base de conocimiento que contenga como hechos los nombres de sus familiares hasta una segunda generacin y reglas para establecer las siguientes relaciones de parentesco: padre, hijo, abuelo, to, cuado, suegro, yerno, primo. Software a utilizar en la prctica
Programa ExpertLab, programa educativo que representa el conocimiento mediante lgica proposicional elaborado por Escuela Superior de informtica, para descargarlo debe ingresar por este enlace: http://trevinca.ei.uvigo.es/~jgarcia/SIEX/expertlab.zip y para revisar el manual de uso del programa desde por este enlace: http://trevinca.ei.uvigo.es/~jgarcia/SIEX/manual.html

Equipos / instrumentos a utilizar en la prctica Se requieren equipos de computo con sistema operativo Windows XP (preferiblemente) Resultados a obtener en la prctica Conocimiento de una herramienta educativa, conocimiento de la lgica proposicional, manejo del encadenamiento hacia adelante y hacia atrs. Informe a entregar Informe del uso de la herramienta y los resultados de los ejercicios propuestos. Prctica No. 2 Ttulo de la prctica Objetivos de la prctica de laboratorio Utilizacin de la lgica proposicional para la construccin de un sistema experto e implementacin del motor de inferencia. Descripcin de la prctica / actividad Desarrollar en el lenguaje Prolog, ejercicios bsicos de lgica proposicional

1.- Captura el shell del sistema experto y guarda el archivo con el nombre: experto.pl
/* Sistema Experto: experto.pl Trata los sintomas como una lista. La cabeza es el diagnostico y la cola son los sintomas. Utiliza assert/1 para cambiar dinamicamente la base de conocimientos. Determina la verdad y falsedad de los sintomas conocidos. Puede contestar a las preguntas 'porque' e incluye capacidad de explicacion. Elimina dinamicamente las aseveraciones agregadas despues de cada consulta. */ :- dynamic conocido/1. consulta:haz_diagnostico(X), escribe_diagnostico(X), ofrece_explicacion_diagnostico(X), clean_scratchpad. consulta:write('No hay suficiente conocimiento para elaborar un diagnostico.'), clean_scratchpad. haz_diagnostico(Diagnosis):obten_hipotesis_y_sintomas(Diagnosis, ListaDeSintomas), prueba_presencia_de(Diagnosis, ListaDeSintomas).

obten_hipotesis_y_sintomas(Diagnosis, ListaDeSintomas):conocimiento(Diagnosis, ListaDeSintomas). prueba_presencia_de(Diagnosis, []). prueba_presencia_de(Diagnosis, [Head | Tail]):prueba_verdad_de(Diagnosis, Head), prueba_presencia_de(Diagnosis, Tail). prueba_verdad_de(Diagnosis, Sintoma):- conocido(Sintoma). prueba_verdad_de(Diagnosis, Sintoma):- not(conocido(is_false(Sintoma))), pregunta_sobre(Diagnosis, Sintoma, Reply), Reply = si. pregunta_sobre(Diagnosis, Sintoma, Reply):- write('Es verdad que '), write(Sintoma), write('? '), read(Respuesta), process(Diagnosis, Sintoma, Respuesta, Reply). process(Diagnosis, Sintoma, si, si):- asserta(conocido(Sintoma)). process(Diagnosis, Sintoma, no, no):asserta(conocido(is_false(Sintoma))). process(Diagnosis, Sintoma, porque, Reply):- nl, write('Estoy investigando la hipotesis siguiente: '), write(Diagnosis), write('.'), nl, write('Para esto necesito saber si '), write(Sintoma), write('.'), nl, pregunta_sobre(Diagnosis, Sintoma, Reply). process(Diagnosis, Sintoma, Respuesta, Reply):- Respuesta \== no, Respuesta \== si, Respuesta \== porque, nl, write('Debes contestar si, no o porque.'), nl, pregunta_sobre(Diagnosis, Sintoma, Reply). escribe_diagnostico(Diagnosis):- write('El diagnostico es '), write(Diagnosis), write('.'), nl. ofrece_explicacion_diagnostico(Diagnosis):pregunta_si_necesita_explicacion(Respuesta), actua_consecuentemente(Diagnosis, Respuesta). pregunta_si_necesita_explicacion(Respuesta):write('Quieres que justifique este diagnostico? '), read(RespuestaUsuario), asegura_respuesta_si_o_no(RespuestaUsuario, Respuesta). asegura_respuesta_si_o_no(si, si). asegura_respuesta_si_o_no(no, no). asegura_respuesta_si_o_no(_, Respuesta):- write('Debes contestar si o no.'), pregunta_si_necesita_explicacion(Respuesta). actua_consecuentemente(Diagnosis, no). actua_consecuentemente(Diagnosis, si):- conocimiento(Diagnosis, ListaDeSintomas), write('Se determino este diagnostico porque se encontraron los siguentes sintomas: '), nl, escribe_lista_de_sintomas(ListaDeSintomas). escribe_lista_de_sintomas([]). escribe_lista_de_sintomas([Head | Tail]):write(Head), nl, escribe_lista_de_sintomas(Tail). clean_scratchpad:- retract(conocido(X)), fail. clean_scratchpad. conocido(_):- fail. not(X):- X,!,fail. not(_).

2.- Para poder utilizar este shell debemos definir una base de conocimientos. Vamos a definir la primera base de conocimientos para un sistema de diagnstico mdico. Captura las siguientes reglas y salva el archivo con el nombre

BaseConocimientos1.pl

:
/* BaseConocimientos1: diagnosticos y sintomas Dominio: diagnostico medico. Trata los sintomas como una lista multielementos */ conocimiento('sarampion', ['el paciente esta cubierto de puntos', 'el paciente tiene temperatura alta', 'el paciente tiene ojos rojos','el paciente tiene tos seca']). conocimiento('influenza', ['el paciente tiene dolor en las articulaciones', 'el paciente tiene mucho estornudo','el paciente tiene dolor de cabeza']). conocimiento('malaria', ['el paciente tiene temperatura alta','el paciente tiene dolor en las articulaciones', 'el paciente tiembla violentamente', 'el paciente tiene escalofrios']). conocimiento('gripe', ['el paciente tiene cuerpo cortado', 'el paciente tiene dolor de cabeza', 'el paciente tiene temparatura alta']). conocimiento('tifoidea', ['el paciente tiene falta de apetito', 'el paciente tiene temperatura alta', 'el paciente tiene dolor abdominal', 'el paciente tiene dolor de cabeza', 'el paciente tiene diarrea']).

3.- Para poder utilizar el sistema experto con esta base de conocimientos, dentro de Prolog debemos teclear:
consult('experto.pl'). consult('BaseConocimientos1.pl').

3.1.- Para poder determinar una enfermedad, se teclea consulta.<enter> y se contestan las preguntas que va haciendo el sistema. En cualquier momento se puede constestar con un porque en lugar de si o no. Entonces el sistema explicar cul es el diagnstico que trata de probar. Al proporcionar un diagnstico, el sistema preguntar si se quiere una justificacin para su diagnstico. Si se contesta afirmativamente el sistema mostrar los hechos que lo llevaron al diagnstico presentado. 3.2.- Usando el sistema experto, trata de determinar las enfermedad de las personas que cursan los siguientes sntomas:
i) temperatura alta, dolor de cabeza y cuerpo cortado. Diagnostico: Justificacin: ii) dolor en las articulaciones, temblor violento y escalofrios. Diagnostico: Justificacin: iii) dolor de cabeza, estornudos y dolor en las articulaciones Diagnostico: Justificacin:

4.- Tenemos el siguiente conocimiento directo: Bertoldo y Bartolo son rufianes. Romeo y Bertoldo, como su nombre indica, son nobles. Bartolo es un plebeyo. Gertrudis y Julieta son damas. Julieta es hermosa.

Tambin disponemos del siguiente conocimiento indirecto: Los plebeyos desean a cualquier dama, mientras que los nobles slo a aquellas que son hermosas. Los rufianes, para satisfacer sus instintos, raptan a las personas a las que desean. Construir un programa que refleje dicho conocimiento y permita resolver las siguientes cuestiones: 1) Qu noble es un rufin? 2) Quin es susceptible de ser raptada por Romeo? 3) Quin puede raptar a Julieta? 4) Quin rapta a quin? 5) A quin desea Bartolo? 6) Y Romeo? 7) Cul hermosa dama es deseada por Bartolo? 5.- Escriba los comentarios y conclusiones que tiene de la prctica
Software a utilizar en la prctica PROLOG, se puede descargar del sitio oficial: http://www.swi-prolog.org/download/devel Versin portable: http://portableapps.com/apps/development/swi-prolog_portable descargarlo desde el enlace: sourceforge Equipos / instrumentos a utilizar en la prctica Equipos de cmputo. Ver relacin de sistemas operativos compatibles con PROLOG. Resultados a obtener en la prctica Conocimiento del lenguaje de programacin para el desarrollo propuesto Informe a entregar Informe escrito de las consultas y el cdigo de cada uno de los ejercicios propuestos Prctica No. 3 Ttulo de la prctica Objetivos de la prctica de laboratorio Sustentacin del proyecto final donde se plantea la realizacin de un prototipo de sistema experto. Descripcin de la prctica / actividad Cada grupo colaborativo debe seleccionar un tema para que sea trabajado como examen nacional, una vez definido el Tema o Proyecto a desarrollar por el grupo colaborativo en campus virtual pueden iniciar el desarrollo del trabajo propuesto como examen nacional, apoyarse en el tutor del centro para el acompaamiento como tal, hacer la entrevista con el experto humano para determinar los requerimientos del mismo y sustentar ante el tutor la o las posibles soluciones del problema seleccionado y elegir la opcin ms viable para completar el trabajo propuesto como evaluacin nacional, el cual ser evaluado por Proyecto.
TEMAS PROPUESTOS PARA DESARROLLAR EL SISTEMA EXPERTO ORDEN 1 DESCRIPCIN Sistema de Ayuda sobre Legislacin Colombiana en Riesgos de Trabajo.

Este sistema ayuda al usuario a encontrar dentro de la legislacin colombiana, material relativo a los accidentes de trabajo. Se consume mucho tiempo dentro de las leyes para encontrar el material correcto y es este sistema el encargado de ayudar a ahorrar tiempo en esta bsqueda Sistema Experto para Asistir Decisiones Tursticas. El estudio del comportamiento del consumidor del turismo es una actividad compleja en el cual intervienen numerosas variables. Los sistemas expertos actan como asistentes y auxiliares complejos de gran utilidad, brindando ayuda efectiva en aquellos trabajos que requieren responsabilidad, competencia e intuicin. Se desarrollara un prototipo de Sistema Experto, basado en plataforma Web, para asistir a los potenciales turistas en sus decisiones. El sistema recomienda un destino de acuerdo a las preferencias de los consumidores bajo el paquete turstico denominado: "Colombia, un misterio un legado...". Sistema Experto de Gestin Bancaria. Consiste en el desarrollo de un Sistema que tiene como principal objetivo contribuir a la toma de decisiones en el rea bancaria respecto de las solicitudes de prstamos hipotecarios y de tarjetas de crdito en sus diversas modalidades. Su misin es poner en manos del experto especializado en la materia una herramienta que ayude a la toma de decisiones, ofreciendo de modo objetivo y consistente una propuesta de resolucin de los casos planteados. Recetario Homepata. Desarrollar un sistema experto que ayude en la decisin de tratamiento de enfermedades a un mdico homepata. La entrada al sistema sern los sntomas y las caractersticas de carcter del paciente. La salida ser la medicacin ms adecuada al paciente. Sistema de Asistencia para la Seleccin de Estrategias y Actividades Instruccionales. En el mbito educativo existe la necesidad de hacer ms eficiente la toma de decisiones sobre los modelos instruccionales, apoyndose de las potencialidades que tienen las TIC y los avances en las tcnicas de la Inteligencia Artificial, que estn dirigidos al desarrollo de programas computarizados, que emulan los procesos del pensamiento humano utilizando estructuras que contienen conocimiento y la experiencia de los expertos humanos. Se debe elaborar una propuesta, basada en la Ingeniera del Conocimiento, para el desarrollo de un sistema experto que recomiende al docente, modelos de enseanza como macroestrategias pertinentes a la planificacin e implementacin de la actividad didctica. Sistema Informtico Jurdico para la Individualizacin y Acuerdos sobre la Pena. Implementar un sistema informtico jurdico cuyo objeto ser el de asistir a los operadores de la justicia jueces, fiscales y defensores- del fuero penal en el proceso de individualizacin de la pena. Se deben tener en cuenta las leyes actuales que operan en tal sentido. Sistema sobre Peticiones, Quejas, Reclamos o Felicitaciones Concernientes a la Prestacin del Servicio. El sistema desarrollado encontrara soluciones a las PQRF de los clientes, evaluando el delicado equilibrio entre la satisfaccin del cliente y el costo para la empresa. Juego el Perro Pastor. El estudio del control de animales es un experimento del dominio real que puede ser probado por sistemas inteligentes, dado que el grado de procesamiento por parte del computador es elevado y el tiempo en el que se tiene que encontrar una solucin es corto. Dentro de nuestro caso de estudio tenemos un perro pastor que tiene que controlar su rebao de ovejas, definir el escenario. Premisas: (1). Contamos un escenario tipo markoviano, en este existen ciertos espacios que son marcados como peligrosos y otro tipo de agente lobo que su objetivo es satisfacer su apetito. (2). En el escenario tenemos un

agente perro que tiene que controlar un grupo de agentes que llamaremos ovejas. El perro tiene como objetivo conducir a las ovejas por el ambiente evitando que estas caigan en estados peligrosos o que sean comidas por el lobo. El juego termina cuando el perro ovejero tiene a todas sus ovejas dentro del corral. (3). Las ovejas tienen un comportamiento simple estas permanecen casi todo el tiempo agrupadas, esto si el perro, por un mal movimiento las dispersa. (4). Se usara un motor de inferencia para crear todas las reglas del perro y las ovejas y el lobo. Sistema de Ayuda para la Seleccin de Personal. Se busca agilizar el proceso de seleccin del personal o Talento Humano de la empresa XYZ, es decir, mediante un cuestionario con diversas preguntas extradas del dilogo con el experto (el cual se debe realizar), se busca automatizar el proceso de seleccin hacindolo ms rpido y eficaz. Se deben tener en cuenta los perfiles requeridos por la empresa y las respuestas al cuestionario del usuario, clasificndolo como aspirante a la vacante o no. El sistema se debe implementar en lnea. Sistema Experto en Orientacin Vocacional y Profesional. Constantemente los jvenes se enfrentan al problema de eleccin carrera, para ello existen profesionales que los guan en su decisin. Cuando uno de esos expertos deja de trabajar en el tema por diversas circunstancias el conocimiento se pierde, es ah donde entra la inteligencia artificial, especficamente los sistemas con bases de conocimiento. Se requiere la creacin de un sistema experto en orientacin vocacional y profesional que permita a los orientadores educativos tener una base de conocimiento en la cual se pueda apoyar para su labor de gua. La solucin debe incluir dos reas del conocimiento principalmente, por un lado, la ingeniera en sistemas y por el otro la Medicina.

10

Cualquier otra propuesta por el estudiante o por el tutor puede ser desarrollada y publicada en el aula en el trabajo colaborativo No. 3. Software a utilizar en la prctica Sin restriccin de software (C/C++, java, Visual Basic) Equipos / instrumentos a utilizar en la prctica Equipos de computo Resultados a obtener en la prctica Sistema experto modelado Informe a entregar Informe del proyecto, con portada, introduccin, objetivos, desarrollo, conclusiones y bibliografa. Se debe entregar el cdigo fuente y realizar sustentacin del mismo. Observaciones generales: Se puede describir las necesidades que se tengan para mejorar las prcticas de laboratorios en condiciones ideales, esto con el propsito de generar una propuesta al jefe de Dotaciones
Cul es el proceso de Adquisicin de Licencias de software o bajo que modalidad ustedes presentaran su proyecto final?

También podría gustarte