inmobiliaria inteligente - Departamento de Ingeniería Telemática

Anuncio
INMOBILIARIA INTELIGENTE
Aurora Avilés López-Sepúlveda
Alberto Gordillo Muñoz
Máster en Ingeniería Telemática
Universidad Carlos III de Madrid
Av. de la Universidad 30
28911 Leganés (Madrid)
Máster en Ingeniería Telemática
Universidad Carlos III de Madrid
Av. de la Universidad 30
28911 Leganés (Madrid)
[email protected]
[email protected]
RESUMEN
Este trabajo se basa en tiene como objetivo la creación
de un sistema experto [2] en CLIPS. El sistema se
encarga de ayudar a los usuarios que desean adquirir
una casa, ya sea para vivir habitualmente o para pasar
sus vacaciones. En función de las necesidades de cada
usuario, el sistema selecciona un conjunto de casas
que hacen que la tarea de encontrar la vivienda
adecuada sea más fácil.
A continuación, se expondrá una breve introducción a
CLIPS, la descripción del problema a resolver, las
decisiones tomadas para realizar el diseño,
implementación y por último se muestran unos
ejemplos de simulación.
Categorías
I.2.1 Applications and Expert Systems
Términos Generales
CLIPS probablemente es el sistema experto más
ampliamente usado debido a que es rápido, eficiente y
gratuito. Aunque ahora es de dominio público, aún es
actualizado y mantenido por su autor original, Gary
Riley.
Características principales
Las características principales de CLIPS [8] son:
Representación del Conocimiento: CLIPS permite
manejar una amplia variedad de conocimiento,
soportando tres paradigmas de programación: el
declarativo, el imperativo, y el orientado a objetos. La
programación lógica basada en reglas permite que el
conocimiento sea representado como reglas heurísticas
que especifican las acciones a ser ejecutadas dada una
situación. La POO permite modelar sistemas
complejos como componentes modulares. La
programación imperativa permite ejecutar algoritmos
de la misma manera que en C, Java, LISP y otros
lenguajes.
Design, Human Factors, Languages.
Palabras clave
Sistema experto, CLIPS, vivienda.
1. INTRODUCCIÓN
CLIPS [4] es una herramienta que provee un ambiente
de desarrollo para la producción y ejecución de
sistemas expertos. Fue creado a partir de 1984, en el
Lyndon B. Johnson Space Center de la NASA. Los
fondos cesaron a principios de los años 1990, y hubo
un mandato de la NASA para comprar software
comercial.
CLIPS es un acrónimo de C Language Integrated
Production System (Sistema de Producción Integrado
en Lenguaje C). En la actualidad, entre los paradigmas
de programación que soporta CLIPS se encuentran la
Programación lógica, la Programación imperativa y la
Programación Orientada a Objetos.
Portabilidad: CLIPS fue escrito en C con el fin de
hacerlo más portable y rápido, y ha sido instalado en
diversos sistemas operativos (Windows 95/98/NT,
MacOS X, Unix) sin ser necesario modificar su código
fuente. CLIPS puede ser ejecutado en cualquier
sistema con un compilador ANSI de C, o un
compilador de C++. El código fuente de CLIPS puede
ser modificado en caso que el usuario lo considere
necesario, con el fin de agregar o quitar
funcionalidades.
Integrabilidad: CLIPS puede ser embebido en código
imperativo, invocado como una sub-rutina, e integrado
con lenguajes como C, Java, FORTRAN y otros.
CLIPS incorpora un completo lenguaje orientado a
objetos (COOL) para la elaboración de sistemas
expertos. Aunque está escrito en C, su interfaz más
próxima se parece a LISP. Pueden escribirse
extensiones a CLIPS sobre C, y al contrario, CLIPS
puede ser llamado desde C. CLIPS puede ser
extendido por el usuario mediante el uso de protocolos
definidos.
Desarrollo Interactivo: La versión estándar de CLIPS
provee un ambiente de desarrollo interactivo y basado
en texto; este incluye herramientas para la depuración,
ayuda en línea, y un editor integrado. Las interfaces de
este ambiente tienen menús, editores y ventanas que
han sido desarrollados para MacOS, Windows
95/98/NT, X Window, entre otros.
que debe poder trabajar con datos que tengan un cierto
grado de abstracción.
Verificación/Validación:
CLIPS
contiene
funcionalidades que permiten verificar las reglas
incluidas en el sistema experto que está siendo
desarrollado, incluyendo diseño modular y
particionamiento de la base de conocimientos del
sistema, chequeo de restricciones estático y dinámico
para funciones y algunos tipos de datos, y análisis
semántico de reglas para prevenir posibles
inconsistencias.
Como el sistema trata con este tipo de datos su
respuesta debe ser flexible. No se busca un sistema
que seleccione la vivienda idónea para cada usuario
sino uno que, mediante la información que obtenga de
conversar con él, muestre las que mejor se ajustan a
sus necesidades permitiendo un cierto margen.
Documentación: En la página web oficial de CLIPS
se encuentra una extensa documentación que incluye
un Manual de Referencia y una Guía del Usuario.
Bajo Costo: CLIPS es un software de dominio
público.
Una de las razones del amplio uso de CLIPS está en
sus derivados e interfaces con otros lenguajes, como:
JESS: implementación de CLIPS en Java [6].
FuzzyCLIPS: incorpora a CLIPS la posibilidad de
usar razonamiento difuso [3].
CLIPSMM: una interfaz libre de CLIPS con C++ [7].
PHLIPS: extensión para PHP [1].
EHSIS: Implementación del lenguaje CLIPS con
APIs adicionales y documentación en castellano [10].
2. DESCRIPCIÓN DEL
PROBLEMA
La búsqueda de una vivienda es hoy en día un
problema habitual para gran parte de la población
española. Debido a la especulación urbanística de los
últimos años los jóvenes que desean encontrar su
primera vivienda, las familias que buscan un piso de
mayores dimensiones o incluso una segunda residencia
para mejorar su calidad de vida tienen grandes
dificultades para conseguirlo debido al gran número de
viviendas en venta y a su elevado precio.
El objetivo de este trabajo ha sido desarrollar un
sistema para facilitar en la medida de lo posible a sus
usuarios la búsqueda de una vivienda ya sea para vivir
habitualmente o para pasar sus vacaciones.
A la hora de buscar la forma de solucionar el problema
se ha buscado cumplir ciertos requisitos:
Una vez analizados estos requisitos se ha optado por
utilizar un sistema experto ya que una de sus
principales aplicaciones es la gestión del conocimiento
y su distribución a los usuarios de forma óptima para
satisfacer sus intereses [5]. Esto cumple perfectamente
con el objetivo anteriormente mencionado, facilitar la
búsqueda de una vivienda, y lo hará en forma de un
sistema de recomendación ya que es precisamente esto
lo que se pretende. Se busca emular a un agente
inmobiliario que mediante una serie de preguntas
averigua cuales son las necesidades de sus clientes y
ajusta su oferta a sus preferencias.
Para la implementación del sistema experto se ha
optado por CLIPS por tratarse de un software de
dominio público con extensa documentación y una
gran comunidad de usuarios.
3. DECISIONES DE DISEÑO
Como se ha dicho en el apartado anterior, el sistema
trata de emular a un agente inmobiliario que aconseja
a un cliente sobre las viviendas de que dispone. Para
realizar esta tarea efectuará una serie de preguntas al
usuario con objeto de obtener el conocimiento
necesario para seleccionar las viviendas más acordes a
sus preferencias. Mediante las preguntas y un sistema
de reglas el sistema decidirá cuales son las viviendas
que mejor se ajustan a los requisitos y preferencias del
usuario.
Existe un elevado número de variables que pueden
tomarse en consideración a la hora de buscar una
vivienda: el presupuesto inicial, la capacidad de
obtener un préstamo, la situación de la vivienda con
respecto a comunicaciones y a zonas recreativas
cercanas... Muchas de estas variables constan de un
elevado factor humano, es decir, tratan información
ambigua o imprecisa. La mejor forma de enfrentarse a
este problema sería utilizar modelos heurísticos como
factores de incertidumbre o teoría de inferencia
bayesiana pero, para no aumentar en exceso la
complejidad del sistema se ha optado por realizar una
aproximación general muy básica, tratando las
variables ambiguas como rangos de valores.
Debe tener la capacidad de conversar con los
usuarios, ya que éstos deben expresarle sus
preferencias y limitaciones en la búsqueda.
Se han definido cuatro tipos de usuarios del sistema:
un único individuo, una pareja, una familia,
diferenciables fácilmente por el número de personas
que lo componen, y un tipo especial llamado
vacacional, para los usuarios que busquen una segunda
residencia para pasar sus vacaciones.
Debe poder trabajar con datos imprecisos. Ciertas
preferencias de los usuarios no serán concretas por lo
El presupuesto de los usuarios se ha dividido en tres
grupos: bajo para los usuarios con poco poder
adquisitivo, medio para aquellos en una situación
económica más o menos acomodada y alto para
grandes fortunas o que al menos puedan permitirse
desembolsos
económicos
considerables.
Esta
clasificación otorga al sistema una cierta flexibilidad,
existe la posibilidad de que un usuario esté dispuesto a
gastarse una cantidad de dinero adicional a la que tenía
en un primer momento si se le muestra una vivienda
que excede su presupuesto pero no de forma
considerable.
Los tipos de vivienda han sido clasificados por su
tamaño: piso grande, piso pequeño, estudio y chalet.
Las reglas del sistema seleccionarán unos u otros
según el tipo de usuario, presupuesto y sus
preferencias.
Una vez definido el conjunto de usuarios, de viviendas
y presupuestos se define una serie de reglas que
interactuando con la base de conocimientos deciden si
es preciso realizar una pregunta concreta.
Para diferenciar el tipo especial de usuarios
“vacacional” del resto de usuarios es necesario
preguntar por el fin al que se va a destinar la vivienda;
si va a ser usada como vivienda durante las vacaciones
se tratará de un usuario “vacacional”, de lo contrario
se tratará de uno de los otros tres tipos mencionados
anteriormente.
Una vez diferenciado el usuario “vacacional” del resto
resulta razonable pensar que a dicho usuario no se le
deban formular las preguntas destinadas a otros tipos
de usuarios.
Para clasificar al resto de tipos de usuario se les
formula una pregunta referente al número de
habitantes. Si su respuesta es uno se trata de un
usuario individual, si es dos, una pareja y si el número
de habitantes es mayor de dos se tratará de una
familia.
Para un tipo de usuario individual se le pregunta
además por su edad, para clasificarlo en joven o adulto
ya que se ha considerado que los jóvenes pueden estar
interesados en pisos de reducidas dimensiones como
un estudio, sin embargo las personas de una mayor
edad no suelen buscar pisos tan pequeños y suelen
preferir viviendas que les ofrezcan una mayor
comodidad.
Las dos últimas preguntas no están destinadas a
clasificar al usuario sino a incluir en la búsqueda de la
vivienda sus preferencias. Se le pregunta acerca de si
prefiere que la vivienda se encuentre en la ciudad o en
un pueblo a las afueras (se ha definido la búsqueda
sólo para una ciudad y sus alrededores) y si prefiere
una casa de un tamaño grande o de dimensiones más
reducidas.
Una vez obtenida toda esta información se aplican las
reglas que descartan del total de viviendas disponibles
aquellas que no se ajustan al tipo de usuario y a sus
preferencias.
Como se ha dicho anteriormente el sistema realiza una
aproximación muy general al problema. Existen
multitud de casos que no han sido contemplados, no
obstante si se desease ampliar el grado de precisión del
sistema únicamente habría que aumentar el número de
variables, e incluir nuevas preguntas que permitan
tomarlas en consideración.
Figura 1. Diagrama de formulación de preguntas
Las preguntas que siempre deben realizarse son el
presupuesto del que dispone el usuario y si desea la
vivienda para vivir habitualmente o para usarla
durante sus vacaciones. Como se puede ver en la
Figura 1 el resto de preguntas no siempre se realizan
ya que dependen de los datos introducidos por el
cliente.
4. IMPLEMENTACIÓN
El sistema experto se ha implementado mediante 3
módulos: MAIN, USUARIO, CASAS.
4.1 MAIN
Módulo encargado de realizar las preguntas al
usuario, en función de sus respuestas el sistema
almacena hechos (facts) que luego serán de utilidad a
la hora de elegir una casa adecuada a las necesidades
del usuario.
Se han definido una serie de funciones encargadas de
realizar las preguntas.
realiza-pregunta:
función que
realiza
una
determinada pregunta al usuario y tiene un conjunto de
valores entre los cuales se debe hallar la respuesta del
usuario.
Esta función asocia la respuesta del usuario a una
variable y comprueba que lo que ha respondido
coincide con alguno de los valores entre los cuales
debe estar. Si no es así, realiza de nuevo la pregunta
hasta que la respuesta sea la esperada.
multi-pregunta: es una pregunta que puede tener
múltiples respuestas, llama a la función realizapregunta y almacena la respuesta en una variable.
obt-numero: se encarga obtener el número de
habitantes de la casa mediante una pregunta.
Almacenará en una variable el tipo de inquilinos de la
casa en cuestión: “individual”, si es una sola persona,
“familia”, si son más de dos personas o “pareja” si son
dos personas.
Cuando el motor de inferencias activa una regla, se
realiza la pregunta correspondiente y se añaden de
manera dinámica, mediante ”assert”, los hechos
relacionados con la pregunta y la respuesta del
usuario.
Los hechos que se almacenarán pueden ser los
siguientes:
uso: vivir o vacaciones. Para que quiere comprar la
casa.
localizacion: pueblo o ciudad. Dónde le gustaría
comprar la casa.
tipoHabitantes: individual, pareja o familia. Según el
número de personas que habiten la casa.
gustos: casa grande o pequeña, según las preferencias
del usuario.
presupuesto: alto, medio o bajo. Según la cifra que
introduzca el usuario.
edad: edad del usuario. Solo se almacenará si el
tipoHabitantes es individual.
4.2 USUARIO
Módulo que determina el tipo de usuario.
Se define una Superclase CLIENTE de la que
heredarán todos los demás tipos de usuarios. Este tipo
tiene un atributo presupuesto que indica el presupuesto
de la persona que va a comprar la casa.
obt-presupuesto: se encarga de obtener el
presupuesto en función de la respuesta del usuario a
una pregunta. Si el presupuesto es menor o igual a
100.000 euros diremos que tiene un presupuesto
“bajo”, si está entre 100.000 y 300.000 euros tendrá un
presupuesto “medio” y por último, si responde con una
cantidad mayor a 300.000 euros, se le asignará un
presupuesto “alto”.
A partir del usuario anterior, se definen una serie de
tipos de usuarios:
obt-edad: se encarga de obtener la edad de un usuario
de tipo “individual”, esta función solo se utilizará en
caso de que el número de habitantes sea 1, en cuyo
caso se preguntará la edad del usuario.
FAMILIA: más de dos habitantes. Sus propiedades
son localización y gustos.
Si un usuario tiene una edad de menos de 30 años, se
dirá que es “joven”, y si por el contrario, es mayor de
30 años, será “adulto”.
Una vez definidas todas las funciones que se
encargarán de realizar las preguntas, se definen una
serie de reglas que permitirán realizar las preguntas
convenientes usando las funciones definidas
anteriormente. Las respuestas de los usuarios
generarán hechos que se almacenarán en la memoria
de trabajo.
PAREJA: dos habitantes cuyas propiedades son:
localización y gustos.
INDIVIDUAL: un único habitante. Sus atributos son
localización, gustos y edad.
VACACIONAL: son los usuarios que quieren una
casa para pasar las vacaciones, no para vivir
habitualmente. Su única propiedad es la que hereda de
la superclase CLIENTE.
Después de haber definido los tipos de usuarios que
tenemos, procedemos a generar las reglas que
permitirán crear instancias de ellos.
Cuando se active una regla, se creará la instancia
correspondiente con los datos necesarios para el tipo
de usuario.
4.3 CASAS
Este modulo define los tipos de casas que hay
disponibles y además selecciona las que más se ajustan
a las necesidades del usuario.
Se crea una plantilla que define cómo es una casa. Una
casa estará formada por:
Titulo: nombre de la casa
Descripción: breve descripción acerca de la casa.
Tipo: tipo de casa, piso, chalet, etc.
Presupuesto: dentro de qué presupuestos se encuentra
la casa: alto, bajo…
Metros: metros cuadrados de la casa.
Precio: precio en euros de la casa.
A partir de aquí se definen una serie de hechos,
mediante deffacts, que conformarán los tipos de casas
disponibles en nuestra inmobiliaria.
Por último, se descartan las casas que no cuadran con
lo que el usuario está buscando. Estos descartes se
realizan mediante reglas.
descartar-por-vacaciones: si el usuario es de tipo
VACACIONAL, ha respondido que quiere una casa
para vacaciones, se le descartan las casas localizadas
en pueblo o ciudad. Suponemos que busca playa o
montaña para pasar sus vacaciones, algo alejado de
donde normalmente se habita.
descartar-por-localizacion: Para cualquier tipo de
cliente que haya respondido a la pregunta: ¿ Prefieres
una casa en la ciudad o en un pueblo? Al responder a
esta pregunta se inserta un hecho “localización”. Si el
cliente responde que busca una casa para vacaciones
no deberá responder a esta pregunta y por tanto está
regla no se activará.
En función de las preferencias del usuario, pueblo o
ciudad, se descartará la opción contraria a la que elija
el usuario.
descartar-por-edad: Para usuarios INDIVIDUALES
de edad joven, se descartan las casas tipo “chalet”
porque se supone que una persona joven no tiene un
presupuesto tal alto y además es una casa muy grande
para una persona joven.
descartar-por-familia: si el usuario es FAMILIA,
directamente se le descartan las casas tipo “estudio”
porque se suponen demasiado pequeñas para una
familia.
descartar-por-preferencias-familia: para usuarios de
tipo FAMILIA. En este caso se descartan casas según
los gustos del usuario, pero sin tener en cuenta las
casas de tipo “estudio” ya que a este usuario se le
descartaron anteriormente.
descartar-por-preferencias-joven: para usuarios
INDIVIDUAL, que además tengan edad “joven”. Esta
regla pretende descartar tipos de casas para este tipo
de usuarios, en función de sus gustos, sin tener en
cuenta las casas tipo “chalet” que ya se les habrían
descartado anteriormente.
descartar-por-preferencias: Esta regla se encarga de
descartar tipos de casas según las preferencias y gustos
del usuario, igual que las dos reglas anteriores. Ahora
la regla se activará para todo tipo de clientes,
excluyendo a familias e individuales que tienen sus
propias reglas.
descartar-por-presupuesto: Regla que descarta casas
según el presupuesto de los usuarios. Para un
presupuesto bajo se descartarán las casas de
presupuesto alto y medio y para uno medio solo se
descartan las de presupuesto alto.
Hasta este momento, hemos almacenado una serie de
hechos que se corresponden con las exigencias del
comprador a la hora de elegir una casa. Después,
hemos descartado las casas que no cumplen las
expectativas del cliente y finalmente tenemos los
hechos que nos permiten conocer exactamente el tipo
de casa buscado y, en función de esta información, se
mostrarán las casas más adecuadas para que el cliente
pueda elegir entre un número reducido de casas.
5. EJEMPLOS DE SIMULACIÓN
5.1 Prueba 1
Una persona joven desea comprar una casa en la
ciudad. Tiene un presupuesto limitado y busca una
casa pequeña.
Busca una casa para vivir o para
vacaciones
(vivir/vacaciones)? vivir
Cual es tu presupuesto? 100.000
Prefieres una casa en la ciudad o
en un pueblo
(ciudad/pueblo)? ciudad
Cuantas personas habitaran la
casa habitualmente? 1
Cuales
son
tus
preferencias
respecto al tamaño de la vivienda
(grande/pequena)? pequena
Cual es tu edad? 20
*********************************
********* Posible Casa **********
*********************************
Titulo: casa5
Descripción:
Casa
recogida,
ideal
para
jóvenes. Calle Alcalá nº 34 7ºA.
1 Habitación y 1 baño.(cocina
incluida en el salón)
Tipo: estudio
5.3 Prueba 3
Localizacion: ciudad
Precio/: 100000€
Metros:
40
Una pareja busca una casa grande para vivir en un
pueblo. Tienen un presupuesto alto.
Figura 2. Captura Prueba 1
En este caso se ha encontrado una casa que se adecua
a las necesidades del usuario.
5.2 Prueba 2
Una familia desea adquirir una casa en la ciudad. El
presupuesto del que disponen en bajo y además buscan
una casa grande en la que vivir 6 personas.
Busca una casa para vivir o para
vacaciones
(vivir/vacaciones)? vivir
Cual es tu presupuesto? 100.000
Prefieres una casa en la ciudad o
en un pueblo
(ciudad/pueblo)? ciudad
Cuantas personas habitaran la
casa habitualmente? 6
Cuales
son
tus
preferencias
respecto al tamaño de la vivienda
(grande/pequena)? grande
No tenemos ningna casa
para las necesidades
requeridas ...
posible
Figura 3. Captura Prueba 2
Durante el proceso de preguntas se han creado los
siguientes hechos:
f-0
(initial-fact)
f-16
(uso vivir)
f-17
(presupuestoEuros 100.0)
f-18
(presupuesto "bajo")
f-19
(localizacion ciudad)
f-20
(numHabitantes 6)
f-21
(tipoHabitantes
"familia")
f-22
(gustos grande)
Figura 4. Procesos Prueba 2
Se han creado las siguientes instancias:
Busca una casa para vivir o para
vacaciones
(vivir/vacaciones)? vivir
Cual es tu presupuesto? 300.000
Prefieres una casa en la ciudad o
en un pueblo
(ciudad/pueblo)? pueblo
Cuantas personas habitaran la
casa habitualmente? 2
Cuales
son
tus
preferencias
respecto al tamaño de la vivienda
(grande/pequena)? grande
*********************************
********* Posible Casa **********
*********************************
Titulo: casa8
Descripción:
Casa
tranquila,
ideal
para
relajarse. Perales de Tajuña.
Calle
Rioja,
nº
20
6ºC.
3
Habitaciones y 2 baños.
Tipo: piso-grande
Localizacion: pueblo
Precio/: 200000€
Metros:
95
*********************************
********* Posible Casa **********
*********************************
Titulo: casa7
Descripción:
Casa
aislada
del
riudo.
El
escorial, Calle San Juan, nº 40
2ºA. Urbanización: Puerto Jardín.
6 Habitaciones y baños. Piscina
compartida.
Tipo: chalet
Localizacion: pueblo
Precio/: 300000€
Metros:
400
Figura 6. Captura Prueba 3
[initial-object]
of
INITIALOBJECT
[gen3]
of
USUARIO::FAMILIA
(presupuesto
"bajo")
(localizacion
ciudad)
(gustos
grande)
Figura 5. Instancias Prueba 2
Finalmente podemos observar que el sistema no ha
encontrado ninguna casa que encaje con el perfil de
este usuario.
5.4 Prueba 4
En este último caso, el usuario busca una casa para
pasar sus vacaciones y tiene un presupuesto medio.
Busca una casa para vivir o para
vacaciones
(vivir/vacaciones)? vacaciones
Cual es tu presupuesto? 200.000
*********************************
********* Posible Casa **********
*********************************
Titulo: casa mar
Descripción:
Casa en Puerto de
Cádiz
Santa
Maria,
Tipo: duplex
Localizacion: playa
Precio/: 100000€
Metros:
60
*********************************
********* Posible Casa **********
*********************************
Titulo: casa montaña
Descripción:
Casa en la sierra, León
Tipo: duplex
Localizacion: montanya
Precio/: 210000€
Metros:
75
Figura 7. Captura Prueba 4
En el caso de que se busque una vivienda para
vacaciones, sólo se preguntará por el presupuesto para
seleccionar un conjunto de casas a mostrar al usuario.
6. CONCLUSIONES
Debido a que se trata de un sistema experto [9] nuestra
Inmobiliaria Inteligente se beneficia de ciertas
ventajas:
Velocidad: un sistema experto puede consultar una
base de datos y obtener resultados de forma más
rápida que cualquier ser humano.
Duplicación: una vez programado un sistema experto
puede ser duplicado infinidad de veces.
Bajo coste de duplicación: gracias a la capacidad de
duplicación el coste de obtener copias del sistema es
despreciable.
Permanencia: al contrario que los humanos, un
sistema experto no sufre pérdida de facultades con el
tiempo.
Sin embargo, pese a que el sistema funciona bien
dentro de sus limitaciones, se estableció en las
decisiones de diseño una aproximación muy básica al
problema de la búsqueda de una vivienda y existen
multitud de casos que puede no resolver
correctamente.
Para obtener un sistema con una mayor capacidad de
análisis se debería ampliar la población del sistema y
los factores a considerar en cada caso, debido a esto,
se debería aumentar también el número de preguntas
que se le realizan al usuario.
Probablemente la realización de un estudio de las
características de una vivienda más valoradas por los
clientes de una inmobiliaria nos otorgaría el
conocimiento necesario para mejorar el sistema,
definiendo nuevas variables y las preguntas necesarias
para obtener el conocimiento.
Dotando al sistema de mayor complejidad
conseguiríamos un aumento de precisión. Sin
embargo, los conjuntos de clasificación no deberán ser
demasiado estrictos ya que podría ocasionar un exceso
de precisión y, como el problema al que nos
enfrentamos consta de un considerable factor
subjetivo, es recomendable suavizar las reglas de
decisión. Con esto obtendríamos un sistema que deja
cierta libertad al usuario para elegir en torno a sus
preferencias una vez ya se han eliminado las opciones
que no son viables.
No obstante, debido a que se trata de un sistema
experto, tiene ciertas limitaciones como son:
Carece de sentido común: un sistema experto puede
llegar a conclusiones erróneas si no se establecen
correctamente las reglas que lo definen y no se
contempla este tipo de casos.
Difícil acceso a información no estructurada: un
humano puede tratar la información fácilmente aunque
no tenga una estructura definida, lograr esto en un
sistema experto supondría un aumento considerable de
su complejidad.
Perspectiva global: un sistema experto no distingue
cuales son las cuestiones más relevantes de un
problema.
Elevado coste inicial: realizar los estudios previos
necesarios para establecer correctamente las reglas que
definen el motor de inferencia de un sistema experto
son costosos.
Como mejora adicional al sistema, con objeto de tratar
de forma más eficiente el razonamiento humano del
que este sistema experto recibe la mayoría de los
datos, se le podrían añadir reglas de razonamiento bajo
incertidumbre. Es decir, debido a que la representación
de valores como el confort, la sensación de espacio o
las vistas de una vivienda pueden ser ambiguas o
imprecisas se podrían incluir en el sistema experto
modelos heurísticos como factores de incertidumbre o
redes bayesianas que le permitieran enfrentarse al
problema con mayores garantías.
Formas adicionales de mejorar el sistema podrían ser
utilizar sistemas de aprendizaje, como vecino más
cercano, redes neuronales y algoritmos genéticos, o
utilizar técnicas de minería de datos sobre la
información obtenida de la utilización del sistema.
7. REFERENCIAS
[1]
CLIPS - PHP Extension [en línea]. [ref. de 3
de enero de 2008]
<http://phlips.sourceforge.net/>
[2]
Montes Castro, Jesús. Sistemas expertos
(SE) [en línea]. [ref. de 4 de enero de 2008]
<http://www.monografias.com/trabajos16/si
stemas-expertos/sistemas-expertos.shtml>
[3]
Orchard, Bob. FuzzyCLIPS Web site [en
línea]. [ref. de 3 de enero de 2008]
<http://ai.iit.nrc.ca/IR_public/fuzzy/fuzzyCli
ps/fuzzyCLIPSIndex.html>
[4]
Riley, Gary. CLIPS: A Tool for Building
Expert Systems [en línea]. [ref. de 26 de
diciembre de 2007]
<http://www.ghg.net/clips/CLIPS.html>
[5]
Samper Márquez, Juan José. Introducción a
los Sistemas Expertos [en línea]. [ref. de 4
de enero de 2008]
<http://www.redcientifica.com/doc/doc1999
08210001.html>
[6]
Sandia National Laboratories. JESS, the Rule
Engine for the JavaTM Platform [en línea].
[ref. de 26 de diciembre de 2007]
<http://herzberg.ca.sandia.gov/>
[7]
Vinyard Jr., Rick L. clipsmm - C++ CLIPS
Interface [en línea]. [ref. de 3 de enero de
2008] <http://clipsmm.sourceforge.net/>
[8]
Wikipedia. CLIPS [en línea]. [ref. de 3 de
enero de 2008]
<http://es.wikipedia.org/wiki/CLIPS>
[9]
Wikipedia. Sistema experto [en línea]. [ref.
de 3 de enero de 2008]
<http://es.wikipedia.org/wiki/Sistema_expert
o>
[10]
Erabaki. EHSIS [en línea]. [ref. de 3 de
enero de 2008] <http://erabaki.ehu.es/ehsis/>
Descargar