Proyecto Final Expertos
Proyecto Final Expertos
Proyecto Final Expertos
SIGLA : IS - 442
Ayacucho-2017
DEDICATORIA
A Dios, a nuestra familia quienes han sido la guía y el camino para poder llegar a este
punto de mi carrera, que con sus ejemplos, dedicación y palabras de aliento nunca bajaron
los brazos para que alcancemos nuestros objetivos trazados en nuestra carrera
universitaria.
ii
AGRADECIMIENTO
iii
CONTENIDO
DEDICATORIA … ......................................................................................................... ii
AGRADECIMIENTO … ............................................................................................... iii
RESUMEN … ................................................................................................................. v
INTRODUCCION .......................................................................................................... vi
iv
RESUMEN
Es por ello que este trabajo de investigación desarrollamos un sistema experto turístico
que ayude a las personas a definir sus gastos en su viaje incluyendo hotel, comida, pasaje
por avión ida y vuelta o por tierra para que de esta manera puedan planificar
adecuadamente sus gastos.
v
INTRODUCCION
Después de conseguir poner de acuerdo a las personas adecuadas para realizar un viaje
en una fecha determinada, surgen los problemas para decidir cuál es la ciudad adecuada
para ese viaje. Y es aquí cuando entra en juego nuestro programa: El sistema experto en
turismo. Se trata de un programa fácil de interactuar con él, implementado en el lenguaje
de programación “Prolog”, el cual, a partir de nuestras preferencias y restricciones
económicas nos recomienda todas las opciones turísticas que se amoldan a esas
características, así como el precio del viaje y lo que hay que visitar en cada ciudad
vi
SISTEMA EXPERTO DE TURISMO
1.1 PROBLEMA
Nuestro enunciado de nuestro problema será un sistema experto de turismo basado
en reglas,se ah elegido este tema ya que hoy en dia vemos qjue el turismo esta aumentando
en el Péru y por ello se necesita brindar información al turista sobre el costo de viajar de
una ciudad a otra ciudad,el alojamiento,la comida,la ditancia mas corta y con toda esta
información el turista pueda tomar decisiones adecuadas en cuanto a los días que tiene
para viajar que pueden ser fines de semana,feriados largos,etc.
OBJETIVOS ESPECIFICOS
a) Desarrollar adcuadas reglas para el correcto funcionamiento del sisteam experto.
b). Brindar información sobre los costos de las ciudades en cuanto a
alojamiento,comida y estadia.
c). Brindar una ad
1
desarrollado con sistemas informáticos que valúan el proceso de aprendizaje, de
memorización, de razonamiento, de comunicación y de acción en consecuencia de un
experto humano en cualquier rama de la ciencia. Este sistema se diseñó en base a un test
no verbal, que consiste en presentar láminas ordenadas por grado de dificultad, en los
cuales se presentan imágenes con piezas faltantes donde tendrá que completar con la
respuesta correcta. Los resultados obtenidos serán el percentil o capacidad y rango
intelectual estos serán guardados en una base de datos para futuros usos. 2. Introducción:
El progreso del bienestar social, requiere de un trabajo arduo de identificación de
aptitudes a fin de poder tener profesionales que puedan desempeñarse de la mejor manera
en la sociedad y de forma saludable. En este sentido, es el reconocimiento de las
capacidades intelectuales una labor muy importante, con el ámbito educativo y laboral.
Con el fin de contribuir a este objetivo, se ha propuesto la creación de un Sistema Experto,
que permita medir la capacidad intelectual de las personas en forma simultánea, logrando
así poder reunir y evaluar a un gran número de personas en menos tiempo.
2
Para la elaboración del Sistema Experto DAT-5 se siguieron los siguientes pasos: •
Inserción de hechos iníciales en la Base de Hechos. • Obtención de nuevos hechos a partir
de la evaluación de reglas.
• Exploración de las reglas de la Base de Conocimientos y adicción de nuevos hechos a
• la Base de Hechos.
• Deducción y obtención del conocimiento. Del cual se obtuvieron resultados como se
puede ver en la Figura: Figura 7.Interfaz de tesis Sistema Experto para la evaluación de
aptitudes DAT-5. Fuente: tesis Sistema Experto para la evaluación de aptitudes DAT-5.
3
1.4. MARCO TEORICO
Historia de los SE
Sus inicios datan a mediados de los años sesenta. Durante esta década los investigadores
Alan Newell y Herbert Simon desarrollaron un programa llamado GPS (General Problem
Solver; solucionador general de problemas). Podía trabajar con criptoaritmética, con las
torres de Hanoi y con otros problemas similares. Lo que no podía hacer el GPS era
resolver problemas del mundo real, tales como un diagnóstico médico.
Algunos investigadores decidieron entonces cambiar por completo el enfoque del
problema restringiendo su ambición a un dominio específico e intentando simular el
razonamiento de un experto humano. En vez de dedicarse a computarizar la inteligencia
general, se centraron en dominios de conocimiento muy concretos. De esta manera
nacieron los SE.
Los Sistemas Expertos, rama de la Inteligencia Artificial, son sistemas informáticos que
simulan el proceso de aprendizaje, de memorización, de razonamiento, de comunicación
y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.
5
Estas características le permiten almacenar datos y conocimiento, sacar conclusiones
lógicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse
con expertos humanos, explicar el porqué de las decisiones tomadas y realizar acciones
como consecuencia de todo lo anterior.
Aplicaciones
Medicina, Economía, Psicología, Finanzas, Derecho y prácticamente todas las ramas del
conocimiento.
6
Si desea mayor información sobre el diseño y la aplicación en su empresa o negocio de
los Sistemas Expertos, por favor comuníquese con nosotros y con gusto lo atenderemos.
Podemos decir que un sistema experto consiste en una base de conocimientos, una base
de hechos y un motor (o máquina) de inferencias. Por otra parte estos sistemas no se
miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay
contenida en su base de conocimientos.
Además de los componentes anteriores los sistemas expertos necesitan interactuar con el
usuario y con el experto.
Algunas de las aplicaciones más importantes se remontan al sistema Mycin, el cual dio
lugar a la mayoría de las aplicaciones en medicina y fue pionero en el tratamiento de la
incertidumbre, que sirvió de patrón a los motores de inferencia de propósitos general
(Shell). Otro de los destacados fue Dendral cuya aplicación fue usada en la química, la
prospección geológica entre otras muchas aplicaciones.
8
Los sistemas expertos que posteriormente fueron bautizados como sistemas basados en
conocimientos y actualmente, bajo la influencia de IBM, se les llama sistemas cognitivos,
siendo Watson su mayor representante, están teniendo un nuevo renacimiento y todo
indica una nueva era para inteligencia artificial en general y en particular para los sistemas
expertos.
9
MATERIALES O HERRAMIENTAS UTILIZADOS PARA EL PROYECTOS DE
SE
Los distintos proyectos de sistemas expertos se realizan con muchas y distintas
herramientas como por ejemplo el swi-prolog que se usa para o como gestor de las bases
de conocimientos, como el java netbeans que se usa para las interfaces que visualizas los
usuarios finales. A continuación se menciona y detalla todas herramientas que se
utilizaron en este proyecto.
SWI PROLOG
10
A partir de 1981 tuvo una importante difusión en todo el mundo, especialmente porque
los japoneses decidieron utilizar PROLOG para el desarrollo de sus sistemas de
computación de quinta generación. Actualmente existen varios dialectos del PROLOG
para diferentes plataformas.
Características principales.
Los predicados.
Los predicados son los elementos ejecutables en ProLog. En muchos sentidos se asemejan
a los procedimientos o funciones típicos de los lenguajes imperativos. Una llamada
concreta a un predicado, con unos argumentos concretos, se denomina objetivo. Todos
los objetivos tienen un resultado de éxito o fallo tras su ejecución, indicando si el
predicado es cierto para los argumentos dados, o por el contrario, es falso. Cuando un
objetivo tiene éxito, las variables libres que aparecen en los argumentos pueden quedar
11
ligadas. Estos son los valores que hacen cierto el predicado. Si el predicado falla, no
ocurren ligaduras en las variables libres.
Se utilizan para expresar propiedades de los objetos, y relaciones entre ellos. En ProLog
se conocen como hechos. Se debe tener en cuenta que:
• Los nombres de todos los objetos y relaciones deben comenzar con una letra
minúscula.
• Primero se escribe la relación o propiedad (predicado).
• Los objetos se escriben separándolos mediante comas y encerrados entre paréntesis
(argumentos).
• Al final del hecho debe ir un punto (".").
Variables.
Las variables se utilizan para representar objetos cualesquiera del Universo u objetos
desconocidos en ese momento, es decir, son las incógnitas del problema. Se diferencian
de los átomos en que empiezan siempre con una letra mayúscula o con el signo de
subrayado (_). Así, se debe ir con cuidado, ya que cualquier identificador que empiece
por mayúscula, será tomado por ProLog como una variable. En una consulta simple, las
variables nos pueden servir para que ProLog encuentre un dato. Por ejemplo: 'tiene'
(persona, libro) devuelve en la variable 'persona' el nombre de la que tiene un libro (o de
las personas que lo tienen, si hay más de una).
12
Programar en ProLog consiste en dar al ordenador un Universo finito en forma de hechos
y reglas, proporcionando los medios para realizar inferencias de un hecho a otro. La
programación en ProLog consiste en:
13
• Algunas versiones viejas populares
• GIT acceder, navegar repositorio GIT
• Creador: OpenSource
• Expert System Builder.
JAVA
Origen de Java
Sun Microsystems, líder en servidores para Internet, uno de cuyos lemas desde hace
mucho tiempo es "the network is the computer" (lo que quiere dar a entender que el
verdadero ordenador es la red en su conjunto y no cada máquina individual), es quien ha
desarrollado el lenguaje Java, en un intento de resolver simultáneamente todos los
problemas que se le plantean a los desarrolladores de software por la proliferación de
arquitecturas incompatibles, tanto entre las diferentes máquinas como entre los diversos
sistemas operativos y sistemas de ventanas que funcionaban sobre una misma máquina,
añadiendo la dificultad de crear aplicaciones distribuidas en una red como Internet.
14
El primer proyecto en que se aplicó este lenguaje recibió el nombre de proyecto Green y
consistía en un sistema de control completo de los aparatos electrónicos y el entorno de
un hogar. Para ello se construyó un ordenador experimental denominado (Star Seven).
El sistema presentaba una interfaz basada en la representación de la casa de forma
animada y el control se llevaba a cabo mediante una pantalla sensible al tacto. En el
sistema aparecía Duke, la actual mascota de Java.
Características de Java
Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de
programación, son:
Simple
Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características
menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de
seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser
parecido a C++ y así facilitar un rápido y fácil aprendizaje.
Orientado a objetos
Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas
cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos
como objetos y con interfaces a esos objetos. Soporta las tres características propias del
paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Las
plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias. Estas
instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria.
15
Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolución
dinámica de métodos. Esta característica deriva del lenguaje Objective C, propietario del
sistema operativo Next. En C++ se suele trabajar con librerías dinámicas (DLLs) que
obligan a recompilar la aplicación cuando se retocan las funciones que se encuentran en
su interior. Este inconveniente es resuelto por Java mediante una interfaz específica
llamada RTTI (RunTime Type Identification) que define la interacción entre objetos
excluyendo variables de instancias o implementación de métodos. Las clases en Java
tienen una representación en el runtime que permite a los programadores interrogar por
el tipo de clase y enlazar dinámicamente la clase con el resultado de la búsqueda.
Distribuido
Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen
librerías de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite
a los programadores acceder a la información a través de la red con tanta facilidad como
a los ficheros locales.
La verdad es que Java en sí no es distribuido, sino que proporciona las librerías y
herramientas para que los programas puedan ser distribuidos, es decir, que se corran en
varias máquinas, interactuando.
Robusto
Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como
en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo
antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos,
reduciendo así las posibilidades de error. Maneja la memoria para eliminar las
preocupaciones por parte del programador de la liberación o corrupción de memoria.
También implementa los arrays auténticos, en vez de listas enlazadas de punteros, con
comprobación de límites, para evitar la posibilidad de sobreescribir o corromper memoria
resultado de punteros que señalan a zonas equivocadas. Estas características reducen
drásticamente el tiempo de desarrollo de aplicaciones en Java.
16
NETBEANS
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios,
una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo.
Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y
continúa siendo el patrocinador principal de los proyectos (Actualmente Sun
Microsystems es administrado por Oracle Corporation).
Modularidad. Todas las funciones del IDE son provistas por módulos. Cada módulo
provee una función bien definida, tales como el soporte de Java, edición, o soporte para
el sistema de control de versiones. NetBeans contiene todos los módulos necesarios para
17
el desarrollo de aplicaciones Java en una sola descarga, permitiéndole al usuario
comenzar a trabajar inmediatamente.
Plataforma
• Gestión de ventana
18
INTEGRACION JAVA Y PROLOG
El lenguaje de programación lógica Prolog esta siendo muy utilizado en las aplicaciones
de hoy en día, este lenguaje es usado para hacer Sistemas expertos, sistemas probabilistas,
reconocimiento de patrones y otros temas sobre Inteligencia Artificial, sin embargo para
realizar una aplicación es necesario usar otros lenguajes como por ejemplo Java, un
ejemplo claro seria que con Java podemos hacer interfaces gráficas mas sofisticadas que
con Prolog, en este tutorial te enseñare como hacer una conexión entre el JDK de Java y
el compilador de Prolog a través de una librería llamada JPL que viene incluida en
la instalación de Prolog.
Requerimientos
Conexión
1.5. DESARROLLO
CHACHAPOYAS
PERTENECE
LEYMEBAMBA
ES_PARTE_DE
PERTENECE
AMAZONAS
PERU
PERTENECE
CATARATA DE GOCTA
PERTENECE
Ancash
MUSEO ANCASH
TIENE
LAGUNA 69
ES_PARTE_DE
TIENE
ANCASH
PERU
TIENE
CHAVIN DE HUANTAR
Apurímac
21
RED SEMANTICA DE AMAZONAS Y SUS LUGARES TURISTICOS
CHOQUEQUIRAO
TIENE
TIENE
PIEDRA DE SAYWITE
Huancavelica
22
RED SEMANTICA DE LOS DEPARTAMENTOS Y SUS LUGARES TURISTICOS
RUINAS DE INCAHUASI
ES_PARTE_DE
TIENE
HUANCAVELICA
PERU
Huánuco
23
RED SEMANTICA DE DEPARTAMENTO Y SUS LUGARES TURISTICOS
KOTOSH
TIENE
COMPLEJOARQUEOLOGICO
ES_PARTE_DE DE HUANUCO
HUANUCO TIENE
PERU
TIENE
YAROWILCA
Ica
24
RED SEMANTICA DE DEPARTAMENTO Y SUS LUGARES TURISTICOS
LAGUNA DE HUACACHINA
TIENE
PUEBLO CACHICHE
ES_PARTE_DE
ICA TIENE
PERU
TIENE
Junín
25
RED SEMANTICA DE DEPARTAMENTO Y SUS LUGARES TURISTICOS
SANTUARIO DE CHAMARCA
TIENE
JUNIN TIENE
ES_PARTE_DE
TIENE
CONCEPCION
26
La Libertad.
RED SEMANTICA DE DEPARTAMENTO Y SUS LUGARES TURISTICOS
TIENE
LA LIBERTAD TIENE
ES_PARTE_DE
TIENE
CASA DE URQUIAGA
Lambayeque
27
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
TIENE
PERU TUCUME
LAMBAYEQUE TIENE
ES_PARTE_DE
TIENE
MUSEO NACIONAL DE
SICAN
28
Lima
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
PALACIO DE LA EXPOSICION
TIENE
COMPLEJO
PERU ARQUEOLOGICO CARAL
LIMA TIENE
ES_PARTE_DE
TIENE
ESTADIO NACIONAL
Loreto
29
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
LAGO RIMACHI
TIENE
LORETO TIENE
ES_PARTE_DE
TIENE
RESERVA DE PACAYA
SAMIRA
Madre de Dios
30
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
TIENE
PERU
MADRE DE DIOS
ES_PARTE_DE
TIENE
RESERVA ECOLOGICO
TIRACAYA
Moquegua
31
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
MUSEO CONTISUYO
TIENE
PERU
TIENE
LA GLORIA DE ILO
Pasco
32
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
TUNQUI CUEVA
TIENE
PERU
TIENE
JARDIN BOTANICO
MISSOURI
Puno
33
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
MIRADOR KUNTURWASI
TIENE
PERU
TIENE
LAGO TITICACA
San Martin
34
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
TARAPOTO
TIENE
PERU
TIENE
Tacna
35
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
TIENE
PERU
TIENE
ARCO PARABOLICO
Tumbes
36
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
LOS MANGLARES DE
TUMBES
TIENE
PERU
TIENE
Ucayali
37
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
PROVINCIA DE CORONEL
PORTILLO
TIENE
PERU
TIENE
Ayacucho
38
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
QUINUA
TIENE
PERU
TIENE TIENE
LURICOCHA
PAMPAS GALERAS
Arequipa
39
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
CAÑON DE COTAHUASI
TIENE
PERU
TIENE
CAÑON DE COLCA
Cajamarca
40
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
TIENE
PERU
TIENE
VENTANILLA DE OTUZCO
Cusco
41
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
SACSAYHUAMAN
TIENE
PERU
CUSCO MACHUPICHU
ES_PARTE_DE TIENE
TIENE
OLLANTAYTAMBO
Piura
42
RED SEMANTICA DEL DEPARTAMENTO Y SUS LUGARES TURISTICOS
PAITA
TIENE SULLANA
TIENE
PERU
PIURA
ES_PARTE_DE TIENE
TALARA
TIENE
TIENE
SECHURA
MANCORA
BASE DE CONOCIMIENTO
En esta parte se detalla o se muestra todos los hechos y reglas que se crearon para este
proyecto.
43
44
45
1.6. CONCLUSIONES Y RECOMENDACIONES
6.1 CONCLUSIONES
• Con el sistema trabajo se ha demostrado que con prologs se puede realizar una
diversidad de trabajos con sistemas expertos y se pueden resolver problemas ya
que también nos permite hacerlo en una aplicación de escritorio o móvil.
• Según este sistema experto se ha demostrado que se pueden agilizar los tiempos
en cuanto a la toma de deciones que en este caso es en elegir un destino turístico
y esto agiliza a tomar decisiones.
• Un sistema experto nos puede ayudar a resolver problemas de todo tipo desde lo
mas simple hasta lo mas complejo.
46
6.2 RECOMENDACIONES
• Se recomienda investigar e implementarlo en un aplicativo movil y no en un
deskopt como viene esta hecho el sistema.
• Investigar e e implementar sistemas expertos también que ayuden en otros temas
de turismo como es la d eestablecer rutas adecuadas para caminar de un lugar a
otro de una forma segura.
47
REFERENCIA BIBLIOGRAFICA
48