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.