sistema expert o

4

Click here to load reader

Upload: therockanlover-zoe

Post on 24-Jul-2015

29 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sistema Expert o

Sistema experto: vendedor de coches

Pablo Prieto Canela, [email protected], Ingeniería de Telecomunicación, Universidad Carlos III de Madrid

EXTRACTO En este documento se describe el funcionamiento de un sistema experto de simulación de concesionario de coches en el modo de vendedor.

Palabras clave y términos generales Inteligencia artificial, sistema experto, heurística, conocimientos, hechos, motor de inferencia, algoritmo, vecino más cercano (k-NN).

1. INTRODUCIÓN Sistema experto de concesionario de coches que se basa en el algoritmo del vecino más cercano (k-NN), calculando la distancia del modelo solicitado a cada uno de los modelos de la base de datos, y presentando los k primeros modelos más cercanos. Parámetros: Marca, modelo, tipo de motor (diesel o gasolina), nº de puertas, precio en la calle, potencia, consumo mixto, equipación (de 1 a 5), tamaño (de 1 a 3).

2. SISTEMA EXPERTO Un sistema experto es una rama de la Inteligencia Artificial y es aquel que imita las actividades de un humano para resolver problemas de distinto índole (no necesariamente tiene que ser de Inteligencia Artificial), puede definirse como "un programa de ordenador que resuelve problemas que requieren experiencia humana, mediante el uso de representación del conocimiento y procedimientos de decisión". El conocimiento del experto en ese campo se organiza en una base de conocimientos, y en función de los datos disponibles de la aplicación (base de hechos) se imita la forma de actuar del experto explorando en la base de conocimientos hasta encontrar la solución (motor de inferencia). Los resultados finales y la forma en que se obtienen se expresan a través de la interfase hombre-máquina. Los sistemas expertos se basan en la simulación del razonamiento humano. El razonamiento humano tiene para ellos, un doble interés: por una parte, el del análisis del razonamiento que seguiría un experto humano en la materia a fin de poder codificarlo mediante el empleo de un determinado lenguaje informático; por otra, la síntesis artificial, de tipo mecánico, de los razonamientos de manera que éstos sean semejantes a los empleados por el experto humano en la resolución de la cuestión planteada. La base del conocimiento representa el universo donde está el sistema, es decir, la información que rodea al problema. A través del motor de inferencia sabemos cómo el experto decide cual regla aplicar a cuales datos, cómo resolver conflictos entre reglas y entre datos y cómo van a inferir los nuevos hechos o nuevos datos; y para eso debemos saber cómo piensa el experto y cómo

utiliza la base del conocimiento (base de reglas y base de datos). La interfaz del usuario no sólo debe ser muy fluida y facilitar el uso, sino que además debe servir para desarrollar el sistema experto, introducir los datos, cambiar las reglas, cambiar el motor de inferencia, así como tener capacidad de circulación y capacidad de operación cuando se usa en el sistema experto. El sistema experto establecido se compone, por lo tanto, de dos tipos bien diferenciados de elementos, los propios del campo de los expertos relacionados con el problema concreto (es decir, la base de conocimientos y la base de hechos) y el que se puede aplicar de forma general a una gran variedad de problemas de diversos campos (como el caso del motor de inferencias). Sin embargo, el motor de inferencias no es un mecanismo universal de deducción, ya que hay dos tipos diverso: los que emplean el razonamiento aproximativo (para el cual el resultado puede ser erróneo) y aquellos que emplean un tipo de razonamiento capaz de obtener un resultado (si llegan a él), con toda seguridad, verdadero.

3. TIPO DE SISTEMA EXPERTO 3.1 Tipos generales Principalmente existen tres tipos de sistemas expertos: - Basados en reglas. - Basados en casos o CBR (Case Based Reasoning). - Basados en redes bayesianas. En cada uno de ellos, la solución a un problema planteado se obtiene: - Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación. - Aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema. - Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.

3.2 Tipo estudiado Este sistema experto se basa en reglas heurísticas apoyadas en lógica difusa para su evaluación y aplicación.

4. ESTRUCTURA BÁSICA DEL SE El Sistema Experto está conformado por: - Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con el experto. - Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis. - Motor de inferencia: Modela el proceso de razonamiento humano. - Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión.

Page 2: Sistema Expert o

- Interfaz de usuario: es la interacción entre el SE y el usuario y se realiza mediante el lenguaje natural.

4.1 Base de conocimientos La base de conocimientos del sistema experto de venta de coches se basa en un conjunto de reglas con prioridades. Aloja la totalidad de las informaciones específicas relativas al campo del saber deseado. Está escrita en un lenguaje específico de representación de los conocimientos que contiene y en el cual el experto puede definir su propio vocabulario técnico. Es donde se almacena el conocimiento en el campo a desarrollar. Los conocimientos que se suelen almacenar son de cuatro tipos: - Conocimiento objetivo, que describe la situación real del sistema. - Conocimiento de sucesos, relacionado con los sucesos que ocurren en el tiempo de ejecución. - Conocimiento del funcionamiento del sistema, de cómo se hacen las cosas. - Metaconocimiento, que relaciona los anteriores. Existen varias formas de representar el conocimiento: - Marcos («Frames»): son estructuras de datos donde se almacenan información concreta de un cierto concepto e información relacional para completar la definición del concepto. Se representan por una serie de campos y los valores asociados a los mismos, pudiendo ser otro "frame". - Redes semánticas: son representaciones gráficas del conocimiento, mediante nodos, que representan objetos o conjuntos de objetos, y arcos, que relacionan dichos objetos. Tanto los "frames" como las redes son representaciones descriptivas, difíciles de usar para representar el razonamiento. - Reglas: es la forma más extendida de representación del conocimiento. Representan la forma de razonar. Tienen la forma IF <condicion> THEN <accion/conclusion>. Es importante el orden de ejecución de las reglas, por ello se les suele dotar de prioridades. Una regla que activa otra se denomina metaregla, y se suelen usar para desarrollar progresivamente el conocimiento del experto. Una labor fundamental es la Adquisición del Conocimiento y su representación mediante alguna de las formas anteriores. Una de las técnicas más usadas son las entrevistas con los responsables del proceso, donde se consume la mayoría del tiempo. Además se suelen usar las bases de datos existentes en el sistema, añadir modelos matemáticos o heurísticos, y analizar el sistema mediante programas de simulación. También en entornos dinámicos como son los sistemas de producción, se adquiere conocimiento con el tiempo.

4.2 Base de hechos La base de hechos en este caso es la base con los datos de los coches, el experto “entrevistado” es una revista especializada de

venta de coches del mercado, “guía del comprador de coches y 4x4” de Agosto de 2006. Representan el conocimiento del estado del sistema en un cierto instante. Usualmente se representa en una base de datos, y su información está directamente enlazada con la base de conocimientos. Un hecho puede provocar el disparo ("trigger") de una regla:

Hecho: Tipo_Motor=0.873 Regla: SI Tipo_Motor > 0.8

ENTONCES Tipo_Motor="ADECUADO" Además el sistema dispone de la llamada base de hechos, 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.

4.3 Motor de inferencia El motor de inferencias está programado en el lenguaje de programación “java” con los conocimientos implementados (base de conocimientos), acceso a la base de datos (base de hechos) y encadenamiento hacia adelante. Es un programa que, mediante el empleo de los conocimientos puede resolver el problema que está especificado. Lo resuelve gracias a los datos que contiene la base de hechos del sistema experto. Por regla general, el tipo de reglas que forman la base de conocimientos es tal que, si A es válido, puede deducirse B como conclusión. En este caso, la tarea que lleva a cabo el motor de inferencias es la de seleccionar, validar y activar algunas reglas que permiten obtener finalmente la solución correspondiente al problema planteado. Es el "supervisor", un programa que está entre el usuario y la base de conocimientos, y que extrae conclusiones a partir de los datos simbólicos que están almacenados en las bases de hechos y de conocimiento. Dependen en gran medida de la representación elegida; por su importancia analizaremos los motores de inferencia basados en reglas. Existen varios algoritmos de búsqueda a lo largo de las reglas para inferir conclusiones a partir de los hechos y las reglas. Todos los algoritmos son del tipo "pattern-matching", van disparando reglas a medida que se cumplen las condiciones. Se pueden diferenciar dos mecanismos de inferencia: - Encadenamiento hacia adelante: se extraen conclusiones a partir del cumplimiento de las condiciones de ciertas reglas que, a su vez, provocarán el cumplimiento de las condiciones en otras reglas hasta que no se cumplan en ninguna de ellas.

Page 3: Sistema Expert o

- Encadenamiento hacia atrás: se suponen ciertas las conclusiones de una regla y, como consecuencia, se van disparando aquellas reglas que provocarían la regla original. El proceso acaba si no se cumplen las condiciones de las reglas o si se cumplen para todas las reglas. Es importante destacar que la base de conocimientos y el motor de inferencia son sistemas independientes, por lo que se han desarrollado herramientas que únicamente necesitan la implementación del conocimiento, llevando incorporado el motor de inferencia.

4.4 Interfase hombre-máquina El interfase hombre máquina es de dos tipos, de texto y gráfico, el implementado principalmente es de texto a través de una ventana de comandos y mostrado con un lenguaje de alto nivel (HLL) como es “java”. Establece una comunicación sencilla entre el usuario y el sistema. El usuario puede consultar con el sistema a través de menús, gráficos, etc., y éste le responde con resultados. También es interesante mostrar la forma en que extrae las conclusiones a partir de los hechos. En sistemas productivos se cuida la forma de presentar al operador las órdenes obtenidas del sistema experto, debido a que información excesiva o confusa dificulta la actuación en tiempo real. La implementación de un sistema experto completo obliga al desarrollo de cada uno de los elementos anteriores a través de lenguajes o herramientas de desarrollo. Existen cuatro alternativas para la implementación de un sistema experto: "Lenguajes de alto nivel (HLL): son lenguajes de propósito general (C, Fortran, Basic,...). Tienen como ventajas su eficiencia, su familiaridad y la portabilidad a cualquier entorno, pero el inconveniente de no estar preparados para una programación basada en símbolos. "Lenguajes simbólicos: fundamentalmente LISP y PROLOG. Son los lenguajes de alto nivel más utilizados por su adaptación a la lógica de la base de conocimientos representada mediante símbolos, y por su mecanismo de extraer conclusiones. Su eficiencia aumenta en estaciones de trabajo diseñadas para dichos lenguajes. "Herramientas de desarrollo ("shells"): son programas preparados para el desarrollo de sistemas expertos pues incorporan el motor de inferencia, independiente de las bases de hechos y de conocimiento. El programador se limita a traducir dichas bases a un lenguaje preparado a tal efecto, pudiendo enlazarse con otros lenguajes para el desarrollo de funciones adicionales. Suelen estar desarrollados en LISP o PROLOG para aumentar su eficiencia. La flexibilidad es menor, aunque suelen incorporar procesadores de texto, gráficos y herramientas de análisis. "Entornos de desarrollo ("environments"): añaden a los "shells" el uso de un entorno gráfico (ventanas, iconos,...) que facilita el desarrollo del sistema experto. Tienen como ventaja la

disminución del tiempo de desarrollo, pero suelen ser caros y poco flexibles. Los "shells" son los más usados para el desarrollo de sistemas expertos, mientras que el PROLOG está muy extendido en Europa y Japón, el LISP lo está en Estados Unidos. Los entornos aún ocupan un sector minoritario pero la tendencia a su utilización va en aumento.

5. VENTAJAS Y LIMITACIONES DEL SE

5.1 Ventajas - Permanencia: A diferencia de un experto humano un SE (sistema experto) no envejece, y por tanto no sufre pérdida de facultades con el paso del tiempo. - Duplicación: Una vez programado un SE lo podemos duplicar infinidad de veces. - 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. - Bajo costo: A pesar de que el costo inicial pueda ser elevado, gracias a la capacidad de duplicación el coste finalmente es bajo. - Entornos peligrosos: Un SE puede trabajar en entornos peligrosos o dañinos para el ser humano. - Fiabilidad: Los SE no se ven afectados por condiciones externas, un humano sí (cansancio, presión, etc.). - Los SE que se codifican alcanzan el nivel de prestaciones de un experto humano. - La separación entre base de conocimiento y motor de inferencia proporciona una gran flexibilidad al SE. - Los SE permiten llegar a una reflexión sobre el conocimiento y los procedimientos para la toma de decisiones realizadas por los expertos. - Posibilidad de trazar el razonamiento seguido por el SE. - Algunos SE utilizan coeficientes de verosimilitud para ponderar sus deducciones. - En manipulación de símbolos los SE abren el campo a nuevas aplicaciones. no automatizadas.

5.2 Limitaciones - Sentido común: Para un SE no hay nada obvio. Por ejemplo, un sistema experto sobre medicina podría admitir que un hombre lleva 40 meses embarazado, a no ser de que se especifique que esto no es posible. - Lenguaje natural: Con un experto humano podemos mantener una conversación informal mientras que con un SE no podemos. - Capacidad de aprendizaje: Cualquier persona aprende con relativa facilidad de sus errores y de errores ajenos, que un SE haga esto es muy complicado. - Perspectiva global: Un experto humano es capaz de distinguir cuales son las cuestiones relevantes de un problema y separarlas de cuestiones secundarias. - Capacidad sensorial: Un SE carece de sentidos. - Flexibilidad: Un humano es sumamente flexible a la hora de aceptar datos para la resolución de un problema. - Conocimiento no estructurado: Un SE no es capaz de manejar conocimiento poco estructurado. - La publicidad realizada alrededor de esta técnica seduce a muchas personas pero crea aspiraciones imposibles de satisfacer. - La extracción del conocimiento es el problema más complejo que se les plantea a los ingenieros de conocimientos.

Page 4: Sistema Expert o

- Ciertos problemas están ligados a la representación del conocimiento. - Los SE son incapaces de reconocer un problema para el que su propio conocimiento es inaplicable o insuficiente. - Los motores de inferencia poseen algunos límites. - Las interfaces con usuarios no son lo suficientemente amigables. - Las aplicaciones suministradas por los SE son, frecuentemente, esotéricas. - Falta personal competente para investigar y desarrollar aplicaciones. Campo de aplicaciones restringido y específico. - El costo es bastante alto.

6. CONCLUSIONES Un sistema experto puede, sin duda alguna, darnos el mismo resultado o mejor incluso, que un experto humano; lo que sí debemos reconocer es que ningún sistema experto, hasta ahora, puede resolver diferentes problemáticas dentro de una empresa, ya que estos son siempre muy específicos. Sin embargo, es de esperarse que con los avances que tienen las herramientas tecnológicas se produzca un desarrollo cercano al comportamiento humano en muchas áreas. Con estos avances en el terreno de los negocios se podría ser más eficiente y productivo. - Pueden resolver problemas muy difíciles tan bien o mejor que los expertos humano. - Razonan usando reglas e interactúan con los humanos de forma adecuada, incluyendo el lenguaje natural. - Manipulan y razonan sobre descripciones simbólicas. - Pueden razonar con datos que contienen errores. - Pueden contemplar múltiples hipótesis en competición simultáneamente. - Pueden explicar por qué están formulando una pregunta. - Pueden explicar su proceso de razonamiento y justificar conclusiones. Como conclusiones se puede decir que los sistemas expertos están siendo muy utilizados en aquellos entornos donde se necesite el conocimiento de expertos. El entorno de la producción es uno en donde se han desarrollado más prototipos y aplicaciones de

sistemas expertos. La mayoría de ellos utilizan reglas como técnica de representación, y han sido desarrollados mediante "shells", o en lenguajes simbólicos. Se podría entrenar el sistema para que los valores de la heurística sean óptimos, a través de aprendizaje con ejemplos y una red neuronal.

7. REFERENCIAS [1] Viejo Hernando Diego (2003). Sistemas expertos. Consultado en 06, 04, 2004 en http://www.divulga-ia.com [2] Samper Márquez Juan José (2004). Introducción a los sistemas expertos. Consultado en 06, 03, 2004 en http://www.redcientifica.com/doc/doc199908210001.html [3] Samper Juan (2003). Sistemas expertos. El conocimiento al poder. Consultado en 06, 03, 2004 en http://www.psycologia.com/articulos/ar-jsamper01.htm. [4] Criado Briz José Mario (2002). Introducción a los sistemas expertos. Consultado en 06, 05, 2004 en http://ingenieroseninformatica.org/recursos/tutoriales/sist_exp/cap1.php. [5] Wikipedia (2004). Sistema experto. Consultado en 06, 03, 2004 en http://es.wikipedia.org/wiki/Sistema_experto. [6] Castro Marcel (2002). Sistemas expertos. Consultado en 06, 04, 2004 en http://strix.ciens.ucv.ve/~iartific/Material/PP_Sistemas_Expertos.pdf. [7] Félix Justo (2004). Aplicaciones, ventajas y limitaciones de los sistemas expertos. Consultado en 06, 04, 2004 en http://efelix.iespana.es/efelix/expertaplicaciones.htm. [8] Montes Cerra Maria Clara (2003). Sistemas expertos. Consultado en 06, 05, 2004 en http://dis.eafit.edu.co/labs