martes, 6 de febrero de 2007

Sistema De Informacion Turistica







Sistema de Información Turística

De la Ciudad de Loja











Febrero



2007






Janeth Alba Nuñez
jmalba@utpl.edu.ec
Saida Fariño Guarnizo
sjfarino@utpl.edu.ec
Jefferson Jiménez Samaniego
jrjimenez@utpl.edu.ec

Profesionales en Formación de la ¬
Universidad Técnica Particular de Loja


RESUMEN

Este trabajo tiene como objetivo: diseñar un sistema Turístico para la ciudad de Loja, que recoja y procese toda la información necesaria y de interés para la toma de decisiones en la actividad comercial y turística. En el mismo se utilizan diferentes métodos, técnicas y procedimientos, integrados en una metodología, que permiten diseñar el sistema de información, definiendo cada uno de sus elementos.
Para la implementación de Sistemas de Información Turística, realizaremos búsquedas de rutas o caminos de acceso que el turista visitaría (hoteles, parques, iglesias, restaurantes, bares)

Disponemos de un mapa urbano de la ciudad en el cual el Turista especificara el lugar de ubicación actual y los lugares a visitar, la aplicación presentara al usuario diferentes caminos incluyendo el más corto para llegar al destino.

Se requiere desarrollar una aplicación confiable, segura y que se ejecute en el menor tiempo posible para satisfacción del usuario, por este motivo vamos a requerir una paralelización de la misma a través de sockets.

PALABRAS CLAVES: Sistemas Inteligentes, Multiprocesamiento, Inteligencia Artificial Algoritmos de búsqueda, búsqueda Avara, Paralelizacion, Sockets, Sistema de Información

INTRODUCCIÓN

La inteligencia natural es abundante en todos los ámbitos de la naturaleza, los Sistemas inteligentes extraen sus principios de las ciencias del cerebro para modelar reconocimiento, aprendizaje, y procesos de planeación.
La mayoría de las técnicas en el área de la inteligencia artificial caen muy lejos de competir con seres humanos o incluso animales. Los sistemas para computadora diseñados para ver imágenes, oír sonidos y entender el lenguaje sólo pueden obtener un éxito limitado. Sin embargo, en un área de la inteligencia artificial - aquella que razona con el conocimiento en un dominio limitado - los programas pueden no sólo aproximarse a la forma de actual humana, si no que a veces lo superan.
Estos programas emplean un conjunto de hechos, reglas y otros tipos de conocimientos de un campo determinado, así como de métodos para aplicar las reglas para hacer inferencias. Resuelven problemas en campos tan especializados como diagnosis médica, búsqueda de minerales y pozos de petróleo y en nuestro caso Sistemas de información Turística.

Para el sector turístico el manejo de información adecuada y frecuente constituye un elemento indispensable, ya que, por ejemplo, a través de la misma se puede describir o retratar la situación que presenta un destino y tomar decisiones al respecto.
Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio, realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información

Presentaremos estrategias de búsqueda agrupadas genéricamente bajo el nombre de búsqueda respaldada con información se las denomina estrategias de búsqueda heurística. Una de las más sencillas estrategias en la búsqueda preferente por lo mejor consiste en reducir al mínimo el costo estimado para lograr una meta. Es decir, el nodo cuyo estado se considere ser el más cercano al estado de la meta es el que siempre se expande primero. En la mayoría de los problemas, aunque es posible estimar el costo que implica llegar a una meta desde un estado determinado, no es posible hacerlo con precisión. La función que se utiliza para calcular tales estimados de costo se conoce como función heurística, generalmente simbolizada por la letra h:
h(n) = costo estimado de la ruta más barata que une el estado del nodo n con un estado meta.
Aquella búsqueda preferente por lo mejor que utiliza h para escoger cuál es el siguiente nodo que se va a expandir es denominada búsqueda avara la cual utilizaremos para nuestro propósito
HERRAMIENTAS DE ANÁLISIS:





















Descripción de la arquitectura.

 Interfaz de Usuario: Esta capa está representada por el formulario de ventanas (forms) desarrolladas en Visual C#, que será el encargado de mostrar un mapa el cual estará ejecutándose en la maquina servidor con los principales lugares que serian de interés para un turista en la ciudad, así como ventanas de conexión a los integrantes del cluster (clientes) que se deberá ejecutar en cada uno de los integrantes del mismo para comunicarlos con la maquina servidor.

 Lógica de negocios: esta capa consta de:

 Algoritmos de búsqueda.- que son los diferentes algoritmos desarrollados en c# y empleados para el calculo de la ruta mas corta al destino requerido.
 Datos de los posibles caminos.- Al contar con un punto de partida y un objetivo al cual se desea llagar se contara con un conjunto de posibles caminos, de las cuales se deberá obtener el camino óptimo para llegar al destino con una menor distancia.

 Código Fuente: en esta capa estará contenido el código base de nuestra aplicación, en un archivo “.sln” pues será desarrollado en visual c#.

Estructuras de datos para los árboles de búsqueda
Hay muchas formas de representar nodos pero, en este caso el nodo es una estructura de datos con 5 componentes:
1) El estado en el espacio de estados al que corresponda el nodo
2) El nodo del árbol de búsqueda que generó este nodo (padre)
3) El operador que se aplicó para generar el nodo
4) Cuantos nodos de la ruta hay desde la raíz hasta dicho nodo (la profundidad del nodo)
5) El costo de ruta de la ruta que va del estado inicial al nodo.




Estrategia De Búsqueda:
Búsqueda Avara: consiste en reducir al mínimo el costo estimado para obtener la meta. Es decir, expande primero el nodo cuyo estado se considere ser el más cercano al estado de la meta. Para calcular tales estimados de costos utiliza una función denominada función heurística, simbolizada por:
h (n) = costo estimado de la ruta más barata que une el estado del nodo n con un estado meta.
h puede ser cualquier función, pero debe cumplir con el requisito de ser h (n) = 0, cuando n sea una meta.
Este método presenta las siguientes características:
§ No es óptimo: tiende a procurar soluciones rápidas, pero no siempre garantiza que la solución encontrada sea la mejor.
§ Es incompleto: puede recorrer una ruta infinita y nunca regresar a probar otras posibilidades.
§ Complejidad: en el peor de los casos es de O (bm) en donde, es la profundidad máxima del espacio de búsqueda.
La búsqueda avara y la preferente por profundidad se asemejan por su indicación a utilizar una sola ruta hasta llegar a la meta, pero se atorarán cuando topen con un callejón sin. Dado que en una búsqueda avara se guardan en memoria todos los nodos, la complejidad espacial es la misma que la temporal. Una buena función heurística permite disminuir notablemente la complejidad tanto de espacio como de tiempo, El grado disminución dependerá del problema particular y de la calidad de la función h.




HERRAMIENTAS DE ANÁLISIS:

 El lenguaje de programación(plataforma)
 Algoritmo de búsqueda
 Multiprocesamiento
 Paralelizacion
 Sockets



LA INFORMACIÓN A ANALIZAR:

 El lenguaje de programación(plataforma): C# #lenguaje de propósito general orientado a objetos creado por Microsoft para su nueva plataforma .NET combina los mejores elementos de múltiples lenguajes de amplia difusión como C++, Java, Visual Basic

 Algoritmo de búsqueda: Búsqueda Avara: reducir al mínimo el costo estimado para obtener la meta. Para calcular tales estimados de costos utiliza una función denominada función heurística

 Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento

 Paralelización: La realización de varias actividades al mismo tiempo. Se le llama cómputo paralelo a la ejecución de más de un cómputo (cálculo) al mismo tiempo usando más de un procesador en una computadora. La meta es reducir al mínimo el tiempo total de cómputo distribuyendo la carga de trabajo entre los procesadores disponibles. Para fines prácticos es necesario tener en mente que la paralelización es un factor básico para tener un alto desempeño en los equipos de cómputo.

 Sockets: Dada la novedad de este tipo de servicios, se propone utilizar dos lenguajes en vistas a realizar un estudio comparativo: el lenguaje C# y el lenguaje Java. El primero requiere usar la plataforma .NET de Microsoft; sobre el segundo existen más opciones, pero se optará en principio por usar Apache AXIS. La comparación se hará tanto desde el punto de vista de la facilidad para el desarrollo de los algoritmos distribuidos como del rendimiento. Asimismo, se estudiará la viabilidad de usar ambos lenguajes a la vez y cómo afecta este hecho al rendimiento de los algoritmos. En el proyecto se considerarán al menos dos estrategias de paralelización. La primera de ellas se basará en una topología en anillo unidireccional. Se busca comparar los resultados de la versión con servicios Web con una implementación más tradicional, que utiliza sockets como mecanismo de comunicación entre los procesos. La otra alternativa consiste en trata de amoldarse lo más posible a la filosofía de los servicios Web, para lo cual se estudiarán esquemas basados en paradigmas como el maestro-esclavo y la computación voluntaria. Entre los problemas a resolver con los algoritmos genéticos se considerarán el problema ONEMAX, que trata de optimizar la suma de unos en una cadena binaria, y el problema del viajante de comercio.








PROCEDIMIENTO

 Se levanta el servidor para aceptar conexiones de nodos entrantes al cluster
 Los clientes ejecutan la aplicación de conexión a la maquina servidor.
 Una vez conectados los clientes al servidor, el usuario ingresa su ubicación (punto de origen sobre el mapa), y el lugar o conjunto de lugares (destino) al que desea llegar.
 La aplicación le enseña en pantalla:
 Un mapa geográfico de la ciudad.
 Las rutas posibles a tomar y su información.
 La ruta más corta.

RESULTADOS OBTENIDOS

Esta pantalla es la pantalla principal de nuestra aplicación, será mostrada en la maquina servidor, el código interno es quien se encarga de enviar los procesos para que los componentes del cluster (clientes), colaboren en la ejecución de la búsqueda del destino, con esto logramos que varias maquinas trabajen con un mismo fin, logrando así un multiprocesamiento


Esta es nuestra ventana de conexión, deberá ser ejecutada en cada uno de los clientes; esta ventana lograra que las maquinas que componen nuestra red, se integren al cluster, y estén listas para atender procesos enviados desde la maquina servidor, para resolver la tarea encomendada e inmediatamente enviarlos de regreso a la maquina servidor, para de esta manera lograr una rápida ejecución del programa.







COMENTARIOS FINALES


 La etapa de identificación y codificación de las actividades es compleja en Sistema de información
 La elaboración de un mapa y un diccionario de actividades resulta una herramienta muy útil en la implantación del sistema
 Quedamos bastante satisfechos con esta arquitectura basada en sockets. Es ligera, fácil de manejar y válida tanto para equipos PC como Pocket PC
 Sockets, para los cuales Windows incluye un API más sofisticado que el API tradicional que proviene del BSD UNIX [Berkeley Software Distribution], el API que se ha utilizado habitualmente para transmitir datos utilizando la familia de protocolos TCP/IP.
 Sin duda alguna, las tecnologías de información bien aplicadas se traducirán en una mejor interacción entre hoteles, restaurantes, agencias de viajes y aerolíneas con sus clientes, logrando así una relación donde ambas partes obtendrán beneficios y satisfacción.
 Con la ayuda de las tecnologías de información la industria del turismo ha logrado grandes beneficios como son el mejoramiento de las operaciones de las empresas, conocer mejor las necesidades de los clientes, ofrecer una mejor entrega del servicio, llegar a un mayor número de clientes y a nuevos mercados y optimizar sus recursos logrando aumentar su eficiencia
 A pesar de las limitaciones de este trabajo apuntadas anteriormente, también se extraen cuestiones positivas puesto que la mayoría de ellas pueden suponer nuevos retos u objetivos para futuras investigaciones.
 La velocidad de procesamiento no es solamente la razón para utilizar el paralelismo. La construcción de aplicaciones más complejas han requerido una computadora más rápida, y las limitaciones en el desarrollo adicional de computadoras seriales han llegado a ser más y más evidentes.
 En términos de software el usuario debe conocer qué sistema operativo esta manejando, si los compiladores instalados permiten realizar aplicaciones con paralelismo, si se cuenta con herramientas como PVM o MPI (en Sistemas Distribuidos), Power C, Power Fortran u OpenMP (en sistemas de memoria compartida), sockets etc. ¬ ¬ ¬
 Una de las razones principales para utilizar el paralelismo en el diseño de hardware o software, es obtener un alto rendimiento o mayor velocidad al ejecutar un programa.

REFERENCIAS

• Carolina Bonacic Trabajo en técnicas de compresión. Paralelización & (s,c)-Dense Code
• Inteligencia Artificial Un enfoque moderno, Stuart Russell, Peter Norvig, ed. Prentice Hall, 1996
• Eric Gunnerson, A Programmer's Introduction to C#, 2nd Edition
• Escolano, F. y otros (2003): Inteligencia Artificial: Modelos, técnicas y áreas de aplicación. Paraninfo-Thomson.
• A.GUEVARA, A. AGUAYO, J.L. CARO, I. GÓMEZ Y OTROS. Informática aplicada al turismo. Pirámide- Anaya multimedia, 2003.
• http://www.editorialuoc.com/publica.ysi?Lang=sp&c_ext=1100
• http://artnodes.uoc.edu/esp/
• http://www.alfa-redi.org/rdi-comopublicar.shtml