0% encontró este documento útil (0 votos)
159 vistas7 páginas

Sistema Experto para Agencia de Viajes

El documento describe los componentes y usos de un sistema experto para una agencia de viajes. Explica que un sistema experto consiste en una base de conocimientos, motor de inferencia, base de datos e interfaz de usuario. Su propósito será recomendar viajes a clientes basándose en sus preferencias almacenadas en la base de conocimientos.

Cargado por

pabdere
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
159 vistas7 páginas

Sistema Experto para Agencia de Viajes

El documento describe los componentes y usos de un sistema experto para una agencia de viajes. Explica que un sistema experto consiste en una base de conocimientos, motor de inferencia, base de datos e interfaz de usuario. Su propósito será recomendar viajes a clientes basándose en sus preferencias almacenadas en la base de conocimientos.

Cargado por

pabdere
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas Experto: Agencia de Viajes

Irene Marquet Gómez Laura Luque Martínez


Estudiante Ing. Telecomunicación Estudiante Ing. Telecomunicación
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
[email protected] [email protected]

1.1 Usos de un sistema experto


RESUMEN
a) Un sistema experto es muy eficaz cuando tiene que analizar una
Vamos a implementar un sistema experto con Clips gran cantidad de información, interpretándola y proporcionando
cuyo propósito será aconsejar a un cliente sobre el viaje que mejor una recomendación a partir de la misma. Un ejemplo es el análisis
se ciñe a sus gustos y preferencias. Para ello primero haremos una financiero, donde se estudian las oportunidades de inversión,
breve descripción de los sistemas expertos y de su importancia y dependiendo de los datos financieros de un cliente y de sus
después pasaremos a desarrollar el problema con Clips, un sistema propósitos.
experto ampliamente utilizado.
b) Para detectar y reparar fallos en equipos electrónicos, se
utilizan los sistemas expertos de diagnóstico y depuración, que
formulan listas de preguntas con las que obtienen los datos
Términos Generales Algorithms, Design necesarios para llegar a una conclusión. Entonces recomiendan las
acciones adecuadas para corregir los problemas descubiertos. Este
Palabras clave tipo de sistemas se utilizan también en medicina (ej. MYCIN y
Clips, sistema experto, agencia de viajes, árbol PUFF), y para localizar problemas en sistemas informáticos
grandes y complejos.
1. INTRODUCION c) Los sistemas expertos son buenos para predecir resultados
Los sistemas expertos se pueden considerar como el futuros a partir del conocimiento que tienen. Los sistemas
primer producto verdaderamente operacional de la inteligencia meteorológicos y de inversión en bolsa son ejemplos de
artificial. Son programas de ordenador diseñados para actuar utilización en este sentido. El sistema PROSPECTOR es de este
como un especialista humano en un dominio particular o área de tipo.
conocimiento. En este sentido, pueden considerarse como
intermediarios entre el experto humano, que transmite su d) La planificación es la secuencia de acciones necesaria para
conocimiento al sistema, y el usuario que lo utiliza para resolver lograr una meta. Conseguir una buena planificación a largo plazo
un problema con la eficacia del especialista. El sistema experto es muy difícil. Por ello, se usan sistemas expertos para gestionar
utilizará para ello el conocimiento que tenga almacenado y proyectos de desarrollo, planes de producción de fábricas,
algunos métodos de inferencia. Para que un sistema experto sea estrategia militar y configuración de complejos sistemas
herramienta efectiva, los usuarios deben interactuar de una forma informáticos, entre otros.
fácil, reuniendo dos capacidades para poder cumplirlo:
e) Cuando se necesita controlar un proceso tomando decisiones
1. Explicar sus razonamientos o base del conocimiento: los como respuesta a su estado y no existe una solución algorítmica
sistemas expertos se deben realizar siguiendo ciertas adecuada, es necesario usar un sistema experto. Este campo
reglas o pasos comprensibles de manera que se pueda comprende el supervisar fábricas automatizadas, factorías
generar la explicación para cada una de estas reglas, que químicas o centrales nucleares. Estos sistemas son
a la vez se basan en hechos. extraordinariamente críticos porque normalmente tienen que
trabajar a tiempo real.
2. Adquisición de nuevos conocimientos o integrador del
sistema: son mecanismos de razonamiento que sirven f) El diseño requiere una enorme cantidad de conocimientos
para modificar los conocimientos anteriores. Sobre la debido a que hay que tener en cuenta muchas especificaciones y
base de lo anterior se puede decir que los sistemas restricciones. En este caso, el sistema experto ayuda al diseñador a
expertos son el producto de investigaciones en el campo completar el diseño de forma competente y dentro de los límites
de la inteligencia artificial ya que ésta no intenta de costes y de tiempo. Se diseñan circuitos electrónicos, circuitos
sustituir a los expertos humanos, sino que se desea integrados, tarjetas de circuito impreso, estructuras
ayudarlos a realizar con más rapidez y eficacia todas las arquitectónicas, coches, piezas mecánicas, etc.
tareas que realiza.
g) Por último, un sistema experto puede evaluar el nivel de
conocimientos y comprensión de un estudiante, y ajustar el
proceso de aprendizaje de acuerdo con sus necesidades.
1.2 Arquitectura y funcionamiento de un 1.2.4 Interfaz con el usuario
sistema experto El interfaz de usuario permite que el usuario pueda
La mayoría de los sistemas expertos tienen unos describir el problema al sistema experto. Interpreta sus preguntas,
componentes básicos: base de conocimientos, motor de inferencia, los comandos y la información ofrecida. A la inversa, formula la
base de datos e interfaz con el usuario. Muchos tienen, además, un información generada por el sistema incluyendo respuestas a las
módulo de explicación y un módulo de adquisición del preguntas, explicaciones y justificaciones.
conocimiento.
1.2.5 Modulo de explicacion
1.2.1 Base de conocimientos
La mayoría de los sistemas expertos contienen un
módulo de explicación, diseñado para aclarar al usuario la línea
La base de conocimientos contiene el conocimiento de razonamiento seguida en el proceso de inferencia. Si el usuario
especializado extraído del experto en el dominio. El método más pregunta al sistema cómo ha alcanzado una conclusión, éste le
común para representar el conocimiento es mediante reglas de presentará la secuencia completa de reglas usada
producción. El dominio de conocimiento representado se divide,
pues, en pequeñas fracciones de conocimiento o reglas. Una 1.2.6 Modulo de adquisicion
característica muy importante es que la base de conocimientos es
independiente del mecanismo de inferencia que se utiliza para El módulo de adquisición del conocimiento permite que
resolver los problemas. De esta forma, cuando los conocimientos se puedan añadir, eliminar o modificar elementos de conocimiento
almacenados se han quedado obsoletos, o cuando se dispone de (en la mayoría de los casos reglas) en el sistema experto.
nuevos conocimientos, es relativamente fácil añadir reglas
nuevas, eliminar las antiguas o corregir errores en las existentes. 1.3 Ventajas e Inconvenientes de un Sistema
1.2.2 Base de datos experto
La base de datos o base de hechos es una parte de la 1.3.1 Ventajas
memoria del ordenador que se utiliza para almacenar los datos
recibidos inicialmente para la resolución de un problema. a) Un sistema experto mejora la productividad al resolver
Contiene conocimiento sobre el caso concreto en que se trabaja. y decidir los problemas más rápidamente. Esto permite
También se registrarán en ella las conclusiones intermedias y los ahorrar tiempo y dinero. A veces sin esa rapidez las
datos generados en el proceso de inferencia. soluciones obtenidas serían inútiles.
1.2.3 Motor de inferencias b) Los valiosos conocimientos de un especialista se
El motor de inferencias es un programa que controla el guardan y se difunden, de forma que, no se pierden
proceso de razonamiento que seguirá el sistema experto. aunque desaparezca el especialista.
Utilizando los datos que se le suministran, recorre la base de c) Con un sistema experto se obtienen soluciones más
conocimientos para alcanzar una solución. La estrategia de control fiables gracias al tratamiento automático de los datos, y
puede ser de encadenamiento progresivo o de encadenamiento más contrastadas, debido a que se suele tener
regresivo. En el primer caso se comienza con los hechos informatizado el conocimiento de varios expertos.
disponibles en la base de datos, y se buscan reglas que satisfagan
d) Debido a la separación entre la base de conocimiento y
esos datos. Normalmente, el sistema sigue los siguientes pasos:
el mecanismo de inferencia, los sistemas expertos tienen
1. Evaluar las condiciones de todas las reglas respecto a la base de gran flexibilidad, lo que se traduce en una mejor
datos, identificando el conjunto de reglas que se pueden aplicar modularidad, modificabilidad y legibilidad del
(aquellas que satisfacen su parte condición) conocimiento.

2. Si no se puede aplicar ninguna regla, se termina sin éxito; en


caso contrario se elige cualquiera de las reglas aplicables y se
ejecuta su parte acción (esto último genera nuevos hechos que se
1.3.2 Inconvenientes
añaden a la base de datos)
a) El conocimiento humano es complejo de extraer y, a
3. Si se llega al objetivo, se ha resuelto el problema; en caso veces, es problemático representarlo. Si un problema
contrario, se vuelve al paso 1 sobrepasa la competencia de un sistema experto, sus
prestaciones se degradan de forma notable. Además, las
Al encadenamiento regresivo se le suele llamar guiado estrategias de razonamiento de los motores de inferencia
por objetivos, ya que, el sistema comenzará por el objetivo (parte suelen estar programadas procedimentalmente y se
acción de las reglas) y operará retrocediendo para ver cómo se adaptan mal a las circunstancias. Están limitados para
deduce ese objetivo partiendo de los datos. tratar problemas con información incompleta.
b) Un experto humano no estudia progresivamente una • Documentación: En la página Web oficial de CLIPS se
hipótesis, sino que decide de inmediato cuando se encuentra una extensa documentación que incluye un
enfrenta a una situación análoga a otra ocurrida en el Manual de Referencia y una Guía del Usuario.
pasado. Los sistemas expertos no utilizan este
razonamiento por analogía. • Bajo Costo: CLIPS es un software de dominio público.
c) Los costes y duración del desarrollo de un sistema
experto son bastante considerables (aunque se suelen 1.4.3 Derivadoss de Clips
amortizar rápidamente) y su campo de aplicación actual
es restringido y específico. Una de las razones del amplio uso de CLIPS está en sus derivados
e interfaces con otros lenguajes, como:
d) Problemas sociales que acarrean al ser susceptibles de
influir en la estructura y número de empleos. • JESS: implementación de CLIPS en Java+.

1.4 Clips • FuzzyCLIPS: incorpora a CLIPS la posibilidad de usar


razonamiento difuso.
1.4.1 Introduccion a Clips
CLIPS es una herramienta que provee un ambiente de • CLIPSMM: una interfaz libre de CLIPS con C++.
desarrollo para la producción y ejecución de sistemas expertos.
Fue creado a partir de 1984, en el Lyndon B. Johnson Space • PHLIPS: extensión para PHP.
Center de la NASA. Se trata de un acrónimo de C Language
Integrated Production System (Sistema de Producción Integrado • EHSIS: Implementación del lenguaje CLIPS con APIs
en Lenguaje C). En la actualidad, entre los paradigmas de adicionales y documentación en castellano.
programación que soporta CLIPS se encuentran la Programación
lógica, la Programación imperativa y la Programación Orientada a
Objetos. CLIPS es probablemente del sistema experto más
ampliamente usado debido a que es rápido, eficiente y gratuito.
2. AGENCIA DE VIAJES CON CLIPS
1.4.2 Caracteristicas de Clips 2.1 Planteamiento y Diseño
Queremos realizar una agencia de viajes que nos sugiera
Las características principales de CLIPS son: diferentes destinos y actividades a realizar según lo requisitos
demandados por el usuario. Para realizar este diseño hemos
• Representación del Conocimiento: CLIPS permite partido del diagrama de un árbol, en el que cada nodo tiene una
manejar una amplia variedad de conocimiento, pregunta asociada que se imprimirá por pantalla y que el cliente
soportando tres paradigmas de programación: el tendrá que responder, según la respuesta que responda el
declarativo, el imperativo, y el orientado a objetos. programa se encaminará a la rama del nodo correspondiente a la
respuesta elegida por el cliente. Una vez recorrido todo el árbol se
• Portabilidad: CLIPS fue escrito en C con el fin de llegará a una de las hojas del árbol que contendrá la respuesta
hacerlo más portable y rápido, y ha sido instalado en final.
diversos sistemas operativos (Windows 95/98/NT, Hemos planteado el diseño de manera que el árbol sea
MacOS X, Unix) sin ser necesario modificar su código n-ario, es decir a que el árbol no se limite a tener como máximo
fuente. CLIPS puede ser ejecutado en cualquier sistema dos nodos descendientes, así pues, cada nodo de nuestro árbol
con un compilador ANSI de C, o un compilador de podrá tener dos o más respuestas asociadas a el.
C++.
A continuación le mostramos una imagen de la raíz del
• Integrabilidad: CLIPS puede ser embebido en código árbol, cuya pregunta asociada es la época del año en la que le
imperativo, invocado como una sub-rutina, e integrado gustaría viajar. Las cuatro ramas llevaran a replicas de nodos con
con lenguajes como C, Java, FORTRAN y otros. las misma preguntas, la única diferencia será la respuesta final que
según la época del año será diferente.
• Desarrollo Interactivo: La versión estándar de CLIPS Vamos a describir el árbol de un ejemplo concreto, para
provee un ambiente de desarrollo interactivo y basado otras opciones como ciudad o naturaleza, las preguntas que se
en texto; este incluye herramientas para la depuración, realizarán al usuario serán diferentes.
ayuda en línea, y un editor integrado.

• Verificación/Validación:
CLIPS contiene funcionalidades que permiten verificar
las reglas incluidas en el sistema experto que está siendo
desarrollado.
Para diferenciar cada tipo de nodo y la decisión que
implica ese nodo, utilizamos el atributo type definido en node, de
este modo conseguimos tratar de diferente manera un nodo que
decide sobre la estación del año en que se quiere viajar y que tiene
cuatro hijos, de un nodo que decide sobre si se quiere viajar cerca
o lejos y que solo tiene dos hijos.

Figura 1

Según se elija playa, naturaleza o ciudad se ira a un Figura 4


nodo diferente cuya pregunta asociada será distinta. A
continuación se muestran los tres árboles correspondientes a la
elección de playa, ciudad y naturaleza. Si decidimos que no queremos deportes se nos ofrece la
posibilidad de ir a excursiones, y si nos decantamos por la opción
de los deportes se nos pregunta si queremos salir de fiesta.

Figura 2

Si por ejemplo hemos elegido otoño, descendemos por el nodo


hijo de otoño que toma la decisión sobre ¿playa, ciudad o Figura 5
naturaleza? Y según la decisión que tomemos sobre cerca o lejos,
iremos por la rama correspondiente.
Para las dos opciones se pregunta también si se desea
La siguiente decisión a tomar está representada por el siguiente salir de noche. Si hubiésemos seguido por el nodo de deportes
esquema: hubiésemos llegado a un nodo con el mismo tipo de decisión que
en este caso. Cuando respondemos a la pregunta sobre salir de
noche, llegamos al nodo final que nos muestra los destinos y las
propuestas adecuadas a la cadena de respuestas introducidas por
el usuario.

Figura 3
;;realiza la pregunta
(defrule ask-decision-paisaje-node-question
?node <- (current-node ?name)
(node (name ?name)
(type decisionpaisaje)
(question ?question))
(not (answer ?))
=>
(printout t ?question " (playa, ciudad o naturaleza) ")
(assert (answer (read))))
;;ver si la decision es correcta
Figura 6 (defrule bad-answer-paisaje
?answer <- (answer ~playa&~ciudad&~naturaleza)
=>

2.2 Implementación (retract ?answer))


Para implementar nuestro árbol en clips dividimos ;;playa
nuestro código en tres grandes bloques: (defrule proceed-to-playa-branch
?node <- (current-node ?name)
2.2.1 Definicion de Plantillas
Las plantillas son como clases pero sin (node (name ?name)
herencia. Nosotros definimos una plantilla que (type decisionpaisaje)
contendrá como atributos todos los nodos de nuestro
árbol, el nombre del nodo, el tipo de nodo (pregunta o (playa-node ?playa-branch))
respuesta), la pregunta correspondiente al nodo, y la ?answer <- (answer playa)
respuesta correspondiente al nodo: =>
(retract ?node ?answer)
(deftemplate node (assert (current-node ?playa-branch)))
(slot name) ;;ciudad
(slot type) (defrule proceed-to-ciudad-branch
(slot question) node <- (current-node ?name)
(slot otonyo-node) (node (name ?name)
(slot invierno-node) (type decisionpaisaje)
;;;Definimos aquí todos los nodos del árbol (ciudad-node ?ciudad-branch))
(slot answer)) ?answer <- (answer ciudad)

2.2.2 Motor de inferencias =>


El motor de inferencias trata de emparejar la lista de (retract ?node ?answer)
hechos con los patrones de las reglas. En este bloque definimos (assert (current-node ?ciudad-branch)))
las reglas encargadas de inicializar el programa, finalizar el
programa, realizar las preguntas, obtener el valor de las ;;naturaleza
respuestas, decidir cual es el siguiente nodo según el nodo en el (defrule proceed-to-naturaleza-branch
que se este y la respuesta del cliente, de asegurarse de si la
?node <- (current-node ?name)
respuesta dada por teclado es valida, y de preguntar al cliente si la
respuesta le satisface. (node (name ?name)
En el siguiente ejemplo vemos la regla encargada de (type decisionpaisaje)
preguntar si se desea un viaje asociado con la playa, ciudad o con
la naturaleza; de ver si la respuesta dada por teclado es correcta y (naturaleza-node ?naturaleza-branch))
según responda el cliente dirigirse al nodo asociado a la respuesta ?answer <- (answer naturaleza)
dada: =>
(retract ?node ?answer)
(assert (current-node ?naturaleza-branch)))
En el anterior ejemplo se pueden observar las cinco Te gusta mas disfrutar de... ( compras o arte ) compras
reglas asociadas a la pregunta: “¿desea playa, ciudad o LE RECOMIENDO:
naturaleza?”.
Nueva York,(EEUU) / Los Angeles,(EEUU) / Las
En este ejemplo tenemos tres posibles ramas por las que Vegas,(EEUU) / Sidney,(Australia)
podemos descender en el árbol, por ello definimos tres saltos Le gusta alguno de estos destinos? (si o no) si
diferentes según las respuesta que haya introducido el usuario.
Otra prueba? (si o no) no

2.2.3 Archivo destinos.dat Una ejecución de ejemplo para el caso en el que nos
En este archivo nos encargamos de definir todos los desviamos por la rama de naturaleza, eligiendo: primavera –
nodos del programa. En el siguiente ejemplo vemos como se naturaleza – fuera de Europa – calor – desierto.
define el nodo raíz que contiene varios atributos: el nombre del
nodo actual (i.e.root), el tipo de decisión, la pregunta que se
formula en dicho nodo, los nodos asociados a su respuesta, y la
respuesta asociada a este nodo que en este caso es nil: En que estacion le gustaria viajar? (otonyo, invierno, verano,
primavera) primavera
(node (name root) (type decision) (question "En que
estacion le gustaria viajar?") (otonyo-node node1) (invierno-node Que le apetece? (playa, ciudad o naturaleza) naturaleza
node2) (primavera-node node3)(verano-node node4)(answer nil)) Desea irse a Europa o fuera de Europa?... ( Europa o fuera ) fuera
Quieres un ambiente con... ( frio o calor ) calor
3. EJECUCIÓN Quieres un paisaje con... ( desierto o montanya ) desierto
LE RECOMIENDO:
Esta es una ejcución de ejemplo en la que las elecciones
son: invierno – playa – lejos – con deportes – salir de noche . El Cairo,(Egipto) / La Guajira,(Colombia) / Arizona(EEUU)
Al elegir la estación de invierno se recomienda al usuario un Le gusta alguno de estos destinos? (si o no) si
destino con el clima adecuado para esa época elegida.
Otra prueba? (si o no) no
En que estacion le gustaria viajar? (otonyo, invierno, verano,
primavera) invierno
Que le apetece? (playa, ciudad o naturaleza) playa Una ejecución de ejemplo para el caso en el que nos
Quiere irse... (cerca o lejos) lejos desviamos por la rama de ciudad, eligiendo: verano – ciudad –
Europa – norte – relajacion.
Le gustan los deportes? ( si o no ) si
Te gustaria salir de noche? ( si o no ) si En que estacion le gustaria viajar? (otonyo, invierno, verano,
LE RECOMIENDO: primavera) verano

Punta Cana,(Rep.Dominicana): Cursos de buceo, actividades de Que le apetece? (playa, ciudad o naturaleza) ciudad
futbol-playa, voley-playa,etc. y salidas a discotecas: Mangu, Desea irse a Europa o fuera de Europa?... ( Europa o fuera )
Areito,etc. Europa
/ Cancun,(mexico): Cursos de buceo, actividades de futbol-playa, Prefieres el centro de Europa o el norte? ( central o norte ) norte
voley-playa,etc. y salidas a discotecas: Coco-Bongo, Glazz,etc. Que prefieres tomarte un tiempo de .... ( relajacion o deportes )
Le gusta alguno de estos destinos? (si o no) si relajacion
LE RECOMIENDO:
Otra prueba? (si o no) no
Helsinki,(Finladia) / Malmo,(Suecia)
Veamos otro ejemplo de ejecución para el caso en el Le gusta alguno de estos destinos? (si o no) si
que se elige: verano – ciudad – fuera de europa – occidental – Otra prueba? (si o no) no
compras.
En que estacion le gustaria viajar? (otonyo, invierno, verano,
primavera) verano
Que le apetece? (playa, ciudad o naturaleza) ciudad
Y por último un ejemplo si nos queremos ir fuera de Europa a ver
Desea irse a Europa o fuera de Europa?... ( Europa o fuera ) fuera
arte, eligiendo: verano – ciudad – fuera de Europa – occidental –
Te llama mas la cultura oriental o la occidental ( oriental u arte.
occidental ) occidental
En que estacion le gustaria viajar? (otonyo, invierno, verano,
primavera) invierno
Que le apetece? (playa, ciudad o naturaleza) ciudad
Desea irse a Europa o fuera de Europa?... ( Europa o fuera ) fuera
Te llama mas la cultura oriental o la occidental ( oriental u
occidental ) occidental
Te gusta mas disfrutar de... ( compras o arte ) arte
LE RECOMIENDO:
Cordoba,(Argentina) / Buenos Aires,(Argentina) / Ciudad de
Mexico,(Mexico)
Le gusta alguno de estos destinos? (si o no) si
Otra prueba? (si o no) no

4. REFERENCIAS
[1] http://es.wikipedia.org/wiki/Sistema_experto
[2] http://www.monografias.com/trabajos10/exper/exper.shtml
[3] http://es.wikipedia.org/wiki/CLIPS
[4] http://www.redcientifica.com/doc/doc199908210001.html
[5] http://wwwdi.ujaen.es/~dofer/ico/material/CLIPS-Tutorial-
1.html
[6] http://wwwdi.ujaen.es/~dofer/ico/material/CLIPS-Tutorial-
2.html
[7] Apuntes de la asignatura

También podría gustarte