KnE Engineering | Ibero-American Symposium on Computer Programming jointly held with the International Congress on Technology Education | pages: 235–254

, , and

1. Introducción

El ámbito de los sistemas expertos a nivel mundial ha ido evolucionando, dentro de la inteligencia artificial encontramos varios tipos como: los dedicados a los ambientes de empresas electrónicas, salud, educación, etc. Los sistemas expertos (SE) pueden ser considerados como un subconjunto de la Inteligencia Artificial (IA) [1]. Hacia los años 80, comienza a surgir la industria de los SE [2]. Se realizaron algunas inversiones en varios países de Europa, Asia y América, con el fin de poder generar un sistema capaz de reproducir la actividad que realiza un ser humano con la experticia que tiene en tópicos específicos utilizando programación estructurada.

El objetivo principal de este artículo consiste en realizar un estudio sobre los síntomas que presenta un paciente para detectar una posible enfermedad de una forma general. Esto ha sido una de las constantes preocupaciones en los hospitales del sector de Riobamba – Ecuador, debido a la dificultad que existe al momento que falta un médico para poder diagnosticar a un paciente. En todos estos procesos se debe identificar de una forma clara y precisa los síntomas que tiene una enfermedad dado que, ciertos síntomas también están en otras enfermedades, lo que llevó para su solución, al desarrollo de un SE determinista, titulado: Expert Systems with Patient Production Rules (EXSYPPRU Ver 1.0) en donde se puede observar las facilidades que brinda cierto sistema en el campo de la medicina general.

Este trabajo comienza con el estado del arte de los SE a nivel mundial que son utilizados para modelar el conocimiento de un experto humano en la computadora, se sigue con la metodología usada para el desarrollo de este tipo de sistemas, se realizan la corrección de errores con pruebas de validación y se muestran también los resultados más importantes. Se finaliza con las conclusiones respectivas y diciendo los trabajos futuros en este tipo de sistemas.

2. Materiales Y Métodos

Sistema Experto

Un SE es una aplicación informática que es capaz de poseer en una Base de Conocimiento (BC) toda la información de varios expertos para resolver un problema dado. Los componentes principales de un SE son: Experto Humano, BC que está compuesta de Hechos y Reglas, el Motor de Inferencia que ejecuta las reglas basada en los hechos contestados por el usuario y que en este artículo lo vamos a programar de manera estructurada, la Interfaz de Usuario y el Usuario quien utiliza el sistema. [3]

MYCIN es un SE para la realización de diagnósticos, iniciado por Ed Feigenbaum y posteriormente desarrollado por E. Shortliffe. Su función es la de aconsejar a los médicos en la investigación y determinación de diagnósticos en el campo de las enfermedades infecciosas de la sangre [4]. En la Figura 1 se muestran los componentes de un SE:

La metodología usada es la de GROOVER (Definición del dominio, formulación del conocimiento fundamental y consolidación del conocimiento basal) para la adquisición del conocimiento y la IDEAL (Identificación de la tarea, Desarrollo de los prototipos, ejecución de la construcción del sistema integrado, actuación para conseguir el mantenimiento perfectivo y lograr una adecuada transferencia tecnológica), [5] la cual sigue aspectos muy importantes dentro de la construcción de este tipo de software en el sentido de conseguir un proceso de mejora gradual en base al conocimiento del experto. Estas metodologías son herramientas utilizadas por el ingeniero de conocimiento, que le dan pautas de cómo desarrollar un SE, guían la construcción, permiten una correcta documentación y permiten detectar problemas durante el desarrollo para corregirlos a tiempo.

fig-1.jpg
Figure 1
Componentes de un SE.

Usuario

Se define a un usuario en el aspecto informático y dentro de los sistemas expertos a la persona o personas que usan una computadora que tiene una interfaz para dar solución a sus problemas de índole médico a través de un sistema experto y que ingresa sus contestaciones de acuerdo a las preguntas que se encaminen a sus síntomas [6]. Aquí se usa la metodología de GROVER para primero definir el dominio que va a tener mi problema, que en este caso está dedicado a realizar un SE para medicina, luego en la formulación del conocimiento fundamental se realizó una encuesta a varios médicos (medicina general) para que nos dieran respuesta a las diferentes enfermedades que existen y cuáles son sus diferentes síntomas y por último se consolidó el conocimiento basal tal y cual como está en la tabla 1. La Figura 1 muestra la primera fase de la metodología IDEAL que es la de identificar las tareas a realizar y entonces definimos a continuación desde el literal C.

Interfaz de Usuario

Es la encargada de visualizar la información y también de recolectar la misma desde el mundo exterior a la computadora. Aquí se puede tener un subsistema de justificación que es importante para usuarios no expertos, en donde se puede realizar preguntas al sistema para que nos indique como llegó a la solución, es decir nos explique la misma. [7]

Base de Conocimiento

Contiene el conocimiento de varios expertos en medicina, está conformada por hechos que vienen a ser los síntomas de una enfermedad llamados también antecedentes y las enfermedades en sí que son los consecuentes de los hechos o llamadas conclusiones [8].

La BC contiene el conocimiento necesario para resolver problemas de este tipo dentro de la medicina general. Incluye dos elementos básicos: heurística especial y reglas que dirigen el uso del conocimiento para resolver problemas específicos en un dominio particular [4].

Base de Hechos

Un hecho es una oración gramatical que puede ser verdadera o falsa. En PROLOG (Programación Lógica) un hecho se transforma de la vida real hacia un computador y para que el mismo entienda de la siguiente manera:

Ejemplo: Un síntoma es la temperatura

En PROLOG síntoma(temperatura).

Y si queremos formar ya en estructuras dentro de PROLOG se pueden transformar así:

Ejemplo: La enfermedad Faringitis Aguda tiene los siguientes síntomas: Ardor de garganta, moquera, dolor de la cabeza, dolores de los huesos, malestar del cuerpo, temperatura mayor a 36 grados y un poco de tos.

En PROLOG enfermedad(faringitis_aguda, síntomas(ardor_de_garganta, moquera, dolor_de_ cabeza, dolor_de_huesos, malestar_del_cuerpo, temperatura_ mayor_a_36_grados, tos).

En este caso la estructura tiene como nombre enfermedad y tiene su functor que es síntomas, además de sus componentes.

Base de Reglas

Son las que están almacenadas en la BC y se ejecutan de acuerdo a los hechos que se encuentran relacionados entre si para obtener una respuesta basado en el tipo de encadenamiento que se realice ya sea hacia adelante o hacia atrás.[8]

Ejemplo:

R1: A B C H

R2: D v G H

R3: J M D

R4: N v I D

Los elementos que constituyen estas base de reglas son R las reglas que existen dentro del sistema experto, las letras que están luego de los dos puntos(:) y antes de la flecha ( ) se llaman hechos o antecedentes y las variables que están luego de la flecha ( ) se llaman conclusiones o consecuentes de la regla.

En este ámbito se va a insertar las fórmulas que nos da para encadenamiento de las reglas utilizando reglas de producción, que en nuestro caso será MYCIN.

Finalmente, el motor de inferencia será quien realice el proceso de aprendizaje basado en los hechos y en los encadenamientos de reglas de acuerdo a la forma como se vayan ir disparando las reglas. Se realizará las simulaciones necesarias primero, para luego en un ambiente de prueba a través del sistema desarrollado poder llegar a dar una respuesta real basada en lo que dijeron los expertos médicos.

Motor de inferencia

Es el componente esencial de un SE, es el cerebro del mismo, quien se encarga de ejecutar las reglas una a una partiendo de un encadenamiento hacia adelante o hacia atrás, esencialmente son líneas de código que vamos a programar de manera estructurada que siguen el razonamiento basado en las reglas de producción ejecutadas y en base a lo que se tiene en las BC.

Tiene tres elementos principales: (1) Intérprete, ejecuta la agenda seleccionada; (2) programador, mantiene el control sobre la agenda; (3) control de consistencia, intenta mantener una representación consistente de las soluciones encontradas [6].

Interfaz con el Experto Humano

También llamado sistema de adquisición de conocimiento, es el encargado de insertar los hechos y las reglas a la BC que se escogieron por todos los expertos humanos más el ingeniero del conocimiento quien es la persona encargada de procesar las mismas.

Experto Humano

Son las personas expertas en el tema o problema a resolver, en este caso son los médicos especialistas quienes darán a conocer basados en su experiencia como detectan una enfermedad basados en los síntomas del paciente y por supuesto en los exámenes que les envían a realizarse.

Ingeniero del Conocimiento

Persona experta en realizar este tipo de sistemas informáticos llamados sistemas expertos. Es quien se encarga desde que nace el problema hasta darle solución basada en una metodología para la construcción del mismo.

Algoritmo de aprendizaje de un sistema experto

Paso1 Establecer los hechos que van a ser ingresados.

Paso2 Establecer las conclusiones a ser ingresadas

Paso3 Reglas establecidas por el ingeniero del conocimiento y los expertos humanos

Paso4 Establecemos la concatenación de reglas

Paso 5 i=1

Paso6 Mientras (i < =cantidad de hechos ingresados) hacer

  • Si si ir a 7Si no ir a 10

Paso7 El usuario da una respuesta con un FC (factor de certeza) a cada hecho formulado como pregunta

Paso8 Almacenamos en la BD el valor que responde el usuario

Paso9 Retornamos a 6

Paso10 Usamos las fórmulas para calcular las evidencias ingresadas

FC(A v B v C) = Max(Fc(A), Fc(B),Fc(C))

FC(A B C) = Min(Fc(A), Fc(B),Fc(C))

Paso11 Para la unión de las reglas según MYCIN

  • FC(H) = FC(H')*FC(Regla)

Paso12 Preguntar si existen más reglas

  • Si si ir a 10Si no ir a 13

Paso 13 i=1

Paso14 Realizar el aprendizaje a través de la siguiente fórmula para calcular los consecuentes

Paso15 Si X > 0 y Y > 0

  • Si si ir a 16Si no ir a 17

Paso 16 Calcular encadenamiento vertical, ir a 18

  • FC(H) = X + Y – X*Y

Paso 17 Calcular encadenamiento vertical

  • FC(H) = X + Y + X*Y

Paso 18 Preguntar si existen mas valores de FC(i)

  • Si si ir a 19Si no ir a 20

Paso 19 incrementar i e ir a 14

Paso 20 Ordenar los datos de mayor a menor las enfermedades con sus respectivos factores de certeza

Paso 21 Visualizar los tres primeros valores con sus correspondientes enfermedades

Paso 22 Por cada enfermedad pasar a las 3 tablas auxiliares los medicamentos y su indicaciones

Paso 23 Fin

Con este algoritmo se realiza el encadenamiento de reglas de producción hacia adelante para que el motor de inferencia pueda concatenar o unir las reglas, para cada tipo de enfermedad con sus correspondientes síntomas.

Condiciones para verificar las reglas de producción para un sistema experto

En la tabla 1 se muestran los hechos o antecedentes de una regla tanto en el “si” como en el “y” y “o”, además en el “entonces” tenemos la conclusión de la regla o consecuente.

Table 1

Reglas de Producción con sus antecedentes y consecuentes.


Si Y O ENTONCES
Tiene fiebre - Tiene estornudo - Arde la nariz - Moquera - Paciente sufre de gripe
Tiene gripe - Dificultad para deglutir - Dolor del oído - Escalofrios - Dolor de cabeza - Dolor de garganta por mas de 48 horas - Sensibilidad a la mandíbula y la garganta - Paciente sufre de amigdalitis aguda

Resultados obtenidos de la medición

Seguimos con la segunda fase de la metodología IDEAL en el desarrollo de prototipos:

Esquema a dar solución como prototipo – En la Figura 2 encontramos el nivel de complejidad que puede tener un motor de inferencia cuando se tiene n enfermedades con sus correspondientes síntomas, además se tiene que prever que el usuario por si no sabe nada de diagnóstico médico.

fig-2.jpg
Figure 2
Motor de inferencia y las reglas de producción.

En la Figura 3 se encuentra un diagrama general de las enfermedades con sus respectivos síntomas obtenidos de la tabla 1.

fig-3.jpg
Figure 3
Diagrama general de enfermedades y sus síntomas.

En la tercera fase de la metodología IDEAL nos hace referencia a la ejecución de la construcción del sistema integrado y entonces tenemos:

Interfaz hombre - máquina Este sistema experto que lo vamos a realizar está compuesto por un motor de inferencia el cual infiere las reglas y las encadena de acuerdo al algoritmo propuesto desde la BC hacia la interfaz de usuario y desde la interfaz de usuario hacia la BC, en su conjunto tiene los hechos o preguntas que el sistema realiza al usuario y que se muestra en una etiqueta dentro de C# con dos botones Si y No, los cuales se almacenan en la BC con 1 si es Si y con -1 si es No, algunos usuarios no pueden contestar la pregunta entonces existe el botón siguiente. Además el usuario que sabe un poco más puede contestar con FC (Factor de Certeza de un síntoma) entre [-1 y 1] siendo -1 totalmente en desacuerdo, 0 no se y 1 totalmente de acuerdo. La metodología de construcción del motor de inferencia está bajo programación estructurada, tenemos alrededor de 100 enfermedades con sus respectivos síntomas.

Además se deberá prever el encadenamiento de reglas hacia adelante, con los operadores and, or y not, dando una vida útil de este sistema de acuerdo a como sigan llenando las enfermedades y los síntomas que son los antecedentes o hechos y los consecuentes o conclusiones de cada una de ellas. Es decir, sino ingresan más conocimiento pues el sistema experto solo dará respuesta de la información ingresada a él.

Motor de inferencia – Para poder detectar las enfermedades se usará el siguiente código utilizando programación estructurada, que se resuelve con un diagnostico final o definitivo y cuando existen síntomas insuficientes para procesar las reglas. La herramienta de software a usar es C# para la programación y sqlserver para la base de datos y base de conocimiento.

fig-4.jpg

La utilidad de los encadenamientos de reglas basados en reglas de producción o reglas de inferencia o reglas de inducción, puede darse buscando el hecho de esa regla con sus correspondientes otros hechos que se unen para dar solución a una sola regla, y así sucesivamente para todas las reglas que tiene el sistema experto en sí, dentro de su BC.

Para este tipo de proyectos será de gran utilidad, visitar a varios médicos, debido a que ellos son quienes saben en la realidad los síntomas de cada una de las enfermedades, esto con el propósito de obtener mejores resultados y que el sistema tenga una magnífica performance y calidad de uso.

En ambientes de prueba realizados nos han dado buenos resultados con un prototipo diseñado.

Infraestructura del proyecto Para este proyecto utilizaremos la Figura 4 en la cual se muestra como estaría hecho el sistema experto.

La idea principal de este proyecto es dar solución a través de las reglas de producción y MYCIN, dando mayor fluidez al encadenamiento de reglas y dependiendo siempre del conocimiento que se ingrese.

El sistema como se ve consta de 2 partes principales: el sistema informático en sí y el sistema experto con las interfaces debidas para cada uno y la base de conocimiento centralizada de donde se tomarán los hechos y las reglas para poder procesar la información y así poder obtener el resultado deseado que es visualizar el diagnóstico del paciente basado en los síntomas del mismo.

fig-5.jpg
Figure 4
Sistemas interconectados del proyecto.

El proceso de la toma de decisiones por parte del motor de inferencia depende de los hechos y las reglas de producción que se encuentren bien conectadas en la base de conocimiento para que el sistema experto pueda obtener una respuesta adecuada.

3. Resultados Y Discusión

Algoritmo de aprendizaje

Se ha realizado este algoritmo planteado en la parte II literal k, con el propósito de que el motor de inferencia infiera las reglas de producción almacenadas en la BC con programación netamente estructurada, el código del mismo se encuentra en los resultados de la medición.

Estadística de simulaciones realizadas

En la tabla 2, se indica el número de expertos que ayudaron en el desarrollo del sistema, en donde esta si la interfaz le gusta o no, con cuanto aportaron para las evidencias de las 100 enfermedades, reglas y los resultados esperados.

Table 2

Información de los expertos.


En la Figura 5, se indica un resumen de los expertos médicos en cuanto a su ayuda para el sistema.

fig-7.jpg
Figure 5
Total de médicos y su aporte al sistema experto.

Se realizó una encuesta a los usuarios del sistema como son: Pacientes, Enfermeras y Médicos, tal y cual como se indica en la Tabla 3:

Table 3

Le parece excesivo el tiempo que se demora el sistema?


En la tabla 4, se indica el total de contestaciones de acuerdo a los ítems dados y contestados.

Table 4

Total de contestaciones por cada tipo de usuario.


En la tabla 4, se indica los porcentajes calculados de la anterior tabla y de los cuales se puede deducir que el sistema en gran medida no se demora en dar una respuesta al usuario, siempre y cuando ingrese correctamente los síntomas. En la Figura 6, indicamos las contestaciones de los usuarios de acuerdo a los ítems preguntados.

fig-10.jpg
Figure 6
Tiempo excesivo del sistema en dar una respuesta.

En la tabla 5 se muestran datos referentes a la pregunta, “Ud. como paciente quisiera atenderse con el sistema experto para medicina?” y como contestaron las 50 personas a las cuales sometimos esta pregunta.

Table 5

Se tiene datos de la pregunta “Ud. como paciente quisiera atenderse con el sistema experto para medicina?”


Table 6

Porcentajes de las contestaciones dadas por cada usuario de la tabla 5.


De esta tabla se obtiene la Figura 7, en donde se verifica la aceptación que tienen los usuarios de acuerdo a las edades de cada uno con el sistema desarrollado.

fig-13.jpg
Figure 7
Usuarios y su aceptación al sistema experto.
Table 7

Datos de la pregunta “Ud. al haber usado el sistema experto recomendaría a otra u otras personas?”


Table 8

Porcentajes de las contestaciones dadas por cada usuario de la tabla anterior.


De esta tabla se obtiene la Figura 8, en donde se verifica que los usuarios están de acuerdo en recomendar el uso del sistema a otra u otras personas, se especifica las edades de cada uno con el sistema desarrollado.

fig-16.jpg
Figure 8
Usuarios y su aceptación al sistema experto.

Eficiencia del sistema planteado

En el caso del prototipo resultó bastante eficiente con el algoritmo planteado, ya que como contamos con 100 enfermedades, entonces funcionó correctamente.

El sistema de aprendizaje del sistema experto se hizo con la ayuda de varios expertos médicos en diferentes áreas de la salud, dado que son ellos los que en realidad nos dan todo el conocimiento y un sistema de este tipo depende mucho de si es verdad o no esta información, para que se obtenga una respuesta óptima y real.

Discusión

La toma de decisiones la debe generar el motor de inferencia generado con programación estructurada, planteado para obtener el diagnóstico médico basado en síntomas utilizando reglas de producción con MYCIN, en el caso planteado que es la de medicina general, resulta muy beneficioso utilizar esto.

Dentro de la metodología IDEAL se tiene como IV fase la actuación para conseguir el mantenimiento perfectivo, entonces se realizó lo siguiente: La dimensión del tiempo en cuanto a respuesta del sistema esta medido en segundos y los usuarios dijeron que les gusta que le sistema experto les medique, que casi todos se han sanado con las prescripciones que el les ha dado.

Un resultado final inesperado fue que cuando se quiso aplicar con exámenes médicos no resultó o bastante real, entonces toca pedir a mas médicos ayuda en este caso, dado que el sistema solo con síntomas nos da un margen de error de 3% y con los resultados de exámenes nos da un error de 10%, queda para otra investigación este caso.

Ahora también hay que decir que mientras se iban realizando las pruebas los médicos que nos ayudaron pudieron notar que algunas enfermedades tienen síntomas parecidos, y es ahí donde entra el uso de MYCIN para insertar los FC para cada evidencia y para cada regla, dado que sin esta situación el sistema nos daría respuestas no reales.

Hay que prever que las enfermedades tienen síntomas demasiados parecidos, y también que de acuerdo a las edades fluyen los medicamentos; por eso se tomó la situación de los rangos.

Como trabajos futuros se propone realizar para todos los pacientes con rangos mas cortos pero usando ya exámenes que el medico envía, es decir usando datos más reales y algoritmos mejorados.

Contando como última fase de la metodología IDEAL tenemos que se necesita lograr una adecuado transferencia tecnológica, la cual se logrará en el momento que las empresas u organizaciones capaciten a sus empleados en el cambio tecnológico que ya existe en nuestra época.

Entonces la metodología que se propone es la unión de GROVER con la IDEAL para este tipo de software y que garantice en cada etapa una situación de calidad, tanto en la documentación como en el aspecto de la construcción de la base de conocimiento y el motor de inferencia con su correspondiente algoritmo de búsqueda guiado ya sea por forward chaining (manejado por datos y de abajo hacia arriba) o backward chaining (manejado por el objetivo y de arriba hacia abajo).

4. Conclusiones

En este artículo se ha realizado una presentación del proyecto con una metodología que tiene unas fases y que sigue estando en fase de desarrollo para sistemas expertos con el propósito de solucionar el tratamiento de pacientes cuando un solo médico no puede dar solución a demasiados pacientes que llegan a su consultorio en la ciudad de Riobamba, provincia de Chimborazo, país el Ecuador.

Se ha dado una breve introducción a los sistemas expertos partiendo de la interfaz de usuario, motor de inferencia, base de conocimiento interfaz con el experto y terminando con los mejores algoritmos a usar.

Sin dejar de lado el algoritmo de aprendizaje basado en reglas de producción con MYCIN y realizado para este prototipo, basado en C# y realizado con programación estructurada para el motor de inferencia.

El uso de las reglas de producción o reglas de inferencia y los algoritmos de encadenamiento es de gran ayuda para este tipo de proyectos, pero hay que saber escogerlos, al momento de realizarlos en la realidad.

Los problemas por donde hemos ido en este campo de la creación del proyecto son muy grandes pero no complejos ya que en el camino vamos encontrando las soluciones deseadas.

Del 10% de errores al principio, ahora tenemos un más menos 3%, que es superable y entendible, hasta que el motor de inferencia se vaya adaptando y cumpla con el objetivo para el cual fue creado.

En un próximo trabajo se estará mostrando las simulaciones realizadas con ejemplos prácticos y los tiempos que se demoran cada una de las enfermedades en diferentes ambientes con distintos tipos de usuarios y adaptando los exámenes médicos. Así como también se estará presentando para mayor cantidad de enfermedades.

La metodología planteada es una mixta dado que primera se realiza para adquisición de conocimientos (basada en GROVER), luego para el desarrollo del sistema experto (basada en la IDEAL) y por último se propone una situación de calidad en cada fase, que en un próximo trabajo se estará experimentando.

Agradecimientos

A mi querida familia, mis hijos, en especial a mi querida Ceci. Solo puedo decir Gracias! a las autoridades de la Facultad de Mecánica, autoridades de la Escuela Superior Politécnica de Chimborazo por haberme ayudado y brindado todas las facilidades para realizar este trabajo.

References

1 

Rossini, P. (2016). Use of artificial intelligence in real property valuation. Vol 5, No.3. IJET – International Journal of Engineering and Technology.

2 

Waltz, D. L.(1997). Artificial Intelligence: Realizing the Ultimate Promises of Computing. AI Magazine, Volume 18, Number 3. (pp 49-52)

3 

Wordpres (2017). Sistemas Expertos e Inteligencia artificial. Disponible en: https://sistemasexpertos2017.wordpress.com/2017/05/

4 

Nebendahl, D (1991). Sistemas expertos. Marcombo.

5 

Ferrer, Y. et all (2016). Sistema experto para la elección del tipo de recuperación en canteras de materiales de construcción. Editorial “Ediciones Futuro”. La Habana - Cuba

6 

Badaro S, Ibañez L and Agüero M. (2013). Sistemas Expertos: Fundamentos, Metodologías y Aplicaciones http://www.palermo.edu/ingenieria/pdf2014/13/CyT_13_24.pdf.

7 

Chacaltana, H. (2017). Sistema Experto para el diagnóstico de enfermedades respiratorias en el hospital central de policía nacional del Perú Luis N. Saenz. Universidad Inca Garcilaso de la Vega.

8 

Bustillos, S.M.(2018). Sistemas Expertos para la Asistencia Médica, en http://www.revistasbolivianas.org.bo/pdf/rits/n1/n1a21.pdf (24/05/2018).

FULL TEXT

Statistics

  • Downloads 7
  • Views 30

Navigation

Refbacks



ISSN: 2518-6841