Texto - Universidad Nacional Abierta

Anuncio
REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD NACIONAL ABIERTA
ÁREA DE INGENIERÍA
CARRERA INGENIERÍA DE SISTEMAS
DIAGNÓSTICO ASISTIDO POR COMPUTADORA:
UN SHELL PARA SISTEMAS EXPERTOS DIFUSOS.
Autor: Claude E. Hendrick R., C.I. V-10.222.828
Tutor Académico: Ing. Fernando Medina, C.I. V-17.756.541
Asesor Empresarial: Ing. Edgar González, C.I. V-6.524.564
Caracas, Centro Local Metropolitano
Noviembre, 2003
REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD NACIONAL ABIERTA
ÁREA DE INGENIERÍA
CARRERA INGENIERÍA DE SISTEMAS
DIAGNÓSTICO ASISTIDO POR COMPUTADORA:
UN SHELL PARA SISTEMAS EXPERTOS DIFUSOS.
Trabajo de Grado presentado ante la
Universidad Nacional Abierta
por Claude E. Hendrick R.
del Centro Local Metropolitano
para optar al título de
Ingeniero de Sistemas
Caracas, Noviembre de 2003
ii
SUMARIO
El presente Trabajo de Grado se fundamenta en el desarrollo de un shell que
permite implementar sistemas expertos basados en la lógica difusa y destinados a
facilitar los procesos de diagnóstico en situaciones complejas y de incertidumbre. Los
problemas de diagnóstico tienden a volverse complejos por el incremento de la
información que debe ser analizada, por la ausencia de relaciones precisas entre
causas y efectos, y por la dificultad de verificar alteraciones en sistemas avanzados y
en seres vivientes, por lo que es una necesidad creciente disponer de sistemas que
provean soluciones eficientes para estos problemas, que son comunes a diversas
ciencias, entre ellas las de la salud y la ingeniería.
El énfasis de este Trabajo de Grado está en el diseño, programación e
integración de las principales técnicas y métodos utilizados en el desarrollo de
sistemas expertos y procesos de inferencia para razonamientos aproximados, por lo
que se plantean situaciones propias de la Programación de Computadores, Análisis y
Diseño de Sistemas, Bases de Datos, Probabilidades, Inferencia Estadísticas,
Documentación de Sistemas, entre otras disciplinas relacionadas con la Ingeniería de
Sistemas.
Palabras Claves:
Diagnóstico automatizado, problemas de diagnóstico, lógica difusa, reglas de
inferencia, sistema experto difuso, shell para sistemas expertos.
iv
ÍNDICE
Introducción .................................................................................................................... 12
1. El Problema................................................................................................................. 14
1.1. Planteamiento del Problema............................................................................ 14
1.2. Justificación de la Investigación ..................................................................... 15
1.3. Objetivo General ............................................................................................. 15
1.4. Objetivos Específicos...................................................................................... 15
1.5. Limitaciones y Alcance................................................................................... 16
2. Marco Teórico............................................................................................................. 18
2.1. La Necesidad de Diagnosticar......................................................................... 18
2.2. Técnicas Empleadas en la Automatización de Diagnósticos .......................... 21
2.2.1. Métodos Algorítmicos de Diagnóstico ................................................. 21
2.2.2. Diagnósticos Basados en el Teorema de Bayes.................................... 21
2.2.3. Diagnósticos Basados en Estadísticas Multivariantes .......................... 23
2.2.4. Razonamiento Basado en Reglas.......................................................... 25
2.2.5. Razonamiento Basado en Casos ........................................................... 25
2.2.6. Redes Neuronales Artificiales .............................................................. 25
2.3. Inteligencia Artificial y Sistemas Expertos..................................................... 28
2.3.1. Orígenes................................................................................................ 28
2.3.2. Aplicaciones ......................................................................................... 29
2.3.3. Ejemplos Clásicos de Sistemas Expertos ............................................. 29
2.4. Representación del Conocimiento .................................................................. 30
2.5. Causas de Incertidumbre ................................................................................. 35
2.6. Razonamientos Lógicos .................................................................................. 36
2.6.1. Lógica Bi-valuada................................................................................. 38
2.6.2. Lógica Multi-valuada ........................................................................... 39
v
2.6.3. Lógica Difusa ....................................................................................... 39
2.7. Sistemas Expertos ........................................................................................... 48
2.7.1. Definición de Sistema Experto ............................................................. 48
2.7.2. Componentes de los Sistemas Expertos ............................................... 49
2.7.3. Ventajas y Limitaciones de los Sistemas Basados en Reglas............... 50
2.7.4. Sistemas Expertos Difusos ................................................................... 51
3. Marco Metodológico................................................................................................... 52
3.1. Tipo de Investigación...................................................................................... 52
3.2. Técnicas de Recolección de Datos.................................................................. 52
3.3. Técnicas de Programación y Documentación ................................................. 53
3.4. Técnicas de Validación de Resultados............................................................ 54
4. Desarrollo de la Solución ............................................................................................ 56
4.1. Consideraciones de Diseño y Selección de Recursos ..................................... 56
4.2. Usuarios .......................................................................................................... 66
4.3. Parámetros de Cálculo e Inferencia................................................................. 67
4.3.1. Valores para la Activación de las Reglas ............................................. 66
4.3.2. Tipos de Intersección para Variables Difusas ...................................... 69
4.4. Información Estadística de los Casos.............................................................. 71
4.5. Categorías y Elementos de Diferenciación ..................................................... 71
4.6. Variables ......................................................................................................... 72
4.6.1. Variables Difusas.................................................................................. 72
4.6.2. Variables Lingüísticas Discretas .......................................................... 73
4.6.3. Variables Definidas por Series de Valores ........................................... 73
4.6.4. Variables No Difusas............................................................................ 74
4.7. Funciones de Pertenencia................................................................................ 74
4.7.1. Función de Pertenencia Triangular....................................................... 75
4.7.2. Función de Pertenencia Trapezoidal..................................................... 75
4.7.3. Función de Pertenencia Campana de Gauss ......................................... 76
4.7.4. Función de Pertenencia Campana de Gauss Combinada...................... 77
vi
4.7.5. Función de Pertenencia Campana Generalizada .................................. 77
4.7.6. Función de Pertenencia Curva Sigmoidal ............................................ 78
4.7.7. Función de Pertenencia Combinación Sigmoidal................................. 79
4.7.8. Función de Pertenencia Diferencia Sigmoidal ..................................... 79
4.7.9. Función de Pertenencia Curva en Forma de S...................................... 80
4.7.10. Función de Pertenencia Curva en Forma de Z ................................... 81
4.7.11. Función de Pertenencia Curva PI (SZ) ............................................... 81
4.8. Modificadores Difusos .................................................................................... 82
4.9. Tipos de Conclusión........................................................................................ 83
4.9.1. Conclusiones No Difusas...................................................................... 84
4.9.2. Conclusiones Difusas ........................................................................... 84
4.10. Tipos de Inferencia Difusa ............................................................................ 85
4.10.1. Inferencia Difusa Tipo Mamdani ....................................................... 85
4.10.2. Inferencia Difusa Tipo Sugeno........................................................... 86
4.11. Formas de Precisar las Salidas Difusas......................................................... 87
4.11.1. Centro de Gravedad ............................................................................ 87
4.11.2. Centro de las Sumas ........................................................................... 88
4.11.3. Primer Máximo................................................................................... 89
4.11.4. Último Máximo .................................................................................. 89
4.11.5. Medio Máximo ................................................................................... 89
4.11.6. Promedio Ponderado........................................................................... 89
4.12. Reglas de Inferencia...................................................................................... 90
4.12.1. Información Requerida para Definir Reglas....................................... 90
4.12.2. Antecedentes de las Reglas................................................................. 91
4.12.3. Conclusiones de las Reglas................................................................. 94
4.13. Cuestionarios................................................................................................. 94
4.14. Diagnosticar .................................................................................................. 95
4.15. Datos Históricos de los Casos ..................................................................... 102
vii
5. Pruebas a la Solución ................................................................................................ 103
Conclusiones y Recomendaciones ............................................................................ 108
Bibliografía .......................................................................................................... 112
Anexos ................................................................................................................. 120
viii
ÍNDICE DE TABLAS Y FIGURAS
Figuras
2.1. Esquema de un clasificador variable............................................................. 24
2.2. Representación gráfica de una red neuronal artificial................................... 27
2.3. Relaciones de designación y referencia de los conceptos............................. 31
2.4. Representación gráfica de la vaguedad intensional ...................................... 34
2.5. Representación gráfica de la vaguedad extensional...................................... 35
2.6. Representación gráfica de la convexidad de un conjunto difuso .................. 42
2.7. Componentes básicos de un sistema experto basado en reglas..................... 49
4.1. Opciones del shell ......................................................................................... 66
4.2. Función de pertenencia triangular................................................................. 75
4.3. Función de pertenencia trapezoidal............................................................... 76
4.4. Función de pertenencia campana de Gauss................................................... 76
4.5. Función de pertenencia campana de Gauss combinada ................................ 77
4.6. Función de pertenencia campana generalizada ............................................. 78
4.7. Función de pertenencia curva sigmoidal....................................................... 78
4.8
Función de pertenencia combinación sigmoidal ........................................... 79
4.9. Función de pertenencia diferencia sigmoidal................................................ 80
4.10. Función de pertenencia curva en forma de S ................................................ 80
4.11. Función de pertenencia curva en forma de Z ................................................ 81
4.12. Función de pertenencia curva PI (SZ)........................................................... 82
4.13. Pasos del método de inferencia de Mamdani................................................ 86
4.14. Pasos del método de inferencia de Sugeno ................................................... 87
4.15. Diagrama de flujo del proceso de diagnóstico ............................................ 101
4.16. Diagrama de pruebas y validaciones........................................................... 103
ix
Tablas
4.1. Configuración disponible y requerimientos de los lenguajes ......................... 62
4.2. Tipos de intersección incorporadas en el shell para variables difusas ............ 70
4.3. Tipos de relaciones y valores disponibles para evaluar características........... 92
4.4. Tipos de relaciones y valores disponibles para registrar los hechos............... 96
INTRODUCCIÓN
Las últimas décadas se han caracterizado por un creciente uso de la tecnología
informática para la automatización de procesos que requieren toma de decisiones
complejas, de allí que se les consideren como soluciones inteligentes. La masificación
y evolución de la computación no se ha limitado al mejoramiento del software y del
hardware en términos de facilidad de uso, eficiencia, reducción de costos o tamaños,
más bien se trata del desarrollo simultáneo de nuevas tecnologías y de aplicaciones que
la justifican, la hacen factible y rentable.
Los sistemas expertos constituyen el área de investigación más fecunda de la
Inteligencia Artificial. Sus logros han sido notables en diversas actividades del
quehacer humano, sin embargo quedan muchas expectativas no satisfechas. Entre ésas,
el disponer de herramientas que permitan la eficaz automatización de los procesos de
diagnóstico, pues se trata del recurso fundamental para la solución de problemas que
surgen en la ingeniería, la medicina, y la veterinaria, entre otras ciencias y disciplinas.
Para resolver un problema, lo primordial es su identificación o diagnóstico. Esto puede
requerir de conocimientos muy especializados, que sólo lo poseen un reducido grupo
de profesionales por lo que su disponibilidad queda limitada a la ubicación y capacidad
de trabajo de estos últimos. La implementación de sistemas expertos puede significar
una mejora sustancial en la capacidad de resolver problemas, pues no presentan esas
limitaciones de tiempo ni de espacio, además poseen gran capacidad para almacenar
información y procesarla velozmente.
La solución de algunos problemas, especialmente los que corresponden a las
ciencias no exactas, depende de conocimientos incompletos e imprecisos, lo que ha
motivado el desarrollado de varias teorías y métodos para el tratamiento de la
10
incertidumbre y la vaguedad conceptual. Una de estas teorías fue propuesta en el año
1965 por el Prof. Lotfi Zadeh, a la misma se le denominó Lógica Difusa (Fuzzy Logic),
y su objetivo es formalizar el razonamiento aproximado a través de la definición de
infinitos valores intermedios entre los extremos verdadero y falso, este criterio
aplicado al concepto de pertenencia en la teoría de conjuntos dio origen a los conjuntos
difusos. La lógica difusa se puede aplicar a los sistemas expertos para representar y
procesar los conocimientos aproximados, en cuyo caso se habla de sistemas expertos
difusos.
En general se reconoce que el desarrollo de un sistema experto es una actividad
compleja, que puede requerir importantes recursos en términos de tiempo y dinero, por
eso se ha dado importancia a la programación de sistemas que puedan adaptarse a
diversas necesidades. Ya que dichos sistemas no poseen conocimientos acerca de
ninguna especialidad, se le denomina con el vocablo inglés shell para indicar que se
trata de cascarones o estructuras con capacidad de inferencia, no de sistemas expertos.
El objetivo principal de este Trabajo de Grado fue diseñar y programar un shell
para implementar sistemas expertos basados en lógica difusa, para resolver problemas
de diagnóstico.
El shell fue desarrollado para usarse con el sistema operativo Windows®, su
interfaz es fundamentalmente gráfica, y no es necesario aprender ningún lenguaje o
reglas sintácticas para usarlo de forma eficiente. El shell aquí presentado ha sido
dotado de una amplia variedad de funciones y características que lo convierten en una
atractiva y poderosa herramienta que permite definir y utilizar fácilmente sistemas
expertos para apoyar los procesos de diagnóstico, aun en casos de incertidumbre. Este
desarrollo es el resultado de combinar y llevar a la práctica un importante número de
conceptos y teorías relacionadas directamente con la Ingeniería de Sistemas.
11
Capítulo 1
EL PROBLEMA
Muchos sistemas expertos han sido desarrollados para usos específicos, por lo
que no es fácil su implementación en otras áreas de conocimiento, por el mismo hecho
de tener un campo de aplicación muy restringido estos sistemas resultan costosos de
adquirir, cuando están disponibles en forma comercial. Además, el uso de complejas
reglas sintácticas, dificulta el aprendizaje y posterior uso de algunos de ellos. Los
problemas de diagnóstico no se limitan a las ciencias exactas, por lo que es necesario
que los sistemas empleados para facilitar la solución de ciertos problemas, sean
capaces de funcionar con conocimiento aproximado o incompleto, característica que
no está presente en buena parte de los sistemas expertos de diagnóstico.
1.1. Planteamiento del Problema
En distintas ciencias y áreas de especialización existe una creciente necesidad de
realizar diagnósticos precisos y oportunos, pues surgen problemas en los cuales se
deben detectar fallas o alteraciones, para su posterior solución. Los sistemas expertos
de diagnóstico ayudan a preservar y ampliar la disponibilidad del conocimiento
especializado aplicable en esos casos. Se planteó el desarrollo de un shell que facilite
la implementación de esos sistemas expertos, y se recurrió a la lógica difusa para hacer
más efectiva la representación del conocimiento impreciso, que suele estar presente en
los problemas de diagnóstico. Con la implementación de los sistemas expertos, se
busca propiciar el trabajo ordenado y metódico, contribuyendo a la eficiencia de los
procesos. Además, la sistematización del conocimiento facilita el análisis y
comprensión de los problemas, y da la posibilidad de disponer de los recursos
necesarios para su satisfactoria solución.
12
1.2. Justificación de la Investigación
Los sistemas expertos constituyen una importante área de investigación dentro
de las ciencias de la computación, generalmente, se orientan a resolver problemas
complejos y/o de profundo impacto para la sociedad, constituyéndose en uno de los
pilares fundamentales de la Inteligencia Artificial. Por su parte, la lógica difusa ha
demostrado ser exitosa en la automatización de ciertos procesos, aun cuando su
desarrollo ha estado acompañado de polémicas acerca de su originalidad, aplicabilidad
e interdependencia de la probabilidad y las matemáticas en general. En ambos casos,
se trata de temas vigentes y relevantes para la formación de los profesionales de la
computación, tanto a nivel de pre-grado como de postgrado. La investigación aquí
expuesta no se limita a la revisión de la literatura existente o al seguimiento de una
metodología preestablecida para obtener un resultado, sino que conjuga aspectos
teóricos y prácticos para ofrecer soluciones a problemas de la medicina, veterinaria,
agricultura, e ingeniería entre otras ciencias.
1.3. Objetivo General
Diseñar y programar un shell para implementar sistemas expertos basados en
lógica difusa, para resolver problemas de diagnóstico.
1.4. Objetivos Específicos
•
Diseñar y programar los componentes del sistema o shell:
o La base de conocimientos, para almacenar las reglas lógicas de decisión y
el conocimiento expresado por los especialistas en procesos de diagnóstico.
o La base de hechos, que contendrá las características de los problemas de
diagnóstico introducidos a los sistemas, es decir, sus valores, signos,
síntomas.
13
o El motor de inferencia, el cual debe relacionar de forma lógica antecedentes
y consecuentes para encontrar soluciones que satisfagan las condiciones
establecidas y el ordenamiento de posibles diagnósticos, incorporando
mecanismos de inferencia basados en la lógica difusa.
o Las rutinas para definir variables lingüísticas, etiquetas y funciones de
pertenencia (según las fórmulas más usuales: triangular, trapezoidal, Gauss,
campana generalizada) para las variables difusas.
o Las rutinas para el control de acceso por usuario, manejo de errores,
mantenimiento de la información, menú, diálogo con el usuario, etc.
•
Validar los resultados mediante la reproducción de procesos de diagnóstico
comprobados, y verificar el funcionamiento general del sistema.
•
Documentar los programas que conforman el sistema, y redactar los manuales
que faciliten su operación, mantenimiento y actualización.
1.5. Limitaciones y Alcance
Seguidamente se exponen algunas características y limitaciones asociadas al shell
propuesto y desarrollado:
•
El sistema produce sugerencias, cada usuario es responsable del uso que se
haga de las mismas. El shell y los sistemas en él definidos deben ser entendidos
como una ayuda para resolver problemas de diagnóstico, no como un
reemplazo de las facultades humanas, ni como atenuante de la capacitación
requerida para el desempeño de profesiones u oficios.
•
El sistema propuesto está pensado para encontrar soluciones en un conjunto
limitado de posibilidades, y siempre en función de la información previamente
registrada.
•
Se incluyen algunos datos a manera de ejemplo, para ilustrar el funcionamiento
del shell, no pretendiéndose afirmar en ningún caso que el sistema cubre esas
áreas de especialización o que el autor posee conocimientos sobre esos tópicos.
14
•
El sistema sólo contempla la interacción manual y directa con los usuarios, es
decir, no posee la capacidad de controlar mecanismos o dispositivos externos,
ni de capturar datos en forma automática a través de ellos.
•
La utilidad del sistema depende de la cantidad y calidad de la información que
le sea suministrada. La capacidad de funcionar con información aproximada o
incompleta, no implica que la precisión de los resultados no se vea afectada, o
que se acepten sin consecuencias, contradicciones y falsas vinculaciones.
•
El software está diseñado para ser utilizado en computadores dotados del
sistema operativo Windows® de Microsoft, y en la versión inicial presentada
con fines académicos y didácticos no se contempla su uso en redes.
•
La capacidad del shell para resolver problemas, se refiere a situaciones de
diagnóstico de sencilla o mediana complejidad, en las cuales los criterios de
decisión sean susceptibles de ser expresados por medio de reglas lógicas.
•
El tipo de funciones de pertenencia para caracterizar valores difusos, y las
operaciones permitidas, se limitan a las formas más usuales pues se trata de
buscar soluciones aproximadas.
•
El carácter general del sistema propuesto, se refiere a la capacidad de ser
empleado en diferentes áreas del quehacer humano, al suministrársele los datos
y parámetros correspondientes, no así a su idoneidad o aplicabilidad a
cualquier tipo de problemas de identificación de fallas o diagnóstico.
15
Capítulo 2
MARCO TEÓRICO
El capítulo comienza con una breve exposición de la necesidad e importancia de
los procesos de diagnóstico, luego se hace una revisión de las principales técnicas
empleadas en la automatización de dichos procesos. Se ha procurado mostrar las
ventajas y desventajas de cada enfoque, así como un resumen de sus aspectos
operativos. Se menciona el origen y evolución de la Inteligencia Artificial,
los
sistemas expertos y sus aplicaciones, mostrándose a manera de ejemplo algunos
sistemas, que por razones históricas, de popularidad y difusión de uso, resultan
importantes como referencia de la evolución y éxito de estas aplicaciones.
Posteriormente, se exponen las bases conceptuales que sustentan el desarrollo de este
Trabajo de Grado. Se define el tipo de conocimientos que se puede integrar en los
sistemas expertos, se describen las causas de incertidumbre, y sus consecuencias. Se
continúa con los aspectos lógicos del razonamiento, la lógica difusa, y se concluye con
una descripción general de los sistemas expertos.
2.1. La Necesidad de Diagnosticar
Diagnosis es una palabra derivada del vocablo griego di§gnwsi (conocimiento),
y se refiere a identificar o reconocer una enfermedad a partir de sus signos, y a la
descripción de las características diferenciales de una cierta clase, especie o género.
Diagnóstico, palabra derivada del vocablo griego diagnwstikÕj, (distintivo) se refiere
al acto de conocer la naturaleza de una enfermedad mediante la observación de sus
síntomas y signos. La aplicación de estos conceptos se ha ampliado, y se usa el
término diagnosticar para referirse a la identificación de alteraciones en el
funcionamiento de un sistema o modelo a partir de un conjunto de manifestaciones,
16
signos y síntomas, es decir, es una forma de clasificación de ciertos grupos de
conceptos.
No se pretende aquí juzgar la capacidad del personal médico, hombres y
mujeres, que generalmente hacen su mejor esfuerzo en pro de la comunidad, por el
contrario, se desea destacar lo complejo de su actividad profesional y la necesidad de
buscar posibles soluciones que hagan más efectiva su labor. Con respecto al
diagnóstico en la práctica médica, resultan bastante elocuentes los siguientes extractos
tomados del texto de Medicina Interna de los doctores Farreras y Rozman [Farreras,
Rozman, 1996]. Comienza el Dr. Ciril Rozman la sección dedicada al diagnóstico y
sus principios generales de la siguiente forma:
Una de las facetas más importantes y difíciles del quehacer médico diario
es el diagnóstico. Dicho proceso comienza por una cuidadosa recogida de
la anamnesis o historia clínica, en la que junto a numerosos detalles que
puedan ser de interés, ocuparán un lugar destacado las molestias subjetivas
o síntomas que manifieste el paciente... Los distintos síntomas y signos se
agrupan en los síndromes, que suelen traducir una alteración anatómica o
funcional de un órgano o sistema. Por último, entre las distintas causas
capaces de originar un síndrome concreto se llega a precisar con las
exploraciones complementarias una posibilidad etiológica y se establece el
diagnóstico de enfermedad o entidad nosológica.
La anamnesis y la exploración física, durante las cuales el médico recoge
con cuidado y siguiendo los principios expuestos los síntomas y signos de
la afección que sufre el paciente, siguen siendo el pilar del ejercicio médico
y del método clínico, a pesar de los espectaculares avances experimentados
por las técnicas instrumentales y de laboratorio. Sin estos dos métodos
clásicos y sin las consiguientes hipótesis diagnósticas más o menos
aproximadas, la práctica clínica pierde el nombre de tal y se convierte en
una búsqueda del diagnóstico al azar y sin dirección adecuada, consistente
en la petición de numerosas pruebas de laboratorio y exploraciones
instrumentales. En la práctica clínica auténtica hay que huir de este intento
diagnóstico “por perdigonada” y seguir el método clínico, cuyas premisas
insustituibles son la anamnesis y la exploración física. Una vez acabadas
éstas, es preciso que el médico formule el diagnóstico o los diagnósticos
provisionales o de presunción. Nada hay más criticable en nuestra profesión
17
que la llamada medicina adiagnóstica, practicada por desgracia con
excesiva frecuencia ... es preciso que las exploraciones complementarias
merezcan este calificativo y constituyan, no la actividad fundamental del
quehacer médico, sino sólo el complemento de un proceso diagnóstico
perfectamente estructurado... No prodigar la práctica de pruebas
complementarias es algo muy conveniente por varias razones: en primer
lugar, cabe mencionar los aspectos económicos. Es indudable que los
costos de la medicina actual están creciendo en espiral y que muy pronto
ninguna economía podrá contemplar impasiblemente este problema. ....
Pero, aparte de las cuestiones económicas, evidentemente importantes, hay
otras consideraciones de trascendencia aún mayor. Al decidir las
exploraciones complementarias el médico debe atender, por encima de
todo, al interés del enfermo. Así, es preciso tener en cuenta que el paciente
experimenta ya un considerable grado de incomodidad física y psíquica por
el hecho de estar enfermo y, por tanto, es imprescindible que el médico no
añada nuevas incomodidades con la práctica de exploraciones
complementarias que no sean estrictamente necesarias. En ocasiones,
dichas exploraciones entrañan, además de la incomodidad un riesgo, acaso
vital.
Los procesos de diagnóstico pueden ser complejos, pues no siempre resultan
evidentes las causas de los problemas. Siguiendo con el ejemplo médico, un paciente
puede presentar un problema de salud que esté originado por el mal funcionamiento de
un órgano, o puede estar intoxicado con alguna de las más de 13 millones de
sustancias químicas naturales y sintéticas que se tienen identificadas, o puede estar
contaminado por algún parásito o un microorganismo (virus, bacteria, hongo, etc.),
igualmente las causas pueden ser de origen emocional, una combinación de varias de
ellas, o simplemente desconocida para el momento. Adicionalmente, los problemas de
diagnóstico en ocasiones deben ser resueltos en muy poco tiempo, pues en casos
extremos sólo se dispone de algunos minutos para salvar la vida de un paciente.
Como se indicaba al comienzo de esta sección, los problemas de diagnóstico no
son exclusivos de las ciencias medicas, ni su importancia se vuelve secundaria cuando
no se refiere directamente a la salud de los seres humanos, pues en otras aplicaciones
sus impactos pueden ser aún mayores al afectar colectivamente a la sociedad, en
18
aspectos tan relevantes como el transporte público, la seguridad alimentaria, el
suministro eléctrico, las telecomunicaciones, etc.
2.2. Técnicas Empleadas en la Automatización de Diagnósticos
A continuación se mostrarán algunas técnicas que han sido empleadas
reiteradamente en sistemas informáticos tendentes a automatizar y/o a facilitar la
solución de problemas de diagnóstico. Es importante destacar que sólo se mencionan
algunas técnicas, y que en muchos casos, los sistemas informáticos recurren
simultáneamente a más de una de ellas para resolver un mismo tipo de problemas. Por
lo tanto, no debe entenderse que se trata de una confrontación de métodos para
seleccionar el mejor, especialmente cuando cada uno de ellos puede resultar apropiado
para un tipo específico de problema.
2.2.1. Métodos Algorítmicos de Diagnóstico
Consiste en la programación secuencial de instrucciones que representan las
etapas del proceso de diagnóstico para desarrollar programas informáticos capaces de
aplicar el algoritmo con nuevos datos. Esta forma de diagnosticar se puede aplicar
principalmente para clasificaciones y diagnósticos diferenciales. Las posibilidades de
respuesta son fijas, previsibles e invariables. Aunque estos programas han sido
técnicamente superados, no deben menospreciarse, puesto que contribuyen a un
análisis detallado del proceso diagnóstico y se utilizan como nexo entre distintos
módulos de otros programas más complejos. También son útiles para la solución de
problemas muy específicos y complejos. El análisis requerido para su programación es
similar al empleado en la construcción de árboles de decisión.
2.2.2. Diagnósticos Basados en el Teorema de Bayes
Se basa en el teorema de la probabilidad condicionada, propuesto en 1763 por el
reverendo Bayes. Sean C1, C2, ... Cn, n sucesos mutuamente excluyentes que
19
representan las n posibles causas de un resultado R. P(Ci/R) es la probabilidad de que
se haya dado Ci puesto que se dio R, es posible calcular dicha probabilidad a través de
la siguiente fórmula:
P(C i / R ) =
P (C i ∩ R)
P ( R / C i ).P(C i )
= n
P( R)
∑ P( R / C i ).P(C i )
i =1
P(C) se denomina probabilidad a priori, y P(Ci/R) se denomina probabilidad a
posteriori o condicionada. El teorema de Bayes aplicado a diagnósticos en medicina,
se presenta en los siguientes términos:
P ( E si S ) = P ( S si E ).
P( E )
P(S )
Fórmula en la que se establece que la probabilidad de estar enfermo E, teniendo
el síntoma S (expresión denominada predictividad del síntoma) es igual al producto de
la probabilidad de tener el síntoma si se está enfermo (sensibilidad del síntoma) por el
cociente entre las probabilidades de estar enfermo y de tener el síntoma (prevalencias
de la enfermedad y del síntoma respectivamente).
Cuando en vez de síntomas, o variables de dos categorías, se utilizan variables
cuantitativas o continuas, como sería el caso de resultados de laboratorio, puede
resultar que la distribución de los valores en la población sana se superponga con la
correspondiente a la población enferma. La representación gráfica de la especificidad
obtenidos empíricamente determina un conjunto de curvas que se conocen como
curvas ROC (Receiver Operating Characteristic), por su analogía con las curvas
similares de sensibilidad-especificidad de los receptores de radiofrecuencia. A partir
de estas curvas, expresivas del rendimiento diagnóstico, se puede discriminar entre
sanos y enfermos. Basados en estos supuestos teóricos, se han desarrollado programas
para diagnóstico asistido por computadoras. Los éxitos de este tipo de programas se
consideran más didácticos que prácticos. Los procedimientos bayesianos directos
20
tienden a ser hiperpredictivos, debido a que no siempre hay una independencia de
probabilidad entre los diferentes síntomas, la cual es una de las condiciones de
aplicación del teorema de Bayes. Se han ideado procedimientos para corregir la
hiperpredictividad y en la actualidad la aproximación bayesiana al diagnóstico se
utiliza conjuntamente con la Inteligencia Artificial, estadística multivariante y redes
causales y otras técnicas.
2.2.3. Diagnósticos Basados en Estadísticas Multivariante
La estadística multivariante se usa principalmente con fines de investigación
teórica. Por lo general, se recurre al uso de programas comerciales como BMDP, SAS,
SPSS, etc. Que permiten análisis de causalidad, métodos de selección de variables, y
reconocimiento de patrones. El análisis de causalidad se basa en los siguientes
aspectos:
1. Una secuencia temporal razonable, la cual implica que la causa haya actuado
antes de producirse el efecto, y no después.
2. El concepto de causa suficiente, el cual implica que cuando la hipotética
causa está presente se produce siempre el efecto.
3. El concepto de causa necesaria, implica que para que se produzca el efecto, la
causa ha de estar presente y, si no lo está, el efecto no se produce.
4. Causa necesaria y suficiente, significa que la causa ha de estar presente y
siempre que lo está se produce el efecto.
La existencia de excepciones en los análisis de causalidad es origen de
incertidumbre, especialmente en los problemas de diagnóstico, en los cuales los
agentes causales suelen ser necesarios, pero raras veces suficientes, y a menudo
presentan relaciones temporales variables y coexisten causas de muy diversa
naturaleza para un mismo efecto.
21
Las técnicas de selección de variables son una consecuencia del análisis de la
causalidad cuando son varios los posibles factores concurrentes. La aproximación
estadística a los límites de la lógica no es sencilla y se suele acudir a los modelos
matemáticos. Los modelos lineales, de tipo cartesiano, no ocurren frecuentemente en
los problemas de diagnóstico, aun cuando son los más sencillos y el efecto esperado
puede representarse por una ecuación de regresión múltiple o discriminante del tipo:
y = a + b1 . X 1 + b2 . X 2 + ... + bn . X n
El reconocimiento de patrones es el resultado de la aplicación de un conjunto de
variables agrupadas según una función discriminante, logística, o de otro tipo, al que
se denomina clasificador. Se trata de analizar estadísticamente las agrupaciones
características de signos y síntomas en torno a diagnósticos. Los clasificadores pueden
ser fijos o variables. Cuando se usan clasificadores variables el sistema es capaz de ir
modificando la matriz de probabilidades original, es decir, se puede hablar de un
proceso de actualización o aprendizaje. Cada clasificador estadístico representa un
bloque evaluable con los mismos criterios de sensibilidad, especificidad y
predictividad que se han descrito para un síntoma único. A continuación se muestra un
diagrama general del funcionamiento de una rutina de detección de patrones usando un
clasificador variable.
Muestra
de patrones
controlados
Diseño del
clasificador
Clasificador
variable
Patrón incognita
Clasificación
Modificación
del clasificador
Detector
de errores
Fig. 2.1. Esquema de un clasificador variable.
22
2.2.4. Razonamiento Basado en Reglas
También conocido como razonamiento basado en el conocimiento. Los sistemas
que utilizan este enfoque para realizar diagnósticos disponen de una base de datos que
almacena el conocimiento relativo a una materia o especialidad. El conocimiento es
suministrado por personas a las que se considera expertos en la materia, y queda
expresado en forma de datos iniciales y reglas lógicas. Las reglas lógicas por lo
general son de la forma “Si antecedentes Entonces conclusión”. Los sistemas basados
en reglas son la forma más común de desarrollar sistemas expertos, constituyéndose en
el segmento más conocido de la Inteligencia Artificial. (Ver la sección 2.7 para
información adicional sobre los sistemas expertos).
2.2.5. Razonamiento Basado en Casos
El razonamiento basado en casos (Case Based Reasoning, CBR) constituye un
enfoque diferente del razonamiento basado en reglas o en el conocimiento. Como
método fue desarrollado predominantemente en la Universidad de Yale por Schank, su
desarrollo más notable se ubica en la segunda mitad de la década de los ochenta. Se
basa en el análisis del razonamiento por analogía y en el hecho que cuando el hombre
se encuentra frente a una situación nueva, busca en sus recuerdos una situación
parecida para poder comparar. La presentación repetida de casos permite establecer las
reglas que definen un paradigma: el caso ejemplo. Si el caso nuevo no muestra
diferencias relevantes, queda integrado en el paradigma que guarda la memoria, lo que
significa diagnóstico concluido. Si las diferencias son relevantes, el caso actual se
mantiene activo en otro tipo de memoria más dinámica, en espera de nuevos casos
parecidos para definir el respectivo caso ejemplo o paradigma.
2.2.6. Redes Neuronales Artificiales
Las redes de neuronas artificiales tratan de representar el conocimiento
replicando la estructura del cerebro humano. En ellas el conocimiento no se programa
23
de forma directa en la red sino que se adquiere de ejemplos por medio de reglas de
aprendizaje, reconociendo patrones y ajustando parámetros. Es una forma de inducción
muy diferente a la empleada en los sistemas expertos basados en reglas. El origen de
las redes neuronales se encuentra en la representación de la neurona biológica por
McCulloch y Pitts en 1943. Este modelo considera que una neurona puede ser
representada por una unidad binaria. A cada instante su estado puede ser activo o
inactivo. En otros modelos el estado de cada neurona es descrito por una variable
continua. La interacción entre neuronas se denomina sinapsis, y puede ser controlada
mediante pesos sinápticos, según el signo la sinapsis puede ser excitadora o inhibidora.
La forma de red neuronal más simple, en la cual no existen capas ocultas, se
denomina perceptron. El perceptron está constituido por las entradas provenientes de
fuentes externas, las conexiones y la salida. Para cada posible entrada o estímulo la
respuesta del perceptron obedece a la siguiente dinámica: se suman los potenciales
sinápticos y se comparan con el umbral de activación, esta suma ponderada se llama
también campo. Si el campo es mayor que el umbral la respuesta de la neurona es
activa, en caso contrario la respuesta es inactiva. Una arquitectura simple como la del
perceptron sólo es aplicable a funciones booleanas simples, llamadas linealmente
separables. Para aumentar la capacidad de resolver problemas mediante redes
neuronales, es necesario intercalar neuronas entre las capas de entrada y de salida,
llamadas neuronas ocultas.
Una red multicapas puede ser definida como un conjunto de perceptrones,
ligados entre sí por sinapsis y dispuestos en capas siguiendo diversas arquitecturas.
Una de las arquitecturas más comúnmente usada es llamada feedforward, con
conexiones de la entrada a las capas ocultas y de éstas hacia la salida. El
funcionamiento de una red neuronal es gobernado por reglas de propagación de
actividades y de actualización de los estados. La mayor parte de las reglas de
aprendizaje se basan en ajustes iterativos de las conexiones, sin embargo es posible
24
que ciertas reglas puedan modificar la estructura misma de la red. A continuación se
muestra la representación gráfica de una red neuronal artificial:
c1
Capa de Salida
cj
...
c1
cq
...
cj
w
p1
w
...
vn
...
bi
1
pj
w iq
i1
b1
wpq
w
w 1j
Capa Intermedia
a1
vnp
a1
Donde:
ni
v hp
h1
...
FB
v
v
v 1i
bp
v 1p
vhi
v11
Capa de Entrada
FC
w 1q
wij
w11
cq
ah
ah
...
an
FA
an
vab Indica los pesos asociados entre las neuronas a,b correspondientes
a las capas de entrada e intermedia.
wbc Indica los pesos asociados entre las neuronas b,c correspondientes
a las capas intermedia y de salida.
Fig. 2.2. Representación gráfica de una red neuronal artificial
El aprendizaje con redes de neuronas se realiza actualmente siguiendo el enfoque
de la retropropagación de gradientes (backpropagation) y el de los algoritmos
constructivos. Este enfoque implica conocer previamente el número y conexiones de
las neuronas ocultas, y determinar los pesos por minimización de un costo. La red así
obtenida es eventualmente simplificada eliminando unidades y/o conexiones que
parecen inútiles. El principal defecto de este enfoque consiste en la búsqueda de la
mejor arquitectura mediante el ensayo-error. Con un enfoque constructivo se aprende
al mismo tiempo el número de unidades y sus pesos, en el marco de una arquitectura
que comienza generalmente con un perceptron, lo cual puede implicar un tiempo de
respuesta bastante prolongado para problemas relativamente complejos.
25
Las redes neuronales no necesitan de construcciones o expresiones que
representen el conocimiento especifico para resolver determinados problemas, sólo se
requiere de un conjunto de ejemplos satisfactorios (casos de aprendizaje), y es la
principal ventaja de las redes neuronales para resolver problemas de diagnóstico ya
que no es necesario definir las posibles relaciones entre causas y efectos. Al mismo
tiempo, esto puede ser su principal desventaja, ya que no siempre se dispone de
suficiente información confiable para establecer los casos de aprendizaje requeridos.
2.3. Inteligencia Artificial y Sistemas Expertos
Se han adaptado y desarrollado distintas tecnologías orientadas a proveer a los
computadores de capacidades similares a las del cerebro humano, a éstas se les llama
de manera amplia Inteligencia Artificial. Su rama más conocida es la de los sistemas
expertos, en la cual se suelen emplear símbolos, reglas y normas para representar el
conocimiento expresado por especialistas en una determinada materia.
2.3.1. Orígenes de los Sistemas Expertos
Warren S. McCulloch y Walter Pitts, sugirieron, en 1.943, un modelo
simplificado destinado a simular el comportamiento de las neuronas del cerebro
humano. Claude Shannon, en 1.950, planteó la posibilidad de destinar computadores a
juegos como el ajedrez. También en 1.950, Alain Turing, analizando la posibilidad de
construir una máquina inteligente propuso su conocido Test de Turing, que
consideraba que una máquina puede considerarse inteligente si es capaz de mantener
una conversación a través de un teletipo, como si fuera un ser humano. El término
“Inteligencia Artificial” propuesto en 1.956 por John McCarthy, durante la conferencia
de Darmouth, basado en la conjetura de que todo aspecto del aprendizaje o cualquier
otra característica de la inteligencia puede en principio describirse con tanta precisión
que puede ser simulado mediante una máquina.
26
2.3.2. Aplicaciones de los Sistemas Expertos
La Inteligencia Artificial se ha aplicado de manera exitosa en actividades muy
diversas. Ejemplos de estas aplicaciones son:
•
Sistemas de visión artificial, que permiten a un robot decidir la ruta a
seguir, evitando obstáculos.
•
Traducción automática entre idiomas.
•
Reconocimiento de palabras manuscritas o habladas.
•
Demostración automática de teoremas.
•
Sistemas expertos que ayudan a diagnosticar enfermedades.
•
Lavadoras de ropa que optimizan el proceso.
•
Cámaras fotográficas y de video que enfocan automáticamente las
imágenes y corrigen los efectos de los movimientos bruscos.
•
Trenes y ascensores que ahorran tiempo y energía, al mismo tiempo que
ofrecen un funcionamiento más confortable.
2.3.3. Ejemplos Clásicos de Sistemas Expertos
Los sistemas expertos son la rama más conocida de la Inteligencia Artificial. Se
reconoce a DENDRAL como el primer sistema experto, fue desarrollado en la
Universidad de Stanford. Su origen se ubica en el año 1965, su objetivo era determinar
la estructura de moléculas químicas. Resultó más efectivo que los expertos humanos
en el logro de su objetivo. El sistema experto MACSYMA fue desarrollado en el MIT
(Instituto Tecnológico de Massachusetts), en el año 1965 para realizar análisis
matemáticos complejos. El sistema experto HEARSAY fue desarrollado en la
Universidad Carnegie-Mellon, con el objetivo de interpretar en lenguaje natural un
subconjunto del idioma. El sistema experto CADUCEUS fue desarrollado en la
Universidad de Pittsburgh, en el año 1975, como herramienta de diagnóstico para
medicina interna.
27
El sistema experto más conocido es MYCIN [Buchanan, Shortliffe, 1984], fue
desarrollado en la Universidad de Stanford, y presentado por Shortliffe en 1977. Se
diseñó para el diagnóstico y tratamiento de enfermedades infecciosas (bacterianas). Su
base de conocimientos contiene unas 400 reglas, y su motor de inferencia utiliza
encadenamiento hacia atrás; para el tratamiento de la incertidumbre recurre al uso de
factores de certeza. Numerosos sistemas expertos fueron desarrollados a partir de
MYCIN, entre ellos TEIRESIAS, CENTAUR, ONCOCIN, PUFF, PROSPECTOR.
EMYCIN fue uno de los primeros shell de sistema experto desarrollado y puesto en
funcionamiento, su nombre se deriva de Empty MYCIN, o MYCIN vacío, ya que en
esencia se trataba de ese sistema experto sin los conocimientos iniciales de su base de
datos.
Otros sistemas expertos son: CASNET para el diagnóstico de glaucoma, PUFF
para diagnósticos pulmonares, CAROUSEL para diagnóstico de los vértigos, SPHINX
para diagnóstico de ictericias, y PROSPECTOR para exploraciones geológicas.
2.4. Representación del Conocimiento
El conocimiento son las nociones e ideas que se tienen acerca de una entidad
física o mental. Existen diversos criterios para clasificar los conocimientos. Según los
métodos empleados para su obtención, y lo predecible que resulta su comprobación,
los conocimientos pueden ser comunes o científicos. El conocimiento científico es
predominantemente conceptual y se fundamenta en los sistemas de interrelaciones que
establece entre dichas unidades de pensamiento.
Los lenguajes son conjuntos de signos preestablecidos para la representación,
expresión y comunicación de ideas. La palabra concepto, derivada del vocablo latín
conceptus, se refiere a las ideas abstractas y generales que conciben o forman el
entendimiento. Los signos o términos que conforman a un lenguaje no siempre están
28
asociados a un concepto, ni todo concepto refiere por sí mismo un rasgo de la realidad.
Así, algunos términos pueden formar parte de expresiones significativas sin tener un
significado propio, por ejemplo los signos de puntuación o el artículo indeterminado
“lo”, en el caso concreto del idioma español. Al analizar las entidades del lenguaje se
pueden diferenciar tres niveles: el lingüístico, el conceptual y el físico. Entre esos
niveles se dan dos clases de relaciones: las relaciones de designación, y las relaciones
de referencia [Bunge, 1983]. Las relaciones de designación se dan entre el nivel
lingüístico y el nivel conceptual, son asimétricas y relacionan signos con ideas. Las
relaciones de referencia son asimétricas y se pueden establecen entre miembros del
nivel lingüístico o conceptual con miembros del nivel físico. A continuación se
muestran en forma gráfica las relaciones que pueden establecerse entre estos niveles.
Nivel Lingüístico : términos, frases, sentencias, lenguajes.
RELACIONES DE DESIGNACIÓN
Nivel Conceptual : conceptos, proposiciones, teorías.
RELACIONES DE REFERENCIA
Nivel Físico : cosas, hechos, propiedades, conexiones, etc.
Fig. 2.3. Relaciones de designación y referencia en los conceptos.
Todo concepto tienen una intensión o connotación, una referencia o denotación,
y una extensión o dominio de aplicabilidad. La intensión I(C) de un concepto C es el
conjunto de propiedades y relaciones Pi que se consideran sintetizadas en el mismo, es
decir, los objetos que constituyen la referencia de C poseen todos ellos las propiedades
Pi, lo cual se puede expresar de la siguiente forma: I(C) = {P1, P2, ... Pn}. La extensión
o dominio de aplicabilidad se refiere al conjunto de entes que poseen las propiedades
que caracterizan a un concepto. Así, la intensión de los conceptos se comporta
29
inversamente respecto de su extensión, por lo que a mayor numero de propiedades
connotadas en un concepto, se reduce el número de entes a los que les es aplicable.
Los conceptos no siempre requieren connotaciones exhaustivamente definidas,
en tales casos, se debe recurrir a un nivel de precisión que asegure que el concepto no
resultará ambiguo. Para ello basta la selección de características o propiedades
peculiares suficientes para garantizar su determinación de forma inequívoca, a estas
características esenciales se le denominan núcleo intensional. Se dice que un concepto
C’ es más general que otro C, si y sólo si la intensión de C’ está incluida en la C o la
extensión de C está incluida en la C’, es decir, con respecto a su extensión un concepto
es más general que otro si posee menos características que restrinjan su dominio de
aplicabilidad.
Los conceptos, funcionalmente, establecen identidades y permiten la agrupación
de elementos o entidades. Algunos conceptos establecen relaciones que hacen posible
la comparación de entidades y su ordenamiento, otros conceptos tienen carácter
cuantitativo y hacen posible la medición de algún atributo. Los conceptos individuales
genéricos denotan elementos de algún género, en los cuales se han sustituido
constantes específicas por variables, dando origen a la generalización o síntesis.
La clasificación es el modo más simple de discriminar simultáneamente los
elementos de un conjunto y agruparlos en subconjuntos según algún criterio. Lo
clasificado se llama universo o dominio del discurso. El universo del discurso puede
ser cualquier conjunto o clase de conjuntos discretos o continuos. La forma más
elemental de clasificación es la división, y consiste en distribuir los elementos del
universo del discurso entre cierto número de clases, disjuntos dos a dos. La división
más simple es la dicotomía [Bunge, 1983], en la cual la división del universo del
discurso se hace en dos clases, una asociada a un concepto definido y otra que no lo
está. Una forma más compleja de clasificación es la ordenación del universo dado por
30
medio de alguna relación asimétrica y transitiva que existe entre dos miembros
cualesquiera del universo del discurso. Las propiedades están representadas por
conceptos, y las interrelaciones de un conjunto de propiedades se representan por
relaciones lógicas entre los conceptos correspondientes; estas relaciones entre
conceptos se formulan en proposiciones que, a su vez, se organizan en cuerpos de
teoría.
Un concepto se llamará teórico si y sólo si forma parte de alguna teoría. La
especificación del significado de los términos teóricos requiere de la lógica que define
la estructura del concepto, de la teoría especial de que se trate, la cual define su
connotación, y de la experiencia científica que a través de la observación, medición y/o
experimentación, determinará su dominio de aplicabilidad o extensión.
Con el objeto de agrupar o clasificar elementos, se recurre a la teoría de
conjuntos, en la cual se establecen clases o categorías, y cada elemento del universo
del discurso puede o no pertenecer a las mismas; esto crea una clara división entre
miembros y no miembros de una clase (dicotomía). En muchos casos los criterios para
establecer la pertenencia a un conjunto no resultan evidentes, así por ejemplo las
categorías: “personas altas”, “personas con fatiga severa”, “días nublados”, son
expresiones de uso común, que expresan cualidades de sus elementos integrantes, en
forma sencilla y práctica, sin obligar al uso de instrumentos o conocimientos
especializados, es decir, son aproximaciones que resultan de utilidad cuando no se
requiere mayor precisión o cuando no es posible obtenerla.
Cuando la intensión o la extensión de un concepto no están definidas
exhaustivamente, surge la vaguedad. La vaguedad intensional se refiere al
conocimiento parcial de las propiedades connotadas por el concepto. Recurriendo a la
notación de conjuntos es posible establecer la vaguedad intensional en los siguientes
términos: sea I(C) el conjunto de propiedades conocidas y desconocida connotadas por
31
el concepto C, sea K(C) el subconjunto de propiedades conocidas de C, y además, sea
N(C) el subconjunto de propiedades esenciales o núcleo intensional de C. La vaguedad
intensional Vi(C) asociada al concepto C queda definida así Vi(C) = I(C) – K(C). En
forma gráfica
Propiedades connotadas por el concepto I(C)
La vaguedad intensional
aparece en la zona rayada.
Propiedades conocidas K(C)
Propiedades esenciales N(C)
Núcleo Intensional
Fig. 2.4. Representación gráfica de la vaguedad intensional.
En la figura anterior aparece la vaguedad intensional, como la zona rayada en el
diagrama de Venn, la cual también se puede definir con respecto a las propiedades
esenciales, quedando la definición así Vi(C) = I(C) – N(C). De esta segunda forma se
amplía la vaguedad asociada al concepto, situación que resulta reveladora de
conceptos vagamente establecidos.
La vaguedad extensional surge cuando no es posible determinar con absoluta
precisión cuáles son los elementos que poseen ciertas propiedades y cuáles son
aquellos que no las poseen. Existen casos limítrofes que pueden agruparse en ambas
categorías simultáneamente, esto último, debido a la imprecisión asociada al concepto.
De forma gráfica, la vaguedad extensional aparece en la zona central o de intersección
en la siguiente figura
32
VAGUEDAD EXTENSIONAL
()
()
E (C )
E (C ) ∩ E C
Elementos que poseen las
propiedades que definen al
concepto C(x)
Elementos que
pueden ser
clasificados en
ambas categorías
(Vaguedad
Extensional)
EC
Elementos que no poseen
las propiedades que
definen al concepto C(x)
Fig. 2.5. Representación gráfica de la vaguedad extensional.
Si un concepto es extensionalmente vago, entonces lo es también
intensionalmente, pero la afirmación inversa no es necesariamente cierta. A veces la
vaguedad conceptual refleja una nebulosidad o indeterminación objetiva, no porque los
hechos sean confusos, si no para poder expresar formas de transición no definidas. La
vaguedad de los conceptos también se origina del crecimiento del conocimiento común
o especializado, que a veces ocurre de manera espontánea, requiriendo de nuevos
conceptos y/o modificando el significado de los existentes.
2.5. Causas de Incertidumbre
Son muchos los motivos que pueden dar origen a la incertidumbre asociada al
conocimiento. No se pretende acá hacer una lista exhaustiva de los mismos, en lugar
de ello, se expondrán las principales fuentes de incertidumbre que condicionan el
funcionamiento de los sistemas expertos diseñados para fines diagnósticos. La
incertidumbre puede estar asociada a la naturaleza del problema, al conocimiento que
se tenga del problema, o al modelo seleccionado para su solución. Entre esas causas
están:
•
Problemas no deterministas: Los sistemas naturales y sociales, entre
otros, no se rigen por leyes deterministas. En tal sentido, no se pueden
establecer con precisión las relaciones que ocurren entre las causas y los
efectos que se dan en esos sistemas.
33
•
Información incompleta: Por lo general la información disponible para
realizar los diagnósticos, se limita a un conjunto de observaciones y
hechos que se consideran relevantes o notorios, quedando una serie de
datos fuera de consideración. Esto ocurre porque la información no está
disponible (las historias clínicas no son completas, los pacientes no
logran recordar todos los síntomas experimentados, los encargados de
realizar la evaluación no se percatan de la presencia y/o ausencia de
ciertas características, etc.).
•
Información imprecisa: Hasta ahora no se han desarrollado los
instrumentos, éstos no son lo suficientemente precisos, o no están
disponibles en un momento dado para cuantificar ciertos hechos. Por
ejemplo, para conocer la intensidad de un dolor de cabeza, el paciente
expresa lo que siente, y esas sensaciones dependerán de la tolerancia al
dolor y de factores psicológicos y sociales.
•
Información errónea: La información disponible de los casos a
diagnosticar puede ser parcial o totalmente falsa. Esto se puede deber a
falsas percepciones, fallos en equipos de medición,
pruebas de
laboratorio contaminadas o alteradas, falsos recuerdos en caso de los
pacientes, y hasta falta de pericia en la observación de los hechos.
•
Deficiencias de los modelos: Por motivos prácticos, al modelar los
sistemas se busca un equilibrio entre su eficiencia y el esfuerzo requerido
para lograr su implementación. Los modelos suelen limitarse al manejo
de la información prioritaria e incorporan factores sujetivos que afectan
su operatividad.
2.6. Razonamientos Lógicos
La lógica es la ciencia que estudia los métodos y principios del razonamiento en
sus distintas formas. La lógica proposicional es la parte de la lógica que trata las
34
combinaciones de variables que representan proposiciones, esas variables se
denominan variables lógicas o variables proposicionales. Uno de los principales
objetivos de la lógica proposicional es el estudio de reglas que permiten la obtención
de nuevas variables lógicas a partir de un conjunto de proposiciones dadas.
Las operaciones que permiten obtener variables lógicas a partir de otras o por
combinación de sus valores, se denominan funciones lógicas. Las variables lógicas y
las combinaciones de ellas mediante las funciones negación, conjunción, y disyunción,
en forma de expresiones algebraicas, se conocen como fórmulas lógicas.
Cuando el valor de una fórmula lógica es siempre verdadero e independiente de
los valores asignados a sus variables, se denomina una tautología. Ciertas tautologías
pueden ser utilizadas para hacer inferencias deductivas, en tales casos se habla de
reglas de inferencia. Las reglas de inferencia, son las que permiten, dada una teoría
deductiva, llegar a la verdad de una proposición a partir de una o varias proposiciones
tomadas como hipótesis. Una tautología permanece como tal cuando se reemplazan
sus variables por fórmulas lógicas, esta propiedad se conoce como regla de sustitución
y es muy importante en los procesos de inferencia. Cuando el valor de una fórmula es
siempre falso, la misma se considera una contradicción.
Silogismo (palabra derivada del vocablo latino Syllogĭsmus, y este del vocablo
griego sullogismÕj) es un razonamiento que contiene tres proposiciones (mayor,
menor y conclusión), tal que la conclusión es deducida de la mayor por medio de la
menor. Por ejemplo: todos los hombres son mortales (proposición mayor); todo los
griegos son hombres (proposición menor); luego todos los griegos son mortales
(conclusión). El ejemplo anterior (silogismo hipotético) se puede escribir así, “si a
implica b, y b implica c, entonces a implica c” o simbólicamente:
((a ⇒ b) ∧ (b ⇒ c)) ⇒ (a ⇒ c);
donde ⇒ es una implicación, y ∧ una conjunción.
35
Dos formas de inferencia de uso muy común, son las denominadas modus ponens
y modus tollens, que son tautologías usadas como reglas de inferencia. En el modus
ponens, se examina la premisa de la regla, y si es cierta, entonces se infiere la
conclusión. Así, las inferencias con esta regla son de la forma: si a es cierto, entonces
b, y además se sabe que a es cierto, luego se puede concluir que b es cierto. En forma
simbólica
((a ⇒ b) ∧ a) ⇒ b
modus ponens
En el modus tollens, se examina la conclusión y si es falsa, se concluye que la
premisa también es falsa. Por ejemplo: se tiene la regla “si a es cierto, entonces b es
cierto”, y se sabe que b es falso, por la aplicación del modus tollens, se concluye que a
también debe ser falso, conclusión que no se puede obtener aplicando el modus
ponens, ya que no se conocen los valores de la premisa. En forma simbólica
((a ⇒ b ) ∧ b ) ⇒ a
modus tollens
2.6.1. Lógica Bi-valuada
La lógica clásica o bi-valuada hace referencia a proposiciones que deben ser o
completamente ciertas o completamente falsas, así cada proposición tiene una opuesta
o negación de la misma. Como cada variable lógica representa a una proposición, ella
puede asumir uno de dos valores (cierto o falso / 1 ó 0). Este tipo de lógica está
ampliamente difundido en los sistemas informáticos digitales, especialmente por la
aplicación del álgebra booleana, propuestas por el matemático británico George Boole
(1815-1864), y consistente de un conjunto de reglas que sustentan la definición de los
operadores AND, OR, NOT, NAND, NOR, XOR, directamente aplicables a los bits.
36
2.6.2. Lógica Multi-valuada
Se atribuye al filósofo griego Platón (428 A.C. – 347 A.C.) una de las primeras
manifestaciones sobre la insuficiencia de dos valores (verdadero y falso) para clasificar
los hechos, sin embargo, fue el lógico polaco Jan Łukasiewicz (1878-1956) el primero
en proponer (año 1900 y posteriores), de una forma sistemática, una alternativa a la
lógica bi-valuada. Łukasiewicz inicialmente definió una lógica tri-valuada o trivalente,
que consideraba los valores verdadero, falso y posible. Posteriormente, Łukasiewicz
experimento con lógicas tetra-valuadas y penta-valuadas, concluyendo que no existían
motivos para limitar, a priori, el número de posibles valores para un sistema lógico,
Otros modelos de lógica trivalente son los propuestos por Bochvar, Kleene, Heyting,
Reichenbach, etc.
2.6.3. Lógica Difusa
En 1965 el profesor Lotfi Zadeh presentó una propuesta para formalizar el
razonamiento aproximado (nociones como: pequeño, cerca, rápido, mucho, etc.),
conocida como lógica difusa (fuzzy logic), que plantea una teoría de conjuntos en la
cual los elementos pertenecen a un dominio en mayor o menor grado, sin fronteras
definidas explícitamente (valores continuos entre 0 y 1).
Las variables lingüísticas son aquellas que pueden asumir palabras por valores,
como concepto, fue introducido por el Prof. Lotfi Zadeh en su publicación “Outline of
a new approach to the analysis of complex systems and decision processes” de 1973.
Las variables lingüísticas [Zadeh, Fellow, 2000] constituyen uno de los pilares
fundamentales en el desarrollo de la lógica difusa y sus aplicaciones. Las variables
lingüísticas son especialmente útiles para representar las percepciones y los
conocimientos no exactos.
37
En los conjuntos difusos se asigna a cada elemento del universo del discurso un
valor que representa su nivel de pertenencia a esa categoría, es decir, su similitud o
compatibilidad con el concepto que representa el conjunto difuso. Normalmente, el
grado de pertenencia a un conjunto difuso, es un número real comprendido en el
intervalo cerrado entre 0 y 1, donde 0 indica “no pertenece al conjunto” y valores
superiores expresan niveles crecientes de aproximación al concepto representado. Los
conjuntos discretos pueden ser considerados como casos particulares de los conjuntos
difusos, pues la absoluta pertenencia o no pertenencia al conjunto, se logra al asignar
al grado de pertenencia los valores extremos del intervalo [0,1].
Un conjunto puede ser descrito enumerando los elementos que lo constituyen
(método por extensión) o mediante la especificación de las propiedades que deben
poseer sus elementos (método por comprensión). La definición de conjuntos a través
del método por extensión sólo es aplicable a conjuntos finitos. El conjunto V, cuyos
miembros son las letras vocales del alfabeto español, se suele representar de la
siguiente forma:
V={a,e,i,o,u}
Según el método por extensión
V={v | v es una vocal del alfabeto español}
Según el método por comprensión
donde el símbolo | denota “tal que”
La pertenencia de cada elemento x del universo de discurso X ( x ∈ X ) a un
determinado conjunto A, se puede expresar mediante una función característica μ. Para
un conjunto discreto A, la función característica asigna un valor a cada elemento
( x ∈ X ) tal que:
⎧1 si y sólo si x ∈ A ⎫
⎬,
⎩0 si y sólo si x ∉ A⎭
μ A ( x) = ⎨
Así
μ A : X → {0, 1}
38
La función característica puede ser generalizada para los conjuntos difusos, ya no
limitándose a asumir los valores extremos 0 y 1, y se denomina función de
pertenencia. Para un universo de discurso X, la función de pertenencia μ asociada a un
conjunto difuso A, generalmente es de la forma:
μ A : X → [0, 1], donde [0, 1] denota el intervalode númerosrealesde 0 a 1, ambosinclusive
Se define como soporte de un conjunto difuso (“support of a fuzzy set”) A en el
universo de discurso X, a un conjunto no difuso que contiene todos los elementos de X
con grado de pertenencia diferente de cero en A, es decir,
supp A = {x ∈ X μ A ( X ) > 0}
Para conjuntos difusos con soporte finito se usa frecuente la siguiente notación:
Sea A un conjunto difuso, y xi un elemento del mismo con grado de pertenencia
μ i > 0 , entonces A, dependiendo del número de elementos que lo integran y de su
naturaleza, puede ser escrito así:
A = μ1 / x1 + μ 2 / x 2 + L + μ n / x n
n
ó A = ∑ μ i / xi
i =1
ó para X ∈ ℜ,
A = ∫ μ A ( x) / x
X
donde: la barra “/” se usa para enlazar los elementos y sus grados de pertenencia al
conjunto A, y la referencia a la suma se usa para agrupar los pares de elementos que
definen conjuntamente a A, sin implicar ninguna operación algebraica o de cálculo.
Un α-corte de un conjunto difuso A, es un conjunto no difuso Aα que contiene
todos los elementos del universo de discurso X, tales que su grado de pertenencia al
conjunto A sea mayor o igual que el valor especificado de α. Esta definición puede ser
escrita como
Aα = {x ∈ X μ A (x) ≥ α }
39
Un conjunto difuso A es convexo si y sólo si todos sus α-cortes son convexos, es
decir, el mismo debe cumplir con la siguiente condición:
μ A (λr + (1 − λ )s ) ≥ min[μ A (r), μ A (s)] , para todo r, s ∈ℜ , y para todo λ ∈ [0,1]
En la siguiente figura se puede apreciar la representación gráfica de un conjunto
difuso convexo (lado izquierdo), y de un conjunto difuso no convexo (lado derecho).
1
1
P
e
r
t
e
n
e
n
c
i
a
0
0
P
e
r
t
e
n
e
n
c
i
a
50
Conjunto Difuso Convexo
Valor de la variable
0
Valor de la variable
0
50
Conjunto Difuso No Convexo
Fig. 2.6. Representación gráfica de la convexidad de un conjunto difuso.
Un conjunto difuso A se denomina normalizado cuando al menos uno de sus
elementos asume el máximo grado de pertenencia definido (generalmente 1). Un
conjunto difuso, convexo y normalizado, definido en ℜ y con función de pertenencia
continua, se denomina un número difuso o intervalo difuso.
Un número difuso es un subconjunto de valores reales pertenecientes en algún
grado a un conjunto difuso, y caracteriza a una distribución de posibilidades en un
universo de discurso. La distribución de posibilidades queda definida por la función de
pertenencia utilizada. Algunas formas de distribución utilizadas para valores difusos
son: triangular, trapezoidal, curvas π, campana generalizada, curvas de Gauss, etc.
La teoría original de los conjuntos difusos fue formulada a partir de tres
operaciones básicas: complemento, unión, e intersección. Cuando el grado de
pertenencia corresponde al intervalo cerrado entre 0 y 1, estas operaciones se definen
así
40
μ A ( x) = 1 − μ A ( x)
Complemento
μ A ∪ μ B ( x) = máx[μ A ( x), μ B ( x)]
Unión
μ A ∩ μ B ( x) = mín[μ A ( x), μ B ( x)]
Intersección
Estas tres operaciones poseen la importante cualidad de no incrementar el grado
de error que puede estar asociado a la función de pertenencia para los conjuntos
involucrados. Se han definido muchas operaciones aplicables a los conjuntos difusos,
pero las tres anteriores se consideran como las operaciones estándares, y se afirma que
ellas definen la teoría posibilística que justificaría el uso de la lógica difusa en lugar
de recurrir a las probabilidades [Zadeh, Fu, Tanaka, et al., 1975], [Zadeh, 1978]. Estas
operaciones básicas (complemento, unión e intersección) fueron definidas por el Prof.
Zadeh en 1965 cuando expuso su teoría, sin embargo, necesidades posteriores
motivaron la definición de funciones equivalentes con características adicionales. En
tal sentido y dado su frecuente uso, es oportuno revisar los principios axiomáticos para
la definición de esas funciones, más allá del estudio minucioso de cada una de ellas.
El complemento de un conjunto difuso A es especificado por la función
c : [0,1] → [0,1] la cual asigna un valor c(μ A ( x) a cada grado de pertenencia μ A (x) .
Este valor asignado corresponde al grado de pertenencia a la negación del concepto
representado por A, para el elemento x. Existen formas especiales de complemento
para los conjuntos difusos, por ejemplo los complementos del tipo Sugeno, y los del
tipo Yager, que se definen así
cλ ( a ) =
1− a
, donde λ ∈ ( −1, ∞ )
1 + λa
c w ( a ) = (1 − a w )1 / w , donde w ∈ ( 0, ∞ )
Complemento tipo Sugeno
Complemento tipo Yager
Cuando al aplicar dos veces consecutivas el complemento se obtiene el valor
original, se dice que se trata de un complemento involutivo, es decir,
41
c(c(a)) = a, para todo a ∈ [0,1] . Los complemento tipo Sugeno y los del tipo Yager,
poseen esta importante característica de ser involutivos. Existen otras formas de
complemento para conjuntos difusos, pero en general las condiciones mínimas para
que una función c sea considerada como un complemento difuso son:
• c(0)=1 y c(1)=0, es decir, el comportamiento para valores límites debe coincidir
con el de la definición para conjuntos no difusos.
• La función debe ser monótona no creciente, es decir, si a<b , entonces c(a) ≥ c(b)
para todo a,b ∈[0,1] .
La unión de dos conjuntos difusos A y B es definida por una función que toma por
argumento el grado de pertenencia de cada elemento x del conjunto universal X a los
conjuntos A y B, y le calcula el grado de pertenencia a la unión de ambos. De manera
general, esta función se escribe
μ A∪B ( x) = u[μ A ( x), μ B ( x)] , siendo la función de la forma u : [0,1]× [0,1] → [0,1]
La intersección entre dos conjuntos difusos A y B es definida por una función que
toma por argumento el grado de pertenencia de cada elemento x del conjunto universal
X a los conjuntos A y B, y le calcula el grado de pertenencia a la intersección de
ambos. De manera general, esta función se escribe
μ A∩B ( x) = i[μ A ( x), μ B ( x)] , siendo la función de la forma i : [0,1]× [0,1] → [0,1]
Las condiciones mínimas que debe cumplir una función f, para que esta defina
alguna forma de unión o intersección entre conjuntos difusos son:
• f(a,b)=f(b,a); es decir, la función debe ser conmutativa.
• f(f(a,b),c)= f(a,f(b,c)); es decir, la función debe ser asociativa.
• Si a<b y c<d entonces f(a,c) ≤f(b,d); lo que implica que debe ser monótona.
42
Adicionalmente, toda función u que defina la unión de conjuntos difusos, y toda
función i que defina intersección entre conjuntos difusos, en sus valores límites,
respectivamente deben satisfacer:
• u(0,0)=0; u(0,1)= u(1,0)= u(1,1)=1
• i(1,1)=1; i(0,1)= i(1,0)= i(0,0)=0
En general, las funciones que cumplen con las características anteriores asociadas
a la intersección de conjuntos difusos, se conocen como operadores de T-norma o
norma triangular. Las funciones que cumplen con las características exigidas para toda
función de unión de conjuntos difusos, se denomina operador S-norma o T-conorma.
Otras características convenientes en algunas aplicaciones son: que la función sea
continua y que sea una idempotencia, es decir, f(a,a)=a. La operación unión de
conjuntos corresponde a una disyunción (operador lógico “o”), en la cual se asume
alguna forma de equivalencia o sustitución entre los elementos que se unen, mientras
que la operación intersección se vincula con el operador lógico “y”. El grado de
tolerancia aplicable a los operadores lógicos “o” e “y” se pueden ajustar en algunas
funciones, mediante parámetros.
El producto cartesiano de dos conjuntos X e Y, denotado por X × Y , es el conjunto
de todos los pares ordenados tales que el primer elemento de cada par pertenece a X, y
el segundo elemento pertenece a Y. Simbólicamente, el producto cartesiano se escribe
X × Y = { (x, y ) x ∈ X , y ∈ Y }
El concepto de producto se puede generalizar a más de dos conjuntos, en cuyo
caso, lo importante es mantener el orden de los elementos involucrados. La presencia o
ausencia de asociación, interacción o interconexión entre elementos de dos o más
conjuntos se denomina una relación de conjuntos. Así, una relación difusa se define
43
como el producto cartesiano de conjuntos no difusos X1,X2,...,Xn, donde cada grupo de
elementos (x1,x2,...,xn) puede tener distintos grados de pertenencia según la relación.
La composición de dos relaciones binarias P(X,Y) y Q(Y,Z), se define como un
subconjunto R(X,Z) de X × Z tal que ( x, z ) ∈ R si y sólo si existe por lo menos un
y ∈ Y tal que
(x, y ) ∈ P
y ( y, z ) ∈ Q . Dadas las relaciones binarias P, Q, R, su
composición ( o ) debe satisfacer las siguientes tres propiedades
PoQ ≠ Qo R
(P o Q )−1 = Q −1 o P −1
(P o Q) o R = P o (Q o R)
Al igual que otras operaciones, la composición de conjuntos difusos es una
generalización que puede ser establecida de diferentes formas, siendo la más común de
ellas la composición máx-mín, que para las relaciones anteriores, se escribe así
μ PoQ ( X , Z ) = max min[μ P ( x, y ), μ Q ( y, z )]
y∈Y
para todo x ∈ X y z ∈ Z
Otra forma bastante común para la composición de conjuntos difusos es la máxprod, la cual es denotada por P ( X , Y ) • Q (Y , Z ) , y es definida por
μ P•Q ( X , Z ) = max[μ P (x, y ) • μ Q ( y, z )]
y∈Y
para todo x ∈ X y z ∈ Z
Una regla difusa simple es una estructura lógica de la forma “si x es A entonces y
es B”, donde A y B son valores lingüísticos definidos por conjuntos difusos en sus
rangos o universos de discurso X e Y respectivamente [Buchanan, Shorliffe, 1984],
[Dubois, Prade, 1996]. Siendo “x es A” la premisa o antecedente, e “y es B” el
consecuente o conclusión. Interpretar una de estas reglas implica dos pasos distintos,
44
lo primero es evaluar el antecedente, que incluye difuminar (fuzzifying) las entradas y
aplicar los operadores necesarios. Lo segundo es la implicación o aplicar el resultado
del antecedente al consecuente, lo que en esencia es evaluar la función de pertenencia.
Al evaluar reglas no difusas sólo se alcanza la conclusión si se cumple
estrictamente lo propuesto en el antecedente. En el caso difuso una regla se considera
activada o disparada, si existe algún grado de similitud entre la premisa y el
antecedente, luego la conclusión se puede cumplir en mayor o menor grado. Por lo
general, no es mucho lo que se puede inferir a partir de reglas simples, por lo tanto
surge la necesidad de usar composiciones y reglas complejas. Se puede dar
importancia relativa a las reglas, mediante la asignación de valores o pesos.
La forma de inferencia difusa más usada, es la conocida como el método de
Mamdani o mín-implicación, la cual fue propuesta en 1975 por el Prof. Ebrahim
Mamdani. Las principales bondades que se le reconocen al método de Mamdani son:
ser de uso intuitivo, amplia aceptación, apropiado para ser usado con lenguajes
naturales. Otra forma de inferencia que ha tenido bastante aceptación es el método de
Sugeno o método Takagi-Sugeno-Kang, propuesto en 1985 por el Prof. Michio
Sugeno, las principales ventajas del método son su eficiencia al realizar los cálculos y
la continuidad de sus soluciones. Resulta apropiado para: técnicas lineales, técnicas de
adaptación, optimización y análisis matemáticos.
Los conjuntos difusos, que representan las salidas de reglas, pueden ser
combinados para formar un solo conjunto, mediante un proceso conocido como
agregación. Existen varias formas de agregación, por ejemplo tomar el máximo de
cada categoría, el método “o probabilístico” (probabilistic or), o simplemente tomar la
suma de cada conjunto de salida.
45
El proceso de convertir variables lingüísticas en valores difusos (difuminar) tiene
su equivalente inverso o proceso de precisar (defuzzification), nuevamente, existen
múltiples formas de efectuar este proceso, siendo la más popular el cálculo del
centroide o centro de gravedad. Otras formas de bastante aceptación son: el medio de
los máximos, el mayor de los máximos, el menor de los máximos.
2.7. Sistemas Expertos
Como se ha mencionado anteriormente, los sistemas expertos son un campo de
investigación de la Inteligencia Artificial. Su aplicabilidad se extiende a muy diversas
áreas, y éstos han variado significativamente a través de los años y según los objetivos
para los que son diseñados.
2.7.1. Definición de Sistema Experto
Los sistemas expertos son programas informáticos, destinados a almacenar
conocimientos relativos a alguna materia o especialidad, ese conocimiento se obtiene
de personas a las que les considera expertos o especialistas en el tema. Las formas más
usuales de representar y almacenar el conocimiento es a través de datos iniciales y
reglas lógicas, conformando una base de conocimientos. Posteriormente, el sistema
podrá utilizar la información almacenada para resolver problemas similares.
Los conocimientos que pueden ser expresados mediante reglas lógicas, son
aquéllos que establecen relaciones del tipo causa-efecto. En los problemas de
diagnóstico las causas son las características, valores, síntomas, signos u otros
atributos individuales o combinados, que son relevantes para establecer una conclusión
o efecto. Un ejemplo de conocimiento expresado a través de una regla, y que podría
ayudar en un problema de diagnóstico es:
46
SI
[ fatiga = presente O disnea = severa ]
Y [ fiebre = presente O fiebre = recurrente O infección = presente ]
Y [ sangrado = patológico O propenso a contusiones = presente ]
ENTONCES sospechar de insuficiencia de médula ósea.
2.7.2. Componentes de los Sistemas Expertos
Los sistemas expertos pueden ser muy diferentes entre sí, variando su
composición y complejidad, principalmente, en función del uso que se hará de los
mismos. Existen sistemas expertos dotados de dispositivos especiales para obtener
información de forma automatizada, o ejecutar acciones a través de equipos y
máquinas, otros incluyen rutinas para generar explicaciones. De manera general, se
puede decir que los componentes básicos de un sistema experto basado en reglas, son:
el motor de inferencia o intérprete de reglas, la base de conocimientos, la base de
hechos, la memoria de trabajo, y la interfaz sistema-usuario. En el siguiente diagrama
se pueden observar los componentes básicos de un sistema experto basado en reglas:
Reglas definidas
por los expertos
Base de
Conocimientos
Motor de
Inferencia
Características
del problema a
resolver
Resultado
de la
consulta
Base de Hechos
Fig. 2.7. Componentes básicos de un sistema experto basado en reglas.
Una vez definido un sistema experto basado en reglas, es posible suministrarle
una serie de características observadas o conocidas, y el sistema buscará las reglas
47
cuyos antecedentes coincidan con los datos suministrados, generándose así
conclusiones y nuevos hechos, que a su vez pueden generar nuevas conclusiones.
En los sistemas expertos la función equivalente al razonamiento humano,
corresponde a la mecánica inferencial, que cubre un conjunto de nociones (deducción,
inferencia, planificación, prueba, búsqueda, etc.) y usan el conocimiento base como
argumento para lograr sus conclusiones. El motor inferencial, o componente que aplica
la mecánica inferencial, puede recurrir a diferentes técnicas para procesar los
conocimientos disponibles. De esas técnicas, dos son de especial importancia para este
Trabajo de Grado y guardan relación con los métodos clásicos conocidos como:
análisis/síntesis o método resolutivo/método compositivo, etc. La distinción entre
ambas técnicas se basa en la relación direccional entre datos y objetivos. Las referidas
técnicas son: la técnica del encadenamiento hacia adelante (forward chaining), y la
técnica del encadenamiento hacia atrás (backward chaining). En el encadenamiento
hacia adelante, se comienza con los datos conocidos y se aplica el modus ponens
sucesivamente hasta obtener los resultados correspondientes, suele ser útil cuando se
dispone de una gran cantidad de datos que deben ser examinados. La técnica del
encadenamiento hacia atrás toma un dato como consecuente y busca en la base de
conocimientos los posibles antecedentes, es muy útil para verificar hipótesis. Ambas
técnicas se pueden combinar, haciendo búsquedas hacia adelante y hacia atrás, con lo
cual se logra inferir una conclusión y luego verificarla.
2.7.3. Ventajas y Limitaciones de los Sistemas Basados en Reglas
La principal ventaja de los sistemas basados en reglas, es su capacidad para
resolver problemas desde el mismo momento en que se definen las reglas respectivas,
lo cual es muy útil para problemas cuya ocurrencia es poco probable. La principal
desventaja de estos sistemas, es el esfuerzo inicial requerido para su implementación.
48
2.7.4. Sistemas Expertos Difusos
Puesto que los sistemas expertos se basan en el conocimiento humano que
almacenan, la lógica difusa resulta más apropiada que las formas rígidas de procesar
esa porción vaga e imprecisa del conocimiento. El uso de variables lingüísticas permite
que las reglas lógicas de decisión sean expresadas de manera sencilla y natural, tal
como se usan en muchas disciplinas, además facilita la interpretación de los resultados
obtenidos y mejora la confiabilidad de los mismos.
Existen diversas formas de automatizar los procesos de diagnóstico haciendo uso
de los sistemas expertos y de la lógica difusa, una es usar una composición del tipo
máx-mín o método de Sanchez [Roy, Biswas, 1992], [Klir, Folger, 1988], donde se
representan los conocimientos como una relación difusa entre causas y efectos. Este
enfoque corresponde a condicionales difusos del tipo “Si C Entonces E por R”. Así,
dado un conjunto H de causas observadas o hechos, un conjunto C de causas, un
conjunto E de consecuencias o efectos (tipos de fallas, enfermedades, etc.), y una
relación difusa R que vincule las causas en C con las consecuencias en E, es posible
inferir un conjunto difuso D de posibles diagnósticos por medio de la siguiente
composición de inferencia
D= H oR
o
μ D (e) = max[min (μ H (C ), μ R (c, e )]
c∈C
para todo e ∈ E
El uso combinado de probabilidades y lógica difusa ha resultado exitoso en la
automatización de procesos de diagnóstico [Klir, Folger, 1988]. Un buen ejemplo de
ello es el sistema CADIAG-2, al que se atribuye una precisión de hasta el 94.5% en el
diagnóstico de enfermedades reumatológicas.
49
Capítulo 3
MARCO METODOLÓGICO
A continuación se hace referencia a la forma en la cual se realizó la investigación
y se enumeran las principales técnicas utilizadas para la obtención de la información,
programación, documentación y validación de los resultados.
3.1. Tipo de Investigación
Según la clasificación sugerida en el Manual de Trabajos de Grado de
Especialización y Maestría y Tesis Doctorales de la UPEL [UPEL, 1998], el presente
Trabajo de Grado corresponde a una Investigación Documental, pues implicó ampliar
y profundizar conocimientos obtenidos fundamentalmente de las fuentes bibliográficas
y documentales. Al mismo tiempo, corresponde a la clasificación de Proyecto
Especial, pues la solución no se limitó a la formulación de una propuesta, sino que
implicó el desarrollo de un software o aplicación para computadoras. Aunque no existe
consenso sobre metodologías específicas para el desarrollo de sistemas expertos, se
acepta que estos deben seguir etapas similares a las correspondientes al ciclo de vida
en ingeniería del software [Rolston, 1992]. Estas etapas se conocen como:
identificación
del
problema,
construcción
de
un
prototipo,
formalización,
implantación, evaluación, y evolución a largo plazo. O también: análisis, diseño,
codificación, pruebas unitarias, pruebas de integración, pruebas de aceptación, y
mantenimiento.
3.2. Técnicas de Recolección de Datos
La principal fuente de información para la elaboración de este Trabajo de Grado,
fue la revisión bibliográfica, también se recurrió a entrevistas directas, que fueron
50
especialmente útiles para definir los requerimientos del sistema. Estas entrevistas
fueron de tipo no estructurada, y se basaron fundamentalmente en preguntas abiertas,
es decir, se permitió que los participantes expresaran libremente los aspectos que ellos
consideraban importantes acerca de los problemas de diagnóstico y del proceso de
automatización sugerido. La revisión bibliográfica comenzó por la lectura de textos y
documentos sugeridos por los Tutores, luego se procedió a la consulta de Bases de
Datos, resultando especialmente útiles las de publicaciones periódicas, se realizaron
búsquedas por Internet, y se detectaron artículos y publicaciones de interés, a través de
referencias y reseñas bibliográficas de distintas organizaciones. Una vez detectadas las
posibles fuentes bibliográficas, se procedió a la revisión de sus contenidos, resúmenes
y conclusiones, seleccionándose aquéllas que aportaran nuevas explicaciones o
información relativa a la investigación. En la selección de la bibliografía se dio
prioridad a las publicaciones más frecuentemente citadas, por razones históricas y/o
por la originalidad de lo propuesto por sus autores. Así como también se prefirieron
aquellos trabajos que estuvieran respaldados por Universidades y organizaciones
científicas de renombre, pues es conocida la existencia de artículos y publicaciones
cuya validez y objetividad son cuestionables.
3.3. Técnicas de Programación y Documentación
Resulta muy difícil establecer la totalidad de los requerimientos con el análisis
inicial de un sistema, por eso, en cualquier etapa de su desarrollo se puede evidenciar
la necesidad de modificar el sistema, y de allí su carácter cíclico, y la importancia de
recurrir a un diseño modular, es decir, diseñar la totalidad del sistema a partir de
elementos autónomos, organizados en arquitecturas sencillas y funcionalmente
independientes. Para el desarrollo de la aplicación se seleccionó un lenguaje de alto
nivel con programación orientada a objetos, se recurrió a un diseño modular, basado en
procedimientos y funciones, de acuerdo a los criterios de acoplamiento y cohesión. El
acoplamiento se refiere al grado de interdependencia de los procedimientos, lo que se
51
traduce en facilidad para efectuar modificaciones y mejoras. La cohesión se basa en la
fortaleza de la relación funcional entre los elementos de un módulo o procedimiento.
Así, se tiende a observar que al aumentar la cohesión disminuye el acoplamiento y
viceversa. Se ha aplicado la normalización de las Bases de Datos, hasta la tercera
forma normal, con el objeto de reducir las inconsistencias, eliminar las redundancias,
además de minimizar el impacto de posibles cambios en el sistema y facilitar su
mantenimiento. En la programación, se buscó eficiencia y minimización del código,
sin permitir que estos objetivos comprometieran la claridad y facilidad de revisión de
cada programa, se ha procurado mantener una programación estructurada y basada en
estándares. Se elaboró un conjunto de diagramas y recursos gráficos que favorecen la
compresión y mantenimiento de los programas. Igualmente, se provee abundante
información del sistema a través de los manuales y de la ayuda en línea.
3.4. Técnicas de Validación de Resultados
Aunque las estrategias de prueba no pueden garantizar la ausencia de defectos
en una aplicación, estas forman parte de su ciclo de vida, y constituyen un esfuerzo,
que en ocasiones representa hasta el 40 por ciento del trabajo total realizado
[Pressman, 1996]. Durante las distintas etapas o fases del desarrollo de este Trabajo de
Grado, se han aplicado pruebas y procesos de validación para detectar errores,
verificar el cumplimiento de los objetivos propuestos, y en general, para garantizar la
calidad del mismo. Específicamente se han aplicado las técnicas de prueba de la caja
blanca o pruebas estructurales y las pruebas de la caja negra o pruebas funcionales. Las
pruebas de la caja blanca examinan los detalles procedimentales, comprueban los
caminos lógicos y examinan el estado de los programas en distintas etapas del ciclo de
ejecución. Las pruebas de la caja negra no toman en cuenta la estructura lógica de los
programas, orientándose a examinar si las entradas se aceptan de forma adecuada y si
se produce el resultado correcto, además de otros aspectos fundamentales como la
integridad de los archivos, funciones faltantes, deficiencias en la interfaz, etc. Las
52
pruebas del software están destinadas a detectar posibles errores en la programación,
así, se considera que una buena prueba es aquélla que tiene altas probabilidades de
detectar un nuevo error.
Adicionalmente a estos aspectos, se han desarrollado pruebas de recuperación
ante fallas, de seguridad y acceso al sistema, de resistencia y de rendimiento. La
calidad del software se refiere al control de aspectos tanto internos como externos a los
programas. Dos aspectos internos de los programas, especialmente considerados
durante el desarrollo del shell son:
•
•
Modularidad o independencia funcional de sus componentes,
Legibilidad o facilidad de lectura e interpretación de los programas.
Los principales factores externos evaluados que inciden en la calidad del
producto final son:
•
Corrección o capacidad de los programas de lograr sus objetivos de acuerdo a
las especificaciones y requerimientos del sistema.
•
Robustez o capacidad de funcionar aún después de situaciones anormales.
•
Modificabilidad o facilidad para adaptar los programas existentes a nuevos
requerimientos.
•
Reusabilidad o posibilidad de aprovechar el esfuerzo realizado cuando se
requiera una nueva aplicación de propósitos similares.
•
Compatibilidad con el entorno de trabajo y las aplicaciones más comunes.
•
Eficiencia en lo relativo al buen aprovechamiento de los recursos disponibles
tanto de hardware como de software.
•
Portabilidad ante la posibilidad de futuros cambios en el lenguaje de
programación y/o del sistema operativo.
•
Verificabilidad o capacidad de producir los resultados esperados.
•
Integridad de los datos y de los programas para evitar la pérdida o mala
utilización de la información.
•
Facilidad de uso que se relaciona con el esfuerzo y el tiempo requerido para
aprender a utilizar la aplicación.
53
Capítulo 4
DESARROLLO DE LA SOLUCIÓN
En el contexto de los sistemas expertos, se usa el término shell, (palabra del
idioma inglés, que significa: concha, cáscara, armazón) para significar que existe el
potencial de un sistema experto o la capacidad para definirlo, pero la base de
conocimientos no contiene la información necesaria para su uso.
4.1. Consideraciones de Diseño y Selección de Recursos
Plantearse el desarrollo de un shell implica tomar algunas decisiones, una de
ellas es seleccionar el o los tipos de computadoras para las cuales estará disponible:
mainframes, computadores personales (Personal Computer), dispositivos de mano
PDA (Personal Digital Assistants), etc. De las clasificaciones de computadoras según
su arquitectura, los IBM PC® y compatibles constituyen el grupo más numeroso.
Según información publicada por la empresa Red Sheriff (www.redsheriff.com/us/) el
día 26 de septiembre de 2002, el sistema operativo Windows® es el más usado en los
PC no corporativos a nivel mundial, correspondiendo 35.12% de ese total a la versión
Windows 98®, 20.95% a la versión Windows 2000®, 16.17% a la versión Windows
XP®, 9.71% a la versión Windows Me®, en tanto que los sistemas operativos de Apple
Corporation representan el 2,21%. Otro sistema operativo que cobra importancia en
ese segmento es Linux. Con base en el predominio del mercado y en la disponibilidad
de los equipos, se optó por desarrollar el shell para ser utilizado con el sistema
operativo Windows® en sus versiones de 32 bits (95, 98, NT 3.5, NT 4.0, 2000, Me,
XP).
54
En cuanto a la selección de lenguajes y herramientas para programar sistemas
expertos, existen muchas y muy diversas opiniones, en principio, son cientos los
lenguajes o versiones de ellos que permiten desarrollar estos sistemas. La revisión de
todos esos lenguajes en el marco de este Trabajo de Grado no resulta factible. Algunas
de las herramientas y lenguajes de programación, específicamente asociadas al
desarrollo de los sistemas expertos son:
•
Lisp(LISt Processing): Fue desarrollado por John Mccarthy del Instituto
Tecnológico de Massachussets en 1958, se trata de un lenguaje para
procesamiento simbólico. Esa capacidad de representar símbolos es lo que ha
propiciado su uso en la Inteligencia Artificial, desde sus inicios. Las
funciones y los programas en Lisp tienen estructura de listas, y no se
distinguen sintácticamente de los datos. Lisp es un lenguaje funcional, y
permite la redefinición recursiva de sus
funciones y hasta del propio
lenguaje. Existen distintas versiones tanto compiladas como interpretadas.
•
Prolog (PROgramming in LOGic): Fue desarrollado por Alain Colmenauer
de la Universidad de Marsella en 1973. El lenguaje fue enriquecido por
Robert Kowalski de la Universidad de Edimburgo, quien propuso una
sintaxis basada en la teoría de la programación lógica. Su capacidad de
representación simbólica ha motivado su uso en la Inteligencia Artificial. Se
han desarrollado muchas versiones de este lenguaje, y se ha usado
principalmente en Europa y Japón.
•
OPS5 (Official Production System 5): Es un lenguaje diseñado especialmente
para facilitar la representación de los conocimientos en forma de reglas,
incluye módulos de edición, inferencia, depuración, etc. Es el resultado de la
evolución de otros lenguajes y fue desarrollado en la Universidad CarnegieMellon. Existen versiones comerciales de este lenguaje desarrollas por
diferentes empresas.
55
•
CLIPS® (C Language Integrated Production Systems): Es una herramienta
para el desarrollo de sistemas expertos, programada en lenguaje ANSI C por
la división de tecnología de software del centro espacial Lyndon B. Johnson
de la NASA (USA). Fue presentado en 1986, y desde entonces ha sido objeto
de continuas modificaciones. Es un producto de uso libre o gratuito, siempre
que no sea destinado a fines comerciales. Puede ser utilizado como un
producto independiente o en combinación con lenguajes como C, C++, o
Ada. Permite la representación del conocimiento a través de reglas, posee
mecanismos de inferencia y otros recursos para el desarrollo de sistemas
expertos. Existe una versión para ser usada con la lógica difusa.
•
Jess® (Java Expert System Shell): Realmente no se trata de un lenguaje de
programación, sino de un shell que se considera una reprogramación limitada
de Clips® empleando el lenguaje Java®, este último lenguaje puede ser
utilizado para desarrollar programas que aprovechen sus rutinas (applets).
Fue programado por Ernest Friedman-Hill del Laboratorio Nacional Sandia
para el Departamento de Energía de los Estados Unidos.
•
MatLab® (MATrix LABoratory): Fue escrito a finales de la década 1970, por
Cleve Moler de la Universidad de New Mexico. El objetivo era evitar que los
alumnos tuvieran que programar en Fortran para usar las librerías o rutinas
Linkpack y Eispack que él y varios colegas habían escrito pocos años antes
para resolver ecuaciones lineales y problemas de autovalores. El uso de
MatLab® se hizo popular en ciertas Universidades. En 1983 el Ingeniero
John Little de la Universidad de Stanford reconoció el potencial de MatLab®
y junto a Cleve Moler y Steve Bangert encabezaron un grupo para
desarrollar, en lenguaje C, una segunda y profesional versión con
capacidades gráficas, así se fundó en 1984 MathWorks, Inc. MatLab® consta
de un lenguaje de programación y un conjunto de rutinas (Toolboxes) que lo
56
convierten en una buena alternativa para desarrollar programas de uso
científico y de ingeniería.
•
Otras opciones son: Kappa PC®, Scheme®, Nexpert Object®, Loops®,
Flavors®, Egeria®, Art®, Goldworks®, Kee®, Snobol4®, Mathematica®.
La principal ventaja que se obtendría de emplear un lenguaje o herramienta
especializada para desarrollar el shell, sería aprovechar las facilidades para la
representación del conocimiento y el uso de las funciones o procedimientos de
inferencia ya desarrollados, sin embargo, esta alternativa implicaría el uso de rutinas
cuyo
funcionamiento
exacto
no
sería
conocido,
de
propiedad
intelectual
correspondiente a terceros, además de presentar por lo general serias deficiencias en el
uso de Bases de Datos y/o capacidades limitadas para emplear interfaces gráficas y
generar programas independientes, de libre uso y distribución. Si bien es cierto que la
mayoría de estas deficiencias pueden ser subsanadas a través del uso simultáneo de
otros lenguajes, también es cierto que adquirir uno de estos productos y aprender a
utilizarlo eficientemente sólo para evitar programar algunas rutinas que ellos
incorporan, no resulta conveniente para los objetivos y limitaciones tanto económicas
como de tiempo que caracterizan a este Trabajo de Grado.
De los lenguajes de propósito general para desarrollar aplicaciones compatibles
con las versiones actuales del sistema operativo Windows®, destacan por su eficiencia,
disponibilidad de información, solidez comprobada, y/o facilidad de uso: C++/C#,
Java® y Visual Basic®.
El lenguaje C fue desarrollado al comienzo de la década de 1970 por Brian
Kernighan y Dennis Ritchie, ambos de Laboratorios Bell (USA), ante la necesidad de
contar con un lenguaje de programación de rendimiento similar al lenguaje de máquina
(Assembler), que soportara programación estructurada y la definición y uso de
57
diversos tipos de datos. El lenguaje C se hizo popular a partir del año 1978, cuando se
publico un libro de programación para este lenguaje, originalmente se trataba de un
compilador que reconocía 33 comandos diferentes. Los programas escritos en lenguaje
C son altamente portables entre los distintos tipos de computadores, y como lenguaje
ha sido el más utilizado para desarrollar aplicaciones comerciales, sistemas operativos
e incluso otros lenguajes de programación. A partir de 1988 se comenzó a utilizar un
nuevo estándar C++ (C plus plus) desarrollado por Bjarne Stroustrup de Laboratorios
Bell, el cual incorporó la programación orientada a objetos. El lenguaje C# (C sharp)
es una variante del lenguaje C++ que facilita la programación orientada a objetos y
amplía el uso de los tipos de datos. En general se considera que la programación en
lenguaje C y sus derivados, es compleja, susceptible a errores y requiere bastante
tiempo de codificación y depuración. Aún así, suele considerarse la mejor alternativa
para desarrollar programas de misión crítica o aquellos donde la velocidad de
ejecución y el uso eficiente del hardware y el software son una prioridad.
El lenguaje de programación Java® fue diseñado por James Gosling de Sun
Microsystems en el año 1990. Fue diseñado para programar dispositivos electrónicos
como calculadoras, microondas y televisores. El objetivo era reducir los costos y
simplificar la programación con respecto a los lenguajes C o C++. Al crecer la
popularidad de Internet, se pensó que Java® podría usarse con éxito para estas nuevas
tecnologías, y esto motivó su desarrollo. El lenguaje Java® estuvo oficialmente
disponible a partir de agosto de 1995. Los programas escritos en Java® no acceden
directamente a la memoria del computador, y el uso de los recursos debe ser
explícitamente autorizado, lo que redunda en ejecuciones seguras y controladas. Para
resolver el problema de portabilidad Java® utiliza una tecnología de bytecodes que
luego se traduce en el lenguaje de máquina del microprocesador, esto hace que su
velocidad de ejecución sea hasta 20 veces más lento que un programa equivalente
escrito en lenguaje C. La simplicidad del lenguaje Java® y el poco tiempo que se
58
requiere para desarrollar aplicaciones ha motivado su uso en diferentes áreas incluida
la de los sistemas expertos.
El lenguaje de programación Visual Basic® deriva de un prototipo denominado
Tripod®, creado por Alan Cooper, que se concebía como un shell para el desarrollo de
aplicaciones basado en las técnicas de arrastrar y colocar objetos con el mouse. La
empresa Microsoft compró los derechos de Tripod® en marzo de 1988, le incorporó
tecnologías de acceso a datos y lo fusionó con el lenguaje de programación
QuickBasic®, de esa fusión surge en marzo de 1991 la primera versión de Visual
Basic® para Windows®; en versiones posteriores se han incorporado distintas
tecnologías y rutinas que lo convierten en una de las opciones favoritas para
desarrollar aplicaciones para los sistemas operativos de Microsoft. La programación en
Visual Basic® se fundamenta en la selección y asignación de propiedades a objetos
gráficos y en el control de eventos (presionar una tecla, seleccionar un objeto con el
mouse, etc.) Los programas escritos en Visual Basic® son compilados a una versión
ejecutable, y éstos dependen de rutinas externas enlazadas dinámicamente.
Para el desarrollo del shell propuesto en este Trabajo de Grado se optó por usar
el lenguaje Visual Basic® 6.0 en su versión corporativa en español, pues la versión más
moderna, Visual Basic.Net®, tiene requerimientos de hardware que exceden la
capacidad del computador disponible. Ya que los programas desarrollados en Visual
Basic® dependen de rutinas externas, se optó por desarrollar un programa en Visual
C++® 6.0 que facilita la instalación inicial del shell y el copiado de los directorios de
trabajo y datos de ejemplo. Otros aspectos considerados al seleccionar estos lenguajes
fueron su disponibilidad y requerimientos, además de la experiencia del programador.
En la siguiente tabla se muestra la configuración parcial del computador disponible
para este desarrollo y los requerimientos de los lenguajes aquí considerados.
59
Tipo de
Recurso
CPU
Memoria
RAM
Espacio en
Disco Duro
Sistema
Operativo
Configuración del
Computador disponible
para el desarrollo
Requerimientos de:
Visual Basic 6.0
Visual C++ 6.0
Requerimientos de:
Visual Basic.Net
Visual C#.Net
Pentium II® 450 MHz
PentiumIII® (Recomendado)
Celeron® 333 MHz
Pentium® o superior
64 MB
32 MB
192 MB
15 GB
35-345 MB
500 MB – 2 GB
Windows 98®
Windows 95®
o superior
Windows 2000® o
Windows XP®
P
Tabla 4.1. Configuración disponible y requerimientos de los lenguajes preseleccionados.
Para implementar la ayuda en línea de las aplicaciones actuales para Windows®,
se utilizan fundamentalmente dos formatos: archivos de tipo HTML (HyperText
Markup Language) que se leen a través de los programas de navegación por Internet
(browser), y archivos compilados a través del programa Microsoft Help Workshop® u
otro compatible, de lectura a través del sistema de ayuda estándar de Windows®. Para
el desarrollo del shell se ha preferido adoptar el sistema de ayuda estándar de
Windows®, pues los archivos pueden ser escritos en procesadores de palabras que
soporten el formato RTF (Rich Text Format), y esta forma de trabajo se traduce en
importantes ventajas como facilidades de búsqueda, rapidez de carga y ejecución,
completa compatibilidad con los lenguajes de programación seleccionados, y mínimos
requerimientos de hardware, por lo que se obtiene toda la funcionalidad requerida en
este caso.
Se juzgó conveniente dotar al shell de una opción que permita vincular archivos
de referencia con las conclusiones de los sistemas expertos. Tales archivos de
referencia pueden servir para que los usuarios verifiquen el cumplimiento de las
condiciones que sustentan los posibles diagnósticos y/o para conocer las acciones que
se deben acometer tanto con fines diagnósticos, como correctivos. El formato
seleccionado para los archivos de referencia es PDF (Portable Document Format), el
cual fue diseñado por la empresa Adobe System Incorporated. Los archivos PDF
60
pueden ser leidos desde programas como el Acrobat Reader® de uso libre y gratuito,
son poco dependientes del sistema operativo o de los tipos de letra instalados en él, la
información se guarda en formato comprimido por lo que se optimiza el espacio de
almacenamiento y pueden contener índices, vínculos dinámicos, etc. Además, este
formato permite crear archivos de sólo lectura y/o de acceso restringido mediante una
contraseña, igualmente se puede limitar el uso de funciones como imprimir,
seleccionar, copiar, guardar, etc. En la actualidad el formato PDF es muy popular para
la distribución de versiones electrónicas de documentos y libros. Los archivos en
formato PDF pueden ser creados de diferentes maneras, una de ellas es a través del uso
de programas que hacen la conversión desde archivos de impresión PostScrip®, otra
posibilidad es la instalación de un controlador que se define como una impresora,
quedando disponible para las diferentes aplicaciones y cuya salida son archivos en este
formato. Adicionalmente, existen programas especialmente diseñados para crear estos
archivos, los cuales, por lo general, resultan la alternativa más eficiente pues
incorporan facilidades para definir las tablas de contenido, los enlaces y vínculos, etc.
En lo concerniente al diseño del shell se procuró que los aspectos estéticos y
operativos fueran similares a las aplicaciones más populares para el sistema operativo
Windows®, de manera que su uso resultara lo más intuitivo posible y se redujera la
necesidad de capacitación y adiestramiento para los usuarios. El entorno de trabajo se
basa en ventanas, y la interfaz del usuario es predominantemente de documentos
múltiples o MDI (Multi Document Interface), así, se trata de una ventana principal que
sirve de marco a otras en su interior o ventanas hijas, con esto se logra un mejor
control de las opciones simultáneamente activas de la aplicación.
Ya que el shell debe permitir la implementación de sistemas expertos, y estos
pueden contener información que representa un esfuerzo significativo en términos de
horas-hombre, además de los aspectos de confidencialidad y exactitud de los datos, se
optó por restringir el acceso a la aplicación a través de la identificación y control de los
61
usuarios, para ellos se incorporaron rutinas de definición de usuarios, cambio de
contraseñas y control de acceso.
Por tratarse de un shell que ha de permitir la implementación de sistemas
expertos, y éstos tienen sus propios requerimientos, se incluyeron opciones para definir
y configurar dichos sistemas, específicamente se crearon opciones que permiten:
definir sistemas expertos, abrir o seleccionar el sistema con el cual se desea trabajar,
cerrar el sistema activo, definir categorías y elementos de diferenciación, definir datos
estadísticos, y definir los parámetros de cálculo e inferencia. El shell permite la
definición y control de hasta 999 sistemas expertos para diagnóstico por cada
instalación. Los sistemas definidos en el shell son independientes entre sí.
Al analizar el tipo de problemas para los cuales se deben realizar los
diagnósticos, se determinó que la forma más conveniente para la representación del
conocimiento es a través de reglas de inferencia, pues se desean sistemas capaces de
producir diagnósticos basados en relaciones de causa y efecto explícitamente definidas
y no en relaciones detectadas en problemas similares. Adicionalmente, la capacidad de
diagnóstico no debe verse afectada por la cantidad de problemas previamente
resueltos. Se encontró que las reglas de inferencia debían referirse a probabilidades o
posibilidad de ocurrencia, así mismo, se evidenció la necesidad de mecanismos que
reduzcan la ocurrencia de diagnósticos carentes de sentido, para lo cual se adoptó una
estructura de reglas que permite definir las características mínimas o esenciales para su
aplicabilidad, y/o aquéllas que les son incompatibles. Al definir las reglas se pueden
crear grupos de antecedentes con diferentes posibilidades de ocurrencia, y dentro de
ellos se puede asignar mayor o menor importancia relativa a cada característica,
síntoma o signo evaluado. Se incorporó una opción que permite evaluar la idoneidad
de las reglas mediante el análisis de los casos resueltos.
62
Para establecer un diagnóstico se evalúan los antecedentes de las reglas, y si
éstos se cumplen entonces se infiere que su consecuente debe ser cierto. Se estableció
que la forma más conveniente de representar los antecedentes de las reglas sería a
través del uso de variables y conclusiones. Las variables no debían limitarse al caso
difuso, pues su definición resulta relativamente compleja y son poco adecuadas para
expresar ciertas condiciones, por lo tanto se incorporaron opciones que permiten
definir variables: difusas, lingüísticas discretas, definidas por serie de valores, y no
difusas. Similarmente, se dispuso la incorporación de conclusiones tanto difusas como
no difusas.
Para resolver los problemas de diagnóstico se incorporó una opción en la cual se
define cada problema como un caso, se especifican los hechos y datos conocidos, y se
puede solicitar al sistema que establezca los posibles diagnósticos, o se puede intentar
verificar una hipótesis. Para facilitar la obtención y registro de los datos que definen a
los casos, se incorporó una opción que permite la definición de cuestionario.
El shell dispone de un menú tipo pull-down o de alternativas descendentes para
la selección de las opciones. Las opciones del shell se agrupan en cinco categorías:
sistema, diagnósticos, reglas, variables, y ayuda. A continuación se muestran de forma
jerárquica las opciones que conforman al shell.
63
Shell
Control de
Acceso
Sistema
Diagnósticos
Reglas
Variables
Ayuda
Abrir /
Seleccionar
Diagnosticar
Definición
Difusas
Temas de
Ayuda
Cerrar
cuestionarios
Datos
Históricos
Lingüísticas
Discretas
Acerca del
Shell
Salir
Conclusiones
No Difusas
Serie de
Valores
Definir
Usuarios
Conclusiones
Difusas
No Difusas
Cambio de
Contraseña
Definir
Sistemas
Categorías
Datos
Estadísticos
Parámetros
de Inferencia
Fig. 4.1.
Esquema jerárquico con las opciones del shell.
Cada una de las opciones que conforman el shell serán analizadas
individualmente en las subsiguientes secciones de este capítulo, para cada una de ellas
se indica el propósito, los elementos constitutivos, posibles valores y otras
explicaciones. Los aspectos operativos del shell y sus opciones deben ser consultados
en el manual del usuario.
4.2. Usuarios
El acceso al sistema es controlado por usuario. A cada usuario se le asigna un
perfil, que indica el tipo de actividades que puede realizar dentro del shell. Los perfiles
existentes son:
64
•
Administrador: Se refiere a los usuarios que planifican y definen los
sistemas de diagnóstico que se deben implementar. Tiene privilegios
suficientes para crear, modificar y/o eliminar cualquier tipo de
información.
•
Líder de grupo: Son los usuarios que colaboran en determinadas áreas de
investigación. Pueden crear y modificar información de los sistemas
previamente definidos.
•
Usuario final: Son los usuarios autorizados para consultar los sistemas,
pero no pueden directamente alterar su funcionamiento.
Desde el ingreso del usuario al sistema, se verifica el perfil, y sólo aparecen
habilitadas las opciones que corresponden al tipo de actividades para las que ha sido
autorizado. Cada usuario se identifica por un código alfanumérico único, de hasta 8
dígitos de longitud, vinculado a una contraseña, del mismo tipo y largo. Cada usuario
puede cambiar sólo su propia contraseña, independientemente de sus privilegios. No
existen restricciones con respecto al número de usuarios asignados a un perfil. Crear y
eliminar usuarios está restringido a los administradores.
4.3. Parámetros de Cálculo e Inferencia
El shell utiliza una tabla de parámetros para cálculos e inferencias, cada sistema
posee sus propios valores, y estos son fundamentales para su funcionamiento. Estos
parámetros se refieren a dos aspectos diferentes, primero a un grupo de valores que
controlan la activación de las reglas, y segundo a la forma de intersección que se usa
para determinar la compatibilidad de valores difusos.
4.3.1. Valores para la Activación de las Reglas
Se refiere a valores porcentuales que condicionan la evaluación y activación de
las reglas. El umbral de activación se refiere al porcentaje mínimo de certeza o grado
65
de pertenencia que se debe alcanzar para ejecutar una regla o subconjunto de ella.
Estos parámetros son:
•
Tolerancia al comparar datos: se refiere al margen de error admitido o
precisión requerida al evaluar operadores relacionales (=, <, >, ≠, ≤, ≥). De
forma general se recomienda asignar a este parámetro un valor entre 1 y 10%,
aun cuando el rango de valores admitidos está entre 0 y 100%. Un porcentaje
de tolerancia muy bajo puede ocasionar que se dejen de activar reglas por
errores de precisión en la representación de los valores o por errores de
cálculo, en tanto que valores muy altos devienen en la pérdida de sentido y
propósito de las reglas, pues se ejecutarán independientemente de los valores
suministrados.
•
Umbral de activación para características esenciales: Las características
esenciales definidas en una regla son una exigencia para la satisfacción de sus
premisas, en tal sentido se espera que la probabilidad de su ocurrencia sea
muy alta, sin embargo, es preferible otorgar al sistema un margen de
flexibilidad que le permita evaluar un mayor número de reglas y que sea el
conjunto de la evidencia lo que determine los diagnósticos más probables. De
forma general, se recomienda, fijar inicialmente un valor de alrededor del
75%, e ir incrementando este porcentaje en la medida que se comprueba la
idoneidad de las reglas que lo conforman. Esta recomendación obedece a la
posibilidad de que no todas las reglas estén definidas con una precisión
similar.
•
Umbral de activación para características probables: Este valor establece el
grado de pertenencia o certeza mínima que se debe alcanzar para considerar
que una característica probable está presente. La definición de este parámetro
depende de la naturaleza del sistema y del grado de convicción que tengan
los autores sobre la exactitud de las reglas definidas, no obstante es preferible
asignar valores intermedios (alrededor de 50%), pues se trata de
66
características que se clasificaron como probables, lo que indica que su
presencia no es definitoria del diagnóstico, aunque no por ello se debe
menospreciar la evidencia que ellas aportan.
•
Umbral de activación para características incompatibles: La sola presencia de
una característica definida como incompatible (con la conclusión) ocasiona
que la regla sea descartada de inmediato, por lo tanto se debe ser
cuidadoso(a) al definir las características incompatibles. Se recomienda
asignar a este parámetro un valor elevado, aunque los criterios expresados
para los parámetros anteriores también se cumplen para éste.
4.3.2. Tipo de Intersección para Variables Difusas
La intersección para variables difusas se utiliza en los procesos de inferencia.
Los hechos o características que se definen a través de una etiqueta lingüística difusa
generan un cierto grado de presencia en las etiquetas próximas, es decir, al seleccionar
una etiqueta se le asigna el máximo grado de pertenencia posible (1), a las otras
etiquetas de la variable, se le calcula el grado de pertenencia según la intersección que
formen con la etiqueta originalmente seleccionada.
El cálculo de las intersecciones es muy importante para el razonamiento
aproximado, pues permite que las reglas se activen a partir de la presencia de
características compatibles. El shell está dotado de 12 tipos o formas de intersección, 6
de las cuales son ajustables por medio de parámetros. En la siguiente tabla se muestran
los tipos de intersección incorporados, donde a y b corresponden a los grados de
pertenencia para dos etiquetas:
67
Fórmula
Rango del
Parámetro
mín(a, b)
N/A
a+b
2
N/A
Tipo de Intersección
Zadeh (1965)
Promedio
⎛a+b⎞
⎜
⎟
⎝ 2 ⎠
Cuadrado del promedio
2
N/A
Raíz cuadrada del promedio
a+b
2
N/A
Producto
a.b
N/A
máx[0, (a + b − 1)]
N/A
a.b
máx (a, b, α )
α ∈ (0,1)
Suma restringida
Dubois y Prade (1980)
(
w
w
1−mín⎡1, (1 − a ) + (1 − b)
⎢⎣
1
Yager (1980)
⎡⎛ 1 ⎞
1 + ⎢⎜
⎟
⎣⎢ ⎝ a ⎠
Dombi (1982)
λ
⎛ 1 ⎞
+ ⎜
⎟
⎝ b ⎠
)
1/ w
λ
⎤
⎥
⎦⎥
Frank (1979)
⎡ (s a − 1)(
. s b − 1)⎤
log s ⎢1 +
⎥
s −1
⎣
⎦
Schweizer y Sklar (1961)
máx 0, (a − ρ + b − ρ − 1)
−1 / ρ
a.b
γ + (1 − γ )(
. a + b − a.b )
Hamacher (1978)
Tabla 4.2
[
w ∈ (0, ∞)
⎤
⎥⎦
1
λ
λ ∈ (0, ∞)
s ∈ (0, ∞)
]
ρ ∈ (− ∞, ∞)
γ ∈ (0, ∞)
Tipos de intersección incorporadas en el shell para variables difusas.
La selección del tipo de intersección depende en buena medida de la experiencia
y requerimientos de quienes definan el sistema experto. En general, se pueden obtener
resultados satisfactorios recurriendo al uso de las formas más simples de intersección
como Zadeh o promedio.
68
4.4. Información Estadística de los Casos
Cada problema de diagnóstico que se plantea dentro de un sistema constituye un
caso, y el shell asigna un número consecutivo de control para cada uno de ellos. Es
posible definir hasta 20 elementos estadísticos asociados a los casos. Un caso se
considera activo hasta que sea eliminado, o hasta alcanzar un diagnóstico definitivo y
se decida guardarlo como información histórica. La información requerida para fines
estadísticos es de carácter opcional, y en esencia se trata de una pregunta de libre
redacción. Cada interrogante podrá tener una longitud de hasta 20 dígitos, y sus
respuestas de hasta 30 dígitos. La información estadística no incide directamente en el
proceso de establecer el diagnóstico para un caso, y se mantiene mientras exista el
caso, tanto en su etapa activa como histórica.
El shell no impone restricciones con respecto al número de casos que pueden
estar activos en un momento dado, aun cuando no se recomienda la acumulación de los
mismos, pues esto dificulta su selección y mantenimiento. Los casos activos se alojan
en archivos independientes de la información histórica. Esta información permite
mejorar la definición de las reglas, pues se traduce en estadísticas que indican la
frecuencia de aparición de las características y manifestaciones presentes en los casos.
4.5. Categorías y Elementos de Diferenciación
Para cada sistema de diagnóstico se pueden definir hasta 2 elementos de
diferenciación, cada uno de ellos puede estar conformado por hasta 32 categorías. El
uso de estas categorías es opcional, y su finalidad es restringir la aplicabilidad de las
reglas. Las categorías pueden ser simples o compuestas, es decir, una categoría puede
abarcar a otras. Al plantear un caso que debe ser diagnosticado, sólo se pueden
seleccionar las categorías simples, al momento de hacer las inferencias el shell verifica
las restricciones de aplicación con base en los elementos de diferenciación y sus
categorías. Por ejemplo para un sistema de diagnóstico aplicable a la medicina, se
69
pueden definir los elementos de diferenciación “Sexo” y “Edad”. El elemento de
diferenciación “Sexo” puede estar conformado por las categorías “Masculino” y
“Femenino”. Para el elemento de diferenciación “Edad”, se pueden definir las
categorías “Neonato”, “Infante”, “Adolescente”, “Adulto”, “Anciano”, y una
categoría adicional denominada “Edades extremas” que comprendería a “Neonato”,
“Infante” y “Anciano”.
4.6. Variables
El shell permite definir distintos tipos de variables, su selección depende
fundamentalmente de los posibles valores que éstas deben asumir y de la precisión con
la cual se conoce la información que éstas representan. Las variables en el shell se
identifican por códigos alfanuméricos de 8 dígitos, de los cuales los dos últimos se
asignan automáticamente durante su definición, así el código de las variables termina
en las letras “VL” o “VP”. Los tipos de variables admitidas son:
•
•
•
•
Difusas
Lingüísticas discretas
Serie de valores
No difusas
o Presente/Ausente
o Numéricas libres
o Numéricas acotadas
o Alfanuméricas libre
o Alfanuméricas acotadas
4.6.1. Variables Difusas
Las variables difusas asumen valores en un intervalo de números reales. Estos
valores se agrupan en etiquetas facilitando la representación de los conocimientos en
forma de reglas. El grado de pertenencia queda determinado por la función que se
utilice para definir a la variable. En el shell estas variables establecen relaciones a
partir de comparaciones con las etiquetas que la caracterizan.
70
El shell dispone de una opción para el control de las variables lingüísticas
difusas, la misma registra la siguiente información para cada variable: código y
descripción de la variable, tipo de función de pertenencia, número de etiquetas, rango
de valores (desde-hasta), y la descripción y los parámetros correspondientes a cada una
de sus etiquetas. Cada variable lingüística difusa puede poseer hasta 9 etiquetas. Para
registrar los hechos, los usuarios pueden expresar los valores de estas variables
seleccionando la etiqueta apropiada o escribiendo directamente el valor, cuando éste se
conozca.
4.6.2. Variables Lingüísticas Discretas
Las variables lingüísticas discretas han sido incorporadas en el shell, para evitar
la definición de intervalos de números reales que pueden resultar confusos en ciertos
contextos, y para obviar la necesidad de buscar funciones matemáticas que produzcan
aproximaciones satisfactorias, según el modelo propuesto. Para este tipo de variables
se especifican directamente las etiquetas, sus grados de pertenencia, y un porcentaje de
compatibilidad entre ellas. Para cada variable lingüística se puede definir entre 1 y 9
etiquetas. Definir el grado de compatibilidad entre etiquetas es opcional, y dicha
compatibilidad puede ser asimétrica. Al definir reglas o al expresar los hechos la
asignación de valores se hace tomando como referencia una de las etiquetas
previamente definidas.
4.6.3. Variables Definidas por Serie de Valores
Las variables definidas por serie de valores, se asocian a etiquetas únicas, para
las cuales se definen rangos de valores reales. El grado de pertenencia para cada valor
del intervalo se define directamente o se calcula por interpolación a partir de valores
próximos. Para cada variable de este tipo se pueden definir hasta 100 puntos o
segmentos que definen el grado de pertenencia para sus posibles valores.
71
La aplicabilidad de este tipo de variables es limitada, aunque resultan útiles para
asignar determinados grados de pertenencia. Las comparaciones que se pueden
establecer para este tipo de variables en la definición de reglas se refieren tanto a su
propio valor como al grado de pertenencia asociado. Durante la definición de hechos,
los usuarios suministran directamente los valores, a partir de ellos y de la definición de
las variables, se establecen los grados de pertenencia que pueden ser utilizados para
evaluar las reglas.
4.6.4. Variables No Difusas
El shell permite la definición de variables que no están asociadas a grados de
pertenencia. Su evaluación se refiere exclusivamente a los valores asumidos. Estas
variables pueden ser: de tipo presente/ausente, numéricas acotadas, numéricas libres,
alfanuméricas acotadas, y alfanuméricas libres. Todas ellas pueden almacenar valores
de hasta 8 dígitos de longitud independientemente de la unidad o sistema de medición
utilizado.
4.7. Funciones de Pertenencia
Las funciones de pertenencia se utilizan para calcular la correspondencia entre
los valores de las variables difusas y sus etiquetas lingüísticas. Por lo general, el
nombre de la función de pertenencia está asociado a la forma del gráfico que se
obtiene para cada etiqueta. El shell admite 11 tipos de funciones para definir variables
difusas, las mismas son: Triangular, Trapezoidal, Campana de Gauss, Campana de
Gauss combinada, Campana generalizada, Curva sigmoidal, Combinación sigmoidal,
Diferencia sigmoidal, Curva en forma de S, Curva en forma de Z, y Curva PI (SZ).
72
4.7.1. Función de Pertenencia Triangular
Este tipo de función es muy utilizada para representar conceptos aproximados, su
comportamiento es fácilmente predecible, es decir, al definir los parámetros se puede
anticipar el gráfico que se obtendrá y las áreas solapadas entre etiquetas. Utiliza 3
parámetros que definen un triángulo, la cúspide del mismo tiene grado de pertenencia
igual a uno, y sus otros vértices tienen grado de pertenencia igual a cero. La fórmula
general de esta función y su forma típica son:
Fórmula general
⎧0
⎪x − a
⎪
⎪
μ = ⎨b − a
⎪c − x
⎪c − b
⎪0
⎩
Forma típica
cuando x ≤ a
cuando a < x ≤ b
cuando b < x ≤ c
cuando c < x
Fig. 4.2. Función de pertenencia: Triangular
4.7.2. Función de Pertenencia Trapezoidal
Este tipo de función se puede considerar como una generalización de la función
triangular, ampliándose sus posibilidades de uso al incorporar un cuarto elemento que
permite definir un intervalo en el cual la etiqueta alcanza el grado de pertenencia
máximo (1). Las ventajas de usar funciones de pertenencia triangular, también son
aplicables para esta función. Los parámetros indican: el punto inicial en el cual el
grado de pertenencia deja de ser cero (0), el comienzo de un intervalo con grado de
pertenencia igual a uno (1), el final de dicho intervalo, y el punto en el cual el grado de
pertenencia vuelve a ser igual a cero. Su fórmula general y forma típica son:
73
Fórmula general
⎧0
⎪x − a
⎪
⎪b − a
⎪
μ = ⎨1
⎪d − x
⎪
⎪d − c
⎪⎩0
Forma típica
cuando x ≤ a
cuando a < x ≤ b
cuando b < x ≤ c
cuando c < x ≤ d
cuando d < x
Fig. 4.3. Función de pertenencia: Trapezoidal
4.7.3. Función de Pertenencia Campana de Gauss
Este tipo de función también se denomina exponencial, constituye una buena
representación de procesos naturales que impliquen variaciones progresivas, se adapta
con precisión a la noción de números difusos, aun cuando su uso no resulta intuitivo, y
puede requerir varios ensayos hasta obtenerse los parámetros que produzcan el
comportamiento esperado. Utiliza 2 parámetros, el primero define la pendiente y forma
de la curva, el segundo el centro de la base. Su fórmula general y forma típica son:
Forma típica
Fórmula general
μ =e
⎛ − ( X −b )2 ⎞
⎜
⎟
⎜ 2.a 2 ⎟
⎝
⎠
Fig. 4.4. Función de pertenencia: Campana de Gauss
74
4.7.4. Función de Pertenencia Campana de Gauss Combinada
Se trata de una variante de la función campana de Gauss. Utiliza 4 parámetros
para definir por separado el lado izquierdo y lado derecho de la curva. Esto le permite
adaptarse mejor al comportamiento de ciertos procesos, aun cuando dificulta su uso. El
primer parámetro define la pendiente y forma del lado izquierdo de la curva, el
segundo y el tercero de los parámetros definen un intervalo en el cual el grado de
pertenencia es igual a 1, el cuarto parámetro define la pendiente y forma del lado
derecho de la curva. La fórmula general y forma típica son:
Fórmula general
⎧ ⎛⎜⎜ −( X −2b )2 ⎞⎟⎟
⎪e ⎝ 2.a ⎠
⎪
μ = ⎨1
⎪ ⎛ −( X − d ) 2 ⎞
⎪ ⎜⎜⎝ 2.c2 ⎟⎟⎠
⎩e
Forma típica
cuando
x≤b
cuando
b<x<d
cuando
x≥d
Fig. 4.5. Función de pertenencia: Campana de Gauss combinada
4.7.5. Función de Pertenencia Campana Generalizada
Esta función produce valores que se distribuyen a partir de un punto central,
dando origen a figuras con forma de campana. Su implementación resulta
relativamente sencilla, y sus parámetros permiten adaptar la función a un gran número
de requerimientos. Utiliza 3 parámetros que determinan el ancho, la pendiente en el
punto de inflexión y el centro respectivamente de la curva. Su fórmula general y forma
típica son:
75
Fórmula general
μ=
Forma típica
1
⎛ X −c⎞
1+ ⎜
⎟
⎝ a ⎠
2.b
Fig. 4.6. Función de pertenencia: Campana generalizada
4.7.6. Función de Pertenencia Curva Sigmoidal
Este tipo de función corresponde a variaciones (incrementos o decrementos)
progresivos de valores no lineales. Se trata de variaciones del grado de pertenencia de
un extremo al otro. El punto de inflexión del gráfico se ubica en el valor que alcanza el
50% del grado máximo de pertenencia. Esta función utiliza dos parámetros, el primero
de ellos determina el sentido (+/-) y la pendiente de la curva en el punto de inflexión,
el segundo determina el punto de inflexión cuando se alcanza el 50% del grado de
pertenencia máximo (0,5). Su fórmula general y forma típica son:
Fórmula general
μ=
Forma típica
1
1+ e
− a ( X −b )
76
Fig. 4.7. Función de pertenencia: Curva sigmoidal
4.7.7. Función de Pertenencia Combinación Sigmoidal
Se trata de una función que se deriva del producto de dos curvas sigmoidales,
que pueden definir una parte creciente y otra decreciente, una vez alcanzado el grado
máximo de pertenencia de la función. Utiliza 4 parámetros, los dos primeros definen el
lado izquierdo de la curva, los otros dos el lado derecho (ver función de pertenencia
sigmoidal). Se debe tener especial cuidado al definir funciones de este tipo, para
garantizar que la misma esté normalizada (ver definición II.16). Su fórmula general y
forma típica son:
Fórmula general
μ=
1
1+ e
− a ( X −b )
Forma típica
×
1
1+ e
−c ( X − d )
Fig. 4.8. Función de pertenencia: Combinación sigmoidal
4.7.8. Función de Pertenencia Diferencia Sigmoidal
Esta función queda definida por la diferencia de dos curvas sigmoidales. Esta
función guarda estrecha relación con la función combinación sigmoidal, la diferencia
fundamental está dada por la posibilidad de definir la pendiente positiva y negativa de
la curva, sólo utilizando parámetros positivos. Ver las características y limitaciones
señaladas en la sección anterior (sección 4.7.7). A continuación está la fórmula general
y forma típica de esta función:
77
Fórmula general
μ=
1
1+ e
− a ( X −b )
Forma típica
−
1
1+ e
−c ( X − d )
Fig. 4.9. Función de pertenencia: Diferencia sigmoidal
4.7.9. Función de Pertenencia Curva en Forma de S
Este tipo de función se vincula a distribuciones acumulativas de probabilidad.
Utiliza 2 parámetros, el primero indica el punto en cual el grado de pertenencia
comienza a crecer (deja de ser cero), y se mantiene el crecimiento progresivo hasta
alcanzar el segundo parámetro, a partir de dicho valor permanece constante e igual a
uno. Su fórmula general y forma típica son:
Fórmula general
Forma típica
cuando
⎧0
⎪
2
⎪2⎛ x − a ⎞
cuando
⎪ ⎜⎝ b − a ⎟⎠
⎪
μ=⎨
2
⎪1 − ⎛⎜ 2⎛ b − x ⎞ ⎞⎟ cuando
⎪ ⎜ ⎜⎝ b − a ⎟⎠ ⎟
⎠
⎪ ⎝
⎪⎩1
cuando
x≤a
a<x≤
a+b
2
a+b
< x≤b
2
x>b
Fig. 4.10. Función de pertenencia: Curva en forma de S
78
4.7.10. Función de Pertenencia Curva en Forma de Z
Esta función es similar a la “curva en forma de S” pero de sentido inverso.
Utiliza dos parámetros, el primero indica el punto en cual el grado de pertenencia
comienza a decrecer (deja de ser uno), y se mantiene disminuyendo, progresivamente,
hasta alcanzar el segundo parámetro, a partir de dicho valor, permanece constante e
igual a cero. Su fórmula general y forma típica son:
Fórmula general
⎧1
⎪
2
⎪1 − 2⎛ x − a ⎞
⎜
⎟
⎪⎪
⎝b−a ⎠
μ=⎨
2
⎪ ⎛b−x⎞
⎪2⎜⎝ b − a ⎟⎠
⎪
⎪⎩0
Forma típica
cuando x ≤ a
cuando a < x ≤
a+b
2
a+b
< x≤b
2
cuando x > b
cuando
Fig. 4.11. Función de pertenencia: Curva en forma de Z
4.7.11. Función de Pertenencia Curva PI (SZ)
Esta función surge de la combinación de una curva en forma “S” y de otra en
forma de “Z”, lo cual proporciona variaciones suaves e independientes para ambos
lados de la gráfica. Su uso es frecuente para representar valores difusos, en general
permite plasmar los conceptos de forma bastante precisa, y su uso resulta práctico e
intuitivo. Se define a través de 4 parámetros, el primero indica el punto en cual el
grado de pertenencia comienza a crecer (deja de ser cero), y se mantiene el crecimiento
progresivo hasta alcanzar el segundo parámetro, a partir de dicho valor el grado de
pertenencia es máximo (igual a uno), hasta el punto especificado por el tercer
parámetro, a partir de allí el grado de pertenencia comienza a decrecer y se mantiene
79
disminuyendo, progresivamente,
hasta alcanzar el cuarto parámetro, para
luego
hacerse constante e igual a cero. Su fórmula general y forma típica son:
Fórmula general
⎧0
⎪
2
⎪2⎛ x − a ⎞
⎪ ⎜⎝ b − a ⎟⎠
⎪
⎪ ⎛ ⎛ b − x ⎞2 ⎞
⎟ ⎟⎟
⎪1 − ⎜⎜ 2⎜
⎪ ⎝ ⎝b−a⎠ ⎠
⎪
μ = ⎨1
⎪
2
⎪1 − 2⎛⎜ x − c ⎞⎟
⎪
⎝d −c ⎠
⎪
2
⎪ ⎛d −x⎞
2
⎪ ⎜ d −c⎟
⎠
⎪ ⎝
⎪0
⎩
Forma típica
cuando x ≤ a
cuando a < x ≤
cuando
a+b
2
a+b
< x≤b
2
cuando b < x ≤ c
cuando c < x ≤
c+d
2
c+d
< x≤b
2
cuando x > d
cuando
Fig. 4.12. Función de pertenencia: Curva PI (S.Z)
4.8. Modificadores Difusos
El uso de modificadores o prefijos (hedges) en los sistemas difusos, se refiere a
la definición de elementos lingüísticos que alteran el grado de pertenencia de la
variable difusa a su correspondiente conjunto. Ejemplo de estos prefijos son: (“algo”,
“muy”, “bastante”, “extremadamente”, etc.). El uso de estos prefijos, es similar al
empleo de adjetivos y adverbios en oraciones de idiomas como el español o el inglés.
El Prof. Lotfi Zadeh, definió el prefijo “muy” (“very”) [Zadeh, et al., 1975], para
intensificar el valor de una variable, modificando su grado de pertenencia, que sería
igual al cuadrado del valor original. Similarmente consideró el Prof. Zadeh, que el
prefijo “algo” (“somewhat”), que reduce la intensidad del concepto expresado debía
ser igual a la raíz cuadrada del valor original.
80
Teóricamente no existe restricción en cuanto al número de prefijos que se pueden
utilizar para modificar el valor de una variable lingüística. Sin embargo el orden y
cantidad de prefijos utilizados puede hacer variar significativamente el resultado de su
evaluación.
El uso de modificadores difusos puede dar origen a situaciones como la
siguiente: Sea A={Bajo, Promedio, Alto} un conjunto difuso que define la estatura de
una persona, y B={Algo, Muy} los posibles prefijos definidos. Podría decirse que
alguien es “Muy Muy Alto”, en cambio no resulta tan claro definir a otra persona como
“Algo Algo Promedio”, aun cuando en ambos casos sean correctos los cálculos que de
esas expresiones se deriven. Para evitar situaciones como ésas y en aras de reducir la
imprecisión asociada a los conceptos y sus posibles interpretaciones, se optó por no
incorporar el uso de modificadores en el shell desarrollado. Se consideró preferible que
cada variable lingüística tenga explícitamente definidos sus posibles valores, esto debe
ser tomado en cuenta al momento de definir las variables y sus etiquetas.
4.9. Tipos de Conclusión
Los diagnósticos que pueden obtenerse de los sistemas controlados por el shell se
restringen a las conclusiones en ellos definidas. Las conclusiones sirven para expresar
el consecuente de las reglas, al mismo tiempo que pueden formar parte de sus
antecedentes, generándose así conclusiones conexas, dependientes o excluyentes.
Cada conclusión está identificada por un código único alfanumérico de 8 dígitos
de largo, de los cuales los dos últimos son fijos y corresponden a las letras “CN”. Cada
conclusión posee una descripción de hasta 30 dígitos de longitud. Dos conclusiones
cualesquiera no pueden poseer una misma descripción. Esta restricción no se aplica
entre variables y conclusiones, en ese caso la diferenciación se realiza a partir de las
letras finales de sus códigos (“VL” y “CN” respectivamente).
81
La definición de conclusiones es un paso previo al registro de reglas que hagan
referencia a las mismas. En el shell es posible definir conclusiones de dos tipos:
difusas y no difusas, ambas pueden coexistir en un mismo sistema, y hasta definir un
mismo diagnóstico. La creación y control de conclusiones se realiza por sendas
opciones disponibles desde el menú de la aplicación.
4.9.1. Conclusiones No Difusas
Para definir una conclusión no difusa sólo se requiere asignar un código y una
descripción. Las conclusiones directas sólo pueden asumir los valores “Presente” o
“Ausente” e implican evaluaciones simples e independientes de las reglas que las
definen. Una vez alcanzado el final del proceso de inferencia se selecciona cada
posible conclusión a partir de la regla que presente mayor grado de evidencia o
posibilidad de ocurrencia. Cuando más de una regla o grupo de evidencias compartan
la máxima posibilidad de ocurrencia para una misma conclusión, el criterio de
selección se rige por el orden de ocurrencia.
4.9.2. Conclusiones Difusas
Este tipo de conclusiones sólo es posible definirlo para variables lingüísticas
difusas, previamente registradas. Las mismas conservan la descripción original de la
variable difusa, y los seis primeros dígitos de su código. Para cada conclusión se
establece el tipo de inferencia que se utilizará (Mamdani o Sugeno), así como la forma
de precisar sus salidas, esto permite diseñar sistemas expertos que utilicen
simultáneamente ambas formas de inferencia.
Estas conclusiones son especialmente útiles para diagnósticos que pueden asumir
diferentes valores referidos a un mismo concepto, enfermedad o problema. El espectro
de posibles valores para estas conclusiones lo definen las etiquetas de las variables
difusas asociadas. Cuando los consecuentes de varias reglas se refieren a una misma
82
conclusión difusa con diferentes valores, la conclusión definitiva se obtiene
combinando todas esas conclusiones parciales y sus respectivas evidencias.
4.10. Inferencia Difusa
Cuando el consecuente de una regla corresponde a una conclusión difusa, se está
indicando que esa regla debe ser evaluada aplicando el método de inferencia
seleccionado para la conclusión. El shell desarrollado incorpora dos métodos alternos
para el proceso de inferencia aplicable a las conclusiones difusas, esos métodos se
conocen por los apellidos de sus autores, ellos son: Mamdani y Sugeno. De manera
general estos procesos se desarrollan en cuatro pasos:
1. El primer paso es difuminar (fuzzifying) las entradas o calcular valores
difusos para las entradas precisas, lo que implica determinar su grado de
pertenencia a las etiquetas de las variables lingüísticas.
2. El segundo paso es evaluar las reglas, esto comprende la verificación de
los antecedentes de las reglas, la aplicación de los operadores difusos y
realizar las implicaciones correspondientes para determinar consecuentes
a partir de los antecedentes.
3. El tercer paso es agregar las salidas de las reglas activadas (Aggregation),
aquí se combinan las conclusiones parciales o salidas generadas durante
la etapa previa del proceso.
4. El cuarto paso es precisar las salidas agregadas (defuzzification), esto
consiste en calcular un valor específico y representativo de las
conclusiones parciales.
4.10.1. Inferencia Difusa Tipo Mamdani
Este método de inferencia (ver definición II.29) se aplica a la evaluación de
reglas con conclusiones difusas. Cada conclusión puede tomar el valor de una
determinada etiqueta de la variable, así su salida se corresponde con los valores de la
83
etiqueta hasta el grado de pertenencia alcanzado según la evaluación de los
antecedentes. La agregación de las salidas para este método, consiste en la unión de
todas las etiquetas referidas a una misma conclusión tomadas con su mayor grado de
pertenencia. Las salidas agregadas sirven para calcular la salida precisa de la
conclusión, para ello se aplica una de las cinco fórmulas incorporadas en el shell (ver
sección 4.11). En la siguiente figura se ilustran los pasos o etapas del proceso de
inferencia según el método de Mamdani.
Fig. 4.13. Pasos del método de inferencia de Mamdani.
4.10.2. Inferencia Difusa Tipo Sugeno
El método de Sugeno o método de inferencia de Takagi-Sugeno-Kang (ver
definición II.30) es una variante del método de Mamdani, que simplifica el proceso al
definir las salidas de las reglas como una función de sus antecedentes. En el caso
específico del shell desarrollado, las salidas serán valores constantes de las variables
(singletons) definidos por los usuarios. La agregación de las salidas para este método
consiste en la unión o combinación de los valores especificados como consecuentes de
las reglas activadas, luego se precisa el valor de la conclusión determinando su
promedio ponderado (ver sección 4.11) según el grado de pertenencia correspondiente
a cada salida o conclusión parcial. En la siguiente figura se ilustran los pasos o etapas
del proceso de inferencia según el método de Sugeno.
84
Fig. 4.14. Pasos del método de inferencia de Sugeno.
4.11. Formas de Precisar las Salidas Difusas
Como se ha expuesto en la sección 4.10, la última etapa del proceso de inferencia
difusa está destinada a generar resultados precisos y representativos de las
conclusiones parciales que se pudiesen haber inferido. Las conclusiones parciales
pueden contener cierto grado de ambigüedad, por lo que las salidas precisas
determinan las conclusiones según su posibilidad de ocurrencia a partir de la evidencia
suministrada. En el shell se han incorporado seis técnicas para precisar las salidas
difusas, de las cuales cinco son aplicables con el método de Mamdani, y una con el
método de Sugeno. Las formas incorporadas para precisar las salidas difusas son:
•
•
•
•
•
•
Centro de Gravedad (CoG)
Centro de las Sumas (CoS)
Primer Máximo (FoM)
Último Máximo (LoM)
Medio Máximo (MoM)
Promedio Ponderado
4.11.1. Centro de Gravedad
Esta forma de precisar las salidas difusas se aplica con el método de Mamdani,
también se le denomina técnica del centroide, y se suele identificar por sus siglas en
inglés (CoG, Center of Gravity). La técnica consiste en determinar el punto donde una
línea vertical puede dividir a la región difusa determinada por las salidas agregadas de
85
las reglas, en dos de igual masa, es decir, el centro de gravedad. Esta técnica es
ampliamente utilizada por producir salidas muy representativas de las conclusiones
parciales. El cálculo de las salidas precisas se determina a partir de la siguiente
fórmula:
u=
∫ u.μ (u )du
∫ u.μ (u )du
u
u
u
Dada la dificultad de programar las rutinas necesarias para resolver esas
integrales, se suele recurrir a la aproximación que se obtiene al calcular el centro de
gravedad empleando la fórmula:
l
u=
∑u
k =1
l
k
.μ u (u k )
∑μ
k =1
, donde l es la cantidad de reglas activadas para esa conclusión.
u
(u k )
4.11.2. Centro de las Sumas
Esta técnica suele identificarse en la literatura, por sus siglas en inglés (CoS,
Center of Sums). Se aplica con el método de Mamdani. Este método es similar al del
centroide, pero su implementación puede resultar mucho más eficiente ya que no se
descartan las áreas solapadas al evaluar las salidas agregadas, por lo que es posible que
estas se consideren más de una vez. Su fórmula para valores continuos es:
n
u=
∫ u.∑ μui (u ).du
u
i =1
n
∫ ∑ μu (u ).du
u
, donde n es la cantidad de reglas activadas para esa conclusión.
i
i =1
En caso de valores discretos o por la dificultad de calcular las integrales, se
puede aplicar la fórmula:
l
u=
n
∑ u k .∑ ui (u k )
k =1
l
i =1
, donde l es la cantidad de reglas activadas para esa conclusión.
n
∑∑ μu (u
k =1 i =1
i
k
)
86
4.11.3. Primer Máximo
Esta forma de precisar las salidas se basa en seleccionar el menor valor en el
dominio del universo de discurso U, que alcance el máximo grado de pertenencia en el
conjunto difuso. Sus siglas en inglés son (FoM, First of Maxima). Se aplica con el
método de Mamdani. La fórmula aplicable para esta técnica es:
u = mín{u ∈U μ u (u) = máxU}
4.11.4. Último Máximo
La aplicación de esta técnica corresponde al método de Mamdani, y consiste en
seleccionar el mayor valor en el dominio del universo de discurso U, que alcance el
máximo grado de pertenencia en el conjunto difuso. La técnica también es conocida
por sus siglas en inglés (LoM, Last of Maxima). Su fórmula es:
u = máx{u ∈ U μ u (u) = máxU}
4.11.5. Medio Máximo
Esta forma de precisar las salidas corresponde a un promedio de las dos técnicas
anteriores (FoM, LoM). El resultado se calcula al promediar los valores extremos del
dominio del universo de discurso U, que alcancen grados de pertenencia máximo, en el
conjunto difuso. La técnica es aplicable para los procesos de inferencia tipo Mamdani.
Sus siglas en inglés son el acrónimo de (Middle of Maxima). La fórmula aplicable para
esta técnica es:
u=
mín{u ∈ U μ u (u ) = máxU } + máx{u ∈ U μ u (u ) = máxU }
2
4.11.6. Promedio Ponderado
El promedio ponderado es equivalente a calcular el centro de gravedad para
valores discretos. En el shell desarrollado, esta técnica constituye la forma de precisar
87
las salidas para conclusiones de tipo Sugeno. En idioma inglés esta técnica se
denomina Weighted Average (WA). Los cálculos se realizan aplicando la fórmula:
n
u=
∑ μu .u
i =1
n
i
∑ μu
i =1
i
, donde n es la cantidad de reglas activadas para la conclusión.
i
4.12. Reglas de Inferencia
En los sistemas expertos se acostumbra utilizar estructuras condicionales para
representar los conocimientos, estas estructuras se denominan reglas de producción,
reglas de inferencia o simplemente reglas si el contexto así lo permite. Cuando en las
reglas los antecedentes, los consecuentes, o ambas partes, contienen variables difusas
se habla de reglas difusas (ver definición II.5).
En el shell desarrollado se dispone de una opción para la definición y control de
las reglas. Cada regla permite alcanzar una única conclusión. Es posible definir hasta
99 reglas para una misma conclusión, aun cuando se espera que cada conclusión sea
definida empleando una sola regla. El consecuente de las reglas puede referirse a
conclusiones difusas y no difusas (ver sección 4.9), en tanto que sus antecedentes se
constituyen de variables de cualquiera de los tipos incorporados (ver sección 4.6), de
otras conclusiones y/o de combinaciones de estos elementos.
4.12.1. Información Requerida para Definir Reglas
La definición de una regla requiere de la siguiente información: una conclusión y
un valor relacionado que conforman el consecuente, además de un conjunto de
características, valores y relaciones que definen los antecedentes de la regla.
Adicionalmente el shell puede utilizar los siguientes datos para completar la definición
de las reglas:
88
•
Un código alfanumérico de 8 dígitos, de los cuales los 6 primeros corresponden
a los del código de la conclusión, y los 2 subsiguientes sirven de correlativo
numérico para diferenciar las reglas referidas a una misma conclusión.
•
El nombre del autor o responsable de definir la regla. El shell por defecto
utiliza el nombre del usuario activo, sin embargo es posible modificar este
campo y colocar otro valor cuya longitud no supere los 30 dígitos.
•
La fecha de última actualización, es un campo que asigna automáticamente el
shell, y se establece a partir del reloj interno del computador.
•
Hasta dos campos de restricción según las categorías y elementos de
diferenciación definidos para el sistema en uso. El uso de estos campos es
opcional y sólo se deben emplear cuando las reglas son aplicables a
determinadas
categorías.
Las
restricciones
aquí
especificadas
son
independientes entre sí. Para cada elemento de diferenciación que se desee
restringir se puede seleccionar una categoría simple o compuesta (ver sección
4.5).
•
Las características, los operadores relacionales, los elementos de comparación,
la importancia relativa y la posibilidad de ocurrencia de los grupos de
antecedentes definidos.
4.12.2. Antecedentes de las Reglas
El objetivo de definir reglas en los sistemas implementados en el shell, es
establecer posibles diagnósticos mediante la verificación de coincidencias entre
síntomas, signos, o características esperadas y encontradas. Las características a las
que se puede hacer referencia en un sistema deben estar previamente definidas en
forma de variables y/o de conclusiones. Cada característica usada como antecedente en
una regla va acompañada de una relación y de un valor, que en conjunto definen la
condición que debe ser evaluada. Dependiendo de la forma usada para definir las
características, varían sus posibles relaciones y valores. En la siguiente tabla se
89
muestra un resumen de las características según la forma en que fueron definidas, y el
tipo de evaluaciones soportadas.
Forma en cual se definió
la característica
Conclusión
Variable difusa
Variable lingüística discreta
Variable por serie de valores
Posibles relaciones
de comparación
ESTÁ
ES
ES >
ES <
ES >=
ES <=
NO ES
ES
ES >
ES <
ES >=
ES <=
NO ES
VALOR =
VALOR >
VALOR <
VALOR >=
VALOR <=
VALOR <>
Posibles valores de
referencia
PRESENTE
AUSENTE
Propósito de la
evaluación
Verificar la presencia de
la característica.
Comparar el valor de la
Las etiquetas definidas
variable vs. el valor de
para la variable
referencia.
Comparar el valor de la
Las etiquetas definidas
variable vs. el valor de
para la variable
referencia.
Números reales dentro
Comparar el valor de la
del intervalo para el
variable vs. el valor de
cual se definió a la
referencia.
variable.
PERT. =
PERT. >
Comparar el grado de
Números reales
PERT. <
pertenencia de la
pertenecientes al
variable vs. el valor de
PERT. >=
intervalo [0,1]
PERT. <=
referencia.
PERT. <>
VALOR =
VALOR >
Valores alfanuméricos
Comparar el valor de la
libres o restringidos
VALOR <
Variable no difusa
variable vs. el valor de
VALOR >=
según la definición de
referencia.
VALOR <=
la variable
VALOR <>
Tabla 4.3. Tipos de relaciones y valores, disponibles para evaluar características.
Las características que pueden formar parte de los antecedentes de las reglas han
sido clasificadas en tres categorías: esenciales, probables, e incompatibles. Cada regla
puede contener hasta 32600 características distribuidas libremente en las tres
categorías señaladas.
90
Las características esenciales son aquéllas que siempre están presentes para un
determinado tipo de problema, es decir, se espera que aparezcan en el conjunto de
hechos para todos los casos cuyo diagnóstico definitivo corresponda a la referida regla,
su probabilidad de ocurrencia se estima en 100%. Las características probables son las
de uso más frecuente, permiten conformar grupos de antecedentes que reflejan la
relación causa-efecto. Los grupos se evalúan individualmente luego de verificarse las
características no compatibles y las esenciales, cada característica probable contribuye
a determinar la validez de la conclusión. Las características no compatibles se evalúan
individualmente y la presencia de cualquiera de ellas en un problema de diagnóstico
indica que no se continúe evaluando la regla, pues su conclusión carece de sentido en
ese caso. La probabilidad de ocurrencia para las características no compatibles es nula;
su incorporación resulta útil para el establecimiento de diagnósticos diferenciales y
para reducir el número de reglas que se activan durante los procesos de consulta. Los
diagnósticos diferenciales se requieren cuando los síntomas, signos y características
son comunes a dos o más diagnósticos y sólo unos pocos elementos aportan evidencia
que permiten su identificación.
En la categoría de características probables se considera que se está definiendo
un nuevo grupo al seleccionar el operador “O” para una característica, y este se
mantiene hasta la aparición de otro operador del mismo tipo. Las características de un
mismo grupo se vinculan por el operador “Y”, aun cuando este no se haya
seleccionado explícitamente. Al finalizar de definir las reglas se completan los
operadores requeridos y se eliminan los innecesarios. Los posibles valores para el
campo operador son: “Y”, “O”, y Nulo.
A cada grupo de características probables se le puede asignar una posibilidad de
ocurrencia que representa el nivel de certeza que se tiene acerca del diagnóstico en
función de la coincidencia con los hechos. En los grupos es posible asignar un
porcentaje de importancia relativa a las características, esto permite valorar el nivel de
91
evidencia que aporta cada característica en la determinación del diagnóstico. El total
de importancia relativa asignado en un grupo no puede ser superior a 100%, la
importancia relativa no asignada se distribuye equitativamente entre las características
del grupo para las que no se especificó este parámetro.
4.12.3. Conclusiones de las Reglas
Cuando se satisfacen las condiciones que constituyen los antecedentes de una
regla, se concluye que el consecuente de la misma es cierto; dicho consecuente es el
diagnóstico, definido en forma de conclusión más un valor que se asigna a la misma.
Los valores admitidos para las conclusiones no difusas son: “Presente” y “Ausente”,
para las conclusiones difusas de tipo Mamdani los posibles valores son las etiquetas
definidas para la variable lingüística asociada, en tanto que, para las conclusiones
difusas tipo Sugeno, los posibles valores son números reales pertenecientes al intervalo
para el cual se definió la variable difusa asociada.
4.13. Cuestionarios
Los cuestionarios son listas de características que se definen para facilitar el
registro de los hechos durante la fase de diagnóstico y pueden servir de guía con
respecto al tipo de revisión y exámenes que se deben practicar para lograr determinado
tipo de diagnóstico. Cada sistema puede contener hasta 9999 cuestionarios. Los
cuestionarios se componen de los siguientes elementos:
•
Un código numérico consecutivo de 4 dígitos de longitud.
•
Una definición o descripción que puede contener hasta 30 caracteres
alfanuméricos.
•
El nombre del autor del cuestionario. El shell asigna inicialmente el nombre
del usuario pero esta información puede ser cambiada para registrar cualquier
valor alfanumérico de hasta 30 dígitos.
92
•
La fecha de última actualización, este dato es asignado automáticamente por
el shell a partir del reloj interno del computador.
•
El conjunto de características que lo integran. Un cuestionario puede
contener hasta 32600 características, y estas mantienen el orden en el cual
fueron definidas.
El uso de cuestionarios es opcional, los usuarios pueden seleccionar tantos de
ellos como se requieran para cada consulta, las características comunes de los
cuestionarios seleccionados no aparecen duplicadas, es decir, sólo se incluyen una vez
en la lista de hechos y datos durante el registro del caso en los procesos de diagnóstico.
4.14. Diagnosticar
El shell incorpora una opción para realizar los diagnósticos, en ella los usuarios
registran los hechos o datos correspondientes al caso. A cada nuevo planteamiento o
problema se le asigna un número de caso, el usuario debe suministrar la información
del sujeto y de los hechos que caracterizan al problema, esta información se refiere a:
•
Una descripción o identificación del sujeto para el cual se requiere el
diagnóstico. Este campo puede contener valores alfanuméricos de hasta 30
dígitos de longitud.
•
Una selección de los cuestionarios que se deben aplicar para facilitar la
incorporación de los síntomas, signos o características correspondientes al
problema. Cada cuestionario se selecciona de una lista desplegable, los ya
seleccionados aparecen marcados con una flecha “Å”.
•
Por cada elemento de diferenciación definido en el sistema se puede
seleccionar la categoría a la cual pertenece el sujeto. Aquí sólo se permite la
selección de categorías simples, es decir, de aquéllas que no incluyen a otras.
93
•
La información estadística que se haya definido. Por cada sistema se pueden
definir hasta 20 datos que se consideran de utilidad para fines estadísticos
posteriores.
•
El conjunto de características, síntomas, y signos identificados o conocidos del
caso, sus relaciones y valores. Del recuadro de hechos y datos sólo se
consideran para fines diagnósticos aquellas características provistas de sus
respectivas relaciones y valores.
Cada síntoma, signo o característica se incorpora al sistema a través de las
conclusiones y variables definidas en el sistema. En la siguiente tabla se muestra un
resumen del tipo de valores y relaciones permitidas para registrar los hechos en un
problema de diagnóstico:
Tipo de característica
Posibles relaciones
Posibles valores
PRESENTE
Conclusión
ESTÁ
AUSENTE
ES
Las etiquetas definidas para la variable
Variable difusa
Números reales dentro del intervalo para
VALOR =
el cual se definió a la variable.
Variable lingüística discreta ES
Las etiquetas definidas para la variable
Números reales dentro del intervalo para
Variable por serie de valores VALOR =
el cual se definió a la variable.
Valores alfanuméricos libres o
VALOR =
Variable no difusa
restringidos según la definición de la
ESTÁ
variable
Tabla 4.4. Tipos de relaciones y valores, disponibles para registrar los hechos.
La lista de hechos y datos puede contener hasta 32600 ítems, cada uno
conformado por una identificación (código y descripción), una relación, y un valor.
Cuando se utilizan cuestionarios, el usuario debe seleccionar la relación y el valor que
complete la información disponible. Para incorporar nuevos hechos se selecciona la
variable o conclusión apropiada con su respectiva relación y valor. Cuando no se
puede establecer el vínculo característica-relación-valor, el sistema hace caso de esos
datos.
94
Una vez ingresada la información que define al caso se puede solicitar al sistema
que realice el diagnóstico o se puede intentar verificar una hipótesis, se pueden realizar
modificaciones y solicitar nuevas respuestas. Los casos registrados en un sistema se
mantienen activos hasta que el usuario decida eliminarlo o asignarle el diagnóstico
definitivo y convertirlo en un caso histórico.
Si al solicitar un diagnóstico el sistema no encuentra coincidencias y
compatibilidad entre los datos del caso y la información contenida en las bases de
conocimientos, se informará que no fue posible encontrar un diagnóstico y se sugerirá
el ingreso de información adicional y/o el ajuste de los parámetros empleados.
Las conclusiones encontradas al evaluar un caso se muestran en una tabla
ordenadas según sus posibilidades de ocurrencia, que son factores acumulativos de
certidumbre para cada diagnóstico, en cada regla se considera el producto de la
importancia relativa de las características coincidentes por la posibilidad de ocurrencia
del diagnóstico. Así los diagnósticos aparecen en el orden preferencial en que deben
ser considerados, pero no se debe interpretar ese valor como la probabilidad que se
trate del diagnóstico correcto. Para los diagnósticos que surgen de conclusiones difusas
agregadas se pueden visualizar las conclusiones intermedias.
Para cada diagnóstico se muestra un nivel de inferencia, este valor indica el
número máximo de reglas que se encadenaron para su inferencia. Cada vez que la
conclusión de una regla implica la incorporación de otra por formar parte de sus
antecedentes se incrementa en 1 el nivel de inferencia. Los diagnósticos con nivel de
inferencia igual a 1 son producto de la evaluación directa de una regla. A medida que
aumenta el nivel de inferencia asociado a un diagnóstico se debe tener menor
confianza en el mismo, pues es producto de sucesivos procesos de inferencia que
pueden incorporar y acumular errores.
95
Para cada diagnóstico se muestra la regla que permitió su inferencia con mayor
grado de certeza, y de esta el grupo probabilístico con mayor posibilidad de
ocurrencia, el porcentaje de satisfacción alcanzado al comparar las características del
caso con las de la regla, el código de la conclusión alcanzada y un enlace al archivo de
referencia vinculado a ella que muestra un archivo en formato PDF.
El proceso de diagnóstico en el shell se realiza de la siguiente forma:
1. El usuario registra los hechos y datos del caso, proporciona una identificación
y selecciona las categorías correspondientes, luego, utiliza las variables y
conclusiones para representar los signos, síntomas o características conocidas
del problema.
2. Se crean archivos temporales para registrar las reglas a aplicar, los hechos y
las conclusiones o posibles diagnósticos.
3. Se leen los parámetros de cálculo e inferencia que serán usados al comparar
valores, y se establece la forma de intersección para variables difusas.
4. Si la opción seleccionada es la de diagnosticar, se buscan todas las reglas
aplicables según las categorías y elementos de diferenciación compatibles
con el caso. Si la opción seleccionada es la verificar una hipótesis, sólo se
buscan las reglas cuyo consecuente coincide con la hipótesis o aquellas que
pudieron dar origen a la misma. Todas las reglas aquí seleccionadas son
copiadas a un archivo temporal de reglas a aplicar o evaluar.
5. Se selecciona la próxima regla que debe ser evaluada.
6. Para las características probables de la regla, se distribuye equitativamente la
importancia relativa no asignada.
7. Se selecciona la próxima característica que debe ser evaluada de la regla (una
variable o una conclusión) y se consulta en la base de datos la información
que la define, es decir, su tipo, cantidad de etiquetas y rango de valores.
8. Si la característica que está evaluando es una variable definida por una serie
de valores, se calcula su grado de pertenencia.
96
9. Si la característica que está evaluando es una variable difusa y no se ha
seleccionado una etiqueta, sino que se ha suministrado un valor, se buscan las
etiquetas correspondientes.
10. Si la característica que está evaluando es una variable, se buscan las etiquetas
compatibles. En el caso de las variables difusas, se aplica la fórmula de
intersección definida en la tabla de parámetros de cálculo e inferencia. Para
las variables lingüísticas discretas, se lee tabla de compatibilidad asociada.
11. Se selecciona del archivo temporal el próximo hecho y se compara con la
característica que se está evaluando de la regla.
12. Si se cumplen las condiciones establecidas para la característica en la regla y
se trata de una característica definida como incompatible, entonces se
descarta la evaluación de dicha regla (ir a paso 18).
13. Si se cumplen las condiciones establecidas para la característica en la regla y
se trata de una característica definida como esencial, entonces se acumula la
evidencia del hallazgo y se continúa evaluando los hechos (paso 15).
14. Si se cumplen las condiciones establecidas para la característica en la regla y
se trata de una característica definida como probable, entonces se acumula la
evidencia del hallazgo según la importancia relativa de la característica y el
grado de posibilidad asignado a su grupo.
15. Si existen más hechos por evaluar para la característica actual, se continúa
con el próximo (paso 11).
16. Si faltan características por evaluar de la regla actual, se selecciona la
próxima (paso 7).
17. Cuando se ha terminado de evaluar la regla actual, se verifica si existe
suficiente evidencia para sustentar la conclusión, de ser así, se incorpora la
conclusión como un nuevo hecho en el caso, y/o se actualiza el archivo de
posibles diagnósticos y el nivel de inferencia para la conclusión.
18. Si faltan reglas por evaluar o existen nuevos hechos para el caso, entonces se
selecciona la próxima regla que debe ser evaluada (paso 5).
97
19. Una vez establecidos los posibles diagnósticos, se buscan las conclusiones
difusas relacionadas entre sí, y se aplica el método de Mamdani o Sugeno
según corresponda para buscar una conclusión definitiva y representativa de
todas ellas, esto último se logra aplicando la forma de agregación y de
precisar las salidas que fueron especificadas en la definición de la conclusión.
20. Los posibles diagnósticos o conclusiones se muestran ordenados en una tabla
según su posibilidad de ocurrencia. Las conclusiones difusas agregadas se
pueden visualizar junto a las conclusiones intermedias que le dieron origen.
El proceso de diagnóstico que se acaba de describir está representado
gráficamente en el siguiente diagrama de flujo (ver Fig. 4.15 en la siguiente página).
98
PROCESO DE DIAGNÓSTICO EN EL SHELL
Diagrama de Flujo
Comienzo
A
Base de Datos
El usuario registra los
datos y hechos del caso
Hechos
Copia a
archivos temporales
los datos y hechos
inciales
Arch. Temporal
Hechos
Selecciona para evaluar:
próximo hecho
o
hecho compatible
Compara:
antecedente de la regla
vs hecho seleccionado
D
Base de Datos
Lee parámetros de
cálculo e inferencia
SI
Parámetros de
Cálculo e
Inferencia
¿cumple
condiciones
y es incompatible?
NO
Base de Datos
Selecciona reglas
aplicables según
categorías y elementos
de diferenciación
¿cumple
condiciones y es
esencial?
Reglas
SI
NO
C
Arch. Temporal
Selecciona regla
para su evaluación
¿cumple
condiciones y es
probable?
Reglas a aplicar
Acumula
evidencia
SI
NO
B
Selecciona
antecedente de la regla
para su evaluación
¿existen más
hechos
compatibles?
SI
A
NO
B
NO
Determina importancia
relativa no asignada para
características probables
¿ha finalizado
evaluación de la
regla?
SI
Lee información
adicional de la
característica
(tipo, desde, hasta)
Base de Datos
¿se trata de una
nueva conclusión?
Variables y
Conclusiones
SI
Incorpora
nuevos hechos
en el sistema
NO
¿Es una variable de
tipo serie?
SI
Calcula grado
de pertenencia
NO
¿Es una variable
difusa y se tiene su
valor?
C
SI
¿faltan reglas por
evaluar o hay nuevos
hechos?
D
NO
SI
Busca etiquetas
Calcula salidas
agregadas y precisas
según método de
inferencia
Arch. Temporal
Conclusiones
NO
¿Es una variable?
SI
Busca etiquetas
compatibles
Muestra
conclusiones
según posibilidad
de ocurrencia
NO
Final
A
Fig. 4.15. Diagrama de Flujo del proceso de diagnóstico.
99
4.15. Datos Históricos de los Casos
Se dispone de una opción que permite el análisis estadístico de los casos
históricos a partir de las reglas que permiten su diagnóstico, con esta opción se puede
evaluar la idoneidad y exactitud de las reglas, a través de la evaluación individual de
sus antecedentes. Para cada regla se muestran los criterios de aplicabilidad y sus
antecedentes agrupados en tres categorías: características esenciales, características
probables, y características incompatibles. Adicionalmente se muestra la categoría
“otras características observadas” que incluye a los hechos registrados en los casos y
que no están presentes en la definición de la regla. Para cada característica,
independientemente de la categoría a la que pertenezca, se muestra el número de casos
en los cuales se ha verificado su presencia y el porcentaje de ocurrencia. La revisión
periódica de esta información sirve de base para realizar ajustes a las reglas o
comprobar su eficiencia.
100
5. Pruebas de la Solución
Desde la planificación misma de este Trabajo de Grado, se han realizado un
conjunto de pruebas y validaciones tendentes a garantizar la calidad del software
desarrollado. Las revisiones preliminares se centraron en el análisis de los
requerimientos y las particularidades de los problemas de diagnóstico. Las sucesivas
etapas del desarrollo fueron objeto de evaluaciones cíclicas y permanentes, por lo que
la validación del shell no debe entenderse como un hecho posterior e independiente de
su creación. En el siguiente diagrama se sintetizan las etapas del desarrollo y los
aspectos validados.
Problemas de
Diagnóstico
Explotación
del Sistema
Análisis y Diseño
Validación
Conceptual
Validación
Operacional
Validación
de
Resultados
Sistemas Expertos
Modelo
Conceptual
Validación
Lógica
Validación
Experimental
Desarrollo
de la solución
Implementación
Shell
Fig. 4.16. Diagrama de pruebas y validaciones.
Fuente: Elaboración Propia
La revisión de los problemas de diagnóstico fue fundamental para establecer las
necesidades y expectativas que definen los requerimientos del sistema. Esto implicó
contrastar aspectos del mundo real con las posibilidades que la arquitectura del
software ofrece. Los problemas de diagnóstico, en general, se deben considerar
complejos de allí la necesidad de limitar la forma y precisión de su representación,
para luego proceder a su solución. El modelo conceptual es el diseño propuesto a partir
las percepciones y juicios de valores de los involucrados en el desarrollo, allí se
101
terminaron de definir los objetivos que se debían lograr. Para alcanzar el diseño final
del modelo conceptual se requirió un proceso iterativo de validación, evaluándose
principalmente los siguientes aspectos:
•
Consistencia de la estructura de datos con los requerimientos de información
y los objetivos propuestos.
•
Adecuación a los estándares y normas para el diseño de Bases de Datos. Se
verificó el cumplimiento de la primera, segunda y tercera forma normal, es
decir, se evitó la información duplicada en las Bases de Datos y se comprobó
que cada atributo dependa completa y únicamente de su clave. Al mismo
tiempo se consideraron los factores velocidad para la consulta y actualización
de la información, además del factor facilidad de mantenimiento para los
archivos.
•
Distribución modular de los algoritmos y componentes de la aplicación,
según su especificación por función e interfaz. En la definición de los
módulos se procuró el equilibrio entre los factores de acoplamiento y
cohesión, esto implica la independencia entre ellos, sin perder de vista el
ideal de tener módulos con elementos que requieran pocas relaciones con
elementos de otros módulos.
•
Utilidad real de los algoritmos, esto es la capacidad y eficiencia para producir
los resultados esperados, la lógica aplicada y la complejidad de su
implementación, además del oportuno tratamiento de los errores.
•
Adecuación de los aspectos funcionales y estéticos de los algoritmos, rutinas
e interfaces al entorno de trabajo y a las estructuras de datos.
El desarrollo de la solución implicó la codificación o programación de las rutinas
y módulos que conforman al shell. La validación lógica [Landry, Malouin, Oral, 1983]
se refiere a las comprobaciones que determinan la precisión y adecuación del
desarrollo al modelo conceptual. La técnica de la caja blanca se refiere al conjunto de
102
pruebas destinadas a la validación lógica de los programas, es decir a la revisión de
sus detalles procedimentales, para verificar que su funcionamiento interno corresponde
a las especificaciones del diseño [Pressman, 1996]. Para la aplicación de esta técnica
se seleccionaron conjuntos de datos que pusieron a prueba los distintos caminos
lógicos en los programas, cada estructura condicional que implicará una bifurcación en
la ejecución fue probada en todas sus vertientes. Los ciclos o bucles fueron probados
tanto con valores probables como en sus extremos operacionales; se probaron los
ciclos simples y anidados. Se colocaron interrupciones en distintas partes de los
programas para realizar inspecciones y cotejar los valores de variables y acumuladores
con cálculos manuales realizados en paralelo. Se probaron las distintas estructuras de
datos, se examinó el contenido de las bases datos para las distintas operaciones. Se
utilizaron las herramientas de depuración del entorno de programación para detectar
errores. Los distintos módulos fueron probados individualmente, en la medida en que
se iban desarrollando, luego se integraron en la aplicación y se probaron en conjunto.
Durante la fase de codificación el énfasis de estas pruebas estuvo en:
•
Verificar la correspondencia del código escrito con el diseño de la aplicación.
•
Revisión de errores que pudieran surgir producto de la transcripción.
•
Seguimiento de los estándares de programación sugeridos para el lenguaje,
esto incluye márgenes, estilo de letras, identificación de los objetos, técnicas
de programación.
•
Conveniencia de los comentarios.
•
Uso apropiado de las variables, su declaración de tipo y alcance (local o
global).
Las pruebas de la caja negra son aquellas revisiones que se hacen empleando la
interfaz de los programas, están destinadas a comprobar la operatividad de la
aplicación, la existencia de las validaciones apropiadas, y la exactitud de las salidas
entre otros aspectos. Estas pruebas también se denominan pruebas funcionales. Una
103
vez desarrollado el shell se procedió a su validación en forma experimental, según sus
requisitos funcionales, se buscaron opciones faltantes o defectuosas, errores relativos a
las interfaces, y errores en la integridad de los datos. Se crearon sistemas expertos de
prueba, se definieron elementos para todas las categorías: variables, conclusiones,
reglas, usuarios, cuestionarios, etc. Se sometió a prueba cada una de las opciones
disponibles en el shell, se realizaron comprobaciones para los diferentes niveles de
seguridad, se intentó el uso de opciones no permitidas y acciones que provocaron
errores en la aplicación o prueba de malicia. Otros aspectos evaluados durante estas
pruebas fueron: rendimiento, tolerancia a fallas, y adecuación de los manuales.
Durante la validación experimental del shell, se realizaron pruebas especificas
para comprobar los siguientes aspectos:
•
Posibilidad de representar los distintos hechos y datos que caracterizan a los
problemas de diagnóstico mediante los tipos de variables y conclusiones
incorporadas.
•
Capacidad de representar el conocimiento necesario para alcanzar los
diagnósticos a través de la estructura de reglas definidas.
•
Capacidad de sugerir posibles diagnósticos cuando se suministran los datos
apropiados y suficientes.
•
Capacidad de verificar hipótesis.
•
Encadenamiento de conclusiones durante los procesos de inferencia (hacia
adelante en los procesos de diagnóstico, y hacia atrás durante la verificación
de hipótesis).
•
Adaptabilidad de los sistemas mediante el uso de los parámetros definibles
por los usuarios.
•
Acumulación de evidencia para ordenar los diagnósticos según su posibilidad
de ocurrencia.
•
Exactitud de la información estadística acumulada en los sistemas.
104
Una vez completado el desarrollo del shell, se sometió a pruebas mediante la
implementación de sistemas expertos simplificados para procesos de diagnóstico,
también se diseño e implementó un sistema experto, que se podría considerar de
mediana complejidad, para el diagnóstico de neumopatías o afecciones del sistema
respiratorio humano (especialidad médica de neumología). La información utilizada
para definir este sistema y para validar los resultados, fue obtenida de textos de la
especialidad y/o suministrada por los médicos consultados. Resulta prematuro asignar
un nivel de eficiencia al shell o a los sistemas implementados, sin embargo, las
pruebas hasta ahora realizadas han sido satisfactorias.
105
CONCLUSIONES
Con el presente Trabajo de Grado se planteó el diseño y programación de un
shell, destinado a permitir la implementación de sistemas expertos para ayudar en los
procesos de diagnóstico requeridos en diferentes disciplinas y ciencias. En tal sentido y
procurando dar cumplimiento a los objetivos inicialmente planteados, se desarrollaron
un conjunto de actividades de las cuales se extraen las siguientes consideraciones.
Para el diseño del shell se analizaron diferentes alternativas para la
representación, almacenamiento y procesamiento de los conocimientos aplicables en la
solución de los problemas de diagnóstico, encontrándose que en este caso en particular
la forma más conveniente para expresar dichos conocimientos es a través de reglas de
inferencia. En consecuencia, se estructuró una Base de Datos que permite la definición
y uso de sistemas expertos, cada uno de ellos con información y parámetros operativos
independientes. La estructura de datos fue dotada de índices que optimizan la
búsqueda y procesamiento de la información contenida en ella, es decir, el conjunto de
reglas que contienen los conocimientos específicos de cada materia, así como los
valores, signos, y síntomas que caracterizan a los problemas que se desean resolver.
Luego de haber analizado la naturaleza de los problemas que motivaron el
desarrollo de este shell, se evidenció la necesidad de incorporar mecanismos que
facilitaran la representación de porciones vagas e imprecisas de los conocimientos que
forman parte de los procesos de diagnóstico, a tal fin se recurrió a la lógica difusa, sin
limitar la solución a esta forma de trabajo, pues la utilización de elementos difusos
representa un esfuerzo adicional que no siempre está justificado y hasta puede resultar
contraproducente. Así, el diseño del shell combina el procesamiento de la información
precisa y de aquélla que contiene elementos de incertidumbre. Para permitir el
106
apropiado procesamiento de los hechos y datos de los problemas a resolver, se
programó un conjunto de rutinas que permiten la definición y control de variables de
los siguientes tipos: difusas, lingüísticas discretas, definidas por series de valores,
presente/ausente, numéricas libres, numéricas acotadas, alfanuméricas libres y
alfanuméricas acotadas. Para definir las etiquetas lingüísticas en las variables difusas,
se incorporaron las funciones de pertenencia más usuales: triangular, trapezoidal,
campana de Gauss, campana de Gauss combinada, campana generalizada, curva
sigmoidal, combinación sigmoidal, diferencia sigmoidal, curva en forma de S, curva
en forma de Z, y curva PI.
El diseño del shell permite la implementación de sistemas expertos que utilicen
concurrentemente procesos de inferencia tanto difusos como no difusos. Para las
conclusiones difusas se han incorporado los dos principales métodos de inferencia: el
método de Mamdani, y el método de Sugeno. Para determinar la compatibilidad entre
los conceptos aproximados o difusos se dispone de 12 alternativas o fórmulas que se
emplean para el cálculo de intersección entre las etiquetas lingüísticas. Para cada
conclusión difusa en la cual se deba precisar las salidas del proceso de inferencia, se
puede elegir una de las siguientes técnicas: centro de gravedad, centro de las sumas,
primer máximo, último máximo, medio máximo, y promedio ponderado.
El diseño del shell se basa en una interfaz gráfica, de funcionamiento sencillo y
similar a las principales aplicaciones comerciales para el sistema operativo Windows®.
Para controlar y limitar el acceso al shell y a la información en él contenida, se
implementó una estructura jerárquica de usuarios que restringe las opciones
disponibles en cada caso. Se simplificó el proceso de instalación del shell y de otros
componentes necesarios para su uso mediante el desarrollo de un programa de
instalación. Se documentó profusamente los aspectos técnicos y operativos del shell,
incluyéndose comentarios en los módulos y programas, además de elaborarse un
detallado manual del usuario y su equivalente en una versión de ayuda en línea
107
disponible desde la misma aplicación. La ayuda en línea corresponde a los estándares
de Windows® e incluye facilidades de búsqueda.
Para garantizar la calidad y operatividad del shell desarrollado, se aplicaron
pruebas correspondientes a las técnicas de la caja blanca y de la caja negra. Algunas
pruebas específicas se refirieron a la tolerancia a fallos, rendimiento del sistema en las
condiciones esperadas de uso, y adecuación de la documentación. La capacidad
operativa y utilidad práctica del shell se comprobó mediante la reproducción de
diversas situaciones en las que se puede utilizar un sistema experto para ayudar en los
procesos de diagnóstico. Se consultó a profesionales que realizan habitualmente
diagnósticos en su desempeño laboral, y las opiniones recibidas a cerca del shell
fueron mayoritariamente satisfactorias. Se definió y verificó el funcionamiento de un
sistema experto, relativamente complejo, para realizar diagnósticos en la especialidad
de neumología. Los resultados obtenidos durante las pruebas de este sistema experto
fueron contrastados con criterios médicos, encontrándose que los mismos se ajustaban
a la realidad de los casos, aunque esto no sea suficiente para establecer la idoneidad o
eficiencia del sistema experto implementado y menos aún del funcionamiento general
del shell.
Por todo lo antes expuesto, se estima que se han cumplido tanto los Objetivos
Específicos como el Objetivo General inicialmente planteado, es decir, se diseñó y
programó un conjunto de rutinas que conforman un shell, el cual permite implementar
sistemas expertos basados en lógica difusa, y destinados a ayudar en la solución de
problemas de diagnóstico, aún en casos de incertidumbre, situaciones que se presentan
en diversas ciencias y actividades del quehacer humano. Se puede considerar que el
principal aporte de este Trabajo de Grado ha sido mostrar la conveniencia de recurrir a
los Sistemas Expertos y la Lógica Difusa como forma práctica y eficiente de abordar la
solución de ciertos problemas.
108
RECOMENDACIONES
Los sistemas expertos de diagnóstico deben convertirse en una ayuda para que
los profesionales logren un mejor desempeño de sus funciones, deben contribuir a
sistematizar y profundizar los conocimientos de las disciplinas en las cuales se utilizan,
en tal sentido se recomienda su utilización asumiendo una actitud crítica y amplia, sin
permitir que las primeras respuestas fallidas de un sistema sean suficientes para
descartar su uso sin mayores indagaciones, así mismo, no debe el usuario aceptar por
válido ningún diagnóstico sugerido por el sistema, bajo el supuesto que el sistema ha
sido probado y las computadoras no se equivocan, en efecto, cada respuesta del
sistema debe ser entendida como una oportunidad de evaluar su funcionamiento y
mejorarlo en la medida de lo posible.
La Inteligencia Artificial constituye un importante y creciente campo de
investigación para las ciencias de la computación, por eso se recomienda su estudio,
aun cuando debe tenerse presente que ese nombre, más o menos genérico, se refiere a
temas muy diversos, que pueden ser extensos e incluso sobrepasar los niveles
académicos de exigencia para los estudiantes de pre-grado.
La Universidad Nacional Abierta por ofrecer una alternativa de educación a
distancia, constituye una extraordinaria oportunidad de formar profesionalmente a
personas que se encuentran inmersas en el campo laboral, cada una de ellas con
intereses y motivaciones diferentes, de allí que las Pasantías y Proyectos de Grado
pueden servir para conjugar dos importantes factores, conocimiento y experiencia, que
pueden ser orientados a la búsqueda de soluciones para problemas trascendentes de
nuestra sociedad.
109
BIBLIOGRAFÍA
Akdag H., Khoukhi F., Secroun C. (1993), Approximate Reasoning using Linguistic
Valuations, The eight International Symposium on Computer and Information,
Estambul, Turquía. (9).
__________ (1994), Approximate Reasoning using Logic-Symbolic Valuations, IUT
de Reims Leri, Reims, Francia, (6).
Ayoubi M., Isermann R. (1997), Neuro-fuzzy systems for diagnosis, Fuzzy Sets and
Systems, vol. 98, North-Holland, (19) pp. 289-307.
Babuška, R., Fanuzzi C., Kaymak U., Verbruggen H. (1996), Improved Inference
for Takagi- Sugeno Models, Fifth IEEE International Conference on Fuzzy
Systems, New Orleans (Louisiana), IEEE 0-7803-3645-3/96, The Institute of
Electrical and Electronics Engineers Inc., (6) pp.701-706.
Barr A., Feigenbaun E. (1981), The Handbook of Artificial Intelligence, AddisonWesley Publishing, USA.
Beers M., Berkow R. (1999), El Manual Merck de Diagnóstico y Tratamiento, 10ma.
Ed., Ediciones Harcourt S.A., Madrid.
Berner E., Webster G., Shugerman A., et al. (1994), Performance of four computerbased diagnostic systems, The New England Journal of Medicine, Junio 23, (5)
pp. 1792-1799.
Buchanan B., Shortliffe E. (1984), Rule-Based Expert Systems, Addison-Wesley
Publishing Company, Massachusetts, USA.
Buckley J., Siler W., Tucker D. (1986), A Fuzzy Expert System, Fuzzy Sets and
Systems, vol 20, North-Holland, (16) pp. 1-16.
Bunge M. (1983), La investigación científica, 2da Ed., Ariel Methodos, Barcelona.
Carlsson C., Fullér R. (1998), Optimization with linguistic variables, TUCS
Techinical Report 157, Turku Centre for Computer Science, (14) pp.
Castillo E., Álvarez E. (1989), Sistemas Expertos aprendizaje e incertidumbre,
Paraninfo, Madrid.
Castro J., Zurita J. (1995), An Inductive Learning Algorithm in Fuzzy Systems,
Technical Report 950116, Departamento de Ciencias de la Computación e
Inteligencia Artificial, Universidad de Granada, España.
Cayrac D., Dubois D., Prade H. (1996), Handling Uncertainty with Possibility
Theory and Fuzzy Sets in a Satellite Fault Diagnosis Applications, IEEE
110
Transaction on Fuzzy System, vol 4 nro 3, The Institute of Electrical and
Electronics Engineers Inc., (19) pp. 251-269
Chiclana F., Herrera F., Herrera E. (1996), Integrating Three Representation
Models in Fuzzy Multipurpose Decision Making Based on Fuzzy Preference
Relations, Technical Report 96106, Departamento de Ciencias de la Computación
e Inteligencia Artificial, Universidad de Granada, España.
Chiclana F., Herrera F., Herrera E., Poyatos M. (1995), A classification method of
alternatives for multiple preference ordering criteria based on fuzzy majority,
Technical Report 95115, Departamento de Ciencias de la Computación e
Inteligencia Artificial, Universidad de Granada, España.
Console L., Torasso P. (1988), A Logical Approach to Deal with Incomplete Causal
Models In Diagnostic Problem Solving, 2nd International Conference on
Information Processing and Management of Uncertainly in Knowledge-Based
Systems, Urbino, Italia, (10) pp. 255-264
Cordón O., Del Jesús M., Herrera F. (1997), A Proposal on Reasoning Methods in
Fuzzy Rule-Based Classification Systems, Technical Report 970126,
Departamento de Ciencias de la Computación e Inteligencia Artificial,
Universidad de Granada, España.
Davis R., Buchanan B., Shortliffe E. (1977), Production Rules as a Representation
for a Knowledge-Based Consultation Program, Artificial Intelligence, vol. 8,
North-Holland Publishing, (31) pp. 15-45.
Delgado M., Herrera F., Herrera E., Martínez L. (1996), Combining Numerical and
Linguistic Information in Group Decision Making, Technical Report 96115,
Departamento de Ciencias de la Computación e Inteligencia Artificial,
Universidad de Granada, España.
Dorffner G., Prem E., Mackinger M. et al. (en imprenta), Experiences with Neural
Networks as a Diagnostic Tool in Medical Image Processing, Department of
Medical Cybernetics and Artificial Intelligence, University of Vienna, (6).
Dubois D., Prade H. (1995), Towards Possibilistic Decision Theory, Lecture Notes in
Artificial Intelligence (LNAI), vol. 1188, Springer, (12) pp. 240-251.
__________ (1996), What are fuzzy rules and how to use them, Fuzzy Sets and
Systems, vol. 84, North-Holland, (17) pp. 169-185.
__________ (1999a), Fuzzy sets in approximate reasoning, part 1: Inference with
possibility distributions, Fuzzy Sets and Systems, vol. 100 supplement, NorthHolland, (60) pp. 73-132.
__________ (1999b), A selection of the most cited papers in Fuzzy Sets and Systems,
Fuzzy Sets and Systems, vol. 100 supplement, North-Holland.
111
Dussauchoy A., Chatain J. (1988), Sistemas Expertos: Métodos y Herramientas,
Paraninfo, Madrid.
Esogbue A. (1999), Fuzzy Dynamic Programming, Fuzzy Adaptive Neuro Control,
and the General Medical Diagnosis Problem, Computer and Mathematics with
Applications, vol. 37, Pergamon, (9) pp. 37-45.
Farggi D., LeBlanc M., Crowley J. (2001), Understanding neural networks using
regression trees: an application to multiple myeloma survival data, Statistics in
Medicine, vol. 20, John Wiley & Sons Ltd., (12) pp. 2965-2976.
Farrell J., Kandell A. (1997), A Fuzzy rule-based expert systems for marine
bioassessment, Fuzzy Sets and Systems, vol. 89, North-Holland, (8) pp. 27-34.
Farreras P., Rozman C. (1996), Medicina Interna, 13ava Ed., Mosby-Doyma libros
S.A., Barcelona, España.
Fernández-Bujarrabal J., García F. (2001), Asma, Ediciones Doyma S.L.,
Barcelona, España.
Fullér R. (1991), On the generalized method-of-case inference rule, Annales Univ.
Sci. Budapest, Sectio Computatorica, (7) pp. 107-113.
Fullér R., Werners B. (1991), The Compositional Rule of Inference: Introduction,
theoretical considerations, and exact calculation formulas, Institut für
Wirtschaftswissenschaften, Alemania.
__________ (1992), The Compositional Rule of Inference with Several Relations,
Math. Inst. Slovak Academy of Sciences, (5) pp. 39-44.
Fullér R., Zimmermann H. (1992), On computation of the compositional rule of
inference under triangular norms, Fuzzy Sets and Systems, vol. 51, NorthHolland, (9) pp. 267-275.
__________ (1993), On Zadeh´s Compositional Rule of Inference, Fuzzy Logic: State
of the Art, Kluwer Academic Publisher, (8) pp. 193-200.
Gamberger D., Lavrač N., Jovanoski V. (1999), High confidence association rules
for medical diagnosis, Annual Symposium of the American Medical Informatics
Association (AMIA), Washington D.C., (10) pp. 42-51.
Gierl, Pollwein, Schmidt (1999), Experiences with Case-Based Reasoning Methods
and Prototypes for Medical Knowledge-Based Systems, Springer-Verlag Berlin
Heidelberg.
Goldenberg K., Verdain H., Redding M. (1991), Manual de Pruebas de Diagnostico,
Salvat Editores S.A., España.
112
Goldman L., Cook F., Johnson P., et al. (1996), Prediction of the need for intensive
care in patients who come to emergency departments with acute chest pain, The
New England Journal of Medicine, June 6, (7) pp. 1498-1504.
Gorman G. (1998), A review of Fuzzy logic and its Applications, Information
Technology Centre NUIG, Israel.
Graham I. (1991), Fuzzy logic in commercial expert systems: Results and Prospects,
Fuzzy Sets and Systems, vol. 40, North-Holland, (22) pp. 451-472.
Gyenesei A. (2000), Mining Weighted Association Rules for Fuzzy Quantitative Items,
Technical Reports 346, Turku Centre for Computer Science, Turku, Finlandia..
Haack S. (1980), Lógica divergente, Paraninfo S.A., Madrid, España.
Hernández R., Fernández C., Baptista P. (1991), Metodología de la Investigación,
2da Ed., Mc Graw Hill, México.
Herrera E. (1995), Sistemas Clasificadores de Aprendizaje: Aproximaciones Difusas,
Trabajo de Doctorado, Departamento de Ciencias de la Computación e
Inteligencia Artificial, Universidad de Granada, España.
Herrera F., Herrera E. (1998), Linguistic Decision Analysis: Steps for Solving
Decision Problems under Linguistic Information, Technical Report 98104,
Departamento de Ciencias de la Computación e Inteligencia Artificial,
Universidad de Granada, España.
Herrera F., Herrera E., Verdegay J. (1994), A Model of Consensus in Group
Decision Making under Linguistic Assessments, Technical Report 94109,
Departamento de Ciencias de la Computación e Inteligencia Artificial,
Universidad de Granada, España.
__________ (1995), Consensus Based on Fuzzy Coincidence for Group Decision
Making in Linguistic Setting, Technical Report 95143, Departamento de Ciencias
de la Computación e Inteligencia Artificial, Universidad de Granada, España.
Herrera F., Martínez L. (1999), A 2-tuple Fuzzy Linguistic Representation Model
for Computing with Words, Technical Report 99102, Departamento de Ciencias de
la Computación e Inteligencia Artificial, Universidad de Granada, España.
Herrera F., Verdegay J. (1995), On Group Decision Making under Linguistic
Preferences and Fuzzy Linguistic Quantifiers, Technical Report 95133,
Departamento de Ciencias de la Computación e Inteligencia Artificial,
Universidad de Granada, España.
IEEE Std 829 (1998), IEEE Standard for Software Test Documentation, Software
Engineering Standards Committee of the IEEE Computer Society, The Institute of
Electrical and Electronics Engineers Inc., New York.
113
IEEE Std 830 (1998), IEEE Recommended Practice for Software Requirements
Specifications, Software Engineering Standards Committee of the IEEE Computer
Society, The Institute of Electrical and Electronics Engineers Inc., New York.
Kandel A. (1986), Fuzzy Mathematical Techniques with Applications, AddisonWesley Publishing Company, USA.
Kaufmann A. (1975a), Introduction a La Théorie des Sous-Ensembles Flous a
L’Usaqe des Ingénieurs, Masson et Cie Éditeurs, Paris.
__________ (1975b), Introduction to the Theory of Fuzzy Subsets, Academic Press,
New York.
Kernighan B., Plauger P. (1980), Elementos de estilo de programación, Editorial
Diana S.A., México.
Klir G., Folger T. (1988), Fuzzy Sets, Uncertainty, and Information, Prentice-Hall
International Editions, Londres.
Kock P. (1991), PC-range expert systems shells: Advantages and Problems, Fuzzy
Sets and Systems, vol. 41, North-Holland, (5) pp. 127-131.
Kuncheva L., Steimann F. (1999), Fuzzy Diagnosis (Editorial), Artificial Intelligence
in Medicine, vol. 16, Springer-Verlag, (8) pp. 121-128.
Landry M., Malouin J., Oral M. (1983), Model validation in operations research,
European Journal of Operational Research, vol. 14, (12) pp. 207-220.
Lazzerini B., Reynery L., Chiaberge M. (1999), A Neuro-Fuzzy Approach to Hibrid
Intelligent Control, IEEE Transactions on Industry Applications, vol. 35 nro. 2,
The Institute of Electrical and Electronics Engineers Inc., (6) pp. 413-418.
Lucas P. (1975), Introduction to the theory of fuzzy subsets, Academic Press, New
York.
__________ (1997), A Theory of Medical Diagnosis as Hypothesis Refinement,
Artificial Intelligence in Medicine, vol.1211, Springer-Verlag, (12) pp. 169-181
Mamdani E., Gaines B. (1981), Fuzzy Reasoning and its Applications, Academic
Press Inc., London.
Marín R. (en imprenta), La Abducción y los Factores Temporales en el Razonamiento
Médico, Dpto. Informática Inteligencia Artificial y Electrónica, Universidad de
Murcia, (22).
Marín R., Mira J. (1991), On knowledge-based fuzzy classifiers: A medical case
study, Fuzzy Sets and Systems, vol. 44, North-Holland, (10) pp. 421-430.
Martín P., Viejo J. (1998), Neumoclínica, Luzán 5 S.A de Ediciones, Madrid.
Mozetic I. (1990), Diagnostic efficiency of deep and surface knowledge in KARDIO,
Artificial Intelligence in Medicine, vol. 2, (17) pp. 67-83.
114
__________ (1991), Hierarchical Model-Based Diagnosis, International Journal of
Man-Machine Studies, vol. 35 nro. 3, (34) pp. 329-362.
Nauck D., Kruse R. (1997), A neuro-fuzzy method to learn fuzzy classification rules
from data, Fuzzy Sets and Systems, vol. 89, North-Holland, (12) pp. 277-288.
Negoita V. (1985), Expert Systems and Fuzzy Systems, The Benjamin/Cummings
Publishing Company Inc., Menlo Park, California.
Negrete J. (1991), Inteligencia Experimental en Computadores, 2da Ed., Editorial
Limusa S.A., México.
Neumomadrid (2003a), Revista de Patología Respiratoria, vol. 6, nro. 2, Ergon,
Madrid.
Neumomadrid (2003b), Revista de Patología Respiratoria, vol. 6, nro. 3, Ergon,
Madrid.
O’Leary D. (1988), Methods of Validating Expert Systems, Interfaces, vol. 18 nro. 6,
The Institute of Management Sciences, (8) pp. 72-79.
Pan J., DeSouza G., Kak A. (1998), Fuzzy Shell: A Large-Scale Expert System Shell
Using Fuzzy Logic for Uncertainty Reasoning, IEEE Transactions on Fuzzy
Systems, vol 6. nro. 4, The Institute of Electrical and Electronics Engineers Inc.,
(19) pp. 563-581.
Patil R., Szolovits P., Schwartz W. (1981), Causal Understanding of Patient Illness
in Medical Diagnosis, Seventh International Joint Conference on Artificial
Intelligence, Vancouver, Columbia Británica, (7) pp. 893-899.
Pauker S., Gorry A., Kassirer J., Schwartz W. (1976), Towards the Simulation of
Clinical Cognition: Taking a Present Illness by Computer, The American Journal
of Medicine, vol. 60, Boston, Massachusetts.
Peña C., Sipper M. (2000), Evolutionary computation in medicine: an overview,
Artificial Intelligence in Medicine, vol.19, Springer-Verlag, (23) pp. 1-23.
Pressman R. (1996), Ingeniería del Software Un enfoque Práctico, 3era Ed., Mc Graw
Hill, México.
Puppe B. (1995), Reflections on Building Medical Decision Support Systems and
Corresponding Implementation in Diagnostics Shells D3, University of
Wuerzburg, Department of Medicine, Germany.
Quine W. (1973), Filosofía de la lógica, Alianza Universidad, Madrid.
Reggia J., Nau D., Wang P. (1983), Diagnostic Expert Systems Based on a Set
Covering Model, International Journal of Man-Machine Studies, vol. 19, (24) pp.
437-460.
115
Roadknight C., Palmer D., Mills G. (1997), The Analysis of Artificial Neural
Network Data Models, Advances in Intelligent Data Analysis, vol. 1280, SpringerVerlag Berlin Heidelberg, (10) pp. 337-346.
Rolston D. (1992), Principios de Inteligencia Artificial y Sistemas Expertos, Mc Graw
Hill, México.
Roy M., Biswas R. (1992), I-v fuzzy relations and Sanchez´s approach for medical
diagnosis, Fuzzy Sets and Systems, vol. 47, North-Holland, (4) pp. 35-38.
Russell S., Norvig P. (1996), Inteligencia Artificial Un Enfoque Moderno, Prentice
Hall, México.
Sabino C. (1994), Cómo hacer una tesis, 3era Ed., Editorial Panapo, Caracas.
__________ (2002), El proceso de investigación, 2da Ed., Editorial Panapo de
Venezuela, Caracas.
Sánchez B., Guarisma J. (1985), Métodos de Investigación, Ediciones Universidad
Bicentenaria de Aragua, Maracay.
Schmidt R., Pollwein B., Gierl L. (1999), Experiences with Case-Based Reasoning
Methods and Prototypes for Medical Knowledge-Based Systems, AIMDM, vol.
1620, Springer-Verlag Berlin Heidelberg, (8) pp. 124-132
Shimura, Tanaka, Zadeh (1975), Fuzzy sets and theirs applications to cognitive and
decision processes, Academic Press, New York.
Shoham Y. (1988), Reasoning about change, The MIT Press, Londres.
Steimann F. (2001), On the use and usefulness of fuzzy sets in medical AI, Artificial
Intelligence in Medicine, vol. 21, (7) pp. 131-137.
Steimann F., Adlassnig K. (en imprenta), Fuzzy Medical Diagnosis, Institut für
Rechnergestüstzte Wissensverarbeitung, Universität Hannover, (16).
Sun R. (1996), Commonsense reasoning with rules, cases, and connectionist models:
A paradigmatic comparison, Fuzzy Sets Systems, vol. 82, North-Holland, (14)
pp.187-200.
Szolovits P., Pauker S. (1978), Categorical and Probabilistic Reasoning in Medical
Diagnosis, Artificial Intelligence, vol. 11, North-Holland Publishing, (30) pp. 115144.
Tanimoto S. (1990), The Elements of Artificial Intelligence using Common Lisp,
Computer Science Press, USA.
Tecuci G. (1998), Building Intelligent Agents, Academic Press Inc., San Diego
California.
Turksen I., Tian Y. (1993), Combination of rules or their consequences in fuzzy
expert systems, Fussy Sets and Systems, vol. 58, North-Holland, (38) pp. 3-40.
116
Ulieru M., Isermann R. (1993), Design of fuzzy-logic based diagnostic model for
technical processes, Fuzzy Sets and Systems, vol. 58, North-Holland, (23) pp.
249-271.
UNA (1983), Análisis y Diseño de Sistemas, 4ta. Reimpresión, Universidad Nacional
Abierta, Caracas, Cohen C.
__________ (1995), Documentación de Sistemas, 4ta. Reimpresión, Universidad
Nacional Abierta, Caracas, Cohen C.
__________ (2000), Manual de Proyecto de Grado (319), 3era Reimpresión,
Universidad Nacional Abierta, Caracas, Márquez L.
UPEL (1998), Manual de Trabajos de Grado de Especialización y Maestría y Tesis
Doctorales, Universidad Nacional Pedagógica Experimental Libertador, Caracas.
Widmer G., Horn W., Nagele B. (1993), Automatic Knowledge Base Refinement:
Learning from Examples and Deep Knowledge in Rheumatology, Artificial
Intelligence in Medicine, vol. 5 nro. 3, (19) pp. 225-243.
Witte R. (en imprenta), Fuzzy Belief Revision, Institute for Program Structures and
Data Organization, Faculty of Informatics, University of Karlsruhe, Alemania,
(10).
Wu T. (1988), Efficient Diagnosis of Multiple Disorders Based on a Symptom
Clustering Approach, Commonsense Reasoning, (8) pp. 357-364.
Yager R. (1997), Fuzzy logics and artificial intelligence, Fuzzy Sets Systems, vol. 90,
North-Holland, (6) pp.193-198.
Yeung D., Tsang E. (1997), Weighted fuzzy production rules, Fuzzy Sets and
Systems, vol. 88, North-Holland, (15) pp. 299-313.
Yourdon E. (1993), Análisis Estructurado Moderno, Prentice Hall Hispanoamericana
S.A., México.
Yue Z., Fengchi L., Fen S., Shounan B., Yunxiang P. (1991), A fuzzy production
rule expert system, Fuzzy Sets and Systems, vol. 44, North-Holland, (13) pp. 391403.
Zadeh L. (1978), Fuzzy sets as a basis for a theory of possibility, Fuzzy Sets and
Systems, vol. 1, North-Holland, (26) pp. 3-28.
Zadeh L. Fellow L. (2000), From Computing with Numbers to Computing with
Words–From Manipulation of Measurements to Manipulation of Perceptions,
Intelligent Systems and Soft Computing, Springer-Verlag Berlin Heidelberg, (38)
pp. 3-40.
Zadeh L., Fu K., Tanaka K., et al. (1975), Fuzzy Sets and their Applications to
Cognitive and Decision Processes, Academic Press Inc., New York.
117
ANEXOS
ANEXO A
DEFINICIONES Y CONCEPTOS BÁSICOS
Este anexo se incorporó para facilitar la lectura del informe, en él se incluyen,
ordenadas alfabéticamente, las principales definiciones que aparecen en diversos
capítulos. Se recomienda la revisión de estas definiciones cuando se haga referencia a
ellas, o cuando queden dudas sobre el significado que estas puedan expresar en el
contexto dado.
Definición II.14. (α-corte). Un α-corte de un conjunto difuso A, es un conjunto
no difuso Aα que contiene todos los elementos del universo de discurso X, tales que su
grado de pertenencia al conjunto A sea mayor o igual al valor especificado de α. Esta
definición puede ser escrita como
Aα = {x ∈ X μ A (x) ≥ α }
Definición II.31. (Agregación). Es un proceso que permite combinar los
conjuntos difusos, que representan las salidas de reglas, para formar un solo conjunto.
Existen varias formas de agregación, por ejemplo tomar el máximo de cada categoría,
el método “o probabilístico”, o simplemente tomar la suma de cada conjunto de
salida.
Definición II.1. (Ambigüedad). Se refiere a lo que puede entenderse de varios
modos o admitir distintas interpretaciones y dar por consiguiente motivo a dudas,
incertidumbre o confusión. Lo ambiguo es: Incierto, dudoso o poco claro. En lo
concerniente a la lógica difusa, ambiguo y difuso no son términos equivalentes.
1
Definición II.28. (Antecedente). Es una condición que precede al estado actual
de un modelo. En los sistemas basados en reglas, se refiere a las premisas o variables
que se evalúan para tomar una decisión. Es el primero de dos términos de una
relación de implicación, por oposición a consecuente.
Definición II.19. (Complemento de un número difuso). El complemento de
un conjunto difuso A es especificado por la función c : [0,1] → [0,1] la cual asigna un
valor c(μ A ( x) a cada grado de pertenencia μ A (x) . Este valor asignado corresponde
al grado de pertenencia a la negación del concepto representado por A, para el
elemento x. Existen formas especiales de complemento para los conjuntos difusos,
por ejemplo los complementos del tipo Sugeno, y los del tipo Yager, que se definen
así:
cλ ( a ) =
1− a
, donde λ ∈ ( −1, ∞ )
1 + λa
c w ( a ) = (1 − a w )1 / w , donde w ∈ ( 0, ∞ )
Complemento tipo Sugeno
Complemento tipo Yager
Definición II.26. (Composición). La composición de dos relaciones binarias
P(X,Y) y Q(Y,Z), se define como un subconjunto R(X,Z) de X × Z tal que ( x, z ) ∈ R si
y sólo si existe por lo menos un y ∈ Y tal que (x, y ) ∈ P y ( y, z ) ∈ Q . Dadas las
relaciones binarias P, Q, R, su composición ( o ) debe satisfacer las siguientes tres
propiedades:
PoQ ≠ Qo R
(P o Q )−1 = Q −1 o P −1
(P o Q) o R = P o (Q o R)
Definición II.10. (Conjunto difuso). Son conjuntos en los que se asigna a cada
elemento del universo del discurso un valor que representa su nivel de pertenencia a
esa categoría, es decir, su similitud o compatibilidad con el concepto que representa
2
el conjunto difuso. Normalmente, el grado de pertenencia a un conjunto difuso es un
número real comprendido en el intervalo cerrado entre 0 y 1, donde 0 indica “no
pertenece al conjunto” y valores superiores expresan niveles crecientes de
aproximación al concepto representado. Los conjuntos discretos pueden ser
considerados como casos particulares de los conjuntos difusos, pues la absoluta
pertenencia o no pertenencia al conjunto, se logra al asignar al grado de pertenencia
los valores extremos del intervalo [0,1].
Definición II.15. (Conjunto difuso convexo). Un conjunto difuso A es
convexo si y sólo si todos sus α-cortes son convexos, es decir, el mismo debe
cumplir con la siguiente condición:
μ A (λr + (1 − λ )s ) ≥ min[μ A (r), μ A (s)] , para todo r, s ∈ℜ , y para todo λ ∈ [0,1]
Definición II.16. (Conjunto difuso normalizado). Un conjunto difuso se
denomina normalizado, cuando al menos uno de sus elementos tiene el mayor grado
de pertenencia posible, normalmente igual a 1.
Definición II.11. (Elementos de un conjunto). Un conjunto puede ser descrito
enumerando los elementos que lo constituyen (método por extensión) o mediante la
especificación de las propiedades que deben poseer sus elementos (método por
comprensión). La definición de conjuntos a través del método por extensión sólo es
aplicable a conjuntos finitos. El conjunto V, cuyos miembros son las letras vocales
del alfabeto español, se suele representar de la siguiente forma:
V={a,e,i,o,u}
Según el método por extensión
V={v | v es una vocal del alfabeto español}
donde el símbolo | denota “tal que”
Según el método por comprensión
Definición II.33. (Encadenamiento hacia atrás). El encadenamiento hacia
atrás (Backward Chaining), es una técnica usada en procesos de inferencia. Consiste
3
en tomar un dato como consecuente y buscar en la base de conocimientos los posibles
antecedentes, es muy útil para verificar hipótesis.
Definición II.34. (Encadenamiento hacia adelante). El encadenamiento
hacia adelante (Forward Chaining) es una técnica de inferencia que comienza con los
datos conocidos y aplica el modus ponens sucesivamente hasta obtener los resultados
correspondientes, suele ser útil cuando se dispone de una gran cantidad de datos que
deben ser examinados.
Definición II.4. (Fórmula lógica). Son expresiones algebraicas compuestas de
variables lógicas, y de las funciones negación, conjunción y disyunción.
Definición II.3.(Función lógica). Son las operaciones que permiten obtener
variables lógicas a partir de otras o por combinación de sus valores.
Definición II.12. (Grado de pertenencia). La pertenencia de cada elemento x
del universo de discurso X ( x ∈ X ) a un determinado conjunto A. Se puede expresar
mediante una función característica μ. Para un conjunto discreto A, la función
característica asigna un valor a cada elemento ( x ∈ X ) tal que:
⎧1 si y sólo si x ∈ A ⎫
⎬,
⎩0 si y sólo si x ∉ A⎭
μ A ( x) = ⎨
Así
μ A : X → {0, 1}
La función característica puede ser generalizada para los conjuntos difusos, ya
no limitándose a asumir los valores extremos 0 y 1, y se denomina función de
pertenencia. Para un universo de discurso X, la función de pertenencia μ asociada a un
conjunto difuso A, generalmente es de la forma:
4
μ A : X → [0, 1], donde [0, 1] denota el intervalo de números reales de 0 a 1,
ambos inclusive
Definición II.21. (Intersección de conjuntos difusos). La intersección entre
dos conjuntos difusos A y B es definida por una función que toma por argumento el
grado de pertenencia de cada elemento x del conjunto universal X a los conjuntos A y
B, y le calcula el grado de pertenencia a la intersección de ambos. De manera general,
esta función se escribe
μ A∩B ( x) = i[μ A ( x), μ B ( x)] , siendo la función de la forma i : [0,1]× [0,1] → [0,1]
Definición II.29. ( Método de Mamdani).
También conocido como el
método “mín-implicación”. Es la forma de inferencia difusa más usada, fue propuesto
en 1975 por el Prof. Ebrahim Mamdani de la Universidad de Londres, quien es el
autor de uno de los primeros sistemas de control difuso, su modelo controlaba una
turbina activada por una caldera de vapor. Las principales ventajas de este método
son: uso intuitivo, amplia aceptación, apropiado para el uso con lenguajes naturales.
Definición II.30. (Método de Sugeno). El método Sugeno o método TakagiSugeno-Kang, es una forma simple de lograr inferencia difusas, fue propuesto en
1985 por el Prof. Michio Sugeno. Las principales ventajas del método son su
eficiencia al realizar los cálculos y la continuidad de sus soluciones. Resulta
apropiado para: técnicas lineales, técnicas de adaptación, optimización y análisis
matemático.
Definición II.8. (Modus ponens). Es una forma de inferencia basada en el uso
de tautologías como reglas. Se examina la premisa de la regla, y si es cierta, entonces
se infiere la conclusión. Estas inferencias son de la forma: si a es cierto, entonces b, y
5
además se sabe que a es cierto, luego se puede concluir que b es cierto. En forma
simbólica
((a ⇒ b) ∧ a) ⇒ b
Definición II.9. (Modus tollens). Es una forma de inferencia basada en el uso
de tautologías como reglas. Se examina la conclusión de la regla, y si es falsa, se
concluye que la premisa también es falsa. Por ejemplo: se tiene la regla “si a es
cierto, entonces b es cierto”, y se sabe que b es falso, por la aplicación del modus
tollens, se concluye que a también debe ser falso, conclusión que no se puede obtener
aplicando el modus ponens, ya que no se conocen los valores de la premisa. En forma
simbólica
((a ⇒ b ) ∧ b ) ⇒ a
Definición II.17. (Número difuso). Un número difuso es un subconjunto de
valores reales pertenecientes en algún grado a un conjunto difuso, y caracteriza a una
distribución de posibilidades en un universo de discurso. Un conjunto difuso,
convexo y normalizado, definido en ℜ , y con función de pertenencia continua, se
denomina un número difuso o intervalo difuso. La distribución de posibilidades
queda definida por la función de pertenencia utilizada. Algunas formas de
distribución utilizadas para valores difusos son: triangular, trapezoidal, curvas π,
campana generalizada, curvas de Gauss, curvas polinomiales.
Definición II.18. (Operaciones básicas de conjuntos difusos). La teoría original de
los conjuntos difusos fue formulada a partir de tres operaciones básicas:
complemento, unión, e intersección. Cuando el grado de pertenencia corresponde al
intervalo cerrado entre 0 y 1, estas operaciones se definen así:
μ A ( x) = 1 − μ A ( x)
Complemento
μ A ∪ μ B ( x) = máx[μ A ( x), μ B ( x)]
Unión
6
μ A ∩ μ B ( x) = mín[μ A ( x), μ B ( x)]
Intersección
Definición II.32. (Precisar). Es el proceso de asignar un valor específico y
representativo de una variable lingüística difusa. Existen varias formas de efectuar
este proceso, siendo la más popular el método del centroide o centro de gravedad,
otros de bastante aceptación son: el medio del máximo, el mayor del máximo, el
menor del máximo, y el bisector.
Definición II.24. (Producto cartesiano). El producto cartesiano de dos conjuntos X
y Y, denotado por X × Y , es el conjunto de todos los pares ordenados tales que el
primer elemento de cada par pertenece a X, y el segundo elemento pertenece a Y.
Simbólicamente, el producto cartesiano se escribe
X × Y = {(x, y ) x ∈ X , y ∈ Y }
El concepto de producto se puede generalizar a más de dos conjuntos, en cuyo
caso lo importante es mantener el orden de los elementos involucrados.
Definición II.27. (Regla difusa). Es una estructura lógica de la “si x es A, entonces y
es B”, donde A y B son valores lingüísticos definidos por conjuntos difusos en sus
rangos o universos de discurso X e Y, respectivamente. Siendo “x es A” la premisa o
antecedente, e “y es B” el consecuente o conclusión. Interpretar una de estas reglas
implica dos pasos distintos, lo primero es evaluar el antecedente, lo que incluye
difuminar (fuzzifying) las entradas. Lo segundo es la implicación o aplicar el resultado
del antecedente al consecuente, lo que en esencia es evaluar la función de
pertenencia.
Definición II.6. (Regla de inferencia). Las reglas de inferencia, son tautologías que
pueden ser utilizadas para hacer inferencias deductivas. Permiten dada una teoría
7
deductiva llegar a la verdad de una proposición a partir de una o varias proposiciones
tomadas como hipótesis.
Definición II.25. (Relación de conjuntos). Es la presencia o ausencia de asociación,
interacción o interconexión entre elementos de dos o más conjuntos. Así, una relación
difusa se define como el producto cartesiano de conjuntos no difusos X1,X2,...,Xn,
donde cada grupo de elementos (x1,x2,...,xn) puede tener distintos grados de
pertenencia según la relación.
Definición II.23. (S-norma). Una S-norma o T-conorma, es un conjunto de
condiciones mínimas que se exigen al definir funciones. Toda función f, que defina
una unión para números difusos debe satisfacer lo siguiente:
•
(a,b)=f(b,a); es decir, la función debe ser conmutativa.
•
f(f(a,b),c)= f(a,f(b,c)); es decir, la función debe ser asociativa.
•
Si a<b y c<d entonces f(a,c) ≤f(b,d); lo que implica que debe ser monótona.
•
f(0,0)=0; f(0,1)= f(1,0)= f(1,1)=1
Definición II.7. (Silogismo). Palabra derivada del vocablo latino Syllogĭsmus, y
éste del vocablo griego sullogismÕj, es un razonamiento que contiene tres
proposiciones (mayor, menor y conclusión), tal que la conclusión es deducida de la
mayor por medio de la menor. Por ejemplo: todos los hombres son mortales
(proposición mayor); todo los griegos son hombres (proposición menor); luego todos
los griegos son mortales (conclusión). El ejemplo anterior (silogismo hipotético) se
puede escribir así, “si a implica b, y b implica c, entonces a implica c” o
simbólicamente:
((a ⇒ b) ∧ (b ⇒ c)) ⇒ (a ⇒ c);
donde ⇒ es unaimplicació
n, y ∧ una conjunción
.
8
Definición II.13. (Soporte de un conjunto difuso). Se define como soporte de
un conjunto difuso (“support of a fuzzy set”) A en el universo de discurso X, a un
conjunto no difuso que contiene todos los elementos de X con grado de pertenencia
diferente de cero en A, es decir,
supp A = {x ∈ X μ A ( X ) > 0}
Definición II.5.(Tautología). Cuando el valor de una fórmula lógica es siempre
verdadero e independiente de los valores asignados a sus variables se denomina una
tautología.
Definición II.22. (T-norma). Una T-norma o norma triangular es un conjunto
de condiciones mínimas que se exigen al definir funciones. Toda función f que defina
una intersección para números difusos debe satisfacer lo siguiente:
•
(a,b)=f(b,a); es decir, la función debe ser conmutativa.
•
f(f(a,b),c)= f(a,f(b,c)); es decir, la función debe ser asociativa.
•
Si a<b y c<d entonces f(a,c) ≤f(b,d); lo que implica que debe ser monótona.
•
f(1,1)=1; f(0,1)= f(1,0)= f(0,0)=0
Definición II.20. (Unión de conjuntos difusos). La unión de dos conjuntos
difusos A y B es definida por una función que toma por argumento el grado de
pertenencia de cada elemento x del conjunto universal X a los conjuntos A y B, y le
calcula el grado de pertenencia a la unión de ambos. De manera general, esta función
se escribe
μ A∪B ( x) = u[μ A ( x), μ B ( x)] , siendo la función de la forma u : [0,1]× [0,1] → [0,1]
Definición II.2. (Universo de discurso). Es la colección, discreta o continua,
de todos los posibles elementos de un determinado conjunto, generalmente se denota
por la letra U.
9
10
Descargar