Sistema experto: vendedor de coches

Transcription

Sistema experto: vendedor de coches
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.
- Interfaz de usuario: es la interacción entre el SE y el usuario y se
realiza mediante el lenguaje natural.
venta de coches del mercado, “guía del comprador de coches y
4x4” de Agosto de 2006.
4.1 Base de conocimientos
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:
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
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.
- 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.
- 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_Exper
tos.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

Documents pareils

Sistema experto

Sistema experto 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 cambios y de ...

Plus en détail