Sistemas expertos

31
FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN SISTEMAS EXPERTOS: PROGRAMANDO LOS CONOCIMIENTOS DE UNA PERSONA Autor: José Luis Quepuy Ternero Curso: Metodología del Trabajo Intelectual Profesor: Gerardo Raúl Chunga Chinguel Semestre Lectivo: 20140 Chiclayo Perú Febrero, 2014 1

description

El objetivo de este trabajo es dar a conocer, mediante una precisa descripción, lo que son los Sistemas Expertos (SE); los cuales son conocidos también como Sistemas Basados en Conocimiento.

Transcript of Sistemas expertos

Page 1: Sistemas expertos

FACULTAD DE INGENIERÍAESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

SISTEMAS EXPERTOS: PROGRAMANDO LOSCONOCIMIENTOS DE UNA PERSONA

Autor: José Luis Quepuy Ternero

Curso: Metodología del Trabajo IntelectualProfesor: Gerardo Raúl Chunga Chinguel

Semestre Lectivo: 2014­0

Chiclayo ­ PerúFebrero, 2014

1

Page 2: Sistemas expertos

DEDICATORIA

El presente trabajo va dedicado al notableesfuerzo de mi madre, de mi tío y mis abuelos.A ellos les debo lo que soy, por haber hecho de miuna persona íntegra y de grandes valores.

AGRADECIMIENTO

A Dios, que es mi fortaleza, por poner en mi vidaa estos ángeles terrenales llamados "amigos".

A los grandes maestros que he conocidodurante mi vida profesional, el cual aún no culmina.A mis mágicas princesas que, con sus sonrisas,

me devolvían el aliento para continuar.Y, en especial, a mi señorita enamorada: Paola,

por los ánimos y su apoyo siempre.

A estos seres “thanks so much”.

2

Page 3: Sistemas expertos

RESUMEN

El objetivo de este trabajo es dar a conocer, mediante una precisa descripción, lo que son los Sistemas Expertos (SE); los cuales son conocidos también como Sistemas Basados en Conocimiento. Pues, se basan en conocimientos propios que tiene un profesional en determinada área. Así mismo, mostrar brevemente los orígenes, conceptos, aplicaciones, ventajas, limitaciones, y la arquitectura básica de este campo de la Inteligencia Artificial.

Como conclusión más resaltante, los Sistemas Expertos son software inteligentes, pues almacenan los conocimientos de un “experto humano” para, posteriormente, usarlo en la solución de un problema emergente.

Palabras clave: Sistemas Expertos, Base de Conocimientos, Base de Hechos, Motor deInferencia, Inteligencia Artificial.

3

Page 4: Sistemas expertos

ÍNDICE

DEDICATORIA 2

AGRADECIMIENTO 2

RESUMEN 3

ÍNDICE 4

INTRODUCCIÓN 5

CAPÍTULO I: Fundamentos sobre los Sistemas Expertos 61.1. Breve Historia de los Sistemas Expertos 61.2. Definición de Sistema Experto 81.3. Clasificación de Sistema Experto 91.4. Arquitectura de un Sistema Experto 101.5. Características propias de un Sistema Experto 13

CAPÍTULO II: Implementación y Ejemplos de un Sistema Experto 152.1. Aplicaciones de un Sistema Experto 152.2. ¿Cómo desarrollar un Sistema Experto? 162.3. ¿Cómo programar un Sistema Experto? 182.4. Ejemplos de Reglas en los SE 22

2.4.1. Ejemplo 1, por definición de datos 222.4.2. Ejemplo 2, por definición de reglas 232.4.3. ¿Cómo buscan los sistemas expertos? 242.4.4. Ejemplo de búsqueda primero en profundidad 24

CAPÍTULO III: Ventajas, desventajas y limitaciones de un Sistema Experto263.1. Ventajas de un Sistema Experto 263.2. Desventajas de un Sistema Experto 273.3. Limitaciones de un Sistema Experto 27

CONCLUSIONES 29

REFERENCIAS BIBLIOGRÁFICAS 30

4

Page 5: Sistemas expertos

INTRODUCCIÓN

En la actualidad el cambiante mercado competitivo se vuelve más complejo por la gran diversidad de información que las empresas se ven obligados a almacenar y analizar, razón por la cual estas empresas se ven en la necesidad de recurrir a poderosas y robustas herramientas o sistemas que les sirvan de soporte a la hora de tomar decisiones. Es así como nacen los denominados Sistemas Expertos, los cuales tienen la finalidad de brindar posibles soluciones a determinados casos con un elevado porcentaje de exactitud. De esta forma estos inteligentes, precisos y eficientes sistemas son adoptados por más organizaciones, en las cuales se convierten en una importante estrategia de negocio.

Este trabajo está organizado de la siguiente forma: En el primer capítulo hablaremos brevemente sobre cómo, a lo largo de la historia, nace este término. Por lo que definiremos lo que es un sistema experto, cómo se clasifican, cuál es su arquitectura y características más resaltantes. El segundo capítulo describe las aplicaciones en que se puede aprovechar un sistema experto, cómo desarrollar y cómo llegar a programarlos. Para este último, se muestran sencillos ejemplos de aplicación lógica y uno práctico. El tercer y último capítulo describe las ventajas, desventajas y limitaciones de todo Sistema Experto.

Por otra parte es importante mencionar que, los denominados Sistemas Expertos, seguirán siendo usados en todas y cada una de las áreas y/o campos, donde los expertos humanos sean escasos. Por consecuencia de lo anterior, estos sistemas son utilizados por personas no especializadas; por lo que, a su vez, les permite adquirir conocimientos.

5

Page 6: Sistemas expertos

CAPÍTULO I: Fundamentos sobre los Sistemas Expertos

Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que una máquina de computadora jugará ajedrez, demostrara teoremas matemáticos, genere probabilidades estadísticas, etc.

No fue hasta los años 70 en que surgió un nuevo paradigma en la Inteligencia Artificial “los Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada, pero la idea no es sustituir a los expertos; sino, más bien, que estos sistemas sirvan de apoyo a los especialistas en un “dominio” de aplicación específica.1

1.1. Breve Historia de los Sistemas Expertos

Los Sistemas Expertos nacen como consecuencia de la Inteligencia Artificial. El cual es un software que imita el comportamiento de un experto humano en la solución de un problema; y que además, pueden almacenar conocimientos de expertos para un campo determinado y solucionar un problema mediante deducción lógica de conclusiones.2

Para un mejor entendimiento de lo que es un SE, se ha creído conveniente dar a conocer de manera muy resumida, el cómo se ha desarrollado esta nueva tecnología a lo largo de la historia.

Los Sistemas Expertos han evolucionado según el orden siguiente:

­ A inicios de los años 50 ya se hablaba de Máquinas (computadoras) con inteligencia propia, con la capacidad de aprender, razonar y actuar en determinadas situaciones. Es así como el matemático británico Alan Mathison Turing, después de varios años de estudios en este campo, publicó “La Inteligencia y funcionamiento de las máquinas”, en 1950, con el fin de demostrar hasta qué punto las máquinas contaban con inteligencia. Ese mismo año, un notable matemático estadounidense, Norbert Wiener, desarrollaría el principio de la retroalimentación. La cual es base fundamental de los sistemas de control.

1 Alejandro Madruga. Soy un cibernético, «¿Que es un sistema experto?».http://cibernetica.wordpress.com/2007/03/09/%c2%bfque­es­un­sistema­experto/. (accedido enero 18, 2014)

2 José Criado Briz. Ingenieros en Informática, «Introducción a los sistemas expertos».http://ingenieroseninformatica.org/recursos/tutoriales/sist_exp/cap1.php. (accedido enero 06, 2014)

6

Page 7: Sistemas expertos

­ Años más adelante, en 1955, Newell y Simon desarrollan la Teoría de la lógica. Cuyo desarrollo permitió crear un programa que exploraba la solución a un problema, utilizando ramas y nudos, seleccionando únicamente las ramas que más parecían acercarse a la solución correcta del problema.

­ Luego, en 1956, un joven John McCarthy convocaría a una conferencia en Dartmouth. En donde, este mismo personaje, acuñó allí el término “Inteligencia Artificial”. A esta conferencia asistieron también Minsky, Newell y Simon; personajes quienes más adelante aportarían con grandes conocimientos en esta nueva área de la informática.

­ En 1957, durante esta década los investigadores Alan Newell y Herbert Simon desarrollaron un programa llamado GPS (General Problem Solver; solucionador general de problemas), el cual podía trabajar con criptoaritmética, con las torres de Hanói y con otros problemas similares. Pero lo que no podía hacer el GPS era resolver problemas del mundo real, tales como un diagnóstico médico.

­ Posteriormente, en 1958, McCarthy anuncia su nuevo desarrollo, el lenguaje LISP (LISt Processing). El lenguaje de elección para todos aquellos desarrolladores inmersos en el estudio de la IA.

­ A partir de 1965, un equipo dirigido por Edward Feigenbaum, comenzó a desarrollar SE utilizando bases de conocimiento definidas minuciosamente. Dos años más tarde se construye DENDRAL, el cual es considerado como el primer SE. La función de dicho SE era identificar estructuras químicas moleculares a partir del análisis espectrográfico.

­ Junto a esto, en 1970, se produce el advenimiento de los Sistemas Expertos. Desde entonces los Sistemas Expertos se han utilizado para ayudar a los médicos a diagnosticar enfermedades e informar a los mineros a encontrar vetas de mineral.

­ Luego, en 1972, aparece el lenguaje PROLOGUE basado en las teorías de Minsky. Orientado también al desarrollo de IA.

­ Finalmente, en 1987, Martin Fischles y Oscar Firschein describieron los atributos de un agente inteligente. Los cuales debían tener, lo siguiente:

Actitudes mentales tales como creencias e intenciones. Capacidad de obtener conocimiento, es decir, aprender. Puede resolver problemas, incluso particionando problemas complejos en otros

más simples. Entiende. Posee la capacidad de crearle sentido, si es posible, a ideas ambiguas

o contradictorias. Planifica, predice consecuencias, evalúa alternativas (como en los juegos de

ajedrez).

7

Page 8: Sistemas expertos

Conoce los límites de su propias habilidades y conocimientos. Puede distinguir a pesar de las similitud de las situaciones. Puede ser original, creando incluso nuevos conceptos o ideas, y hasta utilizando

analogías. Puede generalizar. Puede percibir y modelar el mundo exterior. Puede entender y utilizar el lenguaje y sus símbolos.

­ En los 90’, la IA se utilizaría de forma efectiva en la Guerra del Golfo sobre sistemas de misiles visores para los soldados y otros avances, y al mismo tiempo, invade nuestros hogares y vida cotidiana en muchos más lugares.

Desde entonces, se han ido investigando y desarrollando nuevas formas de aprovechar los SE. Por lo que, diremos que la IA, es una nueva tecnología emergente y en expansión. La cual posee características humanas, como el aprendizaje, la adaptación, el razonamiento, la autocorrección, el mejoramiento implícito, y la percepción modular del mundo.

1.2. Definición de Sistema Experto

De manera general, decimos que:

“Un sistema experto puede definirse como un sistema basado en los conocimientos que imita el pensamiento de un experto, para resolver problemas de un terreno particular de aplicación”.

En la literatura existente se pueden encontrar muchas definiciones de sistema experto. Por ejemplo, Stevens (1984), página 40, nos da la definición siguiente:

“Los sistemas expertos son máquinas que piensan y razonan como un experto lo haría en una cierta especialidad o campo. Por ejemplo, un sistema experto en diagnóstico médico requeriría como datos los síntomas del paciente, los resultados de análisis clínicos y otros hechos relevantes, y, utilizando estos, buscaría en una base de datos la información necesaria para poder identificar la correspondiente enfermedad.[...] Un Sistema Experto de verdad, no solo realiza las funciones adicionales de manejar grandes cantidades de datos, sino que también manipula esos datos de forma tal que el resultado sea inteligible y tenga significado para responder a preguntas incluso no completamente especificadas.”.

Aunque lo anterior no es todavía una definición razonable de un sistema experto, han

8

Page 9: Sistemas expertos

surgido desde entonces otras definiciones, debido al rápido desarrollo de la tecnología. Como es el caso de Castillo y Álvarez (1991) y Durkin (1994). El sentido de estas definiciones puede resumirse como sigue:

“Un sistema experto puede definirse como un sistema informático (hardware y software) que simula a los expertos humanos en un área de especialización dada.

Como tal, un sistema experto debería ser capaz de procesar y memorizar información, aprender y razonar en situaciones deterministas e inciertas, comunicar a los usuarios, tomar decisiones apropiadas, y explicar el por qué se han tomado tales decisiones”.3

Por lo que, estos sistemas expertos son en lo esencial sistemas de computación basados en conocimientos cuyos componentes representan un enfoque cualitativo de la programación. Muchas personas pueden creer que un Sistema Experto (SE) es un sistema compuesto por subsistemas y a su vez estos por otros subsistemas hasta llegar a los programas, y que los SE se miden por la cantidad de programas que contienen. Sin embargo, la cantidad no es lo que prima en los SE, sino la cualidad del mismo, esta cualidad está dada por la separación de las reglas que describen el problema (Base de Conocimientos), del programa de control que es quien selecciona las reglas adecuadas (Motor de inferencias).4

En resumen, podemos decir que un Sistema Experto es una Base de Conocimientos (BC), una Base de Hechos (BH) y un Motor (o Máquina) de Inferencias (MI). Y por otra parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su Base de Conocimientos. Dichas deducciones, las definiremos al detalle en el apartado 2.3 Arquitectura.

1.3. Clasificación de Sistema Experto

Principalmente los sistemas expertos, según la naturaleza de problemas para los que están diseñados, pueden clasificarse en dos tipos: problemas esencialmente deterministas y problemas esencialmente estocásticos.

Problemas de tipo determinista, son aquellos sistemas completamente predictivos,

3 Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad deCantabria, Santander, España, 1998), 3 ­ 4.

4 Alejandro Madruga. Soy un cibernético, «¿Que es un sistema experto?».http://cibernetica.wordpress.com/2007/03/09/%c2%bfque­es­un­sistema­experto/. (accedido enero 18, 2014)

9

Page 10: Sistemas expertos

pero siempre y cuando se conozcan sus entradas. Por lo que, pueden ser formulados usando un conjunto de reglas que relacionan varios objetos bien definidos. Los sistemas expertos que tratan problemas deterministas son conocidos como sistemas basados en reglas, porque sacan sus conclusiones basándose en un conjunto de reglas utilizando un mecanismo de razonamiento lógico.

Ejemplo: Sistemas Expertos usados para transacciones bancarias. Pues, en estos, ya se definen las reglas de lo que éste sistema realizará en determinadas situaciones.

Problemas de tipo estocásticos, son aquellos cuyo comportamiento es no determinista, en la medida que el subsiguiente estado del sistema está determinado tanto por las acciones predecibles del proceso como por elementos aleatorios. Por lo que un SE estocástico opera utilizando métodos probabilísticos para solucionar problemas, como el algoritmo de enfriamiento simulado, las redes neuronales estocásticas, la optimización estocástica, los algoritmos genéticos y la programación genética. Un problema puede ser estocástico por sí mismo, por el solo hecho de planificar bajo incertidumbre.

Ejemplo: Sistemas Expertos usados en el campo médico, ya que las relaciones entre síntomas y enfermedades se conocen solo con un cierto grado de certeza; puesto que, la presencia de un conjunto de síntomas no siempre implica la presencia de una enfermedad.

1.4. Arquitectura de un Sistema Experto 5

La arquitectura de los SE, se entienden mejor cuando se examinan sus principales componentes. Estas componentes se muestran esquemáticamente en la siguiente imagen, y se explican a continuación:

5 Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad deCantabria, Santander, España, 1998), 10 ­ 14.

10

Page 11: Sistemas expertos

Fuente: Conceptos básicos sobre sistemas expertos ­ Componentes de un SE

A. El Experto y/o Componente Humana

Un sistema experto es generalmente el resultado de la colaboración de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros del conocimiento (programadores). Los expertos humanos suministran el conocimiento básico en el tema de interés, y los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender. Esta etapa requiere una enorme dedicación y un gran esfuerzo debido a los diferentes lenguajes que hablan las distintas partes y a las diferentes experiencias que estas tienen.

B. La Base de Conocimiento

Los especialistas son responsables de suministrar a los “ingenieros del conocimiento” una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. Esta forma estructurada de pensar requiere que los expertos humanos repiensen, reorganicen, y reestructuren la base de conocimiento y, como resultado, el especialista se convierte en un mejor conocedor de su propio campo de especialidad.

Hay que diferenciar entre datos y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la información relacionada con una aplicación particular. Por ejemplo, en diagnóstico médico, los síntomas, las enfermedades y las relaciones entre ellos, forman parte del conocimiento, mientras los síntomas particulares de un paciente dado forman parte de los datos. Mientras el conocimiento es permanente, los datos son

11

Page 12: Sistemas expertos

efímeros, es decir, no forman parte de la componente permanente de un sistema y son destruidos después de usarlos. El conocimiento se almacena en la base de conocimiento y los datos se almacenan en la memoria de trabajo. Todos los procedimientos de los diferentes sistemas y subsistemas que son de carácter transitorio se almacenan también en la memoria de trabajo.

C. Motor de Inferencia

El motor de inferencia es el corazón de todo sistema experto. El cometido principal de esta componente es el de sacar conclusiones aplicando el conocimiento a los datos. Por ejemplo, en diagnóstico médico, los síntomas de un paciente (datos) son analizados a la luz de los síntomas, y las enfermedades y de sus relaciones (conocimiento). Las conclusiones del motor de inferencia pueden estar basadas en conocimiento determinista o conocimiento probabilístico. Como puede esperarse, el tratamiento de situaciones de incertidumbre (probabilísticas) puede ser considerablemente más difícil que el tratamiento de situaciones ciertas (deterministas). En muchos casos, algunos hechos (datos) no se conocen con absoluta certeza. Por ejemplo, piénsese en un paciente que no está seguro de sus síntomas. Puede darse el caso de tener que trabajar solo con conocimiento de tipo no determinista, es decir, de casos en los que se dispone sólo de información aleatoria o difusa. El motor de inferencia es también responsable de la propagación de este conocimiento incierto. De hecho, en los sistemas expertos basados en probabilidad, la propagación de incertidumbre es la tarea principal del motor de inferencia, que permite sacar conclusiones bajo incertidumbre. Esta tarea es tan compleja que da lugar a que esta sea probablemente la componente más débil de casi todos los sistemas expertos existentes.

D. La Base de Hechos

Es la que alberga los datos propios correspondientes a los problemas que se desea tratar con la ayuda del sistema. Asimismo, a pesar de ser la memoria de trabajo, la base de hechos puede desempeñar el papel de memoria auxiliar. La memoria de trabajo memoriza todos los resultados intermedios, permitiendo conservar el rastro de los razonamientos llevados a cabo. Puede, por eso, emplearse para explicar el origen de las informaciones deducidas por el sistema en el transcurso de una sesión de trabajo o para llevar a cabo la descripción del comportamiento del propio sistema experto. Al principio del período de trabajo, la base de hechos dispone únicamente de los datos que le ha introducido el usuario del sistema, pero, a medida que va actuando el motor de inferencias, contiene las cadenas de inducciones y deducciones que el sistema forma al aplicar las reglas para obtener las conclusiones buscadas.

12

Page 13: Sistemas expertos

E. Interfaz de Usuario

La interfaz de usuario es el enlace entre el sistema experto y el usuario. Por ello, para que un sistema experto sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener información de forma fácil y agradable. Un ejemplo de la información que tiene que ser mostrada tras el trabajo del motor de inferencia, es el de las conclusiones, las razones que expliquen tales conclusiones y una explicación de las acciones iniciadas por el sistema experto. Por otra parte, cuando el motor de inferencia no puede concluir debido, por ejemplo, a la ausencia de información, la interfaz de usuario es un vehículo para obtener la información necesaria del usuario. Consecuentemente, una implementación inadecuada de la interfaz de usuario que no facilite este proceso minara notablemente la calidad de un sistema experto. Otra razón de la importancia de la interfaz de usuario es que los usuarios evalúan comúnmente los sistemas expertos y otros sistemas por la calidad de dicha interfaz más que por la del sistema experto mismo, aunque, como se dice, no se deberá juzgar “la calidad de un libro por su portada”.

1.5. Características propias de un Sistema Experto

Una de las principales características de un sistema experto es su capacidad para aprender. Este aprendizaje se divide en aprendizaje estructural y aprendizaje paramétrico.

Por aprendizaje estructural nos referimos a algunos aspectos relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ello, el descubrimiento de nuevos síntomas relevantes para una enfermedad o la inclusión de una nueva regla en la base de conocimiento son ejemplos de aprendizaje estructural.

Por aprendizaje paramétrico nos referimos a estimar los parámetros necesarios para construir la base de conocimiento. Por ello, la estimación de frecuencias o probabilidades asociadas a síntomas o enfermedades es un ejemplo de aprendizaje paramétrico.

Habilidad para obtener experiencia a partir de los datos disponibles. Estos datos pueden ser obtenidos por expertos y no expertos, y pueden utilizarse por el subsistema de adquisición de conocimiento y por el subsistema de aprendizaje.

De las componentes antes mencionadas puede verse que los sistemas expertos pueden realizar varias tareas. Estas tareas incluyen, pero no se limitan, a las siguientes:

13

Page 14: Sistemas expertos

Adquisición de conocimiento y la verificación de su coherencia; por lo que el sistema experto puede ayudar a los expertos humanos a dar conocimiento coherente.

Almacenar (memorizar) conocimiento.

Preguntar cuando se requiere nuevo conocimiento.

Aprender de la base de conocimiento y de los datos disponibles.

Realizar inferencia y razonamiento en situaciones deterministas y de incertidumbre.

Explicar conclusiones o acciones tomadas.

Comunicar con los expertos y no expertos humanos y con otros sistemas expertos.

14

Page 15: Sistemas expertos

CAPÍTULO II: Implementación y Ejemplos de un Sistema Experto

Para poder implementar Sistemas Expertos (SE), es necesario saber cómo desarrollar un SE, qué etapas seguir y cómo programar un SE. En este capítulo aprenderemos todo ello, y finalmente crearemos un sencillo ejemplo.

2.1. Aplicaciones de un Sistema Experto 6

Los sistemas expertos, se aplican a una gran diversidad de campos y/o áreas, como la informática, electrónica, educación, agricultura, militar, transporte, etc.; sin embargo, sus principales aplicaciones se dan en las gestiones empresariales.. En esta sección se dan unos pocos ejemplos del tipo de problemas que pueden resolverse mediante sistemas expertos.

Ejemplo 1, transacciones bancarias: No hace mucho, para hacer una transacción bancaria, tal como depositar o sacar dinero de una cuenta, uno tenía que visitar el banco en horas de oficina. Hoy en día, esas y otras muchas transacciones pueden realizarse en cualquier momento del día o de la noche usando los cajeros automáticos que son ejemplos sencillos de sistemas expertos. De hecho, se pueden realizar estas transacciones desde casa comunicándose con el sistema experto mediante la línea telefónica o el internet.

Ejemplo 2, control de tráfico: El control de tráfico es una de las aplicaciones más importantes de los sistemas expertos. No hace mucho tiempo, el flujo de tráfico en las calles de una ciudad se controlaba mediante guardias de tráfico que controlaban el mismo en las intersecciones. Hoy se utilizan sistemas expertos que operan automáticamente los semáforos y regulan el flujo del tráfico en las calles de una ciudad y en los ferrocarriles.

Ejemplo 3, gestiones empresariales: En donde un SE realizará las funciones básicas de tratamiento de la información, para: contabilidad general, ayudar en la toma de decisiones financieras, gestión de la tesorería, planificación, etc. La ventaja es que un SE puede llegar a manejar grandes volúmenes de información y realizar operaciones numéricas rapidísimas.

Ejemplo 4, problemas de planificación: Los sistemas expertos pueden utilizarse también para resolver problemas complicados de planificación de forma que se

6 Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad deCantabria, Santander, España, 1998), 4.

15

Page 16: Sistemas expertos

optimicen ciertos objetivos como, por ejemplo, la organización y asignación de aulas para la realización de exámenes finales en una gran universidad, de forma tal que se logren los objetivos siguientes:

Eliminar las coincidencias de asignación simultánea de aulas: Solo se puede realizar un examen en cada aula al mismo tiempo.

Asientos suficientes: Un aula asignada para un examen debe tener al menos dos asientos por estudiante.

Minimizar los conflictos temporales: Minimizar el número de alumnos que tienen exámenes coincidentes.

Eliminar la sobrecarga de trabajo: Ningún alumno debe tener más de dos exámenes en un periodo de 24 horas.

Minimizar el número de exámenes realizados durante las tardes.

Además los SE también se aplican en la contabilidad en apartados como: Auditoría, Fiscalidad, planificación, análisis financiero y la contabilidad financiera.

2.2. ¿Cómo desarrollar un Sistema Experto?7

Al igual que para desarrollar un sistema de información convencional existen varias metodologías de desarrollo como la Ingeniería de la Información, tendencias estructuradas y orientadas a objetos; así existen varias metodologías para desarrollar un sistema experto. Metodologías como las de Buchanan, Grover, Brule, Blanque y García Martínez, KADS; entre otras. Sin embargo, Weiss y Kulikowski (1984) sugieren las etapas siguientes para el diseño e implementación de un sistema experto:

7 Enrique Castillo, y otros, eds., Sistemas Expertos y Modelos de Redes Probabilísticas (Universidad deCantabria, Santander, España, 1998), 15 ­ 16.

16

Page 17: Sistemas expertos

Fuente: Sistemas Expertos y Modelos de Redes Probabilísticas (Pág. 15)

Describiendo las etapas de la imagen, tenemos:

Planteamiento del problema: La primera etapa en cualquier proyecto es normalmente la definición del problema a resolver. Puesto que el objetivo principal de un sistema experto es responder a preguntas y resolver problemas, esta etapa es quizás la más importante en el desarrollo de un sistema experto. Si el sistema está mal definido, se espera que el sistema suministre respuestas erróneas.

Encontrar expertos humanos que puedan resolver el problema. En algunos casos, sin embargo, las bases de datos pueden jugar el papel del experto humano.

Diseño de un sistema experto: Esta etapa incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la interfaz de usuario, etc.

Elección de la herramienta de desarrollo, shell, o lenguaje de programación: Se debe decidir si realizar un sistema experto a medida, o utilizar un shell, una herramienta, o un lenguaje de programación. Si existiera un shell que satisfaga todos los

17

Page 18: Sistemas expertos

requerimientos del diseño, esta deberá ser la elección, no solo por razones de tipo financiero sino también por razones de fiabilidad. Las conchas y herramientas comerciales están sujetas a controles de calidad, a los que otros programas no lo están.

Desarrollo y prueba de un prototipo: Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que se obtenga un prototipo satisfactorio.

Refinamiento y generalización: En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseño inicial.

Mantenimiento y puesta al día: En esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.

NOTA: Todas estas etapas influyen en la calidad del sistema experto resultante, que siempre debe ser evaluado en función de las aportaciones de los usuarios.

2.3. ¿Cómo programar un Sistema Experto?8

Para desarrollar y programar los sistemas expertos primero es necesario (tal y como se había definido en el capítulo II) abordar un área de interés, dentro de esta área se seleccionan a los expertos, que son los especialistas capaces de resolver los problemas en dicha área. Por ejemplo, el área de interés de las empresas de proyectos de construcción, son precisamente los proyectos, y un especialista podría ser un arquitecto, un ingeniero civil, entre otros.

Ahora bien, casi siempre estos especialistas, son expertos en un dominio específico y es sobre este dominio, donde poseen su mayor experiencia (Dominio de Experticidad), por ejemplo un Ing. civil que tenga especialidad en cimientos.

Una vez seleccionado al experto o a los expertos, y estos estén de acuerdo en dar sus conocimientos, comienza a jugar su papel el “Ingeniero de Conocimientos”, que es el encargado de extraer los conocimientos al experto y darle una representación adecuada, ya sea en forma de reglas u otro tipo de representación, conformando así la base de conocimientos del sistema experto.

Formas de representación de los conocimientos:

8 Alejandro Madruga. Soy un cibernético, «¿Que es un sistema experto?».http://cibernetica.wordpress.com/2007/03/09/%c2%bfque­es­un­sistema­experto/. (accedido enero 18, 2014)

18

Page 19: Sistemas expertos

Reglas de producción. Redes semánticas. Marcos (Frames).

La forma de representación más usada es por reglas de producción, también llamadas reglas de inferencias. Casi todos los sistemas expertos están basados en este tipo de representación, ahora nos ocuparemos de los sistemas basados en reglas.

Las reglas de producción son del tipo:

SI Premisa ENTONCES Conclusión (SI A ENTONCES B).

Donde tanto las premisas como la conclusión, no son más que una cadena de hechos conectados por “Y” o por “O”, de forma general sería:

SI Hecho1 Y/O Hecho2 Y/O… HechoN ENTONCES Hecho1 Y/O … HechoN

Los hechos son afirmaciones que sirven para representar conceptos, datos, objetos, etc; y el conjunto de hechos que describen el problema es la base de hechos.Según el lenguaje de programación Prolog (recomendable para programar SE), estas reglas son del tipo:

Si H1 y H2 y H3,… entonces Hc

De dónde, llegaremos hasta “Hc” (Hecho de Conclusión), siempre y cuando se cumpla todos los demás hechos (H).

Por lo que, tendríamos que:

Hc si H1 y H2 y H3 y…

Y finalmente, llegamos a la siguiente sintaxis:

Hc:­ H1, H2, H3,…

Donde los hechos son un conjunto de predicados que deben cumplirse.

Ejemplo:

Regla #1: Si X>3 y Y=5 entonces Z =3 y A<5.En caso que X no sea mayor que 3 la regla falla y se buscará otra regla. En este

19

Page 20: Sistemas expertos

caso debe cumplirse ambas condiciones (para la X y la Y). En tanto, la regla se cumpla, entonces se ejecutará la acción para Z y A.

Por lo tanto, los hechos son afirmaciones que se refieren a los conceptos (clases y objetos) y a las relaciones (atributos) entre ellos.

Ahora, veamos como es que se representan estos hechos en diferentes aplicaciones de la IA:

MYCIN (software)

Sistema Experto desarrollado a principios de los años 70 por Edgar ShortLiffe, en la Universidad de Stanford. Fue escrito en Lisp, y su función principal consistía en el diagnóstico de enfermedades infecciosas de la sangre; además, MYCIN era capaz de "razonar" el proceso seguido para llegar a estos diagnósticos, y recetar medicaciones personalizadas a cada paciente (según su estatura, peso, etc.)

Ejemplo de cómo clasificaba este software una entrada:

DENDRAL (software)

Sistema Experto desarrollado a mediados de los años 60 por Edward Feigenbaum, en la Universidad de Stanford. Inicialmente escrito en Lisp, fue el primer sistema experto en ser utilizado para propósitos reales, en investigaciones sobre estructuras moleculares; usados por químicos y biólogos.

Ejemplo de cómo clasificaba este software una entrada:

PROLOG (Shell)

20

Page 21: Sistemas expertos

Proveniente del francés PROgrammation en LOGique. Este es un lenguaje de programación que utiliza un paradigma lógico y declarativos, y que se centra alrededor de un conjunto pequeño de mecanismos, incluyendo reconocimiento de patrones, estructura de datos basadas en árboles y backtraking (retroceso) automático. Es ideal para resolver problemas que involucren objetos estructurados y las relaciones entre ellos.

Ejemplo:

EXSYS (software)

Es un sistema experto basado en reglas con muchas mejoras, tales como Frames,Blackboards y el lenguaje de comandos de procedimiento (Procedural CommandLanguage). Cláusulas como IF­THEN­ELSE que se utilizan para describir la lógica delsistema.

Ejemplo:

R1 (Shell)

Este software permite introducir la base de conocimiento sin preocuparse de programar los otros componentes principales del sistema (motor de inferencia e interfaz de usuario). Sin embargo, se debe incluir factores de certeza.

Ejemplo:

21

Page 22: Sistemas expertos

NOTA: Estos lenguajes descomponen, claramente, una oración, un término, un conocimiento; en palabras que, por medio de hechos, un sistema experto logrará conjugar y arrojar un resultado.

2.4. Ejemplos de Reglas en los SE9

En relación a lo descrito anteriormente, se mostrará ejemplos prácticos de estas reglas.

2.4.1. Ejemplo 1, por definición de datos

­ Juan es un estudiante.­ Juan tiene 8 años.­ El perro es blanco.­ A María le gusta el cine.­ Pedro prefiere la película.­ La edad de Luis es de 25 años.­ Pedro tiene un salario de 200 soles.

Para resolver este ejemplo, debemos tener en cuenta una serie de reglas. Las cuales resultan de la combinación de hechos, los cuales permiten representar conocimientos y sacar inferencias de los mismos.

Por lo que, representando estos conocimientos en reglas, podríamos tener:

Regla #1: SI Juan es estudiante Y Juan tiene 8 años Entonces Juan estudia en la primaria.

Regla #2: SI el perro es blanco Y el perro se llama Dinky ENTONCES el perro es de Juan.

Regla #3: SI a María le gusta la película Y Juan prefiere la pelota ENTONCES hacen falta los televisores.

Observe cómo partiendo de hechos conocidos, que describen algún conocimiento, se pueden inferir nuevos hechos (nuevos conocimientos). Por otra parte la regla #2, no tiene porque ser totalmente cierta, existe la posibilidad de que el perro no sea de Juan; quizás se puede afirmar, si fuéramos a cuantificar esa posibilidad, que el perro pertenece a Juan con una certeza de un 80%, y por último la regla #3 es dependiente del contexto, ya que aquí se supone que ambos (Juan y María) viven juntos y que los programas de TV

9 Alejandro Madruga. Soy un cibernético, «Conceptos básicos sobre sistemas expertos».http://cibernetica.wordpress.com/2012/12/04/conceptos­basicos­sobre­sistemas­expertos/. (accedido enero 18,2014)

22

Page 23: Sistemas expertos

coinciden.

2.4.2. Ejemplo 2, por definición de reglas

Regla #1: Si tiene espina dorsal,Y tiene cola horizontal,Y tiene un agujero para respirar,Y tiene sangre caliente,Y los pequeños son alimentados con leche materna,Y los hijos nacen directamente vivos.Entonces es un cetáceo.

Regla #2: Si es un cetáceo,Y mide más de 25 pies.Entonces es una ballena

Regla #3: Si es un cetáceo,Y mide aproximadamente 6 pies,Y tiene la aleta tope vertical,Y tiene una nariz roma­pequeña,Y vive cerca de las costas.Entonces es una marsopa

Regla #4: Si es un cetáceo,Y mide aproximadamente 6 pies,Y tiene la aleta tope vertical,Y tiene una nariz en forma de pico,Y vive en el mar.Entonces es un delfín.

Regla #5: Si tiene espina dorsal,Y tiene una aleta vertical,Y respira a través de branquias,Entonces es un pez.

Regla #6: Si es un pez,Y tiene la aleta tope triangular,Y tiene la boca debajo de la cabeza,Entonces es un tiburón.

Observe, como aquí, se definieron las reglas para los cetáceos y a partir de esta se definió

23

Page 24: Sistemas expertos

al delfín, a la ballena, a la marsopa, etc. Igual sucedió para los peces.

Entonces, de estos mencionados ejemplos, salta la siguiente interrogante:

2.4.3. ¿Cómo buscan los sistemas expertos?

Habiendo dado un estado inicial, se van generando estados a través de la aplicación de un conjunto de reglas, las cuales al aplicarse originan un nuevo estado, así sucesivamente hasta alcanzar el estado final.

Por lo que, en consecuencia, habrá un estado inicial y un estado final, que serán definidos como:

1. Una base de hechos en la cual aparecerá un hecho que satisface ciertas características.

2. Una base de hechos en la cual habrán desaparecido todos los hechos a establecer.

3. Una base de hechos tal que ninguna regla puede aportar una nueva modificación.

Los puntos 1 y 3 son comúnmente adoptados por los motores de encadenamiento hacia delante, mientras el 2 es adoptado por motores con encadenamiento hacia atrás.

2.4.4. Ejemplo de búsqueda primero en profundidad

Tomemos el ejemplo de las tinas, donde se parte de dos tinas (recipientes para contener agua) y se quiere lograr que la de 4 galones tenga 2 galones. Las tinas no tienes marcas que indiquen la cantidad de galones.

Vamos a definir algunas reglas de forma general, considerando las siguientes restricciones:

1) “Si una tina se llenó hasta el tope, no llenar la otra”.2) “Si una tina se acaba de llenar hasta el tope, no se puede botar”.

Orden de las reglas:

24

Page 25: Sistemas expertos

1ro. Aplicar reglas para el criterio de solución.2do. Aplicar reglas para llenar las tinas.3ro. Aplicar reglas para vaciar de una para otra.4to. Aplicar reglas para botar el contenido de una de ella.

Criterio de solución:

Regla #1: Si (la tina de 4) (tiene) (dos galones) entonces SOLUCIÓN.Regla #2: Si (la tina de 3) (tiene) (dos galones) y (la tina de 4) (esta vacia) entonces (vaciar el contenido) (para) (la tina de 4).Regla #3: Si (la tina de 3) (tiene) (dos galones) y (la tina de 4) (no) (esta vacia) entonces (botar el contenido de) (la tina de 4).

Veamos cómo se va efectuando la búsqueda paso a paso:

Estado inicial: (0,0) ambas tinas vaciasEstado 1: (0,0) ­> (0,4) Se llena una de las tinas (la de 4 galones).Estado 2: (0,4) ­> (3,1) Se vacía el contenido de la de 4 en la de 3 galones.Estado 3: (3,1) ­> (0,1) Se bota el contenido de la tina de 3 galonesEstado 4: (0,1) ­> (1,0) Se vacía el contenido de la de 4 en la de 3 galones.Estado 5: (1,0) ­> (1,4) Se llena la tina de 4 galones.Estado 6: (1,4) ­> (3,2) Se vacía la tina de 4 en la de 3 galonesEstado final (3,2) Se alcanza la solución al quedar 2 galones en la tina de 4

Este ejemplo ha sido desarrollado en HTML, la resolución del mismo la pueden encontrar en el siguiente enlace (se recomienda guardar el archivo como *.html y ejecutar en cualquier navegador):

Ejemplo de Tinas desarrollado con SE

25

Page 26: Sistemas expertos

CAPÍTULO III: Ventajas, desventajas y limitaciones de un Sistema Experto

Hasta aquí, no todo es, digamos: “positivo”, “beneficioso”; en los sistemas expertos. Puesto que estos, así como tiene una gran ventaja en su uso, también tienen desventajas y limitaciones. Veamos:

3.1. Ventajas de un Sistema Experto10

Estos programas proporcionan la capacidad de trabajar con grandes cantidades de información, que son uno de los grandes problemas que enfrenta el analista humano que puede afectar negativamente a la toma de decisiones pues el analista humano puede depurar datos que no considere relevantes, mientras un SE debido a su gran velocidad de proceso analiza toda la información incluyendo las no útiles para de esta manera aportar una decisión más sólida.

Entre otras ventajas, tenemos:

a. Permanencia: A diferencia de un experto humano un SE no envejece, y por tanto no sufre pérdida de facultades con el paso del tiempo.

b. Duplicación: Una vez programado un SE lo podemos duplicar infinidad de veces.

c. Rapidez: Un SE puede obtener información de una base de datos y realizar cálculos numéricos mucho más rápido que cualquier ser humano.

d. Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicación el coste finalmente es bajo.

e. Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o dañinos para el ser humano.

f. Fiabilidad: Los SE no se ven afectados por condiciones externas, un humano sí (cansancio, presión, etc.).

g. Consolidar varios conocimientos.

10 Paul Peterson. PaulPeterson SlideShare, «Ventajas y Aplicación de los Sistemas Expertos».http://www.slideshare.net/PaulPeterson/ventajas­y­aplicacin­de­los­sistemas­expertos­474422. (accedido febrero01, 2014)

26

Page 27: Sistemas expertos

h. Apoyo Académico. Siempre están dispuestos a dar explicaciones, asistir o enseñar a la gente, así como a aprender.

i. Están disponibles ininterrumpidamente de día y noche, ofreciendo siempre su máximo desempeño.

j. Siempre se ajustan a las normas establecidas y son consistentes en su desempeño, no desarrollan apreciaciones subjetivas, tendenciosas, irracionales o emocionales.

k. No padece de olvido, fatiga, dolor o comete errores de cálculo.

l. No requiere un sueldo, promociones, seguros médicos, incapacidades.

m. Y lo más importante, es que pueden tener una vida de servicio ilimitada.

3.2. Desventajas de un Sistema Experto11

a. Necesidad de adiestramiento para su manejo.

b. Necesidad de aprender el lenguaje de programación del mismo para poder usarlo adecuadamente. Este lenguajes extremadamente lógico y formal. Con un ser humano esto no ocurre.

c. Sentido Común: Para un SE nada es obvio, todo debe tener una connotación estructural ya que si esto no se ejecuta de esa forma, sencillamente la data de respuesta no será la adecuada.

d. Rigidez: Un SE es sumamente rígido a la hora de recibir una información, debido a la estructura de su programación.

3.3. Limitaciones de un Sistema Experto

a. Es evidente que para actualizar se necesita de reprogramación de estos (tal vez este sea una de sus limitaciones más acentuadas) otra de sus limitaciones puede ser el elevado costo en dinero y tiempo, además que estos programas son poco flexibles a

11 Alejandro Tapia. Alejandro Tapia SlideShare, «Inteligencia artificial­y­sistemas­expertos».http://www.slideshare.net/Alejandrojpt/inteligencia­artificialysistemasexpertos. (accedido enero 16, 2014)

27

Page 28: Sistemas expertos

cambios y de difícil acceso a información no estructurada.

b. Debido a la escasez de expertos humanos en determinadas áreas, los SE pueden almacenar su conocimiento para cuando sea necesario poder aplicarlo. Así mismo los SE pueden ser utilizados por personas no especializadas para resolver problemas. Además si una persona utiliza con frecuencia un SE aprenderá de él.

c. Por otra parte la inteligencia artificial no ha podido desarrollar sistemas que sean capaces de resolver problemas de manera general, de aplicar el sentido común para resolver situaciones complejas ni de controlar situaciones ambiguas.

d. El futuro de los SE da vueltas por la cabeza de cada persona, siempre que el campo elegido tenga la necesidad y/o presencia de un experto para la obtención de cualquier tipo de beneficio.

28

Page 29: Sistemas expertos

CONCLUSIONES

Los sistemas expertos son desarrollos de la investigación en el campo de la inteligencia artificial. Un sistema experto es un programa de computador que simula la forma en que los expertos humanos solucionan problemas, es decir, es un tomador de decisiones artificial.

Los sistemas expertos son herramientas basadas en el computador que están diseñadas para que operen como soportes de decisiones inteligentes. Por ejemplo, se han construido sistemas expertos para ayudar a geólogos a decidir dónde perforar para obtener petróleo; a banqueros, para evaluar solicitudes de préstamos; a técnicos en ventas de computadores, en la manera de configurar sistemas de computadoras; y a empleados, a decidir entre un amplio número de alternativas de prestaciones de la compañía.

Además, llegamos a la conclusión de que, los problemas cuyas soluciones requieren toma de decisiones son buenos candidatos para el desarrollo de sistemas expertos.

La mayoría de los sistemas expertos están conformados por varios componentes, entre los que se cuentan la base de conocimientos, motor de inferencia y base de hechos. Existe una variedad de "shells" o editores para la creación de bases de conocimiento para sistemas expertos, que es parte de la actividad que conlleva al pensamiento crítico. Considerando que, para la construcción de la base de conocimientos requiere que el programador incorpore el conocimiento causal.

Y por último, el éxito de un SE depende casi exclusivamente de la calidad de su base de conocimiento. El inconveniente es que codificar la pericia de un experto humano puede resultar difícil, largo y laborioso. Sin embargo, el resultado, puede ayudar significativamente en la toma de decisiones en un determinado negocio.

29

Page 30: Sistemas expertos

REFERENCIAS BIBLIOGRÁFICAS

Buenas Tareas sitio web, «Base De Hechos Inteligencia Artificial ­ Ensayos de Colegas ­Kibsal».http://www.buenastareas.com/ensayos/Base­De­Hechos­Inteligencia­Artificial/268014.html. (accedido enero 31, 2014).

Castillo, Enrique et al., eds., Sistemas Expertos y Modelos de Redes Probabilísticas.Universidad de Cantabria, Santander, España, 1998.

Castro Marcel. «Sistemas Expertos».http://strix.ciens.ucv.ve/~iartific/Material/PP_Sistemas_Expertos.pdf. (accedido febrero01, 2014).

Criado B. José. «Introducción a los sistemas expertos».http://ingenieroseninformatica.org/recursos/tutoriales/sist_exp/cap1.php. (accedido enero06, 2014).

Editorial Paraninfo. Inteligencia artificial: modelos, técnicas y áreas de aplicación, 2003.http://books.google.com.pe/books?id=_spC6S7UfZgC (accedido enero 15, 2014).

Madruga Alejandro. «Conceptos básicos sobre sistemas expertos».http://cibernetica.wordpress.com/2012/12/04/conceptos­basicos­sobre­sistemas­expertos/. (accedido enero 18, 2014).

Madruga Alejandro. «¿Que es un sistema experto?».http://cibernetica.wordpress.com/2007/03/09/%c2%bfque­es­un­sistema­experto/.(accedido enero 18, 2014).

Monografias sitio web, «Sistemas expertos (SE) ­ Monografias.com».http://www.monografias.com/trabajos16/sistemas­expertos/sistemas­expertos.shtml.(accedido enero 18, 2014).

Monografias sitio web, «Sistema experto de inteligencia artificial ­ Monografias.com».http://www.monografias.com/trabajos96/sistema­experto­inteligencia­artificial/sistema­experto­inteligencia­artificial.shtml. (accedido enero 17, 2014).

Peterson Paul. «Ventajas y Aplicación de los Sistemas Expertos».

30

Page 31: Sistemas expertos

http://www.slideshare.net/PaulPeterson/ventajas­y­aplicacin­de­los­sistemas­expertos­474422. (accedido febrero 01, 2014).

Quintanar Tomás. «Sistemas Expertos y sus Aplicaciones».http://www.uaeh.edu.mx/docencia/Tesis/icbi/licenciatura/documentos/Sistemas%20expertos%20y%20sus%20aplicaciones.pdf. (accedido febrero 12, 2014).

Tapia Alejandro. «Inteligencia artificial­y­sistemas­expertos».http://www.slideshare.net/Alejandrojpt/inteligencia­artificialysistemasexpertos. (accedidoenero 16, 2014).

Universidad de Oviedo. Introducción a la inteligencia artificial: sistemas expertos, redesneuronales artificiales y computación evolutiva, 2001.http://books.google.com.pe/books?id=RKqLMCw3IUkC (accedido enero 15, 2014).

31