You are on page 1of 20

Universidad Tcnica de Manab

Facultad de Ciencias Informtcas


8
vo
Semestre A

Inteligencia Artfcial 2
Proyecto Sistema Experto Destnos Turstcos

Catedrtco: Ing. Hernn Vargas Nolivos
Alumno:
Moreira Gabriel



Portoviejo Manab






UNIVERSIDAD TCNICA DE MANAB







Visin:
Ser Institucin Universitaria, lder y referente de la Educacin Superior en el
Ecuador, promoviendo la creacin, desarrollo, transmisin y difusin de la ciencia,
la tcnica y la cultura, con reconocimiento social y proyeccin regional y mundial.

Misin:
Formar acadmicos, cientficos y profesionales responsables, humanistas, ticos y
solidarios, comprometidos con los objetivos del desarrollo nacional, que contribuyan
a la solucin de los problemas del pas como Universidad de Docencia con
investigacin, capaces de generar y aplicar nuevos conocimientos, fomentando la
promocin y difusin de los saberes y las culturas, previstos en la Constitucin de la
Repblica del Ecuador.





FACULTAD DE CIENCIAS INFORMTICAS







Visin:
Ser una facultad lder que con integridad, transparencia y equidad forme
profesionales capaces de desarrollar soluciones informticas innovadoras,
generadoras de conocimientos e investigacin permanente.


Misin:
Formar profesionales investigadores en el campo de las ciencias informticas al
servicio de la sociedad que aporten con soluciones innovadoras al desarrollo
tecnolgico del pas.

















TEMA:
Sistema experto Destinos Tursticos















Introduccin
Desde que naciera la Inteligencia Artificial como tal ciencia, a principios de los 60, hasta la
actualidad, se han venido realizando numerosos trabajos, para el desarrollo de los diversos
campos que componen la Inteligencia Artificial. De todos esos campos, quiz el que puede tener
mayor nmero de aplicaciones prcticas sea el de los Sistemas Expertos, siendo dichas
aplicaciones de utilidad en temas tan variados que pueden ir desde la medicina hasta
la enseanza.
Palabras claves: Sistemas Expertos, inteligencia, conocimiento, razonamiento
En palabras de un gran matemtico, Blaise Pascal: "Como no se puede ser universal y saber todo
acerca de todo, es mejor saber un poco de cada tema, que saber todo sobre un solo tema ", as fue
como inici la inquietud de los investigadores en los aos 40, con la idea de un sistema general
de resolucin de problemas (General Problem Solver: GPS), que por medio de una serie
de algoritmos basados en anlisis, ms o menos exhaustivos, fuera capaz de resolver toda clase de
problemas relativos a juegos de estrategias y demostraciones automticas. La ambicin era
grande, as como lo fue la decepcin que tuvieron al ver que a pesar de los progresos tericos y
de algunos programas espectaculares, no obtuvieron los resultados que se esperaban.
Entonces se da un cambio en la direccin del problema, se enfocaran en un dominio especfico,
y recurriendo al conocimiento sobre el tema obtenido de las mismas personas, pretenden simular
el razonamiento de un experto humano ante alguna situacin.
As es como surge una de las ramas de mayor avance dentro de la Inteligencia Artificial, los
Sistemas Expertos; con la idea de automatizar la labor del experto, partiendo en ocasiones
de informacin insuficiente o incompleta.
Este artculo presentar una introduccin al amplio tema de la Inteligencia Artificial, para luego
llegar al campo de los Sistemas Expertos, dndonos una descripcin general de lo que es,
revisando su concepto, estructura, campos de aplicacin y ejemplos que fortalezcan la
comprensin de los mismos.
La Inteligencia Artificial comenz como el resultado de la investigacin en psicologa cognitiva
y lgica matemtica. Se ha enfocado en la explicacin del trabajo mental y construccin de
algoritmos de solucin a problemas de propsito general.
La Inteligencia Artificial es una combinacin de la
ciencia del computador, fisiologa y filosofa, tan general y amplio como eso; rene varios
campos (robtica, sistemas expertos, por ejemplo), todos los cuales tienen en comn la creacin
de mquinas que pueden "pensar".
La idea de construir una mquina, que pueda ejecutar tareas que parecen necesitar de la
inteligencia humana para llevarse a cabo es un atractivo. Las tareas que han sido estudiadas
desde este punto de vista incluyen juegos, traduccin de idiomas, comprensin de
idiomas, diagnstico de fallas, robtica, suministro de asesora experta en diversos temas.
Es as como los sistemas de administracin de base de datos cada vez ms sofisticados, la
estructura de datos y el desarrollo de algoritmos de insercin, borrado y locacin de datos, as
como el intento de crear mquinas capaces de realizar tareas que son pensadas como tpicas del
mbito de la inteligencia humana, acuaron el trmino Inteligencia Artificial en 1956.
Marco Terico
Inteligencia artificial (IA)
Un Sistema Experto es una aplicacin informtica que simula el comportamiento de un experto
humano, en el sentido de que es capaz de decidir cuestiones, aunque sea en un campo
restringido.
Para esto, se debe tener en cuenta que la principal caracterstica del experto humano viene a ser
el conocimiento o habilidades profundas en ese campo concreto, por consiguiente, un Sistema
Experto debe ser capaz de representar ese conocimiento profundo con el objetivo de utilizarlo
para resolver problemas, justificar su comportamiento e incorporar nuevos conocimientos. Se
podra incluir tambin el hecho de poder comunicarse en lenguaje natural con las personas,
aunque esta capacidad no es tan determinante como las anteriores de lo que se puede definir
como Sistema Experto [IBAR].
Un experto humano es alguien con un conocimiento profundo, que no solamente soluciona
problemas especficos sino que tambin los pone dentro de un contexto ms amplio. Ellos
"transfieren" todos sus conocimientos y experiencias a una computadora que posiblemente los
sustituya en su labor. Pero los sistemas an carecen de algo que tal vez jams vayan a tener:
Inteligencia natural.
Los sistemas expertos se aplican por norma general en problemas que implican
un procedimiento basado en el conocimiento. O sea, un procedimiento que comprende la
utilizacin de normas o estructuras que contengan conocimientos y experiencias de
expertos, deduccin lgica de conclusiones, capacidad de interpretar datos ambiguos y la
manipulacin de conocimientos afectados por la probabilidad.
La mejor forma de entender el funcionamiento de un Sistema Experto es conociendo los
componentes que conforman la estructura del mismo, y las funciones que desempean
individualmente. Dichos componentes se tratarn seguidamente.

Componentes de un Sistema Experto
Aunque los componentes de un Sistema Experto no se manejan de forma estndar, nos
encontramos con un modelo tradicional en la estructura de los mismos.
El conocimiento del experto se obtiene de alguna forma (Subsistema de adquisicin de
conocimientos) y se organiza en una base de conocimientos, y en funcin de los datos
disponibles de la aplicacin (base de hechos o base de datos) se imita la forma de actuar del
experto explorando en la base de conocimientos hasta encontrar la solucin (motor de
inferencia). Los resultados finales y la forma en que se obtienen se expresan a travs de la
interface hombre-mquina. Adems algunos sistemas expertos manejan un componente de
explicacin.



A continuacin se explican de forma individual cada uno de los componentes, iniciando con el
subsistema de adquisicin de conocimientos.
El mdulo de adquisicin del conocimiento permite que se puedan aadir, eliminar o modificar
elementos de conocimiento (en la mayora de los casos reglas) en el sistema experto. Si el entorno
es dinmico es muy necesario, puesto que, el sistema funcionar correctamente slo si se
mantiene actualizado su conocimiento. El mdulo de adquisicin permite efectuar
ese mantenimiento, anotando en la base de conocimientos los cambios que se producen [CHAP].
Todos los conocimientos que se obtienen deben ser estructurados de una forma correcta, todo
este conocimiento se almacena en lo que se conoce como la base de conocimientos.

Subsistema de adquisicin de Conocimientos
La base de conocimientos contiene el conocimiento especializado extrado del experto en el
dominio. Es decir, contiene conocimiento general sobre el dominio en el que se trabaja [SAMP].
El enfoque ms comn para representar el dominio del conocimiento que se requiere para un
Sistema Experto son las reglas de produccin. Estas pueden ser referidas como reglas
`` situacin-accin" o `` if-then". De esta forma, con frecuencia una base de conocimientos esta
fraguada principalmente de reglas, las cuales son invocadas por un casamiento de patrones con
las particularidades de las tareas circunstanciales que van apareciendo en la base de datos global.
Un ejemplo de regla de produccin es:

Si (*Persona edad 18)
and (*Persona sexo masculino)
Entonces (*Persona hacer Servicio_militar)
La regla anterior determina que si una persona tiene 18 aos y adems es de sexo
masculino, deber hacer el servicio militar.
Existen reglas de produccin que indican bajo que condiciones deben considerarse unas
reglas en vez de otras, estas reglas son conocidas como Metareglas. Un ejemplo de
Metaregla es:
Si(paciente edad_avanzada)
entonces(reglas enfermedades_ancianos)
La Metaregla anterior determina que si un paciente es de edad avanzada, debern aplicarse las
reglas de enfermedades en ancianos, en lugar de utilizar las de enfermedades en jvenes por
ejemplo.
La fuerza de un Sistema Experto yace en el conocimiento especfico del dominio del problema.
Casi todos los sistemas existentes basados en reglas contienen un centenar de ellas y
generalmente se obtienen de entrevistas con expertos durante un tiempo largo. En cualquier
Sistema Experto, las reglas se conectan una a otra por ligas de asociacin para formar redes de
reglas. Una vez que han sido ensambladas tales redes, entonces tenemos una representacin de
un cuerpo de conocimientos que es substancial.
Generalmente, un experto tiene muchas reglas de criterio o empricas por lo que el soporte suele
ser incompleto para la evidencia que se dispone. En tales casos una tcnica es la de
vincular valores numricos a cada regla para indicar el grado de certidumbre que sta tiene.
En la operacin de Sistemas Expertos los valores de certidumbre se combinan unos a otros a
travs de la red, considerando tambin, la certidumbre de los datos de entrada del problema,
para llegar finalmente a un valor de certidumbre de la solucin final.
Pero no es suficiente con conocer la base de conocimientos para entender la estructura y el
funcionamiento de los Sistemas Expertos, otro de los componentes esenciales de estos sistemas,
es la base de datos o base de hechos.

Base de Conocimientos
La base de datos o base de hechos es una parte de la memoria del ordenador que se utiliza para
almacenar los datos recibidos inicialmente para la resolucin de un problema.
Contiene conocimiento sobre el caso concreto en que se trabaja. Tambin se registrarn en ella
las conclusiones intermedias y los datos generados en el proceso de inferencia. Al memorizar
todos los resultados intermedios, conserva el vestigio de los razonamientos efectuados; por lo
tanto, se puede utilizar explicar las deducciones y el comportamiento del sistema.
Todos estos datos no son suficientes, si no se tiene un sistema encargado de procesar y manipular
toda la informacin para generar los resultados deseados, este sistema es conocido
como Motor de inferencia.

Base de Datos o Base de Hechos
El motor de inferencia es el "supervisor", un programa que est entre el usuario y la base de
conocimientos, y que extrae conclusiones a partir de los datos simblicos que estn almacenados
en las bases de hechos y de conocimiento. Dependen en gran medida de la representacin
elegida; por su importancia analizaremos los motores de inferencia basados en reglas.
Existen varios algoritmos de bsqueda 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 delante y encadenamiento hacia atrs.
La llamada "tcnica de encadenamiento hacia adelante" consiste en aplicar al conocimiento-base
(organizado en forma de reglas de produccin), junto con otro conocimiento disponible, el
esquema inferencial modus ponens. Esta estrategia se denomina "encadenamiento hacia
adelante" o "razonamiento de datos dirigidos", porque comienza con los datos conocidos y aplica
el modus ponens sucesivamente hasta obtener los resultados que se siguen. Las reglas se aplican
"en paralelo", o sea, en cualquier iteracin una regla toma los datos cuales eran al principio del
ciclo, por lo tanto el conocimiento-base y el sistema no dependen del orden en el que las reglas
son establecidas, almacenadas o procesadas. Esta tcnica suele utilizarse cuando la cantidad de
datos es potencialmente muy grande, y resulta de inters algn conocimiento especfico tomado
en consideracin (caso tpico en los problemas de diagnstico; MYCIN, por ejemplo).
La tcnica del "encadenamiento hacia atrs" consiste en tratar de probar un dato (o
conocimiento) engarzndolo en las reglas-base con el esquema de inferencia modus ponens, o
sea, tomando al dato como un consecuente y buscando en el conocimiento-base el
correspondiente antecedente, a travs de los pasos correspondientes.
Estas dos formas de inferencia se corresponden con los dos mtodos lgicos clsicos conocidos
por varios nombres: mtodo resolutivo / mtodo compositivo; anlisis / sntesis. La distincin
se basa en la relacin direccional entre objetivos y datos. Y ambas formas pueden combinarse
en el razonamiento. Cabe partir de un supuesto inicial, inferir una conclusin mediante un
razonamiento hacia adelante y luego establecer un encadenamiento hacia atrs hasta encontrar
los datos que confirman esa conclusin.
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
implementacin del conocimiento, llevando incorporado el motor de inferencia. La forma en que
se obtiene o se presenta la informacin debe ser tal, que facilite la comprensin de los datos y la
forma como se ingresa la informacin, por lo cul es necesario la interfase Hombre-Mquina.

Motor de Inferencia
La interface establece una comunicacin sencilla entre el usuario y el sistema. El usuario puede
consultar con el sistema a travs de mens, grficos, o algn otro tipo de interfaces, y ste le
responde con resultados. Tambin 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 informacin excesiva o confusa dificulta la
actuacin en tiempo real.
Aunque no se maneja dentro de la estructura de un Sistema Experto en general, existe un
componente adicional, el componente de explicacin, el cual se tratar a continuacin.

Ventajas y Desventajas de los Sistemas Expertos
A la hora de tomar la decisin de desarrollar un Sistema Experto, se deben analizar las distintas
ventajas y desventajas que estos tienen.
Ventajas
Entre las principales ventajas de un Sistema Experto, se pueden mencionar:
Los Sistemas Expertos que se codifican y tratan el conocimiento de un experto, alcanzan el
nivel de prestaciones de un experto humano.
La separacin entre base de conocimiento y motor de inferencia proporciona una gran
flexibilidad al Sistema.
Los Sistemas Expertos permiten llegar a una reflexin sobre el conocimiento y
los procedimientos, para toma de decisiones realizados por los expertos.
Posibilidad de trazar el razonamiento seguido por el Sistema Experto.
Algunos Sistemas Expertos utilizan coeficientes de verosimilitud para ponderar sus
deducciones.
En manipulacin de smbolos, los Sistemas Expertos abren el campo a nuevas aplicaciones,
no automatizadas hasta la fecha.
Desventajas
Aunque son grandes las ventajas, no hay que dejar de lado las desventajas que se pueden
presentar:
La publicidad realizada alrededor de esta tcnica seduce a muchas personas pero crea
aspiraciones imposibles de satisfacer.
La extraccin del conocimiento es el problema ms complejo que se les plantea a los
ingenieros de conocimientos.
Ciertos problemas estn ligados a la representacin 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 lmites.
Las interfaces con usuarios no son lo suficientemente amigables.
Las aplicaciones suministradas por los SE son, frecuentemente, esotricas.
Falta personal competente para investigar y desarrollar aplicaciones.
Campo de aplicaciones restringido y especfico.
El costo es bastante alto.
Aunque se conozcan las ventajas y las desventajas de los Sistemas Expertos, no se logra una
visin clara de los Sistemas Expertos y su capacidad, hasta que se conocen algunos ejemplos en
aplicaciones reales.

















Pruebas


Funcin principal del programa:
En esta primera prueba, el programa no nos devuelve ninguna ciudad acorde con los
requisitos especificados por el usuario porque el presupuesto introducido es
insuficiente para desplazarse a cualquier ciudad situada al norte y con playa.
Posteriormente, vemos cmo aumentando el presupuesto, obtenemos ms ciudades
y diferentes medios de transporte.


































Conclusiones
Gracias al lenguaje de programacin Prolog, hemos conseguido resolver el problema del
desarrollo de un sistema experto en turismo de una manera relativamente sencilla.
Por medio de la declaracin de una base de hechos y unas sencillas reglas somos capaces de,
a partir de ciertas premisas, llegar a la recomendacin de la ciudad ms adecuada para el
viajero que utiliza nuestro programa.
Durante la implementacin de este programa hemos profundizado ms en el conocimiento
del lenguaje Prolog, disfrutando en su programacin y aumentando nuestro inters en el
campo de la inteligencia artificial, y la creacin de sistemas expertos.
Por otro lado, consideramos que aplicaciones de este tipo son tiles para el ser humano, y
pensamos darle uso ms de una vez para escoger una ciudad a la que viajar.





















Cdigo Fuente
%***************************
% DESCRIPCIN DEL PROGRAMA.
%***************************
% Este programa se encarga de recomendar una ciudad a la que viajar desde Madrid
% y pasar all un fin de semana.
% El programa selecciona la ciudad de acuerdo con tus preferencias y te recomienda
% un medio de transporte para ir all.
% Todo esto teniendo en cuenta el presupuesto del que dispones.
% Para invocar a la funcion, se escribe:
% finde(Ciudad,Mes,Presupuesto,Transporte,Precio,[Preferencias]).
% Donde Preferencias puede ser una o varias de entre las siguientes:
% montaa, playa, norte, sur, fiestas, cultural, juerga o parque_tem
%****************
% BASE DE HECHOS
%****************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ciudades
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ciudad(corua).
ciudad(oviedo).
ciudad(santander).
ciudad(bilbao).
ciudad(logroo).
ciudad(pamplona).
ciudad(zaragoza).
ciudad(barcelona).
ciudad(valencia).
ciudad(murcia).
ciudad(sevilla).
ciudad(toledo).
ciudad(caceres).
ciudad(valladolid).

%%%%%%%%%%%%%%%%%%%%%
%precios transportes
%%%%%%%%%%%%%%%%%%%%%
% Precios en AUTOBUS (Ida/Vuelta)
en_bus(corua,54). %Alsa-Enatcar
en_bus(oviedo,49). %Alsa-Enatcar
en_bus(santander,41). %Continental Auto
en_bus(bilbao,41). %Continental Auto
en_bus(logroo,35). %Continental Auto
en_bus(pamplona,45). %Continental Auto
en_bus(zaragoza,21). %Alsa
en_bus(barcelona,41). %Alsa
en_bus(valencia,19). %Auto-Res
en_bus(murcia,41). %Alsa-Enatcar
en_bus(sevilla,26). %Socibus-Sercobus
en_bus(toledo,8). %Galiano-Continental
en_bus(caceres,29). %Auto-Res
en_bus(valladolid,20). %Alsa-Enatcar
%Precio en COCHE para un consumo medio de 6 litros/100 km.
%Precio gasolina: 0.9 /litro
%Recorrido: Ida/Vuelta
en_coche(corua,82). %587.5 km (9 euros peaje (ida))
en_coche(oviedo,80). %445 km (16 euros peaje (ida))
en_coche(santander,42). %382 km (no peaje)
en_coche(bilbao,71). %386.5 km (14.30 peaje)
en_coche(logroo,56). %361.5 km (8.30 peaje)
en_coche(pamplona,67). %440.3 km (9.59 peaje)
en_coche(zaragoza,34). %311.6 km (no peaje)
en_coche(barcelona,106). %611.5 km (19.85 peaje)
en_coche(valencia,38). %356.1 km (no peaje)
en_coche(murcia,43). %400.4 km (no peaje)
en_coche(sevilla,57). %526.1 km (no peaje)
en_coche(toledo,8). %75.2 km (no peaje)
en_coche(caceres,33). %302.8 km (no peaje)
en_coche(valladolid,20). %188.3 km (no peaje)
% Precios en TREN (Ida/Vuelta)
en_tren(corua,80).
en_tren(oviedo,67).
en_tren(santander,65).
en_tren(bilbao,59).
en_tren(logroo,56).
en_tren(pamplona,69).
en_tren(zaragoza,43).
en_tren(barcelona,118).
en_tren(valencia,73).
en_tren(murcia,68).
en_tren(sevilla,100).
en_tren(toledo,8).
en_tren(caceres,44).
en_tren(valladolid,41).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Precios Hoteles (precio por finde,1 persona en hab. doble, hotel 3 estrellas)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Se considera el mismo precio para todos, ya que se hace uso de talones de Bancohotel
finde_hotel(corua,50).
finde_hotel(oviedo,50).
finde_hotel(santander,50).
finde_hotel(bilbao,50).
finde_hotel(logroo,50).
finde_hotel(pamplona,50).
finde_hotel(zaragoza,50).
finde_hotel(barcelona,50).
finde_hotel(valencia,50).
finde_hotel(murcia,50).
finde_hotel(sevilla,50).
finde_hotel(toledo,50).
finde_hotel(caceres,50).
finde_hotel(valladolid,50).
%%%%%%%%%%%%%%%%%%%%%
%Caractersticas de las ciudades.
%%%%%%%%%%%%%%%%%%%%%
% Ciudades con playa o muy proximas a ella
playa(corua).
playa(oviedo).
playa(santander).
playa(bilbao).
playa(barcelona).
playa(valencia).
playa(murcia).
% Ciudades de elevada importancia cultural
cultural(bilbao).
cultural(zaragoza).
cultural(barcelona).
cultural(valencia).
cultural(sevilla).
cultural(toledo).
cultural(caceres).
cultural(valladolid).
% Ciudades por las que salir de juerga
juerga(bilbao).
juerga(zaragoza).
juerga(barcelona).
juerga(valencia).
juerga(sevilla).
% Cercana a parques temticos
parque_tem(barcelona).
parque_tem(valencia).
parque_tem(sevilla).
% Zona montaa o rural
montaa(oviedo).
montaa(santander).
montaa(bilbao).
montaa(logroo).
% Situacin geografica
norte(corua).
norte(oviedo).
norte(santander).
norte(bilbao).
norte(logroo).
norte(pamplona).
norte(zaragoza).
norte(barcelona).
norte(valladolid).
sur(valencia).
sur(murcia).
sur(sevilla).
sur(toledo).
sur(caceres).
% Fiestas autonmicas
fiestas(zaragoza,octubre). % El Pilar
fiestas(sevilla,abril). % Feria de abril.
fiestas(pamplona,julio). % San Fermn.
fiestas(valencia,marzo). % Las fallas.
fiestas(bilbao,agosto). % Fiestas.
%*****************************************************
% DECLARACION DE PREDICADOS O RELACIONES DERIVADAS
%*****************************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Precio del transporte a una Ciudad, segn se vaya en tren,coche o bus.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
transporte(Ciudad,bus,Coste):- en_bus(Ciudad,Coste).
transporte(Ciudad,coche,Coste):- en_coche(Ciudad,Coste).
transporte(Ciudad,tren,Coste):- en_tren(Ciudad,Coste).
%%%%%%%%%%%%%%%%%%%%%
%Precio del viaje completo a una ciudad.
%%%%%%%%%%%%%%%%%%%%%
% viaje dice el precio de un fin de semana en una ciudad, teniendo en cuenta el hotel
% y el precio del transporte.
viaje(Ciudad,Transporte,Precio):- transporte(Ciudad,Transporte,Coste_t),finde_hotel(Ciudad,Coste_h),Precio is
Coste_t+Coste_h.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Seleccion de una ciudad en funcion de la opcion elegida
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
opcion_elegida(juerga,_,Ciudad):-juerga(Ciudad).
opcion_elegida(playa,_,Ciudad):-playa(Ciudad).
opcion_elegida(cultural,_,Ciudad):-cultural(Ciudad).
opcion_elegida(parque_tematico,_,Ciudad):-parque_tem(Ciudad).
opcion_elegida(montaa,_,Ciudad):-montaa(Ciudad).
opcion_elegida(norte,_,Ciudad):-norte(Ciudad).
opcion_elegida(sur,_,Ciudad):-sur(Ciudad).
opcion_elegida(fiestas,Mes,Ciudad):-fiestas(Ciudad,Mes).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Descripcion de la informacion de cada ciudad.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
descripcion(corua):- write('Ciudad: A CORUA.'),nl,
write('La distancia desde Madrid es: 587.5 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Obelisco Millenium (50 metros de altura).'),nl,
write(' - Casa del hombre (Museo La Domus).'),nl,
write(' - Faro Romano "La torre de Hrcules."'),nl,
write(' - Castillo de San Antn.'),nl,
write('En cuanto a la gastronoma, pescados y mariscos de gran calidad, vinos... (MUY
RECOMENDABLE).'),nl.
descripcion(oviedo):- write('Ciudad: OVIEDO.'),nl,
write('La distancia desde Madrid es: 445 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Teatro Campoamor.'),nl,
write(' - Gran belleza de las esculturas pblicas.'),nl,
write(' - La casa de la Ra.'),nl,
write(' - Palacio Episcopal.'),nl,
write('La sidra es la ms antigua y la mejor del mundo segn expertos. An no la has
probado?'),nl.
descripcion(santander):- write('Ciudad: SANTANDER.'),nl,
write('La distancia desde Madrid es: 382 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Museos: Bellas Artes, Menendez Pelayo, Martimo del Cantbrico.'),nl,
write(' - Bellsimos itinerarios: Santander martimo, Pennsula de la Magdalena y sus playas,'),nl,
write(' Santander monumental Cabo mayor, El Sardinero y sus Playas.'),nl.
descripcion(bilbao):- write('Ciudad: BILBAO.'),nl,
write('La distancia desde Madrid es: 386.5 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Museo Guggenheim, Teatro Arriaga, Baslica de Begoa.'),nl,
write(' - Catedral de Santiago, Iglesia de San Antn, Mercado de la Ribera.'),nl,
write(' - Palacio de Congresos (el EUSKALDUNA).'),nl,
write(' - Pasarela de Calatrava .'),nl,
write('El 22 de Agosto son las Fiestas locales. Viernes de la Semana Grande.'),nl,
write('Disfrutars con el chupinazo, la bajada de comparsas, la Marijaia (no sabes lo que es?a
qu esperas para venir?)'),nl,
write('Bilbao cuenta con una intensa vida nocturna que comienza despus del horario de cierre de
los'),nl,
write('excelentes y numerosos restaurantes de la ciudad. Desde el Gran Casino hasta los nightclubs,'),
nl,
write('hay una infinidad de posibilidades nocturnas: bares, pubs, disco-bares, discotecas, salas de
fiestas y cabarets,'),nl,
write('con todos los ambientes para todas las edades y para todos los bolsillos.'),nl,
write('La mayora estn ubicados en el centro, por lo que desplazarse entre ellos dando un paseo
es fcil.'),nl.
descripcion(logroo):- write('Ciudad: LOGROO.'),nl,
write('La distancia desde Madrid es: 361.5 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Plazas ms emblemticas de la ciudad: Amos Salvador, San Agustn... .'),nl,
write(' - Edificios religiosos de Sta. Mara de Palacio, La Redonda... .'),nl,
write(' - Arte riojano en el Museo de la Rioja.'),nl,
write(' - Ruta Jacobea, Ruta del Vino, de los Monasterios.'),nl.
descripcion(pamplona):- write('Ciudad: PAMPLONA.'),nl,
write('La distancia desde Madrid es: 440.3 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - La catedral.'),nl,
write(' - La taconera.'),nl,
write(' - Ayuntamiento.'),nl,
write(' - Monumento a los Fueros.'),nl,
write('Y por supuesto en julio las ms universales fiestas de Espaa: Los San Fermines.'),nl.
descripcion(zaragoza):- write('Ciudad: ZARAGOZA.'),nl,
write('La distancia desde Madrid es: 311.6 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Arte Romnico: murallas romanas, foro de Caesar Augusta... .'),nl,
write(' - Baslica Nuestra Sra del Pilar.'),nl,
write(' - Ayuntamiento.'),nl,
write(' - Palacio de la Aljafera.'),nl,
write('Por supuesto tendrs que comprar un cachirulo en las fiestas del Pilar (12 octubre).'),nl.
descripcion(barcelona):- write('Ciudad: BARCELONA.'),nl,
write('La distancia desde Madrid es: 611.5 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Barrio Gtico: Catedral, Palacio de la Generalitat (Plaza de San Jaume).'),nl,
write(' - Mercado de La Boquera, Las Ramblas, Plaza Real.'),nl,
write(' - Gaud: Casa Mil, Casa Battl, Sagrada Familia, Parque Gell.'),nl,
write(' - Montjuc (Sede Olmpica).'),nl,
write('Gran ambiente nocturno.'),nl.
descripcion(valencia):- write('Ciudad: VALENCIA.'),nl,
write('La distancia desde Madrid es: 356.1 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Real Baslica de la Virgen de los Desamparados, Plaza de la Reina, Puerta de
Serranos.'),nl,
write(' - Mercado Central, Lonja, Palacio del Marqus de Dos Aguas, Jardines del Real.'),nl,
write('Podrs disfrutar de una buena paella y escuchar una masclet si te pasas en las fallas
(marzo).'),nl.
descripcion(murcia):- write('Ciudad: MURCIA.'),nl,
write('La distancia desde Madrid es: 400.4 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Ayuntamiento, Catedral de Sta Mara, Convento de Sta Clara del Real.'),nl,
write('Disfrutars de su gastronoma: es la "huerta" de Espaa.'),nl.
descripcion(sevilla):- write('Ciudad: SEVILLA.'),nl,
write('La distancia desde Madrid es: 526.1 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Baslica de la Macarena, Catedral, Giralda, Palacio Arzobispal.'),nl,
write(' - Teatro y Plaza de la Maestranza, Torre del Oro, Real Fbrica de Tabacos.'),nl,
write(' - Plaza de Espaa, Parque de Maria Luisa.'),nl,
write(' - Museo Arqueolgico, Museo de Artes y Costumbre populares, Pabelln Real.'),nl,
write('Te embrujar su feria de abril.'),nl.
descripcion(toledo):- write('Ciudad: TOLEDO.'),nl,
write('La distancia desde Madrid es: 75.2 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Catedral, Alczar, Palacio Arzobispal, Palacio de Fuensalida.'),nl,
write(' - Puerta del Cambrn, Puerta de Bisagra, Puente de San Martn, Puente de
Alcntara.'),nl,
write(' - Monasterio de San Juan de Los Reyes, Hospital de la Santa Cruz, Hospital de
Tavera.'),nl,
write('A menos de una hora de Madrid...'),nl.
descripcion(caceres):- write('Ciudad: CACERES.'),nl,
write('La distancia desde Madrid es: 302.8 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Plaza Mayor, Ayuntamiento, Arco de la Estrella, Casa de los Toledo Moctezuma.'),nl,
write(' - Iglesia de Santiago, Palacio de Godoy, Palacio de los Golfines de Abajo'),nl,
write(' - Plaza de San Jorge, Plaza de San Mateo, Templo de San Mateo.'),nl.
descripcion(valladolid):- write('Ciudad: VALLADOLID.'),nl,
write('La distancia desde Madrid es: 188.3 Km'),nl,
write('Podrs visitar (entre otros):'),nl,
write(' - Convento de San Benito el Real, Iglesia de San Agustn, Palacio Fabio Nelly.'),nl,
write(' - Iglesia de la Veracruz, Plaza Mayor, Academia de Caballera, Seminario de Agustinos
Filipinos.'),nl,
write(' - Colegio de San Gregorio, Iglesia de San Pablo, Plaza de San Pablo.'),nl,
write(' - Catedral, Plaza de la Universidad.'),nl,
write('Donde se habla de forma ms parecida a Madrid.'),nl.
% Funcin que imprime una linea separadora.
separa :- write_ln(''), write('********************************************************************'),write_ln('').
%%%%%%%%%%%%%%%%%%%%%
% Comprobacion del precio del viaje
%%%%%%%%%%%%%%%%%%%%%
%Funcion que comprueba si la ciudad est dentro del presupuesto del cliente
comprueba_precio(Ciudad,Transporte,Presupuesto,Precio):-viaje(Ciudad,Transporte,Precio),Z is Presupuesto-
Precio,Z>0.
%%%%%%%%%%%%%%%%%%%%%
% Imprime la informacion de la ciudad.
%%%%%%%%%%%%%%%%%%%%%
imprimir(Ciudad,bus):-separa,descripcion(Ciudad),separa.
imprimir(_,coche):-write_ln('').
imprimir(_,tren):-write_ln('').
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Funcion principal del programa es la que llama a todas las demas!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Invocacin de la funcin "finde(X,playa...).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,W):-
opcion_elegida(W,Mes,Ciudad),comprueba_precio(Ciudad,Transporte,Presupuesto,Precio_total),
imprimir(Ciudad,Transporte).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,X,Y):- opcion_elegida(X,Mes,Ciudad),
opcion_elegida(Y,Mes,Ciudad),comprueba_precio(Ciudad,Transporte,Presupuesto,Precio_total),imprimir(Ciudad,Transpor
te).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,X,Y,Z):- opcion_elegida(X,Mes,Ciudad),
opcion_elegida(Y,Mes,Ciudad),opcion_elegida(Z,Mes,Ciudad),comprueba_precio(Ciudad,Transporte,Presupuesto,Precio_t
otal),imprimir(Ciudad,Transporte).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,X,Y,Z,T):- opcion_elegida(X,Mes,Ciudad),
opcion_elegida(Y,Mes,Ciudad),opcion_elegida(Z,Mes,Ciudad),opcion_elegida(T,Mes,Ciudad),comprueba_precio(Ciudad,Tr
ansporte,Presupuesto,Precio_total),imprimir(Ciudad,Transporte).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,X,Y,Z,T,R):- opcion_elegida(X,Mes,Ciudad),
opcion_elegida(Y,Mes,Ciudad),opcion_elegida(Z,Mes,Ciudad),opcion_elegida(T,Mes,Ciudad),opcion_elegida(R
,Mes,Ciudad),comprueba_precio(Ciudad,Transporte,Presupuesto,Precio_total),imprimir(Ciudad,Transporte).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,X,Y,Z,T,R,S):- opcion_elegida(X,Mes,Ciudad),
opcion_elegida(Y,Mes,Ciudad),opcion_elegida(Z,Mes,Ciudad),opcion_elegida(T,Mes,Ciudad),opcion_elegida(R
,Mes,Ciudad),opcion_elegida(S,Mes,Ciudad),comprueba_precio(Ciudad,Transporte,Presupuesto,Precio_total),imprimir(Ciu
dad,Transporte).
finde(Ciudad,Mes,Presupuesto,Transporte,Precio_total,X,Y,Z,T,R,S,M):- opcion_elegida(X,Mes,Ciudad),
opcion_elegida(Y,Mes,Ciudad),opcion_elegida(Z,Mes,Ciudad),opcion_elegida(T,Mes,Ciudad),opcion_elegida(R
,Mes,Ciudad),opcion_elegida(S,Mes,Ciudad),opcion_elegida(M,Mes,Ciudad),comprueba_precio(Ciudad,Transporte,Presup
uesto,Precio_total),imprimir(Ciudad,Transporte).
ayuda:- nl, write('******************************************************'),nl,
write('Prctica de "Inteligencia en Redes de comunicaciones"'),nl,
write(' Realizada por los alumnos:'),nl,
write(' - Alberto Castro Hinojosa'),nl,
write(' - Maria Sanchez Labrador'),nl,
nl, write('******************************************************'), nl,
nl, write(' SISTEMA EXPERTO EN TURISMO.'), nl,nl,
write('Para pasar un buen fin de semana fuera de Madrid escriba:'),nl,
nl,write(' finde(Ciudad,Mes,Presupuesto,Transporte,Precio,Preferencias).'),nl,nl,
write(' Sustituya "Mes", "Presupuesto" (en euros) y "Preferencias".'),nl,
write(' El resto de los parametros djelos como estan escritos arriba y obtendr los resultados'),nl,
write(' "Preferencias" puede ser: fiestas, montaa, norte, sur, playa, cultural, juerga o parque_tem'),nl,
write(' Pulse "r" detrs de cada resultado para ver todas las posibilidades.'),nl.














Fuentes Bibliogrficas

http://www.monografias.com/trabajos23/sistemas-
expertos/sistemas-expertos.shtml

You might also like