La Computadora, Herramienta Indispensable - Grid Morelos
Transcripción
La Computadora, Herramienta Indispensable - Grid Morelos
La computadora, herramienta indispensable en diversas áreas de conocimiento La computadora, herramienta indispensable en diversas áreas de conocimiento Marco Antonio Cruz Chávez Jesús del Carmen Peralta Abarca Martín Gerardo Martínez Rangel Martín Heriberto Cruz Rosales (coordinadores) México, 2014 Esta obra fue desarrollada y compilada por los miembros de la Academia General de Cómputo (AgeComp) 2011-2014 y el apoyo de la Facultad de Ciencias Químicas e Ingeniería, Facultad de Contaduría, Administración e Informática, Facultad de Ciencias y el Centro de Investigaciones en Ingeniería y Ciencias Aplicadas. La computadora, herramienta indispensable en diversas áreas de conocimiento / Marco Antonio Cruz Chávez, Jesús del Carmen Peralta Abarca, Martín Gerardo Martínez Rangel, Martín Heriberto Cruz Rosales (coordinadores). - - México : Marco Antonio Cruz Chávez, 2014. 568 p. : il. ISBN 978-607-00-7036-5 1. Procesamiento electrónico de datos 2. Programas para computadora – Desarrollo 3. Algoritmos LCC QA76 DC 004 La computadora, herramienta indispensable en diversas áreas de conocimiento Marco Antonio Cruz Chávez, Jesús del Carmen Peralta Abarca, Martín Gerardo Martínez Rangel, Martín Heriberto Cruz Rosales (coordinadores) Primera edición, 2014 D.R. © 2014 Marco Antonio Cruz Chávez Imagen de portada: Gibran Corona, Venas, acrílico y collage sobre papel, 40 x 60 cm, 2009 ISBN: 978-607-00-7036-5 Los artículos incluidos en este libro fueron sometidos a arbitraje ciego. El contenido de los artículos y las ideas expresadas en ellos son responsabilidad de los autores. Impreso en Mexico Contenido Capítulo I. Optimización<<<<<<<<<<<<<<.<< Calendarización de Redes de Distribución de agua<<<<<<<<<<<<<<<<<<<<<<<<< A Heuristic Approach for Improvement Batch Plant Design under Imprecise Demand Using Fuzzy Logics<<<<<<<<<<<<<<<<<<<.<<<<<. Propuesta de una Metodología Generalizada para el Diseño de Micro Algoritmos Bioinspirados<<<<<<<<<..<<. Estudio de Tres Algoritmos Heurísticos para Resolver un Problema de Distribución con Ventanas de Tiempo: Sistema por Colonia de Hormigas, Búsqueda Tabú y Heurístico Constructivo de una Ruta<<<<<<<<<<<<<<<... Aplicación de la Optimización por Enjambre de Partículas a un Problema Inverso de Conducción de Calor<<<<<.< Algoritmo de recocido simulado secuencial y paralelizado con memoria distribuida para el problema de máquinas paralelas no relacionadas ponderadas<<<<<<<<.<.< Capítulo II. Aplicaciones<<<<<<<<<<<<<<<.< Diseño de un Sistema de Gestión de la Información para Tutorías<<<<<<<<<<<<<<<<<<<<............. Actualización de Bases de Datos DBF a MySQL<<<<<<<<<<<<<<<<<<<.<<<<.. Proposición de un Modelo para la Acentuación Automática de Palabras Ambiguas del Español, utilizando Etiquetado de Texto <<<<<<<<<<<<<<<<<<<.<<<<< Ladrillo rojo: aplicación de redes de Petri a un proceso milenario <<<<<<<<<<<<<<<<<<<<..<... Perspectivas de automatización del proceso de fabricación de ladrillo rojo en la región de Cholula, Puebla <<<<<<<.. Cloud computing <<<<<<<<<<<<<<<<<<< Aproximación de un Diagnóstico Neurológico Mediante un Sistema Multiagente Inteligente <<<<<<<<<<......... Elección de Software Libre en el Desarrollo de Sistemas Web 5 7 23 43 57 73 85 101 103 117 127 139 151 161 175 187 199 Gestión del Aprendizaje de las Nuevas Tecnologías en Adultos de la Tercera Edad, en Tijuana, Baja California, México, por la UABC. Resultados obtenidos en el primer Curso de Computación Básico. << Modelo Matemático Multiobjetivo para la Selección de una Cartera de Inversión en la Bolsa Mexicana de Valores. <<<<<<<<<<<<<<<<<<<<............................. Sistema Estatal de Información y Documentación Científica y Tecnológica (Siedcyt): el primer paso para la propuesta de creación de un Parque Tecnológico Virtual, en el estado de Baja California <<<<<<<<<<<<<<.<<<<........ Advanced Tools for the estimation of basic Knowledge Level on Education and Training .......................................................... Relajación del Problema de Calendarización de Trabajos en un Taller de Manufactura Utilizando un Grafo Bipartita <<<<<<<<<<<<<<<<<<<<<<<<<<.< Capítulo III. Electrónica y Métodos Computacionales <<<<<<<<<<<<<<<<<<<<<<<<<<..< Diseño e Implementación de un Sistema Digital que Obtenga la Máxima Potencia Generada por un Haz L{ser<<<<<<<<<<<<<<<<<<<<<<<<..< Evolución de las Bases de Datos: de Fijas a Móviles <<<..<. Grid Computing <<<<<<<<<<<<<<<<<...<< Herramienta Computacional para Determinar la Confiabilidad de los Activos Reparables de Distribución de CFE <<<<<<<<<<<<<........................................................... Modelo Eléctrico del Cátodo de una Descarga de Alta Presión de Sodio <<<<<<<<<<<<<<<<<<<<<.<... Control difuso de un Sistema no Lineal <<<<.<................. Automatización de bombas de calor por medio del control de bombas en un puerto LPT con adquisición de datos en un Puerto GPIB <<<<<<<<<<<.<<<<<<<<<<. Numerical Simulation of the Field Confinement in a Quasiperiodic Multilayered Microsphere as an Application of the Software Engineering <<<<.<<<<<<<<<<< The use of Parallel Axtensions Libraries for Scientific and Engineering Calculations. .............................................................. Capítulo IV. Inteligencia Artificial y Visión <<<<<<<<. Complejidad de los datos en las redes neuronales artificiales: situación actual <<<<<<<<<<<<<<<<<<<..... 207 217 233 241 253 265 267 277 291 301 311 323 337 349 361 371 373 Automatización del Proceso de Ensamble utilizando Visión Artificial <<<<<<<<<<<<<<<<<<<<<...<.. Quality Measurement of Existing Color Metrics using Hexagonal Color Fields <<…………………………………... 381 395 Prefacio El contenido de los temas que abarca el presente libro, es un esfuerzo por dar a conocer los trabajos de investigación en el área de ciencias e ingeniería con un enfoque al uso de herramientas computacionales. Este esfuerzo colegiado se da entre la Academia General de Cómputo (AGECOMP) y el Cuerpo Académico de Optimización y Software, con el apoyo del centro de Investigación en Ingeniería y Ciencias Aplicadas (CIICAp), de la Facultad de Ciencias, de la Facultad de Contaduría, administración e Informática y también de la Facultad de Ciencias Químicas e Ingeniería. El eje principal que agrupa a los trabajos presentados, es el uso de la computadora como herramienta aplicada en diferentes áreas del conocimiento, la cual hoy en día es un instrumento esencial para tratar problemas, que por su naturaleza compleja, requiere de innumerables cálculos y/o de un manejo de gran cantidad de datos, que sin la computadora, sería muy difícil o prácticamente imposible el poder tratar estos problemas de manera eficiente. Este medio es un espacio dado a los investigadores, estudiantes de postgrado y empresas privadas, para que puedan dar a conocer sus conocimientos de punta a la comunidad académica e industrial. La presentación de los trabajos en el área de investigación y tecnología en este libro, se divide en cuatro capítulos. El primer capítulo presenta temas del área de optimización, en diversas áreas como calendarización de recursos, la demanda de recursos en plantas industriales, transporte, térmica. El segundo capítulo presenta un contenido con aplicaciones a una diversidad de problemas como salud, educación, producción y tecnología. El tercer capítulo trata de electrónica y métodos computacionales. Finalmente, el cuarto capítulo presenta temas que tratan de inteligencia artificial. Los trabajos aceptados para su publicación en el presente libro, fueron a través de un comité de expertos formado por investigadores activos de los diversos centros de investigación del Estado de Morelos, y por supuesto de la UAEM. Cada trabajo fue evaluado en calidad y aportación a la frontera del conocimiento por un mínimo de dos y un máximo de tres investigadores expertos en el tema y que cultivan las mismas líneas de conocimiento, con lo cual se garantiza la calidad de los trabajos. Los autores participantes en el presente libro, son de de distintas universidades e Institutos del país, con ubicación en la Ciudad de México, Estado de México, Puebla, Morelos, Sinaloa, Tlaxcala, Hidalgo, Baja California, Oaxaca, Coahuila, Venezuela y España. Un agradecimiento muy grande a toda la gente que participo en el desarrollo del presente libro, comenzando por los autores de los temas, quienes con su investigación de calidad dan realce a esta obra impresa. Agradecemos al comité de evaluadores por su valiosa aportación para la revisión y aceptación de trabajos de calidad. Agradecemos el apoyo recibido de las autoridades de la Secretaria Académica y de la Dirección de Educación Superior de la Universidad Autónoma del Estado de Morelos, para el buen término de esta gran obra. Dr. Marco Antonio Cruz Chávez Lista de Autores Abraham Briseño Cerón, Vanessa Guadalupe Félix Aviña, Rogelio Alfonso Noris Covarrubias. Universidad Politécnica de Sinaloa. México. P. Toribio, B. G. Rodriguez. Centro Universitario UAEM Atlacomulco, Universidad Autónoma del Estado de México, México. R. Alejo. Dept Llenguatges I Sistemes Informátics, Universitat Jaume I,. España. Juan C. Herrera-Lozada, Hiram Calvo. Centro de Investigación en Computación, CIC-IPN, U. P. México. Hind Taud, Edgar A. Portilla-Flores. Centro de Innovación y Desarrollo Tecnológico en Cómputo, CIDETEC IPN. México. Irma Delia Rojas-Cuevas. Departamento de Sistemas y Computación. Instituto Tecnológico de Puebla. México. José Rafael Mendoza-Vázquez. Departamento de Ingeniería Eléctrica y Electrónica. Instituto Tecnológico de Puebla. México. Sergio Javier Torres-Méndez. Departamento de Postgrado e Investigación. Instituto Tecnológico de Puebla. México. Obed Cortés-Aburto, Rafael Rojas-Rodríguez, Carlos Marín-Dávila. Mecatrónica, Universidad Politécnica de Puebla, México. Carlos Eduardo Mariano Romero. Instituto Mexicano de Tecnología del Agua (IMTA), Cuernavaca, México. Raymundo Montiel, Blanca E. Pedroza, María Guadalupe Medina, Carlos Pérez. Instituto Tecnológico de Apizaco División de Estudios de Posgrado e Investigación. México. Mario Peña Cabrera, H. Gómez N. R. Osorio C. Instituto de Investigaciones en Matemáticas Aplicdas y en Sistemas de la Universidad Nacional Autónoma de México-IIMAS-UNAM. México. Ismael López-Juárez. CINVESTAV, Saltillo, Coahuila, México. J. Cerezo-Román, Oleg Sergiyenko. Instituto de Ingeniería, Universidad Autónoma de Baja California, México. Jesús Enrique Vázquez Reyna. Instituto de la Educación Básica del Estado de Morelos. México. Juan Fernando García Mejía, Flor del Río González Romero, Arturo Garduño Aparicio. Departamento de Instrumentación Virtual, Centro Universitario UAEMEX Atlacomulco. México. Martha Idalid Rivera González, Gelier Jonathan Reyes Vite. Ciencias Computacionales, Universidad Autónoma del Estado de Hidalgo, Instituto de Ciencias Básicas e Ingeniería, Área Académica de Computación. México. E. Antúnez-Cerón. Instituto Nacional de Astrofísica, Óptica y Electrónica. Puebla, México. Rodolfo Ostos Robles, Ismaylia Saucedo Ugalde, Víctor Javier Sánchez Sánchez . Universidad Politécnica de Sinaloa. México. Paola Delgado Fernández. Universidad Autónoma de Baja California, Ensenada, Baja California, México. Luis Antonio Gama Moreno. Instituto Tecnológico de Zacatepec, Zacatepec, Morelos, México. Hilda Beatriz Ramírez Moreno, Esperanza Manrique Rojas, Maricela Sevilla Caro, Margarita Ramírez Ramírez. Facultad de Contaduría y Administración, Universidad Autónoma de Baja California, Campus Tijuana. México. Vanessa Hamar. Centre de Physique des Particules de Marseille. Francia. Centro Nacional de Cálculo Científico, Universidad de Los Andes, Corporación Parque Tecnológico de Mérida, Mérida, Venezuela. Teresa Natalia Figueroa Ríos, Leopoldo Altamirano Robles.Instituto Nacional de Astrofísica, Óptica y Electrónica. Puebla. México. Benjamín Sierra Rodríguez. Gerencia de Normalización, Comisión Federal de Electricidad, México, D.F. Manuel González de la Rosa. Unidad Académica Profesional UAEM Tianguistenco, Universidad Autónoma del Estado de México. México. Norma Martínez Urbano, Venancio García González, Roberto Alejo Eleuterio. Centro Universitario UAEM Atlacomulco, Universidad Autónoma del Estado de México. México. José Luis Tapia Fabela, Yulia Nikolaevna Ledeneva, René Arnulfo García Hernández. Departmento de Ingeniería de Software, Unidad Académica Profesional de Tianguistenco, Universidad Autónoma del Estado de México. México. Jorge Ruiz Vanoye. Universidad Juárez Autónoma de Tabasco. Tabasco. México. Luis Eduardo Espinosa Maya, Godolfredo Sánchez Medina, Horacio George Haro, René L. Pacheco L., Gerardo Villegas R., Gerardo Mino A., Oscar Morales P., Honorato Azucena C., Grupo de Mecatrónica, Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla. México. Jorge Barahona Ávalos. Instituto de Electrónica y Computación, Universidad Tecnológica de la Mixteca, Huajuapan de León, Oaxaca. México. Nora del Carmen Osuna Millán, Margarita Ramírez Ramírez, Esperanza Manrique Rojas, María del Consuelo Salgado Soto. Universidad Autónoma de Baja California-Campus Tijuana. México. José Alberto Hernández-Aguilar, Martín H. Cruz-Rosales, Messouma Atakishiyeva. Facultad de Ciencias, Universidad Autónoma del Estado de Morelos. México. Marco Antonio Cruz-Chávez, Alina Martínez-Oropeza, Fredy Juárez-Pérez, Erika Yesenia Ávila Melgar, Sotsil Silva-Sotelo, M. Tecpoyotl-Torres, P. Vargas-Chable, J. A. Damián-Morales J. Escobedo-Alatorre, A. Zamudio-Lara, Gennadiy Burlak, V. Grimalsky, Y. El-Hamzaoui, J.A. Hernandez, R. J. Romero, P. A. MárquezAguilar, A. Díaz-de-Anda y S. Koshevaya Atakishiyeva. Centro de Investigaciones en Ingeniería y Ciencias Aplicadas (CIICAp), Posgrado en Ingeniería y Ciencias Aplicadas, Universidad Autónoma del Estado de Morelos. México. José Crispín Zavala-Díaz. Facultad de Contaduría, Administración e Informática. Universidad Autónoma del Estado de Morelos. México. Jorge Barahona Ávalos. Instituto de Electrónica y Computación, Universidad Tecnológica de la Mixteca, Huajuapan de León, Oaxaca. México. Luis Eduardo Espinosa Maya, Godolfredo Sánchez Medina, Horacio George Haro, René L. Pacheco L., Gerardo Villegas R., Gerardo Mino A., Oscar Morales P., Honorato Azucena C. Grupo de Mecatrónica, Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla, México. René Santaolaya Salgado, Moisés González García. Departamento de Ciencias Computacionales, Centro Nacional de Investigación y Desarrollo Tecnológico CENIDET. México. Yuriy Kotsarenko, Fernando Ramos. Instituto Tecnológico de Estudios Superiores de Monterrey. México. A.Bassam. Centro de Investigación en Energía, Universidad Nacional Autónoma de México. México. Alberto Ochoa. Instituto de Ingeniería y Tecnología, Universidad Autónoma de Ciudad Juárez. México. R. Vargas-Bernal. Instituto Tecnológico Superior de Irapuato, Electronics Department. México. M. Torres-Cisneros. Faculty of Mechanical, Electrical and Electronic Engineering, FIMEE, University of Guanajuato, Mexico. Capítulo I Optimización 5 6 Calendarización de Redes de Distribución de Agua Marco Antonio Cruz-Chávez, José Crispín Zavala-Díaz, Fredy Juárez-Pérez, Erika Yesenia Ávila Melgar, Carlos Eduardo Mariano Romero Resumen. En este artículo se describe una metodología para la calendarización de redes de distribución de agua y se hace la conversión de un algoritmo genético secuencial a un algoritmo genético paralelo aplicado a problemas de calendarización de este tipo. El problema clásico de diseño de redes de distribución de agua y su evolución en las últimas décadas se estudian de manera comparativa. Se muestran dos esquemas de paralelización del algoritmo: paralelización simple y paralelización funcional, señalando las ventajas y desventajas de cada esquema. La aplicación de este algoritmo paralelo reduce el tiempo necesario para obtener soluciones aproximadas para problemas NPCompletos, como lo es el problema de las redes de distribución de agua. Palabras clave: paralelización de un algoritmo, paralelización simple, paralelización funcional, algoritmo genético, redes de distribución de agua. Sumario: 1 Introducción 2 Descripción del problema 3 Estado del arte del problema de diseño de las redes de distribución de agua 4 Metodología para la paralelización simple de un algoritmo genético 5 Metodología para la paralelización funcional de un algoritmo genético 6 Conclusiones Referencias 1 Introducción Los algoritmos genéticos son algoritmos computacionales basados en la evolución natural de los seres vivos. A pesar de que no garantizan que la solución óptima de un problema se encuentre, se han aplicado con éxito en diferentes áreas de investigación para la solución de una gran variedad de problemas. Estudios experimentales diversos muestran la eficiencia de los algoritmos genéticos para encontrar soluciones aproximadas en tiempos de cómputo razonables. Gracias a sus características, son relativamente fáciles de llevarlos a ambientes paralelos. La programación paralela es un mecanismo que reduce el tiempo de cómputo de los algoritmos. La paralelización de un algoritmo se realiza principalmente para resolver problemas complejos1 en los 7 que los recursos de una sola máquina no son suficientes, o bien, si se pudiera resolver, la máquina tardaría años en encontrar una solución. La finalidad de paralelizar un algoritmo es disminuir el tiempo de procesamiento mediante la distribución de tareas entre los procesadores disponibles. La paralelización se basa en el concepto de cooperación entre los procesadores, lo que mejora la calidad de las soluciones de un problema. Actualmente, la paralelización de algoritmos es un recurso que se usa cuando se quiere resolver problemas de optimización en los que el espacio de soluciones es muy grande, por ejemplo, problemas de tipo NP-Completo, como el de las redes de distribución de agua. El problema de las redes de distribución de agua es de gran interés para los investigadores, por su aplicación práctica; durante más de tres décadas ha sido estudiado ampliamente. Una cantidad considerable de formulaciones y métodos de solución ha sido propuesta; sin embargo, sólo se ha logrado resolver instancias prácticas pequeñas, pues, de acuerdo con la teoría de la complejidad, el problema se clasifica dentro de los NP-Duros2 y puede abordarse desde diferentes perspectivas: diseño, operación, rehabilitación y mantenimiento. Actualmente, la mayoría de los investigadores ha realizado estudios enfocados en la solución del diseño. El problema de diseño consiste en elegir los componentes básicos que forman la red. Los componentes más comunes son: tuberías, bombas, válvulas y reservorios o fuentes de abastecimiento. Las tuberías comerciales, disponibles en diferentes diámetros y materiales, llevan el agua desde las fuentes hasta los usuarios de la red. Las válvulas regulan la presión de una red de agua. Las bombas son indispensables cuando la técnica de distribución es el bombeo. Finalmente, las fuentes de abastecimiento son imprescindibles: ríos, arroyos, manantiales, pozos y otros recursos acuíferos. La fase de diseño de una red de distribución de agua es fundamental porque de éste depende, en gran parte, su buen funcionamiento. Se debe elegir una topología adecuada que represente la ubicación física en la que se localizarán los componentes de la red —los usuarios, las fuentes de abastecimiento y los demás elementos que la integran. También deben considerarse otros factores, como las condiciones topográficas, las características de los componentes y el número de usuarios. Las redes de distribución de agua pueden representarse de forma gráfica utilizando la teoría de grafos. 3 En un grafo, los nodos representan a las fuentes de abastecimiento y a los consumidores. Los arcos o aristas representan los elementos de conexión, como tuberías, válvulas, bombas, entre otros. De acuerdo con Bhave,4 las redes se clasifican en serie, ramificadas y malladas. Una red en serie es aquella que no contiene mallas ni ramificaciones; es una conexión entre dos o más nodos de forma lineal. Generalmente, tiene un nodo fuente, un nodo final o sumidero y uno o más nodos intermedios. Es la topología más simple que existe para las redes de distribución de agua. 8 Una red ramificada es similar a una estructura de árbol. Es un conjunto de redes en serie y no contiene mallas. Estas redes presentan un nodo fuente, más de un nodo final y uno o más nodos intermedios. Generalmente, las redes ramificadas se utilizan para la distribución de agua en comunidades rurales pequeñas, en zonas industriales y en zonas de riego. En la práctica, el inconveniente de las redes ramificadas es la suspensión del servicio en diferentes puntos de la red cuando ocurren roturas o fugas en alguna tubería. Esto se debe a que sólo tienen un camino para llegar de un punto a otro, de manera que algunos usuarios se quedan sin servicio cuando hay fuga. Las redes malladas contienen ciclos o mallas por donde el agua llega a un punto de la red por diferentes caminos. En estas redes, la interrupción del servicio ocasionada por rupturas en las tuberías ocurre con menor frecuencia, ya que el agua llega a su destino utilizando diferentes trayectorias, de tal manera que una rotura en una tubería, en general, no afecta gravemente a otros puntos de la red. A pesar de que el costo de construir redes malladas es más elevado que el de las redes ramificadas, su uso se justifica por su fiabilidad.5 La operación de una red de distribución de agua es importante también. Un diseño correcto ayuda a su buen funcionamiento. Sin embargo, no garantiza que la distribución del agua sea eficiente. En la actualidad, la forma de operar de una red es lo que hace que el agua llegue a los usuarios en cantidades apropiadas evitando fugas, desperdicios o desabastecimientos. La distribución de agua en una red es, en sí misma, un problema de optimización. La función objetivo consiste en minimizar el costo de distribución con base en la demanda de los usuarios, la cual es variable a lo largo de cada día. La mayor parte de la investigación respecto del tema que nos ocupa se ha enfocado en el diseño de la red. Sin embargo, la forma de operarla merece ser estudiada a fin de aprovechar los recursos hídricos existentes mediante una distribución equitativa entre los usuarios. En este trabajo se aborda el problema de las redes de distribución de agua desde la etapa de operación. 2 Descripción del problema La operación de una red de distribución de agua consiste básicamente en encontrar la forma más eficiente de suministrarla cumpliendo una serie de restricciones para la red y para los usuarios. Las restricciones principales son las presiones mínimas requeridas por los usuarios y las velocidades en los flujos de la red, entre otras. Idealmente, la operación de la red debería brindar a los usuarios un servicio constante e ininterrumpido. Sin embargo, hasta ahora, en la práctica esto no ha 9 sido posible. Este esquema de operación tiene costos energéticos altos y la capacidad de los recursos hídricos de las fuentes de abastecimiento disponibles es limitada. Como una alternativa, en un estudio realizado por Cruz-Chávez et al.,6 se propone un esquema de calendarización del servicio, con el cual la operación eficiente de la red se garantice y los costos energéticos ocasionados por la distribución del agua se minimicen. El servicio debe incluir a todos y cada uno de los usuarios, logrando una distribución equitativa de los recursos hídricos. A continuación, se retoma la formulación matemática del modelo a resolver presentado en Cruz-Chávez et al.6 La función objetivo consiste en minimizar el tiempo de distribución óptima del agua en una red. El método de solución que aquí se propone consiste precisamente en utilizar un algoritmo genético para la calendarización de las redes de distribución de agua. Los algoritmos genéticos son técnicas de optimización estocástica. Trabajan mediante la generación de soluciones aleatorias. La teoría de los algoritmos genéticos fue propuesta por Holland 7 y desarrollada posteriormente por Goldberg8 y se basa en la evolución natural de los seres vivos. Así, en los algoritmos genéticos, una población se compone de un conjunto de soluciones computacionales. Cada individuo se representa mediante un conjunto de valores que describen una solución. Cada solución está codificada en cromosomas, es decir, cadenas de caracteres análogas a las del ADN. Los algoritmos genéticos tradicionales utilizan la representación alfabética o binaria para las cadenas y manejan los operadores clásicos de selección, cruzamiento y mutación (véase la figura 1). 10 Fig. 1. Algoritmo genético tradicional. Los algoritmos genéticos ya se han aplicado al problema de las redes de distribución de agua, y generalmente se obtienen buenos resultados en problemas complejos. Sin embargo, el tiempo de convergencia para la solución de un problema oscila entre uno y varios días, por lo mismo, surge la necesidad de obtener resultados eficaces más eficientemente. Para lograr esto, se plantea aquí una metodología para llevar un algoritmo secuencial existente a un ambiente paralelo, aplicándolo al problema de las redes de distribución de agua. La complejidad mayor de la conversión de un algoritmo genético secuencial a un algoritmo genético paralelo es la comunicación entre procesadores. El algoritmo secuencial, que está implementado en lenguaje C, contiene estructuras dinámicas que deben enviarse, modificarse y recibirse de regreso en los nodos, en cada iteración del algoritmo (véase la figura 2). 11 Las estructura s de datos “Fuente” y “Ciudad” son complejas La porque estructura utilizan de datos tipos de “Calendar datos iza” es básicos dinámica, del ya que lenguaje utiliza C. Los Fig. 2. Estructuras de datos del problema secuencial de la calendarización. apuntador tipos de es para datos que Las estructuras dinámicas permiten que la información esté organizada; referirse a utilizan sin embargo, utilizan apuntadores para referirse a otros datos y no se reconocen otrosson tipos (int) en el entorno MPI. de datos. primitivos . 3 Estado del arte del problema de diseño de las redes de distribución de agua Desde hace tiempo este problema ha sido estudiado por una gran cantidad de investigadores. Por ejemplo, Alperovits y Shamir 9 proponen el problema clásico de diseño óptimo de un sistema de distribución de agua, el cual consiste en una red de tuberías que llevan agua de las fuentes a los usuarios. La red puede contener bombas, válvulas y fuentes de abastecimiento. En este problema, las restricciones son las demandas conocidas, que deben cumplirse, y las presiones en los nodos, que deben respetar ciertos límites. Las variables de decisión son los diámetros de las tuberías y se basan en algunos enfoques de las variables continuas, lo que significa que entre cada par de nodos un segmento de tubería puede dividirse en dos o más segmentos con diferentes diámetros. Las variables de decisión son también las capacidades de las bombas y la elevación de las fuentes de abastecimiento. En este enfoque clásico, generalmente se utilizan redes ramificadas como caso de estudio. La formulación del problema es lineal y el método de solución es el gradiente. 12 Después de Alperovits y Shamir,9 el problema de diseño de redes de distribución de agua ha sido estudiado por Quindry,10 Goulter et al.,11 Fujiwara y Khang,12 Kessler y Shamir,13 Gupta et al.,2 Eiger et al.,14 entre otros. La mayoría de los investigadores tratan el problema de manera lineal y proponen algunas técnicas de solución: modificaciones a los métodos del gradiente, quasi-Newton, Branch and Bound, entre otros (véase el cuadro 1). Cuadro 1. Problema de diseño de redes de distribución de agua utilizando variables continúas Los costo obtenido por diferentes autores para el problema de diseño de la red,a pesar de que se han empleado métodos diferentes, los resultados son cercanos. Generalmente, se aplican a redes ramificadas, se utilizan componentes adicionales y la técnica de distribución del agua es mediante bombeo. Con el tiempo, el problema clásico se ha modificado gradualmente, de tal forma que en las últimas décadas se ha tratado como un problema no lineal, utilizando los diámetros de las tuberías como variables de decisión discretas. Se han propuesto diversos tipos de heurísticas para resolver el problema y se han obtenido resultados experimentales similares (véase el cuadro 2); sin embargo, no existe la certeza de que las soluciones encontradas sean óptimas, ya que la mayoría de los métodos propuestos no tienen prueba de optimalidad. 13 Cuadro 2. Problema de diseño de redes de distribución de agua utilizando variables discretas Las variables de decisión son discretas. Generalmente, la topología de las redes es mallada, la mayoría de los métodos de solución se basan en heurísticas. La estrategia de distribución del agua suele ser por gravedad. En estos estudios existen algunas diferencias remarcables. En algunos, 6,7,8,9,10,11 se utilizan componentes en la red; mientras que, en otros, 12 se supone la existencia de un modelo ideal de red. Además, algunos autores6,7,8,9,10,11 utilizan topologías ramificadas, mientras que otros consideran el diseño de redes malladas. 15 Finalmente, en algunos trabajos se utiliza la técnica de gravedad porque se considera que las fuentes de abastecimiento están a mayor altura que los nodos de demanda;4 en otros se piensa en la técnica de bombeo porque algunos nodos se encuentran a mayor altura que las fuentes de abastecimiento, 6,7,8,9,10,11 o bien, simplemente, porque se requiere una mayor presión en los nodos. 4 Metodología para la paralelización simple de un algoritmo genético La paralelización de un algoritmo requiere de un modelo de operación. El modelo de islas26 divide la población original en un conjunto de subpoblaciones distribuidas entre diferentes procesadores. Cada procesador es responsable de la gestión de la subpoblación que se le ha asignado, de forma que ejecuta todos los pasos de la heurística y ocasionalmente envía individuos entre islas. Aunque este modelo rompe la secuencia del algoritmo, estudios en diferentes aplicaciones han demostrado que suele superar al modelo maestro-esclavo, debido principalmente a que permite mantener la diversidad en la búsqueda a la vez que se mantiene un cierto grado de cooperación entre procesadores. 26 Una primera propuesta de paralelización para el algoritmo secuencial presentado es una metodología de paralelización simple (véase la figura 3). 14 Fig. 3. Paralelización simple. La metodología de paralelización simple se basa en el modelo de islas y en la idea de competencias entre procesadores. Consiste en los siguientes pasos: 1. Dado un algoritmo secuencial, el primer paso de la paralelización consiste en el análisis del algoritmo para identificar las secciones críticas que consumen la mayor cantidad de recursos computacionales y que pudieran trabajar de forma independiente. 2. Una vez identificadas las funciones críticas se deben dividir de forma manual o dinámica entre el número de procesadores disponibles. 3. Posteriormente, se asigna una copia del programa a cada procesador y se le indica qué funciones debe ejecutar. 4. Se define una fórmula para que procesador calcule por sí mismo el número de iteraciones a realizar en las funciones críticas que le fueron asignadas. En ellas trabaja durante la ejecución del programa. 5. Se define un conjunto de datos para cada procesador y éste trabaja de forma independiente. El procesador sólo se comunica con los demás procesadores en caso de encontrar la solución óptima del problema. En este momento se termina la ejecución del programa en todos los procesadores. 5 Metodología para la paralelización funcional de un algoritmo genético La paralelización funcional (véase la figura 6) consiste en la división de tareas entre el número de procesadores existentes. Se utiliza el modelo maestro-esclavo, el cual permite mantener la secuencia del algoritmo original. 26 Un procesador 15 maestro centraliza la población y gestiona la selección y los reemplazos de individuos. También se encarga del envío de subconjuntos de la población a los esclavos, los cuales ejecutan tareas de evaluación y mutación. Después, los esclavos devuelven las soluciones evaluadas al maestro. Esta metodología de paralelización funcional del algoritmo aplicado al problema de redes de distribución de agua consiste en los siguientes pasos: 1. Dado un algoritmo secuencial, el primer paso en la paralelización consiste en el análisis del algoritmo para identificar las secciones críticas que consumen la mayor cantidad de recursos computacionales. Estas secciones se dividen entre el número de procesadores. 2. Se debe realizar un análisis exhaustivo del código fuente del programa secuencial para identificar el grado de cohesión y acoplamiento del programa. En caso de que sea un programa con alto grado de acoplamiento, la comunicación entre los procesadores será constante durante el envío y recepción de los datos que se modifican en las diferentes funciones. Se sabe que, en cómputo distribuido, las comunicaciones constantes afectan el rendimiento del programa, por lo que es recomendable en la medida de lo posible evitar el exceso de comunicaciones entre procesadores. 3. Se debe analizar el tipo de datos que se enviarán a los procesadores. La existencia de estructuras dinámicas beneficia porque la información está organizada y no hay necesidad de hacer varios envíos. Sin embargo, debe realizarse una conversión de datos de lenguaje C a su equivalente en MPI. Como MPI no reconoce la existencia de estructuras dinámicas, hay que llevar a cabo un proceso que equivale a serializar y deserializar los datos. En Michel y Devaney,27 se propone una metodología para la conversión manual de un tipo de dato en C a MPI. También se propone el uso de una herramienta para realizar la conversión de forma automática. 4. Una vez definidas las tareas y datos que se asignarán al programa, se debe identificar el número de procesadores disponibles. Con base en esta cantidad, se puede realizar una distribución dinámica tanto de los datos como del número de operaciones a realizar. Esto tiene la finalidad de obtener un balance de carga para que los procesadores terminen sus actividades casi al mismo tiempo. Con esto se logra aprovechar al máximo los recursos disponibles y se evita el tiempo ocioso en los procesadores mientras se les asignan nuevas tareas. 16 5. En el caso de los algoritmos genéticos se debe definir necesariamente un proceso de sincronización porque existe un número de iteraciones que deben realizarse. En cada iteración, el procesador maestro debe recopilar los datos y actualizar la población de tal forma que se envíen datos nuevos a los procesos esclavos. Así se mejoran las soluciones, pues cada procesador trabaja sobre espacios de soluciones diferentes que pueden combinarse. Para la sincronización existen las técnicas conocidas como semáforos, barreras, o bien, comunicación bloqueante, propia de la biblioteca de paralelización MPI. 6. Finalmente, se deben utilizar instrucciones importantes para el algoritmo paralelo. Algunas instrucciones son propias del entorno MPI (véase el cuadro 3). Cuadro 3. Funciones definidas en la biblioteca MPI Como acabamos de ver, en el modelo maestro-esclavo para la paralelización funcional del algoritmo genético, se tiene un nodo central (maestro) que se encarga de distribuir los datos y las tareas a los nodos esclavos. El algoritmo trabaja con una única población de individuos que se divide en partes iguales entre el número de nodos disponibles. A cada nodo esclavo le corresponde una parte de la población total, sobre la cual realizará las operaciones que le corresponden. Los nodos esclavos se encargan de realizar las operaciones de mutación sobre la parte de la población que les fue asignada. Una vez que finalizan las operaciones, los nodos esclavos devuelven sus resultados obtenidos al nodo maestro. El nodo maestro almacena las soluciones obtenidas por los esclavos en una nueva población. Sobre esta nueva población, el nodo maestro realiza las operaciones correspondientes a los operadores de selección y cruzamiento, y posteriormente envía a los nodos esclavos la nueva población sobre la cual deben trabajar (véase la figura 4). 17 Fig. 4. Paralelización funcional con comunicación. La diferencia principal entre los esquemas de paralelización utilizados en este trabajo es que en el esquema funcional existe una comunicación constante entre el nodo maestro y los nodos esclavos. También hay cooperación entre los nodos para encontrar mejores soluciones en cada generación. Sin embargo, una desventaja de la aplicación funcional es que algún nodo falle o simplemente se detenga, lo cual puede ocurrir con frecuencia para evitar que los costos energéticos se eleven a causa de que el clúster de computadoras esté funcionando de manera ininterrumpida. Si un nodo falla o se detiene, el nodo maestro se quedará esperando los resultados de todos los nodos esclavos y no podrá continuar con la siguiente iteración del programa. Por otra parte, la ventaja principal de la paralelización simple es que no existen dependencias entre los procesadores y cada uno puede trabajar a diferente ritmo; cualquiera de ellos puede encontrar la solución óptima global. Llevar un algoritmo secuencial a un 18 ambiente paralelo requiere de un conocimiento exhaustivo del algoritmo. Además, es necesario asegurarse de que durante la paralelización los datos conserven su consistencia y lleguen correctamente a los nodos destino durante la comunicación. 6 Conclusiones Una de las ventajas de utilizar el cómputo paralelo es la disminución del tiempo de ejecución de un programa. El cómputo paralelo se usa como una herramienta para resolver problemas complejos de optimización combinatoria en los que los recursos de una sola computadora no son suficientes o tardarían años en solucionar un problema. En este artículo se presentó un análisis comparativo del problema de las redes de distribución de agua en las últimas décadas, abordado desde el punto de vista de su diseño. Se presentaron también dos metodologías de paralelización: la simple y la funcional. Se compararon las metodologías y se señalaron las dificultades, ventajas y desventajas de cada esquema. La problemática principal de la paralelización del algoritmo genético es el envío de las estructuras dinámicas en el clúster de computadoras. Puede decirse que ambos esquemas de paralelización, tanto la simple como la funcional, tienen ventajas y desventajas, y dependiendo de las necesidades que se tengan se puede elegir alguna de ellas. Las metodologías que aquí se han propuesto pueden ayudar en la conversión de un algoritmo secuencial a un algoritmo paralelo en un ambiente MPI. En el presente estudio se logró la conversión de un algoritmo secuencial a su equivalente en paralelo, el cual puede aplicarse al problema de las redes de distribución de agua. Un trabajo que daría continuidad a esta investigación en el futuro sería el de mostrar los resultados experimentales realizados con ambas metodologías en el problema de las redes de distribución de agua. Referencias 1. Blazewicz, J., ‚Handbook on Parallel and Distributed Processing‛, en International Handbooks on Information Systems, Springer-Verlag, Nueva York, 2000. 2. Gupta, I., J. K., Bassin, A. Gupta y P. Khanna, ‚Optimization of Water Distribution System‛, Environmental Software, núm. 8, 1993, pp. 101-113. 3. Water Distribution Systems Connectivity Analysis Avi Ostfeld, J. Water Resour. Plng. and Mgmt. 131, 58 (2005), DOI:10.1061/(ASCE)07339496(2005)131:1(58) 4. Bhave, P. R., Analysis of Flow in Water Distribution Networks, Technomic Publishing Company, Lancaster, 1991. 19 5. Baños Navarro, R., Metaheurísticas híbridas para optimización monoobjetivo y multiobjetivo, tesis doctoral, Almería, España, 2006. Disponible en Internet (www.ace.ual.es/~rbanos/CV.html), página consultada el 12 de mayo de 2009. 6. Cruz-Chávez, M. A. et al., ‚Empirical Transformation of Job Shop Scheduling Problem to the Hydraulic Networks Problem in a Water Distribution System‛, ponencia para el Congreso de Electrónica, Robótica y Mecánica Automotriz, 2009 (inédito). 7. Holland, J. H., Adaptation in Natural and Artificial Systems, MIT Press, Cambridge, Mass., 1975. 8. Goldberg, D. E., Genetic Algorithms in Search, Optimization and Machine Learning. Addison, Wesley Publishing Co., Reading, Mass., 1989. 9. Alperovits, E. y U. Shamir, ‚Design of Optimal Water Distribution Systems‛, Resources Research, vol. 13, núm. 6, 1977, pp. 885-900. 10. Quindry, G. E., E. D. Brill, J. C. Liebman y A. R. Robinson, ‚Comment on ‘Design of Optimal Water Distribution System’’ by E. Alperovits and U. Shamir‛, Water Resources Research, vol. 15, núm. 6, 1979, pp. 1651-1654. 11. Goulter, I. C., B. M. Lussier y D. R. Morgan, ‚Implications of Head Loss Path Choice in the Optimization of Water Distribution Networks‛, Water Resources Research, vol. 22, núm. 5, 1986, pp. 819-822. 12. Fujiwara, O y D. B. Khang, ‚Correction to ‘A Two-Phase Decomposition Method for Optimal Design of Looped Water Distribution Networks’ ‛, Water Resources Research, vol. 27, núm. 5, 1991, pp. 985-986. 13. Kessler, A. y U. Shamir, ‚Analysis of the Linear Programming Gradient Method for Optimal Design of Water Supply Networks‛, Water Resources Research, vol. 25, núm. 7, 1989, pp. 1469-1480. 14. Eiger, G., U. Shamir y A. Ben-Tal, ‚Optimal Design of Water Distribution Networks‛, Water Resources Research, vol. 30, núm. 9, 1994, pp. 2637-2646. 15. Loganathan, G. V., H. D. Sherali y M. P. Shah, ‚A Two-Phase Network Design Heuristic for Minimum Cost Water Distribution System Under a Reliability Constraint‛, Eng. Optim., vol. 15, núm. 4, 1990, pp. 311-336. 16. Varma, K. V. K., S. Narasimhan y S. M. Bhallamudi, ‚Optimal Design of Water Distribution Systems Using NLP Method‛, Journal of Environmental Engeneering, vol. 123, núm. 4, 1997, pp. 381-388. 17. Savic, D. A. y G. A. Walters, ‚Genetic Algorithms for Least-Cost Design of Water Distribution Networks‛, Journal of Water Resource Planning Management, vol. 123, núm. 2, 1997, pp. 67-76. 18. Abebe, A. J. y D. P. Solomatine, ‚Application of Global Optimization to the Design of Pipe Networks‛, en Proceedings of the International Conference on Hydroinformatics, A. A. Balkema, Brookfield, Vt., 1998, pp. 989-996. 20 19. Abebe, A. J. y D. P. Solomatine, ‚Two Strategies of Adaptive Cluster Covering with Descent and Their Comparison to Other Algorithms‛, Journal of Global Optimization, núm. 14, 1999, pp. 55-79. 20. Montesinos, P., A. García y J. L. Ayuso, ‚Water Distribution Network Optimisation Using Modified Genetic Algorithm‛, Water Resources Research, vol. 35, núm. 11, 1999, pp. 3467-3473. 21. Cunha, M. C. y J. Sousa, ‚Water Distribution Network Design Optimization: Simulated Annealing Approach, Journal of Water Resource Planning Management, vol. 125, núm. 4, 1999, pp. 215-221. 22. Geem, Z. W., J. H. Kim y G. V. Loganathan, ‚A New Heuristic Optimisation Algorithm: Harmony Search‛, Simulation, vol. 76, núm. 2, 2001, pp. 60-68. 23. Eusuff, M. M. y K. E. Lansey, ‚Optimization of Water Distribution Network Design Using the Shuffled Frog Leaping Algorithm, Journal of Water Resource Planning Management, vol. 129, núm. 3, 2003, pp. 210-225. 24. Matías, A., Diseño de redes de distribución de agua contemplando la fiabilidad mediante algoritmos genéticos, tesis doctoral, Universidad Politécnica de Valencia, España, 2003. 25. J. Reca, J. Martinez, Genetic algorithms for the design of looped irrigation water distribution networks, Water Resources Research, Vol. 42, Almeria, España. 2006. 26. Cantu-Paz, E., ‚A Survey of Parallel Genetic Algorithms‛, reporte técnico (IlliGAL, núm. 97003), University of Illinois at Urbana, Champaign, 1997. 27. Michel, M. y J. E. Devaney, ‚A Generalized Approach for Transferring DataTypes with Arbitrary Communication Libraries‛, en Proceedings of the VII International Conference on Parallel and Distributed Systems: Workshops, ICPADSIEEE Computer Society, Washington, DC, del 4 al 7 de 21 22 A Heuristic Approach for Improvement Batch Plant Design under Imprecise Demand Using Fuzzy Logics Y. El-Hamzaoui ,J.A. Hernandez , A.Bassam Abstract. This paper deals with the problem of the improvement design of multiproduct batch chemical plants found in chemical engineering with imprecise demand. The objective of the batch plant design problem is to minimize the investment cost and find out the number and size of parallel equipment units in each stage. For this purpose, it is proposed to solve the problem in two differents ways: The first way is by using Monte Carlo Method (MC), the second way is by Genetic Algorithm (GA), that takes into account simultaneously, the imprecise demand using Fuzzy Logics with two criteria maximization of the Net Present Value (NPV) and Flexibility Index (FI). The results (number and size of equipment, investment cost, NPV, FI, Hi, CPU time) obtained by the GA are better than the MC. This methodology can help the decision makers and constitutes very a promising framework for finding a set of ‚good solutions‛. Key words: Genetic Algorithm, Monte Carlo, Fuzzy Logics, Batch Plant Design. 1. Introduction 2. Methodology 2.1 Process description 2.2. Fuzzy logics 2.3 Data Set 2.3 Tools 2.3.1 Monte Carlo Method 2.3.2 Genetic Algorithm 2.4. Assumptions 2.5 Model Formulation 3. Results and discussion 4. Conclusions Nomenclature References 1. Introduction In chemical engineering, precisely, in recent years, there has been an increased interest in the design of batch processes due to the growth of specialty chemical, food products, pharmaceutical and related industries aroused the current focus on the batch plant design problem (Cameron, 2008). Also the Process Engineering framework, batch processes are of growing industrial importance because of their flexibility and their ability to produce high added-value products in low volumes. In economics, demand is the desire to own something and the ability to pay for it (Henning et al.1988). The term demand is also defined elsewhere as a measure of 23 preferences that is weighted by income, but the market demand for such products is usually changeable, and at the stage of conceptual design of a batch plant, it is almost impossible to get the precise information on the future product demand over the lifetime of the plant. However, decisions must be made about the plant capacity. This capacity should be able to balance the product demand satisfaction (Henning et al.1988). In the conventional optimal design of a multiproduct batch chemical plant (Hasebe et al.1979), a designer specifies the production requirements for each product and total production time for all products (Floudas et al.2005). The number required of volume and size of parallel equipment units in each stage is to be determined in order to minimize the investment cost. Basically, batch plants are composed of items operating in a discontinuous way. Each batch then visits a fixed number of equipment items, as required by a given synthesis sequence (so-called production recipe) (Ponsich et al.2007). For instance, the design of a multiproduct batch chemical plant is not only to minimize the investment cost, but also to minimize the operation cost, to minimize the total production time to maximize the revenue, and to maximize the flexibility index, simultaneously (Aguilar Lasserre et al, 2005). On the other hand, the key point in the improvement designs of batch plants under imprecision concerns the modeling of demand variations. The market demand for products resulting from the batch industry is usually changeable, and at the stage of conceptual design of a batch plant, it is almost impossible to obtain the precise information on the future product demand over the plant lifetime. Nevertheless, decisions must be made about on the plant capacity. This capacity should be able to balance the product demand satisfaction and extra-capacity in order to reduce the loss on the excessive investment cost or than on market share due to the varying product demands (Huang et al.2002). The most recent common approaches treated in the dedicated literature represent the demand uncertainty with a probabilistic frame by means of Gaussian distributions. Yet, this assumption does not seem to be always a reliable representation of the reality, since in practice the parameters are interdependent and do not follow symmetric distribution rules, which leads to very complex conditional probabilities computations. An alternative treatment of the imprecision is constituted by using fuzzy concepts by Zadeh (1975). This approach, based on the arithmetic operations on fuzzy numbers, differs mainly from the probabilistic models insofar as distribution laws are not used. It considers the imprecise nature of the information, thus quantifying the imprecision by means of fuzzy sets that represent the ‛more or less possible values‛. In this study, we will only consider multiproduct batch plants, which mean that all the possible values‛. Products follow the same operating steps (Bautista, 2007), the structure of the variables are the equipment sizes and number of each 24 unit operation that generally takes discrete values. Based on Fuzzy concepts of the demand, the IBPD (Improvement Batch Plant Design) is solved by two techniques: Monte Carlo Method (MC) and Genetic Algorithm (GA). The aim of this work is to treat the improvement of multiproduct batch plant design under imprecise demand using MC and GA as tools of heuristic methods. The paper is organized as follows: Section 2 is devoted to the methodology and an overview of fuzzy set theory involved in the fuzzy framework, section 3 presents results and discussion. Finally the conclusions on this work are drawn. 2. Methodology 02.1 Process description The case study is a multiproduct batch plant for the production of proteins taken from the literature by Cao et al. (2002). This example is used as a test bench since short-cut models describing the unit operations involved in the process. The batch plant involves eight stages for producing four recombinant proteins; on one hand, two therapeutic proteins, human insulin (A) and vaccine for hepatitis (B) and, on the other hand, a food grade protein, chymosin (C), and a detergent enzyme, cryophilic protease (D). Fig 1 shows the flowsheet of the multiproduct batch plant considered in this study. All the proteins are produced as cells grow in the fermenter (Fer). Fig. 1. Multiproduct batch plant for protein production Vaccines and protease are considered to be intracellular: the first microfilter (Mf1) is used to concentrate the cell suspension, which is then sent to the homogenizer (Hom) for microfilter (Mf2) is used to remove the cell debris from the solution proteins. The ultrafiltration (Uf1) step is designed to concentrate the solution in order to minimize the extractor volume. In the liquid–liquid extractor (Ext), salt concentration (NaCl) is used in solution in order to minimize the extractor 25 volume. In the liquid–liquid extractor (Ext), salt concentration (NaCl) is used to first drive the product to a poly-ethylene-glycol (PEG) phase and again into an aqueous saline solution in the back extraction. Ultrafiltration (Uf2) is used again to concentrate the solution. The last stage is finally chromatography (Chr), during which selective binding is used to better separate the product of interest from the other proteins. Insulin and chymosin are extracellular products. Proteins are separated from the cells in the first microfilter (Mf1), where cells and some of the supernatant liquid remain behind. To reduce the amount of valuable products lost in the retentate, extra water is added to the cell suspension. The homogenizer (Hom) and microfilter (Mf2) for cell debris removal are not used when the product is extracellular. Nevertheless, the ultrafilter (Uf1) is necessary to concentrate the diluted solution prior to extraction. The final step of extraction (Ext), ultrafiltration (Uf2) and chromatography (Chr) are common to both the extracellular and intracellular products. 2.2. Fuzzy logics The emergence of electronic commerce and business-to-business applications has, in a recent period, considerably changed the dynamics of the supplier–customer relationship. Indeed, customers can change more rapidly their orders to the suppliers and many enterprises have to organize their production even if the demand is not completely known at short term. On the other hand, the increasing need for integration and optimization in supply chains leads to a greater sensitivity to perturbations due to this uncertainty. These two elements clearly show the interest of taking into account as soon as possible the uncertainty on the demand and to propagate it along the production management mechanisms. In the context of engineering design, an imprecise variable is a variable that may potentially assume any value within a possible range because the designer does not know a priori the final value that will emerge from the design process. The fuzzy set theory was introduced by Zadeh. (1975), to deal with problems in which a source of vagueness is involved. It is well recognized that fuzzy set theory offers a relevant framework to model imprecision. In this section, only the key concepts from the theory of fuzzy sets that will be used for batch plant design are presented; more detail can be found in Kaufmann et al.(1988). Different forms can be used to model the membership functions of fuzzy numbers. We have chosen to use normalized trapezoidal fuzzy numbers (TrFNs) for modeling product demand, which can be represented by a membership function μ(X). The proposed approach involves arithmetic operations on fuzzy numbers and quantifies the imprecision of the demand by means of trapezoidal fuzzy sets, as shown in Fig.2.We represent subjective 26 judgments on future demand, given as linguistic values, such as ‚demand is around a certain value or interval [q2,q3+ ‛ or ‚demand is not lower than a certain value‛. For the design of the demand, we suppose that the products have a sure level of acceptance in market, represented by the interval [q 2, q3]: This means that the demand has, in this interval, a certainty level α=1 that derives in TrFNs. On the other hand, the intervals [q1,q2] and [q3,q4+ represent the demand ‚more or less possible values‛. (See Fig. 2). Fig.2. Demand modeling by fuzzy numbers Q (q1 , q2 , q3 , q4 ) A fuzzy demand can be represented by a membership function μQ(x) at μ level by the following expression: 0,1, Q (q2 q1 ) q1 ,(q4 q3 ) q4 (1) The membership function is defined by x q1 0, xq 1 , q1 x q2 q2 q1 (2) Q ( x) 1, q 2 x q3 q x 4 , q3 x q 4 q 4 q3 0, x q4 The arithmetic calculations involve addition, subtraction and symmetric (image), through the extension principle of Zadeh (1975). •Addition:A(+)B= (a1,a2,a3,a4)(+)(b1,b2,b3,b4) = (a1+ b1, a2 + b2, a3 + b3, a4+b4) •Subtraction : A (-) B = (a1,a2,a3,a4) (-) (b1,b2,b3,b4) = (a1 - b4, a2 - b3, a3 - b2, a4 - b1). Symmetric (image) of a TrFN: -(A) = (-a4, - a2, -a3, a1 ) 27 2.3 Data Set The experimental data of IBPD was initially proposed by Montagna et al. (2000). In table 1, the plant, divided into sub-processes, consists of six batch stages [B (16)] to manufacture four products A, B, C, D. The table shows the values for processing times i , j (h) , size factor for the units, cost data, and the production requirement for each product quantifying the imprecision of the demand by using Fuzzy Logic representing the ‚more or less possible values‛. Table 1. Data used in the problem of batch plant design The problem involves 16 discrete variables to determine have been spread in the table 2. 28 Table 2. List of determination variables Equipement number [n] Equipement volume[m3] n1( Fermentación (Fer)) V1( Fermentación (Fer)) n2(Microfilter1 (Mf1)) V2(Microfilter1 (Mf1)) n3(Homogenizer(Hom)) V3(Homogenizer(Hom)) n4(Microfilter2 (Mf2)) V4(Microfilter2 (Mf2)) n5(Ultrafiltration1(Uf1)) V5(Ultrafiltration1(Uf1)) n6(Extractor (Ext)) V6(Extractor (Ext)) n7(Ultrafiltration2(Uf2)) V7(Ultrafiltration2(Uf2)) n8(Chromatographic column(Chr)) V8(Chromatographic column(Chr)) 2.3 Tools In the 1960s and 1970s, witnessed a tremendous development in the size and complexity of industrial organizations. The administrative decision-making has become very complex and involves large numbers of workers, materials and equipment. A decision is a recommendation for the best design or operation in a given system or process engineering, so as to minimize the costs or maximize the gains. Using the term "best" implies that there is a choice or set of alternative strategies of action to make decisions. The term ‚optimal‛ is usually used to denote the maximum or minimum of the objective function and the overall process of maximizing or minimizing is called optimization. The optimization problems are not only in the design of industrial systems and services, but are also applied in the manufacturing and operation of these systems once they are designed. Including various methods of optimization, we can mention: Monte Carlo Method and Genetic Algorithm. 2.3.1 Monte Carlo Method Enrico Fermi was an early user of what was later called a Monte Carlo Method. A Monte Carlo Method uses a computer to generate a large number of scenarios based on probabilities for inputs. For each scenario, a specific value would be randomly generated for each of the unknown variables (Douglas, 2007). Then these specific values would go into a formula to compute an output for that single scenario. This process usually goes on for thousands of scenarios by the method of inverse transformation and cumulative frequency distributions. The demand is the random variable of our model. In order to simulate the values of this variable, we have used a graphical user interface of random number generation tool. Through calculation we can see the whole values will take the 29 objective function as net present value. Then we made several runs with different sample sizes to see what happened with the NPV and then calculate the average results and standard deviation error. 2.3.2 Genetic Algorithm The term ‚genetic algorithm‛, almost universally abbreviated now a days to GA, was first used by Holland (1975), whose book Adaptation in Natural and Artificial Systems was instrumental in creating what is now a flourishing field of research and application that goes much wider than the original GA. A genetic algorithm is a search technique used in computing to find exact or approximate solutions to optimization and search problems. However its implementation in this work consists of the following steps: Variable Encoding. Binary system was chosen for encoding as it simplifies the genetic operators, crossover, and mutation. Encoding system can always be translated in a binary encoding system. However, the encoding of the solutions was carried out by dividing the chromosome, i.e. a complete set of coded variables, into two parts. The first one deals with the items volumes, which are continuous in the initial formulation. Nevertheless, they were discretized here with a 50 unit range, while their upper and lower bounds were preserved. The second part of the chromosome handles the number of equipment items per stage: the value of these discrete variables is coded directly in the chromosome (Holland, 1975). Fig. 3 shows an illustration of the encoding method for a small size example. In this example, we can see that the encoding procedure is adapted to the variable nature: The item size variables are coded according to a binary, like a technique, while the item number per stage are copied just as they are worth in the chromosome (for instance, if nj=2, the corresponding locus will contain information ‚2‛). The encoding procedure is adapted to the double nature of the variables: since continuous and integer variables have to coexist in the same chromosome, this latter is partitioned into two zones. As shown in Fig.3, the first zone encodes the continuous variables, i.e. the item sizes of each processing stage, as reduced variables (between 0 and 1, using the lower and upper bounds) and according to a binary – like technique that is not detailed here. On the other hand, the integer variables, representing the item number for each stage, are copied directly in the chromosome without any change: For instance, the plant illustrated in Fig.3 has 2 items for stage 1, 1 item for stage 2, and 3 items for stage 3: This corresponds to the integer numbers encoded at the end of the chromosome: 2, 1, 3. 30 Fig. 3. Illustration of the encoding method for a small size example Creation of the initial population. The procedure of creating the initial population corresponds to random sampling of each decision variable within its specific range of variation. This strategy guarantees a population varied enough to explore large zones of the search space. Survival. For a given survival rate, the selection process is achieved via a classical biased roulette wheel. The selection is performed and each selected individual is included into the new population. Crossover Operation. To complete the new population, a classical one-point crossover is performed on pairs of individuals randomly chosen in the current population. Mutation Operation. After selection and crossover, mutation is then applied on the resulting population, with a fixed mutation rate. The number of individuals on which the mutation procedure is carried out is equal to the integer part of the value of the population size multiplied by the mutation rate. These individuals are chosen randomly among the population and then the procedure is applied. Elitism. The elitism consists in keeping the best individual from the current population to the next one. 2.4. Assumptions The model formulation for IBPD’s problem adopted in this section is proposed by Karimi et al.(1989). It considers not only treatment in batch stages, which usually appears in all types of formulation, but also represents semi-continuous units that are part of the whole process (pumps, heat exchangers, etc). A semicontinuous unit is defined as a continuous unit alternating idle times and normal activity periods. Besides, this formulation takes into account mid-term intermediate storage tanks. They are just used to divide the whole process into sub-processes in order to 31 store an amount of materials corresponding to the difference of each sub-process productivity. This representation mode confers on the plant better flexibility for numerical resolution: It prevents the whole production process from being paralyzed by one limiting stage. So, a batch plant is finally represented as a series of batch stages (B), semi-continuous stages (SC) and storage tanks (T).The model is based on the following assumptions: (i) Devices used in the same production line can not be used again by the same product. (ii) Production is achieved through a series of single product campaigns. (iii) Units of the same batch or semi-continuous stage have the same type and size. (iv) All intermediate tank sizes are finite. (v) If a storage tank exists between two stages, the operation mode is ‚Finite Intermediate storage‛. If not, the ‚Zero-Wait‛ policy is adopted. (vi) There is no limitation for utility. (vii) The cleaning time of the batch items is included in the processing time. (viii) The size of the items is continuous bounded variables. 2.5 Model Formulation The model considers the synthesis of (I) products treated in (J) batch stages and (K) semi-continuous stages. Each batch stage consists of (mj) out-of-phase parallel items of the same size (Vj). Each semi-continuous stage consists of (nk) out-ofphase parallel items with the same processing rate (Rk) (i.e. treatment capacity, measured in volume unit per time unit). The item sizes (continuous variables) and equipment numbers per stage (discrete variables) are bounded. The (S-1) storage tanks, with size (Vs*), divide the whole process into (S) sub-processes. Following the above mentioned notation, IBPD’s problem can be formulated to minimize the investment cost for all items, maximizing the net present value and maximizing the flexibility index: The investment cost (Cost), written as an exponential function of the unit size, is formulated in terms of the optimization variables, which represent the plant configuration: (3) J K S Min(Cost ) (m j a jV j j ) (nk bk Rk k ) (csVs s ) j 1 k 1 s 1 Where aj and αj, bk and βk, Cs and γs are classical cost coefficients. A complete nomenclature is available in the Appendix. Eq. (3) shows that there is no fixed cost coefficient for any item. This may be unrealistic and will not tend towards minimization of the equipment number per stage. Nevertheless, this information 32 was kept unchanged in order to compare our results with those found in the literature (Chunfeng et al.1996). Instead of the investment cost recommended the economic criterion represents the NPV. This approach allows evaluating the impact of the plant over some years, taking into account the calculation of the net cash flow in terms of the present value of the money. n Max ( NPV ) Cost f p 1 (V p D p A p )(1 a) A p (1 i ) n f (1 i ) n (4) Eq.(4) underlines the fact that the objective function accounts not only for the investment cost, but also for the incomes from the sells (Vp), the operation costs (Dp) and depreciation (Ap) computed on n given time periods. Discount rates (r), taxes (a), and working capital (f) are also involved to update the money value. It is worth noting that since sales and operation costs depend on the uncertain demand parameter. However, the Flexibility Index (FI) is formulated as the ratio between the new total production and initial demand: I Max ( FI ) (Q i i 1 Qi* ) (5) I Q i 1 i This problem is subjected to three kinds of constraints: (i) Variable bounding: j 1,.., j Vmin V j Vmax (6) k 1,.., k Rmin Rk Rmax (7) Volume V j of the items of each batch stage j and treatment capacity Rk of each semi-continuous stage k. However, these variables are not continuous anymore and were discretized with an interval of 50 units between two possible values. This working mode was adopted in a view of realism. Indeed, since equipment manufacturers propose the items following defined size ranges, the design of operation unit equipments does not require a level of accuracy such as real number. Note however that the initial bounds on these size variables were kept unchanged, being for batch and semi-continuous, respectively: Vmin and Vmax , Rmin and Rmax . Item number m j in batch stage j and item number nk in semi-continuous stage k. These variables cannot exceed 3 items per stage ( m j 1, n k 3 ). 33 (ii) Time constraint: the total production time for all products must be lower than a given time horizon H : I I i 1 i 1 H Hi Qi Pr od i (8) Where Qi is the demand for product i. (iii) Constraint on productivities: the global productivity for product i (of the whole process) is equal to the lowest local productivity (of each sub-process s). i 1,..I Pr od i Min Pr odlocis (9) sS These local productivities are calculated from the following equations: (a) Local productivities for product i in sub-process s: B (10) i 1,.., I , s 1,.., S Pr odlocis is TisL (b) Limiting cycle time for product i in sub-process s: i 1,..I , s 1,..S TisL Max Tij , it (11) Where Js and Ks are, respectively, the sets of batch and semi-continuous stages in sub-process s. (c) Cycle time for product I in batch stage j: i (t 1) pij (12) i 1,.., I , j 1,.., J T i ,t ij mj Where k and k+1 represent the semi-continuous stages before and after batch stage j. (d) Processing time of product i in batch stage j: i 1,.., I , j 1,.., J s 1,.., S p p g B (13) (e) Operating time for product i in semi-continuous stage k : B D (14) i 1,.., I , k 1,.., Ks, s 1,..,S ik is ik ij 0 ij ij dij is Rk nk (f) Batch size of product i in sub-process s : V Bis Min j Sij i 1,.., I , s 1,..S (15) (g) Finally, the size of intermediate storage tanks is estimated as the greatest size difference between the batches treated in two successive sub-processes: (16) s 1,.., S 1 V Max Pr od S * (T T s 34 i is L is L i ( s 1) i ( t 1) 3. Results and discussion The results obtained by Monte Carlo Method, running the model 30 runs of 100000 iterations is given in Table 3, although Fig .5 shows equipment structure according to this result. Table 3. Best design of batch plant by MC Volume [m3] V1 10000.000 V2 10000.000 V3 10000.000 n1 3 n2 3 n3 3 V4 8692.625 V5 9924.000 V6 10000.000 V7 899.877 V8 6269.000 n6 3 n7 3 n8 2 Equipment number [n] Max(NPV) %Std.Dev(NPV) Max(FI) %Std.Dev(FI) Cost Hi CPU time n4 3 1000000[$] 15% 1.00000085 15% 1500000[$] 6000(h) 20000*(s) n5 3 *CPU time was calculated for MC method on Microsoft Windows XP Professional Intel(R)D CPU 2.80 GHz., 2.99 GB of RAM. Fig. 4. Equipment Structure according to the Table 3 However, the Genetic Algorithm parameters are displayed in Table 4. reference values were taken from (Berard, 2000). The 35 Table 4. Genetic algorithm parameters Population size Generation number Survival rate Mutation rate Elitism 200 1000 0.50 0.40 1 The results inspiring from this technique are treated in Table 5, and in Fig. 6, we can see the equipments structure according to the results. Table 5. The Best design of batch plant by GA Volume [m3] V1 8043.200 V2 9965.900 V3 9675.300 n1 3 n2 1 n3 1 V4 6554.170 V5 7539.280 V6 9888.000 V7 455.170 V8 4212.000 n6 1 n7 1 n8 1 Equipment number [n] Max(NPV) %Std.Dev(NPV) Max(FI) %Std.Dev(FI) Cost Hi CPU time n4 1 1400000[$] 5% 2.08176419 5% 695000[$] 5491.123159(h) 15*(s) n5 1 *CPU time was calculated for this method on Microsoft Windows XP Professional Intel(R) D CPU 2.80 GHz., 2.99 GB of RAM. Fig. 5. Equipment Structure according to Table 5 36 The Monte Carlo Method results where the demand is modeled by a Fuzzy Logic are shown in Table 3, and Fig.5 shows the structure of equipment including the number (n) and size (V). Table 3 shows an acceptable level of NPV showing the feasible process with respect to the economic aspect due to the rapid depreciation of equipment over five years of study. Also this configuration offers a set of discrete equipment sizes and well balanced from the fourth stage. The risk of this configuration is just ending at 6000h with risk of failing to fulfill the future demand coming from fluctuation of the market. The typical results obtained by Genetic Algorithm after thirty runs guarantees the stochastic nature of the algorithm with demand modeled by a Fuzzy Logic, maximizing NPV and FI are shown in Table 5, and in Fig.6 had been indicated the structure of equipment. Also this configuration shows an excellent NPV with respect to the economical feasibility and indicates great flexibility in the process to fulfill future demand. Table 5 shows a better NPV ($1,400,000) from the configuration obtained by GA optimization with respect to the MC. Also this process shows great flexibility (FI=2.08), taking into account, that the customers need the product each 6000h, the configuration created by Table 5 has 5491.12h as a total production time. This helps fulfill the increase future demand coming from fluctuation of the market. Also this configuration shows a very small Std. Dev (error): In addition, GA’s results are faster convergence (CPU=15s), and GA’s yield highly satisfactory could be touch to the global optimum. However, the configuration showing by Monte Carlo Method (Table 3 and Fig.5 ) is expensive and the NPV obtained is very small, also The error is also high, and the time of the process calculation is slow(CPU=20000s~6h). Finally, the best design of multi-product batch chemical process with the best Net Present Value (NPV) and best Flexibility Index is shown in Fig.6, and the results of the optimization variables are presented in Table 6. Fig.6. Best Design of Multi-product Batch Chemical Process by Genetic Algorithm 37 Table 6. Results of optimization variables from the best solution by Genetic Algorithm Equipment items Fermenter (Fer) First Micro Filter (Mf1) Homogenizer (Hom) Second Micro Filter (Mf2) Ultra First Filter (Uf1) Liquid Extractor (Ext) Second Ultra Filter (Uf2) Chromatographic Column (Chr) Numbe r[n] 3 1 1 1 1 1 1 1 Volume [m3] 8043.20 0 9965.90 0 9675.30 0 6554.17 0 7539.28 0 9888.00 0 455.170 4212.00 0 4. Conclusions The problem of improvement design of processes with production in multiproduct batch involves the specification of the desired quantity of each product and the total production time available. Market demand for such products within the batch production systems is generally variable, and particularly in the design stage of the process, it is almost impossible to obtain accurate information on future demand to produce. Therefore, was presented an alternative treatment of the imprecision of the demand by using a Fuzzy Logic. Another significant advantage is that a Genetic Algorithm was adapted to solve Improvement Batch Plant Design problems with high accuracy and faster. According to the above investigation, we recommend to the decision maker the configuration mentioned in Figure 5 and Table 6, because it gives us a good NPV, with a low cost investment for the purchase of equipment, taking a major advantage to fulfill the possibility if there is an increased demand in the future. Furthermore, the results provided by the Genetic Algorithm performance are better with respect to Monte Carlo Method (error=15%), as the Genetic Algorithm (error=5%) is based on a strong mathematical model algorithm (Meta-heuristics algorithm) with a well known structured objective function and constraints, and the computing time is less than that of MC. This demonstrates the effectiveness of GA in solving the complicated improvement batch plant design problem. In this framework, the Genetic Algorithm gave us the sample efficiency and justifies its factibility use for solving non-linear mathematical models with uncertain parameters. Another advantage of GA is that it is simple in structure and is 38 convenient for implementation, with no more complicated mathematical calculation than such simple operators as encoding, decoding, testing constraints, and computing values of objective. Finally, this framework provides an interesting decision making approach to improve design multi-product batch plants under conflicting goals. Nomenclature a : Tax rate (0). AP : Depreciation (M$/year). Bis : Batch size for product i in batch stage s (kg). dij : Power coefficient for processing time of product i in batch stage j. Dik :Duty factor for product i in semi-continuous stage k (L/kg). DP : Operation cost (M$/year). CP : Unit price of production cost ($/kg). Co : Unit price of operation cost ($/kg). CE : Operating cost factors. f : Working capital (M$). gij : Coefficient for processing time of product i in batch stage j. k : Index for semi-continuous stages. K : Total number of semi-continuous stages. Ks :Total number of semi-continuous stages in sub-process s. mj : Number of parallel out-of-phase items in batch stage j. M :Number of stages. n : Number of periods. nk : Number of parallel out-of-phase items in semi-continuous stage k. pij : Processing time of product i in batch stage j (h). pij0 : Constant for calculation of processing time of product i in batch stage j( h). P : Number of products to be produced. prodi : Global productivity for product i (kg/h). prodlocis : Local productivity for product i in sub-process s (kg/h). Qi :Demand for product i. Rk : Processing rate for semi-continuous satge k (L/h). Rkmax : Maximum feasible processing rate for semi-continuous stage k (L/h). Rkmin : Minimum feasible processing rate for semi-continuous stage k (L/h). S : Total number of sub-processes. Sij : Size factor of product i in batch stage j (L/kg). Sis : Size factor of product i in intermediate storage tanks (L/kg). Tij : Cycling time of product i in batch stage j(h). TisL : Limiting cycling time of product i in sub-process s(h). Vj : Size of batch stage j (L). Vjmax : Maximum feasible size of batch stage j (L). Vjmin : Minimum feasible size of batch stage j (L). 39 Vp : Revenue (M$/year). Vs : Size of intermediate storage tank (L). Greek letters j : Cost factor for batch stage j. k : Power cost coefficient for semi-continuous stage k. s : Power cost coefficient for intermediate storage. ik : Operating time of product i in semi-continuous stage k. References Aguilar Lasserre, A. A, Azzaro-Pantel C, Pibouleau L, Domenech S. : Modelisation des imprecisions de la demande en conception optimale multicritère d’atelier discontinues.In: Proceedings of the SFGP (Sociètè Francias de Gènie de procedes), Toulouse, France (2005). Bautista MA. Modelo y software para la interpretación de cantidades difusas en un problema de diseño de procesos .MBA thesis, Instituto Tecnológico de Orizaba, México, 2007. Berard, Stratègies de gestion de production dans un atelier flexible de chimie fine. These de doctorate, INP ENSIGC Toulouse,France(2000). Cameron, A Survey of industrial process modeling across the product and life cycle. Computers & Chemical Engineering Volume 32,Issue 3,24 March 2008, page420-438. Cao DM, Yuan XG. Optimal design of batch plants with uncertain demands considering switchover of operating modes of parallel units. Industrial Engineering and Chemistry Research 2002; 41(18):4616–25. Chunfeng Wang, Hongying Quan,and Xien Xu ., Optimal Design of Multiproduct Batch Chemical process Using Genetic Algorithm. Ind. Eng. Chem. Res. 1996, 35, 3560-3566. Douglas Hubbard "How to Measure Anything: Finding the Value of Intangibles in Business" p. 72, John Wiley & Sons, 2007 Floudas C.A., I.G. Akrotirianakis S, Caratzoulas, C.A. Meyer, J. Kallrath Global Optimization in the 21st century: Advances and challenges. Computers & Chemical Engineering volume 29, Issue 6, 15 May 2005, pages 1185. 40 Hasebe S.,Takeichiro Takamatsu, Iori Hashimoto Optimal scheduling and minimum storage tank capacities in a process system with parallel batch units. Computers & Chemical Engineering volume 3, Issues 1-4,1979 pages 185-195). Henning, N, Charles, and piogott William, and Scott, Robert Haney, Financial Markets and the economy 5th ed, new Jersey, 1988. Holland, J, Adaptation in Natural and Artificial Systems, 1975. Oxford University,Press Huang HJ, Wang WF. Fuzzy decision-making design of chemical plant using mixed-integer hybrid differential evolution. Computers and Chemical Engineering 2002; 26(12):1649–60. Karimi IA Modi AK,. Design of multiproduct batch processes with finite intermediate storage.Computers and Chemical Engineering 1989;13(1-2):127-39. Kaufmann, A., Gupta, M. M. Fuzzy mathematical models in engineering and management s(1988). Science. North Holland. Montagna, J. M., Vecchietti, A. R., Iribarren, O. A., Pinto, J. M., & Asenjom, J. A. (2000). Optimal design of protein production plants with time and size factor process models. Biotechnology Progress, 16, 228–237. Ponsich A, Azzaro-Pantel C, Domenech S, Pibouleau. Some Guidelines for Genetic Algorithm Implemenetation in MINLP Batch Plant Design Problems, Ind. Eng. Chem. Res., 2007, 46 (3). Zadeh LA. The concept of a linguistic variable and its application to approximate reasoning.Information Sciences 1975;8(3):199–249. 41 42 Propuesta de una Metodología Generalizada para el Diseño de Micro Algoritmos Bioinspirados Juan C. Herrera-Lozada, Hiram Calvo, Hind Taud, Edgar A. Portilla-Flores Resumen. En este trabajo se sugiere una metodología para diseñar algoritmos bioinspirados que funcionen con una población de tamaño reducido, para resolver problemas de optimización. Nuestra idea principal considera tres aspectos fundamentales para generalizar la propuesta: una convergencia nominal, un proceso de elitismo y un mecanismo de reinicialización del algoritmo. Para validar los resultados se diseñó un algoritmo de evolución diferencial con una población de sólo cinco individuos. Palabras clave: Algoritmos bioinspirados, evolución diferencial, microalgoritmo, optimización numérica 1 Introducción 1.1 Fundamentación básica 1.2 Trabajo previo 1.3 Trabajo previo 2 Propuesta generalizada de un microalgoritmo bioinspirado 3 Microalgoritmo de evolución diferencial 4 Experimentos y resultados 5 Conclusiones y trabajos futuros. Referencias 43 1 Introducción Los algoritmos evolutivos y bioinspirados han adquirido gran importancia dentro del área de la inteligencia artificial, debido a que han demostrado ser exitosos en la solución de ciertos problemas complejos de aprendizaje de máquina, clasificación y optimización.1 Este tipo de técnicas son poblacionales, es decir, utilizan una población de soluciones potenciales, lo que permite una exploración amplia del espacio de búsqueda. La población se genera de manera aleatoria y se somete a un proceso iterativo utilizando diferentes estrategias y operadores de variación para mejorar las soluciones. La simplicidad de un algoritmo es una de las tendencias actuales en el área de la computación evolutiva, aunque en la mayoría de los casos se sacrifica el desempeño en aras de un menor coste computacional. 2,3 Debido a la manipulación simultánea de un gran conjunto de soluciones, la ejecución de un algoritmo requiere un espacio suficiente en la memoria de datos, además de un tiempo de procesamiento generalmente elevado. Para reducir estos factores se han diseñado algoritmos con poblaciones extremadamente pequeñas, los cuales, en la mayoría de las aplicaciones abordadas, se desempeñan de manera similar a los algoritmos de población estándar. No obstante que los microalgoritmos han demostrado ser competitivos, el tamaño reducido de su población obliga a una convergencia prematura derivada de una exploración limitada del espacio de búsqueda, por lo que el número de individuos, así como los mecanismos para mantener la diversidad son factores definitorios. Para demostrar cómo se utiliza la metodología generalizada aquí propuesta, de la literatura especializada se eligió el algoritmo de Evolución Diferencial (ED), el cual es muy representativo en los algoritmos bioinspirados contemporáneos y conocido por su aplicación sencilla y su eficiencia. Fundamentación básica El problema de la optimización global se establece como: encontrar x tal que optimice f (x ) , en donde x n representa el vector de soluciones x x1 , x 2 ,..., x n y cada xi , i 1,..., n tiene límites inferior y superior Li xi U i . T Trabajo previo Goldberg4 experimentó con un Algoritmo Genético (AG) simple, de representación binaria, utilizando una población de sólo tres individuos, y afirmó que éstos eran suficientes para asegurar la convergencia sin que importe el 44 tamaño del cromosoma. En su trabajo, aplicó los operadores genéticos hasta alcanzar una convergencia nominal conceptualizada como la generación en la cual los individuos son muy similares o se alcanza cierto número predefinido de iteraciones, obteniendo un nuevo individuo —el de mejor aptitud—, para posteriormente generar de manera aleatoria los otros dos individuos que completarán la nueva población. Krishnakumar5 diseñó un AG con una población reducida a cinco individuos; a su algoritmo de representación binaria lo llamó Microalgoritmo Genético (Micro-Genetic Algorithm). Al igual que Goldberg, Krishnakumar utilizó el elitismo para preservar la mejor cadena encontrada al término de la convergencia nominal, como uno de los individuos obligatorios para la siguiente generación. Al comparar el desempeño del microAG contra un AG simple con una población de 50 individuos, se obtuvieron mejores resultados sobre funciones de un solo objetivo; además, se comprobó que el AG de población reducida convergía más rápido. Coello y Toscano6 diseñaron un micro- AG para resolver problemas de optimización de múltiples objetivos, aportando criterios para el manejo de restricciones de igualdad y desigualdad, además de proponer un esquema de dominancia de pareto, con un posicionamiento geográfico para mantener la diversidad y distribuir uniformemente las soluciones del frente de pareto. Este algoritmo trabaja con una población de cuatro individuos y utiliza una memoria secundaria que almacena las soluciones potenciales a lo largo de la búsqueda. Recientemente, Fuentes y Coello7 diseñaron un microalgoritmo PSO (Particle Swarm Optimization, Optimización por Cúmulo de Partículas) para resolver problemas de optimización de un solo objetivo con manejo de restricciones. Utilizan cinco partículas (individuos) y se apoyan en una convergencia nominal. Fuentes,8 autor de este mismo algoritmo, hizo una extensión de su primera propuesta y diseñó un microalgoritmo PSO para resolver problemas de optimización multiobjetivo. 2 Propuesta generalizada de un microalgoritmo bioinspirado Si se realiza una revisión de los trabajos anteriores, es posible encontrar similitudes en el diseño de un algoritmo con un tamaño de población reducido: 1. Población de tres a cinco individuos. 2. Se requiere de una convergencia nominal y de un proceso de reinicialización. 3. Es necesario considerar el elitismo para preservar, al menos, al mejor individuo obtenido al término de la convergencia nominal. 45 Otro punto en común de los diseños es que el microalgoritmo que se utiliza para la optimización monoobjetivo puede adecuarse para manejar restricciones y para la optimización con objetivos múltiples.9 Con base en lo que hemos expuesto hasta aquí, presentamos el esquema general de la figura 1 para diseñar —o adaptar, en su caso— un algoritmo estándar a un modelo de micropoblación. En ella se aprecia que existen dos ciclos de funcionamiento: uno interno, que se ejecutará mientras no se haya alcanzado la convergencia nominal, y uno externo, que se efectuará hasta que se alcance el criterio de paro del algoritmo. Fig. 1. Esquema general de un microalgoritmo bioinspirado. 46 La metodología generalizada consta de tres partes fundamentales: 1. Definición del número de individuos de la población. Resulta evidente que, dependiendo de la complejidad del problema a resolver, los ajustes en el tamaño de la micropoblación serán necesarios; no obstante, para cumplir con la metodología que proponemos, el número de cinco individuos es asequible para resolver las funciones que se probaron experimentalmente. En la generación inicial, los individuos de la población se obtienen de manera aleatoria. Éstos se copian a la población de trabajo y a la población inicial del ciclo interno del microalgoritmo (véase la figura 1). Durante el proceso de evolución, generación tras generación, la población se mantendrá con un número estático, es decir, el tamaño de la población no crece ni se disminuye de manera dinámica, aunque se debe considerar la inclusión de individuos nuevos en cada generación, como se mencionará posteriormente. 2. Definición del criterio de la convergencia nominal y aplicación de los operadores y estrategias del algoritmo bioinspirado en su versión estándar. El criterio más utilizado para la convergencia nominal es definir un número de generaciones máximas a realizar; en este rubro, ejecutamos pruebas funcionales que permitieron precisar que cinco generaciones son suficientes para los experimentos con el microalgoritmo de Evolución Diferencial. Cuando se alcanza la convergencia nominal, es necesario llevar a cabo un proceso de reinicialización para conformar una nueva población de trabajo. En el ciclo interno, controlado por la convergencia nominal, se utilizan los operadores y estrategias particulares definidas para el algoritmo bioinspirado en su versión estándar, siendo posible aplicarlo sin cambios, o en otro caso, con aquellas modificaciones que mejoren el desempeño del algoritmo respecto a un problema en particular. Debido a que la calidad de las soluciones generadas al término de la convergencia nominal depende de los operadores y de las estrategias definidas por cada algoritmo estándar, el número de generaciones para alcanzar la convergencia nominal seguramente será diferente al cambiar del algoritmo de ED a algún otro algoritmo bioinspirado. 3. Aplicación del elitismo para garantizar la convergencia. Algunos de los individuos obtenidos al término de la convergencia nominal — generalmente los mejores, o al menos, el mejor (elitismo) con base en la aptitud—deben ser copiados a la población de trabajo, la cual se completa con individuos generados aleatoriamente —para mantener la diversidad— , y se incrementa una generación más, en el ciclo externo, hasta que se alcance la condición de paro del algoritmo. La determinación de cuántos individuos deben ser copiados a la población de trabajo, como parte del 47 elitismo, depende mucho de la naturaleza de los algoritmos bioinspirados —respecto a los operadores y las estrategias internas—, además de que éste garantiza la convergencia del microalgoritmo. En la particularidad de esta propuesta y del algoritmo elegido para los experimentos, cuando se alcanza la convergencia nominal en el ciclo interno, se copian los cuatro mejores individuos —seleccionados mediante un ranking— a la nueva población del ciclo externo para reinicializar todo el proceso. 3 Microalgoritmo de evolución diferencial La Evolución Diferencial es un algoritmo evolutivo propuesto por Storn y Price 10 para resolver problemas de optimización, en especial en espacios continuos, y en el cual las variables se representan mediante números reales. Actualmente se ha utilizado en problemas de alta complejidad con muy buenos resultados. 11 En la ED se genera de forma aleatoria una población inicial de individuos (vectores originales), de los cuales se seleccionan tres, también aleatoriamente, que sean distintos entre sí. A cada uno de estos individuos se le denomina vector objetivo y se denotan por r1, r2 y r3, en donde r3 es el vector base o principal. Con ayuda de un operador especial (F) se realiza una combinación lineal con las diferencias entre r1, r2 y r3, con la intención de generar nuevos vectores ruidosos. A esta etapa se le conoce como mutación. F es entonces un factor que escala la diferencia entre vectores. Posteriormente, se generan vectores de prueba a partir de la recombinación de vectores ruidosos y vectores originales, lo que se logra por medio de un parámetro denominado tasa de recombinación (CR). Para finalizar el algoritmo, se procede a seleccionar el vector que se copiará a la generación siguiente, comparando los vectores de prueba con los originales con base en su aptitud. La versión más común de la ED es la denominada DE/rand/1/bin; la cual se abordó en este trabajo y se lista en la figura 2 (para más detalles, véase Mezura, Velázquez y Coello).12 La cantidad de generaciones, el tamaño de la población y los parámetros CR y F son definidos por el usuario. 48 Fig. 2. Evolución Diferencial estándar, versión DE/rand/1/bin La versión modular de este mismo algoritmo, con población reducida, se observa en la figura 2. En nuestros experimentos con ED utilizamos una población de cinco individuos porque se comprobó de manera funcional que con un menor número de individuos se obtiene una convergencia prematura, y si se utilizan más de cinco individuos los resultados no mejoran. Se determinó que el criterio para alcanzar la convergencia nominal fuera al cabo de cinco generaciones, refiriéndose al ciclo interno del algoritmo. En este rubro, también se realizaron pruebas con diez generaciones, sin que se observara alguna mejoría en los resultados. 49 Fig. 3. Diagrama en bloques del micro algoritmo de ED. En la generación cero, utilizando una población aleatoria de cinco individuos, se procedió a copiarlos en la población de trabajo y en la población inicial —nótese que para el ciclo interno, donde se aplica la convergencia nominal, el algoritmo ED se lleva a cabo sin cambios de operadores y estrategias para evaluar la metodología de manera básica. Al alcanzarse la convergencia nominal, es necesario determinar cuántos individuos se copiarán a la población de trabajo y aplicar el proceso de reinicialización. Después de una serie de experimentos, se decidió copiar los cuatro mejores individuos y generar el restante de manera aleatoria. Los experimentos realizados contemplaron respectivamente la copia de uno, dos, tres y cuatro individuos con la mejor aptitud; sin embargo, con cuatro individuos se obtuvieron los mejores resultados. En este microalgoritmo la diversidad se mantiene gracias a las etapas de mutación y recombinación del 50 propio algoritmo base de ED y al individuo aleatorio incorporado a la población de trabajo. 4 Experimentos y resultados Para los experimentos se utilizaron las siguientes funciones de alta dimensionalidad (véase Mezura, Velázquez y Coello); 12 f1 y f2 son funciones unimodales y separables, f5 es una función multimodal y no separable. f1 – Esfera de De Jong 30 f ( x ) ( xi ) 2 (1) i 1 -100 ≤ xi ≥ 100 min (f1 ) = f1 (0, <, 0) = 0 f2 – Función techo 30 f ( x) ( xi 0.5) 2 (2) i 1 -100 ≤ xi ≥ 100 min (f2 ) = f2 (0, <, 0) = 0 f5 – Función generalizada de Rosenbrock 29 f ( x) 100( xi 1 xi2 ) 2 ( xi 1) 2 (3) i 1 -30 ≤ xi ≥ 30 min (f3 ) = f3 (1, <, 1) = 0 Las tres funciones fueron probadas en el microalgoritmo ED, con 20 ejecuciones para cada una, de donde se obtuvieron los resultados que a continuación se discutirán. Se definieron los parámetros indicados en el cuadro 1, sugeridos en Mezura, Velázquez y Coello):12 Cuadro 1. Parámetros utilizados para el microalgoritmo de ED Función CR F f1 f2 f5 0.9 0.0 0.0 0.3,0.9 0.3,0.9 0.3,0.9 51 En el cuadro 2 se indican las generaciones utilizadas para cada función, así como los resultados experimentales alrededor del valor óptimo. Cuadro 2. Veinte ejecuciones del microalgoritmo de ED Función Ciclo externo Ciclo interno Mejo r Peor Media f1 300 5 0.0 0.006 4 0.00010 f2 200 5 0.0 1.0 0.20 f5 300 5 0.0 0.001 0 0.00012 En la figura 4 se aprecia el comportamiento del algoritmo de ED estándar, en su versión DE/rand/1/bin, respecto a la aptitud, para f2. Se utilizó una población de 60 individuos, 1000 generaciones y los mismos valores de CR y F listados en el cuadro 1. Fig. 4. Aptitud para f2 con ED estándar. Utilizando una población de 5 individuos y los parámetros indicados en la Tabla 2, se obtuvo la gráfica exhibida en la Figura 5, para f2 probada en el micro algoritmo de ED. 52 Fig. 5. Aptitud para f2 con microalgoritmo de ED. Para las funciones experimentales, el desempeño del algoritmo de población reducida es tan eficiente como el del algoritmo en su versión estándar. La cantidad de evaluaciones aplicadas a la función objetivo es similar, considerando el ciclo interno del microalgoritmo. 5 Conclusiones y trabajos futuros En este artículo se presentó una metodología generalizada que permite diseñar — o en su caso, adaptar— un algoritmo bioinspirado para que funcione con una población de tamaño reducido. Los elementos principales en esta metodología consisten en incorporar una convergencia nominal que se alcance después de un número fijo de iteraciones, un elitismo que preserve al mejor o mejores individuos encontrados al término de la convergencia nominal y un criterio para incorporarlos como parte de una nueva población al momento de reinicializar el algoritmo. Mantener la diversidad es uno de los mayores retos en los microalgoritmos, por lo que en este trabajo se aportaron algunos criterios para cumplir con este requisito. El microalgoritmo de ED —en su versión DE/rand/1/bin)— generó buenos resultados con base en la metodología aplicada. En los resultados experimentales se obtuvo el óptimo para las tres funciones de prueba de alta dimensionalidad, lo que resulta alentador para continuar con la investigación. Es posible afirmar que el desempeño del microalgoritmo de ED es tan bueno como el de su contraparte estándar, aunque con menores requerimientos de espacio en la memoria de datos, lo que permite enfocar el diseño hacia aplicaciones con un bajo costo computacional o en circuitos embebidos —por ejemplo, en dispositivos de lógica programable y en microcontroladores convencionales—, refiriéndose al denominado hardware evolutivo. El manejo de espacios restringidos y la optimización con múltiples objetivos se pueden incorporar al esquema básico 53 planteado. Seguramente éste será un trabajo futuro, al igual que la exploración de la adaptación de otros algoritmos bioinspirados comunes en la resolución de problemas de optimización. Referencias 1. Ashlock, D., Evolutionary Computation for Modeling and Optimization, Springer-Verlag, Nueva York, 2005. 2. Munetomo, M. y Y. Satake, ‚Enhancing Model-Building Efficiency in Extended Compact Genetic Algorithms. Systems, Man and Cybernetics, 2006‛, ICSMC ’06, IEEE International Conference, vol. 3, 8-11 de octubre de 2006, pp. 2362-2367. 3. Torresen, J., ‚Possibilities and Limitations of Applying Evolvable Hardware to Real-World Application‛, en R. W. Hartenstein et al. (eds.), Lecture Notes in Computer, vol. 1896 (Field-Programmable Logic and Applications: 10th International Conference on Field Programmable Logic and Applications, FPL-2000), Springer-Science, Heidelberg, 2000, pp. 230-239. 4. Goldberg, D. E., Genetic Algorithms in Search, Optimization and Machine Learning, Addison Wesley, Reading, MA, 1989. 5. Krishnakumar, K., ‚Micro-Genetic Algorithms for Stationary and NonStationary Function Optimization‛, en SPIE Proceedings: Intelligent Control and Adaptive systems, 1989, pp. 289-296. 6. G. Toscano, Carlos y A. Coello, ‚A Micro-Genetic Algorithm for Multiobjective Optimization‛, en Lecture Notes in Computer Science, vol. 1993 (First International Conference on Evolutionary Multi-criterion Optimization), Springer-Verlag, Neva York, 2001, pp. 126-140. 7. Fuentes, J. C. y C. A. Coello, ‚Handling Constraints in Particle Swarm Optimization Using a Small Population Size‛, en Lecture Notes in Computer Science (MICAI 2007: Advances in Artificial Intelligence), vol. 4827, SpringerVerlag, Nueva York, 2007. 8. Fuentes, J. C., Un nuevo algoritmo de optimización basado en optimización mediante cúmulos de partículas utilizando tamaños de población pequeños, tesis de maestría, CINVESTAV-IPN, México, 2008. 9. Bäck, T., D. B. Fogel y Z. Michalewicz (eds.), Handbook of Evolutionary Computation, Institute of Physics Publishing and Oxford University Press, Nueva York, 1997. 10. Storn, R. y K. Price, ‚Differential Evolution: A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces‛, reporte técnico (TR-95-012), ICSI, marzo de 1995. En Internet (ftp.icsi.berkeley.edu), página consultada el 20 de junio de 2009. 54 11. Mezura, E., E. A. Portilla, C. A. Coello, J. [lvarez, C y A. Cruz Villar, ‚An Evolutionary Approach to Solve a Novel Mechatronic Multiobjective Optimization Problem‛, Advances in Metaheuristics for Hard Optimization, 2008, pp. 329-351. 12. Mezura, E., J. Vel{zquez y C. A. Coello, ‚A Comparative Study of Differential Evolution Variants for Global Optimization‛, GECCO, ACM, 2006, pp. 485-492. 55 56 Estudio de Tres Algoritmos Heurísticos para Resolver un Problema de Distribución con Ventanas de Tiempo: Sistema por Colonia de Hormigas, Búsqueda Tabú y Heurístico Constructivo de una Ruta Manuel González de la Rosa, Norma Martínez Urbano, Venancio García González, Roberto Alejo Eleuterio Resumen. En este trabajo se presenta la aplicación y comparación, respecto al número mínimo de rutas construidas, de tres algoritmos heurísticos: sistema por colonia de hormigas, búsqueda tabú y heurístico constructivo de una ruta, para un problema de logística de distribución con ventanas de tiempo que debe resolver diariamente una empresa embotelladora. La empresa debe enviar el producto terminado, en cargas completas de camión, a sus almacenes de distribución que tienen ventanas de tiempo para la recepción de la carga. Cada almacén tiene asociada una demanda que puede expresarse en número de cargas y debe ser satisfecha diariamente en su totalidad. La solución al problema es un conjunto de rutas que satisfacen la demanda. Los experimentos realizados con problemas de prueba en una computadora portátil muestran que el algoritmo del sistema por colonia de hormigas proporciona mejores soluciones que los otros dos algoritmos heurísticos. Palabras clave: heurísticos, búsqueda tabú, sistema por colonia de hormigas, logística de distribución, optimización combinatoria, NP-Completo. 1 Introducción 2 El algoritmo heurístico constructivo de una ruta 3 El algoritmo de búsqueda tabú 4 El algoritmo de sistema por colonia de hormigas 5 Experiencia computacional Conclusiones. Referencias 1 Introducción En los últimos años, ha cobrado relevancia el incremento de la competitividad de las empresas, y en particular, de sus actividades logísticas de distribución. Para que una empresa sea competitiva, debe enfocar correctamente su estrategia logística de distribución para abastecer el producto adecuado, en el momento adecuado, al precio adecuado, en las mejores condiciones y cantidades que el cliente solicite. Esta importancia logística ha motivado a investigadores y compañías privadas a aplicar técnicas de optimización para desarrollar políticas 57 que buscan incrementar la eficiencia en la planeación de la distribución y obtener ventajas competitivas. Una de las estrategias utilizadas con mayor frecuencia es el uso de algoritmos heurísticos para la solución de problemas de optimización combinatoria en el transporte de productos terminados. El problema en estudio se origina en una empresa embotelladora de la ciudad de Toluca. La empresa debe entregar diariamente su producto terminado a 12 almacenes regionales. La demanda de cada almacén se conoce con anticipación, ya que la empresa maneja una política de preventa. La demanda se satisface mediante camiones que son cargados en su totalidad, por lo que no es necesario decidir sobre la mezcla de productos ni la consolidación de la carga. El producto a distribuir se empaca en palets, en los almacenes regionales el producto se separa y se distribuye a las tiendas minoristas donde acude el consumidor final, lo que implica decidir políticas de ruteo de vehículos que no forman parte del problema de investigación. Ya que se trata de un problema de distribución de bebidas embotelladas, la demanda cambia día con día y semana tras semana, de acuerdo con la estación del año. Cada almacén tiene ventanas de tiempo para la recepción del producto, fuera de estas ventanas no es posible atender la entrega. Las ventanas de tiempo, los tiempos de recorrido desde la planta hasta cada almacén, así como los tiempos de descarga son conocidos y constantes, ya que no cambian de un día para otro. Se requieren 20 minutos para cargar un camión en la planta y sólo puede cargarse uno a la vez; esta condición requiere de una estrategia adecuada de secuenciación. No se realiza ruteo porque un camión se carga con palets en la planta embotelladora, viaja al almacén, se descarga y regresa a la planta para otra posible entrega. De acuerdo con lo anterior, debe construirse un plan de distribución que considere dos tipos de decisiones: a) Decidir el conjunto de almacenes que debe atender cada ruta construida. b) Decidir el orden en que deben cargarse los camiones en la planta. Al considerar los dos tipos de decisiones, debe analizarse la restricción de ventanas de tiempo. El problema tiene similitudes con diversos problemas de transporte, tales como el SDVSP (Single Depot Vehicle Scheduling Problem), el SPPTW (Shortest Path Problem with Time Windows), el TSPTW (Traveling Salesman Problem with Time Windows). Para resolver el SDVSP, se han propuesto diversas estrategias, una de las más exitosas ha sido la propuesta por Desrosiers, Dumas, Solomon y Soumis,4 la cual utiliza un modelo basado en flujo en redes. Esta estrategia puede aplicarse a este problema de investigación porque modifica los arcos entre un almacén y otro e incluye el regreso a la planta. El SPPTW ha demostrado ser de complejidad computacional NP-Difícil2 y aparece como un subproblema al construir un conjunto de nodos de decisión en el tiempo y formar arcos de espera y arcos de entrega. Los arcos de espera tendrán un costo mayor 58 que los arcos de entrega porque se desea minimizar el tiempo ocioso en cada ruta. El TSPTW se caracteriza por ser una extensión de uno de los problemas combinatorios más estudiados, el TSP (Traveling Salesman Problem), porque incluye ventanas de tiempo. Al estudiarlo, se aprecia la creciente complejidad computacional que depende de la amplitud de las ventanas de tiempo. Las técnicas de reducción de ventanas de tiempo y eliminación de arcos 3 que han sido propuestas pueden aplicarse al problema de estudio. El problema de investigación posee características de secuenciación, manejo de ventanas de tiempo y optimización de recursos limitados y es de complejidad computacional NP-Completo.9 En investigaciones previas se han diseñado estrategias heurísticas para su solución, entre éstas es posible mencionar el algoritmo heurístico constructivo de una ruta (HC1-R),9 el de recocido simulado (Simulated Annealing),7 el de la búsqueda tabú (BT o Tabu Search)8 y el sistema por colonia de hormigas (SPCH o Ant Colony System).10 La estrategia de solución descrita por González de la Rosa y Gaytán Iniestra 9 consiste en modelar el problema utilizando intervalos de tiempo de 20 minutos, los cuales corresponden al periodo de carga en la planta. Estos intervalos de tiempo están definidos por un instante de decisión inicial y un instante final. Para un horizonte de planeación de 24 horas se tiene un total de 72 instantes o nodos de decisión. De acuerdo con los tiempos de viaje de ida, el tiempo de descarga, el tiempo de regreso a la planta y las ventanas de tiempo en cada almacén, se calculan el nodo inicial y el nodo de regreso para cada posible entrega. De esta forma, se construyen para cada almacén y para cada nodo de decisión los arcos de entrega que representan todas las alternativas factibles para las ventanas de tiempo. Los arcos de entrega tienen duraciones diferentes que dependen de los tiempos de viaje hacia cada almacén. Los arcos de espera tienen una duración fija de 20 minutos. Cuando se consideran los arcos de entrega para todos los almacenes, los arcos de espera y los nodos de decisión, es posible representar el proceso de decisión con el fin de construir una ruta mediante una red, la cual se muestra en la figura 1. Nótese que se tienen el costo CB y los periodos de carga de 20 minutos PB asociados a cada arco. 59 Fig. 1. Grafo que modela la red de decisión para construir una ruta. Una solución al problema de distribución está formada por un conjunto de rutas que satisfacen todas y cada una de las demandas asociadas a cada almacén. Una ruta es una secuencia de entregas realizadas por un camión en un intervalo de 24 horas; se describe por medio de un subconjunto de arcos de entrega y arcos de espera. Al aplicar la estrategia anterior, todos los arcos de entrega son factibles respecto a las restricciones de ventanas de tiempo y la duración del plan de distribución de 24 horas y quedan pendientes por satisfacer las restricciones de demanda para cada almacén, de secuenciación de carga en la planta y secuenciación dentro de cada ruta. La función objetivo del problema es satisfacer la demanda con el número mínimo de rutas. Todos los posibles arcos de entrega, para cada almacén y para cada nodo de decisión, forman una lista que se muestra parcialmente en el cuadro 1. La lista se utiliza como base para formar el espacio de búsqueda y construir las rutas. Cada nodo de decisión está codificado en minutos, por lo que el nodo 0 corresponde a las 24:00 horas. En González de la Rosa y Gaytán Iniestra, 9 se resuelve el problema utilizando un modelo de flujo en redes con variables binarias, aplicando un algoritmo basado en ramificar y acotar, usando CPLEX 8.0 en una computadora PC con procesador Pentium 4 y 512 Mb en la memoria RAM. Ya que el problema es NP-Completo, declarar la solución óptima para las instancias difíciles puede consumir varias horas e incluso días de tiempo de cómputo, y por tratarse de una planeación que debe realizarse diariamente, hace poco práctica la aplicación de un algoritmo exacto para declarar una solución óptima. 60 Cuadro 1. Lista parcial de los arcos de entrega para cada nodo de envío Nodo de envío -140 -120 -120 -100 -100 -100 -80 -80 -80 -80 -80 -80 -60 -60 -60 … Nodo de regreso 200 240 220 260 240 160 160 280 140 260 140 180 180 300 160 Almacén 9 7 9 7 9 11 6 7 8 9 10 11 6 7 8 La experiencia computacional con problemas de prueba construidos —es decir, cuando se reproduce la demanda de forma aleatoria— muestra que el algoritmo basado en el sistema por colonia de hormigas proporciona mejores soluciones porque reporta un menor número de rutas. 2 El algoritmo heurístico constructivo de una ruta El algoritmo heurístico constructivo de una ruta (HC1-R)9 construye de forma consecutiva, a partir de la lista de arcos de entrega, un conjunto de rutas que satisfacen la demanda de cada almacén, considerando una ruta para cada camión k. Para obtener el mínimo de rutas en una solución, cada una debe llenarse con el mayor número de arcos de entrega o con el mínimo de arcos de espera. El algoritmo HC1-R aplica una estrategia de descomposición, ya que cada ruta es vista como un problema combinatorio del tipo mochila, con una capacidad P de 72 periodos. Para construir una ruta, el algoritmo HC1-R incluye sólo un arco de entrega a la vez, hasta completar la capacidad de la ruta P. Los arcos de la ruta deben ser factibles respecto al orden de carga en la planta y a la secuencia de entregas de la misma ruta. Al incluir un arco de entrega en una ruta, debe resolverse una serie de subproblemas cuyas alternativas se calculan para cada estado de decisión y forman el subconjunto M de arcos de entrega. Si la demanda de cada almacén no ha sido satisfecha, el algoritmo abre otra ruta y repite el proceso hasta completar el total de entregas D a todos los almacenes. La función objetivo utilizada tiene la forma siguiente: 61 Min F Y k k (1) kK Donde K es el conjunto de rutas construidas y que forma una solución, Fk es el costo fijo de utilizar una ruta y Yk es una variable binaria que indica la utilización de la ruta k. El algoritmo HC1-R realiza el siguiente proceso: Inicio Comienza con una demanda satisfecha igual a 0; no se ha construido ninguna ruta. Paso 1 Se incluye un arco de entrega. El subproblema consiste en elegir el arco de entrega que debe incluirse en la ruta para el almacén l con demanda remanente drl > 0. Se calcula el conjunto de alternativas M y los costos para cada arco de entrega. Paso 2 Se evalúa cada alternativa considerando el orden en el cual los arcos de entrega se incluyen en la ruta, por la condición de secuenciación en la planta embotelladora y dentro de la ruta. Para evaluar cada alternativa, se consideran los subconjuntos de arcos de entrega ya incluidos en la ruta. Por ejemplo, si una ruta k ya incluye envíos a los siguientes almacenes {a, b, c}, y se desea incluir el arco {f}, los subconjuntos considerados son {(f,a,b,d), (a,f,b,c), (a,b,f,c), (a,b,c,f)}. Obsérvese que los subconjuntos crecen rápidamente conforme hay más entregas en la ruta. Paso 3 Se elige la mejor alternativa considerando el costo mínimo y se actualizan la demanda satisfecha, la demanda remanente y los arcos de entrega en la ruta k. Si no es posible incluir más arcos en la ruta debido a espacio insuficiente o a la secuenciación dentro de la ruta, ésta se cierra, se abre una nueva ruta vacía y se continúa con el paso 1. Si la ruta no se ha cerrado, se regresa al paso 1. Si la demanda total D de todos los almacenes ha sido satisfecha, el algoritmo termina y se reportan todas las rutas construidas. 62 3 El algoritmo de búsqueda tabú El algoritmo búsqueda tabú (BT)11 es metaheurístico y está basado en la búsqueda local; utiliza una estructura de memoria llamada ‚lista tabú‛, la cual permite salir de óptimos locales para alcanzar un óptimo global. Este algoritmo ha sido atribuido a Fred Glover, quien, en 1986, dijo: 1 Es mejor una mala decisión basada en información, que una buena decisión al azar, ya que, en un sistema que emplea memoria, una mala elección basada en una estrategia proporcionará claves útiles para continuar la búsqueda. Una buena elección fruto del azar no proporcionará ninguna información para posteriores acciones. Un movimiento es una perturbación que se aplica a la solución actual para encontrar una nueva solución que comparte algunas de sus propiedades. Al aplicar una serie de movimientos a la solución actual, se construye un conjunto de soluciones vecinas sobre las cuales se realiza la búsqueda local. El algoritmo BT se basa en la prohibición de movimientos que empeoran la solución actual. 1 A partir de los arcos de entrega y los arcos de espera, el algoritmo de búsqueda tabú sigue los siguientes pasos: Inicio Se construye una solución inicial llamada S0. Paso 1 Se genera un conjunto de soluciones vecinas N(S0) mediante la función generadora de vecinos; estas soluciones comparten propiedades similares. Paso 2 Se evalúa la función objetivo (1) para el conjunto de soluciones vecinas, N(S0). Paso 3 Se actualiza la mejor solución encontrada. Paso 4 Se actualiza la lista tabú, formada por movimientos 63 ‚prohibidos‛, ya sea porque produce soluciones no factibles o soluciones peores respecto al valor de la función objetivo. Paso 5 Se aplica el criterio de terminación, y en su caso, se continúa con el paso 1. Para llevar a cabo el algoritmo de búsqueda tabú, se establecen las siguientes estrategias:8 para obtener una solución inicial S0, se elige el nodo de decisión mínimo k disponible en la planta, el cual sirve para construir la primera ruta; considerando el nodo de regreso de cada arco de entrega, se elije un nuevo arco de entrega hasta agotar el horizonte de planeación, lo cual produce una nueva ruta. Si las demandas de los almacenes aún no están satisfechas, se toma el siguiente nodo de decisión mínimo no utilizado en la posición k + 1 para crear la siguiente ruta, y esto se repite hasta satisfacer el total de demandas de los almacenes. El segundo paso es la creación del conjunto de soluciones vecinas N(S0). La función generadora de vecinos aplica un movimiento llamado ‚intercambio de un arco de la solución por un arco libre‛ (IASPAL), que consiste en intercambiar aleatoriamente un arco de la solución en alguna ruta por otro que no haya sido utilizado y que no se encuentre en la lista tabú (LT). Este arco se incorpora a una ruta, siempre y cuando cumpla con las condiciones de secuencia de carga en planta y secuencia dentro de la ruta, que no haya sido elegido con anterioridad y que al almacén al que va dirigido sea el mismo. Para el manejo de la LT, se guardan los últimos t movimientos realizados, lo cual dirige la búsqueda global. Los valores de t son diferentes en cada instancia y oscilan de 3 a 18. El criterio de intensificación consiste en combinar las mejores rutas dentro de una solución; en especial, en aquellas que tienen sólo uno o dos arcos de entrega. Después de un número determinado de iteraciones, se reporta la mejor solución encontrada hasta el momento. La ejecución del algoritmo BT se realizó con 1 000 iteraciones. 4 El algoritmo de sistema por colonia de hormigas Las investigaciones recientes sobre algoritmos han tomado como inspiración el comportamiento de insectos que viven en colonias, tales como termitas, hormigas, abejas, etcétera, para resolver problemas combinatorios diversos. Este conocimiento ha sido aplicado en el desarrollo de algoritmos heurísticos nuevos, como los de optimización, basados en colonias de hormigas (ACO, Ant Colony 64 Optimization).5 Un requisito para la aplicación de estos algoritmos es que el problema pueda representarse por medio de un grafo formado por nodos y arcos. Cada nodo representa un estado de decisión y los arcos representan alternativas de solución que tienen asociados dos tipos de información, cuya finalidad es ij es la información heurística que incluye la preferencia de moverse de un nodo i a un nodo j ij representa el rastro de feromona que depositan las hormigas en el ambiente, modela lo deseable de una alternativa y guía el comportamiento de búsqueda de la hormiga artificial. El rastro de feromona es un valor numérico que cambia durante la ejecución del algoritmo y depende de la calidad de las soluciones encontradas. En esta investigación se presenta una variante del algoritmo ACO llamada ‚sistema por colonia de hormigas‛ (SPCH), variante que actualiza la feromona de dos formas: una vez que las m hormigas artificiales han terminado su recorrido por el grafo, la cantidad de feromona se actualiza y, posteriormente, se hace una actualización global de la feromona. El valor de m varía de acuerdo con la instancia utilizada, con el fin de encontrar buenas soluciones de forma rápida; este valor oscila entre 30 y 90 hormigas. Los valores cercanos a 30 se utilizan para instancias con demandas menores y los valores cercanos a 90 para instancias con demandas mayores. Del modelo propuesto por González de la Rosa y Gaytán Iniestra, 9 se utilizan los nodos de decisión, los arcos de entrega y los arcos de espera por cada hormiga artificial (véase la figura 1). A cada arco se le asocia un valor inicial que ij sobre el arco (i, j). Cada hormiga construye una ruta, y mientras construye su recorrido, la hormiga modifica los rastros de feromona sobre los arcos de entrega elegidos, lo que constituye una actualización local de feromona. La hormiga artificial k, situada en el nodo r, escoge el siguiente nodo s que no pertenece a su memoria de arcos ya utilizados Mk aplicando la política de decisión mostrada en la ecuación 2, 6 donde τij es la cantidad de feromona sobre el arco (i, j); y ηij = 1/dij; dij son los periodos de espera en la ruta. Ya que las mejores rutas son las que incluyen una mayor cantidad de arcos de entrega, la función objetivo (1) se modifica en este algoritmo para minimizar los arcos de espera incluidos en una ruta. α y β son par{metros mayores a 1, q es un valor aleatorio [0, 1], Jk es el conjunto de nodos a ser visitados por la hormiga k y S es una variable aleatoria seleccionada de acuerdo con la ecuación 2. [ ][ ] arg max ij ij i J s k S en otro caso si q q o explotaci—n si q q o exploraci—n (2) 65 Cuando q < q0, la hormiga artificial sigue los rastros de feromona depositados por las hormigas anteriores, y cuando q ≥ q0, se permite la evaluación de opciones nuevas utilizando el valor de Pij en (3). Una vez que se elige la mejor alternativa, la hormiga viaja a través de este arco y llega a un nuevo nodo de decisión en el cual el proceso se repite hasta que el horizonte de planeación de 24 horas se agota. ij . ij si (i, j) M k Pij il . il l en otro caso 0 (3) De esta forma, cada hormiga construye el recorrido que realiza un camión ij, está dada por los arcos de espera en la ruta durante el horizonte de planeación. Si el valor de feromona del arco correspondiente es alto, Pij tendrá más posibilidades de ser elegido. En el proceso de construcción, las hormigas artificiales usan los rastros de feromona dejados por otras hormigas. El rastro artificial de feromona tiene un o = 0.0001 y es un valor numérico entre 0 y 1. La actualización de feromona se realiza de dos formas: primero, se hace una actualización local una vez que la hormiga k termina de hacer su recorrido por la red de decisión y se actualizan solamente los arcos utilizados por esta hormiga; la ij se lleva a cabo mediante la ecuación (4), ρ es un parámetro con valores entre [0, 1]. ij (1 ) ij o (4) Donde τ0 = 1/ nLnn, n es el número de nodos y Lnn representa el costo de la ruta. La segunda actualización de feromona es global y para ello se usa la ecuación (5). Esta actualización se realiza una vez que se ha obtenido una solución y considera a la hormiga artificial que incluyó la menor cantidad de arcos de espera durante el horizonte de planeación. Sólo se actualizan los valores de feromona de los arcos que fueron utilizados por esta hormiga. ij (1 ) ij ij 66 (5) La notación es como sigue: Δτij = 1/Lgb, Lgb es el costo de la mejor solución encontrada y δ es el par{metro de evaporación 0< δ < 1. El algoritmo se puede dividir en tres procedimientos principales, la construcción de la solución, la actualización de feromona y la evaluación de la solución. Para construir una solución se crean las hormigas artificiales, cada una puede visitar los nodos de la red de decisión eligiendo el siguiente nodo a visitar según la ecuación (2). El procedimiento de actualización de feromona se realiza en los arcos donde se incrementa el depósito de feromona o se reduce por la evaporación, lo que evita estancarse en un óptimo local. La evaluación de la solución verifica si la solución encontrada es válida y si es mejor que la que se haya encontrado anteriormente. En estos dos últimos procedimientos se busca cumplir con las restricciones del problema. 5 Experiencia computacional Para evaluar el desempeño de los algoritmos que se han propuesto, se utilizó un total de 38 instancias de prueba que fueron construidas por González de la Rosa y Gaytán Iniestra,9 al variar aleatoriamente la demanda D de cada centro de distribución y dejando fijos los demás datos, tales como las ventanas de tiempo, los tiempos de viaje, los tiempos de carga y los tiempos de descarga. Las rutas construidas para cada instancia de prueba y por cada algoritmo se muestran en el cuadro 2. Puesto que el problema de investigación es de complejidad computacional NP-Completo,9 conforme crece la demanda a satisfacer, crece también la naturaleza combinatoria del problema, haciendo más difícil encontrar soluciones cercanas al óptimo. Al comparar el algoritmo HC1-R con el algoritmo de búsqueda tabú, tenemos que en 15 instancias de prueba el algoritmo de búsqueda tabú construye una ruta más; igualando al algoritmo HC1-R en 16 instancias de prueba y mejorando los resultados del HC1-R con dos rutas menos en sólo una instancia. Respecto a los algoritmos HC1-R y el de sistema por colonia de hormigas, en 14 instancias de prueba este último aventaja al HC1-R porque construye una ruta menos y ambos tienen un desempeño similar en 22 instancias de prueba. En general, cuando se consideran las 38 instancias de prueba, el algoritmo de sistema por colonia de hormigas construye un total de 327 rutas, HC1-R construye un total de 345 rutas y el de búsqueda tabú 368. Los algoritmos fueron programados en lenguaje de programación C++ en una computadora portátil con procesador AMD Sempron a 1.4 Ghz, 1Gb RAM. La ejecución de cada algoritmo se realizó bajo el sistema operativo Windows XP sin otras aplicaciones abiertas. Los tiempos reales de ejecución oscilan entre 2 y 4 minutos para cada instancia. Una comparación gráfica de los algoritmos respecto al número de rutas construidas se muestra en la figura 2, en 67 la cual se aprecia un comportamiento similar de los tres algoritmos para demandas menores a 38. Cuadro 2. Rutas construidas por cada algoritmo Número de rutas Número de rutas Deman -da HC1 R BT SPC H Deman -da HC1 R BT SPC H 20 5 5 4 41 9 10 8 20 5 5 4 41 8 9 8 23 5 5 5 42 11 11 10 24 5 5 5 44 11 12 10 26 6 6 6 44 10 11 10 29 6 7 6 44 9 10 9 32 7 7 7 44 10 11 9 32 8 8 7 44 9 10 9 33 8 8 7 45 11 11 10 34 8 8 7 46 12 13 11 35 8 8 8 46 10 11 10 36 8 8 7 46 10 11 10 38 9 10 9 47 9 11 9 38 8 10 8 49 10 12 10 39 8 9 8 50 10 12 10 39 9 9 9 51 10 11 10 40 8 9 8 53 15 13 13 40 10 10 9 57 12 14 12 41 10 10 9 64 18 18 16 Para demandas mayores, el algoritmo de sistema por colonia de hormigas construye un menor número de rutas, por lo que es posible concluir que proporciona un mejor desempeño. 68 Fig. 2. Número de rutas construidas con los algoritmos HC1-R, búsqueda tabú y sistema por colonia de hormigas, para instancias de prueba con demanda creciente. Conclusiones Esta investigación compara los resultados obtenidos por tres algoritmos heurísticos para un problema de logística de distribución con complejidad computacional NP-Completo. La evidencia experimental muestra que el algoritmo de sistema por colonia de hormigas proporciona mejores resultados que los algoritmos heurísticos HC1-R y de búsqueda tabú. La estrategia seguida por el algoritmo de sistema por colonia de hormigas para construir una ruta y resolver el problema de estudio considera nodos de decisión en el tiempo, arcos de actividad y la penalización de la inclusión de arcos de espera en la evaluación de alternativas, de esta manera se explotan adecuadamente los principios que fundamentan a la familia de algoritmos ACO para encontrar la ruta más corta entre dos nodos. La estrategia fundamental del algoritmo HC1-R es insertar un arco de entrega adicional en una ruta a la vez; sin embargo, la naturaleza combinatoria del problema sugiere que se construya en forma paralela k rutas a la vez, lo que implica un mayor esfuerzo de análisis y evaluación. Esta estrategia de inserción paralela puede aplicarse en la función generadora de vecinos y enriquecer el proceso de generación y búsqueda. El desempeño del algoritmo de búsqueda tabú es sensible a la calidad de la solución inicial, la función generadora de vecinos, la longitud de la lista tabú y los criterios de aspiración e intensificación, los cuales proporcionan una vasta riqueza de posibilidades que sugieren una investigación más extensa. Los algoritmos utilizados en esta investigación, además de proporcionar soluciones con el mínimo de rutas, encuentran soluciones casi óptimas de forma rápida, con tiempos de ejecución de 2 a 4 minutos, lo que permite proponer oportunamente un plan de distribución al 69 personal de la planta embotelladora. Las estrategias de solución que aquí se han presentado consideran un horizonte de planeación de 24 horas que puede extenderse a 48 o 72 horas, lo cual hace al problema combinatoriamente más rico y difícil de resolver. El problema de estudio también puede modelarse aplicando la optimización de flujo en redes, lo que extendería aún más esta investigación. Referencias 1. Arts, E. y J. Karel Lenstra, Local Search in Combinatorial Optimization, Princeton University Press, Nueva Jersey, 2003. 2. Desrochers, M. y F. Soumis, ‚A Reoptimization Algorithm for the Shortest Path Problem with Time Windows‛, European Journal of Operational Research, vol. 35, núm. 2, 1988, pp. 242-254. 3. Desrochers, M., J. Desrosiers y M. Solomon, ‚A New Optimization Algorithm for the Vehicle Routing Problem with Time Windows‛, European Journal of Operational Research, vol. 40, núm. 2, 1992, pp. 342-354. 4. Desrosiers, J., Y. Dumas, M. Solomon y F. Soumis, ‚Time Constrained Routing and Scheduling‛, en M. O. Ball, T. L. Magnanti, C. L. Monma y G. L. Nemhauser (eds.), Handbooks in Operations Research and Management Science, vol. 8, Network Routing, 1995, pp. 35-139. 5. Dorigo, M., G. Di Caro, y L. M. Gambardella, ‚Ant Algorithms for Discrete Optimization‛, Artificial Life, vol. 5, núm. 2, 1999, pp. 137-172. 6. Dorigo, M. y L. M. Gambardella, ‚Ant Colonies for the Traveling Salesman Problem‛, Biosystems, vol. 43, núm. 2, 1997, pp. 73-81. 7. González de la Rosa, M. y R. Cruz Cruz, Implementación del algoritmo heurístico recocido simulado para un problema de optimización combinatoria de logística de distribución, tesis de licenciatura, Centro Universitario Atlacomulco-Universidad Autónoma del Estado de México, México, 2009. 8. González de la Rosa, M. y V. García González, Implementación del algoritmo heurístico búsqueda tabú para un problema de optimización combinatoria de logística de distribución, tesis de licenciatura, Centro Universitario Atlacomulco-Universidad Autónoma del Estado de México, México, 2009. 9. González de la Rosa, M. y J. Gaytán Iniestra, A Heuristic Algorithm for a Delivery Planning Problem with Time Windows and Side Constraints, tesis doctoral, Instituto Tecnológico y de Estudios Superiores de Monterrey, Toluca, México, 2005. 10. González de la Rosa, M. y N. Martínez Urbano, Implementación del algoritmo heurístico sistema por colonia de hormigas para un problema de optimización combinatoria de logística de distribución, tesis de licenciatura, Centro Universitario Atlacomulco-Universidad Autónoma del Estado de México, México, 2009. 70 11. Meli{n, B., J. A. Moreno Pérez y J. C. Moreno Vega, ‚Metaheurísticas: una visión global. Inteligencia Artificial‛, Revista Iberoamericana de Inteligencia Artificial, núm. 19, 2003, pp. 7-28. 71 72 Aplicación de la Optimización por Enjambre de Partículas a un Problema Inverso de Conducción de Calor Obed Cortés-Aburto, Rafael Rojas-Rodríguez, C. Román Marín-Dávila Resumen. En el presente trabajo se utiliza la optimización por enjambre de partículas (PSO) para estimar la función de generación de calor de un aparato de placa caliente con guarda (APCG). Este aparato sirve para la determinación de la conductividad térmica de materiales aislantes. La aplicación se desarrolla en una dimensión y en coordenadas cilíndricas. Las geometrías aplicadas son: un disco —para la placa caliente— y una corona —para la guarda. Se emplean desde uno hasta cinco parámetros. Los resultados se comparan con los obtenidos con el método de Levenberg-Marquardt. De esta manera, la capacidad de este método para recuperar la función analítica se prueba. Los resultados exhiben un buen ajuste con los valores experimentales. Palabras clave: optimización por enjambre de partículas, conducción de calor inversa. Sumario: 1 Introducción 2 Problema directo 3 Optimización por enjambre de partículas 4 Resultados 5 Conclusión Referencias 1 Introducción Los problemas inversos en transferencia de calor se valen de las mediciones de temperatura, o también, de flujo de calor para estimar las cantidades desconocidas que se presentan en los modelos matemáticos de problemas físicos en este campo.1,2 El uso de las técnicas de análisis inverso es un nuevo paradigma de investigación. No se trata simplemente de comparar los resultados obtenidos de las simulaciones numéricas y de los experimentos a posteriori, sino que existe una sinergia estrecha entre los investigadores experimentales y los teóricos durante el desarrollo de los estudios para obtener la mayor cantidad posible de información a partir del problema físico en cuestión.3 Por tal razón, en años recientes los problemas inversos han evolucionado de ser un tema de investigación teórica específica a ser una importante herramienta práctica del análisis de ingeniería. 73 Los problemas inversos se resuelven mediante una metodología de estimación de parámetros o de estimación de función. Si se tiene alguna idea acerca de la forma funcional de la cantidad desconocida, el problema inverso se puede reducir a la estimación de unos pocos parámetros desconocidos. Al contrario, si no tenemos la información, necesitamos considerar el problema inverso como de estimación de función en un espacio dimensional infinito de funciones. Los problemas inversos también se clasifican matem{ticamente como ‚mal planteados‛, en tanto que los problemas normales de transferencia de calor son ‚bien planteados‛. La solución de un problema bien planteado debe satisfacer las condiciones de existencia, unicidad y estabilidad respecto a los datos de entrada. La existencia de un problema inverso de transferencia de calor puede asegurarse mediante razonamiento físico. Pero la unicidad de la solución de los problemas inversos se prueba matemáticamente sólo en algunos casos especiales. Además, el problema inverso es muy sensible a los errores aleatorios de los datos medidos de entrada, y por lo tanto, requiere técnicas especiales de solución para satisfacer la condición de estabilidad. Una solución exitosa de un problema inverso generalmente involucra su reformulación como un problema bien planteado aproximado, haciendo uso de algún tipo de método de regularización (estabilización). En este artículo se prueba un método para la solución de problemas inversos de transferencia de calor. El problema de prueba involucra la recuperación de la función de generación de calor en coordenadas cilíndricas en una dimensión. Se utilizan dos geometrías, un disco y un anillo. Los resultados concuerdan con los experimentos en forma bastante aceptable. 2 Problema directo Las mediciones de temperatura se obtienen a partir de la caracterización de un dispositivo para determinar la conductividad térmica de los materiales aislantes utilizados en la construcción en México. Este dispositivo se conoce como aparato de placa caliente con guarda (APCG). El problema se define como: Una placa caliente tiene una resistencia g t situada en r1 0.0538 m, temperatura inicial T0 302.378 K al tiempo t 0 s y pierde calor por convección en un medio con temperatura Tamb 302.378 K en la frontera ubicada en r b 0.0762 m para tiempos t 0 . La guarda tiene una resistencia g t situada en r2 0.0983 m, temperatura inicial T0 300.39 K al tiempo t 0 s y pierde calor por convección en un medio con temperatura Tamb 300.39 K en ambas fronteras ubicadas en r b 0.0762 m y r d 0.1524 m para tiempos t 0 . Los dos diagramas se muestran en la figura 1. 74 La formulación matemática de estos problemas directos de conducción de calor es de la siguiente forma:4 T 2 r 2 1 T r r g t r r1 2 kr 1 T t T hT hTamb r T T0 k 0 r b, t 0 (1a) r b, t 0 (1b) 0 r b, t 0 (1c) para la placa caliente, y T 2 r 2 k k 1 T 1 T hT hTamb r b, t 0 (2b) hT hTamb r d,t 0 (2c) b r d,t 0 (2d) r r g t r r2 (2a) T T b r d,t 0 r r T T0 2 kr t para la guarda, donde es la función delta de DIRAC. La solución de este problema se obtiene mediante el método de la transformada integral.4 Para el problema inverso, la fuente de calor g t variable en el tiempo se considera como una incógnita. La información adicional que se obtuvo de las mediciones de temperatura en estado transitorio registradas en la posición r rmed en los tiempos ti , i 1, 2, , I se utiliza entonces para la estimación de g t . (a) Placa caliente (b) Guarda Fig. 1. Modelo físico del aparato de placa caliente con guarda. Para este trabajo se considerará una aproximación desde uno hasta cinco parámetros, expresada de la siguiente forma: 75 g t P1 P2 t Pt P4 t Pt 3 5 2 3 4 (3) La solución de este problema inverso de conducción de calor para la estimación de los parámetros desconocidos se basa en la minimización de la norma ordinaria de mínimos cuadrados, dada por: S P I Y T P 2 i (4) i i 1 Donde: Suma de los cuadrados de los S P errores o función objetivo P1 , P2 , , PN Vector T de parámetros desconocidos Ti P T P, ti Temperatura estimada al tiempo ti Y ti Temperatura medida al Yi tiempo ti Número total de parámetros desconocidos Número total de mediciones, donde I N N I Las temperaturas estimadas Ti P se obtienen de la solución del problema directo en la posición de las mediciones, rmed , utilizando la estimación actual de los parámetros desconocidos. Para minimizar la norma de mínimos cuadrados dada por la ecuación (4), se necesita igualar a cero las derivadas de S P respecto a cada uno de los parámetros desconocidos. La solución completa para estos problemas4 está dada por: T r , t hbT0 kN 2 2 kN t 2 R0 , r R0 , r1 P 2 P4 3 P1 hbTamb kN 2 4 2 1 e P 2 t 2 P 2 4 2 4 8 4 3 6 3 2 2 2 4 2 2 t 1 e t 2 (5) t 2 5 t 4 t 12 t 24 t 24 1 e 5 10 4 t t 3 t 6 t 6 1 e 4 8 6 3 2 2 2 R0 , r R0 , b 1 e t 2 3 t 2 t 2 1 e 3 6 Donde: 76 R0 , r R0 , b e 2 t 2 N h k 2 2 2 b R , b 2 2 0 2 k 2 2 (6) R0 , r J 0 r para la placa caliente, y T r , t bR0 , b dR0 , d bR0 , b dR0 , d 2 kN hT0 kN 2 hTamb kN 2 R0 , r R0 , r2 P1 R0 , r e 2 R0 , r 1 e t 2 1 e P t 2 2 2 2 P3 t 4 2 t 1 e t 2 (7) 2 4 t 2 2 2 t 2 1 e t 3 6 P 2 4 t 3 t 6 t 6 1 e 4 8 3 P 6 3 2 4 2 2 t 2 5 t 4 t 12 t 24 t 24 1 e 5 10 Donde: N R0 , r h 4 2 8 4 k 2 2 d 3 2 6 3 4 2 2 t 2 R0 , d b R0 , b 2 2 2 k 2 J 0 r 2 2 2 kJ 1 d hJ 0 d Y0 r (8) kY1 d hY0 d 3 Optimización por enjambre de partículas El comportamiento de un enjambre se puede modelar con unas cuantas reglas sencillas. Los enjambres de peces (banco, cardumen) y de pájaros (bandadas, parvadas) se pueden modelar con tales modelos simples. Por ejemplo, aun si las reglas de comportamiento de cada individuo (agente) son simples, el comportamiento del enjambre puede ser complicado. Reynolds 5 utilizó los siguientes tres vectores como reglas simples en sus investigaciones con boid: Alejarse del agente más cercano. Ir hacia el destino. Ir hacia el centro del enjambre. El comportamiento de cada agente dentro del enjambre se puede modelar con simples vectores. Los resultados de la investigación son uno de los antecedentes básicos de la PSO. 77 Boyd y Richerson6 examinaron el proceso de decisión de los humanos y desarrollaron los conceptos de ‚aprendizaje individual‛ y ‚transmisión cultural‛. De acuerdo con su análisis, las personas utilizan dos clases importantes de información en el proceso de decisión. La primera es su propia experiencia; esto es, han intentado las diferentes alternativas y conocen cuál estado es el mejor hasta el momento y saben qué tan bueno es. La segunda es la experiencia de otra persona; esto es, tienen conocimiento de cómo se han comportado otras personas a su alrededor. A saber, saben qué alternativas sus vecinos han encontrado más positivas hasta el momento y qué tan positivo fue el mejor patrón de alternativas. Cada persona toma su decisión utilizando sus propias experiencias y las experiencias de los otros. Los resultados de esta investigación también son uno de los elementos fundamentales básicos de la PSO. Fig. 2. Concepto de la modificación de un punto de búsqueda en la PSO. De acuerdo con los antecedentes de la PSO que acabamos de mencionar, Kennedy y Eberhart7 desarrollaron la PSO mediante la simulación de la bandada de pájaros en un espacio bidimensional. La posición de cada agente se representa mediante su posición en los ejes x y y y también su velocidad se expresa mediante vx (la velocidad en el eje x ) y vy (la velocidad en el eje y ). La modificación de la posición del agente se lleva a cabo mediante la información de posición y velocidad. La bandada de pájaros optimiza cierta función objetivo. Cada agente conoce su mejor valor hasta el momento ( pbest ) y su posición en x y y . Esta información es una analogía de las experiencias personales de cada agente. Por otra parte, cada agente conoce el mejor valor ( gbest ) de todos los pbest que ha obtenido el grupo hasta el momento. Esta información es una analogía del conocimiento de cómo se han comportado los otros agentes a su alrededor. Cada agente intenta modificar su posición utilizando la siguiente información: Las posiciones actuales ( x , y ). 78 Las velocidades actuales ( vx , vy ). La distancia entre la posición actual y su pbest . La distancia entre la posición actual y el gbest . Esta modificación se representa mediante el concepto de velocidad (el valor modificado para las posiciones actuales). La velocidad de cada agente se puede modificar con la siguiente ecuación: k 1 vi wávi c1rand1 pbesti si k k c rand gbest s k 2 2 (10) i Donde vik es la velocidad del agente i en la iteración k , w es una función de ponderación, c j son coeficientes de ponderación, rand es un número aleatorio entre 0 y 1, sik es la posición actual del agente i en la iteración k , pbesti es el pbest del agente i y gbest es el gbest del grupo. En otras palabras, la velocidad de un agente se puede cambiar utilizando tres vectores, como en el boid. La velocidad se limita normalmente a cierto valor máximo. La PSO que se utiliza en la ecuación (10) se llama modelo Gbest. La siguiente función de ponderación se utiliza normalmente en el modelo Gbest: w wmax wmax wmin iter itermax (11) Donde wmax es el peso inicial, wmin es el peso final, itermax es el número máximo de iteraciones e iter es el número actual de iteración. Fig. 3. Errores en la estimación de la fuente de calor para la PSO, comparados con el LMM, en el caso de la placa caliente. 79 El significado del lado derecho de la ecuación (10) se explica de la siguiente manera:8 el lado derecho de la ecuación (10) consta de tres términos (vectores). El primer término es la velocidad previa del agente. Los términos segundo y tercero se utilizan para cambiar la velocidad del agente. Sin estos dos términos, el agente permanecería ‚volando‛ en la misma dirección hasta golpear la frontera. Es decir, intenta explorar nuevas áreas y, por lo tanto, el primer término se corresponde con la diversificación en el proceso de búsqueda. Por otro lado, sin el primer término, la velocidad del agente ‚volador‛ se determina únicamente mediante el uso de su posición actual y las mejores posiciones de su historia. En otras palabras, los agentes intentarán converger a su pbest o también, a su gbest y, por lo tanto, los términos se corresponden con la intensificación en el proceso de búsqueda.9 Como se mostrará más adelante, por ejemplo, wmax y wmin se ajustan a 0.9 y 0.4 respectivamente. Por consiguiente, al comienzo del proceso de búsqueda, la diversificación tiene una ponderación muy alta, mientras que la intensificación está más ponderada al final del proceso de búsqueda en una forma similar al recocido simulado (SA, Simulated Annealing). Es decir, se puede calcular una cierta velocidad que gradualmente se acerque a los pbest y al gbest . La PSO que se utiliza en las ecuaciones (10) y (11) se conoce como ‚el método de pesos de inercia‛ (IWA, Inertia Weights Approach). Fig. 4. Errores en la estimación de la fuente de calor para la PSO, comparados con el LMM, en el caso de la guarda. La posición actual (el punto de búsqueda en el espacio de solución) puede modificarse mediante la siguiente ecuación: 80 k 1 si k 1 si vi k (12) En la figura 2 se ilustra el concepto de modificación del punto de búsqueda para la PSO. Shi y Eberhart8,10 intentaron examinar la selección de los parámetros que hemos mencionado. De acuerdo con su análisis, son apropiados los siguientes parámetros y sus valores no dependen del problema en consideración: ci 2.0, wmax 0.9, wmin 0.4 4 Resultados En la placa caliente del APCG se utilizó una generación eléctrica de calor de 5 W. Se realizaron mediciones de temperatura cada 1 minuto (durante 624 pasos temporales) en la posición rmed 0.0762 m. La generación de calor que se utilizó en la guarda fue 3 W. Las mediciones se realizaron cada 30 segundos (durante 345 pasos temporales) en la posición rmed 0.1524 m. El número de partículas utilizado para la optimización fue de 20. Cuadro 1. Valor de la menor norma ordinaria de mínimos cuadrados para la placa caliente y para la guarda Parámetros Placa caliente PSO 1 2 3 4 5 1891.6394 1132.1777 919.9884 758.6564 751.0625 LMM 1891.6394 1132.1777 865.1679 758.5913 733.9622 Guarda PSO LMM 200.5644 28.4137 13.5919 13.5064 13.3632 200.6026 29.1051 21.5268 17.3220 17.5800 En el cuadro 1 se muestra la norma ordinaria de mínimos cuadrados para los casos de la placa caliente y de la guarda. Se compara con un método tradicional de solución de problemas inversos, el método de Levenberg-Marquardt (LMM). Para el caso de la placa caliente, se observa un mejor desempeño del LMM conforme aumentamos el número de parámetros. En el caso de la guarda, la PSO tiene un mejor desempeño en todos los casos, ya que su norma ordinaria de mínimos cuadrados es la menor. 81 Fig. 5. Campo de temperatura obtenido con la mejor norma ordinaria de mínimos cuadrados con la PSO y el LMM para la placa caliente. En el cuadro 2 se enlistan los parámetros estimados para cada caso tanto para la placa caliente como para la guarda. En la figura 3 se muestran los errores para los casos que exhibieron el menor error en la estimación de la fuente de calor para la PSO y el LMM en la placa caliente. La figura 4 exhibe los mismos resultados para el caso de la guarda. Las figuras 5 y 6 muestran los campos de temperaturas obtenidos con la estimación que exhibió la menor norma ordinaria de mínimos cuadrados para la placa caliente y para la guarda, respectivamente. 82 Fig. 6. Campo de temperatura obtenido con la mejor norma ordinaria de mínimos cuadrados con la PSO y el LMM para la guarda. 5 Conclusión Se ha aplicado una estrategia para resolver problemas inversos de transferencia de calor, la optimización por enjambre de partículas. Se comparó con un método tradicional, el método de Levenberg-Marquardt. El resultado obtenido es satisfactorio, porque los que se obtuvieron con ambos métodos son muy similares y en algunos casos la PSO exhibe mejor desempeño. En especial, para la guarda, la PSO exhibió un mejor desempeño en todos los casos. Sin embargo, es necesario aplicar la optimización por enjambre de partículas a distintos problemas inversos para demostrar su capacidad. Los resultados obtenidos son muy alentadores para seguir trabajando en esta dirección. 83 Referencias 1. Alifanov, O. M., Inverse Heat Transfer Problems, Springer-Verlag, Nueva York, 1994. 2. Ozisik, M. N. y H. R. B. Orlande, Inverse Heat Transfer: Fundamentals and Applications, Taylor and Francis, Nueva York, 2000. 3 Colaco, M. J., H. R. B. Orlande y G. S. Dulikravich, ‚Inverse and Optimization Problems in Heat Transfer‛, ponencia en el X Congreso Brasileño de Ingeniería y Ciencias Térmicas, Río de Janeiro, 2004. 4. Cortés, O., ‚Aplicación del método de Levenberg-Marquardt y del gradiente conjugado en la estimación de la generación de calor de un aparato de placa caliente con guarda‛, tesis de maestría, CENIDET, Cuernavaca, 2004. 5. Reynolds, C., ‚Flocks, Herds And Schools: A Distributed Behavioral Model‛, Computer Graphics, núm. 21, 1987, pp. 25-34. 6. Boyd, R. y P. J. Richerson, Culture and the Evolutionary Process, University of Chicago Press, 1985. 7. Kennedy, J. y R. Eberhart, ‚Particle Swarm Optimization‛, IEEE International Conference on Neural Networks, vol. IV, IEEE Press, 1995, pp.1942-1948. 8. Shi, Y. y R. Eberhart, ‚A Modified Particle Swarm Optimizer‛. IEEE International Conference on Evolutionary Computation, IEEE Press, 1998, pp. 69-73. 9. Fukuyama, Y., ‚Fundamentals of Particle Swarm Optimization Techniques‛, en K. Y. Lee y M. A. El-Sharkawi (eds.), Modern Heuristics Optimization Techniques, 2008. 10. Shi, Y. y R. Eberhart, ‚Parameter Selection in Particle Swarm Optimization‛, Proceedings of the VII Annual Conference on Evolutionary Programming, MIT Press, San Diego, 1998. 84 Algoritmo de recocido simulado secuencial y paralelizado con memoria distribuida para el problema de máquinas paralelas no relacionadas ponderadas Marco Antonio Cruz-Chávez, Fredy Juárez-Pérez, Érika Yesenia Ávila-Melgar, José Crispín Zavala-Díaz, Resumen. En este artículo se comparan dos soluciones para el problema de máquinas paralelas no relacionadas con el objetivo de minimizar el tiempo total de término ponderado ( kCi ). Se aplica el recocido simulado clásico secuencial y paralelizado, con memoria distribuida sobre un clúster de alto rendimiento. El problema es modelado como de emparejamiento bipartita ponderado. Se presentan resultados experimentales con benchmarks y se evalúa la eficiencia y eficacia de los algoritmos. Los resultados demuestran que el algoritmo de recocido simulado paralelo tiene un mejor desempeño sobre el recocido clásico secuencial porque disminuye drásticamente los tiempos de procesamiento. Ambas soluciones presentan un alto desempeño, debido a que en todas las pruebas siempre encuentran el óptimo. Palabras clave: recocido simulado, problema de máquinas paralelas no relacionadas, programación lineal entera, emparejamiento bipartita ponderado, interfase de pase de mensajes. 1 Introducción El problema general de secuenciado de n trabajos sobre m máquinas paralelas no relacionadas sin interrupciones está clasificado como de tipo NP-Completo (Garey y Johnson).2 Los investigadores se han enfocado en estos problemas debido a la dureza que representan cuando se busca la solución óptima. Además, son de especial interés para su aplicación en la industria de la manufactura. En la búsqueda de algoritmos que resuelvan este problema en particular, se han hecho muchas investigaciones. El modelo problema de máquinas paralelas no relacionadas (PMPNR), por ejemplo, ha sido usado por Koranne7 para resolver problemas de 85 transporte con algoritmos de aproximación y demostrando un rendimiento mejor que los obtenidos mediante formulaciones de programación lineal entera. Zhou et al.8 buscaron el total de retrasos ponderados y propusieron el uso de un algoritmo con colonia de hormigas, el cual incorpora un operador de transferencia genética en la búsqueda local, con lo que se logra un excelente desempeño. Mönch9 presenta un método eficiente para optimizar el total de retrasos ponderados, aplicando la colonia de hormigas y usando rutas de feromonas artificiales e información de la heurística, con lo que se obtiene una optimización aproximada. Chun-Lung10 toma en cuenta los tiempos de arranque para minimizar el número total de trabajos retrasados ponderados y aplica un algoritmo de búsqueda local interactiva. Pessan et al.11 simplifican el problema, convirtiéndolo en uno de asignación, con el objetivo de reducir los tiempos de arranque requeridos para intercambiar la producción de un tipo de producto a otro. Utilizan un algoritmo de ramificación y acotamiento (branch and bound). Chun-Lung y Chuen-Lung12 trabajan con un algoritmo de cuello de botella, con el cual identifican el cuello de botella y construyen su calendarización. Este algoritmo se utiliza para elaborar calendarizaciones con páginas de retraso en la asignación de trabajos entre los intervalos identificados como cuellos de botella. En Anastasova y Dror,13 se describe una aplicación enfocada en el análisis de una línea automática de soporte de procesos para un centro de computación; las actividades de consulta en línea del centro se modelan como un grupo de máquinas paralelas no relacionadas, así los usuarios tienen procesos como aplicaciones de ayuda en línea a los cuales llega una lluvia de trabajos. Un índice automático de procesamiento de lenguaje natural (PLN) es aplicado a cada trabajo con el fin de estimar los tiempos de procesamiento que dependen de una máquina determinada. En Anil Kumar y Marathe,14 un algoritmo de redondeo es desarrollado para buscar una calendarización en máquinas paralelas no relacionadas. Este algoritmo trabaja con modelos de programación lineal, cuadrática y convexa extendida de una calendarización, para optimizar el Makespan. En el presente trabajo se muestran dos soluciones al modelo de programación lineal entera (PLE) ponderado, de máquinas paralelas no relacionadas, como el que se muestra en Pinedo.3 El estudio de máquinas paralelas no relacionadas es muy importante porque es un problema frecuente en la industria. La solución eficiente y efectiva de modelos teóricos es una aproximación simple al estudio de los modelos reales que permiten a la industria de la manufactura incrementar su desarrollo y competitividad. Las dos soluciones al PMPNR que aquí se describen usan un algoritmo de recocido simulado clásico secuencial y un algoritmo de recocido simulado paralelo, con memoria distribuida, ejecutado sobre un clúster de alto rendimiento, para resolverlo como un problema de emparejamiento bipartita ponderado. 86 2 Modelo de programación lineal entera ponderado El problema Rm || ΣkCj (Graham et al.),1 es de tipo NP-Completo y puede ser formulado como un problema de programación lineal entera (PLE), con una estructura especial que ayuda a resolverlo en tiempo polinomial utilizando un algoritmo determinista. Esta PLE modela el problema como un conjunto de máquinas que deben procesar un conjunto de trabajos y cada trabajo requiere una operación para terminar. Cada máquina puede procesar cualquier trabajo, uno a la vez. El tiempo de procesamiento de un trabajo depende de la máquina en la cual se procese. El problema de PLE presentado en Pinedo3 ha diso formulado como sigue: la contribución a la función objetivo en (1) de cada trabajo j, depende de la máquina i donde el trabajo j es procesado, así como de la posición k donde el trabajo es procesado en la máquina i, el conjunto de trabajos que se procesan en la máquina i es ordenado. El trabajo j contribuye en kpij al valor de la función objetivo. La función objetivo optimiza el tiempo total de término ponderado (ΣkCj). En este modelo, la restricción en (4) indica que las variables x toman sólo el valor de 0 o 1. Si xikj = 1, entonces el trabajo j es asignado a la máquina i en la k-th posición. Si xikj= 0, en caso contrario. Las restricciones en (2) aseguran que cada trabajo sea asignado a una sola posición k. Las restricciones en (3) aseguran que en cada posición k para cada máquina i es tomado por al menos un trabajo j. Este modelo puede ser mapeado para problemas de transporte (Hillier y Lieberman)4 si las restricciones del conjunto (4) se reemplazan por un conjunto de restricciones de valores no negativos, esto es, xikj >= 0. Esto es relevante debido a que con este modelo relajado se obtendrían límites con algoritmos exactos para problemas NP-Completos, como el modelo Rm|| Cj. En un modelo con una estructura como la presente, la formulación relajada tiene resultados de 0 o 1 para las variables x. De esta manera, es posible usar un algoritmo exacto, como el SIMPLEX, y obtener una solución para el modelo sin necesidad de relajar las restricciones en (4). 87 3 Modelo de grafos bipartita Un caso especial del problema de transporte es el problema de emparejamiento bipartita ponderado (PEBP). El modelo Rm | | kCj, para la estructura definida en el modelo de PLE en la sección 2, puede ser representado como PEBP (Pinedo).3 La figura 1 presenta una instancia de n=3 trabajos y m=2 máquinas para el problema Rm | | kCj, usando un grafo bipartita. El grafo está compuesto de n trabajos en la parte superior y mn posiciones en la parte inferior. Las mn posiciones se dan en pares (i,k), donde i es la máquina asignada para procesar el trabajo j y k la posición dentro de la cola de la máquina i, donde cada máquina i puede procesar a lo más n trabajos. Si el trabajo j que es asignado a la posición ik presenta un costo kpij, el objetivo es determinar la asignación ik para cada trabajo j en el grafo bipartita que tenga el mínimo costo de tiempo total. La interpretación se da con base en la figura 1, como sigue: para la máquina i=1 el trabajo j=1 puede ser procesado en primer lugar (p11), segundo lugar (2p11) o en tercer lugar (3p11). El trabajo j=2 puede ser procesado en primer lugar (p12), segundo lugar (2p12) o en tercer lugar (3p12). El trabajo j=3 puede ser procesado en primer lugar (p13), en segundo lugar (2p13) o en tercer lugar (3p13). Fig. 1. Grafo bipartita para ΣkCj. El modelo del PEBP puede ser solucionado con varias metaheurísticas. La siguiente es una de recocido simulado (RS) mediante la cual se obtiene la solución. 4. Algoritmo de recocido simulado Los fundamentos de la metaheurística denominada RS fueron introducidos por Kirkpatrick,5 quien propuso un método probabilístico de búsqueda local de manera que escapara de los óptimos locales. El nombre del método proviene de su similitud con el proceso metalúrgico de recocido lento, con el que se consigue un sólido de mínima entropía. El RS sigue un esquema similar para ayudar a 88 resolver problemas de optimización (véase la figura 2). El proceso de RS requiere del conocimiento de los siguientes parámetros: so : Solución inicial del problema. T : Parámetro de control de RS. r : Coefíciente de control. 0 < r < 1. MCS > 0: Cadena de Markov (Markov Chain Size). function SimulatedAnnealing ( ) Begin s:= so, T = T0 Repeat cycle := 1 to MCS generate new solution, s’ = N(s) if C(s’) < C(s) then s := s’ else d := C( s’) - C(s) Random (0 ,1) C: Función de costo. if N: Estructura vecindad. FROZEN: de paro. valor de T. de Criterio Mínimo e d T then s := s’ end else end cycle T := r T Until FROZEN return C(s) End Fig. 2. Algoritmo de recocido simulado. Como se ve en la figura 2, al principio el RS, con una temperatura alta T, acepta casi todas las transiciones entre las soluciones. Después T disminuye gradualmente, debido al factor r. Esto hace que la aceptación de movimientos sea cada vez más y más selectiva. Finalmente, sólo se aceptan aquellos movimientos que mejoren la solución actual. Un movimiento es un vecino s' de s, obtenido de una estructura de vecindad. El costo de la función C es la función objetivo del problema a resolver y permite la evaluación de la calidad de la solución. La aceptación de los movimientos —la nueva solución— es controlada por el algoritmo de metrópolis, el cual involucra la función de Boltzmman. En cada ciclo de T, metrópolis repite MCS ciclos. Para los diferentes valores de T, que pasan por una secuencia de enfriamiento, un proceso explora las mejores soluciones. FROZEN considera el criterio de paro, el cual es un valor mínimo al que T llega y que está controlado por r. 89 5 Metodología de solución Para solucionar el problema Rm | |kCj usando programación paralela con memoria distribuida, se proppone la siguiente metodología, basada en el grafo bipartita (véase la figura 1), que consiste en los siguientes pasos: 1. Representación simbólica del grafo bipartita. 2. Determinación de una estructura de vecindad que obtenga soluciones factibles. 3. Sintonización de los parámetros de RS: T, r, MCS y FROZEN. 4. Aplicación de la metaheurística de RS secuencial y paralelizado. 5. Aplicación del mecanismo generador de soluciones. 6. Aplicación del mecanismo para recolectar soluciones en el clúster. 5.1 Representación simbólica Para la representación simbólica del grafo bipartita, se emplea una estructura de datos unidimensional para representar las mn posiciones que se dan entre las máquinas (i=0,..., m-1) y las k-ésimas posiciones que un trabajo j (j=0,...,n-1) puede tomar dentro de una máquina i. Con este estructura, tendremos n trabajos calendarizados sobre el arreglo de tamaño mn y tendremos mn – 1 posiciones libres hacia donde se pueden mover los trabajos mediante un intercambio aleatorio. Una solución a la instancia presentada en la figura 1 se muestra en la figura 3 usando la representación simbólica. La estructura representa m=2 máquinas i en serie y n=3 trabajos j, lo que da un total de seis posiciones posibles para los tres trabajos j. Cada máquina i ocupa tres posiciones para los tres posibles trabajos j, por lo tanto, la estructura representa a las máquinas 0 y 1. Las seis posibles posiciones son referenciadas mediante un índice que va desde la posición 0 hasta la posición 5. La secuencia va desde k=0 hasta k=2 para representar las tres posibles posiciones dentro de la cola de la máquina i. Fig. 3. Representación simbólica del problema. La interpretación de la figura 3 se da como sigue: el trabajo j = 1 se procesa en primer lugar k = 0 en la primera máquina i = 0 y con una posición real índice = 0. 90 El trabajo j = 0 se procesa en segundo lugar k=1 en la primera máquina i = 0 y con una posición real índice = 1 y así sucesivamente. Las posiciones dentro del arreglo que contengan j = -1 son posiciones disponibles. 5.2 Mecanismo para generar soluciones en RS La estructura de vecindad esta basada en la representación simbólica de las posiciones que el grafo bipartita de la figura 1 representa. En este trabajo, se desarrollo un método de búsqueda local en la estructura de vecindad el cual incluye los siguientes pasos: 1. Generación de la calendarización inicial aleatoria. 2. Aplicación del mapeo indirecto y directo. 3. Generación del mapeo rápido. 4. Cambio de posición desde un trabajo hasta una posición libre aleatoria. 5. Intercambio de dos trabajos aleatorios. Para generar la solución inicial aleatoria, se seleccionan un trabajo j y una máquina i. El trabajo j se pone en posición sobre la máquina seleccionada. En la figura 4 se da el algoritmo que genera la solución inicial. Un conjunto de trabajos J y un conjunto de máquinas M se emplean para calendarizar la solución inicial. Un trabajo j y una máquina i se seleccionan aleatoriamente del conjunto J y M respectivamente. La posición ki se asigna en la máquina que no tiene un trabajo asignado (posición libre), entonces el trabajo j se almacena en el Array (véase la figura 3), en la posición ki; la posición ki se actualiza y el trabajo j queda eliminado del conjunto J. El procedimiento se repite mientras J no sea un conjunto vacío. function initial_solution( ) Begin k = {k1=0,...,km-1=0} M = {m1 = 0,...,mm=m-1} J= {0,...,n-1} Repeat j = random(J) i = random(M) Array[i * n + ki] = j ki=ki + 1 J = J - {j} Until j0 ≠ End Fig. 4. Generación de la solución inicial. 91 El mapeo indirecto busca los elementos ikj a partir de la posición real dentro de la estructura de vecindad. La posición real se obtiene del índice que se utiliza para acceder al Array. Las funciones son: j = Array( index ) (5) i = integer_truncate(index / n ) (6) k = operator_ module (index, n) (7) Por ejemplo, en la figura 3, usando (5), para el índice = 3 se obtiene el trabajo 2. Con el mismo índice, usando (6), se obtiene la máquina 1. Usando (7), se encuentra la posición k = 0. El mapeo directo encuentra la posición real dentro de la estructura de vecindad denotada por el índice a partir de los elementos ikj. Las funciones son: index = i * j + k (8) En la figura 5 se da un mapeo rápido a partir de la representación simbólica (véase la figura 3) que genera una calendarización de trabajos en una estructura de tamaño 2n. Fig. 5. Mapeo rápido. El arreglo corresponde a una calendarización —trabajos, máquinas y posiciones— menor en tamaño que la estructura de vecindad de tamaño mn. Esta estructura permite seleccionar un trabajo aleatoriamente y localizar su posición dentro de la estructura de vecindad con base en las funciones de mapeo descritas anteriormente. Esta estructura aumenta la eficiencia en la búsqueda de una nueva solución debido a que los mapeos directos e indirectos representan la indexación de la estructura de vecindad y agilizan el acceso y modificación de las nuevas soluciones, de la misma manera como lo haría una base de datos indexada. Como se observa en la figura 5, el ordenamiento de la estructura de vecindad es con base en el número de máquinas y la estructura de mapeo rápido, con base en el número de trabajos. 92 El movimiento de un trabajo a una posición libre del arreglo genera un vecino. Se selecciona un trabajo de forma aleatoria de la estructura de vecindad usando el mapeo rápido, el cual contiene todos los trabajos calendarizados, como se muestra en la figura 6. Entonces se realiza la operación de transformación descrita en (8), para localizar el índice que apunta a ese trabajo en la estructura de vecindad de la figura 6. Paso seguido, selecciona una posición de la estructura de vecindad en forma aleatoria, la cual es apuntada por el índice y representa el lugar hacia donde se moverá el trabajo previamente seleccionado. En la figura 6 se muestra una posición libre (-1). En la figura 6d se indica el movimiento del trabajo j = 0 de la posición 1 a la posición 4. Por último, con base en las operaciones de transformación descritas en (5), (6) y (7), actualizamos las posiciones del trabajo j = 0 como se muestra en la figura 6. Fig. 6. Operación mueve. Fig. 7. Operación intercambia. El intercambio de un par de trabajos en la solución genera un nuevo vecino. En la figura 7 se muestra el intercambio de trabajos 0 y 2 contenidos en las posiciones 1 y 3. La selección del par de trabajos es aleatoria y las operaciones de transformación son las mismas aplicadas anteriormente. Finalmente, en la figura 7 se ve que es necesario actualizar las posiciones de los trabajos 0 y 2 para tener una referencia correcta. 93 5.3 Mecanismo para recolectar soluciones en el clúster Se le hizo una modificación al algoritmo de RS para permitir su ejecución en paralelo. Esta modificación consiste en agregar funciones para el pase de mensajes entre el proceso de control —llamado ‚proceso maestro‛— y los diferentes procesos de los nodos del clúster —llamados ‚procesos esclavos‛. El número de procesos que se ejecutan en cada nodo es igual al número de procesadores que tenga cada nodo en particular, esto es, a cada proceso le corresponde un solo procesador. Conocido como interfase de pase de mensajes (MPI), este estándar permite agregar paralelismo a las aplicaciones con memoria distribuida. El algoritmo de RS paralelo maestro recolecta las soluciones obtenidas por los procesos de RS esclavos. Esto significa que cada proceso de RS esclavo envía el óptimo encontrado al proceso maestro. De esta manera, el óptimo global de los RS esclavos puede ser obtenido por el RS maestro. Cuando se encuentra más de un óptimo global igual, se toma el que tiene menos tiempo de procesamiento. En algoritmo denominado RSPCJ está compuesto por la parte de control (véase la figura 8a) y la parte de procesamiento numérico (véase la figura 8b). function RSProcesoMaestro ( ) Begin s:= so, t:= 0 cycle p := 1 to Procesadores recibe_del_procesado r(p,s’,t’) if C(s’) < C(s) then s := s, t:=t’ if C(s’) == C(s) and t > t’ then t:=t’ end cycle End Fig. 8a. Algoritmo RSPCJ parte de control. function RSProcesoEsclavo( ) Begin s:= so, ti:= t:= tiempo_inicial() Repeat cycle := 1 to MCS ... end cycle T := r T Until FROZEN or s ==SIMPLEX t’:= tiempo_final() - t envia_al_maestro(s,t’) End Fig. 8b. Algoritmo RSPCJ procesamiento númerico. Por ejemplo, en la figura 9, los p procesos esclavos de los n nodos del clúster ejecutan el RS cada uno con su propia solución inicial; en cada ciclo MCS los p procesos esclavos generan soluciones aleatorias y al término descienden la 94 temperatura. Este proceso se repite hasta llegar al punto de congelación FROZEN y encontrar el óptimo dado por SIMPLEX. Fig. 9. El algoritmo RSPCJ recolecta las soluciones. Finalmente, los p procesadores esclavos envían el resultado final que hayan encontrado al nodo maestro. Entonces, el nodo maestro escoge la mejor solución (véase la figura 9). En caso de encontrar resultados iguales en más de un procesador, se toma el que tenga un tiempo menor de búsqueda. 6 Escenario de pruebas Cinco problemas de prueba fueron usados. Estos benchmarks son los propuestos en Arnaut et al.15 Cada benchmark contiene 60 trabajos y cuatro máquinas paralelas no relacionadas. La información referente a los tiempos de iniciado no son tomados en cuenta porque el modelo usado para este trabajo no los usa. Para probar la eficiencia y eficacia del algoritmo de RS, un algoritmo exacto (SIMPLEX) fue desarrollado en Marco et al.16 para resolver las instancias con un máximo de 60 trabajos y cuatro máquinas. Con este algoritmo se obtuvo la solución óptima global. Después de obtener la solución, los algoritmos de RS secuencial y RS paralelo fueron usados para encontrar el óptimo basado en 30 ejecuciones para cada uno de los cinco benchmarks. 95 La infraestructura utilizada fue un clúster de alto rendimiento compuesto de un nodo maestro con procesador Intel x86 de 1GB de memoria. Nueve nodos de procesamiento numérico, cada uno con procesador de doble núcleo Intel Celeron de 2.0 GHz y 2 Gb Memoria, hicieron un total de 18 núcleos de procesamiento numérico. El software utilizado fue el sistema operativo Scientific Linux 4.7, compilador GCC 3.4.3, librerías OpenMPI 1.3.6 y sistema de archivos de red NFS. 7 Resultados experimentales Para todas las pruebas, el sintonizado de los valores de los parámetros del algoritmo de RS fueron: T = 25, r = 0.985, FROZEN = 0.0001 y MCS es seis veces el tamaño de la vecindad. El sintonizado de r = 0.985 fue en el rango de (0.8 <= r <= 0.99) de acuerdo con David et al.6 El criterio de paro fue llegar al punto de congelamiento FROZEN o encontrar el óptimo dado por SIMPLEX. En el cuadro 1 se observa que para los cinco benchmarks, el algoritmo de RS secuencial siempre encuentra el óptimo y el número de veces que lo encuentra es de al menos tres. Muestra una desviación estándar aceptable y un error relativo por debajo del 0.02%, en el peor de los casos, para el promedio de 30 pruebas por cada problema. El mejor resultado obtenido por el RS secuencial fue para el benchmark 60on4Rp50Rs50_1, debido a que, de las 30 pruebas, el peor resultado fue de 62659, con una desviación estándar de 3.8201 y un promedio de error relativo de 0.0073%. Cuadro 1. Eficacia del algoritmo RS secuencial Para el algoritmo de RS paralelo, en el cuadro 2 se observa que al igual que el RS secuencial siempre encuentra el óptimo, pero el número de veces es de al menos 28. Muestra una desviación estándar mejor que el RS secuencial y, por lo tanto, un error relativo por debajo del 0.0003%, en el peor de los casos, para el promedio de 30 pruebas por cada problema. Los mejores resultados obtenidos por el RS paralelo fueron para los benchmarks 60on4Rp50Rs50_2, 60on4Rp50Rs50_3 y 60on4Rp50Rs50_5. La eficacia aumenta considerablemente debido a que el 96 paralelismo permite evaluar un mayor número de RS. Así, para una prueba del algoritmo de RS paralelo, se requiere un proceso maestro y 18 procesos esclavos, aumentando la eficiencia en 18 veces respecto al RS secuencial. Cuadro 2. Eficacia del algoritmo RS paralelo El cuadro 3 muestra los resultados de eficiencia. Para el último benchmark, el algoritmo de RS paralelo muestra que el mejor resultado de las 30 pruebas reduce el tiempo de ejecución en un 27.38% respecto al secuencial. En general, se observa que el algoritmo de RS paralelo reduce el tiempo de ejecución en la búsqueda del óptimo en 24.43% en promedio, más rápido que el RS secuencial. La eficiencia del RS paralelo se ve aumentada cuando uno de los 18 RS encuentra el óptimo antes de llegar al punto de congelación FROZEN; en este caso, el tiempo de procesamiento se reduce y de los 18 procesos se toma el menor. Cuadro 3. Comparación de eficiencia RS secuencial contra RS paralelo El speedup calculado para el RS paralelo es muy cercano al óptimo y corresponde a un speedup sublineal, como se muestra en el cuadro 4. La eficiencia calculada es, en promedio, del 0.999, muy próximo al ideal. El algoritmo paralelo minimiza el uso de comunicaciones, lo que le permite alcanzar un excelente desempeño en eficiencia paralela. 97 Cuadro 4. Cálculo del speedup y eficiencia del RS paralelo 8 Conclusiones La indexación de la estructura de vecindad, representada por un mapeo rápido en el algoritmo de RS, causa que la búsqueda del óptimo en el espacio de soluciones sea más eficiente que con el método SIMPLEX en los cinco benchmarks analizados. La eficacia del algoritmo de RS paralelo y RS secuencial es del 100% para los benchmarks analizados debido a que encuentran siempre el óptimo en todos los benchmarks. El RS paralelo muestra una mejor eficacia debido a que hace una mayor exploración y explotación del espacio de soluciones. Esto se debe a que para cada prueba se requiere un proceso maestro y 18 procesos esclavos que se ejecutan en paralelo, lo que aumenta las posibilidades de encontrar el óptimo en 18 veces respecto al RS secuencial. Así, para las 30 pruebas, existen 30 x 18 posibilidades de encontrar el óptimo. Las posibilidades de encontrar el óptimo en un clúster de alto rendimiento aumentan en función del número de procesadores disponibles en él. Cuando comparamos la eficiencia del RS secuencial con la del RS paralelo, se observa que el RS paralelo mejora el tiempo secuencial en un promedio de 24.43%. Esto se debe principalmente a que los 30 x 18 RS aumentan de manera considerable las posibilidades de encontrar el óptimo antes de llegar al criterio de paro FROZEN, lo que lleva a una reducción en el tiempo de búsqueda. El algoritmo presenta un excelente desempeño, con 0.99% de eficiencia y un speedup muy próximo al óptimo, debido principalmente al diseño, el cual minimiza el uso de las comunicaciones entre los procesos del RS. Otros trabajos futuros se centrarán en un uso más extenso de las comunicaciones, a fin de hacer 98 una mejor exploración del espacio de soluciones con el pase de mensajes con MPI. Referencias 1. Graham, R. L., E. L. Lawler, J. K. Lenstra y A. H. G. Rinnooy Kan, ‚Optimization and Approximation in Deterministic Sequencing and Scheduling: A Survey‛, Annual of Discrete Mathematics, 1979, pp. 287-326. 2. Garey, A. M. y D. S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, Freeman, San Francisco, 1979. 3. Pinedo, M., Scheduling Theory, Algorithms and Systems, Prentice Hall, 2001, p. 586. 4. Hillier, F. S. y G. J. Lieberman, Introduction to Operation Research, 8a edición, McGraw-Hill, 2008. 5. Kirkpatrick, S., C. Gelatt y M. Vecchi, ‚Optimization by Simulated Annealing‛, Science, vol. 220, núm. 4598, 1983, pp. 671-680. 6. David, R., R. Sixto y M. Jacinto, Simulación, Alfaomega, 2009, p. 388. 7. Koranne, S., ‚Formulating SoC Test Scheduling as a Network Transportation Problem‛, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 21, núm. 12, diciembre de 2002. 8. Zhou, H., Z. Li y X. Wu, ‚Scheduling Unrelated Parallel Machine to Minimize Total Weighted Tardiness Using Ant Colony Optimization‛, Proceedings of the IEEE International Conference on Automation and Logistics, Jinan, del 18 al 21 de agosto de 2007, pp. 132-136. 9. Mönch, L., ‚Heuristics to Minimize Total Weighted Tardiness of Jobs on Unrelated Parallel Machines‛, IV IEEE Conference on Automation Science and Engineering Key Bridge Marriott, Washington, D.C., del 22 al 26 de agosto de 2008, pp. 572-577. 10. Chun-Lung, C., ‚An Iterated Local Search for Unrelated Parallel Machines Problem with Unequal Ready Times‛, Proceedings of the IEEE International Conference on Automation and Logistics, Qingdao, septiembre de 2008, pp. 2044-2047. 11. Pessan, C., J. L. Bouquard y E. Neron, ‚An Unrelated Parallel Machines Model for Production Resetting Optimization‛, IEEE International Conference on Service Systems and Service Management, vol. 2, 2007, pp. 1178-1182. 12. Chun-Lung, C. y C. Chuen-Lung, ‚A Heuristic Method for a Flexible Flow Line with Unrelated Parallel Machines Problem‛, IEEE Conference on Robotics, Automation and Mechatronics, 2006, pp. 1-4. 13. Anastasova, K. y M. Dror, ‚Intelligent Scheduler for Processing Help Requests on Unrelated Parallel Machines in a Computer Support 99 Administration System‛, IEEE Conference on Systems, Man, and Cybernetics, 1998, pp. 372-377. 14. Anil Kumar, V. S. y M. V. Marathe, ‚Approximation Algorithms for Scheduling on Multiple Machines‛, Proceedings of the XLVI Annual IEEE Symposium on Foundations of Computer Science, 2005, pp. 254-263. 15. Arnaut, P., R. Musa y G. Rabadi, ‚Ant Colony Optimization Algorithm to Parallel Machine Scheduling Problem with Setups‛, IV IEEE Conference on Automation Science and Engineering, Washington, D.C., del 23 al 26 de agosto de 2008, pp. 578-582. 16. Marco, C., J. Fredy, Y. Erika y M. Alina, ‚Simulated Annealing Algorithm for the Weighted Unrelated Parallel Machines Problem‛, The Electronics, Robotics and Automotive Mechanics Conference, 2009. 100 Capítulo II. Aplicaciones 101 102 Diseño de un Sistema de Gestión de la Información para Tutorías Irma Delia Rojas-Cuevas, José Rafael Mendoza-Vázquez y Sergio Javier Torres-Méndez Resumen. En este documento se presenta la propuesta para un sistema de gestión de la información aplicado a tutorías en educación superior. La propuesta del sistema está basada en el lenguaje de modelado unificado (UML, por sus siglas en inglés) y en la ingeniería del software. Tiene siete etapas principales: determinación de requerimientos, planeación, diseño funcional, diseño pedagógico, diseño físico, sistema y evaluación. Su ventaja estriba en dos aspectos primordiales: primero, el modelo obtenido es independiente del lenguaje de programación que se utiliza para su elaboración y construcción; segundo, el modelo toma en cuenta la reutilización de sus componentes para que éstos sean incorporados en las secciones que tengan las mismas características. Para finalizar, se presentan los diagramas y los documentos principales producidos durante el proceso de desarrollo del sitio de tutorías. Palabras clave: educación, tutorías, sistemas de gestión de la información, ingeniería del software, lenguaje de modelado unificado. Abstract. This paper presents the systems for information management for tutoring. The model is based on Unified Modeling Language (UML) and Software Engineering. There are seven components: determination of requirements, planning, functional design, pedagogical design, physical design, system evaluation. The system have the advantage of considering two aspects: the model obtained is independent of programming language, the model takes into account the aspect of reusability of different components are built in sections that have the same. Finally, the diagrams and the main documents generated are presented. Keywords: education. tutoring, systems for information management, software engineering, Unified Modeling Language. 103 1 Introducción En el artículo 3 de la Constitución de nuestro país, así como en el Programa de Desarrollo Educativo 2000-2006 y en el Programa para el Mejoramiento del Profesorado (PROMEP), se señala la importancia estratégica de la educación integral, necesaria para impulsar el conocimiento. La educación integral debe operar en las instituciones de educación superior (IES), y como parte de su puesta en práctica se desarrollan actividades de tutoría en estas instituciones. Por ejemplo, la ANUIES1 reporta que en su caso sólo 20% de los estudiantes de nivel superior se titula, además de que otro 25% abandona sus estudios, esto último se destaca entre otros indicadores de las labores de las IES en México. Las causas de la deserción, el rezago y el abandono académico son diversas; entre ellas, algunos alumnos señalan problemas personales. Por esta razón, se busca reducir la reprobación y el abandono a fin de lograr índices de aprovechamiento y de eficiencia terminal satisfactorios, de modo que los estudiantes de las IES concluyan sus estudios y se incorporen al ambiente laboral. Para que esto sea posible, el papel que ha desempeñado el docente del nivel superior debe cambiar, pasando de ser el de un simple transmisor de conocimientos, al de ser un facilitador, tutor y asesor, a fin de que el alumno alcance una formación que le prepare para un desenvolvimiento acorde con su proyecto de vida y su vida profesional. Por ello, la ANUIES,2 en La Educación Superior en el Siglo XXI, propone el desarrollo integral de los alumnos y destaca la institucionalización de las actividades de tutoría en el año 2000. Posteriormente, en una publicación de Alejandra Roma López,3 la ANUIES establece los programas institucionales de tutoría, su organización y funcionamiento en las IES, a partir de los cuales se han puesto en marcha muchos de los programas de tutoría que actualmente operan en buena parte de las instituciones de este nivel. A mediados de 2003, la propia ANUIES4 publica un estudio sobre las modalidades y los procedimientos utilizados por las instituciones que ya habían puesto en marcha un programa de tutoría, con resultados interesantes para aquellas IES que también buscan poner en práctica modelos tutoriales, dado que se muestra la diversidad de estrategias utilizadas, pero, a la vez, la homogeneidad en los objetivos e intenciones formativas. 2 Espacios educativos La ANUIES2,3 propone el establecimiento de universidades virtuales para mejorar la educación; promueve también el uso de las tecnologías por medios 104 electrónicos, como una necesidad actual. Por su parte, el gobierno mexicano,5 en su estrategia 14.2, destaca el uso de las tecnologías de información y comunicación; mientras en España se analizan cuáles son las mejores opciones para el desarrollo de sistemas en la Web.6 Por ello, los espacios educativos en Internet que ofrecen diferentes instituciones públicas, como la Universidad Tecnológica de Puebla, y privadas, como la Universidad de las Américas y el ITESM, son cada vez más frecuentes. Estas áreas deben estar dirigidas a los estudiantes, usuarios principales de la red, y reunir características de simpleza, amenidad y facilidad de uso;7 por lo tanto, se necesita definir sus requerimientos de acuerdo con el cliente y traducirlos finalmente a los objetivos alcanzables del aprendizaje significativo,8 como sucede en las tutorías. Para ello, se emplean principios de diseño funcional, sin perder de vista el diseño pedagógico, 9 el cual permite al estudiante asimilar en forma ágil los contenidos y los conocimientos. Del mismo modo, el diseño físico del espacio educativo debe ser agradable, para que se capte la atención del estudiante y su interés se mantenga, aprovechando la interactividad del sistema. Recientemente, en distintas IES de México, se ha desarrollado lo que se ha dado en llamar ‚tutorías electrónicas‛, cuya característica es la de ofrecer asistencia apoyada en las nuevas tecnologías de la información, sobre todo en la computadora y en Internet. Así, las actividades de apoyo y aprendizaje en general y los objetivos relacionados con la tutoría en especial se realizan mediante el uso de estas tecnologías. Con base en este tipo de medios se elaboran tutoriales de contenidos y propósitos educacionales múltiples, con la intención de que el alumno sea capaz de ‚aprender a aprender‛. Adem{s de que se dispone de información para el alumno y los tutores, todo esto está orientado a mejorar el desempeño del alumno durante su estancia en una IES. En las secciones siguientes se presentan los aspectos fundamentales de la tutoría y la propuesta para el Instituto Tecnológico de Puebla. 3 La tutoría La tutoría es una actividad docente que respalda la integración escolar en general, así como la vida cotidiana extraescolar del estudiante a partir de sus intereses y necesidades académicas. Su finalidad es impulsar al alumno para que adquiera madurez e independencia en su proceso educativo. 1 La tutoría también asegura que la formación sea integral, ya sea personalizada o grupal, o ambas, pues se basa en la interrelación y el compromiso entre el tutor y el o los alumnos, mediante el establecimiento de las condiciones de apoyo y seguimiento para el aprendizaje. La tutoría es una actividad continua; apoya, orienta y evalúa el proceso de aprendizaje del alumno;1,2,3,4 propicia la iniciativa propia, está planificada de 105 manera sistemática, contribuye al abatimiento de la deserción y crea un clima de confianza. Así, las circunstancias o condiciones del aprendizaje mejoran y la capacidad del estudiante para asumir responsabilidades en el ámbito de su formación profesional se desarrolla. Por medio del estímulo al interés del estudiante, se promueven las habilidades de integración en los equipos de trabajo, así como valores y actitudes que favorecerán su desempeño, tanto en el ámbito académico y profesional, como en el personal. 4 Modelo La elaboración de la presente propuesta contempla varios aspectos, los cuales se desarrollan de manera gradual. Primero, se determinan los requerimientos del usuario final. Tomando como base estos requerimientos, se establece el diseño funcional. En seguida se hace el diseño pedagógico y a continuación se elabora el diseño físico, el cual da la pauta para obtener el sistema en su primera versión, la cual se evaluará al final. En la figura 1 se muestra este modelo de desarrollo de tutorías, en él se muestran las seis etapas que acabamos de mencionar: determinación de requerimientos, diseño funcional, diseño pedagógico, diseño físico, sistema y evaluación. Con base en la evaluación se pueden hacer mejoras, en un proceso de retroalimentación. Dentro de este modelo, los requerimientos del ususario son fundamentales, y a partir de ellos se establecen las bases del sistema. Este modelo se distingue porque considera el diseño pedagógico, el cual permite que los contenidos sean asimilados de forma fácil. Todos sus componentes se describirán de manera detallada en las siguientes secciones. 106 Mejoramiento Determinación de requerimientos Retroalimentación Diseño funcional Diseño pedagógico Diseño físico Sistema Evaluación Fig. 1. Modelo para el desarrollo de sistemas de gestión de la información. 4.1 Determinación de requerimientos Los requerimientos son las necesidades que los usuarios tienen para alcanzar un objetivo o resolver un problema.9 Los requerimientos son la base para establecer los objetivos de funcionalidad del sistema y son un punto de verificación para corroborar que el sistema cumple con el planteamiento original. Por ello, es muy frecuente escuchar que una cantidad considerable de proyectos de ingeniería de software fracasan, puesto que no contemplaron una definición, especificación y administración adecuada de los requerimientos. La documentación de los requerimientos sirve para especificarlos por escrito y detallarlos, antes de la elaboración del sistema. 10 Con los requerimientos definidos, contamos entonces con especificaciones correctas y medibles — que describen consistentemente, es decir, con claridad y sin ambigüedades, las necesidades de los usuarios— para involucrarlas en el sistema. Los requerimientos se subdividen en requerimientos funcionales y no funcionales. Los requerimientos funcionales definen las funciones que el sistema debe ser capaz de realizar y describen las transformaciones que el sistema debe llevar a cabo sobre las entradas para producir salidas precisas y útiles. Por ello es importante que se describa lo que el sistema debe hacer. Entre este tipo de requerimientos se deben establecer todos los aspectos que puedan ser representados en un diagrama de casos de uso, 11,12 en el cual se refleja la funcionalidad del sistema, es decir, las funciones que se desea realice el sistema. 107 En este tipo de sistemas, el requerimiento de contenidos es primordial. Asimismo, deberán especificarse las actividades que puede realizar cada uno de los actores del diagrama de casos de uso. Los requerimientos no funcionales tienen que ver con aquellas características que pueden limitar el sistema, como, por ejemplo, rendimiento, interfaces del usuario, fiabilidad, mantenimiento, seguridad, portabilidad, estándares, etcétera. 4.2 Diseño funcional El diseño funcional se realiza con base en los requerimientos del usuario, donde se establece la forma en que se deberá comportar el sistema y se define lo que se espera del sistema en acciones concretas. El diseño funcional determina cuáles son los componentes necesarios para que el sistema funcione adecuadamente, antes de pasar al diseño físico. En el diseño funcional se incluye, principalmente, el propósito del sistema; los objetivos del diseño; definiciones, acrónimos y abreviaturas; referencias; arquitectura del sistema; la forma en que funcionará el sistema para satisfacer los requerimientos especificados. Todo ello se establece mediante la arquitectura del sistema. Para definir la arquitectura del sistema se utilizan los diagramas de casos de uso y diagramas de secuencia. De esta forma, se determinan las funcionalidades del sistema. Además, se elaboran los diagramas de secuencia para establecer con claridad la interacción de cada actor con el sistema. En el diagrama de casos de uso se debe ubicar quiénes van a ser los actores, cuáles serán sus funciones y cuál será su interacción con el sistema. Una vez terminadas estas actividades, se las documenta en formatos preestablecidos. A continuación, se muestra el diagrama de casos de uso del tutorado y del tutor del administrador y del gestor (véanse las figuras 2, 3, 4 y 5). 108 Fig. 2. Diagrama de casos de uso del tutorado del sistema de gestión de la información para tutorías. Fig. 3. Diagrama de casos de uso del tutor del sistema de gestión de la información para tutorías. 109 Sistema de Gesti—n de la Informaci—n para Tutor’as a nivel Licenciatura ÇusesÈ ÇusesÈ ÇusesÈ Registrarse BD usuarios ÇextendsÈ Autenticarse Gestor Depto. acadmico Establecer la relaci—n alumno-tutor Reglamento de tutor’as y Documentos de apoyo Fig. 4. Diagrama de casos de uso del administrador del sistema de gestión de la información para tutorías. 4.3 Diseño pedagógico El diseño pedagógico consiste en establecer los contenidos necesarios y ponerlos en orden de mayor a menor grado de complejidad, empleando imágenes, a fin de lograr impacto visual. Dado que esta forma de aprendizaje la tenemos desde niños, esta sección se ha llamado ‚diseño pedagógico‛ y no ‚diseño andragógico‛ (véase la figura 5). Fig. 5. Orden de los contenidos. 110 4.4 Diseño físico El diseño físico tiene dos vertientes, el diseño conceptual y el diseño detallado, éstos se muestran en la figura 6. Fig. 6. Tipos de diseño. El diseño físico consiste en la definición de la distribución de los elementos en las páginas principales y secundarias; en la elección de colores, botones, imágenes y demás, obteniendo como resultado la interfaz gráfica que nos permitirá interactuar con el sistema. El diseño conceptual representa la suma de todos los subsistemas que integran el sistema completo, proponiendo un modelo del producto global que realiza las funciones necesarias para dar servicio al usuario. En la figura 7 se presenta parte del diseño conceptual. Fig. 7. Diseño conceptual del sistema de gestión de la Información para tutorías. 111 (a) Fig. 8. Diseño conceptual del tutor (a) y del tutorado (b). (b) El diseño detallado consiste en definir cuál será el dibujo de cada icono que se ubicará en la página, así como las imágenes y los colores que se utilizarán — preferentemente se utilizan colores de tipo institucional (véase la figura 9). Fig. 9. Diseño detallado de la vista del tutor (a); tutor-tutorado, entrevista inicial (b); tutor-tutorado, habilidades de estudio (c); tutor-tutorado, análisis FODA (d). 4.5 Sistema En esta sección se debe determinar con qué software se ha de desarrollar el sistema. El sistema de tutorías utilizará el lenguaje HTML; sin embargo, para facilitar el manejo de este lenguaje se utilizará el dreamwear. Así también, se utilizará PHP para los formatos y el acceso al sistema. Para las animaciones se utilizará Flash y Swish; para el diseño se utilizará Fireworks y finalmente para la elaboración del video de bienvenida y el manual del usuario se utilizará Camtasia y Snagit. 112 4.6 Evaluación Una vez concluido el desarrollo y su implementación, se procede a realizar la revisión del sistema a fin de verificar que se cumplió con los requerimientos tanto funcionales como no funcionales. Este proceso se desarrolla por medio de los alumnos que realicen la evaluación del sistema y contesten un cuestionario para disponer de información relevante del sistema y sus acciones (véase la figura 10). Fig. 10. Cuestionario para evaluar el sistema. 113 4.7 Retroalimentación Después de analizar la pertinencia de realizar en el sistema los cambios sugeridos, y en el caso de que no se haya cubierto algún objetivo, se hace la retroalimentación. El mejoramiento comienza siguiendo el diagrama que se muestra en la figura 11. 4.8 Mejoramiento El mejoramiento se da en todas las etapas, empezando por la etapa de definición de requerimientos, donde se deberán plantear los requerimientos obtenidos en la etapa de evaluación. Los nuevos documentos generados deben estar actualizados en versión y fecha, para que posteriormente se hagan los cambios en el sistema (véase la figura 12). Fig. 11. Diagrama de retroalimentación del sistema. 5 Conclusiones Se obtuvo un modelo para el desarrollo de sistemas de gestión de la información para tutorías en educación superior en el Instituto Tecnológico de Puebla. Este modelo establece los requerimientos del sistema y de esta manera define los alcances del sistema a desarrollar, con base en los requerimientos de la DGEST y la ANUIES. En el modelo, los módulos y objetos del sistema de tutorías se definieron para que fueran reutilizables, a fin de aprovechar los elementos desarrollados. 114 El establecimiento del modelo para el desarrollo de SGI permite utilizar metodologías tipo UML. En este formato, la revisión y el mejoramiento de los componentes de los sistemas resultan simples. En el artículo se presentaron algunas de las secciones más remarcables y el diseño propuesto para el sistema de tutorías. Para el mejoramiento del sistema, se están empleando, entre otros, los indicadores expuestos en la sección de evaluación y el formato de la figura 11. Principalmente, se dispondrá de datos referentes al uso, facilidad y claridad de la información. También se tendrá evidencia de la rapidez y el número de usuarios. Para los casos expuestos, la información que den tanto los alumnos como los tutores será vital para el mejoramiento del sistema, a fin de tener un SGI ameno, de fácil uso y que permita desarrollar las actividades de tutoría en el Instituto. Dado que en la actualidad vivimos en la era de la información, donde la ésta es uno de los bienes más preciados de la empresa, aquel organismo que no esté actualizado al respecto corre el riesgo de quedar rezagado; por lo tanto, es recomendable digitalizar la información y colocarla en la red de redes. Esto hará más ágil su acceso, de tal forma que pueda tenerse a disposición en el momento en que sea requerida. En relación con las áreas de oportunidad, se dispondrá de un conjunto de elementos constructivos en el área de sistemas interactivos, los cuales permitirán el desarrollo de sistemas de características similares en un tiempo menor. Finalmente, se dispondrá de elementos humanos con los conocimientos suficientes y necesarios para desarrollar sus propias aplicaciones, lo cual recae en el ámbito de reducción de costos en el presente; y en el futuro, se tendrá la capacidad de atender las necesidades de empresas e industrias en diferentes zonas industriales, dado que las aplicaciones sobre sistemas interactivos son una necesidad actual. Referencias 1. Asociación Nacional de Universidades e Institutos de Educación Superior (ANUIES), Programas Institucionales de Tutoría, ANUIES (Colección de la Biblioteca de la Educación Superior, Serie Investigaciones), 2000. 2. ANUIES, La Educación Superior en el Siglo XXI. Líneas estratégicas de desarrollo, una propuesta de la ANUIES, ANUIES, marzo de 2000. 3. Roma López, Alejandra, La incorporación de los programas de tutorías en las instituciones de educación superior, ANUIES (Colección de documentos), 2003. 4. Programa Nacional de Extensión de la Cultura y los Servicios, Aprobado en la XXX Sesión Ordinaria de la Asamblea General de la ANUIES. 115 5. Poder Ejecutivo Federal, Plan Nacional de Desarrollo 2007-2012, objetivo 11, estrategia 14.2. 6. Pons, J. de P., R. García Pérez, R. Barragán Sánchez y O. Buzón García, Análisis de páginas Web elaboradas por docentes de tecnología educativa: una aproximación descriptiva de sus conceptos socioculturales, Universidad de Sevilla, España. 7. República de Colombia, Ministerio de la Protección Social, Informática siglo XXI, documento de especificación de requerimientos no funcionales del proyecto de Mejoramiento de Procesos, Análisis y Diseño del Sistema de Información para la Vigilancia de Eventos en Salud Pública en la Fase 1: Subsistema Básico General y Subsistema de Vigilancia en Salud Pública. 8. Zapata Ros, M., ‚Brecha digital y educación a distancia a través de redes. Funcionalidades y estrategias pedagógicas para el e-learning‛, Anales de Documentación, núm. 8, 2005, pp. 247-274. 9. Herrera, J. y Lizka J., ‚Ingeniería de requerimientos, ingeniería de software‛, 2003. 10. Ferré Grau, X. y M. I. Sánchez Segura, Desarrollo orientado a objetos con UML, Facultad de Informática-UPM. 11. Piattini Velthuis, M. y F. García Rubio, Calidad en el desarrollo y mantenimiento del software, Alfaomega, México, 2003. 12. IEEE-SA Standards Board, IEEE Recommend Practice for Software Requirements Specifications, IEEE (estándar 830), 1998 116 Actualización de Bases de Datos DBF a MySQL Abraham Briseño Cerón, Vanessa Guadalupe Félix Aviña, Rogelio Alfonso Noris Covarrubias Resumen. Con el uso de Internet, las empresas están invirtiendo en la actualización de sus aplicaciones. El proceso de modernizar los sistemas requiere del análisis de las estructuras de datos actuales para la construcción de nuevos modelos de datos. El desarrollador deberá contar con una guía de los mecanismos de transferencia de información entre las estructuras de datos para mantener la integridad de los sistemas. En este trabajo se propone una metodología para actualizar bases de datos que estén en formato DBF transfiriéndolas al sistema manejador de base de datos MySQL, mediante una herramienta de migración de datos elaborada en lenguajes XML y PHP. Palabras clave: actualización de sistemas, bases de datos, migración de datos. Sumario: 1 Introducción 2 Estado del arte 3 Metodología 3.1 Análisis de sistemas 3.2 Modelado y transformación 3.3 Estructuras y comparadores 3.4 Extractores e inserción 3.5 Pruebas y revisión 4 Conclusiones y trabajo futuro. 1 Introducción Las empresas, siguiendo un proceso natural de expansión de su mercado, tienen necesidad de compartir su información con los usuarios o clientes. Para realizar esta tarea, optan por desarrollar sistemas nuevos o actualizar sus aplicaciones vigentes. Aproximadamente 80% de los gastos totales en el software de una empresa corresponden a la etapa de mantenimiento; 1 en términos económicos, este porcentaje equivale a los gastos de adquisición de un sistema nuevo, o bien, a la actualización del ya existente. Si la empresa requiere una modernización de sus sistemas, debe contemplar el gasto en software, hardware y en la capacitación tecnológica de los usuarios. En una actualización, así como en el desarrollo de un sistema nuevo, lo más importante es proteger la integridad de la información; sin embargo, los sistemas vigentes almacenan la información sin prever las ventajas que se obtendrían si se le da un formato que permita su uso más allá de la consulta simple de las bases de datos. El traslado de información, de una 117 estructura de base de datos a otra, es sumamente delicado, debido a la necesidad de asegurar la integridad de los datos antes, durante y después de la transferencia. Asimismo, es recomendable utilizar una metodología clara para la actualización de las bases de datos, facilitando, con este proceso, las consultas posteriores, el manejo de la totalidad de los datos, la organización de su almacenamiento, una identificación clara de los campos mediante los nombres asignados al contenido, el uso de la normalización de datos y el establecimiento de los niveles de concurrencia. Este proceso de actualización de datos llevará a los desarrolladores a preguntarse cómo migrarlos. La operación es riesgosa porque mezcla diferentes formatos, estructuras y parámetros y puede provocar retrasos prolongados, costos altos y hasta pérdidas de información, inclusive. Lo anterior depende de la herramienta que se seleccione, por ejemplo, la adquisición de algún software o el desarrollo de una utilería de migración a la medida. El presente trabajo se enfoca en la actualización de bases de datos en formato DBF para su uso en el gestor MySQL, mediante una metodología en la cual se elaboró una herramienta y se utilizaron lenguajes como XML (Extensible Markup Language) y PHP, lo que dio como resultado un motor de migración denominado DB-MY. 2 Estado del arte La actualización de los datos es un proceso ligado a las bases de datos, aplicaciones o sistemas de información, por lo tanto, la conservación de la información existente es primordial porque ésta suele tener un valor histórico para sus propietarios, o bien, para las organizaciones que la manejan. 2 De ahí proviene el interés en el desarrollo de metodologías y herramientas diversas para llevar a cabo transferencias de datos a otros ambientes. Los métodos que se utilizan pueden ser directos o indirectos; los primeros operan de la siguiente manera: abren los archivos DBF o MDB, se conectan a la base de datos MySQL y transfieren sus contenidos a través de esa conexión con la misma estructura de fila y columna en las tablas origen y destino. Los segundos crean uno o más archivos temporales, los cuales posteriormente generarán las tablas de la base de datos, o bien, insertarán los registros conservando la misma estructura. 3 Existen, además, los generadores automáticos de planes de migración de datos, los cuales funcionan a partir de la información disponible en los modelos producidos con las herramientas CASE. Estas herramientas trabajan por comparación —entre los esquemas que definen el sistema original y los del sistema evolucionado, el cual admite los cambios—, y así es posible producir de manera automática planes de migración de datos cuya ejecución migre y transforme la información almacenada desde la base de datos inicial hasta la final. 4 En cuanto a las herramientas que se utilizan para llevar a cabo la migración de datos, se tienen 118 las siguentes: dbf2mysql, Ispirer SQLWays, Embarcadero DT/Studio, DBF-toMySQL, DBF Converter, todas las cuales son programas ágiles de conversión de datos; sin embargo, en algunos casos no soportan un número amplio de registros; en otros, el tiempo de migración es demasiado y provoca la pérdida de datos, además de que la transferencia de los datos se realiza sin normalizarlos o distribuirlos, como se observa en el cuadro 1, donde se comparan estas herramientas. Cuadro 1. Comparación de herramientas de migración DBF a MySQL Este proyecto se basa en la necesidad de actualizar los datos que se encuentran en formato DBF para su uso en un operador de datos que facilite el trabajo con ellos en la Web, como lo hace el gestor MySQL. Para llevarlo a cabo, los recursos económicos de la empresa deben tomarse en cuenta, pues en ocasiones es preferible el desarrollo de herramientas a la medida, con tendencia al uso de software libre, lo que disminuye el costo de las licencias. Se recomienda que el programador cuente con un plan o metodología de trabajo para la migración de datos, con la finalidad de garantizar la integridad de la información. 3 Metodología Para actualizar las bases de datos, deben establecerse primero los requerimientos de información que se manejarán en el nuevo sistema y la relación de los datos con el antiguo esquema. Es importante conocer al dueño o los dueños de la información, así como los criterios de depuración que se aplicarán a los datos seleccionados, asegurando de esta manera una óptima calidad de migración. 5 Si se establece un buen esquema de trabajo de actualización, se facilitará el traspaso de datos entre estructuras diversas. En la figura 1 se observan las etapas de este propuesta de metodología para la actualización de datos, de DBF a MySQL: 119 Fig. 1. Etapas de la actualización de una base de datos. Este modelo se pondrá en práctica en el departamento de estadística de la Secretaría de Educación y Cultura durante la actualización de algunos de sus sistemas —los cuales están elaborados en DBase—, debido a que la ley de transparencia de la información los obliga a contar con un portal donde se publiquen las acciones en materia de información educativa y estadística de la región. 3.1 Análisis de sistemas En esta etapa se contemplan tanto la definición de los datos como los requerimientos del nuevo sistema. Para comenzar, se hace una inspección interna de las bases de datos existentes con el objetivo de diseñar el modelo de datos correspondiente. Es posible que no se cuente con información previa sobre el repositorio de datos, por lo que se tendrá que hacer una propuesta. Con este primer modelo, y atendiendo a las necesidades de información, se construirá el nuevo modelo de base de datos. 3.2 Modelado y transformación El resultado del análisis es el modelo de datos. Éste sirve como base para el modelo nuevo —y en caso de ser necesario, se mejora, por ejemplo, normalizando los datos. Esta variable es la referencia que se usa en el modelo de datos, lo que resulta muy complejo para el administrador de una base de datos como ésta. En este caso, se llevó a cabo una transformación del modelo, pues éste 120 no estaba validado. Se aplicaron entonces las tres primeras formas normales y el resultado fue un nuevo modelo relacional de datos. Las tres primeras formas normales son las siguientes: Primera forma normal: una relación se encuentra en 1FN si y solo si todos sus renglones columna son atómicos. Segunda forma normal: se encuentra en 2FN si los atributos no primos dependen de una la llave primaria. Tercera forma normal: está en 3FN si está en 2FN y todos los atributos no primos no dependen transitivamente de la llave primaria. Como parte de la metodología, se diseñó una herramienta de migración con el siguiente modelo, el cual consta de tres etapas, como se muestra en la figura 2. Fig. 2. Esquema para elaborar herramienta de migración. Las tres etapas del modelo de esta herramienta se describen de esta manera: Primera etapa: se lleva a cabo la lectura de las estructuras de datos. Segunda etapa: se hace una comparación entre estructuras y se define un mecanismo de control para la migración. Tercera etapa: contando con el mecanismo de control, se traspasa la información a la nueva estructura de datos. 3.3 Estructuras y comparadores Con el apoyo de los diccionarios de datos, y mediante la elaboración de reglas de transformación, se construyen las estructuras tanto del modelo anterior como del nuevo. Esto forma parte de la primera etapa de la migración. El comparador de campos o mapeo entre las fuentes de origen y destino es necesario. Este paso es indispensable para que la información se coloque en su cuadro o base de datos 121 correspondiente y se mantenga la relación de datos que permite asegurar la integridad de la información. Para esto, en lenguaje XML, se elaboraron archivos con las estructuras de origen y destino, así como los metadatos, los cuales describen cómo se comportan los datos, de tal manera que, al cargar un DBF, se haga una inspección por filas. Este mapeo servirá para ir generando las estructuras pertinentes para la inserción y revisión por columnas en la comparación de estructuras. La información de definición de datos se envía al módulo denominado ‚comparador‛, para saber en qué sección del repositorio nuevo se depositarán los datos. El llamado de la comparación se hace invocando los dos archivos de las estructuras, como se muestra en el siguiente código: <?xml version="1.0" standalone="no"?> <files> <file dbf=’miarchivo.dbf’ xml=’miarchivo.xml’/> </files> Dentro de cada XML se tiene la información correspondiente a cada DBF, además de su correspondiente en la base de datos nueva, los metadatos que describen cada archivo DBF —y que contienen el nombre del cuadro del repositorio nuevo y el identificador del campo—, así como los datos manejados en las variables dbfi y dbff, los cuales servirán para hacer la comparación semántica del campo y validar que el tipo de dato corresponda, como puede verse en el siguiente ejemplo de código: <?xml version="1.0" standalone="no"?> <database name=’nombre_base_datos’ server=’servidor’ user=’usuario_conexión’ pass=’password’> <general> <table name=’nombre_tabla’> <campo name=’nombre_campo’ dbfi=’variable_dbf’ dbff=’variable_mys’/> </table> </general> </database> Después de la comparación de estructuras vendrá el proceso de lectura y escritura de datos. 3.4 Extractores e inserción La construcción de los métodos de lectura de información de las fuentes de datos se realiza y éstos se vinculan con los módulos de estructuras y comparación. Este último módulo servirá de vínculo en el proceso de inserción, donde se tendrán los métodos de escritura y validación del formato para el nuevo sistema operador 122 de base de datos. Este proceso se realiza mediante clases implementadas en PHP, que forman el core del motor DB-MY. El funcionamiento será el siguiente: una vez que se identifica el nombre del archivo DBF y se cuenta con el XML que tiene la estructura de origen y destino, se carga en la memoria, por medio del mapeo, la ruta del archivo, el cual habrá de recorrerse de manera secuencial para ir tomando las filas y colocándolas en un ciclo finito, a fin de realizar la lectura y escritura por medio de los comandos de SQL. Este paso se realizará con la construcción de funciones desarrolladas en las clases del motor y con la manipulación de la clase XMLCore (xmlcore.php), la cual va acomodando los datos al leer los archivos DBF e indica cómo éstos se deben acoplar. Además, se ejecuta una clase denominada ‚Conversor‛ (conversor.php) para que se encargue de coordinar el trabajo de lectura y controle la inserción de datos. Con este core, todo el proceso de lectura y escritura entre la estructuras quedará hecho. Cabe señalar que los datos se migran a MySQL, pero el core puede hacerlo hacia cualquier otro sistema operador de datos con características similares a las de MySQL. Una observación: si al establecer una metodología como ésta no se cuenta con la posibilidad de desarrollar una herramienta para la migración de datos durante la actualización, se puede utilizar alguna de las ya existentes, de acuerdo con el problema. 3.5 Pruebas y revisión En esta etapa se realizarán evaluaciones de la migración de datos. Primero se simularán cargas de cuadros de muestra, las cuales servirán para identificar los inconvenientes que podrían presentar las cargas reales. Esto permitirá hacer las modificaciones necesarias en el motor o en los archivos de estructura de origen y destino. Después se empezarán a trasladar cuadros pequeños, verificando si los datos son correctos. Si es así, entonces, por último, se realizará la migración restante del repositorio antiguo al nuevo y se proseguirá con la revisión de resultados. En ocasiones, será necesario diseñar de nuevo algunas funciones de lectura o de escritura, si es que están provocando pérdidas de información. Para detectar estas fallas, es importante hacer una revisión a detalle antes de dejar trabajando por sí solo al motor. Las reglas de control para determinar dónde podría estar el error son indispensables para hacer una herramienta estable, así el motor de migración coordinará todo el proceso de transacción y, por ejemplo, si se presenta algún error, ejecutará una operación de tipo rollback y omitirá lo actualizado. Por último, se realizaron pruebas con datos reales y se obtuvo que al pasar un archivo DBF pequeño, de 34 registros, la migración tarda de 2 a 3 segundos. Con un DBF de estructura compleja, de 13 816 registros, tarda de 10 a 15 minutos. Esto es relativamente rápido si se lo compara con la cantidad de información a transferir o con las veces que se debe repetir un proceso 123 manualmente. Además, se puede realizar desde cualquier máquina conectada a Internet. Esta herramienta es genérica, de alguna manera, puesto que se la podría adaptar fácilmente a cualquier otra tarea de migración de datos; es flexible y expandible para soportar otros gestores de base de datos y para incrementar el rendimiento de las actividades de traspaso de datos. En la figura 3 se muestra la interfaz de migración de datos datos y los controles visuales para verificar el estado de este proceso. Fig. 3. Interfaz para migrar bases de datos DBF a MySQL. Una vez concluidos la metodología y el desarrollo de esta herramienta, se tienen los datos en una plataforma de gestión de datos diferente y lista para generar la actualización de software o de las aplicaciones necesarias. 4 Conclusiones Esta metodología proporciona los pasos para llevar a cabo la transferencia de datos entre las estructuras DBF y MySQL. Se apoya en el desarrollo de una herramienta hecha a la medida para garantizar la actualización de los datos, debido a que las existentes en el mercado no servían en las condiciones específicas de este problema. La renovación de las estructuras de bases de datos incide en las necesidades globales de información. Para realizar esta tarea, el análisis es fundamental porque de esta manera se conocen las estructuras de origen con base en las cuales se proyectarán las estructuras nuevas. Al conocer ambas estructuras se controlan mejor la definición de datos, la lectura y el paso de la información a través de las herramientas de migración. Los programadores pueden optar por el desarrollo de herramientas de migración o por la utilización de alguna ya existente. Una buena metodología garantizará el éxito de la actualización de la información. Este trabajo se llevó a cabo para actualizar sistemas de información estadística que estaban desarrollados en DBase, mediante cuatro pasos básicos: la lectura de las estructuras, la comparación para 124 indicar el origen y el destino, la escritura de datos y las estructuras de control de migración. Con este procedimiento, se hizo la actualización de información entre dos sistemas de operación de datos, se desarrolló una herramienta denominada ‚DB-MY‛ y se utilizaron lenguajes como XML y PHP. Este proyecto permitió actualizar en poco tiempo todos los registros estatales de educación en cualquier nivel, de manera eficiente y automática. Esta actualización, ya consolidada, forma parte de las utilerías del Sistema de Información Estadística y Educativa de la SEPyC. En el futuro se continuará desarrollando esta herramienta de migración, tomando en cuenta la compatibilidad con otras extensiones de archivos de datos, así como con otros sistemas operadores, de tal forma que se su utilización se generalice entre los diversos gestores de datos. Referencias 1. Ramos, I. y J. Silva, ‚Un generador de planes de migración‛, Taller de Evolución, VI Jornadas de Ingeniería del Software y Bases de Datos, Almagro (Ciudad Real), noviembre de 2001. 2. Talend, ‚Open Data Solutions‛, http://www.talend.com/index.php#. 3. Llarens, Jorge, ‚Migraciones.Mygnet‛, http://www.mygnet.net/manuales/mysql/manejo_de_base_datos. 4. Carsí, J. A., I. Ramos, J. Silva, J. Pérez y V. Anaya, Un generador automático de planes de migración de datos, Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia. 5. Data Migration Testing Methodology, http://www.docstoc.com/docs/document-preview.aspx?doc_id=287735. 125 126 Proposición de un Modelo para la Acentuación Automática de Palabras Ambiguas del Español, utilizando Etiquetado de Texto Raymundo Montiel, Blanca E. Pedroza, María Guadalupe Medina, Carlos Pérez Resumen. La acentuación de palabras cuando se escribe un texto en español es un problema de ambigüedad, debido a que muchas palabras llevan acento o no dependiendo del contexto de la frase. El problema de la ambigüedad está relacionado con la asignación de etiquetas o categorías gramaticales a las palabras dentro de una frase, es decir, cuando se indica si se trata de un verbo, un sustantivo, etcétera. En el presente artículo se propone un modelo que ayuda a determinar en forma automática si una palabra con acento diacrítico debe llevar o no acento ortográfico, con base en la asignación de etiquetas y mediante la aplicación de métodos híbridos —algoritmos supervisado y no supervisado. Posteriormente, el método se aplica en el diseño de un programa de cómputo cuya función es de apoyo en la enseñanza de las reglas de acentuación y con el cual se realiza la acentuación automática de palabras ambiguas. Este método podría ser una herramienta en un procesador de palabras. Palabras clave: desambiguación del sentido de la palabra (DSA), Keywords: word sense disambiguation, accent restoration, part of speech tagger. Sumario: 1 Introducción 2 Solución 3 Resultados 4 Conclusiones Referencias 1 Introducción En computación, una de las tareas más difíciles —y que ha suscitado mucho interés en el ámbito del procesamiento del lenguaje natural (PLN)— se produce cuando una palabra tiene varios sentidos o significados. Este fenómeno lingüístico se conoce como ‚polisemia‛ y a él se le asocia lo que en el procesamiento del lenguaje natural se conoce como desambiguación del sentido de la palabra (DSA), tarea que consiste en identificar el sentido correcto de una palabra en un contexto.4 La polisemia está muy relacionada con el problema de la asignación de categorías gramaticales, el cual consiste en decir si una palabra es 127 un verbo, un artículo, un adjetivo o un sustantivo, 3 dependiendo del significado que le corresponde en el contexto de la oración. El proceso de acentuar palabras es también un problema de ambigüedad, debido a que en el español existen muchas palabras que pueden estar acentuadas o no, dependiendo de su contexto, del tiempo de la acción en la oración, etcétera. El acento diacrítico distingue palabras formalmente idénticas, es decir, escritas con las mismas letras, pero que pertenecen a categorías gramaticales diferentes. Aunque los procesadores de texto de las grandes compañías de software poseen funciones muy sofisticadas —como, por ejemplo, un diccionario para corregir la ortografía—, tienen un límite. Estos correctores no comprenden el significado de las palabras, sino que se limitan a ir comparando cada palabra del texto con las existentes en su diccionario, de modo que si encuentra la palabra en cuestión la dará por válida si está escrita correctamente, en caso contrario la marca para indicar un error. 1 Sin embargo, cuando aparecen palabras que pueden llevar acento ortográfico o no, el procesador no las marca como errores si el usuario no les pone acento, y tampoco le indica que puede estar mal escrita. Entonces, un usuario que no conozca bien el idioma se quedaría con la idea de que la palabra está escrita correctamente. La falta de acentos en algunas palabras de las oraciones es un problema de ambigüedad. Las ambigüedades más comunes en la acentuación se dan entre las palabras con terminación ‚o‛, como en ‚completo‛ y ‚completó‛. Se trata de los tiempos presente y pretérito de los verbos que terminan en ‚ar‛. Otras ambigüedades son semánticas, como sucede con algunos sustantivos; por ejemplo, ‚secretaria‛ —persona encargada de escribir la correspondencia— y ‚secretaría‛ —sección de un organismo, institución o empresa.8 En este artículo se describirá el modelo que se usó para diseñar una herramienta informática de desambiguación semántica para el idioma español, cuya utilidad es la acentuación correcta de las palabras en los textos escritos, basándose en el etiquetado de las oraciones. Para llevar a cabo el modelo se aplicó un método híbrido, esto es, mediante un algoritmo supervisado y uno no supervisado. 2 Solución El objetivo de este trabajo es crear un sistema que ayude a determinar si una palabra con acento diacrítico debe o no llevar acento ortográfico, lo cual está determinado por el contexto en el que se esté ocupando, con ayuda de las etiquetas asignadas. La primera tarea del modelo es el análisis léxico, el cual consiste en la eliminación de los acentos de las palabras de la frase de entrada, ya que para el cálculo de los 128 parámetros del modelo se requieren palabras sin acentos. Además, el analizador léxico identifica y separa los signos de puntuación de las palabras. Posteriormente, se establece si existen palabras ambiguas en la oración de entrada, y al mismo tiempo, el modelo indica la posición en la que éstas se encuentran. Esto se realiza comparando cada una de las palabras de las oraciones con las palabras cuyo acento es diacrítico, en el diccionario previamente construido. El modelo general que se propone para la solución del problema se ilustra en la figura 1. Fig. 1. Arquitectura del modelo de solución. En este método de solución se utilizan los modelos ocultos de Markov (HMM), los cuales se definen siguiendo la notación presentada por Rabiner, 9 como la una 5-tupla µ = (Q, V, π, A, B), donde: 129 1. Q es el conjunto de estados del modelo. Aunque los estados permanecen ocultos, para la mayoría de las aplicaciones prácticas se conocen a priori. En nuestro caso de etiquetado de palabras, cada etiqueta sería un estado. En general, los estados están conectados de tal modo que cualquiera de ellos se alcanza desde cualquier otro estado en un solo paso. Los estados se etiquetan como ,1, 2,<, N}, y el estado actual en el instante de tiempo t se denota como . Para el etiquetado de palabras no hablaremos de los instantes de tiempo, sino de las posiciones de cada palabra en la frase. 2. V es el conjunto de los distintos sucesos que se observan en cada uno de los estados. Cada uno de los símbolos individuales que un estado emite se denota como { }. En el etiquetado de palabras, M es el tamaño del diccionario y cada es una palabra distinta. 3. π = es la distribución de probabilidad del estado inicial. Por lo tanto, (1) 4. A = es la distribución de probabilidad de las transiciones entre estados, es decir, (2) 5. B= es la distribución de probabilidades de los sucesos observables, es decir, (3) Éste es un método estocástico que necesita parámetros previamente definidos, los cuales se calculan mediante métodos de entrenamiento supervisado y no supervisado. Para la fase del entrenamiento supervisado se utilizó un cuerpo de texto etiquetado conocido como CONLL, el cual es una colección de artículos noticiosos del año 2000 ofrecida por la Agencia de Noticias EFE. Los parámetros 130 del modelo se estiman por ‚m{xima verosimilitud‛,5 a partir de las frecuencias relativas de aparición de los eventos del texto etiquetado (véase la figura 2). Fig. 2. Entrenamiento supervisado y no supervisado. Las probabilidades de transición aij se obtienen contando las veces que se transita del estado si al estado sj y dividiendo el resultado por las veces que se transita por el estado si. (1) Las probabilidades de emisión se obtienen contando las veces que un símbolo (vk) ha sido emitido en un estado (sj) y dividiendo el resultado por las veces que se ha transitado por ese estado: (2) Una vez que tenemos los parámetros iníciales de µ, se aplica el algoritmo BaumWelch,6 lo que incrementa la probabilidad de las transiciones entre los estados y sus símbolos, y se mejora en consecuencia la probabilidad de la secuencia de observaciones dada. En el modelo de solución (véase la figura 1) se maneja una fase de etiquetado que utiliza el algoritmo de Viterbi, con algunas modificaciones, ya que no se consideran todos los estados posibles, es decir, todas las etiquetas del juego de etiquetas utilizado, sino sólo las etiquetas candidatas asignadas a cada una de las palabras ambiguas. 131 Para ejemplificar el funcionamiento del modelo, consideremos la oración ‚El jugo frío est{ sobre la mesa‛, en la cual existen varias palabras ambiguas. Adem{s, como existen palabras ambiguas al principio de la oración, se recorre t palabras hasta encontrar una palabra no ambigua, en este caso, ‚frío‛. Una vez encontrada la primera palabra no ambigua, se le asigna la etiqueta más probable. Después de esto, se asigna la etiqueta más probable a t-1 a partir de la etiqueta (t), ya conocida (véase la figura 3), hasta llegar a t=1. Una vez obtenidas las primeras etiquetas de la oración, el cálculo para obtener las etiquetas de las palabras ambiguas se realiza sólo sobre las etiquetas asignadas manualmente a estas palabras. En el cuadro 1 se muestra la oración junto con las etiquetas asignadas. Fig. 3. Asignación de etiquetas. Cuadro 1. Resultado del etiquetado El jugo frío está sobre la det_art sust adj_cal vbo_aux prep mesa det_art sust Después de haber obtenido las etiquetas de cada una de las palabras de la oración, se determina si las palabras ambiguas deberán o no llevar acento, con base en nuestro diccionario de palabras ambiguas etiquetadas (véase el cuadro 2). 132 Cuadro 2. Ejemplo de palabras ambiguas con sus etiquetas PALABRA AMBIGUA EL ESTÁ JUGO SOBRE ETIQUETA PALABRA det_art pron_per det_dem vbo_aux sust vbo_ind sust prep vbo_sub vbo_ind el él esta está jugo jugó sobre sobre sobre sobré Por último, se hace una comparación de las palabras de la oración, con la etiqueta asignada, y se determina si la palabra debe o no llevar acento. El resultado de nuestro ejemplo se muestra en el cuadro 3. Cuadro 3. Resultado de ejemplo El jugo frío está sobre la mesa Uno de los problemas que no se resolvió con la asignación de categorías gramaticales fue el de una palabra con acento diacrítico etiquetada con la misma categoría gramatical, como se muestra en el cuadro 4. Cuadro 4. Palabras con terminación ‚o‛ Palabra Etiqueta abrazo sust abrazo vbo_ind abrazó vbo_ind Las dos últimas palabras corresponden a la conjugación en modo indicativo del verbo ‚abrazar‛; sin embargo, la primera corresponde al tiempo presente en primera persona y la segunda al tiempo pasado en tercera persona. Para solucionar este problema se creó un conjunto de reglas utilizando ‚listas de decisiones‛ similares a las utilizadas por Yarowsky.2 En el cuadro 5 se presenta un extracto de las reglas obtenidas, ordenadas de acuerdo con su aparición en el corpus de entrenamiento, en el cual también se indica el orden en que se han de ir verificando cada una de las reglas cuando se obtengan ejemplos nuevos para identificar el patrón que les corresponde. 133 Cuadro 5. Extracto del conjunto de reglas % Regla 19.63 YO -o » Clasificación -o 19 SE -o » -ó 16.6 -o DE » -o 14.6 -o det_art » -ó 10.83 sust -o » -ó 10.6 -o CON » -o 9.09 adv -o » -o 8.33 -o det_ind » -ó Además de acentuar las palabras ambiguas, se trata de acentuar las palabras que siempre llevan acento, es decir, aquellas palabras que tienen acento, pero no diacrítico. Para esto, se hizo una base de datos de palabras con acento. 3 Resultados Para la evaluación del modelo, se reunió una colección de 63 artículos de distintos contextos —deportes, ciencia, salud, etcétera—, obtenidos del periódico digital El Universal. Los artículos fueron evaluados por el modelo a partir de frases completas, en el cuadro 6 se muestra un resumen de los resultado obtenidos. Cuadro 6. Resumen de los resultados obtenidos 1) Número del artículo. 2) Palabras por artículo. 3) Con acento diacrítico. 4) Con acento diacrítico, sin acento. 5) Con acento diacrítico, sin acentuar. 6) Con acento diacrítico, con acento. 7) Con acento diacrítico, acentuadas. 8) Con acento no diacrítico. 9) Con acento no diacrítico, acentuadas. 134 Con estos datos nos damos cuenta de que: A continuación, los datos que aparecen en el cuadro 7 son los resultados obtenidos utilizando las métricas de efectividad de las tasas de recuperación (r), precisión (p), error (e), exactitud (a), y FB. En la primera parte del cuadro 3 se muestran los resultados obtenidos a partir de las palabras acentuadas por nuestro modelo, donde la ‚precisión‛ —total de palabras acentuadas entre el número total de palabras con acento diacrítico— tiene como resultado 84.11%. Uno de los problemas que se han identificado est{ en el etiquetado de la palabra ‚el‛, pues siempre que el sistema encuentra esta palabra al comienzo de la frase, le asigna la etiqueta ‚pronombre personal‛ y la acentúa; sin embargo, también puede tomar la etiqueta de ‚artículo‛, en cuyo caso no lleva acento. Cuadro 7. Resultados Con base en palabras Con base en palabras acentuadas no acentuadas r = .7153 p = .8411 f-B = .7731 e = 0.0549 a = .945 r = .9796 p = .9580 f-B = .9687 Pero, como ya se ha mencionado, este modelo también determina cuándo una palabra con acento diacrítico no debe llevar acento ortográfico. En la segunda parte del cuadro 7 se muestran los resultados obtenidos a partir de las palabras que no deben llevar acento ortogr{fico. En este caso, la ‚precisión‛ —total de palabras que el modelo decide no acentuar, entre el número total de palabras con acento diacrítico— tiene como resultado 95.8%. Sin embargo, el resultado de ‚exactitud‛ —total de decisiones correctas tomadas por el modelo— es de 94.5%, con un error de 5.49%. Este modelo se programó en Java y se está trabajando en la creación de un programa de cómputo que sirva como auxiliar en la enseñanza de las reglas de acentuación y para acentuar palabras ambiguas que por lo regular los editores de texto no acentúan. En la figura 4 se muestran algunas de las pantallas del sistema. 135 Fig. 4. Pantallas del sistema para la acentuación de textos en español. 4 Conclusiones El etiquetado de palabras es una técnica que ayuda a identificar la ambigüedad en la acentuación de palabras de un texto determinado y a producir herramientas computacionales que revisen y corrijan la acentuación correcta de textos en español, ya sea para hacer más fácil la escritura de los documentos o para utilizarlas en la enseñanza de las reglas gramaticales del español. Aunque el problema de la ambigüedad en la acentuación de las palabras no es sencillo de resolver, aún se puede seguir analizando la gramática del idioma para encontrar patrones de comportamiento en las palabras, de acuerdo con las características del contexto en el cual se encuentren las oraciones. Además, las teorías y algoritmos ya existentes para el manejo de las gramáticas son factibles de aplicación, así como lo son las teorías del área de los sistemas inteligentes, como el aprendizaje automático. Por lo tanto, todavía hay mucho que investigar en este tema, si se quieren producir sistemas de cómputo que ayuden al usuario a corregir sus errores de acentuación y otros errores ortográficos. Se propone que en el futuro se trabaje en lo siguiente: 1) El aumento de las palabras con acento diacrítico, las palabras con acento no diacrítico y en las categorías gramaticales para disminuir la ambigüedad en el etiquetado. 2) La creación de un módulo, dentro del modelo, para el entrenamiento de los casos no resueltos. 3) El diseño de la interfaz para la enseñanza de las reglas gramaticales, y en especial, del uso de las palabras con acento diacrítico. 4) La aplicación del algoritmo de desambiguación semántica, para mejorar resultados. 5) El análisis sintáctico previo para reducir ambigüedad en la frase. 6) La creación de un sistema global de apoyo para la enseñanza o reafirmación de las reglas ortográficas, particularmente, de la acentuación. 7) La 136 identificación de un patrón de ambigüedad para los casos similares al de la palabra ‚el‛. Referencias 1. Pascual, F., Domine Microsoft© Office XP Profesional, versión 2002, edición especial, Alfaomega, México, 2002. 2. Yarowsky, D., ‚Decision List for Lexical Ambiguity Resolution: Application to Accent Restoration in Spanish and French‛, en Proceeding of the XXXII Annual Meeting of the Association for Computational Linguistics, 1994, pp. 88-95. 3. Perea, J., Etiquetado de textos y su aplicación a la traducción, University of Granada (investigación inédita), 2005. 4. Stevenson, M. y Y. Wilks, ‚Combining Independent Knowledge Sources for Word Sense Disambiguation‛, en R. Mitkov (ed.), Recent Advances in Natural Language Processing, John Benjamins Publisher, 2000. 5. Dempster A., N. Laird et al., ‚Maximum Likelihood from Incomplete Data Via the EM Algorithm‛, Journal of Royal Statistical Society (Series B, Metodological), vol. 39, núm. 1, 1977, pp. 1-38. 6. Baum, L., ‚Statistical Inference for Probabilistic Functions Finite State Markov Chains‛, Annual Mathematic Statistical, vol. 37, 1966, pp. 1554-1563. 7. Yarowsky, D., ‚A Comparison of Corpus-Based Techniques for Restoring Accents in Spanish and French Text‛, Proceedings of the II Annual Wordshop on Very Large Text Corpora, Kyoto, 1994 (en prensa). 8. Real Academia Española, Banco de datos (CREA). Corpus de referencia del español actual, en Internet (http://www.rae.es), página consultada el 29 de abril de 2009. 9. Rabiner, L. R., ‚A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition‛, IEEE, vol. 77, núm. 2, 1989, pp. 257-286. 10. Wagacha, P., G. De Pauw et al., ‚A Grapheme-Based Approach for Accent Restoration in Gikuyu‛, en Proceedings of the V International Conference on Language Resources and Evaluation, 2006, pp. 1937-1940. 11. Bobiceva, V., ‚O altã metodã de restabilire a semnelor diacritice‛, en I. Pistol, D. Cristea y D. Tufiş (eds.), Resurse Lingvistice şi Instrumente pentru Prelucrarea Limbii Române, 2008, pp. 179-188. 12. De Pauw, G., P. W. Wagacha y De Schryver, G. M., ‚Automatic Diacritic Restoration for Resource-Scarce Language‛, en V. Matousek y P. Mautner (eds.), TSD 2007, LNAI 4629, 2007, pp. 170-179. 137 138 Ladrillo rojo: aplicación de redes de Petri a un proceso milenario Carlos Marín, Obed Cortés, Rafael Rojas Resumen. Durante mucho tiempo, la zona productora de ladrillo rojo en el estado de Puebla se ha visto marcada por un problema que involucra pobreza y contaminación relacionadas de tal forma que pocos han intentado abordar su solución. En este artículo, la Universidad Politécnica de Puebla hace una propuesta de solución de uno de los puntos ese problema. El objetivo del artículo es ofrecer una visión general de la industria ladrillera en la región de Cholula, Puebla, destacando las áreas de oportunidad para la automatización del proceso mediante técnicas avanzadas de optimización. En primer lugar, se hace una introducción general sobre cómo ha sido este proceso a lo largo de la historia para posteriormente tratar la automatización por medio de redes de Petri. Al final, se muestran las conclusiones respecto al ejemplo de su aplicación a una de las partes del proceso, con el propósito de evolucionar a otro que se adapte a las demandas actuales del mercado. Palabras clave: ladrillo rojo, proceso, automatización, redes de Petri. 1 Introducción En las antiguas Mesopotamia y Palestina, lugares donde apenas se disponía de madera y piedras, desde hace unos 9 000 años el ladrillo ha constituido el principal material de construcción. En lo que respecta a nuestro continente, las civilizaciones indígenas prehispánicas lo utilizaron, por ejemplo, en la construcción de las pirámides Olmecas y Mayas. En la actualidad, un ladrillo es una pieza de cerámica ortoédrica elaborada con arcillas compuestas principalmente de sílice, alúmina, agua y cantidades variables de óxidos de hierro y otros materiales alcalinos, como los óxidos de calcio y los óxidos de magnesio. El ladrillo rojo se distingue de su predecesor, el adobe, porque sufre cambios físico-químicos al someterse a las altas temperaturas de cocción. Sin embargo, justo esta parte del proceso y su evolución son lo que hoy en día hace polémica su fabricación. 139 2 Generalidades 2.1 Situación actual Una de las actividades distintivas de la región de Cholula, Puebla, es la fabricación de ladrillo rojo y sus derivados. Aquí se concentra la mayor cantidad de productores de ladrillo rojo del país. En comunidades como San Diego Cuachayotla, San Cristóbal Tepontla, San Mateo Cuanalá, Santa María Coronango y Santa María Zacatepec, por mencionar sólo algunas, ubicadas en los municipios de San Pedro Cholula, San Andrés Cholula, Juan C. Bonilla y Coronango, 8 000 familias se dedican a la producción de este ladrillo. Si bien es cierto que este proceso productivo ha tenido avances notables desde la utilización de combustible en lugar de leña, prácticamente se ha mantenido intacto desde el año 200 d. C. Este hecho simple tiene repercusiones importantes en la sociedad, la economía y la ecología de la región. En la actualidad, una familia productora de ladrillo que manufactura a mano 1 100 piezas diarias, obtiene una ganancia neta de 88 pesos —0.08 pesos por pieza—, lo cual pone en riesgo la integridad del núcleo familiar. Por otra parte, de acuerdo con la red de monitoreo ambiental (REMA) del gobierno del estado de Puebla, la región de 3 kilómetros cuadrados donde se concentran 322 hornos de ladrillo tradicionales, produce anualmente 808 toneladas de contaminantes —partículas de monóxido de carbono, óxidos de nitrógeno, bióxido de azufre, bifenilos, hidrocarburos aromáticos policíclicos, policlorados y dioxinas—, lo que repercute en la calidad del aire. Fig. 1. Combustible tilizado para el proceso de cocción. Los barriles contienen combustóleo (fuel oil), uno de los residuos del proceso de la destilación fraccionada del petróleo. 140 Fig. 2. Vapores emanados por uno de los hornos de producción de ladrillo rojo en la región de Cholula, Puebla. No existe acondicionamiento alguno para su deposición a la atmósfera de los vapores. En un escenario como éste, la tecnificación del proceso requiere de la consideración de los aspectos sociales, económicos y ecológicos, todos ellos como variables independientes una de otra. Cabe destacar que el aspecto social ha sido el menos abordado y es, sin embargo, el más importante, pues por ello muchos proyectos no han tenido consecución. 2.2 Descripción del proceso El proceso de fabricación tiene varias etapas: mezclado, moldeado, secado y cocido. Primero, se mezclan tres tipos de arcilla y agua. La variación de las proporciones de los materiales es muy particular, pues se trata de un proceso artesanal, basado en ‚recetas‛ que han pasado de generación en generación a lo largo de los años. Las familias con menos recursos realizan esta parte del proceso de manera manual, amasando la mezcla con palos, palas o rastrillos. Los mejor organizados hacen uso del tractor agrícola, equipado con una herramienta llamada niveladora y aprovechando las hendiduras propias del dibujo de las llantas. El mezclado consiste en pasar repetidamente con el tractor sobre el material a mezclar. En cualquiera de los casos, la calidad del mezclado varía de semana a semana, lo que dificulta la obtención de un producto de alta calidad. 141 Fig. 3. Tipos y condición de las arcillas que posteriormente se convertirán en ladrillos y algunos otros productos derivados. Fig. 4. Mezcla realizada con la ayuda de un tractor. Nótese la cantidad de mezcla utilizada para llenar un horno con 4 000 ladrillos y téngase en cuenta el área de trabajo requerida. Una vez hecha la mezcla, según las características determinadas por el miembro de la familia con más experiencia, el moldeado debe llevarse a cabo o de lo contrario la mezcla comienza a deshidratarse. Con una matriz de 3 x 2, o como le llaman los locales, una ‚gavera‛, se le da forma a los ladrillos. Este bastidor se coloca a ras de tierra y se va rellenando por la parte superior con las manos y los dedos. El objetivo es hacer una semicompactación y eliminar el aire del interior del molde antes de quitar el material sobrante. El producto terminado va consumiendo tanto la materia prima como a los mismos productores, literalmente, pues al secarse la mezcla sobre la piel provoca heridas que pueden llegar a convertirse en agrietamientos severos. 142 Fig. 5. Ése es el molde o ‚gavera‛ para producir ladrillo. Fig. 6. Aquí se observa a un productor realizando el moldeo a mano. Una vez concluido el moldeado, los ladrillos se dejan secar a la intemperie, lo suficiente como para ser manipulados. El secado limita los periodos de producción porque tarda entre 15 y 30 días, dependiendo de las condiciones meteorológicas imperantes. Cuando la mezcla, ahora en forma de ladrillos, ha perdido la suficiente humedad, se procede a la colocación de las piezas en el interior del horno. Esta estructura tiene capacidad para cocer de una vez hasta 40 000 piezas. El tiempo de cocción varía según la cantidad de ladrillos a cocer y la temperatura lograda por la quema del combustóleo, la cual oscila entre los 800 y 110 grados centígrados; de manera que para obtener todos los ladrillos ya cocidos toma entre 30 y 48 horas. Si bien el empleo de combustóleo sustituyó la quema de árboles y leña, los contaminantes provenientes de su mala combustión suman más de 10 837 toneladas anuales. Diesel y gas LP también son requeridos para poner en funcionamiento la caldera; sin embargo, se prefiere el combustóleo por su bajo costo, a pesar de su baja calidad. La caldera suele colocarse y controlarse a mano. La etapa de cocción es vital para obtener un producto de mejor calidad, así como ampliar la gama de productos derivados. Al término de las 30 o 38 horas, se pasa a una fase de enfriado que dura entre 8 y 10 días, nuevamente al beneplácito de las condiciones climatológicas. 143 Fig. 7. Algunos ladrillos secándose a la intemperie. Fig. 8. Aquí se observa una caldera rudimentaria ubicada en la base de un horno para la cocción de ladrillos. Las áreas de oportunidad de cambio y mejoramiento que resultan de la descripción que acabamos de hacer son claras: las inclemencias del tiempo, las cantidades de los ingredientes, el tipo de aspersión y el reaprovechamiento del calor durante el cocimiento, por mencionar sólo algunas. Si alguno o varios de estos aspectos se mejora, la calidad de vida de cientos de productores de la región cambiará también. 3 Redes de Petri para la automatización Siendo ésta una época con gran énfasis en la competitividad y en la lucha por el acceso a los mercados, la brecha económica que se abre entre un trabajo artesanal y uno mecanizado es enorme, lo que deja fuera de la contienda a miles de pequeños productores de la región. La tendencia a la globalización se refleja en los mercados y productos, así como en la economía y otros aspectos cotidianos; sin embargo, la región de Cholula parece no haber sido notificada de esta realidad y desde hace varios siglos se ha venido menoscabando su economía. Si a 144 esto le agregamos el que los procesos industriales automáticos vienen evolucionando desde hace décadas, se obtiene un escenario poco alentador para el desarrollo de esta actividad. Pero existe la posibilidad de avanzar en este rubro si se adaptan sus instalaciones actuales con tecnologías de automatización, a fin de conseguir un sistema de producción más moderno y eficaz, y si fuese posible, incluso, sin recursos económicos excesivos. Por eso se debe tener un cuidado especial cuando se haga la adaptación, para que ésta se lleve a cabo de manera coherente y previsora, buscando no solamente la automatización del proceso, sino también una realización clara, estructurada y sistemática del objetivo, que condicione lo menos posible la adaptación de las futuras innovaciones que haya que aplicar, hecho poco frecuente en las industrias pequeña y mediana, donde reina la solución rápida del problema antes que una solución reflexiva y a futuro. Con base en lo que hemos explicado hasta aquí, se propone el uso de las redes de Petri (rdP) como una herramienta para el modelado y diseño de automatizaciones. Si bien las redes de Petri tienen un sustento teórico extenso que las avala en todos aquellos campos en los que son empleadas y la producción científica a su alrededor es amplia, en este caso, se ocuparán para investigar una de las partes del proceso de producción de ladrillo rojo, y no como objeto de la investigación. 3.1 Definiciones básicas Para ubicarnos en el contexto, una red de Petri es un grafo orientado en el que intervienen dos clases de nudos, los lugares —representados frecuentemente por circunferencias— y las transiciones —representadas por pequeños segmentos rectilíneos unidos alternativamente por arcos. Un arco une un lugar con una transición —o viceversa— pero no puede unir dos transiciones o dos lugares. Un lugar puede contener un número positivo o nulo de marcas. Una marca se representa con un punto en el interior del círculo que representa al lugar. El conjunto de marcas asociadas a cada uno de los lugares en un instante dado constituye lo que se denomina un marcado de la red de Petri. Reduciendo un sistema en un grafo, su representación se realiza mediante el conjunto de estados totales en los que tal sistema se pueda encontrar. En una rdP el estado está representado por el marcado. Como el marcado puede contener varios lugares marcados simultáneamente, el estado está definido por un conjunto de subestados —locales o parciales— del sistema. Esto es indicio de su eficiencia para la descripción de evoluciones simultáneas. Matricialmente, una rdP se representa mediante dos matrices. Sea P n (número de lugares de la red) y sea T m (número de transiciones de la red). Se denomina 145 matriz de incidencia previa a la matriz C Cij , en la que nxm cij ( pi , t j ) . Se denomina matriz de incidencia posterior a la matriz C Cij en la que nxm cij (t j , pi ) . La clasificación de las redes de Petri se realiza en tres niveles. En el nivel uno, se caracterizan por tener lugares en los que se pueden representar valores booleanos. El segundo nivel, se caracterizan por tener lugares que representan valores enteros. En el tercer nivel, se caracterizan por tener lugares que representan valores de altas prestaciones. Cabe mencionar que la utilización de los GRAFCET en rdP es más común en la automatización industrial, debido a que las rdP son más desconocidas. De hecho, los GRAFCET se pueden aplicar como un subconjunto de las rdP, lo que permite referirse a ambas herramientas como rdP, de forma genérica. 3.2 Aplicación de las redes de Petri Para aprovechar las ventajas de las rdP, su potencia y su simplicidad, junto con la simulación del proceso productivo se realiza la simulación de la rdP que define su funcionamiento, ya sea lo que se ha empleado para el desarrollo del programa autómata o una que haga el modelo de tal desarrollo. Con esto, tenemos en el proceso de monitoreo toda la información del estado del sistema; en cambio, con la visualización de la planta tan sólo tenemos información de las entradas y salidas, lo cual no es suficiente en los sistemas secuenciales. Además, así se emplean todas las posibilidades de análisis, optimización y detección de errores, ampliamente estudiadas en las rdP, para mejorar el proceso, y de una manera clara, estructurada y sistemática, para facilitar posteriores modificaciones o ampliaciones. Cuando se hace el modelo de un sistema que pudiera llegar a presentar recursos compartidos, concurrencias, autorizaciones memorizadas, sincronizaciones mutuas con evoluciones simultáneas o con desactivación de subsistemas, con las rdP es una labor muy simple, mientras que su programación directa en leguaje escalera —para un control lógico programable (PLC)— puede resultar sumamente compleja. Para modelar el proceso de producción de ladrillo rojo, se debe comenzar con la representación de cómo van a evolucionar las salidas de algunas de las partes que lo integran, en función de la secuencia de salidas deseadas, teniendo en cuenta que el estado interno evoluciona en función de las entradas. Una vez que se ha realizado el modelo, se procede a su implementación, de tal manera que frente a las respuestas del sistema y las incógnitas que le proporcione el usuario se produzcan las correspondientes órdenes al sistema para que éste evolucione 146 como se debe. La automatización suele ser secuencial; su estado interno debe identificar su comportamiento frente a las entradas a cada momento, de modo que la información del estado del sistema esté contenida en el estado interno de la automatización, o también puede recibirse del propio sistema, como parte de la respuesta. 3.3 Propuesta de automatización Como ejemplo de la utilización de las rdP, propongamos la automatización de una cinta para trasportar ladrillos crudos. Se propone la utilización de dos sensores capacitivos en los extremos de la cinta, la cual tiene que avanzar hasta que haya un ladrillo en el extremo final para que sea ingresado el siguiente paso automatizado. Para esto, primero debemos identificar tanto las entradas (sensores) como las salidas (avance) con lo cual se reconoce inmediatamente una automatización sin consigna. A partir de aquí también se ve con claridad que la capacidad máxima de nuestra cinta no es recibida en el sistema como entrada, lo que implica la generación y el almacenamiento de esta información en el estado interno de la automatización, la cual se muestra en la figura 9. ÒhuecosÓ INICIO ÒladrillosÓ AVANZAR FIN ÒesperaÓ FIN Fig. 9. Red de Petri de la cita trasportadora.1 Automatizada la cinta, se procede a la simulación del sistema —en este caso, sólo serán los sensores. Hay que tener en cuenta que las salidas del sistema se 147 activarán en función de las órdenes procedentes de la automatización y de los eventos externos que forman parte del proceso de fabricación, como, por ejemplo, los procedentes de otras máquinas, del PLC, de los actuadores. Así, para la simulación, tendremos como entrada a los ladrillos producidos, los ladrillos entregados y el avance; para las salidas, tendremos solamente los sensores de ‚inicio‛ y ‚fin‛. La rdP así generada se muestra la figura 10. ÒhuecosÓ ÒladrillosÓ INICIO NUEVO INICIO AVANZAR TIM 2 FIN TIM 2 INICIO TIM1 FIN FIN TIM 1 QUITAR LADRILLO Fig. 10. Red de Petri generada para la simulación.1 El sistema parte de que la cinta no ha sido cargada previamente con ningún ladrillo. Esta acción pertenece al evento externo ‚ladrillo nuevo‛, el cual da pie a la simulación del comportamiento del sensor ‚inicio‛. Activado éste, con un temporizador se simula el tiempo que permanece el sensor activado por el paso del ladrillo mientras la cinta se encuentra en marcha. Si en la cinta se encuentra algún ladrillo, de igual forma se controla el tiempo que tardaría el ladrillo en recorrer la cinta hasta la activación del sensor ‚fin‛. Llegado el ladrillo al final de la cinta, se retira —mediante el evento externo ‚quitar ladrillo‛. Independientemente del número de ladrillos que se encuentren sobre la cinta o del tiempo que hayan estado avanzando sin llegar hasta el final, debe observarse que siempre tardarán el mismo tiempo en recorrer la cinta desde su puesta en marcha hasta que llegue el primero. Esto no caracteriza a un modelo exacto pero, para nuestros propósitos, es lo necesario. Siguiendo con el diseño, se procede a la fusión de la automatización y la simulación en el PLC, con el fin de detectar anomalías en el funcionamiento y eliminarlas. Esto se hace relacionando las rdP para simularlas en computación, como lo muestra la figura 11, e implementarlas una vez traducidas al lenguaje del dispositivo. 148 Òhuecos 1Ó INICIO Òhuecos 2Ó Òladrillos 1Ó LUG1 LUG4 Òladrillos 2Ó ÒesperaÓ LUG7 Ò esperaÓ ÒesperaÓ INICIO NUEVO LUG2 AVANZAR LUG5 INICIO LUG8 TIM 2 FIN TIM 2 AVANZAR FIN LUG6 LUG3 INICIO LUG9 FIN ÒesperaÓ FIN TIM 1 QUITAR LADRILLO FIN Fig. 11. Implementación.1 Así, la automatización y la simulación forman un todo en el que se integran las entradas de los eventos externos de ‚ladillo nuevo‛ y ‚quitar ladrillo‛. 4 Conclusiones Cuando se hace un medelo de un sistema previo a la automatización que tendrán los dispositivos que lo integran, se toman en cuenta los aspectos más interesantes del sistema y se obvian los que no afectan el funcionamiento global, los cuales muchas veces son más complejos que aquellos que realmente nos interesan; de esta manera, se trabaja con un sistema simplificado. Con el modelo del sistema en un programa de simulación, es posible confrontarlo con el de la automatización, así se sabrá de antemano si la automatización es correcta o no, además de que se puede hacer un análisis del comportamiento, es decir, se verá cómo funcionaría idealmente la producción. Si en el futuro se utilizara un controlador lógico programable (PLC) para llevar a cabo el control en alguna de las etapas o de las partes que integran el proceso de producción, como, por ejemplo, el de una banda transportadora, la rdP permitiría traducir su comportamiento a lenguaje escalera (ladder). De esta forma, se tendría la simulación en tiempo real dentro del propio dispositivo de control; es decir, ahora, en vez de controlar la planta, se controlaría el modelo que de ella tiene introducido. Así, no sólo se comprobaría si la automatización está bien hecha, sino que también se comprobraría el dispositivo de control. El diseño de la planta debe llevarse a cabo con la participación de un grupo de profesionales —y no solamente una persona— porque la integración de conocimientos correlacionados es fundamental. El objetivo de la integración de varios profesionales obedece a que el diseño se lleve a cabo en un tiempo y 149 espacio determinados, con el menor costo posible, ofreciendo calidad y duración en lo instalado. Desde una perspectiva social, es necesario recordar que el estilo de vida y las costumbres no son iguales que hace 100 años y que esto es parte de un ciclo continuado al cual deben de adaptarse rápidamente nuestros productores. Esto supone, por lo tanto, un cambio de hábitos productivos, y en general, de hábitos de vida antes de la aplicación de cualquier automatización. Referencias 1. Jiménez, E., Técnicas de automatización avanzadas en procesos industriales, Universidad de La Rioja, España, 2001, pp. 106-108. 2. Astrom. K. J. y B. Wittenmark, Computer Contolled Systems, Prentice HallEnglewood Cliffs, Nueva Jersey, 1997. 3. Xing K. Y., B. S. Hu y H. X. Chen, ‚Deadlock Avoidance Policy for Petri-net Modeling for Flexible Manufacturing Systems with Shared Resources‛, IEEE Trans on Automatic Control, núm. 41, 1996, pp. 289-294. 4. Falkenhainer B. y K. Forbus, ‚Compositional Modeling: Finding the Right Model for the Job‛, Artificial Intelligence, núm. 51, 1991, pp. 95-143. 5. Gaspar, A., Modelling and Optimization of Single Screw Extrusion, University of Minho, Brazil, 1999. 6. Elías, X., Optimización de procesos cerámicos industriales, Universidad Pontificia Bolivariana, Medellin, 2001. 7. Departamento de Ciencias de la Computación del Centro de Investigaciones y de Estudios Avanzados del Instituto Politécnico Nacional, en Internet (http://computacion.cs.cinvestav.mx/~ameneses/pub/tesis/mtesis). 8. Facultad de Ciencias Fisicomatemáticas de la Universidad Michoacana de San Nicolás Hidalgo, en Internet (http://www.fismat.umich.mx/~crivera/tesis/node25.html). 150 Perspectivas de automatización del proceso de fabricación de ladrillo rojo en la región de Cholula, Puebla Rafael Rojas-Rodríguez, Obed Cortés-Aburto, Carlos Marín-Dávila Resumen. Las perspectivas para la automatización del proceso de fabricación de ladrillo rojo en la región de Cholula, Puebla, se discuten en el presente estudio. El proceso actual se describe paso a paso, según las etapas que lo conforman, empezando con el mezclado y terminando con el cocido. Se hace también un diagrama, considerando el promedio de las distancias y los tiempos de dos hornos ladrilleros de la región, en condiciones climatológicas favorables para la fabricación del ladrillo. Finalmente, se presentan perspectivas para la automatización del proceso, considerando una baja inversión. Palabras clave: automatización, ladrillo, arcilla, construcción, combustóleo. Sumario: 1 Introducción 2 Descripción del proceso actual 2.1 Etapa de mezclado 2.2 Etapa de moldeado 2.3 Etapa de secado 2.4 Etapa de cocido 5 Perspectivas para la automatización 5.1 Etapa de mezclado 5.2 Etapa de moldeado 5.3 Etapa de secado y cocido 6 Diagrama del proceso actual Conclusiones.Referencias 1 Introducción El hombre, desde su aparición sobre la tierra, ha buscado la forma de protegerse de la intemperie y de los depredadores. Los primeros habitantes del mundo vivían en el interior de las cuevas. Con el tiempo, los hombres desarrollaron técnicas primitivas para la construcción de viviendas; entre las más antiguas de las que se tiene registro, están las ubicadas en Çatal Höyük, hoy Turquía, con una antigüedad que data de los años 10000 a 6000 a.C., y cuyo material de construcción principal era la arcilla formada en piezas que se secaban al sol (véase la figura 1).1 En América, los restos de viviendas más antiguos de los que se tiene registro, están ubicados en la región de La Venta, en el estado de Tabasco, y pertenecen a la cultura Olmeca, con antigüedades que van de los años 1500 a.C. a 200 d.C. En ellas, el ladrillo era utilizado como elemento estructural. 151 En la región de Cholula, Puebla, cuyo apogeo constructivo se dio en el periodo comprendido entre los años 200 y 700 d.C., se observa la utilización del ladrillo en la construcción de muros y pisos.2 Actualmente, en esta región se encuentra una de las mayores concentraciones de productores de ladrillo rojo del país, con alrededor de 4 000 hornos,3 los que a su vez representan la principal o única fuente de ingresos de alrededor de 8 000 familias, involucrando a comunidades como San Diego Cuachayotla, San Sebastián Tepalcatepec, San Juan Tlautla, San Cristóbal Tepontla, San Matías Cocoyotla, San Mateo Cuanalá, Santa María Coronango y Santa María Zacatepec, por mencionar sólo algunas, ubicadas en los municipios de San Pedro y San Andrés Cholula, Juan C. Bonilla y Coronango. El proceso de fabricación de ladrillos rojos no ha variado sustancialmente desde su aparición, resultando en un atraso tecnológico del sector y en desventajas competitivas en los ámbitos regional, nacional y mundial. Las etapas en la que se ha dividido el proceso de fabricación son: mezclado, moldeado, secado y cocido. Aquí se exponen las formas de trabajo actuales y sus perspectivas de automatización. Fig. 1. Ruinas de Catal Höyül, actual Turquía. 2 Descripción del proceso actual 2.1 Etapa de mezclado La primera etapa del proceso consiste en el mezclado de la materia prima, que en este caso son tres diferentes tipos de tierras y agua. Las tierras utilizadas son: arcilla amarilla, tepetate y arcilla gruesa. Las proporciones de estos materiales en la mezcla varían de productor a productor, debido a que se trata de un proceso esencialmente artesanal y las 152 ‚recetas‛ dependen de la tradición familiar; es decir, se trata de fórmulas que han pasado de generación en generación a lo largo de los años. La mezcla, en algunos casos, se hace de manera totalmente manual. Se agregan las arcillas y el tepetate empujando con los pies sobre el suelo y se incorpora el agua; posteriormente, se amasa con palos, palas o rastrillos. Actualmente, en algunos de los sitios de producción, se hace uso del tractor agrícola equipado con una herramienta llamada niveladora, y se aprovecha el dibujo de las llantas para llevar a cabo el mezclado, el cual consiste en el repetitivo paso del tractor sobre el material a mezclar. La mezcla resultante no es homogénea debido a lo deficiente del proceso y a la variación de las cantidades de materia prima involucradas. Otra desventaja de esta metodología de trabajo es la cantidad de superficie requerida para llevarla a cabo, debido a que se hacen grandes volúmenes de mezcla y el espacio requerido para la correcta operación del tractor es grande. 2.2 Etapa de moldeado En esta etapa se le da forma a los ladrillos, una vez que la mezcla ha adquirido las características que el productor considere óptimas. Se debe de llevar a cabo en cuanto se concluye el mezclado y se utiliza una herramienta llamada gavera, formada por un bastidor que tiene capacidad para moldear 4 o 6 ladrillos por vez. Una vez que se acarrea la mezcla al lugar donde se moldearán los ladrillos, se coloca la gavera a ras de tierra y se toma una porción de mezcla, se coloca en la parte superior de la gavera y se utilizan las manos y los dedos para compactar los ladrillos y eliminar los huecos que quedan en el interior del molde. Se agrega otra cantidad de la mezcla y se repite la operación, hasta que los huecos quedan completamente llenos. Una vez hecho esto, se utiliza un rasero —una pieza con forma de solera metálica— para eliminar el material sobrante. Cuando se ha terminado de llenar los moldes y de pasar el rasero, se retira la gavera, teniendo cuidado de no dañar la forma de los ladrillos moldeados. La gavera se coloca junto a los ladrillos que se acaban de moldear y se repite nuevamente todo el proceso. La disposición de los ladrillos queda en forma paralela y horizontal, y los fabricantes tienen cuidado de dejar una separación suficiente entre hilera e hilera para transitar entre ellas. Este método de trabajo tiene varias desventajas; por ejemplo, las manos de los productores están en contacto directo con la mezcla, lo cual es riesgoso porque se producen heridas, o también, cuando el material se seca, reseca la piel y ésta se agrieta. Otra desventaja es la necesidad de que el terreno tenga una pendiente de 153 5 a 10% para que el exceso de agua escurra por efecto de la gravedad. Además, un terreno muy amplio es necesario para colocar los ladrillos a ras de tierra para esperar a que pierdan humedad y puedan ser transportados manualmente al lugar de secado. 3 Etapa de secado Los ladrillos se dejan secar lo suficiente como para manipularlos sin que se rompan o desbaraten. Periódicamente se verifica que este secado se produzca (véase la figura 1). Cuando los ladrillos están lo suficientemente secos, se disponen de forma vertical durante unas 24 horas a fin de que sus caras pierdan humedad por efecto del aire y el calor; después, se acomodan formando muros de secado, llamados enrejados, para que el aire circule libremente entre los ladrillos y se pierda una mayor cantidad de humedad. Esto tarda entre 15 y 30 días, dependiendo de las condiciones meteorológicas imperantes. Fig. 2.Ladrillos en etapa de secado. 4 Etapa de cocido Una vez que los ladrillos crudos han perdido humedad, se transportan al horno (véase la figura 3) y se colocan en su interior (véase la figura 4). El horno es una estructura construida con los mismos ladrillos que se fabrican, con forma prismática rectangular y rematada en forma piramidal truncada, con un espacio que queda por debajo del nivel del piso, en el cual se colocan los quemadores y se lleva a cabo la combustión. El tiempo de cocción varía, dependiendo de la cantidad de ladrillos a cocer. Generalmente, un horno para 40 millares tarda entre 30 y 48 horas para obtener 154 un cocido correcto. Después los ladrillos se dajan enfriar durante 8 o 10 días, dependiendo de las condiciones del clima. Fig. 3. Transporte de ladrillos secos hacia el horno de cocimiento. El combustóleo utilizado es de muy baja calidad —en el mercado nacional—, su costo también es bajo, pero las emisiones de contamintantes a la atmósfera son muy grandes, en el orden de las 10 837 toneladas anuales.3 Debido a su baja calidad, no es posible quemarlo con atomización mecánica, por lo que necesita de un medio atomizante. En la región de Cholula, generalmente, se utiliza vapor de agua. Al mismo tiempo, es necesario contar con un piloto, operado con gas LP, a fin de garantizar un encendido confiable, y por último, el combustóleo requiere de dos etapas de calentamiento antes de ser enviado a los quemadores. La primera etapa de calentamiento lo lleva a 35 °C, para que alcence a ser bombeado, y la segunda, a 100 °C para que se pueda quemar. Para dar comienzo al proceso de cocción, es necesario calentar con Diesel las líneas de conducción del combustóleo y hacer lo mismo al terminar, para que las líneas se mantengan limpias y no se formen tapones de combustóleo. También es necesario, al concluir la cocción, hacer una limpieza profunda de las líneas de conducción y de las boquillas y filtros, así como deshollinar toda la caldera. Fig. 4. Horno de cocido. 155 5 Perspectivas para la automatización La propuesta para la automatización del proceso toca todas las etapas que hemos descrito hasta aquí. A continuación, se describen las perspectivas de automatización para cada una de ellas, así como la forma probable de operar de cada una. 5.1 Etapa de mezclado La etapa de mezclado se llevará a cabo con una banda transportadora alimentada por tres tolvas, las que a su vez contendrán los tres tipos de tierra utilizados para el proceso y un tanque de almacenamiento de agua. En la banda transportadora se depositarán las cantidades necesarias de cada una de las tierras, previamente pesadas con galgas elastométricas, a fin de controlar la cantidad y las proporciones de los materiales. En el otro extremo de la banda se colocará una máquina para el molido y el mezclado de los materiales, incorporando la cantidad necesaria de agua, medida mediante un fluxómetro, a fin de obtener una consistencia óptima. Esta consistencia óptima se determinará en estudios previos. 5.2 Etapa de moldeado Para esta etapa también se propone una evolución drástica. Habrá una extrusora mecánica que será alimentada con la mezcla; un motor eléctrico proporcionará la potencia necesaria para mover un tornillo sin fin acoplado a una cámara de vacío, para extraer así la mayor cantidad posible de aire de la mezcla y forzar su salida a través de una boquilla con dimensiones 250 mm x 120mm, a fin de obtener un macizo con esas dimensiones y una longitud variable. A la salida de la boquilla, el macizo descansará sobre otra banda transportadora que lo trasladará a la zona de cortado, compuesta por una guillotina que lo cortará en la sección transversal. Posteriormente, se realizarán nuevos cortes transversales de 50 mm cada uno, a fin de formar el ladrillo de dimensiones comunes. Esta última parte del moldeado se llevará a cabo utilizando otra guillotina, pero esta vez con múltiples hojas de corte, las cuales, en realidad, serán alambres de acero sujetados a un bastidor, con la tensión correcta para que los cortes sean los adecuados. 156 5.3 Etapa de secado y cocido En esta etapa se aprovechará el calor emitido por el horno para reducir el tiempo de secado de los ladrillos moldeados. En el proceso actual se pierde calor por la parte superior del horno, debido a la porosidad del material del que está construido y a la separación que existe entre los ladrillos que lo conforman. A fin de aprovechar al máximo la cantidad de energía que se consume en el proceso, se procederá a captar el calor desprendido por el horno cuando otros ladrillos se encuentren en cocimiento. Este calor será conducido hasta una especie de invernadero en el que se encontrarán los ladrillos recién moldeados, los cuales perderán humedad por efecto del calor hasta obtener un secado óptimo en un tiempo menor al que se consume actualmente. El proceso de cocido, ahora íntimamente ligado al de secado, será modificado por medio de un análisis de las propiedades térmicas del horno, a fin de optimizar la colocación de los quemadores y disminuir considerablemente el consumo de energía. También se realizará un estudio de los requerimientos de energía que tienen los ladrillos utilizados en las construcciones; así se obtendrán las características mecánicas óptimas requeridas en la industria de la construcción. 157 Fig. 5. Diagrama del proceso actual. 6 Diagrama del proceso actual En la figura 5 se observa el diagrama del proceso actual 5 de fabricación de ladrillo rojo en un horno típico de la región de Cholula y los promedios de distancia y tiempo de dos hornos pertenecientes a la familia Flores Chapuli. En el diagrama es posible observar que el proceso de secado de ladrillos tiene una duración promedio de 22 días, considerando condiciones climatológicas favorables. Este tiempo puede disminuirse considerablemente si se aprovecha el calor emitido por el horno para el secado de lso ladrillos recién moldeados. El enfriamiento del horno tarda en promedio 9 días, durante los cuales la producción se detiene. Entonces los recursos disponibles están ociosos, lo que conduce a un incremento en los costos de producción. Desde nuestra perspectiva, el calor que se debe perder en esta etapa será aprovechado para el proceso de secado y se propondrá, además, la producción en serie, a fin de disminuir la duración del ciclo de fabricación. 158 Conclusiones El proceso que actualmente se sigue para la elaboración de ladrillo rojo en la región de Cholula no ha sufrido ninguna variación significativa desde la época de apogeo de la cultura cholulteca, comprendida entre los años 200 y 700 d.C., lo que deja en una posición de desventaja competitiva a los productores, porque la presencia de la tecnología es mínima, y en la mayoría de los casos, nula. En el presente trabajo se expuso una primera propuesta para su automatización, considerando que el monto de las inversiones debe de ser muy bajo, debido a la pobre condición económica de los productores. Actualmente, los profesores de la carrera de Mecatrónica de la Universidad Politécnica de Puebla tienen acercamiento con un grupo de productores de la región para colaborar con ellos en la disminución del tiempo del ciclo de trabajo, mejorar las condiciones de estas pequeñas empresas familiares y aumentar la rentabilidad. Referencias 1. Bartel, B., ‚The Characteristics of the Çatal Hüyük Supra-Community‛, documento presentado en el LXXIII General Meeting of the AIA, American Journal of Archaeology, núm. 76, 1972, pp. 204-205. 2. México en el Tiempo, núm. 19, julio-agosto de 1997, en Internet (http://www.mexicodesconocido.com.mx/notas/5247-El-ladrillo-en-laarquitectura-prehisp%C3%A1nica). 3. Comunicación Social del Gobierno del Estado de Puebla, en Internet (http://www.comunicacionsocial.gob.mx/index2.php?option=com_content&do _pdf=1&id=7932). 4. Kidder, F. E. et al, ‚Manual del arquitecto y del constructor‛, Unión Tipográfica-Editorial Hispanoamericana, México, 1997. 5. Zandin, K. B. y H. Bright Maynard, ‚Manual del ingeniero industrial‛, vol. 2, McGraw-Hill, 2000. 159 160 Cloud computing Jesús Enrique Vázquez Reyna Resumen. Esta ponencia tiene el propósito de dar a conocer el concepto de ‚cloud computing‛, sus orígenes, aplicaciones en línea y sus ventajas y desventajas; así como sus aplicaciones presentes y futuras. Palabra clave: informática en la nube o computación de nube. Keyword: Cloud Computing. Sumario: Introducción 2 Orígenes de la cloud computing 3 Aplicaciones de la cloud computing 4 Cloud storage 5 ¿Qué se le debe pedir a un proveedor de cloud storage? 6 Algunos ejemplos de cloud storage 7 Ventajas y desventajas de la cloud computing 8 Riesgos del área de la cloud computing 9 Las tres clases de cloud computing 10 Proyectos a futuro 11 Conclusiones Referencias 1 1 Introducción Durante mucho tiempo el concepto de Web 2.0 ha estado rodando sobre los términos más comunes de la WWW (World Wide Web). En la actualidad, el concepto m{s nuevo es el de ‚cloud computing‛, es decir, la tendencia a disponer de archivos y aplicaciones directamente en la Web. En los últimos 10 años las empresas muestran una tendencia cada vez mayor a guardar en algún lugar de la red su información, a manera de almacenamiento, por eso la distancia entre el usuario y la red de redes se ha ido acortando. Cada usuario eventualmente tendrá que usar algún tipo de aplicación de ofimática y utilidades que probablemente no tenga instaladas en su computador, por lo cual esta teoría viene a revolucionar el mundo de la información. El fundador de la Free Software Foundation y del proyecto GNU, Richard Stallman, ataca este concepto porque dice que se trata de una campaña de marketing que hará a los usuarios aún más dependientes del software basado en la Web, lo que representa un grave riesgo para la libertad y la intimidad. Su posición se explica cuando se piensa en el hecho de que, si se traslada todo el software a la Web, se estaría poniendo en manos de las empresas nuestras tareas cotidianas, con el riesgo de que en algún momento estas compañías decidieran 161 cobrar por nuestros accesos al servicio, con lo cual nos quedaríamos de un día para el otro sin herramientas de trabajo. La centralización de los recursos no tiene nada de original, pues es un concepto que a lo largo de la historia de la informática se ha adoptado y luego abandonado unas cuantas veces, conforme a los vaivenes provocados por las más recientes innovaciones tecnológicas. Por lo tanto, esta tendencia o bien llegó para quedarse o, como ya ha sucedido en otras ocasiones, no es más que una burbuja temporaria que explotará al exponerse a los primeros vientos de cambio. El término ‚cloud computing‛ traducido literalmente al español significa ‚computación de nube‛; sin embargo, por sí mismo no explica absolutamente nada. Desde los primeros tiempos, la noción de Internet se ha representado gráficamente como una nube hacia donde se conectan todas las computadoras del mundo. Pero lo cierto es que Internet es un concepto más complejo. Se trata de computadoras individuales que conforman redes, las cuales a su vez se agrupan en conglomerados de redes. Estos conglomerados se conectan entre sí conformando una red de redes denominada Internet. Para que la explicación sea más simple, la gráfica de Internet semeja una nube hacia la cual se conecta cada ordenador para utilizar los servicios y aplicaciones que todos conocemos. Fig. 1. Cloud computing en la Web. 162 2 Orígenes de la cloud computing Al comienzo de la década de 1960, los entonces primitivos y gigantescos equipos informáticos eran diseñados y construidos para ejecutar un único programa —o trabajo— a la vez. Pero apenas un lustro después, se había hecho inmensamente popular el concepto de ‚time sharing‛, con el cual, prestando una fracción de los recursos del sistema —ya fuera tiempo del procesador o capacidad de almacenamiento— a múltiples usuarios conectados por medio de ‚terminales bobas‛, era posible que muchos de ellos trabajaran de manera simultánea en un solo equipo, con los poderes de proceso y almacenamiento de los documentos concentrados en un gran computador central o ‚mainframe‛. Este enfoque se tornó de uso masivo al ser adoptado por grandes comunidades de usuarios, como los científicos o estudiantes universitarios de ciencias exactas, ansiosos de acceder al poder del cálculo informático. Pero, durante la década de 1980, la aparición de las computadoras hogareñas acostumbró a muchos usuarios a tener y operar sus propios equipos. El lanzamiento, en el año de 1981, de la ‚personal computer‛, un equipo inform{tico lo suficientemente barato como para ser asequible para una gran cantidad de individuos, pero de notable potencia, con una arquitectura modular y expansible de IBM, invirtió definitivamente la tendencia. A partir de entonces, los usuarios se acostumbraron a ser los dueños y señores de sus computadoras, con el consiguiente monopolio de la capacidad de proceso y de almacenamiento que éstas ofrecían. 3 Aplicaciones de la cloud computing Esta tecnología permite acceder a servicios y aplicaciones por medio de Internet, con un navegador convencional. En este tipo de sistema, el usuario accede a toda clase de servicios, sin necesidad de instalar un software en su ordenador. Una forma gráfica de mostrar este punto es con un ejemplo sencillo. Todas las personas que manejan computadoras tienen cuentas de correo electrónico. Si tomamos como referencia a Hotmail, Gmail o Yahoo, nos damos cuenta de que para utilizar sus casillas de correo no es necesario instalar ningún software. Solamente tenemos que acceder mediante el navegador a la página principal del cliente de correo y escribir el nombre del usuario y la contraseña. De este modo, administramos nuestro correo, recibimos mensajes, los enviamos e incluso los almacenamos. Ahora bien, toda esta información no se aloja en nuestro ordenador, sino que se almacena en nuestro servidor de la empresa que presta estos servicios. Otros ejemplos de servicios de este tipo que solemos usar vía Web son los blogs, los antivirus, el online (en línea), las emisoras de radio y video, entre otros. 163 Como dijimos anteriormente, la tendencia tecnológica actual es el uso de aplicaciones en línea (online) y no instaladas en la PC (personal computer). Cuando hablamos de aplicaciones, nos referimos a aquellos programas informáticos diseñados para facilitar al usuario la realización de un determinado tipo de trabajo. Como primer ejemplo, citaremos la ‚suite de oficina‛, que ofrece una planilla de cálculo, un procesador de texto y una base de datos, entre otras aplicaciones. Desde un principio, este paquete de programas se ha tenido que instalar en el ordenador para utilizarlo. Lo mismo sucede con la reproducción de música. Por ejemplo, para escuchar una canción, es necesario tener un reproductor y los códecs (codificadordecodificador)1 necesarios para cada tipo de archivo que se va a reproducir. A partir del concepto de cloud computing, estos requisitos ya no existirán. Para ilustrar este ejemplo, pensemos en el servicio de Google Docs,2 con el cual creamos documentos, hojas de cálculo y presentaciones en línea (online). Este servicio es de uso muy sencillo, similar a programas como Word, Excel o PowerPoint. Los archivos quedan guardados en servidores externos a nuestra PC, con la ventaja que ofrece la posibilidad de abrirlos desde cualquier parte del mundo, con apenas una PC que ofrezca conexión a Intenet. Otro aspecto a destacar es la posibilidad de manejar un sistema operativo completo en línea (online). En la actualidad, existen al menos 10 versiones diferentes de sistemas operativos Web. Un ejemplo de ello es eyeOS, una nueva forma de sistema operativo donde todo está disponible desde el navegador. Con estos sistemas operativos tendremos un escritorio, aplicaciones y archivos siempre a nuestra disposición, ya sea en el hogar, en la universidad, en la oficina, etcétera. Para acceder al escritorio y a los archivos sólo debemos abrir un navegador y conectarnos con un servidor eyeOS. Pero de estos aspectos trataremos con detalle más adelante, a lo largo de este artículo. 4 Cloud storage El concepto de ‚cloud storage‛ es similar al de cloud computing, pero con la diferencia de que se trata de la capacidad de almacenamiento. La idea es contar con la posibilidad de almacenar información en espacios virtuales fuera de los discos duros alojados en las PC locales. Con el cloud storage, los datos también residen en la Web, asignados dinámicamente entre varios centros de datos para garantizar su almacenamiento y entrega con la mayor rapidez allí donde sean requeridos. Es decir, los usuarios nunca saben dónde están almacenados sus datos en un momento dado. Geoff Tudor, cofundador de Nirvanix, firma de reciente introducción en este mercado, compara el cloud storage con el servicio 164 eléctrico: ‚después de todo, cuando enciendes la luz, no sabes exactamente dónde se origina cada electrón‛. Fig. 2. Cloud storage o capacidad de almacenamiento en distintos medios. Aunque son ya muchas las compañías interesadas en entrar en este nuevo mercado, hoy la oferta de cloud storage mejor conocida es Simple Storage Service (S3), de Amazon, con dos años de existencia. Cabe mencionar también a Nirvanix, lanzado en octubre de 2007, y a Mosso, una compañía de Rackspace que dio a conocer su oferta hace sólo unos meses atrás. Algunas otras grandes marcas del mundo están ya preparando con entusiasmo sus ofertas de cloud storage, como Google, que trabaja en el lanzamiento de un servicio de almacenamiento en línea (online) informalmente conocido como GDrive. Asimismo, EMC, tras la compra en septiembre del año 2009 de la firma de backup online Mozy, ultima un servicio masivo con tecnologías denominadas en código Hulk & Maui. Para alimentar esta estrategia, la compañía adquiría recientemente la firma Pi, cuyo software y servicios ayudan a los usuarios a seguir el rastro de sus datos y contenidos personales en la red. La tecnología y la plantilla de Pi serán integrados en la nueva unidad Cloud Infrastructure and Services Division, de EMC, en la cual también se encuadran, además de la tecnología de Mozy, la plataforma de servicios basados en cloud fortness. Pese a su liderazgo, del servicio de Amazon se conocen pocos detalles sobre la infraestructura de cloud utilizada. De la de Nirvanix se sabe que utiliza software personalizado y tecnologías de sistemas de ficheros corriendo sobre servidores de almacenamiento en Intel, localizados en seis centros de Estados Unidos, Asia y Europa, aunque el número de estos emplazamientos ascendió a 20 a finales de 165 2009; por motivos de seguridad, los datos del cliente se replican en dos o tres de estos centros. En cuanto a Mosso, el servicio se suministra desde el centro de datos de Rackspace, en Dallas, Estados Unidos, al que pronto se añadirá otro centro en Reino Unido. FreeDrive, el servicio de distribución de archivos y de almacenamiento personal para usuarios de redes sociales, como Facebook, MySpace y Bebo, lleva usando el servicio de Nirvanix desde noviembre de 2009. Gracias a su solución, la compañía convierte videos a formato flash automáticamente y envía datos directamente desde ‚la nube‛ a sus m{s de 180 000 clientes; de otro modo, todos los datos tendrían que ser confiados al propio servidor Web de FreeDrive. Por su parte, Geezeo, red social centrada en las finanzas personales, utiliza el servicio S3 de Amazon para almacenar sus 251 GB de datos, con la tranquilidad de que, en caso de que sus necesidades de almacenamiento se multipliquen, nunca tendrá problemas. Los clientes de Nirvanix pagan 18 céntimos de dólar al mes por GB de almacenamiento, más otros 18 céntimos por GB cargado y descargado. En el mismo rango de precios, S3 de Amazon cobra 15 céntimos de dólar al mes por GB de almacenamiento, más 10 céntimos por GB por datos transferidos. Un cliente podría comenzar con sólo unos pocos cientos o miles de usuarios y, con el tiempo, escalar a Petabytes de almacenamiento sin necesidad de cambiar la aplicación. 5¿Qué se le debe pedir a un proveedor de cloud storage? Medidas de seguridad. Los usuarios deben ‚encriptar‛ sus propios ficheros. No deben permitir que sea el proveedor quien lo haga. Acceso y auditoría de los datos. El acceso a los datos permite averiguar si alguien los ha modificado. Algunos proveedores, como Amazon y Nirvanix, ofrecen esta posibilidad sin coste adicional. Localización de los datos almacenados. En algunos casos, los clientes necesitan saber la localización exacta de los datos por motivos de cumplimiento normativo. Nirvanix ofrece la opción de bloquear los datos en localizaciones físicas específicas pero Amazon no. Tiempos de caída del servicio. Los clientes del Simple Storage Service, de Amazon, sufrieron durante horas una caída del servicio el pasado febrero. Aún así, los cloud services pueden ser más fiables que el propio centro de datos del cliente. Amazon y Nirvanix dan créditos a los clientes si el tiempo de actividad mensual cae por debajo del 99.9%. Recuperación de desastres. No hay modo de evitarlo, de vez en cuando se producen catástrofes. Por ello hay que asegurarse de que el proveedor 166 cuenta con un plan de recuperación de desastres que permita acceder sin línea (offline) a los principales centros de datos. 6 Algunos ejemplos de cloud storage Google Apps: brinda el servicio de aplicaciones para empresas como Gmail, Google Talk, Google Calendar y Google Docs, etcétera. Amazon Web Services: los servicios que ofrece son el Amazon EC2™, Amazon S3™, SimpleDB™, Amazon SQS™. Azure de Microsoft: ofrece servicios de sistema operativo, hosting, sistemas para desarrollo. Rackspace: es una famosa empresa de hosting que está detrás de Mosso, compañía que ofrece un paquete de básico de hosting a partir del cual se escala según se necesite —y sin migrar de servidores. Recientemente, Rackspace adquirió a JungleDisk, un popular cliente para Amazon S3, el cual pronto estará integrándose a CloudFiles, otro servicio de Mosso. 7 Ventajas y desventajas de la cloud computing Las ventajas de la cloud computing son: Acceso a la información y los servicios desde cualquier lugar. Disponibilidad del servicio y/o aplicación Web 24h/7días/365dias. Accesibilidad mediante diferentes tecnologías compatibles, tales como PDA, teléfonos móviles, ordenadores portátiles, blackberrys, netbooks, etcétera. Servicios gratuitos y de pago según las necesidades del usuario. No saturación del uso del disco duro en el ordenador o aplicación que se usa, debido a que sólo se necesita un navegador Web e Internet. Empresas con facilidad de escalabilidad. Capacidad de procesamiento y almacenamiento sin instalar máquinas localmente. Las desventajas son las siguientes: Acceso de toda la información a terceras empresas. Dependencia de los servicios en línea. En ocasiones, debido a una catástrofe natural o error humano, el servicio se suspende, con las malas repercusiones para los clientes —nosotros. es mejor no guardar datos privados, fotos, videos o información mucho m{s privada en estos servicios. Hoy parece que ‚no nos molesta‛, pero, 167 ¿realmente estamos todos de acuerdo y tranquilos dejando tantos datos al alcance de terceras personas? ¿Dónde y cuándo comenzaríamos a perder nuestra privacidad y libertad? Descontrol del manejo, almacenamiento y uso de esta información. Dependiendo de qué tecnología use ese servicio, un dispositivo podrá acceder o no al servicio. Mayor dependencia de proveedores de Internet y de la velocidad de ADSL, cable, fibra óptica u otras tecnologías. Posibilidad de que delincuentes cibernéticos revienten la seguridad del servicio y se hagan con datos privados. Demasiada necesidad y dependencia de estar conectado, podría generar apariciones de nuevos tipos de enfermedades —‚internetitis estresis aguda‛. 8 Riesgos del área de la cloud computing Por su parte, Gartner identifica siete riesgos principales en el área de la cloud computing: 1 La confianza en el proveedor. Cuando sus aplicaciones y datos corporativos se externan, usted debe hacerlo con alguien de su total confianza, que le asegure la calidad del servicio, los términos de confidencialidad de su relación contractual, etcétera. 2 Conformidad legal. Al final, el responsable en caso de infracción es el propietario de la información. Por ello, los proveedores de cloud computing deberán estar abiertos a cualquier tipo de auditoría externa y a tomar y cumplir cuanta medida sea necesaria para garantizar el cumplimiento de la normativa, ofreciendo, con ello, seguridad a sus clientes. 3 Localización de los datos. Es uno de los puntos fuertes de la cloud computing pero también uno de sus riesgos. El tener acceso a los datos en cualquier momento, independientemente de dónde estén localizados, debe estar garantizado para el cliente. 4 Protección de la información. Como se comparten recursos, esto no puede ir en menoscabo de la confidencialidad de los datos del cliente, la cual deberá estar garantizada en todo momento. 5 Recuperación. El desconocimiento de la localización de la información no puede implicar jamás la falta de medidas de seguridad y réplica para garantizar su recuperación en caso de desastre o pérdida de datos. 168 6 Colaboración con la justicia. Se deben acatar las leyes de protección y seguridad de la información, aunque éstas varíen según las normas propias del país donde se localicen los datos y aplicaciones del usuario. 7 Una relación “para toda la vida”. La sustentabilidad del proveedor tiene que estar garantizada. Fusiones, quiebras, cualquier cambio en su negocio no puede dejar ‚indefenso‛ al cliente y, por ello, se establecerá un compromiso de continuidad a largo plazo en la relación en los propios términos del contrato. 9 Las tres clases de cloud computing La cloud computing se ha convertido en un concepto comodín. Se puede usar en múltiples contextos para referirse a cosas de lo más dispares. Pero parece que hay consenso respecto a tres clases fundamentales, a saber: Software as a Service (SaaS); en español, ‚software como servicio‛. Modelo de distribución de software donde una empresa sirve el mantenimiento, soporte y operación que usará el cliente durante el tiempo que haya contratado el servicio. El cliente usará el sistema alojado por esa empresa, la cual mantendrá la información del cliente en sus sistemas y proveerá los recursos necesarios para explotar esa información. Ejemplos: Salesforce, Basecamp. Infrastructure as a Service (Iaas); en español, ‚infraestructura como servicio‛. Modelo de distribución de infraestructura de computación como un servicio, normalmente mediante una plataforma de ‚virtualización‛. En vez de adquirir servidores, espacio en un centro de datos o equipamiento de redes, los clientes compran todos estos recursos a un proveedor de servicios externo. Una diferencia fundamental con el hosting virtual es que el aprovisionamiento de estos servicios se hace de manera integral por medio de la Web. Ejemplos: Amazon Web Services EC2 y GoGrid. Platform as a Service (PaaS); en español, ‚plataforma como servicio‛. Aunque suele identificarse como una evolución de SaaS, es más bien un modelo en el que se ofrece todo lo necesario para soportar el ciclo de vida completo de construcción y puesta en marcha de aplicaciones y servicios Web completamente disponibles en Internet. Otra característica importante es que no hay descarga de software que instalar en los equipos de los desarrolladores. PasS ofrece mútliples servicios, pero todos aprovisionados como una solución integral en la Web. Aunque a algunos servicios de Amazon Web Services, como SimpleDB y SQS, yo los considero PaaS, esta afirmación puede ser discutida. Otro ejemplo: Google App Engine. 169 10 Proyectos a futuro El carácter experimental que todavía tiene cloud computing, pese a que ya es operativo en distintas formas y ofertas, está llevando a la industria y las instituciones nacionales e internacionales a investigar estas tecnologías con el objeto de crear modelos de producción válidos tanto para el mercado de consumo como el de empresa. De las actividades que se están desplegando alrededor de la cloud computing con propósitos innovadores destacan dos, una en Estados Unidos y otra en la Unión Europea. En ambas, IBM es protagonista. El pasado marzo de 2009, IBM lanzó una iniciativa de investigación, en colaboración con dos entidades universitarias de Estados Unidos, dirigida al suministro de software de automatización y autogestión del centro de datos en entornos de cloud computing. En concreto, la alianza con el Georgia Institute of Technology y la Ohio State University se centra en el desarrollo de tecnologías de autogestión por la división de autonomic computing de IBM, creada en 2001. La compañía espera que finalmente los avances conseguidos en este terreno se integren en sus productos comerciales, especialmente en el software de gestión de Tivoli. ‚IBM está siendo muy activa en autonomic computing y más recientemente en cloud computing. Y este proyecto permitirá unir ambas áreas para dar respuestas a los clientes‛, aseguraba recientemente Matt Ellis, vicepresidente de Autonomic Computing de IBM, a Network World. Las tendencias hacia entornos inform{ticos cada vez m{s flexibles ‚incrementan la complejidad de la gestión. Por ello, se necesita automatización que soporte estos entornos din{micos‛. Finalmente, la iniciativa desplegará un prototipo de cloud computing que enlace los centros de datos de las dos universidades, llamado Critical Enterprise Cloud Computing Services (CECCS). Los investigadores probarán durante los próximos tres años los beneficios de la automatización en cuestiones como balanceo de cargas, consolidación de servidores, recuperación de desastres, failover automatizado y fiabilidad. El otro gran proyecto en cloud computing es el promovido por la Unión Europea, dentro de la primera convocatoria del VII Programa Marco, en el capítulo de Infraestructuras, Ingeniería y Arquitecturas de Software y Servicios. Dotado con 17 millones de euros, Reservoir (Resources and Services Virtualization without Barriers) persigue ‚explorar el despliegue y gestión de servicios TI a través de diferentes dominios administrativos, plataformas tecnológicas y geografías‛. Desde Europa y con España, liderado por IBM, en su laboratorio de investigación de Haifa, en Reservoir participan un total de 13 socios europeos, entre ellos, Telefónica Investigación y Desarrollo y el Grupo de Arquitectura de Sistemas Distribuidos de la Universidad Complutense de Madrid, junto a otras entidades 170 como SAP Research, Sun Microsystems, Thales y universidades de Umea, Londres, Lugano y Messina. Como apunta en su blog Ignacio Martín Llorente, catedrático del Grupo de Arquitecturas de Sistemas Distribuidos de la Universidad Complutense de Madrid: El objetivo de Reservoir durante los próximos tres años es desarrollar la tecnología necesaria para desplegar soluciones de infraestructura que proporcionen servicios bajo demanda, a un precio competitivo y asegurando calidad de servicio. Esta tecnología será decisiva para los centros de datos del futuro, virtualizando [sic] la infraestructura que soporta los servicios y permitiendo que varios centros de datos compartan su infraestructura con el fin de satisfacer demandas puntuales que excedan la capacidad local. En otras palabras, una empresa podrá acceder a servicios o infraestructura adicional por medio de la tecnología Reservoir en alguno de los sitios de la cloud. Si existe una demanda puntual para un servicio hospedado en un centro de datos, éste podrá alquilar dinámicamente servicios adicionales. El proyecto incluye la validación de la nueva tecnología en escenarios de la administración pública, procesos de negocio, computación bajo demanda y telecomunicaciones. El proyecto está organizado en tres actividades tecnológicas principales: gestión de servicios, gestión de entornos de ejecución virtuales e infraestructura de virtualización. El Grupo de Arquitectura de Sistemas Distribuidos de la Universidad Complutense de Madrid es responsable de la actividad sobre gestión de entornos de ejecución virtuales. En el contexto de la actividad se desarrollarán nuevas tecnologías Grid y de virtualización para satisfacer las demandas fluctuantes de recursos en entornos tipo cloud computing. En el modelo cloud de Reservoir se emplea el motor de gestión de ‚virtualización‛ OpenNEbula, una tecnología de código abierto desarrollada por el grupo de investigación de Martín Llorente, que está siendo adoptada en numerosas soluciones cloud y datacenter. 11 Conclusiones Finalmente, la cloud computing está emergiendo. Se ha dado la combinación de factores para que empiece a despegar. Aún quedan muchas incógnitas que resolver, especialmente la de cuál será el papel de los medianos y pequeños proveedores de hosting contra los grandes proveedores. La otra gran pregunta es qué características arquitectónicas deberán tener las aplicaciones que aprovechen 171 la cloud computing, que pueden correr sobre cientos o miles de máquinas virtuales iguales: La aplicación debe poder escalar hacia arriba y hacia abajo de manera sencilla y rápida. El software de infraestructura debe estar pensado para correr sobre máquinas virtuales y no sobre el metal. Los sistemas hardware deben pasar de diseñarse para racks a diseñarse para containers. Además, el hardware debe ser energéticamente eficiente cuando el sistema esté ocioso. Otra cuestión importante es que el hardware deber{ tener en cuenta la ‚virtualización‛ y sus características —cuellos de botella de entrada-salida, por ejemplo. En los años venideros se verá un crecimiento rápido de estos servicios, algo muy atractivo para las empresas, que estarán interesadas en seguir de cerca su desarrollo, entender cómo pueden beneficiarse de las alternativas que ofrece y asegurar que utilizan la tecnología de la información de la forma más beneficiosa posible. Referencias: 1. Códecs o codificador-decodificador. Es una especificación que utiliza un dispositivo o programa para desempeñar transformaciones bidireccionales sobre datos y señales. Existen códecs de transmisión, compresión y encriptación [véase Internet (http://www.alegsa.com.ar/ Dic/codec.php)]. 2. El concepto de Google Docs cambia el modo de trabajar en equipo. Además, nos libera de tener que depender de un disco rígido o un pen drive para ir por allí revisando y actualizando documentos. Todo está en línea, ordenado y actualizado, para que podamos acceder a cualquier hora y desde cualquier lugar [véase Internet (http://expediciones-virtuale s.blogspot.com/2008/05/googledocs.html)]. 3. Revista Dr. Max Número 82 Año V, páginas 14-23, edición Dalaga, S.A. Ciudad de Buenos Aires Argentina. 2. Revista Users Número 21 1Año V, páginas 68-70, edición Dalaga, S.A. Ciudad de Buenos Aires Argentina. 3. En Internet (http://www.maestrosdelweb. com/editorial/cloud-computing-nueva-era-de-desarrollo). 4. En Internet (http://www.idg.es/Comunic aciones/articulo.asp?id=191003). 5. En Internet (http://www.nubeblog.com/ 2008/10/15/saas-iaas-y-paas-las-tres-clases-de-cloud-computing/). 172 6. En Internet, (http://www.feliperm.info/2009/ 03/04/cloud-computing-ventajas-ydesven tajas/). 7. En Internet (http://www.itcio.es/cloudcomputing/informes/1005071022902/ventajas-frenos-al-cloudcomputing.1.html). 173 174 Medición del Tremor Parkinsoniano mediante un Instrumento Virtual Analizado y Diseñado con SysML Juan Fernando García Mejía, Flor del Río González Romero, Arturo Garduño Aparicio Resumen. En este artículo se presenta el análisis y diseño, mediante el lenguaje de modelado de sistemas, de un instrumento virtual de medición no invasivo de una señal eléctrica representativa del tremor parkinsoniano, el cual es un signo de una enfermedad de carácter neurológico-degenerativo conocida como mal del Parkinson. El sistema propuesto está constituido en su etapa física por una tarjeta de adquisición de datos, un circuito de medición compuesto por amplificadores operaciones y fotorresistencias como elemento sensor, la parte lógica se compone de módulos de adquisición, medición de frecuencia y visualización, los cuales son codificados en Lab View. Palabras clave: tremor parkinsoniano, lenguaje de modelado de sistemas. Sumario: 1 Introducción 1.1 Tremor parkinsoniano 1.2 Lenguaje de modelado de sistemas 1.2 Lenguaje de modelado de sistemas 2 Análisis y diseño 3 Desarrollo 4 Resultados 5 Conclusiones Agradecimientos Referencias 1 Introducción El mal de Parkinson es un trastorno degenerativo asociado con el daño a la sección del cerebro encargada de la movilidad, el cual fue descrito por James Parkinson, en Inglaterra, en el año de 1817. Este mal pueden padecerlo tanto hombres como mujeres. Hoy se estima que en los próximos 25 años habrá un incremento de 100% en la cantidad de casos reportados. Con esto en mente, se construyó un instrumento virtual de medición del tremor parkinsoniano, de carácter no invasivo, el cual fue analizado y diseñado mediante el lenguaje de modelado de sistemas. Los instrumentos virtuales presentan un problema teórico: la falta de técnicas de análisis y diseño holístico de las etapas físicas y lógicas que los componen. 1,2,3,4,5,6,7 En los diagramas de flujo, esquemáticos o de bloques que se emplean para 175 representar la funcionalidad de manera general y las expresiones matemáticas, si se utilizan técnicas de procesamiento digital, tratamiento de los datos medidos o aspectos de los circuitos de electrónica, esto queda desarticulado del desarrollo de los componentes lógicos de los instrumentos virtuales. De continuar así, esta tendencia provocaría en el futuro retrasos en la entrega y un aumento de los costos de implementación y mantenimiento, tal como se presentan ahora en la industria del software. Una solución para este problema8 propone el análisis y diseño holísticos de los instrumentos virtuales, mediante los diagramas de flujo de datos (DFD). Otra forma de solucionarlo es recurriendo al lenguaje de modelado de sistemas, el cual a diferencia de la otra solución, se ha convertido en un estándar aprobado. 1.1 Tremor parkinsoniano Los signos representativos del mal de Parkinson son la rigidez y la bradicinesia —pérdida de sensibilidad en los músculos faciales—, la acinesia —pérdida o falta de movimiento—, la inestabilidad postural y el tremor parkinsoniano, el cual se define como un movimiento involuntario, rítmico y oscilatorio que se produce por la contracción alternante de músculos inervados recíprocamente —agonistasantagonistas— y que se presenta en estado de reposo. El tremor parkinsoniano se ha registrado en 70% de los casos de esta enfermedad. Una de las formas de seguimiento del mal de Parkinson es mediante la medición del tremor, la cual se lleva a cabo con las técnicas que se describen en el cuadro 1. Cuadro 1. Diversos principios de medición del tremor parkinsoniano y sus desventajas Técnica Acelerómetros.9 Medición de señales mioeléctricas con equipo de electromiocardiografía.10 Grabación en video del movimiento para su posterior análisis.11 176 Desventaja Su desventaja es su carácter invasivo, pues los dispositivos se colocan en el paciente. Son de carácter invasivo y el costo de los instrumentos de medición de EMG es alto. Su ventaja es su carácter no invasivo; su desventaja es su alto costo, debido a las características de grabación y reproducción del equipo. 1.2 Lenguaje de modelado de sistemas El propósito general del lenguaje de modelado de sistemas (SysML) tiene aplicaciones en ingeniería de sistemas; soporta la especificación, el análisis del diseño, así como la verificación y validación de un rango amplio de sistemas complejos. Estos sistemas incluyen hardware, software, información, procesos y personal.12 En el año 2001, el Consejo Internacional de Ingeniería de Sistemas (INCOSE, por sus siglas en inglés) decidió hacer del lenguaje de modelado unificado (UML) un lenguaje estándar para la ingeniería de sistemas. El UML se adapta a necesidades específicas y a un gran número de herramientas de modelado. Gracias a los mecanismos de extensión —denominados estereotipos—, se pueden definir vocabularios de modelado nuevos, lo que permite que el UML se adapte a dominios específicos y disciplinas diversas. La adaptación del UML para sistemas de ingeniería recibe el nombre de OMG Systems Modeling Languaje (OMG SysML™), cuya primera versión (1.0) est{ basada en el UML 2.1.1. 13 Una forma de describir la relación existente entre los lenguajes UML y SysML es considerando un diagrama de Venn, como se muestra en la figura 1, donde, en los conjuntos que agrupan a estos lenguajes, la intersección indica los elementos de UML reutilizados por SysML y la región marcada con la etiqueta ‚SysML extensions to UML‛ indica los elementos nuevos, que no tienen contraparte en UML o han sido reemplazados. se Fig. 1. Un diagrama de Venn donde muestran los componentes del estándar SysML, el cual está formado por diagramas reutilizados de UML y sus extensiones. 177 En la figura 2 se ven los diagramas que componen el estándar del SysML mostrando tres tipos de diagramas: el de requerimientos, los de comportamiento y los de estructura. Fig. 2. Tipos de diagramas que forman el estándar SysML, donde se muestran los que fueron modificados a partir de los diagramas de UML, los que se ocupan sin ninguna modificación y los exclusivamente originales. 2 Análisis y diseño En la figura 3 se muestra el diagrama de contexto del instrumento que aquí se propone. Éste es el diagrama donde se observan los actores que intervienen en el instrumento. << Diagrama de contexto >> ibd Instrumento virtual del tremor parkisoniano ÇSistema È Instrumento de medici—n del tremor parkinsoniano Paciente ÇCondiciones Externas È Luminocidad Mdico Fig. 3. Diagrama de contexto elaborado con un diagrama de bloques interno, para mostrar parte del entorno del instrumento. 178 En la figura 4 se ven los casos de uso del sistema que aquí se propone y se muestra a los usuarios que participan en el instrumento y sus funciones. << D iagrama de C asos de U so >> uc Instrument o de Medici— n del tremor parkinsoniano Tremor Parkinsoniano Tiembla sobre el sensor Paciente Ingresa datos paciente Mdico Fig. 4. Diagrama de casos de uso del sistema, en el cual se observan dos actores: el médico y su paciente. En las figuras 5, 6 y 7 se muestran los diagramas de actividad, requerimientos y paquetes, respectivamente. También se indican los pasos que se llevan a cabo para hacer una medición del tremor parkinsoniano y se señalan los requisitos que debe cumplir el desarrollo, como la portabilidad y la economía, y por último, en el diagrama de paquetes se ven los componentes de un instrumento virtual, los cuales son lógicos y físicos; asimismo, se describen los elementos que integran estas etapas. act Instrumento de medici— n del tremor parkinsoniano Adquiere datos del tremor Almacenamiento en base de datos Calculo de la FFT Determinaci— n de los componentes de corriente directa y La frecuencia fundamental Fig. 5. Diagrama de actividad del sistema, en el cual se observan las actividades llevadas a cabo por el instrumento. 179 req Name Requerimientos del instrumento de medici—n del tremor parkinosoniano ÇrequirementÈ No invasivo ÇrequirementÈ Rango de 4 a 6Hz ÇrequirementÈ Bajo costo ÇrequirementÈ Portatil Fig. 6. Diagrama de requerimientos del sistema, en el cual se realiza un análisis de los atributos que se desean que tenga el instrumento a desarrollar. pkg Name <<Instrumento vitual de medici—n parkinsoniano >> Componente l—gico Componente f’sico pkg Name pkg Name Circuito de medici—n Tarjeta de adquisici—n de datos Adquisici—n de datos Determinaci—n de componentes frecuenciales Visualizaci—n Fig. 7. Diagrama del paquete del sistema en el que se muestran los componentes del instrumento. 3 Desarrollo En la figura 8 se muestra el circuito de acondicionamiento de la señal, con el cual se convierten las variaciones de resistencia del elemento sensor (R2) en una diferencia de potencial mediante el amplificador operacional número 1. El componente (R3), con su lazo de retroalimentación, controla las variaciones luminosas que se presentan en los diversos escenarios de medición. 180 Fig. 8. Diagrama eléctrico del circuito de medición del tremor parkinsoniano, compensado para variaciones de luz. El amplificador operacional número 2 tiene como finalidad reducir el voltaje offset mediante un circuito restador; el número 3 amplifica el voltaje para que éste pueda ser adquirido por una computadora personal. Uno de los elementos de un sistema de instrumentación virtual es la tarjeta de adquisición de datos, por lo que en este artículo se propone el uso de la tarjeta NI USB-6008 de National Instruments, la cual tiene las siguientes características: 8 entradas analógicas de 12 o 14 bits. 2 salidas analógicas de 12 bits. 12 TTL/CMOS digitales. 12 líneas I/O. 32-bit, 5Mhz Counter. Digital triggering. Bus-powered. El desarrollo lógico que estamos proponiendo en este artículo está basado en la obtención e interpretación de datos mediante los componentes y herramientas de adquisición de datos y visualización que proporciona LabView. En la figura 9 se muestran las rutinas necesarias para adquirir en la computadora los valores de voltaje obtenidos del sensor antes descrito. La adquisición de datos se basa en las siguientes actividades: 1) Creación de tarea: se le informa al sistema que ha sido asignada una nueva tarea de adquisición de datos. 2) Definición de canal analógico: se indica el dispositivo y la entrada analógica por la cual los datos van a ser obtenidos. 3) Tiempo de muestreo: se define el número de muestras por segundo, así como la correspondiente frecuencia de muestreo. 181 4) Iniciar tarea: este elemento prepara el dispositivo y el canal analógico. 5) Lectura: en esta fase el instrumento virtual adquiere datos del exterior mediante una tarjeta de adquisición. 6) Interpretación de datos analógicos: en esta etapa se propone la integración de un elemento gráfico para visualizar los datos representativos de las variaciones de voltaje. 7) Terminar y limpiar: esta fase le indica al sistema que el usuario ha decido terminar con la tarea de adquirir datos. Fig. 9. Código de LabView para la adquisición de datos en la etapa física del instrumento virtual. Las rutinas correspondientes a la visualización y el análisis del espectro de Fourier se muestran en la figura 10, siguiendo las siguientes actividades: 1) Inverso de la frecuencia de muestreo (dt): esto se realiza con el fin de obtener el coeficiente correspondiente a la derivada del tiempo. 2) Obtención del la frecuencia diferencial (df): mediante el instrumento virtual FFT Spectrum (Mag-Phase) proporcionado por LabView, se obtiene el dato correspondiente a la frecuencia diferencial. 3) Eliminación del coeficiente 0: esta operación es necesaria para descartar el componente de CD arrojado por el acondicionamiento de la señal, de tal manera que la cresta más alta del espectro multiplica al coeficiente df, todo esto con el fin de obtener la magnitud correspondiente a la frecuencia adquirida. 4) Visualización del espectro: se propone la integración de un elemento gráfico para visualizar el espectro de Fourier. 5) Obtención de la frecuencia: en esta fase se indica la frecuencia generada por la señal eléctrica del sensor. 182 Fig. 10. Código de LabView para la medición del tremor parkinsoniano, basado en la transformada rápida de Fourier. 4 Resultados Cuando ya se puso en funcionamiento el módulo de adquisición de datos, se procedió a realizar una prueba del tremor parkinsoniano en un paciente que no estuviera medicado con Levodopa en las instalaciones de la Asociación de Enfermos de Mal de Parkinson ubicada en Atlacomulco, Estado de México. Al paciente se le citó una hora antes de la ingesta de una dosis de Levodopa, con lo cual el tremor parkinsoniano se vuelve a presentar en el enfermo. En este caso especifico, el tremor parkinsoniano ha aumentado conforme trascurre el tiempo. En la figura 11 se ve una señal eléctrica oscilatoria de frecuencia constante (véase el circuito en la figura 8), la cual es representativa del tremor parkinsoniano. Este movimiento es involuntario, rítmico y oscilatorio, tal como se le definió en la sección 1.1 del presente artículo. El módulo de adquisición de datos, en combinación con el módulo de análisis y visualización del espectro, da como resultado lo que aparece en la figura 12, donde se observa que el elemento 28, correspondiente al eje del tiempo, responde a la magnitud espectral. Fig. 11. Señal eléctrica representativa del tremor parkinsoniano en un paciente que no ha ingerido Levodopa. 183 La frecuencia de este signo del mal de Parkinson se incrementa conforme avanza la enfermedad, esto debido a su carácter crónico degenerativo. Fig. 12. Espectro de Fourier de la señal eléctrica representativa del tremor parkinsoniano mostrado en la figura 11. Con el espectro de Fourier se determina la frecuencia a partir de la magnitud frecuencial. 5 Conclusiones El uso de una fotorresistencia como elemento sensor, así como del circuito propuesto en la figura 8, permite medir el tremor parkinsoniano de forma no invasiva y a un costo bajo, en cuanto al sensor y manejo de señales. Con el uso de los diagramas SysML, se sistematizan las actividades de análisis y diseño del instrumento virtual, de tal forma que se garantiza cierta calidad en el producto obtenido. Sería interesante pensar en un trabajo futuro que utilice alguna metodología ágil para el desarrollo de software para la parte lógica. A partir de los datos proporcionados por este instrumento, próximamente será posible elaborar una caracterización matemática del tremor parkinsoniano, ya que esto no se ha hecho todavía —si nos atenemos a lo que se reporta en la literatura consultada. La segunda fase de este desarrollo consistiría en realizar un estudio de repetibilidad, linealidad e histéresis para garantizar la confiabilidad del instrumento. Agradecimientos Los autores agradecen a la Universidad Autónoma del Estado de México su apoyo al presente proyecto mediante la Secretaría de Investigación y Estudios Avanzados, y al C. P. Salvador Escamilla, presidente de la Asociación de Enfermos de Parkinson del Norte del Estado de México, por su colaboración durante las pruebas de este estudio. 184 Referencias 1. De la Rosa V{zquez, ‚Sistema para detección de c{ncer cervicouterino empleando espectroscopía óptica‛, ponencia presentada en el XX Congreso de Instrumentación Somi, León, Guanajuato, octubre de 2005. 2. Carranza Castillo, ‚Sistema de digitalización de 10 canales para ser procesados a través del puerto paralelo‛, ponencia presentada en el XX Congreso de Instrumentación Somi, León, Guanajuato, octubre de 2005. 3. Rangel, D., ‚Sistema port{til para caracterizar l{mparas UV-VIS‛, ponencia presentada en el XX Congreso de Instrumentación Somi, León, Guanajuato, octubre de 2005. 4. Arroyo, S., ‚Plataforma de cuatro canales para adquisición y procesamiento de señal mioeléctrica‛, ponencia presentada en el XXIII Congreso de Instrumentación Somi, Mérida, Yucatán, octubre de 2008. 5. Cruz, I. ‚Monitoreo de señales electrofisiológicas como apoyo médico en el tratamiento de pacientes con lesiones musculares‛, ponencia presentada en el XXIII Congreso de Instrumentación Somi, Mérida, Yucatán, octubre de 2008. 6. Quintana, S., ‚Fotopletismógrafo de bajo consumo en corriente, alimentado por puerto USB de una computadora‛, ponencia presentada en el XXIII Congreso de Instrumentación Somi, Mérida, Yucatán, octubre de 2008. 7. Guzmán, R. ‚Medición a distancia de variables eléctricas a través de los puertos GPIB y Ethernet‛, ponencia presentada en Electro 2006, Creel, Chihuahua, octubre de 2006. 8. García, M., ‚Un espirómetro virtual: diseño e implementación basados en análisis estructurado, transformada Wavelet discreta y Matlab‛, ponencia presentada en el VI Congreso de Cómputo CICOS, Cuernavaca, Morelos, junio de 2008. 9. Saavedra, J., ‚Efecto del tens en el efecto de la enfermedad del Parkinson‛, Arch Neurocien, vol. 10, núm. 3, México, octubre de 2005, pp. 133-139. 10. Pérez, M., ‚Demodulador digital para acelerometría din{mica‛, en Memorias del I Taller de Cómputo Reconfigurable “Óptica y electrónica”, Coordinación de Sistemas Computacionales-Instituto Nacional de Astrofísica, Apixaco, Tlaxcala, 2003. 11. Brunetti, F., ‚Un conjunto de herramientas port{tiles para la valoración y el estudio de desórdenes neuromotores‛, ponencia presentada en las XXVI Jornadas de Automática, Universidad de Alicante, España, septiembre de 2005. 12. OMG, ‚Systems Modeling Language (OMG SysML™) 2008‛, versión 1.0, OMG, 2008, pp. 27-31. 13. Weilkiens, T., Systems Engineering with SysML/UML Modeling, Analysis, Design, Morgan Kaufmann Publishers, Eslsevier, 2007, pp. 22-44. 185 186 Aproximación de un Diagnóstico Neurológico Mediante un Sistema Multiagente Inteligente Martha Idalid Rivera González, Gelier Jonathan Reyes Vite Resumen. Los sistemas multiagentes, con sus capacidades de cooperación y comunicación, cuando resuelven problemas lo hacen con un enfoque diferente a los métodos tradicionales; esto ha conducido al replanteamiento de muchos de los procedimientos médicos que hoy en día se utilizan para la exploración del paciente y que pueden representarse como árboles de decisión y resolverse por medio de sistemas multiagentes para obtener un diagnóstico previo sustentado en el procesamiento de la información de su entorno que los agentes perciban. Palabras clave: sistemas multiagentes, árboles de decisión, prediagnóstico neurológico. Sumario: 1. Introducción 2. Agentes 3. Sistemas multiagentes 4. Análisis del caso de estudio 5. Diseño del caso de estudio 6. Conclusiones. Referencias. 1 Introducción Existen diversas ramas de la inteligencia artificial que se han dado a la tarea de crear soluciones para las diferentes necesidades en el campo de la medicina; una de ellas es la de los agentes. Los agentes proveen una metáfora natural y algunos poderosos paradigmas para la construcción y mantenimiento de sistemas distribuidos, inteligentes y abiertos. Los sistemas en el ramo de la medicina han tenido una aceptación favorable sobre todo en tratamiento de enfermedades en áreas especializadas, como las neurociencias. El desarrollo de estas herramientas avanza continuamente y las tecnologías nuevas se abren paso llevándonos a la reconsideración de las soluciones existentes. Los sistemas multiagente son parte de esta nueva tendencia tecnológica; sus capacidades para resolver problemas que requieren coordinación y comunicación superan al modelo orientado a objetos en muchos aspectos, permitiendo la construcción de sistemas dinámicos capaces de adaptarse a los cambios que sufra su entorno. Una de las aplicaciones de este tipo de sistemas se centra en el desarrollo de software de prediagnóstico. En este artículo 187 abordaremos el análisis y diseño de un sistema multiagente con el cual, mediante el uso de árboles de decisión, se obtiene una exploración preliminar y puntual de un paciente determinado. Como caso de estudio, nos enfocaremos en la aplicación de un test para detectar estructuras neurológicas posiblemente dañadas en una persona. El enfoque del sistema multiagente permitirá obtener las soluciones apropiadas para lograr las metas que nos hemos propuesto con base en las capacidades almacenadas en cada uno de los agentes que conforman el sistema. Este enfoque es flexible y permite la especialización en cada uno de los agentes que conforman el sistema, lo que brinda la posibilidad de segmentar el problema en varias capas. La metodología a utilizar en el desarrollo del sistema multiagentes está sustentada en INGENIAS, la cual resuelve el problema de análisis y diseño de sistemas multiagente desde cinco puntos de vista: la organización de los agentes, el agente, las tareas y objetivos, las interacciones —cómo se comunican los agentes— y el entorno —que define qué es lo que existe alrededor del sistema multiagente. El procesamiento del conocimiento adquirido se realizará mediante árboles de decisión, los cuales se encargarán de clasificar los resultados obtenidos con el objetivo de hacer estimaciones sobre los datos y mejorar el razonamiento de los agentes en el sistema. El sistema multiagente será construido sobre la plataforma JADE (Java Agent Development Framework). 2 Agentes El concepto de agente es relativamente reciente —años noventa— y con él se ha producido la fusión de varias disciplinas científicas que abarcan desde la inteligencia artificial hasta la psicología, pasando por la ingeniería del software, las bases de datos, los sistemas distribuidos, la sociología, etcétera. Desde un punto de vista tecnológico, la teoría de agentes aglutina todos los campos relacionados con la informática.1 Un agente es un sistema informático situado en algún entorno, dentro del cual actúa de forma autónoma y flexible para así cumplir sus objetivos. Además de su interacción con el medio, y utilizando la definición de Wooldridge, 2 un agente se caracteriza por las siguientes propiedades: 1. Autonomía. Tiene la capacidad de actuar sin intervención humana directa o de otros agentes 2. Sociabilidad. Puede interactura con otros agentes, utilizando como medio algún lenguaje de comunicación entre agentes 188 3. Reactividad. Un agente está inmerso en un determinado entorno (hábitat), del que percibe estímulos y ante los que debe reaccionar en un tiempo preestablecido. 4. Iniciativa. Un agente no sólo debe reaccionar a los cambios que se produzcan en su entorno, sino que ha de tener un carácter emprendedor y tomar la iniciativa para actuar guiado por los objetivos que debe satisfacer. Para proporcionar una manera simple de caracterizar el espacio de los tipos de agentes, Moulin3 ha definido tres tipos de agentes con base en el grado de capacidad de solución de problemas: 1. 2. 3. Reactivos Intencionales Sociales Los orígenes de la tecnología de agentes4,5 comienzan con la inteligencia artificial distribuida (IAD), es decir, con la resolución de problemas de forma distribuida —computación inteligente. El concepto de agente como entidad computacional aislada evoluciona desde la IAD debido al influjo de la ingeniería del software. Hoy en día se habla de la programación orientada al agente desde el punto de vista de la ingeniería del software, como la metodología capaz de superar las limitaciones de la programación orientada a objetos. Para desarrollar agentes se pueden utilizar lenguajes de propósito general, entre los que cabe destacar los orientados a objetos, debido a cierto paralelismo que existe entre éstos y los agentes, como C++ o JAVA. Los lenguajes específicos de agentes, de los que han aparecido numerosas propuestas en los últimos años, suelen tener asociadas plataformas de desarrollo, una de éstas es JADE, de la cual se hará mención más adelante. Los lenguajes de agentes han de permitir definir la estructura, el estado y el comportamiento de cada agente. 3 Sistemas multiagentes Los agentes no funcionan de manera aislada, típicamente deben operar en un ambiente donde concurran varios agentes para el logro de sus metas. En este sentido, es importante verles como sistemas sociales. La idea de ver un sistema como una sociedad es útil cuando éste es manejado en términos de roles. 6 Los roles dotan al sistema de diferentes grados de especialización, en la medida en que el problema a resolver así lo requiera, ya que cada agente que conforma el sistema tendrá una tarea específica que será resuelta con el objetivo de satisfacer las demandas del sistema. En general, los sistemas multiagente tratan sobre la coordinación inteligente entre una colección de agentes autónomos; cómo pueden 189 coordinar sus conocimientos, metas, propiedades y planes para tomar una decisión o resolver un problema.7 Respecto de la terminología de este campo, en primer lugar hay que clarificar la diferencia entre un sistema basado en agentes y un sistema multiagente.6 Un sistema basado en agentes es aquel que utiliza el concepto de agente como mecanismo de abstracción, pero que, aunque sea modelado en términos de agentes, podría implementarse sin ninguna estructura de software correspondiente a éstos. Por otro lado, un sistema multiagente es aquel que se diseña e implementa pensando en que estará compuesto por varios agentes que interactuarán entre sí, de tal forma que, juntos, alcancen la funcionalidad que se desea.8 En este caso, hay que hacer un mayor esfuerzo de abstracción, identificar mecanismos de aprendizaje, coordinación, negociación, etcétera. Los sistemas multiagente son adecuados para solucionar problemas para los que hay múltiples métodos de resolución, o bien, múltiples entidades capaces de trabajar conjuntamente para solucionarlos.9 Por ello, entre los aspectos básicos de estos sistemas están la interacción entre los diferentes agentes que los forman y la definición de modelos concretos de cooperación, coordinación o negociación entre los agentes. 4 Análisis del caso de estudio Existen actualmente muchos trabajos que hablan sobre el enfoque multiagente para resolver problemas de diagnóstico; la mayoría de ellos es muy similar en cuanto a la organización de los agentes, pero difieren en la técnica que utilizan para llevar a cabo el aprendizaje o los procesos de diagnóstico. Dichas técnicas pueden ser, por ejemplo, las redes bayesianas mencionadas en el trabajo titulado A Multi-Agent Intelligent Environment for Medical Knowledge,10 o también, las redes neuronales incluidas en Case Based Reasoning versus Artificial Neural Networks in Medical Diagnosis.11 En realidad, el uso de técnicas de inteligencia artificial con estos sistemas depende mucho de los objetivos particulares que se pretendan conseguir y que, entre más especializados sean, requerirán de técnicas más finas o de combinaciones de ambas que resuelvan el problema de diagnóstico. En el articulo Visualizing a Multiagent-Based Medical Diagnosis System,12 el proceso de diagnóstico se toma como un proceso distribuido y cooperativo que involucra a diferentes especialistas, departamentos y fuentes de conocimiento. De manera similar, y basándose en este modelo, nuestro caso de estudio resolverá una parte de todo este procedimiento, el cual abarca el diagnóstico diferencial. El caso de estudio tiene que ver, de forma muy particular, con el proceso de diagnóstico diferencial. La forma en que un diagnóstico diferencial se lleva a cabo 190 implica una serie de pasos que obligan a considerar un numero abierto de variables antes de emitir un diagnóstico definitivo. El ser humano no siempre es capaz de considerar todos los factores que influyen en una determinada enfermedad, lo que dificulta la elaboración de un perfil de riesgo para un paciente determinado. Los sistemas multiagentes, gracias a la capacidad de comunicación, especialización y modificación de su entorno, permiten replantear las estrategias para obtener las metas y así considerar factores que antes no se tenían en cuenta. El diagnóstico diferencial está dividido en dos grandes etapas: la formación de hipótesis y la recolección de evidencia médica (véase la figura 1). Fig. 1. Proceso de diagnóstico diferencial. Las dos etapas se conjuntan para descartar posibles enfermedades en un paciente, dejando como resultado un diagnóstico final o definitivo. La parte que concierne directamente a la entrevista médica consiste en la observación del paciente y en la realización de una serie de preguntas sobre signos y síntomas que presenta la persona afectada en ese momento; el resultado de esta primera fase del diagnóstico diferencial sirve como prediagnóstico para el médico y se corrobora mediante una serie de estudios clínicos detallados. En la literatura médica es común observar árboles de decisión simples que ordenan las preguntas de tal forma que en las ramas de los árboles se encuentran las posibles causas del malestar o la posible zona afectada en un paciente. En conjunto, sistemas 191 multiagentes y árboles de decisión son herramientas tecnológicas que vale la pena explotar a fin de crear una herramienta más, con la cual dar solución a nuestro caso de estudio. 5 Diseño del caso de estudio La metodología elegida para el diseño del sistema se denomina INGENIAS. 13 INGENIAS concibe el sistema multiagente como la representación computacional de un conjunto de modelos. Cada uno de estos modelos muestra una visión parcial del sistema multiagente: los agentes que lo componen, las interacciones que existen entre ellos, cómo se organizan para proporcionar la funcionalidad del sistema, qué información es relevante en el dominio, las tareas y objetivos que tienen lugar en el sistema y cómo es el entorno en el que se ubica el sistema a desarrollar. INGENIAS proporciona herramientas gráficas para generar especificaciones, validar los diseños, generar códigos de forma automática y documentos. Por medio de los modelos de INGENIAS es sencillo representar todos los aspectos de un sistema de agentes. Cada uno de estos modelos se centra en aspectos concretos del sistema: Modelo de organización. Es el equivalente a la arquitectura del sistema. Describe cómo se agrupan y coordinan los distintos componentes del sistema, identifica las tareas relevantes para la organización, así como sus objetivos globales, y define restricciones en las interacciones entre los agentes. Modelo de agente. Describe agentes particulares, sus tareas, objetivos, los roles que desempeñan y los estados mentales en que se encontrarán a lo largo de su vida. Modelo de objetivos y tareas. Tiene como propósito recoger las motivaciones del sistema de agentes, definir las relaciones entre objetivos y tareas, indicar las entradas y salidas de cada tarea, y describir cuáles son sus efectos, tanto en el entorno como en el estado mental de sus agentes responsables. Modelo de interacción. Describe cómo se coordinan y comunican los agentes del sistema. Esto incluye a los actores implicados, las unidades de interacción, los protocolos utilizados y cómo afecta la interacción en el contexto. Modelo de entorno. El propósito de este metamodelo no es representar el mundo en el que se ubica el sistema, sino, desde un punto de vista más pragmático, categorizar el tipo de entidades relevantes en el entorno y 192 restringir la interacción con ellas. Así, el entorno contendrá sólo recursos, aplicaciones y agentes, y se limitará la percepción y actuación de los agentes. El sistema multiagente inteligente está conformado por cuatro agentes: a. Agente entrevistador. Se encarga de evaluar al paciente con base en las preguntas existentes. b. Agente de datos. Lleva el control de los pacientes distribuyendo la información obtenida por el agente entrevistador. c. Agente broker. Lleva el control de las comunicaciones entre los agentes y distribuye la información que éstos obtienen. d. Agente de prediagnóstico. Integra un diagnóstico previo con base en la información recibida del agente de datos. La organización de estos cuatro agentes se detalla en la figura 2. Fig. 2. Esquema del sistema multiagente. La comunicación de los agentes se lleva a cabo mediante ACL (Agent Comunication Language),14 un lenguaje estándar desarrollado por FIPA (Foundation for Intelligent Physical Agent)17 y basado en actos del habla, con el cual se definen protocolos de interacción de alto nivel, llamados conversaciones. Las conversaciones entre agentes suelen seguir ciertos patrones o secuencias típicas de mensajes, denominados protocolos de conversación. Existen protocolos definidos por FIPA para la comunicación. En este artículo se hace uso del protocolo FIPA-request, el cual permite que un agente haga una petición sobre una acción a realizar y reciba una respuesta del agente receptor. 15 La representación del protocolo se muestra en la figura 3. 193 Fig. 3. Protocolo FIPA-request. El tipo de arquitectura del que hace uso el sistema multiagente es híbrido. Se trata de una arquitectura centrada en reaccionar a los eventos que tengan lugar en el entorno pero cuidando que las decisiones se tomen utilizando mecanismos de razonamiento lógico (véase la figura 4). Fig. 4. Arquitecturas de agentes. El funcionamiento del sistema tiene lugar cuando un paciente acude y empieza la comunicación del agente entrevistador con el agente broker. Éste se encarga de hacer una petición al agente de datos, solicitando información relativa al paciente y confirmando si figura en la base de datos de pacientes. Si esto es así, se muestra la información correspondiente a dicho paciente; de lo contrario, el agente devuelve un mensaje de paciente no localizado. Ya sea que el paciente se encuentre dado de alta o no, el agente entrevistador procede con la aplicación del cuestionario médico que, en este caso, se trata de una serie de preguntas sobre signos y síntomas neurológicos. La forma en que se encuentra estructurado el cuestionario se basa en un árbol de decisión simple, el cual es almacenado en la base de datos de tal manera que el agente entrevistador se encargue de aplicarlo tal cual lo indica el árbol, con el fin de integrar un prediagnóstico y almacenarlo en el historial del paciente. El 194 especialista, si así lo decidiese, es capaz de modificar en cualquier momento las características del sistema con el fin de que se adapten al tipo de prediagnóstico del cual se quiere tener conocimiento en su momento. La plataforma utilizada para desarrollar los agentes es JADE (Java Agent Development Framework), un middleware que proporciona tanto un entorno de desarrollo como uno de ejecución para la realización y mantenimiento de sistemas multiagente. El entorno de desarrollo está formado por una serie de librerías en JAVA que permiten la implementación de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar. 16 El diseño de las interacciones de los agentes con su entorno estará a cargo de INGENIAS, el cual basa el diseño del sistema multiagente en los siguientes aspectos: 1. 2. 3. 4. 5. Los agentes que componen al sistema. Las interacciones que existen entre ellos. Cómo se organizan para proporcionar la funcionalidad del sistema. Qué información es relevante en el dominio. Cómo es el entorno en el que se ubica el sistema a desarrollar. 6 Conclusiones El diagnóstico de enfermedades haciendo uso de sistemas multiagentes resulta extremadamente útil como una herramienta de apoyo para el personal médico o personas que carezcan de la infraestructura apropiada para llevar a cabo una observación mínima de un paciente en riesgo potencial, ya que los agentes descomponen los procedimientos médicos clásicos en tareas que se resuelven haciendo uso de las capacidades de comunicación que poseen los agentes, subsanando las deficiencias humanas que conlleva el considerar un número indefinido de variables al momento de integrar el diagnóstico diferencial y adaptándose a las necesidades que un entorno en continuo cambio les exija. El modelado de este tipo de sistemas depende en gran medida de las necesidades especificas que quieran atenderse, pero la mayoría de los trabajos descompone la problemática de manera similar, centrándose generalmente en el mecanismo de decisión que el agente de diagnóstico adopte para integrar un resultado; los demás agentes que componen el sistema trabajan para aportar a este agente datos obtenidos del entorno. 195 En este articulo se abordó el diseño y desarrollo de sólo una parte del diagnóstico diferencial, haciendo uso de los árboles de decisión en su forma más simple, para brindar un prediagnóstico que se ajuste a las entrevistas aplicadas por los médicos a pacientes que padecen enfermedades de tipo neurológico, con el fin de facilitar y minimizar el error cuando se emite un juicio final sobre el estado de un paciente o para canalizar de una mejor manera las atenciones que debe recibir el paciente en determinado momento, si no está presente un especialista. Referencias 1. Molina López, J. M., J. García Herrero y A. M. Bernardos Barbolla, Agentes y sistemas multiagentes, Departamento de Informática, Universidad Carlos III de Madrid, 2004. 2. Wooldridge, M. y n. R. Jennings, ‚Intelligent Agents: Theory and Practice‛, The Knowledge Engineering Review, vol. 10, núm. 2, 1995, pp. 115152. 3. Moulin, C., ‚Hierarchical Model and Communication by Signs, Signals and Symbols in Multiagent Mnvironments‛, Journal of Expert. Theory. Artifcial Intelligence, 1996. 4. Bradshaw, J., Software Agents, AAAI Press-The MIT Press, 1996. 5. Ferber, J., Multi-Agent Systems. An Introduction to Distributed Artificial Intelligence, Addison-Wesley, 1999. 6. Jennings, R., K. Sycara y M. Wooldridge, ‚A Roadmap of Agent Reasearch and Development‛, Autonomous Agents and Multiagent Systems, vol. 1, núm. 1, 1998, pp. 275-306. 7. Bond, A. H. y L. Gasser, Readings in Distributed Artificial Intelligence, Morgan Kaufman,1988. 8. Bussman, S. y H. J. Müller, ‚A Communication Achitecture for Cooperating Agents‛, Computational Artificial Intelligence, vol. 12, núm. 1, 1993, pp. 37-54. 9. Chu-Carroll, C. y S. Carberry, Conflict Detection and Resolution in Collaborative Planning Intelligent Agents II: Agent Theories, Architectures and Languages, M. J. Wooldridge, P. Mueller y M. Tambe (eds.), Springer-Verlag, Nueva York, 1995, pp. 111-127. 10. Vicaria, R. M. y C. D. Floresa, A Multi-Agent Intelligent Environmentf for Medical Knowledge, Instituto de Informática-Universidad Federal do Rio Grande do Sul, Caixa, 2005. 196 11. Alves, V. y P. Novais, Case based reasoning versus artificial neural networks in medical diagnosis, Departamento de Informática-Universidade do Minho Braga, Portugal, 2004. 12. Tawfig, A. y M. Elammari, Visualizing a Multiagent-Based Medical Diagnosis System Using a Methodology Based on Use Case Maps, Institute for Computer Science and Business Information Systems-University of Duisburg-Essen, 2004. 13. INGENIAS, Universidad Complutense de Madrid (GRASIA), en Internet (http://grasia.fdi. ucm.es/ingenias), 2005. 14. FIPA-ACL, en Internet (http://www.fip a.org/specs/fipa00061/SC00061G.pdf). 15. FIPA-Request, en Internet (http://www.fip a.org/specs/ fipa00026/SC00026H.pdf). 16. Garamendi, J. Agentes inteligentes: JADE, Programa de Doctorado en Informática y Modelización Matemática, Universidad Rey Juan Carlos, 2004. 17. FIPA (Foundation for Intelligent Physical Agent) es una organización que promueve estándares de tecnología basada en agentes y la interoperabilidad con otras tecnologías, de manera normada. 197 198 Elección de Software Libre en el Desarrollo de Sistemas Web Rodolfo Ostos Robles, Ismaylia Saucedo Ugalde, Víctor Javier Sánchez Sánchez Resumen. Los sistemas de información son muy útiles para las organizaciones; no obstante, se invierten cuantiosos recursos económicos en su desarrollo o adquisición sin que se tenga la opción de modificarlos o adaptarlos según las necesidades propias de cada empresa, lo que irrevocablemente conduce a un círculo vicioso empresa-proveedor de soluciones de software. Las tendencias actuales en el desarrollo de las tecnologías de sistemas de información se están orientando al uso de software libre para el manejo de información y comunicación. Esto, en primera instancia, eliminaría la codependencia empresa-proveedor que acabamos de mencionar, pero la alternativa produce otro problema: el de la elección adecuada de las herramientas. En el presente artículo se propone una metodología que asista al ingeniero en sistemas en su elección de software libre. Esta metodología fue empleada en el desarrollo de un sistema Web para una dependencia educativa gubernamental. Palabras clave: software libre, sistemas de información, tecnologías de la información y la comunicación, instituciones gubernamentales. Sumario: 1 Introducción 2 Estado del arte 3 Metodología 4 Resultados experimentales. Conclusiones. Referencias 1 Introducción Las tecnologías de la información y la comunicación (TIC) engloban diferentes aspectos,1 desde el hardware —los dispositivos electrónicos— hasta el software — los procedimientos de operación de estos dispositivos—; estas tecnologías tienen muchas ventajas porque reúnen, procesan, almacenan y sirven para consultar y distribuir información. La iniciativa privada y los gobiernos de los países desarrollados han entendido esto desde hace tiempo y no han dudado en invertir cuantiosos recursos económicos en ellas; en cambio, en los países en vías de desarrollo, especialmente en el sector gubernamental, esto no es así, debido a que 199 sus presupuestos para la adquisición y utilización de nuevas tecnologías son limitados, especialmente en tiempos de austeridad. A pesar de esto, economizar en hardware no es una alternativa recomendable; en cambio, reducir los costos del software es viable. Por ejemplo, países como Brasil, India, China y Alemania utilizan software libre,2 de tal manera que el presupuesto asignado al pago de licencias al propietario del software ahora se utiliza para fortalecer otras áreas tecnológicas, obteniendo así una optimización de los recursos establecidos para este fin. En este artículo se describe una metodología para elegir las herramientas de un sistema Web utilizando software libre, con la cual se integraron siete sistemas de información en una dependencia educativa gubernamental. 2 Estado del arte El uso de software libre implica que éste se pueda ejecutar, copiar, distribuir, estudiar, cambiar y mejorar, y esto no es algo nuevo. Los primeros registros de este uso datan de finales de los años de 1960, con la distribución del sistema operativo Unix.3 Con el paso del tiempo, este concepto se fue modificando y adaptando hasta llegar a la actualidad, cuando se puede conseguir una cantidad importante de software, desde sistemas operativos hasta herramientas ofimáticas y herramientas para desarrollo de aplicaciones. Debido al uso de este tipo de software, que no requiere del pago de licencias al propietario —por ejemplo, sistemas operativos y aplicaciones ofimáticas—, se optimiza el presupuesto gubernamental invertido en el desarrollo de sistemas de información. En el año 2002, en España y otras regiones de Europa los parlamentos respectivos han decretado leyes que favorecen el uso de software libre. En Latinoamérica, Perú y Argentina4 han adoptado medidas similares.Brasil es uno de los ejemplos más documentados respecto de las leyes que ha instituido para favorecer el uso de software libre. El gobierno de Cuba, por su parte, ha desarrollado proyectos estatales utilizando herramientas de software libre, como el Infomed, un portal dedicado al sector salud.5 Reproducir estos esfuerzos en el gobierno mexicano sería recomendable. En México ha habido pocos proyectos de software libre y éstos, en la mayoría de los casos, se han enfocado al ámbito educativo —por ejemplo, el Proyecto Red Escolar—, con resultados poco favorables6 debido principalmente a la problemática relacionada con la elección del software. Esta indecisión ha contribuido a que no se explote el potencial del software libre en los espacios gubernamentales. En nuestro país no existen políticas que favorezcan el empleo de este tipo de software. Por lo tanto, aquí se desarrolla una metodología que eleva la certidumbre cuando se trata de elegir la mejor opción de software libre. 200 3 Metodología Debido a la naturaleza del software libre, al comenzar un proyecto es importante llevar a cabo un análisis profundo de las herramientas disponibles, a fin de que la elección entre las opciones tecnológicas más recientes se la mejor. Los requisitos básicos incluyen el que se puedan utilizar desde para la migración de aplicaciones ofimáticas hasta para el desarrollo y puesta en marcha de sistemas de información, como es el caso de nuestro proyecto, pues se desarrolló un sistema de información de estadística educativa con base en la metodología para la elección del software para el sistema Web que se describe a continuación. La metodología para la elección del software está dividida en cuatro fases (véase la figura 1): Fase conceptual. La función principal de esta fase es la de entender el entorno que rodeará el proyecto, es decir, el ambiente en el cual será insertado. En esta fase juegan papeles importantes la amplitud del proyecto, el tipo de sistema que se implementará y la interacción directa que los usuarios tendrán con el sistema de información. Habrá que analizar la cultura informática tanto de los usuarios como de los administradores que se quedarán a cargo de la operación y mantenimiento del software para que esta información sea tenida en cuenta durante el proceso de elección. Fase operacional. En esta fase se toma en cuenta la infraestructura tecnológica. Generalmente, el equipo con el que operan las instituciones gubernamentales es obsoleto, por lo tanto, se debe hacer un inventario de todo el equipo de cómputo en existencia y sus capacidades, lo que dará un panorama claro de la infraestructura que posee la organización. Esto definirá el tipo de software que se utilizará. Esta fase puede llevar a una de dos opciones: a) se utiliza la infraestructura con las que se cuenta; b) se elabora una propuesta de para la adquisición de equipo nuevo. Fase técnica. Con base en la información recopilada en las dos fases anteriores, se elige la plataforma con la que operará el sistema de información, teniendo en cuenta las capacidades de los equipos de cómputo que serán utilizados como clientes y servidores. Además, esto último dictará las características de las herramientas que se utilizarán para el desarrollo e implementación del sistema de información. En esta fase se analizan las opciones para lo siguiente: A. B. C. D. El sistema operativo del servidor. El sistema operativo de los clientes. El sistema gestor de base de datos. Las herramientas de desarrollo. 201 Herramientas de modelado. Lenguajes de programación. Herramientas de depuración. Cuando el proyecto es sólo de migración de aplicaciones ofimáticas, esta fase se divide en el análisis de las opciones para lo siguiente: A. El sistema operativo del servidor. B. El sistema operativo de los clientes. C. Herramientas ofimáticas. Fase de evaluación del software. Finalmente, en la etapa de evaluación, se hace un estudio comparativo de las opciones disponibles, las cuales deben cumplir con los objetivos funcionales y operacionales del proyecto. Fases para la elección de software libre de un proyecto informático Inicio con la propuesta del proyecto Finaliza con la correcta elección de software libre Conceptual Operacion al Evaluación Técnica del software libre Fig. 1. Fases para la elección de software libre. Esta metodología garantiza una correcta elección del software libre para el desarrollo o migración y conduce a la optimización de los recursos económicos, porque el presupuesto ya no tendrá que destinarse al pago de licencias de software. 4 Resultados experimentales La metodología fue aplicada en la elección del software libre para el desarrollo de un sistema de información de una dependencia de gobierno. La aplicación de la metodología, así como los resultados obtenidos, se describen a continuación. Fase conceptual. Se hizo el estudio detallado del ambiente organizacional; se entrevistó tanto a los usuarios potenciales internos y externos, como a los administradores del sistema, una vez que éste estuvo terminado, y se determinó lo siguiente: 202 1. Los usuarios del sistema tenían poca cultura informática, lo que influyó directamente en los requerimientos de diseño de interfaz. 2. Los administradores estaban familiarizados con el manejo de lenguajes de consulta estructurados. 3. El sistema de información estadístico se limitaría a visualizar y generar datos. Fase operacional. Esta fase fue de mucha utilidad porque se obtuvieron datos valiosos para el proyecto. Se analizó el equipamiento del departamento: sus equipos, sistemas operativos y capacidades de procesamiento, y se concluyó lo siguiente: 1. La antigüedad del equipo estaba en un rango de entre 3 y 8 años. 2. La capacidad de procesamiento era de rango bajo. 3. Se utilizaban sistemas operativos de Microsoft, como Windows 98 y Windows XP. Como resultado de lo anterior, se realizó una propuesta de equipamiento con equipo de cómputo nuevo. Fase técnica. El resultado de esta fase fue la elección de una plataforma Web, porque era lo que mejor se adaptaba al problema. Una vez decidido lo anterior, se procedió al análisis de herramientas, lenguajes de programación y sistemas operativos para servidores. Fase de evaluación del software. Después de elegir entre las opciones de software libre probables, se consideraron más adecuados los siguientes: 1. El sistema operativo del servidor, GNU LINUX Debian. 2. El sistema operativo de los clientes se conservó. 3. El sistema gestor de base de datos, Mysql 5.0. 4. Las herramientas de desarrollo. Herramientas de modelado DBDesigner 4. Lenguajes de programación PHP, Java Strip, XML. Herramientas de depuración Firebug. Uno de los factores que contribuyó a la elección de software libre fue la limitación existente en el presupuesto de las instituciones gubernamentales para la inversión en una tecnología que diera solución inmediata a todas sus necesidades de infraestructura tecnológica. Por consiguiente, la adquisición de un ‚software privativo‛ no era lo m{s viable para que el sistema de información operara eficientemente. En el cuadro 1 se muestra la información de los costos aproximados que hubiera representado para la institución gubernamental un sistema de información desarrollado con base en ‚software privativo‛. 203 Cuadro 1. Costos de inversión en software libre comparados con los del software privativo Software libre Costo GNU/Linux (Debian) Apache| MySQL DBBesigner 4 Sin costo PHP Blueflsh Sin costo Sin costo Software privativo Costo Windows Server 2008 R2 Enterprise Microsoft SQL Server 2008 $ 3 999 dlls (25 licencias de usuario) $ 24 999 dlls (una licencia de procesador) $ 799 dlls (una licencia) Microsoft Visual Studio 2008 Professional Edition Cuando una institución pública o privada adquiere un ‚software privativo‛ se obliga a pagar costosas licencias y no obtiene el código fuente; además, se rige por la prohibición de copiarlo y/o modificarlo y se enfrenta con la necesidad de invertir en hardware que pueda soportarlo, todo lo cual implica disponer de más presupuesto, lo que resulta difícil. Como se mostró en el cuadro 1, no es necesario que las organizaciones inviertan en ‚software privativo‛ para desarrollar un sistema que satisfaga sus necesidades operativas y estratégicas cuando existen otras alternativas, como es el caso del software libre. Conclusiones Aunque las tecnologías de información y de comunicación no son una solución para los problemas de procesos; en cualquier institución pública o privada es indispensable contar con herramientas tecnológicas para lograr objetivos institucionales eficientes. La información que se genera es el insumo para la toma de decisiones de la alta dirección, y cuando no se cuenta con información oportuna y confiable, puede disminuir la calidad de las decisiones que se tomen. La utilización de software libre contribuye a que una institución pública deje de ser dependiente de los proveedores propietarios. La migración de un sistema a otro se realiza con más sencillez; a esto se aúna el hecho de que todos los datos almacenados se encuentran en formatos abiertos y se cuenta con el código fuente de todos los sistemas que se utilizan, reduciéndose así los costos de mantenimiento y soporte técnico ‚obligatorio‛. El dejar de adquirir la tecnología cada vez más sofisticada que requieren los ‚software privativos‛ tiene un impacto económico favorable para la institución. Es importante que la capacitación técnica del personal que dará soporte a la nueva tecnología desarrollada con software libre sea bien llevada a cabo. El código fuente estará 204 disponible para el mantenimiento del sistema, así como para brindar atención oportuna a las necesidades futuras. El valor que se dé a esta etapa, representará en gran medida el éxito o fracaso de la tecnología implementada. Referencias 1. Villatoro S., P. y M. R. Yáñes, Las nuevas tecnologías de la información y la comunicación (TIC) y la institución social. Hacia una gestión basada en el conocimiento, Publicación de las Naciones Unidas, mayo de 2005. 2. Brys, C. A., Plan estratégico para el gobierno electrónico de la provincia de misiones, Editorial Universitaria de Misiones, Argentina, 2005. 3. García Valcárcel, I. y Munilla Calvo, E-Business colaborativo. Cómo implantar software libre, servicios Web y el grid computing para ahorrar costes y mejorar las comunicaciones en su empresa, Fundación Confemetal, España, 2003. 4. Conferencia de las Naciones Unidas sobre el Comercio y Desarrollo, Informe Sobre el Comercio Electrónico y Desarrollo 2003, Publicación de las Naciones Unidas, 2003. 5. Zúñiga, L., El software libre y sus perspectivas para el desarrollo en América Latina y el Caribe, Bellanet International Secretariat América Latina y el Caribe, marzo de 2004. En Intenet (http://www.mentores.net/Portals/2/mentores_net_sabemos_software_libre.p df), página consultada el 9 de junio de 2009. 6. González Barahona, J., J. Seoane Pascual J y G. Robles, Introducción al software libre, Universitat Oberta de Catalunya, 2003. 205 206 Gestión del Aprendizaje de las Nuevas Tecnologías en Adultos de la Tercera Edad, en Tijuana, Baja California, México, por la UABC. Resultados obtenidos en el primer Curso de Computación Básico Hilda Beatriz Ramírez Moreno, Esperanza Manrique Rojas, Maricela Sevilla Caro, Margarita Ramírez Ramírez Resumen. Las nuevas generaciones que se integran a la sociedad actual han hecho que el proceso de enseñanza-aprendizaje tenga la reestructuración necesaria para satisfacer sus necesidades de tecnología. En cambio, en lo que respecta a la generación de adultos de la tercera edad (55 años en adelante), quienes en apariencia concluyeron su proceso de enseñanza-aprendizaje, existe preocupación porque se sienten aislados y confusos cuando se enfrentan al uso de las tecnologías de información que ahora se ocupan en la mayoría de las actividades cotidianas. En México, y en particular, en la ciudad de Tijuana, una gran parte de la sociedad, ya sea por miedo o por falta de oportunidad, no ha interactuado con una computadora, lo que ocasiona que se sientan marginados o excluidos de todas las actividades relacionadas con la tecnología. En la Facultad de Contaduría y Administración de la Universidad Autónoma de Baja California, campus Tijuana, se diseñó y se ejecutó un proyecto para introducir a los adultos de la tercera edad a las áreas de Tecnologías de Información, obteniendo excelentes resultados. Palabras clave: tecnologías de información, adultos de la tercera edad, andragogía. 1 Introducción El significado de la palabra ‚educación‛ tiene su raíz en los verbos latinos ‚educare‛, que significa cuidar, atender, orientar, conducir, y ‚educere‛, que se refiere a la acción de sacar, extraer, dar a luz. Etimológicamente, la palabra ‚adulto‛ proviene de la voz latina ‚adultus‛, cuyo significado es crecer. Por lo tanto, se considera que la educación dirigida a los adultos, es decir, a las personas de la tercera edad, es un proceso dinámico de formación y modificación de sí mismo en un contexto histórico dado. Por medio del proceso educativo, se produce un cambio en el individuo. Este proceso es progresivo en el desarrollo humano, desde los niños de preescolar hasta los profesionistas que ocuparán puestos laborales y formarán parte del desarrollo económico. Las generaciones de 207 jóvenes que se van integrando poco a poco a la sociedad han hecho que las estrategias de enseñanza-aprendizaje se modifiquen, modernizándose. En México, en el área de educación, se han llevado a cabo cambios en las estrategias de enseñanza-aprendizaje en todos los niveles, para satisfacer las necesidades actuales. Estas necesidades provienen, entre otros aspectos, del requerimiento de concocimientos sobre las tecnologías de información para su uso cotidiano. Las nuevas generaciones se capacitan para hacer uso de estas tecnologías, pero, ¿qué sucede con las generaciones cuyo proceso de enseñanza-aprendizaje concluyó hace años? Si reflexionamos sobre la cultura del envejecimiento, debemos volver la mirada a las consecuencias. La misma sociedad parece cerrar un cerco alrededor del grupo de adultos de la tercera edad, porque, mientras se les ofrece un trato ‚preferencial‛ en algunos asuntos cotidianos, en otros, este trato es excluyente. El uso de las tecnologías de información no debe satisfacer solamente las necesidades de las generaciones jóvenes. Hoy en día, una muchos trámites gubernamentales, no gubernamentales, personales, etcétera, se hacen por medio de Internet —por ejemplo, los pagos de servicios se hacen en cajeros automáticos o por medio Internet. Aquellas generaciones que no recibieron una preparación para hacer uso de estas tecnologías son hoy los adultos de la tercera edad (55 años o más). Estas personas sienten que no son activos dentro de esta sociedad tecnológica. Cuando el estudio de la educación se fue definiendo como área de trabajo, las primeras investigaciones y teorías se referían a los niños; de esta manera surgió la pedagogía. M{s recientemente, la andragogía (del griego, ‚hombre‛ y ‚guía‛) es la disciplina que se ocupa de la enseñanza y el aprendizaje del adulto y su objetivo es lograr un cambio sustancial en las formas de enseñanza destinadas a personas en etapas de plenitud o declive de vida, para contribuir a su desarrollo integral en las áreas psicológica, biológica y social, permitiendo con este proceso incrementar su capacidad de pensamiento, su autogestión, su calidad de vida y su creatividad. El participante adulto recibe así una oportunidad de realización propia a una edad mayor. Para el adulto de la tercera edad es necesario ofrecer programas de acuerdo con sus necesidades y características. Lo primero que hay que considerar son los cambios físicos que ha experimentado el adulto; sus potencialidades fisiológicas están desgastándose constantemente, para la mayoría de ellos la vista falla y esta disminución de agudeza visual los obliga a utilizar anteojos permanentes; falla también su agudeza auditiva, por lo cual se les complica la comprensión de ideas a viva voz; sus reflejos son más lentos y su fuerza muscular y la energía que producen diariamente disminuyen. En la actualidad, con el avance científico y tecnológico, la esperanza de vida al nacer aumenta, y por lo tanto, el envejecimiento poblacional también. El adulto 208 mayor, por los cambios físicos y psíquicos que sufre, muchas veces no se siente parte de la sociedad, se siente inútil. La educación es un proceso saludable que le ofrece alcanzar un nuevo desarrollo de sus potencialidades y que le dará, además de conocimiento, un resultado de bienestar personal. 2 Argumentación y desarrollo El derecho a la educación no debe ser limitado a edades ni condiciones sociales; para el adulto de la tercera edad, el ejercer este derecho significa una oportunidad de actualización, de participación social y reafirmación de sus potencialidades. Para las personas que se encuentran en esa etapa de la vida, la educación es un auxilio en el desarrollo de una cultura del envejecimiento y una posibilidad de elevación de su calidad de vida, todo lo cual se traduce en mejoramiento de la salud, bienestar y felicidad. La integración básica de la educación de adultos comenzó en Europa y Estados Unidos de América —bastante tarde, en comparación con su equivalente en el ámbito de la educación de niños y jóvenes. Apenas a finales de los años cincuenta empezaron los esfuerzos de sistematización, articulación y difusión de teorías específicas acerca del aprendizaje del humano adulto, de los cuales surgirían las estrategias y métodos capaces de expresarse en términos de una didáctica para el aprendizaje adulto. A partir de entonces, el término ‚andragogía‛ cobra importancia; acuñado por el maestro alemán Alexander Kapp, su aparición data de 1833. Como su uso no se generalizó, cayó en el olvido hasta que Eugen Rosemback, a principios del siglo XX, lo retoma para referirse al conjunto de elementos curriculares propios de la educación de adultos —profesores, métodos y filosofía. Otro autor destacado en este terreno es Knowles (1970), considerado el padre de la educación de adultos porque elaboró una teoría de la andragogía más acabada, en la que ésta se considera el arte y la ciencia de ayudar a los adultos a aprender. La población de adultos mayores ha crecido de manera notable a causa de numerosos factores que se han conjugado para sustentar una mayor esperanza de vida. Distintos organismos de las Naciones Unidas han considerado la elaboración de políticas generales que vayan en beneficio directo de las condiciones de vida de estas personas; se destacan entre ellas los planes y programas mudiales emprendidos por la UNESCO en las áreas de cultura y educación, así como los desarrollados por la Organización Mundial de la Salud (OMS), que han puesto énfasis en la salud preventiva, en beneficio de una mayor calidad de vida. En México, de acuerdo con datos del Consejo Nacional de Población (Conapo), en el siglo XX hubo un elevado incremento poblacional y el nuevo milenio comenzó con una tasa de crecimiento natural semejante a la observada 70 años atrás, 209 aunque con un tamaño seis veces mayor, lo que transformó la conformación poblacional, que ahora se expresa en un proceso gradual de envejecimiento. Se considera que para el año 2050 habrá 129.6 millones de mexicanos, de los cuales 36.2 millones serán adultos mayores, lo que representaría 27.9% del total de población. El Instituto Nacional de Estadística y Geografía (INEGI), a su vez, proyectó que, para los años 2020 y 2030, la esperanza de vida promedio será de 78.5 y 79.1 años, respectivamente. Así, se espera que las mujeres vivan 80.9 años en 2020 y 82.1 años en 2030; mientras que los hombres alcanzarían los 76.1 y 77.5 años en esas mismas décadas (INEGI, página oficial, abril de 2009). En nuestro país todavía existe la discriminación laboral de los adultos de la tercera edad, por distintos motivos, y entre ellos se encuentran el rezago educativo y el desconocimiento de la tecnología. Estos adultos tienen que ser atendidos con programas de autosuficiencia económica —despensas y consultas médicas—, aunque esto no resuelve el problema de discriminación y rezago. Hay muchas personas de la tercera edad que tienen fuerza física y mental como para ser trabajadores eficientes, gracias a su experiencia y sabiduría; para que tengan la oportunidad de participar activamente en el mundo actual, requieren de capacitación en aspectos técnicos, porque la mayoría de ellos no sabe usar una computadora o un procesador de palabras ni navegar en Internet. La Facultad de Contaduría y Administración de la Universidad Autónoma de Baja California, campus Tijuana, llevó a cabo un proyecto en en el cual se diseñó un curso de introducción a las tecnologías de información para adultos de la tercera edad, con el objetivo de proporcionar las bases necesarias para que por primera vez interactúen con una computadora. Este proyecto se llevo a cabo en cuatro fases: Primera fase. Se diseñó el programa del curso, supervisado por expertos en las áreas de tecnologías de información y educación. El curso contempla una duración de 24 horas, divididas en seis clases sabatinas de cuatro horas cada una y en fechas en las que normalmente el clima es bueno, como en mayo y junio. En el contenido se integraron conceptos generales de computación: introducción a Windows, procesador de palabras con Word, conceptos generales de Internet, cómo buscar información, correo electrónico y el mensajero instantáneo. Segunda fase. Se integró de manera cuidadosa un grupo de egresados de la carrera de Licenciatura en Informática, algunos con experiencia en docencia. Estos egresados cumplirían sus horas de servicio social con este proyecto. Con el apoyo de una licenciada en Educación, se les dio capacitación y herramientas básicas para el proceso enseñanza-aprendizaje. El grupo se dividió en equipos, algunos los cuales desarrollaron los manuales y el material audiovisual; otros se encargaron de impartir el curso. Para esto último se formaron equipos con un instructor y hasta cinco auxiliares por cada 25 alumnos. Esta fase concluyó con la 210 coordinación de los equipos de trabajo y la revisión de los manuales y material audiovisual. Tercera fase. Se realizó la convocatoria para participar en el curso; se dio a conocer por medio de folletos, correo electrónico, radio y página de Internet. Se publicó el objetivo del curso, el lugar y la fecha en que se impartiría, y los requisitos —ser mayor de 55 años, saber leer y escribir y no tener conocimientos del uso de la computadora. En esta fase también se contó con el apoyo del grupo de egresados interesados en el proyecto. Cuarta fase. Se formaron cuatro grupos de 24 adultos cada uno. El promedio de edad osciló entre los 60 y 70 años. De acuerdo con las reacciones de cada persona, se fue dando la pauta para el ritmo del curso. El último sábado del curso los adultos de la tercera edad concluyeron con un convivio. Posteriormente, se les hizo entrega de su constancia de asistencia. El objetivo se cumplió satisfactoriamente. Fig. 1. Adultos de la tercera edad en el curso de computación. Fig. 2. Los instructores apoyando a sus alumnos. 211 Fig. 3. Festejo que se llevó a cabo el último día del curso. Fig. 4. Primera Generación de Adultos en Plenitud, FCA, UABC, Tijuana. 3 Conclusiones En estos tiempos de cambios educativos, la edad no debería ser un impedimento para seguir estudiando. Desde el año 2000 varias universidades otorgan créditos por experiencia o estudios previos, ofrecen clases nocturnas y programas educativos en institutos multidisciplinarios, entre otras actividades dirigidas a personas de la tercera edad; sin embargo, estas mismas opciones todavía no satisfacen bien las necesidades psicológicas ni aprovechan plenamente las características cognitivas de este grupo de edad. La mayoría de los adultos tiene metas claras respecto de lo que pretende obtener cuando ingresa al sistema educativo. Entre estos objetivos, sobresalen: 1) ascender en sus profesiones, 2) emprender negocios, 3) utilizar de manera formativa su tiempo de ocio. El educador del adulto, además de evaluar estos objetivos primordiales, tendrá que adaptar sus métodos y materiales de enseñanza tomando en cuenta los cambios fisiológicos, psicológicos y cognitivos de sus alumnos, motivarlos y orientar sus metas para que ellos revaloren la etapa que viven, tomando lo mejor para superarse como miembros de la sociedad, con un sentimiento renovado de utilidad para sus labores. La oportunidad de llevar a cabo este tipo de trabajos de investigación, que involucran diferentes generaciones de seres humanos, es muy enriquecedora. Los adultos de la tercera edad tienen mucho que expresar y se les debe dar la 212 oportunidad de aprender cosas nuevas, como, por ejemplo, el manejo de la tecnología, porque en nuestros tiempos esto es indispensable. Como parte de este estudio, se aplicó una encuesta a las personas que tomaron el curso, para conocer su opinión; de esta manera, se obtuvo información muy importante. A continuación, se transcriben algunas de las preguntas, cuáles fueron las respuestas obtenidas y algunos comentarios generales. Pregunta 1. ¿Qué opinión tiene del curso de computación del que formó parte? Fig. 5. La gráfica muestra que 81 personas opinaron ‚excelente‛ y seis ‚bueno‛. Pregunta 2. ¿Cómo considera lo que ha aprendido? Fig. 6. La gr{fica muestra que 38 alumnos opinaron ‚excelente‛, 40 ‚bueno‛ y nueve ‚regular‛. Pregunta 3. ¿El curso cumplió con sus expectativas? Fig. 7. La respuesta es alentadora. La gráfica muestra que 80 de las 87 personas encuestadas piensan que sus expectativas se cumplieron 213 Pregunta 4. ¿Recomendaría el curso a otras personas? Fig. 8. De manera contundente, 100% de los adultos de la tercera edad que tomaron el curso piensan recomendarlo. Para finalizar, se transcriben a continuación algunos de los comentarios escritos en la encuesta: ‚El curso, muy bien, y a gusto con los compañeros, estudiantes y profesores.‛ ‚Solamente me gustaría continuarlo.‛ ‚Necesito un curso m{s lento y personalizado.‛ ‚Espero que se repita y se haga m{s publicidad para que muchas personas se impulsen a producir m{s.‛ ‚Los profesores y el personal de apoyo son personas excelentes en su trato y con mucha paciencia para con nosotros. Estoy encantada de haber participado en este curso.‛ ‚Felicito a los maestros que tuvieron la iniciativa de llevar a cabo este curso, así como a los profesionistas que lo impartieron por tomar muy en cuenta a las personas de la tercera edad, ello nos estimula y deja la opción de continuar prepar{ndose en lo que es la inform{tica.‛ ‚B{sico, pero muy bueno; ojal{ continuemos, ya que debemos ser ejemplo para nuestros hijos.‛ ‚Espero que tenga continuidad el curso y se diseñe la segunda parte para ampliar nuestros conocimientos como adulto en plenitud.‛ ‚Sólo deseo agradecer: gracias, mil gracias por cambiar nuestras vidas de manera tan positiva.‛ 214 ‚Nos integramos a la vida moderna y nos sacan del aislamiento d{ndonos oportunidades que no teníamos‛. El proyecto de capacitación para adultos de la tercera edad no pretende prepararlos para enviarlos a buscar empleo, pero si una oportunidad de este tipo se les presentara, todo el esfuerzo realizado habrá valido aún más la pena. Referencias 1. García-Mínguez, J., La educación en personas mayores. Ensayo de nuevoscaminos, Editorial Narcea, México. 2. Biblioteca Digital RAM, en Internet (http://www.reda dultosmayores.com.ar/educacionA M.htm). 3. Psicología Científica, revista electrónica, en Internet (http://www.psicolo giacientifica.com/bv/psicologia -279-1-la-educacion-de-adulto-mayorantecedentes-y-perspectivas.html). 4. Estadísticas del INEGI, en Internet (http://www.inegi.gob.mx/inegi/contenidos/espanol/prensa /contenidos/estad isticas/2008/edad2.doc). 5.-Consulta, en Internet (http://amdi.files.w ordpress.com). 6.-Consulta, en Internet (http://www.yturral de.com/ andragogia.htm). 215 216 Modelo Matemático Multiobjetivo para la Selección de una Cartera de Inversión en la Bolsa Mexicana de Valores José Crispín Zavala-Díaz, Marco Antonio Cruz-Chavez, Martín H. Cruz-Rosales, Jorge Ruiz Vanoye Resumen. Un modelo matemático multiobjetivo para la selección de una cartera de inversión y su aplicación en la Bolsa Mexicana de Valores (BMV) se presenta y discute en este artículo. El modelo multiobjetivo se basa en nuestro modelo matemático de programación lineal publicado recientemente. Se establece el planteamiento del problema multiobjetivo, sus restricciones, la magnitud de las mismas y la estrategia de búsqueda, la cual consiste en modificar el parámetro que acota la magnitud de cada una de las restricciones. Nuestro modelo se prueba con la selección de una cartera de inversión con 10 acciones de la BMV, donde nuestros resultados son mejores que los obtenidos con los modelos de máximo rendimiento y mínimo riesgo resueltos en forma independiente. Palabras clave: multiobjetivo, programación lineal, cartera de inversión, Bolsa Mexicana de Valores. 1 Introducción Una cartera de inversión es una combinación de activos o títulos individuales con la que se pretende que disminuya el riesgo y aumente la utilidad de las acciones. Desde el punto de vista teórico, la existencia del equilibrio riesgo-rendimiento es básica para los modelos de evaluación de activos. Desde el punto de vista práctico, se debe tener la capacidad de colocar los resultados absolutos en el contexto de características de riesgo-rendimiento de un programa de inversión. Los cinco pasos del proceso de la inversión son: 1 1) política de la inversión, 2) análisis de los valores, 3) construcción de la cartera, 4) revisión de la cartera, y 5) evaluación periódica del desempeño de la cartera. En particular, para la construcción de la cartera se deben identificar las acciones específicas en las cuales invertir y en qué cantidad hacerlo. La selectividad, el timing y la diversificación deben ser tratadas por el inversionista. La selectividad, también conocida como micropronóstico, se refiere al análisis de valores y se enfoca en el pronóstico de los movimientos de precios de valores individuales. El timing, también conocido como macropronóstico, implica el pronóstico de los movimientos del precio de las acciones ordinarias respecto a los valores de 217 ingreso fijo, como los abonos corporativos y las letras del tesoro. La diversificación es la construcción de la cartera del inversionista de tal manera que se minimice el riesgo, el cual está sujeto a ciertas restricciones. En este trabajo haremos un micropronóstico para obtener una cartera de inversión. En el problema de la selección de la cartera de inversión se tienen dos funciones objetivo; la primera es la de maximizar el rendimiento, y la segunda, no menos importante que la primera, la de minimizar el riesgo. Dos modelos son fundamentales para la valoración de una cartera de inversión, el de Markowitz2 y el de Capital Assets Pricing Model (CAPM).3 En el primero, se considera el planteamiento del problema cuadrático de minimización del riesgo con dos restricciones; la primera restricción es el rendimiento, cuya magnitud cambia en función de un parámetro, la segunda es la suma de las variables de decisión igual a 100%. Con este modelo se obtiene la frontera de carteras eficientes, considerando el riesgo y el rendimiento en función de la covarianza entre las acciones. El CAPM, por medio de una aproximación lineal, con las mismas variables que el modelo de Markowitz, obtiene la cartera de inversión por medio de una línea tangente que toca la frontera de carteras eficientes. Con base en estos dos modelos se han desarrollado otros, como el nuestro, 4 en el cual la cartera de inversión se obtiene resolviendo en forma independiente las dos funciones objetivo, maximizar el rendimiento y minimizar el riesgo, y sin considerar la covarianza entre las acciones. En este modelo, la cartera seleccionada será la que tenga la diferencia mínima entre las soluciones de esos dos problemas, tal y como lo establece el CAPM. Por otro lado, se han desarrollado modelos y métodos para seleccionar la cartera de inversión como un problema multiobjetivo,5,6,7 con los cuales se determina la frontera de carteras eficientes. Esta frontera constituye el frente de Pareto, donde se encuentran las soluciones no dominadas. Para determinar esas soluciones, se supone que el espacio de búsqueda es convexo y su recorrido se hace mediante los algoritmos llamados evolutivos,8 que se basan en diferentes metaheurísticas.5,6,7 En estos planteamientos multiobjetivo, el riesgo y el rendimiento no siempre se calculan como se plantea en el modelo de Markowitz,6 y en algunos otros se utilizan restricciones, como el precio de venta.7 Por lo tanto, en este trabajo se desarrolla un modelo multiobjetivo lineal que considera tanto el espacio de búsqueda dado por la frontera de carteras eficientes determinadas por Markowitz, como las suposiciones del CAPM, el cual establece que un solo punto de la línea tangente toca a un solo punto de la frontera mencionada. En la segunda parte de este trabajo se presenta una descripción de los problemas multiobjetivo; en la tercera, las bases de nuestro modelo, y en la cuarta, la selección de una cartera de inversión durante un periodo a la alza. 218 2 Fundamentos del problema multiobjetivo El problema de optimización multiobjetivo es similar al problema de optimización global, excepto que para el caso multiobjetivo se intenta encontrar un vector de solución que optimice simultáneamente todas las funciones objetivo. De antemano se conoce que estas funciones se encuentran en conflicto unas con otras y el mejorar una de ellas significa empeorar el desempeño de las otras.8 El problema de optimización multiobjetivo se define matemáticamente como: que g i x 0 , i = 1, 2, <, m (3) encontrar el vector x * x1* , x2* ,...xn* T satisfaga las m restricciones de la desigualdad: Las p restricciones de igualdad: hi x 0 , i = 1, 2, <, p (4) Y que optimice: f x f1 x , f 2 x ... f k x T (5) En otras palabras, se intenta determinar el conjunto de todos aquellos números que satisfacen las restricciones y optimizan todas las funciones objetivo. Las restricciones definen la región factible del problema y cualquier vector x que esté en esta región se considera una ‚solución factible‛. En la optimización multiobjetivo, el término ‚optimizar‛ cambia respecto a la optimización monoobjetivo (global), porque se trata de encontrar un ajuste entre las distintas funciones objetivo en lugar de una sola solución, como en la optimización global. Wilfredo Pareto, en 1896, dio una definición más formal del óptimo en problemas multiobjetivo,9 la cual se conoce en la actualidad como ‚óptimo de Pareto‛. La definición formal es la siguiente: Sea I el conjunto I={1, 2,…}; un vector de variables de decisión x * F (F es la región factible) es un óptimo de Pareto si no existe otro x F tal que: y i I f i x f i x * j I f j x f j x * . En otras palabras, ‚el óptimo de Pareto es aquel vector de variables en el cual no se pueden mejorar las soluciones del problema en una función objetivo sin empeorar cualquiera de las dem{s‛.8,9 Con esto se obtiene un conjunto de soluciones llamado ‚conjunto de óptimos de 219 Pareto‛. Los vectores que corresponden a una solución incluida en el conjunto de óptimos de Pareto son llamados ‚no dominados‛. 2.1 Conjunto de óptimos de Pareto Para un problema multiobjetivo f x , el conjunto de óptimos de Pareto ( P* ) se define como: P* x F : x« F f x« f x (6) 2.2 Dominancia de Pareto El término ‚dominancia de Pareto‛ se define por: un vector u u1 ,..., u k domina a otro v v1 ,..., vk (denotado mediante u v ) si, y sólo si u es parcialmente menor a v: i 1,..., k , ui vi i 1,..., k : ui vi (7) Es decir, para que una solución domine a otra, ésta necesita ser estrictamente mejor en al menos un objetivo y no peor en ninguno de ellos. 2.3 Frente de Pareto La representación de las funciones objetivo cuyos vectores son no dominados y est{n en el conjunto de óptimos de Pareto se llama ‚frente de Pareto‛. Su definición es la siguiente: para un problema multiobjetivo f x y un conjunto de óptimos de Pareto P * , el frente de Pareto ( FP * ) se define como: FP * f f1 x ,..., f k x : x P * (8) La mejor forma para encontrar el frente de Pareto es evaluar todos y cada uno de los puntos en la región factible; al realizar una búsqueda exhaustiva, el problema se hace no computable. Por lo tanto, se tiene la necesidad de aplicar o desarrollar heurísticas para producir aproximaciones del frente de Pareto. En la figura 1 se describe cada uno de los elementos definidos previamente. 220 Fig. 1. Ejemplo de un frente de Pareto de un problema de optimización con dos funciones objetivo. 2.4 Breve descripción de los algoritmos de solución multiobjetivo Para obtener el vector de soluciones, frente de Pareto, de los problemas multiobjetivo, se ha desarrollado la computación evolutiva. La computación evolutiva consta de un conjunto de heurísticas que basan su funcionamiento en el mecanismo de la selección natural propuesto por Charles Darwin, y luego extendido en el denominado neodarwinismo. 8 En la computación evolutiva, una población está compuesta por individuos. Un individuo es una solución a un problema, codificada según las necesidades del problema; por ejemplo, en una cadena de bits. El medio donde se desenvuelve este individuo se representa por la función objetivo, mientras que las restricciones del problema nos indican qué tan apto es el individuo para sobrevivir en ese medio. A los individuos de la población, llamados ‚padres‛, se les aplican operadores probabilísticos, cruza y mutación para obtener nuevos individuos, llamados ‚hijos‛, los cuales mantienen algunas propiedades de sus antecesores. Los antecesores se conservan o se eliminan mediante una selección determinística o probabilística. Este proceso se realiza con cada uno de los individuos de la población hasta formar una nueva población con nuevos individuos. Este proceso se repite durante un cierto número de iteraciones, llamadas ‚generaciones‛ en computación evolutiva. Respecto a la programación lineal multiobjetivo, son tres los métodos que se utilizan para resolver este tipo de problemas: el de ponderaciones, e-restricciones y el SIMPLEX multiobjetivo.10 Los dos primeros también se utilizan en problemas no lineales, mientras que el último es sólo para problemas lineales. Cada uno de ellos tiene su ámbito de aplicación, con base en el cual seleccionamos el método más adecuado para nuestro problema. 221 2.4.1 Método de ponderaciones Para llevar a cabo el método, se tiene que considerar en forma sistemática una serie de conjuntos de pesos positivos que multipliquen a cada objetivo del problema. Usualmente se empieza por la optimización individual de cada objetivo, lo que equivale a considerar los pesos {1, 0, …, 0}, {0, 1, …, 0}, <, ,0, 0,…, 1}. Posteriormente, se introduce una variación sistemática de estos pesos con una tasa de aumento prefijada. Cada problema de ponderación es un problema de programación lineal cuya resolución conduce a una solución eficiente. Se pueden tener ciertos inconvenientes. Entre ellos, distintos conjuntos de pesos pueden generar el mismo punto; el tamaño de paso de un conjunto de pesos a otro puede no permitir generar todos los puntos extremos, y por lo tanto, se obtendría una aproximación al conjunto eficiente. 2.4.2 Método de las e-restricciones Consiste en optimizar la función objetivo más importante que las otras, donde éstas estarán limitadas por las cotas inferiores. Las cotas inferiores representan preferencias subjetivas del decisor, por lo que si no existiera una solución se tendría que relajar al menos una de las cotas. La solución del problema será eficiente si es única. 2.4.3 Método SIMPLEX-multiobjetivo Este método se compone de tres etapas y es una extensión natural del algoritmo SIMPLEX, ya que utiliza la misma transformación de pivote para moverse de un punto extremo eficiente a otro adyacente. Las tres etapas son: Primera. Se determina una solución básica inicial factible. Ésta se lleva a cabo, como el uniobjetivo, introduciendo variables de holgura y/o artificiales se obtiene un punto extremo inicial factible. Segunda. Se determina un punto extremo eficiente cuya existencia está garantizada. Si la región factible del problema es no vacía y todas las funciones objetivo están acotadas en ella, entonces existe al menos un punto extremo eficiente. Tercera. Finalmente, se determinan todos los puntos eficientes partiendo de la solución de la etapa anterior y se generan, a partir de ella, los restantes puntos extremos. 222 3. Fundamentos de nuestro algoritmo multiobjetivo lineal Nuestra primera hipótesis es que se supone que el portafolio de inversión con el mayor rendimiento y el mínimo riesgo está en la línea de las carteras eficientes, frente de Pareto; esa cartera estará en equilibrio a causa de que es una solución no dominada, ya que cualquier modificación afectará el rendimiento o el riesgo. La segunda suposición es que la determinación de ese portafolio es posible con el CAPM, ya que con una línea recta tangente a la curva de las carteras eficientes se determina un punto único, y éste es el portafolio de inversión óptimo. En consecuencia, el problema es calcular solamente un punto del frente de Pareto, el determinado por el CAPM. A partir de esta observación, nosotros desarrollamos el planteamiento para el modelo matemático multiobjetivo. En la figura 2 se describe la interacción gráfica de los dos modelos, el de Markowitz y el de CAPM. En la figura 2, la línea FF representa el frente de Pareto de portafolios de inversión óptimos. La línea SS es la línea de seguridad del mercado, donde el punto Rf representa el rendimiento libre de riesgo. El punto a sobre la línea FF representa la cartera de inversión óptima con un rendimiento R y un riesgo . En consecuencia, el punto a es el punto que tiene la menor diferencia entre el riesgo y el rendimiento.3 Fig. 2. El CAPM. La gráfica de la figura 3 se elaboró con los resultados de la selección de una cartera de inversión de 10 acciones de la Bolsa Mexicana de Valores (BMV), durante el periodo de julio de 2005 a febrero de 2007. 11 La gráfica muestra que la determinación del punto a se hace desde la región de las soluciones factibles. 223 Fig. 3. Carteras de inversión de la región factible durante el periodo de julio de 2005 a febrero de 2007. En la figura 3 se muestra que sólo un punto es la solución; este punto es el que se encuentra más a la izquierda de todos los puntos, y tiene la diferencia mínima entre riesgo y rendimiento. A causa de que los dos problemas se resuelven en forma independiente, el de maximizar el rendimiento y el de minimizar el riesgo, en las figuras 4 y 5 se hacen las gráficas de rendimiento y riesgo en función de la diferencia mínima entre ellos. 450 Riesgo-Rendimiento X10-2 400 350 300 250 200 150 100 50 0 1 101 201 301 401 501 601 701 801 901 Riesgo X10-2 Fig. 4. Rendimiento para 10 acciones, en función de la diferencia mínima, durante el periodo de julio de 2005 a febrero de 2007. Las gráficas de las figuras 4 y 5 muestran que las áreas son convexas, como se esperaba, puesto que cuando la solución de un problema se lleva a cabo por medio de la programación lineal no pueden existir superficies que no sean convexas.10 En los conjuntos de los elementos cuyas gráficas se muestran en las figuras 4 y 5 estarán el rendimiento y el riesgo que determinen la menor diferencia de la figura 3, es decir, se determina el punto a, con lo cual queda: i 1,2,..., k : Ri i a . 224 450 Riesgo-Rendimiento X10-2 400 350 300 250 200 150 100 50 0 1 101 201 301 401 501 601 701 801 901 Riesgo X10-2 Fig. 5. Riesgo en función de la diferencia mínima para 10 acciones, durante el periodo de julio de 2005 a febrero de 2007. En consecuencia, se supone que la determinación del punto a se puede hacer por medio de la búsqueda del rendimiento Ri (véase la figura 4) y del riesgo i (véase la figura 5). A su vez, esta búsqueda se puede hacer modificando la magnitud de las restricciones para reducir el espacio de búsqueda y evaluar así la ‚aptitud‛ como la diferencia mínima entre riesgo y rendimiento. Lo anterior coincide con el método de las e-restricciones. 4 Planteamiento del problema multiobjetivo lineal En el modelo que estamos considerando se hacen las suposiciones siguientes: 4 Primera suposición. La cantidad mínima de dinero requerida es el costo de la acción más barata, a partir de esta cantidad se llega a la cantidad de dinero de la acción más cara. Segunda suposición. El riesgo mínimo de la cartera de inversión es el riesgo de la acción que tenga el menor de todas las acciones y éste variará hasta el riesgo más alto de la acción correspondiente. Tercera suposición. El rendimiento mínimo de la cartera de inversión es el rendimiento de la acción que tenga el menor rendimiento de todas las acciones y éste variará hasta el rendimiento más alto de la acción correspondiente. Con las suposiciones anteriores se formularon los modelos que se describen a continuación.4 225 4.1 Modelo de maximizar el rendimiento n Maximizar z1 xi Ri (9) i 1 Sujeto a: n xi Pvi Pvmin 1 Pvmax Pvmin i 1 n xi i min 2 max min i 1 n xi 1 , i 1 xi 1 Donde Ri, i y Pvi es el rendimiento, riesgo y precio de venta de la acción i, respectivamente; xi es el decimal de la acción i que debe comprarse y es una variable real 0≤ xi≤1, xi= 0 cuando la acción no forma parte de la cartera de inversión; 1, 2 son variables que se utilizan para recorrer todo el espacio de soluciones y su valor es 0 ≤ 1,2 ≤ 1. 4.2 Modelo de minimización del riesgo n Minimizar z 2 xi i (8) i 1 Sujeto a: n xi Pvi Pvmin 1 Pvmax Pvmin i 1 n x R i 1 i i Rmin 2 Rmax Rmin n xi 1 , i 1 xi 1 Las variables son las mismas que las que se describen en la sección 4.1. 226 4.3 Modelo multiobjetivo lineal para la selección de una cartera de inversión Considerando los dos modelos, (7) y (8), el método de las e-restricciones, así como las suposiciones consideradas en la sección 3, el modelo multiobjetivo resultante se muestra a continuación: n Minimizar z3 xi i Ri (9) i 1 Sujeto a: n min 1 max min (10) i Rmin 2 Rmax Rmin (11) i x i 1 i n x R i 1 i n xi Pv i Pv min i 1 (12) n xi 1 , i 1 xi 1 Donde las variables son las mismas que las que se describen en la sección 4.1. Las restricciones (10) y (11) son las funciones objetivo de los dos modelos de optimización base, cuya magnitud variará desde la cota inferior hasta la cota superior, tal y como lo establece el método de las e-restricciones. Además, reflejan la segunda y tercera suposición del planteamiento original. La restricción (12) refleja la primera suposición del modelo original. Dado que las restricciones (10), (11) y (12) son válidas para los elementos del conjunto de la región factible, lo primero que se tiene que hacer es considerar elementos de esa región. Una vez que ya se tiene un elemento de la región factible, se hace el recorrido al elemento de la cartera óptima. En la figura 6 se muestra la estrategia de recorrido para determinar el portafolio óptimo. Fig. 6. Estrategia de búsqueda del planteamiento multiobjetivo. 227 La estrategia consiste en comenzar desde el origen producido por las cotas mínimas; posteriormente, se incrementa un , primero en la función f1 y después en la f2, y así sucesivamente, hasta llegar a una solución factible. Una vez que se ha llegado a una solución factible, se recorre la región convexa manteniendo f1 constante hasta alcanzar el frente de Pareto. Cuando se haya alcanzado el frente de Pareto, éste se recorre modificando el incremento , lo que consiste en dividir 1 en dos ese incremento cada vez. La primera modificación será , la segunda 2 1 1 , y así sucesivamente hasta llegar a m , donde m es el número de 4 2 modificaciones necesarias para llegar al portafolio óptimo. 5 Aplicación del modelo multiobjetivo para calcular una cartera de inversión en la Bolsa Mexicana de Valores De la página de Internet de la Bolsa Mexicana de Valores (BMV) se eligieron las acciones de las 10 empresas más bursatilizadas y en las cuales se basa el cálculo del IPC.12 Los datos son del periodo que va de julio de 2005 a febrero de 2007; los valores de rendimiento y riesgo se obtuvieron como lo establecen los modelos que hemos considerado aquí y en las ecuaciones (13) y (14). 1 m Ri ri j 1 m r m i j 1 (13) j ij Ri 2 (14) m 1 Donde Ri es el rendimiento promedio de la acción i, ri es el rendimiento de la acción i en cada periodo j y m es el número de periodos considerados; i es el riesgo (desviación estándar del rendimiento). En el cuadro 1 están los rendimientos y riesgos de esas 10 acciones. En el cuadro 2 están los resultados obtenidos con el modelo multiobjetivo y la estrategia de búsqueda diseñada para este problema. En este cuadro también están los resultados obtenidos del mismo problema con los modelos monoobjetivo de maximizar el rendimiento y minimizar el riesgo. 228 Cuadro 1. Rendimiento, precio de venta y riesgo de 10 empresas, durante el periodo de julio de 2005 a febrero de 2007 11,12 Var Empresa x1 GMEXICOB x2 WALMEX V Ri Pvi (%) 5.053 76.00 2.230 39.67 9.289 5.985 x3 x4 G MODELOC CEMEX CPO 2.016 59.11 1.024 35.47 5.381 10.331 x5 x6 TELMEX L 1.834 18.85 TELEVISACPO 2.388 55.56 6.332 6.569 x7 x8 URBI KIMBERA 4.147 46.42 1.135 43.52 7.851 6.191 x9 TELECOMA1 3.140 49.18 9.459 x10 NAFTRAC02 2.962 30.82 4.527 i (%) Como lo muestran los resultados del cuadro 2, el rendimiento se acerca al rendimiento del promedio aritmético de los dos modelos (3.2125%), mientras que el riesgo se acerca más al riesgo calculado en el planteamiento de minimizar el riesgo. Es decir, la solución obtenida es más cercana a los óptimos determinados por el modelo de minimización del riesgo. La obtención de mejores resultados se debe a que los incrementos de los parámetros fueron más pequeños que los incrementos utilizados por los modelos uniobjetivo. En los modelos uniobjetivo se utilizó un incremento constante de 0.1 para recorrer todo el espacio de búsqueda, mientras que en el modelo multiobjetivo se utilizaron incrementos de hasta 0.1/25 en las últimas iteraciones. Lo anterior nos permitió obtener una mejor solución. Para obtener los resultados que se presentan en el cuadro 2, se requirieron 16 iteraciones y cinco incrementos. Cuadro 2. Diferencia menor entre el máximo rendimiento y el mínimo riesgo, 229 durante el priodo de julio de 2005 a febrero de 2007 6 Conclusiones Primera conclusión. El planteamiento multiobjetivo del problema de la selección de una cartera de inversión es mejor que solucionar en forma independiente los problemas de maximizar el rendimiento y minimizar el riesgo. Segunda conclusión. Las suposiciones del CAPM se pueden aplicar al problema multiobjetivo, y con ellas es posible limitar el espacio de búsqueda a solamente un punto, sin la necesidad de determinar todo el frente de Pareto. Tercera conclusión. Los resultados nos muestran que la búsqueda se puede hacer por medio de la modificación de los parámetros, y no se requiere necesariamente un algoritmo evolutivo para la generación de los individuos que forman una solución. Referencias 1. Messuti, D. J., V. A. Álvarez y H. Romano Graff, Selection of Investment. Introduction to the Theory of Portfolio, Macchi, 1992, pp. 135-187, 147-151, 175187. 2. Markowitz, H. M., ‚Portfolio Selection‛, Journal of Finance, vol. 7, 1952, pp. 77-91. 3. Fama, E. F. y K. R. French, ‚The Capital Asset Pricing Model: Theory and Evidence‛, CRSP Working Paper, núm. 550, 2003. 4. Zavala-Díaz, J. C., J. Pérez-Ortega, R. A. Pazos-Rangel, D. V. GarcíaVillagomez y L. Cruz-Reyes, ‚Mathematical Model for Optimizing the Composition of an Investment Portfolio for the Mexican Stock Market‛, II International Joint Conference on Computational Sciences and Optimization (CSO2009), april de 2009, pp. 463-468. 5. Branke, J., B. Scheckenbach, M. Stein, K. Deb y H. Schmeck, ‚Portfolio Optimization with an Envelope-Based Multiobjective Evolutionary Algorithm‛, Journal of European Research, núm. 199, 2009, pp. 684-693. 6. Subbu, R., P. P. Bonissone, N. Eklond, S. Bollapragada y K. Chalerm Kraivuth, ‚Multiobjective Financial Portfolio Design: A Hybrid Evolutionary Approach‛, Congress on Evolutionary Computation, vol. 2, IEEE, septiembre de 2005, pp. 1722-1729. 7. Fieldsend, J. E. y S. Singh, ‚Pareto Multiobjective Non-Linear Regression Modelling to Aid CAPM Analogous Forecating‛, Proceedings of IEEE Conference on Computational Sciences and Optimization, 2002. 8. Coello, C. A., ‚Introduction to Evolutionary Multiobjective Optimization‛, CINVESTAV-IPN, 2002. 230 9. Santana Quintero, L. V., ‚Un algoritmo basado en evolución diferencial para resolver problemas multiobjetivo‛, tesis de maestría, CINVESTAV-IPN, noviembre de 2004. 10. Ríos Insúa S., ‚Investigación operativa: modelos determinísticos y estoc{sticos‛, Editorial Universitaria Ramón Areces, España, 2004. 11. Zavala-Díaz, J. C., J. A. Ruiz-Vanoye, D. V. García-Villagomez y O. DíazParra, ‚Selection of an Investment Portfolio by Means of a Mathematical Model of Optimization Applied to Mexican Stockmarket in Period of Debacle‛, V International Conference on Advanced Information Management and Service, Seúl, Corea, agosto de 2009. 12. Mexican stock-market, en Internet (http://www.bmv.com.mx). 231 232 Sistema Estatal de Información y Documentación Científica y Tecnológica (Siedcyt): el primer paso para la propuesta de creación de un Parque Tecnológico Virtual, en el estado de Baja California Nora del Carmen Osuna Millán, Margarita Ramírez Ramírez, Esperanza Manrique Rojas, María del Consuelo Salgado Soto Resumen. El objetivo de este proyecto es presentar la propuesta de la creación de un parque tecnológico virtual llamado Sistema Estatal de Información y Documentación Científica y Tecnológica, de Recursos Humanos, Materiales, de Organización y Financieros en el Estado de Baja California. Los insumos del sistema de información son: instituciones de educación superior, centros de investigación, investigaciones realizadas, infraestructura apropiada, publicaciones científicas y de divulgación, así como otros recursos disponibles en el estado de Baja California. Todo esto nos proporcionará una estadística de la actividad científica y tecnológica, así como el conocimiento de los recursos físicos y económicos con los que cuenta el estado para impulsar el desarrollo de esta actividad tan importante para esta región. La información será captada de las siguientes fuentes: a) Consejo de Ciencia y Tecnología del estado de Baja California —siendo éste un organismo público descentralizado, tiene las tareas de instrumentar, operar, promover y optimizar el sistema estatal de Ciencia y Tecnología involucrando a los sectores público, privado y social—; b) instituciones de educación superior (IES); c) centros de investigación; d) centros de investigación y desarrollo en empresas y organizaciones privadas. Palabras clave: innovación, tecnologías de información, sistemas de información. Sumario: 1 Introducción 2 Estado del arte 2.1 Impacto científico 2.2 Impacto tecnológico 2.3 Impacto social 3 Metodología general 3.1 Objetivo del proyecto 3.2 Objetivos específicos 3.3 Metas 3.4 Metodología particular 3.5 Recolección de datos y análisis de la información 3.6 Usuarios específicos 4. El crecimiento de una región está dictado por la gestión de la innovación que en ella se produzca 4.1 El escenario local 5. Conclusiones e investigaciones futuras. Referencias 233 1 Introducción Actualmente, la sociedad depende del desarrollo de la ciencia y la tecnología en un porcentaje elevado, por lo tanto, el gobierno debe reforzar de una manera eficiente la toma de decisiones y las actividades científicas y tecnológicas del país. Es necesario que las entidades federativas estén concentradas en sistemas de información de la investigación científica y tecnológica para identificar tanto las áreas principales del conocimiento que demandan las empresas como los grandes problemas regionales, nacionales e internacionales. ‚Una de las intenciones de Baja California es convertir a la ciencia, la tecnología y la innovación en los pilares de su crecimiento económico‛. El desarrollo de una herramienta que proporcione información sobre las instituciones de educación superior, centros de investigación, recursos humanos e infraestructura con la que cuenta el estado de Baja California es imprescindible si se quiere conocer lo que cada uno de estos organismos está realizando —cuáles son sus líneas de investigación, la productividad que tienen sus investigadores, etcétera—; todo esto con el objetivo de unir esfuerzos en áreas de importancia para la región, manteniendo una relación de conocimiento, colaboración y apoyo entre instituciones, investigadores, equipo, productos o servicios ya desarrollados y que pueden ser reutilizados en líneas de investigación futuras por otras instituciones, investigadores, empresas. Por todo lo anterior, el desarrollo de un sistema donde se administre la información de cada una de estas fuentes es fundamental. El presente trabajo presenta la metodología que se lleva a cabo para el desarrollo del Sistema Estatal de Información y Documentación Científica y Tecnológica, de Recursos Humanos, Materiales, de Organización y Financieros en el Estado de Baja California. Este sistema se construirá con el apoyo de recursos de la convocatoria de fondos mixtos 2008-1 del estado de Baja California. 2 Estado del arte 2.1 Impacto científico La divulgación y promoción de la ciencia y tecnología es de vital importancia para la generación de productos y servicios tecnológicos, por ello, el Sistema Estatal de Información y Documentación Científica y Tecnológica (Siedcyt) proporcionará la base para su promoción. 2.2 Impacto tecnológico El desarrollo de herramientas que apoyen el crecimiento tecnológico es imprescindible en esta nueva era; por ello, el desarrollo del sistema Siedcyt 234 aportará un panorama efectivo, eficiente y competitivo del desarrollo tecnológico de la región. 2.3 Impacto social Las comunidades de investigación y desarrollo tecnológico se beneficiarán con la utilización del sistema Siedcyt porque en él encontrarán información relevante sobre infraestructura, financiamientos, equipos de trabajo y otros. 3 Metodología general 3.1 Objetivo del proyecto El objetivo fundamental es la elaboración de un sistema de información administrado y al cual se accede por medio de un sitio Web, donde se almacenará, procesará y distribuirá la información relevante de ciencia y tecnología en el estado de Baja California, con el objetivo de fortalecer la toma de decisiones en esta área. 3.2 Objetivos específicos 1. Integrar un padrón de instituciones de educación superior (IES) y centros de investigación (CI) públicos y privados de la entidad. 2. Proporcionar información integrada y clasificada que muestre lo relativo a políticas, programas y proyectos en el área de ciencia y tecnología en el estado de Baja California. 3. Crear una base de datos que ofrezca los insumos estratégicos para la toma de decisiones en lo relativo a la ciencia y la tecnología, la investigación y la formación de recursos humanos. 4. Creación de un sistema que integre los catálogos de información referente a ciencia y tecnología. 3.3 Metas Sistema de información con información integrada de los centros de investigación públicos y privados e instituciones de educación superior de la entidad. Base de datos, con información referente a las áreas en las que se desarrollan investigación, productos y patentes en el estado de Baja California. Página Web, con acceso al sistema de información de los centros de investigación públicos y privados e instituciones de educación superior. 235 3.4 Metodología particular La investigación se apoya en el método analítico e incluye una serie de fases o etapas para la obtención de la información de las entidades involucradas: instituciones de investigación, centros de desarrollo de investigación y empresas con infraestructura destinada a investigación científica y tecnológica del estado de Baja California. La información se obtendrá directamente de las fuentes de información primaria y secundaria, según sea el caso. En una primera etapa se trabajará con la información de las instituciones de educación superior, las cuales tienen entre sus objetivos y políticas institucionales la investigación. En la seguda etapa se contempla la inclusión de los centros de investigación y desarrollo de tecnología. En la tercera etapa se analizarán los centros de investigación privados, los cuales pueden ser subsidiados por empresas de manufactura y servicios. 3.5 Recolección de datos y análisis de la información En el trabajo de campo, se aplicarán instrumentos de recolección de información como investigación documental, cuestionarios y entrevistas semiestructuradas, siguiendo los siguientes pasos: 1. Planeación del proyecto. 2. Diseño de instrumentos para recopilación de información. 4. Proceso de validación de instrumentos. 5. Aplicación de los instrumentos (entrevistas, cuestionarios). 6. Recopilación de información relativa a las instituciones y proyectos por diversos medios. 7. Análisis y clasificación de la información. 8. Diseño del sistema de información. 9. Desarrollo del sistema de información. 10. Desarrollo de página Web en la cual se accederá a la información clasificada para su consulta. 11. Seguimiento. 236 Fig. 1. Modelo del proceso racional unificado (RUP, Rational Unified Process), cuatro fases esenciales. 3.6 Usuarios específicos El sistema estará diseñado para su uso en diferentes niveles; esto es, para usuarios de la administración del sistema, de niveles de gestión y administración pública, y para los usuarios finales del sistema: • Instituciones de gobierno. • Instituciones del sector privado. 4 El crecimiento de una región está dictado por la gestión de la innovación que en ella se produzca Para que una región crezca, debe aumentar su capacidad innovadora. El proceso de innovación y la creación de medios están relacionados con las grandes fuentes de información: centros de investigación y desarrollo, universidades, empresas provistas de un personal especializado dedicado a la investigación y el dessarrollo. Las IES son básicas para el sistema de innovación de una región o un país, junto con las empresas y las entidades públicas. La concentración y el flujo de información entre centros de investigación y empresas se propicia mediante el uso de un sistema de información apoyado en las tecnologías de la información, impulsando la innovación en su entorno; transmitiéndola mediante la formación, publicación y divulgación, y transfiriéndola a las organizaciones de su entorno, el cual estará estructurado como se muestra en la figura 2. 237 Fig. 2. Descripción general del Siedcyt. 4.1 El escenario local En Baja California existe un ámbito favorable para la creación de un medio innovador porque su situación es la siguiente: A. En el sector empresarial se identifican capacidades para producir innovaciones, integrarse en clústers y responder a demandas de competitividad internacional con nuevas formas productivas y organizativas. B. En los sectores educativo, de ciencia y tecnología, las interacciones para articularse con el sector productivo son escasas y han estado determinadas por el desarrollo industrial y educativo. C. El sector público o de gobierno local no tiene observatorios y mecanismos de información empresarial proclives a la innovación. D. Recientemente, se ha despertado el interés por el desarrollo de clústers; destacan aquellos cuyo origen está en el mismo sector productivo, como los de electrónica, industria automotriz y productos médicos; aquellos promovidos por iniciativas empresariales y educativas, como los de software, y los alentados por las políticas del Estado, como los de las industrias automotriz y aeronáutica. 5. Conclusiones e investigaciones futuras En este trabajo se describieron las etapas definidas para la realización del proyecto. Actualmente, ya se ha elaborado el instrumento que apoyará en la recolección de información, con acceso por medio de la Web. Este sistema facilitará y agilizará la recolección de datos. Se considera que el análisis de los 238 resultados obtenidos una vez que se haya aplicado este sistema será una investigación relevante a desarrollar en el futuro; además, deberá hacerse una valoración del sistema de información Siedcyt, del recibimiento que éste haya tenido por parte de la comunidad de ciencia y tecnología del estado de Baja California y de las implicaciones que este sistema pueda tener en el desarrollo de esta área. La innovación y el cambio técnico no son procesos lineales ni tienen las características de una empresa, sino que son el resultado de un entorno que promueve espacios para generar, adoptar y difundir innovaciones, conocidos como ‚espacios emergentes‛, ‚regiones que aprenden‛ o ‚entorno innovador‛. Un territorio innovador es un sistema productivo vinculado a una o varias actividades, en el que una buena parte de las empresas y organismos existentes realizan esfuerzos en el plano de la innovación tecnológica, incorporando mejoras en los diferentes procesos asociados a su cadena de valor y en los productos que ofrece. Por lo anterior, consideramos este sistema como una acción concreta para avanzar en el camino de la innovación tecnológica y apoyar la inversión tecnológica en la región. Referencias 1. Baca Urbina, G., Formulación y evaluación de proyectos informáticos, McGraw Hill, 2006. 2. Bernal Torres, C. A., Metodología de la investigación: para administración, economía, humanidades y ciencias sociales, Pearson Educación, 2006. 3. Cabrero Mendoza, E., El diseño institucional de la política de ciencia y tecnología en México, Universidad Nacional Autónoma de México, 2006. 4. Cohen Karen, D., Sistemas de información para los negocios: un enfoque para la toma de decisiones, McGraw Hill, 2005. 5. Consejo Nacional de Ciencia y Tecnología (Conacyt), Ciencia y tecnología para la competitividad, Fondo de Cultura Económica, 2006. 6. Consejo Nacional de Ciencia y Tecnología (Conacyt), Informe general del estado de la ciencia y la tecnología: México 2006, Conacyt, 2006. 7. Gómez Vieites, Á., Sistemas de información: herramientas prácticas para la gestión empresarial, Alfaomega, 2007. 8. Hernández Sampieri, R., Fundamentos de metodología de la investigación, McGraw Hill, 2007. 9. Kendall, K. E., Análisis y diseño de sistemas, Pearson educación, 2005. 10. López García, X., Sistemas digitales de información, Pearson Prentice Hall, 2006. 239 11. O’Brien, J. A., Sistemas de información gerencial, McGraw-Hill, 2006. 12. Oros Cabello, J. C., Navegar en Internet: diseño de páginas Web interactivas con JavaScript y CSS, Alfaomega, 2006. 13. Pacheco Espejel, A., Metodología crítica de la investigación: lógica, procedimiento y técnicas, Grupo Patria Cultural, 2006. 14. Patten, M. L., Understanding Research Methods: An Overview of the Essentials, Pyrczak, 2005. 15. Rodríguez Durán, A., Ciencia, tecnología y ambiente, International Thomson, 2002. 16. Salomon, Jean-Jacques, Una búsqueda incierta: ciencia, tecnología y desarrollo, Centro de Investigación y Docencia Económicas-Editorial de la Universidad de las Naciones Unidas-FCE, 1996. 17. Takayanagui, A. D., La universidad del futuro: relaciones entre la educación superior, la ciencia y la tecnología, UNAM, 2000. 18. Tamayo y Tamayo, M., El proceso de la investigación científica: incluye evaluación y administración de proyectos de investigación, Limusa, 2007. 19. Uscanga, C., Las políticas para el desarrollo de la ciencia y tecnología en Japón, UNAM, 2008. 20. Whitten, J. L., Análisis y diseño de sistemas de información, McGraw Hill, 2003. 21. Investigador y Desarrollo, en Internet (http://www.invdes.com.mx/), página consultada en enero de 2009. 22. Compendio de Revistas Electrónicas Nacionales, en Internet (http://bivir.uacj.mx/temas/secciones/temarevistasnacionales.htm), página consultada en enero de 2009. 23. Ciencia y Desarrollo, Concyt, en Internet (http://www.conacyt.mx/comunicacion/revista/index.html), página consultada en enero de 2009. 24. Índice de Revistas Mexicanas de Investigación Científica y Tecnológica, Concyt, en Internet (http://www.conacyt.mx/Indice/Index_Indice.html), página consultada en enero de 2009. 25. Red De Revistas Científicas de América Latina y el Caribe, España y Portugal, en Internet (http://www.redalyc.com/), página consultada en enero de 2009. 26. Innovación Tecnológico-Educativa, en Intenet (http://cv1.cpd.ua. es/catalogaxxi/c10067ppesii1/s127769/p127740nn1/index.html), página consultada en enero de 2009. 240 Advanced Tools for the estimation of basic Knowledge Level on Education and Training José Alberto Hernández-Aguilar, Gennadiy Burlak, René Santaolaya S., Alberto Ochoa, Messouma Atakishiyeva Resumen. Nosotros describimos el uso de nuestro sistema de evaluación en línea (Cliente-Servidor) equipado con capacidades de reconocimiento biométrico, aplicado para evaluar el conocimiento básico en una preparatoria. En este reporte discutimos la posibilidad de la identificación real de estudiantes remotos para resolver el importante problema de: ¿quién está ahí?. En nuestro experimento, seleccionamos aleatoriamente una muestra de estudiantes (n=54) y llevamos a cabo dos evaluaciones: una evaluación normal (en lápiz y papel), y una evaluación por computadora. En este último caso, nuestro sistema de evaluación en línea con herramientas biométricas puede autentificar a un estudiante por medio de la huella digital. Si un estudiante es autentificado, el sistema permite la evaluación en línea, mientras tanto el estudiante está siendo monitoreado por cámaras Web. Durante la evaluación en línea los estudiantes fueron afectados por el ambiente en línea, ellos obtuvieron bajas calificaciones en línea con respecto a los exámenes tradicionales. El reconocimiento de huella digital fue muy bien aceptado. Sin embargo, a 13% de los estudiantes evaluados les disgustó ser monitoreados con cámaras Web, y el 20% de ellos encontraron alguna forma de hacer trampa. Esta tecnología nos permite obtener estadísticas comparables de ambas evaluaciones, y discutir recomendaciones generales para la estrategia, tecnología y equipamiento de las evaluaciones en línea. Palabras Clave. Reconocimiento de huella digital, Biometría en education, Evaluación en línea, Multi biometría. Abstract. We describe the use of our online assessment system (Server-Client) equipped by biometric recognition capabilities, applied to evaluate the basic knowledge in a High School. In this Report we discuss the possibilities of real identification of remote students to solve important problem: ‚Who's there?‛ In our experiment we randomly selected a sample of students (n=54) and performed two evaluations: a normal evaluation (paper and pencil), and a computer assessment. In the latter case our online assessment system with biometric tools could authenticate a student by means of index fingerprint. If a student is authenticated, the system allows online assessment, meanwhile such a student is being monitoring by web cams. During online assessment students were affected 241 by the online environment, they obtained lower grades online than on traditional tests. Fingerprint recognition was very well accepted. However, 13% of students tested dislike web cam monitoring, and 20% of them noticed a way to commit cheat. This technology allows us to obtain the comparable statistics of both evaluations and discuss general recommendations for strategy, technology and equipping of online computer assessment. Sumario 1. Introduction 1.1 The problem at hands 2. Methodology 3. The Online Testing System with Biometric Recognition 3.1 Technical requirements 3.1.1. The Server Side 3.1.2. The Client Side 3.2 Performance Schema 3.3 Implementation 3.3.1. Hardware 3.3.2. Software 3.3.3. Accumulation and analysis of information 4. Results and Discussion 5. Future work 6. Conclusions. References. 1 Introduction Nowadays the problems of information security are of great importance, and it is not surprising that problems of ‚educational security‛ become be common also [11]. The Faculty who has not taught online often asks about cheating. Specifically, they ask how you know the person who is taking the class is the one who signed up. Unless photo IDs are checked and all course work occurs inside of a monitored classroom, faculty really does not know for sure whether the student is who they say they are in the classroom or online [10]. On online assessments in which we are not sure who is taking the test; students will be under pressure, some students perform unfairly poorly under pressure and this is a good incentive to cheat [11]. We have a wide spectrum of documented techniques to commit cheat on online assessments, for instance: modify a grade in the database (DB), to steal answers for questions, to copy from another student or cheat sheets, impostor or substitute remote students, to search for answers on the Internet or in blogs, on the messenger or cellular phone, in single words to ‚commit cheat‛ to obtain a ‚better grade‛ in an online assessment *6+. Biometrics is becoming a powerful tool to improve security on transactions and reduce frauds [7]. Most of e-learning tools providing online assessment uses only basic and standard security measures and normally do not provide advanced security mechanisms, for instance the Blackboard system [2] that use an username and password to verify the student identity, and profiles in database (DB) to avoid unauthorized access. An advanced security measure can be implemented by means of modern biometric technologies. Much of the hot discussion about biometrics has come 242 about the level of research and interest was drawn to large-scale implementations of the technology by Governments [4]. They may provide added robustness in access and control to high security facilities within higher education. Since the unit price for biometric devices continues to fall it is possible to employ them to replace the normal systems used for workstation and network access [13]. 1.1 The problem at hands The main problem on online assessments is how to know ‚who’s there?‛ . In this paper, we propose the use of biometrics, particularly the use of fingerprint recognition on real time to authenticate students into the assessment system, and web cam monitoring during online assessments to deal with the well-known problem of: who is taking the exam? The contribution of this paper is the use of biometrics on online assessments as a new approach for remote identification on real time, we realized several proposals considers this problem, however none documented implementations of such technologies has been tested with flesh and bone students. Some of these proposals reflect separated point of views of IT, educational professionals with different perspectives. However in general such a problem can be solved by efforts of multidisciplinary team works jointed with mathematical professors, psychologists, statistics professionals and IT consultants. 2 Methodology Sample. For our experiment, we selected a random sample of students (n=54) from the José María Morelos y Pavón High School, located in Temixco, Morelos, México. A school located in urban area located near capital city of Cuernavaca, Morelos. Total population of school is 642 students. The students profile was: 15 to 17 years old, socio-economic level C-, D (low middle class-, upper low class) 89% owns a computer, 65% of their parents complete elementary school studies only, and just 56% of those are married. Tests design. Professors of this school designed the tests (from August 5th and 6th 2007); one of such a test was implemented for the discussed online assessment with the use of our authoring tools. The tests consisted of 30 questions with similar complexity level; we evaluated the mathematics basic knowledge, specifically: arithmetic, algebra, geometry, statistics, probability and trigonometry. Type of task. Typical task is to select one of six answers to proposed question. i.e. which value of X makes true the next equation 7X-9 = 3X+1? 243 a) 12 b) 8 c) 2.5 d) 5 e) 3.2 f) -5 We carried out two evaluations, a normal evaluation (paper and pencil), and a computer assessment with our online system equipped with biometric recognition. Setting up. Computers were prepared with our online client software installed; biometric devices and network connectivity was attached. The traditional test. The paper-and-pencil test was conducted on August 14th. 2007. Enrollment. Students were enrolled into the system by taking their left-hand index fingerprint on August 15th 2007. We verified that the students were identified clearly by the recognition system after their enrollment. Online assessment with biometric recognition test. Was conducted on the Computers Network Laboratory located at the High School facilities from August 16th to August 17th 2007, each computer used in the experiment had attached a Microsoft Fingerprint Reader, a web cam, a broad band connection to our server as well as our proprietary client system. Students were instructed in how to use the system, we explained them that a web cam was monitoring their activities, later students authenticated by means of their fingerprint into our Server. After that the computerized assessment started. The use of calculator and cellular phones was avoided. Statistical Analysis. After termination of assessment, obtained data were processed using standard statistical tools with the use of Ccount gnu free software. 3 The Online Testing System with Biometric Recognition Virtual proctoring involves using biometric technology to monitor students at remote locations. For virtual proctoring, is recommended using a layered approach depending on critical maturity of the test. With high stakes tests, video monitoring and a biometric measure such as iris scanning may be used. For medium stakes tests, a single biometrics measure may be acceptable [3]. Despite most of online assessments are located in the middle of both definitions; we consider the fact of high levels of cheating in remote assessments. In one hand, fingerprint recognition is a single biometric measure, the cheapest, fastest, most convenient and most reliable way to identify someone. And the tendency, due to scale, easiness and the existing foundation, is that the use of fingerprint will only 244 increase [8]. Cars, cell phones, PDAs, personal computers and dozens of products and devices are using fingerprint recognition more and more [5]. One current trend is to incorporate fingerprint scanners into personal computers, laptops, and mice. In addition, computer networks and large databases can be secured using fingerprint technology. This is a hot topic of discussion since the phenomenon of the Internet and the development of Intranets has spawned new digital technologies such as E-commerce and on-line services [7]. Besides, users are more willing to use fingerprint recognition than iris recognition [1], they believe is more secure for health. Unfortunately, fingerprint recognition is used just to authenticate into systems, but then what? The student is free to use any media to commit cheat, to avoid that situation we considered the possibility to use web cams. Web cams are inexpensive and most of students are used to deal with them, they form part of their common tools to work and chat. Is for sure that some students will reject the possibility to be monitored, percentages vary from country to country, but is our intention to measure this figure as a part of our research. Based on above exposed, we propose the use the mix of video monitoring, by means of web cams, and fingerprint recognition to provide a secure online assessment environment. 3.1 Technical requirements 3.1.1. The Server Side. Keep information of biometrics measures (fingerprints) and associated student information in database; Scanning of fingerprints (enrollment of students); Provide a recognition tool to determine validity of fingerprint and grant authorization to online assessment; Monitor remote students by means of web cams located in remote locations. Support the online assessments process; Provide security mechanisms to ensure confidentiality and validity of data: Encryption of data transmitted and received, and generation of log files. 3.1.2 The Client Side. Scanning of fingerprints; Enrollment of students (optional); Avoid the unauthorized access to online assessment; Show the diagnosis of security. Provide capacity of students' monitoring using web cams during assessment process; Provide mechanisms for client setup, students’ authentication (using fingerprint), and evaluation preferences; Support the evaluation process and show final results of evaluation. 3.2 Performance Schema We separated the application in two main modules: the first one is on charge of the online assessment conduction, and the second one on charge of the 245 fingerprint recognition and web cam monitoring on real time. Server must be in listening mode waiting for Clients that requires a service. In order to use fingerprint recognition, the first step is to enroll students –top, right side in Figure 1-, the students fingerprint is saved and indexed in the Features Database, we highly recommend to separate this from the Assessment System Database, using even separated servers, to improve system overall performance. In the features database is assigned the Student Personnel ID that is used to link the students’ personnel information with fingerprint image. Fig. 1. Fingerprint recognition on real time. If the Sever is on listening mode and the student has been enrolled, the assessment process can start. The student enters to the online assessment application, and when system requires the user and password, his or her uses the Mouse Id –superior right side of Figure 1- to scan his/her fingerprint. The fingerprint is verified in the Features Database, and if it is recognized as a valid, then the Server authorizes access to the online assessment application, else an error message is sent to the Client to try again. In other hand, if the student’s fingerprint is valid, the user is authenticated into system, the evaluation process starts and web cam transmission is initialized at Client Side to conduct real time monitoring by means of multitasking. If someone else tries to get the control of the computer during the online assessment, the evaluation process is finished prematurely, and results are sent to server side to be processed as they are. To the contrary, the evaluation process is finished successfully, the assessment is processed at Server Side, and the final results of evaluation and security status are shown at Client Side. 246 To measure the security level provided by the fingerprint recognition system at the stage of authorization we used two ratios: - False Acceptance Rate (FAR). is defined as the ratio of impostors that were falsely accepted (IFA) over the total number of impostors tested (TNIT) described as a percentage. This indicates the likelihood that an impostor may be falsely accepted and must be minimized in high-security applications. FAR = IFA / TNIT (1) - False Reject Rate (FRR). is defined as the ratio of clients that are falsely rejected (CFR) to the total number of clients tested (TNCT) described as a percentage. This indicates the probability that a valid user may be rejected by the system. FFRR = CFR / TNCT (2) On fingerprint recognition the speed and storage requirements acquired relevancy, specifically the time required to enroll, verify or identify a person is of critical importance to the acceptance and applicability of the system [13]. Below we listed the specifications of the selected hardware and software. 3.3 Implementation. We separated the application in two main modules: the first one is on charge of the online assessment conduction 3.3.1. Hardware. - Client System Requirements (minimal). Pentium class (i386) processor (200 MHz or above) with 128Mb or higher, 100Mb disk space. - Fingerprint mouse. 250 DPI (Digits per Inch) or higher, 500 DPI is recommended. - Broadband Internet. Minimum 128 Kbps, recommended 256 Kbps. 3.3.2. Software. - Biometrics SDK. Griaule GrFinger SDK 4.2 [5] allows you to integrate biometrics in a wide variety of applications. Provides Support for dozens of programming languages –including Java- and integration with several Database Management Systems. Besides, provides multiple fingerprint reader support, and even after application development or deployment, makes you able to change the fingerprint reader you’re using, without modifying your code. 247 - Fingerprint template size. 900 bytes average. - Programming language. Java. due the online assessment software tool was developed using this technology. - JMF Java Media Framework. To allow transmission of video and/or photographs over the Internet. - Web Server. Apache 2.0. Database Management System. MySQL. - Operating System. Windows 98, and Windows NT. Windows 2000, Windows XP and 2003. (a) (b) Fig. 2. The Server Application (a) supporting fingerprint recognition in Clientside (b) to authenticate students in online assessments. In Fig. 2, the left section (a) shows the Server Side and the users connected, specifying remote IP address, date and connection time. The right section (b) the client-side, here the user enters to the client application, setup the client and establish connection with server on a specific port and host, once the server and the client have established connection, the student authenticates into server by means of fingerprint using the fingerprint reader, the student can see graphically displayed her/his fingerprint, if the fingerprint is found at server side, the interface automatically fills the user and password fields and allows the student to continue with subject selection to be assessed, and later with the assessment process. 248 Fig.3. Web cam monitoring while online assessment is in progress. In Fig. 3, the online assessment interface is shown, the questions and respective answers are randomly sorted, questions have a limited time to be answered, if a question can not be answered on assigned time, test will continue with the next question automatically. Student must select an answer by giving double click or by selecting one of the available answers and then giving a click on the enter button. As soon as the assessment starts, web cam monitoring sends information to server side to know who is in control of the computer. The biometric information is verified at server side and if an identity error occurs the test is interrupted and the assessment is processed as it is. Else assessment continues normally operation. At the end of the assessment, the grade, the protocol of the assessment and the security report is shown at client side. 3.3.3. Accumulation and analysis of information. The biometric information and the responses of students were stored in a MySQL Database Version 5.0. We selected this software, because is a powerful free software that can be downloaded from the internet for academic purposes, and is strong enough to support hundreds of online transactions –in our case online assessmentssimultaneously, besides provides security mechanisms that makes applications work secure. We recommend obtaining a commercial license of this software, if is required managing thousands of simultaneous transactions, or for commercial applications. Quality of analysis depends on how well structured was the database, for this purpose, we identify the whole relevant entities: Students, Students' Perception, Results of evaluation, history log, Careers, Subjects, Topics, Students perception, Subject environment and Professor, and we implemented these on a MySQL database Schema. 249 4 Results and Discussion Considering the number of students enrolled (n=54) on this test with obtain a FAR of 99.99% and a FRR of 97.09%, only one student could not be recognized despite several trials, although we try to enroll her using different fingers of her left hand we could not, she has tiny long fingers and the enrollment results were always the same. Her fingerprint template is unintelligible to the fingerprint recognition system, her fingerprints seems like stains. Something related has been documented in [9], Asiatic persons has similar problems to be identified by fingerprint readers. We faced this problem by providing to this student an user and a strong (mix of capital letters, lower letters and numbers) password. Our results showed that students were affected by the online environment, they obtained lower grades online versus grades on traditional tests. The average grade in paper and pencil test was 3.8 meanwhile the online grade was 3.5, this difference is explained due an small percentage of students must improve their computer skills, we noticed that video games and chat could improve skills of students as well as general performance in online assessments. Students perceived our system as faster, easy to use; fingerprint recognition played an important role in this perception. However, they disliked time limited questions, and 13% disliked web cam monitoring. When we asked them directly if they disliked being monitoring, 33% answered this fact bothers them. They said feeling under pressure, getting nervous and disliked being monitored or watched. A 20% of the students tested, noticed a way to commit cheat using a system like ours, the identified ways were: turn the camera to some else, use a photo, use a cheating list, and just one person thinks to dirt the fingerprint reader. We made in-depth analysis and discovered that students with poor performance (low grades) are willing to commit cheat. 78 % of the students would like the system being implemented at their high school. We consider that the online assessment system with biometric recognition was very well accepted, but must be adapted to be more user friendly, to improve perception of students, process to enroll users must be improved too. We believe that our results are quite interesting and hot, despite in [14] is discussed the application of fingerprint readers and the use of cameras in online assessments, there are not figures to analyze; as we explained, we tested our system with flesh and bone students which is an improvement regarding this previous work. State of the art systems like Blackboard [2] provide some basic biometric recognition facilities (i.e. photo ids), but they require that a human proctor verify the identity of students, the purpose of our system is to perform this task automatically online. 250 5 Future work We intend to improve the human-computer interface and assessment methodology with the use of students’ comments and feedback. We want to test the tool within different groups at different high schools and Universities. Regarding of the biometric recognition, we intend to improve strongly the quality of recognition. 6 Conclusions Biometric recognition is a promising technology to solve the problem of who is there? As it is shown in this report, this technology already is well accepted in online assessments, but it still should be subject to improvement. References [1] AIDC. Automated Identification and Data Capture Web Site, http://et.wcu.edu/aidc/ [2] Blackboard. Security, http://www.blackboard.com/us/index.aspx [3] BSU. Ball State University. Technology assessment reports on: The use of Biometrics in education. http://web.bsu.edu/dpmuller/biometrics/ *4+ Clarke, N. and Furnell, S. ‚Biometrics: The promise versus the practice‛. Computer Fraud & Security 2005, Issue 9, September 12-16. [5] Griaule. Biometrics FAQ, http://www.griaule.com/page/en-us/faq_biometrics [6] Hernández-Aguilar J.A., Ochoa, A., Muñoz, J., and Burlak, G. ‚Detecting cheats in online student assessments using Data Mining‛. Dmin06, Las Vegas Nevada, USA 2006. June 26-29, pp. 204-210. [7] ITEDU. Biometrics, http://et.wcu.edu/aidc/ *8+ Maltoni, D., Maio, D., Jain, A., and Prabhakar, S. ‚Handbook of Fingerprint Recognition‛, Springer 2003. [9] Michigan Org, http://www.reachoutmichigan.org/funexperiments/agesubject/lessons/prints_ext.html *10+ MSU Michigan State University, ‚Quizzes and Exams: Cheating on exams and Quizzes‛. http://teachvu.vu.msu.edu/public/pedagogy/assessment/index.php?page_num=3 . *11+ Neil, R. ‚Cheating in Online Student Assessment: Beyond Plagiarism‛. Online Journal of Distance Learning Administration, Volume VII, Number II, Summer 2004 State University of West Georgia, Distance Education Center. 251 *12+ Savvas, A. ‚Online assessments and biometrics used in new immigration system‛. Computer Weekly Section IT Management Politics and Law. 3/14/2006, pp .10-10, 1/7p. *13+ Wasniowski, R. ‚Using Data Fusion for biometric verification‛. Transactions on Engineering, Computing and Technology APRIL 2005. pp. 7274. *14+ Wisher, R. Curnow, C. and Belanich J. ‚Verifying the Learner in distance learning‛. 18 Annual Conference on Distance Teaching and Learning 2005. 252 Relajación del Problema de Calendarización de Trabajos en un Taller de Manufactura Utilizando un Grafo Bipartita Marco Antonio Cruz-Chávez, Alina Martínez-Oropeza, José Crispín Zavala-Díaz, Martín G. Martínez-Rangel Resumen. En este artículo se aborda el problema de calendarización de máquinas en un taller de manufactura. Se establecen las restricciones básicas y el modelado por medio de un grafo disyuntivo. Con el modelo se mapea el problema de máquinas en paralelo no relacionadas a través de un grafo bipartita. Se hace un análisis de las restricciones de ambos problemas para llevar a cabo una relajación del problema de manufactura. Al llevar a cabo la relajación del problema de manufactura, se tiene que cualquier operación puede ser asignada a cualquier máquina, además de que la restricción de precedencia entre par de operaciones deja de aplicarse. La aplicación del modelo de grafo bipartita aproximado se muestra como un nuevo modelo alternativo para representar el problema de máquinas en un taller de manufactura, pudiendo ser éste una opción para trabajar con este tipo de problemas en lugar de utilizar el modelo de grafo disyuntivo. Palabras clave: problema de máquinas paralelas no relacionadas, grafo disyuntivo, grafo bipartita, problema de calendarización de trabajos en talleres de manufactura, relajación. Sumario: 1. Introducción 2. Definición del JSSP 3. Restricciones 4. Modelo de grafo disyuntivo 5. Modelo de grafo bipartita 6. Relajación del JSSP 7. Conclusiones 8. Trabajos futuros Referencias. 1 Introducción El problema de calendarización de trabajos en un taller de manufactura mejor conocido por su acrónimo en inglés, JSSP (Job Shop Scheduling Problem), está considerado como uno de los de mayor relevancia en el área de manufactura y optimización, ya que la administración, así como el manejo eficiente de los 253 recursos, es de vital importancia en las empresas. Debido a su complejidad, el JSSP ha sido uno de los problemas más estudiados durante las últimas cuatro décadas; por este motivo, ha obtenido más avances en el área de la calendarización y sirve como referencia para comparar las técnicas empleadas en diversos problemas clasificados como difíciles, como el del agente viajero, entre otros. Además de estar clasificado en la Teoría de la Complejidad como un NPDuro,1 también se le conoce como uno de los más difíciles de resolver en ésta clasificación. La clase NP-Completo puede definirse alternativamente como la intersección entre un NP y un NP-Duro. Una característica del tipo NP-Duro es que no se conoce un algoritmo determinístico que resuelva en tiempo polinominal problemas de esa clasificación, 23 por lo que muchos investigadores han tradtado de resolverlos empleando métodos de optimización diversos, como los siguientes: Branch and Bound,11 algoritmos genéticos,12 recocido simulado,13 colonia de hormigas,3 entre otros. Algunos de estos algoritmos han sido diseñados específicamente para resolver ciertas instancias del problema. Varios enfoques para resolver el JSSP han sido propuestos usando diversos modelos. Los modelos más utilizados son los grafos disyuntivos, 14 la satisfacción de restricciones15 y la programación lineal entera.14 Instancias pequeñas, medianas y grandes del JSSP modeladas con el grafo disyuntivo se resuelven o encuentran soluciones aproximadas al óptimo global por medio de metaheurísticas, las cuales aplican métodos de búsqueda local. Instancias pequeñas del JSSP modeladas con programación lineal entera se resuelven con algoritmos exactos. Los métodos de búsqueda de tipo heurísticos llegan a ser muy rápidos para encontrar una solución factible para una instancia del JSSP, pero desafortunadamente no existe prueba de optimalidad de que la solución encontrada sea la óptima. Sin embargo, los métodos de búsqueda proporcionan un punto de arranque. Los métodos basados en satisfactibilidad, 9,15,17 y reglas de prioridad20 son algunos ejemplos de métodos de búsqueda. El método de cuello de botella18,19 es un tipo especial de búsqueda que tiene mejor rendimiento que muchos otros, pero solamente en instancias pequeñas. En general, las soluciones de programación lineal entera, mejor conocida por su acrónimo en inglés, ILP (Integer Linear Programming), y los paquetes de diagramas binarios de decisión, mejor conocidos por su acrónimo en inglés, BDD (Binary Decisión Diagram),10 son utilizados para obtener soluciones exactas para muchos problemas de automatización. El de la calendarización, en cambio, ha sido encaminado por los investigadores enfocándose en cualquiera de estos métodos. Las formulaciones basadas en la ILP son más populares para la calendarización, aunque los calendarizadores basados en los BDD ofrecen también soluciones atractivas. Una deficiencia de las soluciones basadas en los BDD es que el tamaño del diagrama binario de decisión llega a ser muy grande para instancias grandes del 254 problema.21 La mayoría de estos métodos requiere una solución inicial factible al comienzo del proceso.9 El alcance de la investigación es desarrollar un algoritmo con el enfoque de colonia de hormigas (ACO), el cual se encuentre paralelizado por medio del paso de mensajes, utilizando lenguaje C y la librería de paso de mensajes MPI, para, de esta forma, ser implantado en una estructura de clúster. El algoritmo propuesto resolverá el problema relajado de calendarización en un taller de manufactura. Se comprobará entonces su eficiencia y eficacia por medio de problemas de prueba generados de manera aleatoria. Estos benchmarks permitirán probar el rendimiento del algoritmo, el cual será comparado con algoritmos de búsqueda local que ya han sido probados, como lo es el de recocido simulado, y un algoritmo exacto, como el Simplex. Las pruebas a realizar se harán de acuerdo con lo que propone el área de estadística, para su evaluación y análisis completos. Es decir, serán utilizados los mismos problemas (benchmarks) para probar los tres algoritmos a los que nos hemos estado refiriendo y, de esta forma, calcular su eficiencia, eficacia y error relativo, comparando estos resultados directamente con los de los otros dos algoritmos. La alternativa para representar el JSSP utilizando un grafo bipartita, el cual puede ser resuelto como un problema de tipo P al relajar el problema, da una posibilidad muy atractiva para probar algoritmos exactos y de tipo metaheurístico aplicados en la literatura a la solución del grafo bipartita22 y para evaluar su eficiencia y eficacia en el JSSP. El reto de encontrar rápidamente una solución factible es mapear una instancia del JSSP como un problema de máquinas en paralelo no relacionadas, donde se relajan las restricciones del problema para representarlo por medio de un grafo bipartita. En las siguientes secciones del artículo se aborda la definición del JSSP, explicando la definición general del problema, su objetivo y sus restricciones básicas; el modelo del JSSP, explicándolo por medio de un grafo disyuntivo y dando una solución para una instancia de 3 x 3; la definición del grafo bipartita y sus características, además, en esta sección se lleva a cabo una representación de la instancia utilizada para el JSSP por medio de un grafo tipo bipartita; luego se explica como se llevó a cabo la relajación del problema para representarlo por medio de un grafo bipartita y, por último, se mencionan las conclusiones del artículo así como los trabajos futuros. 2 Definición del JSSP El problema se define como conjuntos de máquinas y trabajos, donde cada trabajo cuenta con cierto número de operaciones que deben ser procesadas 255 durante determinado tiempo en determinada máquina sin interrupciones. Cada máquina puede procesar únicamente una operación en un instante de tiempo. De manera que se puede definir el problema clásico del JSSP como un conjunto finito J de n trabajos {Jj} 1 ≤ j ≤ n, los cuales deben ser procesados en un conjunto finito M de m máquinas {Mk} 1 ≤ k ≤ m. Cada trabajo es visto como una secuencia de máquinas en las cuales puede ser procesado. El procesamiento de un trabajo Jj en una máquina Mk se conoce como Ojk. La operación Ojk requiere el uso exclusivo de una máquina Mk, donde el tiempo de procesamiento de cada operación no permite interrupciones y es conocido como tjk.3 A continuación, se presenta una solución al problema para una instancia de 3 x 3 (véase el cuadro 1). El conjunto de soluciones para este problema está dado por (n!)m, es decir para un problema de 3 x 3 tendríamos 216 posibles soluciones, de las cuales, no todas son soluciones factibles, debido a que algunas de ellas violan restricciones de precendencia. Cuadro 1. Instancia de un problema de JSSP con tres máquinas y tres trabajos con tres operaciones cada uno. Operaciones Trabajos 1 2 3 Máquinas (tiempo de procesamiento) 1 2 3 1(1) 2(2) 3(1) 1(3) 3(1) 2(3) 2(2) 1(2) 3(3) La solución propuesta a este problema con los datos de entrada del cuadro 1 puede ser representada por medio de una gráfica de Gantt (ver figura 1), donde se representa tanto la calendarización de las operaciones como las unidades de tiempo que se consumen para procesarlas (makespan). Una característica importante del JSSP es que la máquina que comienza, no necesariamente empieza con el primer trabajo, sino que cualquier máquina puede empezar o terminar, ya que el orden de procesamiento de los trabajos en las máquinas es una restricción del problema.6 256 Fig. 1. Una de las 216 posibles soluciones para un problema de tres máquinas y tres trabajos. 3 Restricciones Para llevar a cabo la calendarización de trabajos en un taller de manufactura, es necesario definir ciertas restricciones, porque éstas aseguran la integridad de las operaciones y la eficiencia del proceso. A continuación, se enumeran las restricciones consideradas para este problema. Una máquina puede procesar sólo un trabajo en un instante de tiempo. Un trabajo no debe procesarse en una misma máquina dos veces. No existen restricciones entre operaciones de trabajos diferentes. Una vez que una operación es asignada, no puede ser interrumpida. Un trabajo consiste en i número de operaciones. Existe una restricción de precedencia entre las operaciones de un mismo trabajo, lo cual, al igual que los tiempos de procesamiento, son datos conocidos. Existe una restricción de capacidad de recursos, la cual es conocida como la secuencia de operaciones en una máquina, y son datos conocidos. Las operaciones de los trabajos tienen la misma prioridad. No se especifican fechas de liberación ni de vencimiento. La calendarización de trabajos factible puede obtenerse permutando el orden de las operaciones en las máquinas, cuidando de no violar las restricciones anteriormente especificadas.6 257 4 Modelo de grafo disyuntivo El problema del JSSP, puede ser descrito por un grafo disyuntivo , donde V es el conjunto de operaciones de los trabajos junto con dos nodos especiales: fuente y destino, los cuales indican el inicio y fin de la calendarización. C es el conjunto de arcos conjuntivos que representan la secuencia de las operaciones (restricción de precedencia). D consiste en el conjunto de arcos disyuntivos (cliqués) que representan el conjunto de operaciones que deben ser procesadas en la misma máquina.2 El tiempo de procesamiento para cada operación se encuentra definido, además de que el tiempo de procesamiento del último trabajo (Cmax) depende directamente de la secuencia de operaciones en cada máquina. A continuación se muestra la representación de una instancia del JSSP de 3 x 3 por medio de un grafo disyuntivo (véanse la figura 2 y el cuadro 1). Fig. 2. Representación de un problema de 3 x 3 por medio de un grafo disyuntivo. Un arco disyuntivo puede estar orientado por cualquiera de sus dos extremos. Al momento de llevar a cabo la calendarización, se fija la orientación de los arcos disyuntivos; de esta forma, se obtiene la secuencia de operaciones que serán procesadas en cada máquina. Una vez que se obtiene la secuencia de operaciones, los arcos disyuntivos cambian a arcos conjuntivos (véase la figura 3). La calendarización de las operaciones, como se mencionó anteriormente, se puede representar por medio de una gráfica de Gantt. Para esta solución, tenemos la calendarización final en la figura 1. 258 Fig.3. Una solución para el problema JSSP con tres trabajos en tres máquinas, donde se encuentra definida por arcos conjuntivos la secuencia de operaciones en cada máquina, respetando las restricciones de precedencia y de capacidad de recursos. 5 Modelo de grafo bipartita Un grafo bipartita es un grafo no dirigido que tiene la característica de que su conjunto de vértices V puede ser dividido en dos subconjuntos disjuntos , de tal forma que cada arco conecta un vértice de cada subconjunto, es decir, un arco conecta un elemento del subconjunto V1 y uno del V2, tomando en cuenta que no deben existir adyacencias entre elementos de un mismo subconjunto.5 A continuación, se enumeran las características básicas de un grafo bipartita. Los subconjuntos V1 y V2 son disjuntos y no vacíos. Cada arista de A une un vértice de V1 con uno de V2. No existen aristas uniendo dos elementos de V1; análogamente para V2. Tomando en cuenta estas características, se representó el problema del JSSP por medio de un grafo tipo bipartita (véase la figura 4). Esto fue así debido a que ya existen algoritmos de programación lineal que resuelven grafos bipartitas, como es el caso del método Simplex. Fig. 4. Representación del problema JSSP por medio de un grafo bipartita. 259 De acuerdo con esta representación (véase la figura 4), se dice que es un grafo tipo bipartita, debido a la restricción de precedencia que prevalece representada entre las operaciones de cada trabajo. Una vez que se tiene esta representación, es necesario relajar las restricciones del problema para representarlo como un grafo bipartita auténtico y de esta forma tratar de resolverlo por medio de algoritmos de programación lineal. 6 Relajación del JSSP Para llevar a cabo la relajación del JSSP, fueron analizadas cada una de las restricciones, llegando a la conclusión de que algunas de las restricciones básicas del problema pueden ser tomadas de forma implícita, es decir, que no necesariamente tienen que estar representadas gráficamente en el grafo, por lo tanto, en general, la representación del grafo bipartita para esta instancia del JSSP queda de la siguiente manera (véase la figura 5). Fig. 5. Representación del JSSP relajado por medio de un grafo bipartita para una instancia de 3 x 3. Tomando en cuenta esta representación, donde se llevó a cabo la relajación del problema, obtenemos un mapeo del problema de máquinas en paralelo no relacionadas (UPM). De acuerdo con la literatura, el problema de las UPM puede ser definido como el conjunto de n trabajos independientes que necesitan ser calendarizados en m máquinas en paralelo no relacionadas, de tal manera que se cumpla la función objetivo: minimizar el tiempo total de completación de todos los trabajos. Para ello, se debe considerar que una máquina no puede procesar más de un trabajo a la vez y los trabajos no pueden ser interrumpidos una vez que han sido asignados. La diferencia entre el problema de las UPM y el del JSSP radica en que un trabajo puede ser procesado en cualquier máquina debido a que las máquinas en las que los trabajos serán procesados son multipropósito. El tiempo de procesamiento Pij de un trabajo j en una máquina i se encuentra en función del trabajo a procesar y de la máquina al que fue asignado. Ésta es una característica fundamental del 260 problema, ya que al ser máquinas no relacionadas, el tiempo de procesamiento de un mismo trabajo varía de una máquina a otra, debido a que sus recursos y capacidades suelen ser diferentes. De acuerdo con esta definición, para la instancia utilizada para el JSSP, tendríamos un grafo bipartita no dirigido (véase la figura 6), donde cada trabajo podría ser procesado en cualquier máquina, por lo que de esta forma relajaríamos la restricción de precedencia y tendríamos representada de manera gráfica únicamente la restricción de la capacidad de recursos. Fig. 6. Grafo bipartita no dirigido para una instancia de 3 x 3 para el problema de máquinas en paralelo no relacionadas. En el grafo bipartita mostrado anteriormente, se utiliza kPij para identificar dónde se va a procesar cada trabajo. Donde k es la posición en la máquina i donde se va procesar el trabajo j. Por lo tanto, para el caso de un grafo no dirigido, tenemos que un trabajo puede ser asignado a cualquier máquina en cualquier posición. Para representar la solución utilizada para el JSSP como grafo bipartita, es necesario pasar del grafo no dirigido como el que se muestra en la figura 6, a un grafo dirigido, es decir, asignar cada trabajo a una máquina en una posición, tomando en cuenta tanto las restricciones del problema como las características del grafo bipartita, por lo que la representación de la solución quedaría de la siguiente manera (véase la figura 7). 261 Fig. 7. Grafo bipartita dirigido, donde para una instancia de 3 x 3, cada trabajo será asignado a una máquina en k posición, de esta forma se evita la sobrecarga o máquinas ociosas. Tomando esta solución para la instancia que aquí hemos propuesto, tendríamos, de acuerdo con los tiempos de procesamiento establecidos en el cuadro 1, una calendarización que, como ya se mencionó, se representa por medio de una gráfica de Gantt (véase la figura 8). Fig. 8. Calendarización de una instancia de 3 x 3 para el problema de máquinas en paralelo no relacionadas. 7 Conclusiones Uno de los problemas más estudiados en el área de la optimización es el de la calendarización de trabajos en un taller de manufactura (JSSP), el cual ha atraído la atención de un sinnúmero de investigadores alrededor del mundo debido a su dificultad y su clasificación como problema intratable. En los últimos años se ha puesto especial interés en la utilización de algoritmos híbridos y heurísticos para tratar de resolver este problema. Se han utilizado diversos modelos para la representación del problema, como, por ejemplo, el de grafos disyuntivos. En este artículo se realizó una relajación 262 del JSSP, con lo que se consiguió un mapeo del problema de máquinas en paralelo no relacionadas y con ello un modelado por medio de un grafo bipartita. 8 Trabajos futuros 4 Desarrollar un algoritmo capaz de resolver el grafo bipartita sin relajación del JSSP. 5 Comparar los resultados del algoritmo antes mencionado con un algoritmo de grafos disyuntivos y uno de programación lineal. Referencias 1. Garey R., M., D. S. Johnson y R. Seit, ‚The Complexity of Flor Shop and Job Shop Scheduling‛, Mathematics of Operation Research, vol. 1, núm. 2. 1976, pp. 117-129. 2. Takeshi, Y. y N. Ryohei, ‚Genetic Algorithms for Job-Shop Scheduling Problems‛, Proceedings of Modern Heuristic for Decision Support, UNICOM Seminar, Londres, 1997, pp. 67-81. 3. Martínez-Rangel, M., Una revisión del problema de calendarizar las tareas en un taller de trabajo (Job Shop Scheduling Problem) mediante el Modelo de grafos disyuntivo y el modelo de programación entera mixta, en Internet (www.uaem.mx/posgrado/mcruz/surveymartin.pdf). 4. Díaz-Pérez, A., Análisis y complejidad de algoritmos, complejidad computacional, en Internet (http://delta.cs.cinvestav.mx/ ~adiaz/anadis/Complexity2k5.pdf), pp. 11. 5. Rosen, K. H., Discrete Mathematics and its Applications, MacGraw Hill, pp. 549. 6. Cortés Rivera, D., Un Sistema inmune artificial para resolver el problema de Job Shop Scheduling, tesis de maestría en Ciencias con especialidad en Tecnología eléctrica y opción en Computación, CINVESTAV, marzo de 2004. 7. Morikawa, K., Furuhashi, T. y Y. Uchikawa, ‚Single Populated GA and its Application to Job Shop Scheduling‛, en Proceedings of the 1992 International Conference on Industrial Electronics, Control, Instrumentation and Automation, vols. 1-3, 1992, pp. 1014-1019. 8. Peña, V. y L. Zumelzu, Estado del arte del Job Shop Scheduling Problem, en Internet (http://www.alumnos.inf.utfsm.cl/~ vpena/ramos/ili295/iajobshop.pdf), 2006. 9. Frausto-Solís, J. y M. A. Cruz-Chávez, ‚A Reduced Codification for the Logical Representation of Job Shop Scheduling Problems‛, Lecture Notes in 263 Computer Science, vol. 3046, núm. 4, Springer-Verlag, Heidelberg, 2004, pp. 553-562. 10. Ogrenci-Memik, S. y F. Fallah, ‚Accelerated SAT-Based Scheduling of Control-Data Flow Graphs Computer Design: VLSI in Computers and Processors‛, Proceedings of IEEE, 16 al 18 de septiembre de 2002, pp. 395-400. 11. Carlier, J. y E. Pinson, ‚An Algorithm for Solving the Job-Shop Problem‛, Management Sciences, vol. 35, núm. 2, 1989, pp. 164-176. 12. Zalzala, P. y J. Flemming, Genetic Algorithms in Engineering Systems, AMS Institute of Electrical Engineers, 1997. 13. Yamada, T. y R. Nakano, ‚Job-Shop Scheduling by Simulated Annealing Combined with Deterministic Local Search‛, en Metaheuristics Intelligence Conference, Colorado, Estados Unidos, 1995, pp. 344-349. 14. Conway, R. W., W. L. Maxwell y L. W. Miller, Theory of Scheduling, Addison-Wesley, Reading, Massachusetts, 1967. 15. Smith, S. F. y C. C. Cheng, ‚Slack-Based Heuristics for Constraint Satisfaction Scheduling‛, en Proceedings of the XI National Conference on Artificial Intelligence, Washington, D.C., 1993, pp. 139-145. 16. Cruz-Chávez, M. A. y A. Rivera-López, ‚A Local Search Algorithm for a SAT Representation of Scheduling Problems‛, Lecture Notes in Computer Science, vol. 4707, núm. 3, Springer-Verlag, Heidelberg, 2007, pp. 697-709. 17. Crawford, J. M. y A. B. Baker, ‚Experimental Results on the Application of Satisfiability Algorithms to Scheduling Problems‛, en Proceedings of the XII National Conference on Artificial Intelligence, Austin, Texas, 1994, pp. 1092-1098. 18. Adams, E., E. Balas y D. Zawack, ‚The shifting Bottleneck Procedure for Job Shop Scheduling‛, Management Science, vol. 34, núm. 3, 1988, pp. 391-401. 19. Schutten, M. J., Practical Job Shop Scheduling, Annals of Operations Research, vol. 83, 1988, pp. 161-177. 20. Yoshida, T. y H. Touzaki, A Study on Association amount Dispatching Rules in Manufacturing Scheduling Problems, IEEE, 1999. 21. Rune-Jensen, A., L. Bech Lauritzen y O. Laursen, Optimal Task Graph Scheduling with Binary Decision Diagrams, en Inernet (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.84.1116&rep=rep1 &type=pdf), 2004. 22. Cruz-Chávez, M. A., F. Juárez-Pérez, E. Y. Ávila-Melgar y A. MartínezOropeza, ‚Simulated Annealing Algorithm for the Weighted Unrelated Parallel Machines Problem, Electronics, Robotics and Automotive Mechanics Conference, CERMA 2009‛, IEEE-Computer Society, México, 22 al 25 de septiembre de 2009 (en prensa). 23. Pinedo, M., Scheduling. Theory, Algorithms, and Systems, 3a. ed., Springer Science-Business Media, Nueva York. 264 Capítulo III. Electrónica y Métodos Computacionales 265 266 Diseño e Implementación de un Sistema Digital que Obtenga la Máxima Potencia Generada por un Haz Láser E. Antúnez-Cerón, A. Zamudio-Lara, P. A. Márquez-Aguilar Resumen. En el presente artículo mostraremos el diseño y la puesta en marcha de un sistema digital cuya función principal esta enfocada a encontrar el punto de máxima potencia luminosa generada por un haz láser. Para la implementación del sistema digital se utilizó un circuito microcontrolador de la familia microchip, un sensor de detección de intensidad y un sistema de desplazamiento XY. Palabras clave: microcontrolador, haz láser, potencia. Sumario: 1. Introducción 2. Desarrollo 2.1. Función de escaneo sobre el eje correspondiente 3. Resultados 4. Conclusiones 5. Trabajo futuro. Referencias 1 Introducción Existen muchas fuentes de luz, desde las que se manifiestan de forma natural o por medios físicos hasta las provocadas por reacciones químicas. La fuente de luz natural más antigua, que afecta de una u otra forma a los seres vivos y las plantas, es el Sol. Le sigue el fuego, producido por reacciones químicas que tienen lugar durante la combustión. Durante miles de años el Sol y el fuego fueron los únicos elementos que utilizó el hombre para alumbrarse, hasta que, a finales del siglo XIX, Thomas A. Edison desarrolló y comercializó en los Estados Unidos de América la bombilla eléctrica incandescente como fuente de luz artificial. A partir de ese momento histórico se comenzaron a crear otras fuentes artificiales de iluminación. Entre otras fuentes de luz artificial, se encuentra también el rayo láser, el cual, aunque no se utiliza en alumbrado, da un haz de luz coherente y de alta energía cuyas aplicaciones son muchas. Hoy en día, los láseres ocupan una de las áreas más destacadas de la investigación científica aplicada. La medición de la potencia luminosa emitida por las diversas fuentes de luz artificiales es de suma importancia en algunos experimentos. En algunas de estas fuentes la 267 potencia luminosa cambia de forma aleatoria debido a diversas causas de tipo físico o de construcción tecnológica. Una forma de obtener información sobre los cambios en la potencia de una fuente luminosa es mediante la lectura continua de sus medidas de intensidad. Por eso, hacer las lecturas automáticas de las medidas de potencia luminosa en intervalos de tiempo muy cortos, como, por ejemplo, del orden de unos segundos, o al contrario, de varias horas, es de gran utilidad. 1 La técnica manual para la detección de la máxima potencia luminosa resulta complicada y poco confiable; además, otros factores señalan aún más complicaciones en un proceso de esta naturaleza, como la poca estabilidad con la que la persona que lo lleva a cabo sostiene el sensor de detección y la escasa posibilidad de mantener o repetir la lectura de la máxima potencia más de una vez durante el proceso. Dada esta problemática, en este artículo se propone la construcción de un mecanismo de desplazamiento, del orden de las décimas de micras y en dos ejes espaciales (X, Y), para hacer la exploración y el sensado dentro del diámetro transversal central de un haz láser, encontrando automáticamente el punto de máxima potencia luminosa. La automatización es fundamental, por ello se decidió diseñar e implementar un mecanismo automatizado que haga uso de recursos tanto ópticos como electrónicos para la creación de un sistema de autocontrol confiable, de mayor precisión, de bajo costo y con una gama de aplicaciones amplia. 2 Desarrollo En un modelo basado en bloques, para un sistema de lazo cerrado, el punto de suma establece el valor que se va a comparar con el valor de la salida. El valor del punto de suma puede ser constante o variable. La salida del sistema se retroalimenta por medio de un instrumento de medición o un sensor con funciones de retroalimentación. La señal retroalimentada se compara con el punto de ajuste y la diferencia (error) activa el controlador, el cual, a su vez, controla la etapa del proceso (véase la figura 1). 268 Fig. 1. Lazo cerrado. En el modelo del sistema funcional basado en bloques que se muestra en la figura 2 se aplican estas técnicas, como se aprecia con detalle. Los dispositivos que constituyen cada etapa y las acciones de cada uno de los elementos del circuito de lazo cerrado se describen con claridad. Este modelo señala las etapas o funciones que se llevan a cabo en cualquiera de los dos ejes de desplazamiento; es decir, en el mecanismo de posicionamiento, el bloque anterior es idéntico en operación y caracterización, tanto en X como en Y. Fig. 2. Modelado del diagrama de bloques del sistema de posicionamiento autocontrolable por la intensidad de un haz láser. En la figura 2 se distingue la caracterización del sistema, desarrollado como un sistema de lazo cerrado, donde el punto de comparación (ajuste) y la etapa de adquisición de datos se llevan a cabo en el microcontrolador que gobierna el sistema (unidad de control). Éste, a su vez, corrige el error que se provoca cuando se realiza una comparación de datos (variable de entrada y salida). El resultado 269 de esa comparación de datos produce las señales de excitación para las bobinas de los motores instalados en cada eje de desplazamiento (actuadores u objetos de control), los cuales, mediante el tren de engranajes adaptado a cada uno de ellos, hacen un desplazamiento fino en la dirección correspondiente. La retroalimentación está a cargo del sensor de detección y el medidor de potencia óptico. Este último proporciona medidas continuas de la intensidad de potencia en el láser y esta medición es la señal de entrada para el sistema; cuando el microcontrolador compara las medidas, determina si continúa el desplazamiento en el eje respectivo hasta encontrar el máximo punto de intensidad durante el proceso de escaneo; posteriormente, regresa a este máximo para colocarse en la posición donde se ha registrado la máxima irradiación de luz láser. Una vez que el sistema ha sido caracterizado como de control de lazo cerrado, tenemos a la mano un sistema automático en el cual la intervención humana queda limitada durante el proceso de medición de intensidad sobre el diámetro de un haz láser. El programa desarrollado para esta aplicación consiste básicamente en tres funciones principales, cada una de ellas describe el funcionamiento de cualquiera de los dos ejes de desplazamiento. El diagrama de flujo del programa se muestra en la figura 3, donde cada uno de los bloques que corresponden a las tres funciones principales están delimitados por un rectángulo punteado de un color distinto para cada una de las funciones. El diagrama de flujo muestra las diferentes funciones que se realizan para cada uno de lo dos ejes de desplazamiento; es decir, describe el funcionamiento del eje X y del eje Y. A continuación, se describen con más detalle las tres funciones principales del programa de control, las cuales se identifican en el diagrama de flujo de la figura 3. 270 Fig. 3. Función de desplazamiento hacia la posición de ‚origen‛. La posición de ‚origen‛ sobre cada uno de los ejes hace referencia a la posición en la que se encuentran ubicados los sensores de cada uno de los ejes con el mismo nombre. Dicha posición se alcanza cuando el sensor de interrupción denominado 271 ‚origen‛, en cualquiera de los ejes, es presionado por la proximidad de la guía móvil del eje correspondiente —es decir, cambia de estado, de 1 a 0, de alto a bajo. El motor que acciona a cada uno de los ejes es activado por las secuencias de excitación que produce el microcontrolador, las cuales salen a través del puerto B para dirigirse al controlador o driver del motor, y mecanizarlo con el giro en dirección a la posición ‚origen‛ cuando el sensor presente un estado alto (1, sin interrupción). Una vez alcanzada esta posición, se produce la interrupción del sensor y éste cambia su estado a un nivel bajo (0), entonces el motor se detiene. 2.1 Función de escaneo sobre el eje correspondiente Una vez que la guía móvil se encuentra en la posición ‚origen‛, est{ lista para llevar a cabo el escaneo sobre la parte central del diámetro del haz láser. El escaneo se realiza sobre todo el eje de barrido, en dirección al eje correspondiente y hasta la posición ‚fin de escaneo‛; paralelamente, y mediante el uso del sensor y del medidor de potencia óptica, la señal analógica es dirigida hacia la terminal de entrada analógica correspondiente al canal 0 del microcontrolador. Ahí se lleva a cabo la conversión de la señal analógica para ponerla en su formato digital de 10 bits en los registros correspondientes del convertidor. El convertidor A/D realiza la captura y conversión de la señal analógica de modo continuo, a la vez que avanza sobre el eje hasta llegar al sensor ‚fin de escaneo‛ ubicado en el extremo opuesto a la posición del sensor ‚origen‛. El desplazamiento se realiza generando las señales de excitación para el motor correspondiente. Al mismo tiempo que se realiza el escaneo, el microcontrolador guarda el mayor dato capturado y lo compara con el dato de la siguiente medición, realizando este proceso en toda la trayectoria del escaneo; al finalizar la operación, queda almacenado el dato de mayor magnitud. Este dato es la lectura de mayor intensidad registrada por el medidor de potencia en su formato digital —es decir, los datos que maneja el microcontrolador—; consecuentemente, éste es el punto de mayor intensidad registrado en todo el escaneo sobre el eje. Una vez que se produce la interrupción del sensor “fin de escaneo” —esto quiere decir que se ha llegado al extremo final del eje de desplazamiento—, el motor se detiene. 3 Resultados Este proyecto tiene como objetivo principal el diseño y la puesta en marcha de un sistema de posicionamiento automático controlado por la intensidad de la luz láser, con el propósito de encontrar el punto de máxima intensidad en los diámetros principales de la circunferencia de irradiación, la cual incide sobre el obturador del sensor de potencia. El montaje del sistema de posicionamiento 272 controlado por la intensidad del láser y los diferentes dispositivos de los que hace uso para su operación se muestran en la figura 4. Fig. 4. Montaje del sistema de posicionamiento. En la figura 4 se ve que el sistema está constituido por diferentes dispositivos, los cuales, interconectados, ayudan a realizar la tarea principal del proyecto. En términos generales, el sistema está compuesto por tres bloques de dispositivos diferentes: Dispositivos ópticos: láser, lente, sensor, medidor. Dispositivo programable y electrónica. Mecanismo de posicionamiento. Las pruebas realizadas con el sistema de posicionamiento se llevaron a cabo bajo la siguiente condición: la lente convergente (plano convexa) está colocada a 10 centímetros del dispositivo emisor láser y ésta debe alinearse apropiadamente a la altura y ángulo requeridos para un buen desempeño del haz. A continuación, el sistema de posicionamiento se coloca a una distancia d. La distancia de prueba no es más que la distancia existente entre el soporte de la lente utilizada y el eje que soporta al sensor detector de potencia en el mecanismo de posicionamiento. Esta distancia es donde el haz tiene un diámetro D; este diámetro aumenta cuanto mayor sea la distancia d. Lo anterior ocurre debido a la propiedad de la divergencia de un haz con perfil gaussiano. El criterio con el cual se realizó la evaluación de las pruebas y la obtención de los resultados correspondientes se ilustra en el arreglo experimental de la figura 5 y en la figura 6 se muestra una foto de este arreglo. 273 Fig. 5. Arreglo experimental. En la figura 5 se aprecia que la distancia entre el láser y la base del soporte de la lente óptica es de 10 centímetros y esta distancia entre ambos dispositivos ópticos se conserva en la realización de las pruebas. El parámetro a modificar es la distancia de prueba d; y como consecuencia, D cambiará su valor. Fig. 6. Foto del arreglo experimental. En el cuadro 1 se dan los resultados de las diferentes pruebas y de la puesta en marcha del sistema para diversos valores de d y D, respectivamente. Las pruebas se evaluaron cada 10 centímetros de distancia a partir de la posición del soporte de la lente y esta medida se incrementó gradualmente hasta llegar a los 150 centímetros. En la práctica, una búsqueda del máximo a 10 o 20 centímetros es un tanto complicada; sin embargo, se puede ver cómo el sistema ha llevado a cabo esta tarea, lo cual nos habla de la eficiencia del sistema en estas condiciones. 274 Cuadro 1. Resultados de las pruebas realizadas con el sistema de posicionamiento para diferentes valores de d La búsqueda del máximo siempre se hace procurando que el escaneo se lleve a cabo sobre el diámetro central transversal de la circunferencia sobre el eje Y, y posteriormente sobre el diámetro central del eje X. Como se puede observar en el cuadro 1, a medida que la distancia de prueba d aumenta su magnitud, el diámetro aproximado D del haz incidente sobre la superficie del sensor también aumenta. El comportamiento de la intensidad (potencia) del haz láser, como era de esperase, también se ve afectado por la distancia a la cual se realiza la búsqueda del máximo. Los resultados anteriores nos muestran cómo a mayor distancia a partir del foco, la potencia láser disminuye al mismo tiempo que el diámetro o radio del haz se incrementa, cuanto mayor sea el diámetro del haz, menor será su potencia. Este hecho nos muestra cómo el sistema de posicionamiento realiza un buen desempeño en pruebas de irradiación en campo lejano. 275 4 Conclusiones Se diseñó un sistema caracterizándolo como un sistema automático de lazo cerrado, es decir, con intervención mínima de la mano humana, lo que da mayor estabilidad en las lecturas y resultados confiables. Al ser un sistema automático, tiene la característica de que sus resultados son mucho más precisos, ya que compara los datos de entrada con los de salida asegurándonos un desempeño confiable. 5 Trabajo futuro Este sistema es sólo un prototipo de muchos más que se pueden construir. La innovación y mejora de este sistema queda abierta a las necesidades y aplicaciones futuras. Su diseño y puesta en marcha se enfocaron en la tarea de detectar el máximo de intensidad en la distribución de potencia de un haz láser, lo cual no descarta la posibilidad de agregarle otras funciones. Para ello, sólo se requiere un nuevo programa, que amplíe las aplicaciones del sistema. Entre las aplicaciones a futuro figuran las siguientes: El sistema puede programarse de forma tal que el microcontrolador guarde en variables internas los datos que el medidor de potencia le esté enviando sobre la intensidad del láser, y para que, posteriormente, dirija todos estos datos almacenados hacia el ordenador mediante una interfaz de tipo serial. Una vez allí, los datos pueden ser analizados o recibir el tratamiento o análisis requerido para alguna aplicación en particular. Este sistema podría ser programado de forma que en lugar de proporcionar la detección del máximo de intensidad nos detecte el punto de intensidad mínima en la distribución de potencia de un haz láser. El sistema de posicionamiento ya está hecho; pero su funcionamiento está abierto a las necesidades del usuario. En este sentido, el usuario puede agregar los módulos de hardware y software que requiera para personalizar su funcionamiento y ampliar la variedad de aplicaciones. Referencias 1. Tapia-V{zquez, A. y A. Padilla Vivanco, ‚Programación para el control autom{tico de un medidor de potencia óptica‛, en Internet (http://wwwoptica .inaoep.mx/investigadores/apadilla/fotodetector.pdf). 2. Boreman, G. D., Fundamentos de electro-óptica para ingenieros, SPIE Press, 1999, pp. 93, 95. 276 Evolución de las Bases de Datos: de Fijas a Móviles Paola Delgado Fernández, Luis Antonio Gama Moreno Resumen. Los sistemas manejadores de bases de datos (SMBD) han estado en constante cambio desde sus orígenes como sistemas manuales para la organización de información, pasando por sistemas mainframes y de escritorio (desktop), hasta la llegada de la computación móvil. Con el surgimiento de las bases de datos móviles, las actividades de mantenimiento y consulta de información se pueden realizar en cualquier momento y lugar desde un dispositivo móvil —teléfono celular, PDA, etcétera. En este artículo se describe esta evolución, así como las características de los cinco manejadores de bases de datos para dispositivos móviles con mayor impacto en el mercado, particularmente en soporte de transacciones, compatibilidad con la norma ANSISQL92, encriptamiento, conectividad vía JDBC-ODBC, entre otros. Finalmente, se discuten los enfoques de sincronización con los servidores centrales o el motor embebido en las aplicaciones. Palabras clave: SMBD, computación móvil, dispositivos móviles. Sumario: 1 Introducción 2 Estado del arte 2.1 Tecnologías inalámbricas 2.2 Cómputo móvil 2.2.1 Dispositivos móviles 3 Manejadores de bases de datos para dispositivos móviles 3.1 PointBase 3.2 SQLAnywhere 3.3 DB2 EveryPlace 3.4 Oracle Lite 3.5 MSSQL CE 4 Discusión 5 Conclusiones. Referencias 1 Introducción El desarrollo histórico de las bases de datos comienza con la necesidad de organizar información utilizando archivos en papel y sistemas manuales. En 1960 los sistemas empiezan a computarizarse, lo que lleva al desarrollo del primer sistema de bases de datos, el IMS (Information Management System), de la compañía IBM, el cual permitía al usuario visualizar los datos en forma de árbol jerárquico. Para 1970, el doctor E. F. Codd29 propuso el concepto de bases de datos relacional (BDR), basado en los principios matemáticos de la teoría de conjuntos 277 y la lógica predictiva, y que consistía en el manejo de tablas, filas y columnas utilizando un conjunto de operaciones lógicas. Asimismo, uno de los avances más importantes de los años setenta fue el desarrollo del SQL (Structured Query Language), un lenguaje para el manejo de bases de datos relacionales, basado en el álgebra relacional. Sin embargo, el primer producto de BDR comercial fue el SMBD Oracle, lanzado en 1979 al mercado.22 En esa época las bases de datos relacionales se fueron aceptando y adoptando poco a poco por empresas y organizaciones, ganando popularidad y convirtiéndose en una de las principales herramientas para la gestión de información. A pesar de la popularidad y fuerza que ganó el uso de los SMBD, la búsqueda de mejores opciones y el desarrollo de nuevas tecnologías llevó al surgimiento de las bases de datos relacionales orientadas a objetos, las que más tarde pasarían a ser bases de datos orientadas a objetos,29 aunque sólo pocos SMBD adoptaron esta propuesta, entre ellos Oracle y PostgreSQL. Para mediados de 1990 el acceso a una base de datos se logró por medio de Internet, lo que abrió el camino hacia otras áreas de aplicación de los SMBD; además, los sitios Web se hicieron más dinámicos e Internet ganó popularidad para el comercio electrónico, los sistemas de información, etcétera. En los años noventa, con el auge de Internet y las bases de datos, comienzan a integrarse en las aplicaciones lenguajes como XML (Extensible Markup Language), además de que el número de desarrolladores y usuarios aumenta e impulsa el uso de los SMBD. Con el surgimiento de las nuevas tecnologías de comunicación inalámbrica y de dispositivos móviles (DM), se logró el desarrollo de la computación móvil (CM), caracterizada por la independencia de localización, movimiento y plataforma de los dispositivos.2 Por otra parte, la necesidad de gestionar información desde un ambiente móvil y la popularidad de las bases de datos motivaron el desarrollo de los sistemas manejadores de bases de datos móviles (SMBDm). En la figura 1 se describe el desarrollo histórico de los SMBD. Fig. 1. Desarrollo histórico de los SMBD. En el campo de los SMBDm, se han desarrollado aplicaciones importantes, desde versiones limitadas para ejecutarse en un DM y que después se sincronizan con el servidor central, hasta productos que van inmersos (embebidos) en las 278 aplicaciones. Oracle Lite,21 por ejemplo, es un SMDBm con una arquitectura de cliente-servidor dirigido a dispositivos con plataforma de Windows Mobile, Symbian OS y Linux. IBM DB2 Everyplace Database Edition11 es una base de datos móvil de alto rendimiento que se integra con IBM WebSphere Everyplace Access e IBM WebSphere Everyplace Server; es una base de datos relacional para plataformas PalmOS y Windows CE. MSSQL CE18 es otra base de datos, compacta, diseñada para admitir una gran lista de dispositivos inteligentes y Tablets PC; utiliza la sintaxis de SQL para las consultas y permite su integración con Microsoft SQL Server 2005. PointBase24 es un SMDBm desarrollado en JAVA, y por lo tanto, compatible con J2ME, el cual se ofrece en cuatro versiones: Embedded, Micro, Server y UniSync. SQL Anywhere27 es otro SMDBm y provee tecnología para el intercambio y gestión de datos desde un dispositivo móvil; ha sido diseñado para plataformas Windows Mobile 5 y 6 —PocketPC y Smartphone. 2 Estado del arte 2.1 Tecnologías inalámbricas Desde el surgimiento de las tecnologías inalámbricas como medio de comunicación e interacción entre dispositivos, su mejoramiento y avances han sido constantes. Han permitido transmitir información desde puntos que no se creían accesibles y mejorar la comunicación entre dispositivos móviles y fijos. Entre las principales tecnologías está LMDS (Local Multipoint Distribution Service),23 servicio que establece una conexión bidireccional de punto a multipunto, es de banda ancha y para utilizarlo es necesario tener licencia; ofrece telefonía, datos, televisión multicanal y servicios interactivos multimedia. Por otro lado, Wi-Max (Worldwide Interoperability for Microwave Access) es una tecnología de banda ancha de rápido despliegue, de punto a multipunto y económica, ya que no requiere de cableado; permite la conexión de múltiples usuarios, los cuales deben instalar una antena para la recepción de señal, y da acceso a servicios de voz (VoIP), datos y video. 1 Una de las tecnologías inalámbricas más populares es Wi-Fi (Wireless Fidelity), la cual facilita la interconexión de varios dispositivos —computadoras personales, agendas electrónicas, etcétera— de manera local; su ventaja estriba en que no requiere de cableado y da movilidad en el área de cobertura, además de que trabaja en las bandas libres de 2.4 y 5 GHz; solamente precisa un punto de acceso para el área y una tarjeta Wi-Fi en cada equipo.8 Por otro lado, Internet vía satélite10 o satelital está basado en el acceso a la red mediante el intercambio de ondas electromagnéticas a frecuencias muy altas con un satélite en órbita geoestacionaria, aproximadamente a 36 000 kilómetros. Se requiere de una antena 279 para captar la señal y un módem DVB para decodificarla. Estos instrumentos se conectan con cable coaxial y para enviar datos hace falta una red telefónica, o bien, se puede utilizar el mismo satélite. Otra tecnología, para la comunicación de corto alcance, son las ondas infrarrojas;14 su uso es limitado pero puede encontrarse en computadoras portátiles e impresoras. Bluetooth28 es también de corto alcance, inalámbrica, y se creó para sustituir el uso de cables en las redes, logrando la conexión de dispositivos móviles y de hardware, como impresoras, escáners y cámaras digitales, a una computadora, lo que facilita el intercambio de información; el único requisito es estar dentro del alcance de la red. 2.2 Cómputo móvil El cómputo móvil,12 también conocido como cómputo nómada, es el resultado de reunir en un mismo ambiente dispositivos móviles de distintas capacidades físicas, como memoria y energía. Los dispositivos, por medio de una conexión inalámbrica, acceden a una red para intercambiar información y compartir recursos, ofreciendo a los usuarios movilidad y portabilidad. El cómputo móvil ganó popularidad gracias al surgimiento de poderosas tecnologías de comunicación inalámbrica, como el Bluetooth, Wi-Fi y Wi-Max. Sin embargo, la computación móvil sigue enfrentando retos considerables, principalmente de infraestructura, ya que los dispositivos aún presentan ciertas deficiencias en el rendimiento de energía y en su capacidad de procesamiento, de memoria y conectividad. 2.2.1 Dispositivos móviles Entre los dispositivos móviles de mayor interés para los usuarios se encuentran los teléfonos celulares e inteligentes. Un teléfono celular se compone, en general, de un CPU, memoria, memoria flash para almacenamiento, conexión a red y batería, aunque últimamente llevan incluido características como GPS, cámara fotográfica, reproductor de música y video. 20 Por otra parte, los teléfonos inteligentes están comenzando a trabajar con procesadores multinúcleo, aunque el principal enfoque de su diseño es el consumo de energía. Los procesadores multinúcleo ofrecen una funcionalidad asimétrica que permite al dispositivo apagarse y encenderse dinámicamente para reducir el consumo de energía. Todos estos avances en los teléfonos móviles hacen posible que se menejen más datos, pero requieren de mejores soluciones para la administración de información. Los dispositivos móviles presentan las siguientes desventajas: Desconexiones frecuentes debido a que los clientes móviles no permanecen conectados de manera continua en una misma red, algunas veces porque el 280 dispositivo se enciende y se apaga, otras veces porque el cliente decide desconectarse para conectarse a otra red. Presentan limitaciones en los recursos de energía, teniendo muchas veces una cantidad de carga limitada. El tamaño de la pantalla de algunos dispositivos muchas veces es muy pequeña y la información no se despliega de la mejor manera. 3 Manejadores de bases de datos para dispositivos móviles1 Una base de datos se define como un conjunto de tablas relacionadas entre sí, que almacenan una gran cantidad de datos de manera estructurada. Estos datos constituyen un recurso esencial para todas las organizaciones.4 Una base de datos es como un contenedor o depósito de un conjunto de archivos de datos computarizados, sobre los cuales un usuario puede realizar gran cantidad de operaciones: agregar nuevos archivos, insertar datos, recuperar o consultar datos, hacer modificaciones y eliminar datos.7 Las bases de datos móviles se consideran las bases de datos de nueva generación, ya que van dirigidas a sistemas informáticos portátiles, como computadoras personales y dispositivos móviles, los cuales se conectan con las estaciones base (servidores) mediante redes de comunicación digitales inalámbricas; además, deben funcionar mientras estén desconectadas de la red, a diferencia de los sistemas de bases de datos fijos. Las bases de datos móviles utilizan técnicas especiales para la administración de memoria porque la capacidad de almacenamiento de sus dispositivos móviles es limitada. 3,26 Además, el hecho de que se almacenen datos en el teléfono móvil o en la computadora personal permite a los usuarios hacer operaciones sobre la información sin necesidad de estar conectados a una red, así como sincronizar o consultar datos de los servidores en el momento que se tenga acceso a una conexión inalámbrica. 13,26 Todas las funciones de una base de datos y las comunica-ciones inalámbricas las provee un SMBDm,15 cuya arquitectura se describe en la figura 2. 281 Fig. 2. Sistema móvil de bases de datos. A continuación, se describen cinco de los SMBDm más comerciales, sus características, arquitectura, etcétera. 3.1 PointBase PointBase Inc. comenzó a operar en 1998, desarrollando SMBDs de footprint pequeño y dirigidos a dispositivos móviles. 19 La compañía desarrolló hasta la versión 4.7 de PointBase Micro, que fue lanzada al mercado en el año 2003. 24 Ese mismo año DataMirror Mobile Solutions compró PointBase Incorporated y continuó con el desarrollo de nuevas versiones del SMBD, empezando con la versión 4.8 lanzada en el año 2004 6 hasta que IBM adquirió DataMirror en el año 2007. Desde entonces, PointBase Micro ha pasado por varias versiones, de la 5.1 a la 5.7, la cual es la última versión del manejador disponible hoy en día. 5 PointBase Micro tiene el mejor soporte CLDC/MIDP. 13 Es un manejador de base de datos relacional muy pequeño, con soporte de SQL, y está optimizado para la plataforma de JAVA-J2ME. En la figura 3 se aprecia la capa de software que PointBase Micro utiliza. Las principales características de PointBase Micro son: Es portable, permite su ejecución en distintas plataformas. Footprint pequeño, menor a 45 KB para J2ME CLDC/MIDP y menor a 90 KB para CDC (Connected Device Configuration). Utiliza un subconjunto de SQL 92 para realizar consultas. La API se deriva de JDBC para MIDP. Es compatible con distintos sistemas operativos: Palm OS, Windows CE/Pocket PC, RIM OS y Symbian OS. 282 Fig. 3. Arquitectura de PointBase. PointBase provee de dos API para la versión micro: - JDBC API para J2SE & J2ME/CDC. Subconjunto de JDBC API para J2ME/MIDP. PointBase Micro utiliza la segunda API, también conocida como LiteAPI (véase la figura 4), la cual fue escrita para proveer al usuario de una interfaz de bases de datos en J2ME/MIDP, muy similar a JDBC. Las clases que conforman la API están localizadas en el paquete com.pointbase.me. La diferencia entre la LiteAPI y la API para JDBC dirigida a plataformas J2SE y J2ME/CDC está en las clases tipo fecha que son utilizadas para representar los tipos de datos de SQL DATE, TIME, TIMESTAMP y DECIMAL; esta diferencia se debe a que las clases e interfaces del paquete java.sql no están disponibles para J2ME/MIDP; LiteAPI usa DATE, TIME y TIMESTAMP de la clase java.util.Date y para valores decimales utiliza com.pointbase.me.Decimal.24 Fig. 4. API Lite de PointBase Micro. 3.2 SQLAnywhere Es una base de datos móvil relacional que provee de tecnología para el intercambio y la gestión de datos desde un dispositivo móvil. Está diseñada para dispositivos con plataforma Windows Mobile 5 para Pocket PC y Smartphone, y Windows Mobile 6. SQL Anywhere tiene soporte para la interfaz ADO.NET, .NET OLE DB y ODBC; además, permite usar cualquier lenguaje como: .NET, incluyendo C# y Visual Basic .NET para escribir procedimientos y funciones. 27 283 Como se muestra en la figura 5, su arquitectura es de tipo cliente-servidor, cuenta con un footprint pequeño, menor a 150 KB, permite conexiones simultáneas y utiliza el sistema Mobilink Syncronization, un conjunto de tecnologías para la sincronización entre sistemas fijos y usuarios móviles. 25 Fig. 5. Arquitectura de SQLAnywhere. 3.3 DB2 EveryPlace Desarrollada por la compañía IBM, DB2 Everyplace Database Edition es una base de datos móvil de alto rendimiento, que permite ampliar el alcance de las aplicaciones y datos empresariales a dispositivos móviles, como asistentes digitales personales y teléfonos inteligentes. Tiene un reducido consumo de espacio y una de sus ventajas es que se integra con la gama de productos de informática móvil de IBM WebSphere Everyplace Access y WebSphere Everyplace Server. Esta base de datos es relacional y está dirigida para plataformas PalmOS y Windows CE.11 Utiliza una arquitectura cliente-servidor (véase la figura 6) y ofrece gran cantidad de productos de acuerdo con las necesidades de desarrollo que se tengan. Fig. 6. Arquitectura de DB2 Everyplace. 284 3.4 Oracle Lite Este SMBDm trabaja con una arquitectura cliente-servidor como la descrita en la figura 7. El cliente incluye un footprint pequeño, de 1 MB, optimizado para dispositivos de mano, computadoras portátiles y ambientes reducidos, además de que cuenta con soporte multiusuario. Oracle Lite funciona sobre Windows Mobile, PocketPC, Symbian OS y Linux. Utiliza SQL 92, procedimientos almacenados en JAVA, C++ y lenguajes basados en .NET, como C#; cuenta con soporte de triggers, ODBC, JDBC y ADO .Net. El Servidor Oracle Database Lite Mobile Server es necesario para que los usuarios móviles sincronicen la información con la base de datos principal. La sincronización es uno de los principales elementos de la base de datos de Oracle. Es una solución completa que ayuda al despliegue de información sin conexión, ofrece métodos de administración y sincronización de dispositivos, además de una base de datos relacional segura, ligera y compatible con SQL. 21 Fig. 7. Arquitectura de Oracle Lite. 3.5 MSSQL CE Desde el principio, SQL Server Compact Edition ha sufrido una serie de cambios y ha pasado por varias versiones, comenzando con el SQL Server CE, el cual se incluía en el SQL Server 2000. Con el lanzamiento del SQL Server 2005 al mercado, el SQL Server CE cambió de nombre a SQL Server 2005 Mobile Edition y estaba dirigido a Smartphones y PDAs.16 MSSQL CE versión 2005 es una base de datos compacta que necesita menos de 2 MB de espacio en disco y sólo 5 MB de memoria. Tiene gran variedad de funciones y fue diseñada para admitir una gran lista de dispositivos inteligentes y Tablets PC. Cuenta con un motor de base de datos compacto y un sólido optimizador de consultas, permite el acceso a datos remotos y réplica de mezcla 285 para sincronizar datos; utiliza un subconjunto de sintaxis de SQL para las consultas y se integra fácilmente con Microsoft SQL Server 2005. 18 La arquitectura está formada por un entorno de desarrollo, un cliente y el servidor (véase la figura 8), a diferencia de la nueva versión del manejador, que utiliza una arquitectura embebida. El entorno de desarrollo incluye el equipo donde se desarrollan las aplicaciones, el cual debe tener Microsoft Visual Studio 2005 con .NET Compact Framework. El entorno del cliente se compone de uno o varios dispositivos compatibles donde se lleva a cabo la aplicación y SQL Server Compact Edition; la sincronización puede ser por medio de Microsoft ActiveSync o de la red. El entorno del servidor está formado por uno o varios equipos en los que se ejecutan los servicios de Microsoft Internet Information Server (IIS) y una instancia de Microsoft SQL Server o datos propagados para un origen de datos heterogéneo. IIS es necesario para el intercambio de datos entre servidores y clientes.18 Fig. 8. Arquitectura de MSSQL CE. Actualmente, están disponible la versión de SQL Server 2008, que ofrece una nueva solución de Compact Edition y la versión 3.5 Service Pack 1, la cual permite la instalación de una pequeña base de datos SQL Server en un dispositivo móvil con plataforma Windows Mobile. Esta última versión de MSSQL CE es una base de datos servidor SQL ‚embebido‛, gratuito, ideal para la construcción de aplicaciones independientes y que ocasionalmente están conectadas; está dirigido a dispositivos móviles, computadoras de escritorio y clientes Web. 4 Discusión Las bases de datos se han convertido en una de las herramientas para la administración de información más utilizadas por empresas, instituciones y personas. Sin embargo, la necesidad de movilidad llevó al desarrollo de los SMBDm, permitiendo trabajar con la información almacenada en los grandes servidores corporativos o de información institucional a distancia, utilizando la tecnología inalámbrica y dispositivos móviles como medios. Las grandes empresas como ORACLE, IBM, Microsoft, entre otras, han comenzado a ofrecer sus productos en plataformas que permiten su uso en 286 teléfonos celulares, agendas personales, etcétera; son soluciones completas, que permiten el manejo de gran cantidad de información utilizando recursos de almacenamiento, procesamiento y energía limitados, características que distinguen a los dispositivos móviles. En el cuadro 1 se muestran las principales características de los SMBDm comerciales de mayor uso; estos productos pertenecen a grandes compañías de desarrollo de Software, también especializadas en el desarrollo de SMBD. Cuadro 1. SMBDm más importantes y sus principales características La selección de un sistema manejador de bases de datos móvil depende en gran medida de las necesidades del usuario a quien va dirigida la aplicación o sistema y las características de los dispositivos móviles con los que se trabajará. En todo caso, si ya cuenta con algún SMBD ‚fijo‛ de las compañías ya citadas, la mejor opción es adquirir una versión del mismo para el dispositivo móvil, por cuestiones de compatibilidad y facilidad de configuración; por ejemplo, Oracle Lite para versiones de ORACLE o DB2 Everyplace de IBM, etcétera. Por otra parte, si la plataforma de desarrollo utilizada es Microsoft, lo mejor es usar MSSQL CE o SQL Anywhere, soluciones completas para plataformas .NET, aunque la segunda es un poco más limitada. Si desarrolla en la plataforma de JAVA, PointBase Micro es una solución excelente ya que la base de datos puede estar embebida en las aplicaciones; debido al footprint pequeño, es compatible con 287 J2ME y es fácil de implementar. Por otra parte, la nueva versión de MSSQL CE, incluida en SQL Server 2008, es una solución más para aplicaciones que requieren una base de datos ‚embebida‛, ya que es ligera y permite el manejo de gran cantidad de información, además de que su compatibilidad con los productos de Microsoft la hace una opción interesante. Una característica que presentan todos los SMBDm (véase el cuadro 1) es el uso de un subconjunto del lenguaje SQL, uno de los principales para el manejo de bases de datos. Además la posibilidad de sincronizar de manera inalámbrica la información de nuestro dispositivo móvil con los grandes servidores, permite la movilidad de los usuarios así como la disponibilidad y actualización constante de la información. Sin duda, las ventajas de manipular una base de datos desde un dispositivo móvil son muchas; manejos de inventario sin necesidad de cables, consultas de expedientes o información de clientes, pedidos, alumnos; administración de recursos, ventas, compras y transacciones; agendas telefónicas y un sin fin de aplicaciones más, las cuales sin duda facilitan en gran medida las actividades diarias de empresarios, trabajadores y usuarios. 5 Conclusiones La necesidad de mantener organizada y almacenada la información de manera permanente llevó al surgimiento de las bases de datos, las cuales al comienzo se basaban en sistemas manuales para la administración de archivos en papel; poco a poco los avances tecnológicos llevaron a estos sistemas a las computadoras, comenzando así el desarrollo de los grandes sistemas manejadores de bases de datos que seguimos utilizando en la actualidad. Además de Internet y del surgimiento de lenguajes de programación que permitían una mejor manipulación de los SMBD, el cómputo móvil influyó mucho en el desarrollo de aplicaciones para el manejo de información, ya que la necesidad de gestionar datos se trasladó a las plataformas móviles, surgiendo así los sistemas manejadores de bases de datos móviles o SMBDm. En este artículo se presentaron cinco manejadores de bases de datos móviles con características ideales para clientes en movimiento, provenientes de compañías como Microsoft, Oracle e IBM. Estas compañías comenzaron a desarrollar sus productos para plataformas móviles con la finalidad de ofrecer soluciones completas a los corporativos, empresas y usuarios que comenzaban a incluir dispositivos móviles para la realización de sus actividades diarias. Se explicaron también las principales características de las bases de datos móviles respecto al soporte de transacciones, la compatibilidad con la norma ANSI-SQL92, el encriptamiento y la conectividad vía JDBC/ODBC, entre otros aspectos. 288 Sin duda, la tendencia al uso de los dispositivos móviles seguirá creciendo; el desarrollo de nuevas y mejores SMBDm continuará y la movilidad seguirá formando parte de nuestras vidas, por lo tanto, suponemos que el desarrollo de aplicaciones para dispositivos móviles enfrentará aún más retos en los próximos años. Agradecimientos Este trabajo est{ soportado por el proyecto ‚Suite de Servicios para Usuarios de Dispositivos Móviles (SUSEDIM)‛ clave 886.08-P, financiado por la DGEST, y ha sido desarrollado durante el XXI Verano Científico de la AMC y el XIV Verano de la Investigación Científica del Programa DELFIN. Referencias 1. Andrews, J. G., A. Ghosh y R. Muhamed, Fundamentals of WiMAX, Prentice-Hall, 2007. 2. Bagrodia, R., W.W. Chu, L. Keinrock y G. Popek, ‚Vision, Issues and Architecture for Nomadic Computing‛, en IEEE, Personal Communications, vol. 2, núm. 6, 1995, pp. 14-27. 3. Barbar{, D., ‚Mobile Computing and Databases: A Survey‛, en IEEE Transactions on Knowledge and Data Engineeing, vol. 11, núm. 1, 1999. 4. Batni, C., S. B. Navathe, S. Ceri, M. García y D. Romero Ibancos, Diseño conceptual de BD, Adisson Wesley-Díaz de Santos, 2004. 5. DataMirror-IBM Company, PointBase Embedded Developer’s Guide Version 5.7, 2007. 6. DataMirror Mobile Sol, PointBase System Guide Version 4.8, 2004. 7. Date, C. J., Introducción a los sistemas de bases de datos, 7a. edición, Prentice Hall, México, 2001. 8. Ferro, E. y F. Potorti, ‚Bluetooth and WI-FI Wireless Protocols: A Survey and a Comparision‛, en IEEE Wireless Communications, vol. 12, núm. 1, 2004, pp. 12-26. 9. Groff, G. R. y P. N. Weinberg, The Complete Reference SQL, 2a. edición, McGraw-Hill, 2002. 10. Hu, Y. y O. K. Li, ‚Satellite-Based Internet: A Tutorial, en IEEE, Communication Magazine, vol. 39, núm. 3, 2001, pp. 154-162. 11. IBM, IBM WebSphere Everyplace Suite Version 1.1, 2000. 12. Imielinski, T. y H. F. Korth, Mobile Computing Chapter 1. Introduction to Mobile Computing, Kluwer Academic Publishers, 1996. 13. Juntao Yuan, M., Enterprise J2ME Developing Mobile Java Applications, Prentice Hall, Estados Unidos, 2007. 289 14. Kahn, J. M. y J. R. Barry, ‚Wireless Infrared Communications‛, en Proceedings of the IEEE, vol. 85, núm. 2, 1997. 15. Kumar, V., Mobile Databases Systems. Computer Science and Informatics University of Missouri, Wiley-Interscience, 2006. 16. Leiter, C., D. Wood, M. Cierkowski y A. Boettger, Beginning Microsoft SQL Server 2008 Administration, 2009. 17. McGee, W. C., ‚The Information Management System IMS/VS. Part 1: General Structure and Operation‛, en IBM System Journal, 1977. 18. Microsoft Corporation, Información General de SQL Server 2005 Compact Edition, MSDN, 2009. 19. Newswire, P. R., PointBase Extends 100% Pure JAVA Database to Include Devices Internet Appliances and Embedded Servers, 1999. 20. Nori, A. K., ‚Mobile and Embedded Databases‛, en ACM International Conference on Management of Data, 2007. 21. Oracle, Oracle Database Lite 10Gr3, Technical White Paper, 2008. 22. Oracle, Oracle Timeline, en Internet (http://www.oracle.com/timeline/index.html). 23. Papazian, P. B., G. A. Hufford, R. J. Achatz y R. Hoffman, ‚Study of the Local Multipoint Distribution Service Radio Channel‛, en IEEE Transactions on Broadcasting, vol. 43, núm. 2, 2008. 24. PointBase, Micro Developer’s Guide Version 4.7, 2003. 25. Reyna, A. y L. Gama-Moreno, Manejador de Archivos Embebido para Dispositivos Móviles, tesis de maestría, Instituto Tecnológico de Zacatepec, 2005. 26. Silbershatz, A., H. F. Korth y S. Sudarshan, Fundamentos de diseño de bases de datos, 5a. edición, McGraw-Hill, Madrid, 2006. 27. SQL Anywhere 11 and Microsoft .NET: A whitepaper from Sybase iAnywhere. Whitepaper (2008) 28. Tanebaum, A. S., Redes de computadoras, 4a. edición, Pearson-Prentice Hall, 2003. 29. Ward, P. y G. Dafoulas, Database Management Systems, ThomsonMiddlesex University Press, 2006. 290 Grid Computing Vanessa Hamar Resumen. La idea de ‚grid computing‛ o ‚grid‛ no es reciente, aunque en los últimos años su auge ha ido en aumento, al punto de convertirse en una herramienta con la cual los usuarios, en su mayoría científicos, hacen uso de recursos heterogéneos, tanto de cálculo y almacenamiento como de ancho de banda, porque todos ellos están distribuidos geográficamente alrededor del mundo. Actualmente, los grids se ocupan para solventar problemas complejos, asegurando que los datos sean manejados de manera íntegra y segura, gracias a sus estándares. En este artículo se presentan los conceptos básicos relacionados con los grids, se esbozan ciertos acontecimientos alrededor de su surgimiento, se presenta una breve comparación entre los conceptos de ‚grid computing‛ y ‚cloud computing‛, y al final se describen dos de los middlewares disponibles para los usuarios que pertenecen al proyecto EELA2. Palabras clave: grid computing, middleware, gLite, DIRAC. Sumario: 2 Antecedentes 3 Grid computing 4 Estándares 4.1 Estándares utilizados por la herramienta Globus 5 Seguridad en el grid 6 Grid computing, cloud computing 7 Middlewares en EELA2 7.1 gLite 7.2 DIRAC Conclusiones Referencias 1 Introducción Hoy en día los científicos se encuentran con problemas cada vez más complejos que requieren de un mayor poder de cálculo y del análisis de grandes cantidades de datos y, por ende, necesitan más capacidad de almacenamiento. Aunado a esto, como son científicos cuyos centros de trabajo están distribuidos en todo el mundo y es fundamental que la información que obtienen sea compartida con sus colegas, ha surgido el concepto de ‚grid computing‛ o ‚grid‛. El grid es solamente otra forma de computación distribuida; no obstante, permite la integración de recursos heterogéneos provenientes de organizaciones distribuidas en distintos lugares del mundo, por medio de Internet, cuya red se aprovecha como una plataforma de servicios de computación y no sólo como una fuente de información. Entre las ventajas de los grids se encuentra el uso de los recursos ociosos de la red para integrar aplicaciones heterogéneas y diversas, aumentando así la capacidad de cálculo de las organizaciones sin que éstas tengan que hacer grandes 291 inversiones. Otra ventaja es que los usuarios acceden al grid desde un único punto de entrada o interfaz desde cualquier parte del mundo. Otra ventaja más es que integra recursos de control o equipos que generan data en tiempo real, permitiendo el análisis de los datos en tiempo casi real —por ejemplo, los datos enviados por los telescopios. Los grids involucran organizaciones e individuos que comparten recursos integrados y coordinados sin que por ello dejen de ser autónomos, flexibles y seguros; estas características obligan a que los procedimientos a seguir por las organizaciones e individuos estén estandarizados. Los grids incluyen recursos computacionales y humanos —en gran cantidad—, quienes deben trabajar en la misma dirección. En este artículo se exponen brevemente los antecedentes de los grids, los conceptos básicos relacionados, algunos de los puntos clave repecto de la seguridad y se hace una comparación entre el grid computing y el cloud computing. Finalmente, se describen algunos detalles acerca de dos de los middlewares disponibles para los usuarios del proyecto EELA2, gLite10 y DIRAC.11 2 Antecedentes Una definición temprana de este concepto fue dada por Len Kleinrock en 1969: ‚probablemente veremos el esparcimiento de las utilidades de computación tal como se presentan la electricidad y el teléfono, como servicios individuales en casas y oficinas en todo el país‛.1 El término ‚grid computing‛, originado a comienzos de los años noventa, se expuso como una metáfora donde el acceso al poder de cómputo debe ser tan fácil como el acceso de los usuarios a la red eléctrica.2 En esos años empiezan a surgir proyectos siguiendo la idea de este tipo de computación. El primer proyecto que utilizó cientos de computadores independientes para crear códigos encriptados fue el llamado distributed.net, mejor conocido como dnet, en 1997. La primera definición del grid computing fue de Ian Foster y Carl Kesselman, a comienzos de 1998: ‚un grid computacional es una infraestructura de hardware y software que provee acceso consistente a bajo costo a recursos computacionales de alto nivel‛. El segundo proyecto exitoso y popular en la historia de la computación distribuida es el SETI@home_project,12 el cual reunió más de dos millones de personas voluntarias distribuidas en todo el mundo, quienes instalaron el agente de software desde que el proyecto comenzó en mayo de 1999, probando de esta manera que la computación distribuida puede acelerar los resultados de los proyectos computacionales manteniendo los costos a niveles manejables. Ian Foster, Carl Kesselman y Steve Tuecke son reconocidos como los padres del grid,3 siendo los líderes en el desarrollo del Globus Toolkit, 13 el cual incorpora la 292 capacidad de calculo y de almacenamiento, aspectos de seguridad y monitoreo. Su diseño permite el desarrollo de servicios utilizando la misma infraestructura, como, por ejemplo, diferentes mecanismos de notificación, servicios de información de los estados del grid, etcétera. Globus Toolkit es el estándar de facto para la construcción de las herramientas.4 3 Grid computing El grid puede definirse como: ‚un sistema de software y hardware heterogéneos que permite compartir recursos de cálculo y de almacenamiento utilizando la red para solucionar problemas de usuarios que pertenecen a una o varias organizaciones que están distribuidas geogr{ficamente‛. Siguiendo las similitudes de los grids con las redes eléctricas, éstos deben tener ciertas características básicas: a) la conexión debe estar disponible en cualquier momento y desde cualquier lugar; b) debe ser altamente confiable, seguro, transparente y fácil de usar por los usuarios. En el artículo “What is a Grid? A Three Point Checklist”,2 Ian Foster hace referencia a tres puntos clave: 1) los recursos de cálculo no son administrados de una manera centralizada; 2) se utilizan estándares abiertos, y 3) la calidad del servicio a alcanzar no es trivial. De esta manera, el hardware que puede ser parte del grid, como es heterogéneo y está distribuido geográficamente, constituye una gran ventaja porque reúne todo tipo de recursos, aumentando las capacidades de cómputo. Además, la administración se hace por medio de varios individuos cuyas prácticas de seguridad y modos de administración son diferentes. Finalmente, como los recursos están expuestos a fallas, están conectados a diferentes redes. El software, por su parte, agrupa tanto los recursos como las aplicaciones, los CPU, etcétera, y debe permitir que éstos estén disponibles en todo momento de manera sencilla y segura. El hecho de que se utilicen estándares abiertos pone al software al alcance de todas las organizaciones. La calidad del servicio de los grids debe cumplir con las expectativas de los usuarios, garantizando la seguridad e integridad de los datos, la detección de intrusos, el rendimiento, el monitoreo de los recursos, balanceo de cargas, manejo de fallas, manejo de recursos y muchos otros factores. Otro concepto relacionado con los grids es el de las organizaciones virtuales (VO, por su siglas en inglés). Éstas son organizaciones que comparten recursos entre sí y los usuarios pueden pertenecer a una o más de ellas. Por otro lado, un ‚dominio administrativo‛ es una colección de recursos controlados por un grupo único de soporte encargado de la instalación, el mantenimiento y la seguridad del sistema, el cual tiene el acceso como su administrador. El middleware corresponde a una capa que sirve de mediadora entre los recursos 293 distribuidos y los usuarios. Es una herramienta de software que ofrece un conjunto de tecnologías que permiten el desarrollo de herramientas grid y sus aplicaciones, además de definir y estandarizar los protocolos del grid y los APIs, enfocándose en aspectos de las relaciones entre dominios administrativos, pero no relativos a clústers; es decir, se trata de recursos de colaboración utilizados por múltiples organizaciones y que están integrados en los dominios internos de cada dominio, creando una capa de servicio colectivo. 4 Estándares Los grids son de naturaleza dinámica; cambian constantemente —se agregan usuarios, se incluyen y se eliminan recursos—, por lo tanto, la estandarización en esta área tiene mucha importancia. La estandarización asegura tanto la operabilidad entre los diferentes middlewares e implementaciones —para que el usuario utilice los componentes que requiera—, como el que el sistema sea funcional en diversas plataformas. Globus Alliance y sus socios publicaron una serie de estándares como los siguientes: Open Grid Services Architecture (OGSA). Son un conjunto de estándares y protocolos que definen técnicamente cómo debe ser el desarrollo mundial de los grids. OGSA aprovecha los servicios Web con el fin de establecer una cooperación a gran escala y facilitar el acceso a aplicaciones mediante Internet. Un conjunto de especificaciones diseñadas para integrar el grid y los estándares del servicio Web. Las nuevas especificaciones del WS-notation y WSResource Framework proveen una infraestructura basada en estándares para que los usuarios compartan recursos de computación tanto dentro como fuera de su organización, vía Internet.5 4.1 Estándares utilizados por la herramienta Globus La herramienta Globus ha sido armada utilizando estándares provistos por organizaciones tales como Internet Engineering Task Force (IETF), 14 World Wide Web Consortium (W3C),15 Organization for the Advancement Standards (OASIS)16 y el Global Grid Forum (GGF).17 Actualmente, convergen los estándares del grid con los de los servicios Web. Como ejemplo de los protocolos y estándares pertenecientes a los middleware, se describen a continuación algunos de los que están relacionados con la herramienta Globus: SSL/TLS v1 [Secure Sockets Layer (SSL v2/v3), Transport Layer Security (TLS v1), de IETF]. Son protocolos de criptografía que permiten establecer 294 una conexión segura durante la transferencia de datos a través de Internet. LDAP v3 (Lightweight Directory Access Protocol, de IETF).Es un protocolo que se utiliza para consultar y modificar servicios de directorio sobre TCP-IP. X.509 Proxy Certificates (IETF). Es el estándar utilizado para las infraestructuras de llave pública (PKI, por sus siglas en inglés), el cual especifica los formatos estándares para los certificados de clave pública y el algoritmo que se utiliza para la validación de los certificados. HTTP [Hyper Text Transfer Protocol (W3C)]. Protocolo de comunicación utilizado para transferir información en la Web. Es un protocolo de petición-respuesta entre clientes y servidores que utiliza TCP. GridFTP v1.0 [Grid File Transfer Protocol (GGF)]. Protocolo de transferencia de datos basado en el protocolo de Internet FTP, el cual fue extendido para proveer operaciones de alto rendimiento y satisfacer los parámetros de seguridad requeridos por el grid. OGSA-DAI [Database Access and Integration Services (GGF)]. Es un producto del middleware que permite acceder a las bases de datos por medio del grid. WSDL 2.0 [Web Service Description Language (W3C)]. 5 Seguridad en el grid La seguridad en el grid y en los sitios son dos cosas que se atacan de diferente manera. Los problemas de seguridad en los sitios sólo afectan al sitio en sí mismo; sus administradores levantan una barrera y tratan de que el problema no se repita. En cambio, los problemas de seguridad en el grid afectan a todos los sitios que lo conforman y su solución puede que involucre a más de un administrador. La meta de la seguridad en el grid incluye a las diferentes organizaciones virtuales, sin coartar la autonomía de los sitios. Entre las consideraciones de seguridad que deben ser tomadas en cuenta está el que los usuarios deben ser reconocidos en todos los sitios que compartan recursos con la organización virtual a la que pertenezcan. Es decir, es necesario autentificar y autorizar a los usuarios de tal manera que puedan utilizar todos los recursos disponibles en el grid con un único log-in. Desde el punto de vista de los usuarios, el grid debe garantizar la confidencialidad de sus datos; para esto, se recurre a una serie de algoritmos para pasar de archivos de texto plano a archivos encriptados y viceversa. El grid garantiza la integridad chequeando la data con funciones hash, o también, los algoritmos MD5. La autentificación de los usuarios se logra presentando algún token que no puede ser modificado; por ejemplo, un 295 certificado de usuario firmado por una autoridad de certificación reconocida. Cada usuario, servidor o servicio en el grid debe ser autentificado. Los certificados incluyen cuatro atributos de información: Distinguish Name (DN): el cual identifica la entidad a la cual representa el certificado. La clave pública que pertenece a la entidad. La identidad de la autoridad de certificación (CA, por sus siglas en inglés) que ha firmado el certificado. La firma digital de la CA. El formato de codificación de estos servicios es el X509, un formato de data para certificados, establecido por el IETF. Estos certificados pueden ser compartidos con otro software, como, por ejemplo, los diferentes navegadores Web. La no repudiación es la firma digital que se utiliza para afirmar que una entidad es responsable por un mensaje o acción. El algoritmo Digital Signature Algorithm (DSA) se usa para firmar pero no para encriptar, además, se incluye el Time Stamp Authority (TSA), el cual sirve para colocar el lugar y el momento en el que fue realizada la transacción. La autorización puede ser realizada directamente por el usuario o por un servidor de proxies cuando el usuario realice la delegación. La confianza se define como la aceptación de un tercero en la manera de controlar y monitorear sus recursos, suponiendo que el comportamiento va a ser el apropiado y que seguirá las políticas de seguridad, autorización y autentificación. 6 Grid computing, cloud computing Con la cloud computing las compañías escalan a capacidades masivas en un instante, sin invertir en una nueva infraestructura, entrenar personal o comprar nuevas licencias de software. La cloud computing es un beneficio para los pequeños y medianos negocios que quieren hacer outsourcing de su infraestructura de data o grandes compañías que quieren bajar la carga de la capacidad sin incurrir en el alto costo de construir centros de datos internamente. En ambos casos, los consumidores del servicio usan lo que necesitan por medio de Internet y pagan sólo lo que usan. La idea subyacente es que el consumidor o usuario no tenga necesariamente una PC y pueda usar una aplicación desde una PC cualquiera o compre una versión especifica para un PDA u otros dispositivos. El usuario no es propietario de la infraestructura, software o plataforma en la cloud, no se encarga del mantenimiento de la red ni de los servidores. El consumidor puede acceder a múltiples servidores sin saber dónde se encuentran localizados. Entre las similitudes de estos dos sistemas están: Ambos son escalables. 296 Los usuarios pueden realizar varias tareas de manera simultánea en uno o varios sitios. Ambos poseen acuerdos de niveles de servicio (SLA, por sus siglas en inglés) que garantizan la disponibilidad. Entre las diferencias, se encuentran las siguientes: El grid computing pone énfasis en almacenamiento de data-intensiva; la cloud computing permite almacenar una cantidad de objetos, bien sea archivos de 1 byte, 5 GB o de TB. El grid computing se enfoca en operaciones de cálculo intensivo; la cloud computing ofrece dos tipos de cálculos, los cálculos estándar o el cálculo intensivo.6 El grid computing es de código abierto; la cloud computing no lo es.7 En la cloud computing, los usuarios dependen del proveedor de servicios; no así en el grid computing. La cloud computing es hasta ahora un servicio por el cual el usuario debe pagar; el grid computing está financiado por los sitios que lo integran y por proyectos. La cloud computing es el próximo paso en la evolución de la computación distribuida; por ahora, se deben buscar y crear herramientas para hacer la transición de los usuarios y tratar de que el middleware utilizado por la cloud computing sea de código abierto. 7 Middlewares en EELA2 En el proyecto EELA2 los usuarios pueden escoger entre varios middlewares; en esta sección se da una introducción de dos de ellos: gLite y DIRAC. 7.1 gLite gLite es un middleware para hacer grid computing y se está utilizando en los experimentos del CERN18 LHC y en una gran variedad de dominios científicos. gLite provee un marco para construir aplicaciones del grid y emplear el poder de la computación y del los recursos distribuidos por medio de Internet. Ha sido adoptado por más de 250 centros de computación y más de 15 000 investigadores en Europa y el resto del mundo, Latinoamérica inclusive. gLite es un conjunto de componentes distribuidos cuya función es la construcción de un grid mediante la integración de dichos componentes, entre los que se cuentan: User Interface (UI). Es el punto de entrada al grid para los usuarios, quienes ejecutan comandos sencillos para hacer una lista de los recursos disponibles para 297 ejecutar los trabajos; desde allí se envía, cancela, recupera la salida y se muestra el estatus de los trabajos; también se maneja la data por medio de sus elementos. Computing Element (CE). Es un servicio que reúne una parte o todos los recursos del sitio. Es una interfaz a los clústers, en la cual se instala un sistema de manejo de recurso locales (LRMS, por sus siglas en inglés) para controlar un conjunto de nodos de trabajo donde se van a ejecutar los trabajos enviados por los usuarios. Storage Element (SE). Provee acceso uniforme al almacenamiento y soporta protocolos de acceso a data e interfaces. Information Service (IS). Provee información acerca de los recursos que son parte del grid. Workload Management System (WMS). Acepta los trabajos y los asigna al mejor CE que esté disponible. Para esto, se utiliza el Push Model. Los trabajos son asignados tan pronto como sea posible y quedan en lista de espera hasta que el recurso esté libre para ser ejecutado. Virtual Organization Membership Service (VOMS). Es una base de datos estructurada de manera simple, como base de datos de cuentas con formatos fijos. Con ella se hace el intercambio de información como un único log-in o tiempo de expiración. Maneja múltiples organizaciones virtuales.8 7.2 DIRAC El proyecto DIRAC fue desarrollado inicialmente por el LHCb 19 como un sistema de producción masivo para la simulación de data. Actualmente, es un marco para la construcción de sistemas distribuidos que da acceso a diferentes tipos de recursos computacionales. En este caso, el WMS está compuesto por una cola central de trabajos y un conjunto de agentes que se ejecutan en los diferentes recursos de computación. Estos agentes pueden ser ejecutados en un grid, un clúster o una computadora personal. Los agentes o pilotos son ejecutados como trabajos normales del grid de gLite, por ejemplo, y cuando el recurso está disponible se comunica con la cola central de trabajos y le es asignado un trabajo para su ejecución. Este trabajo será asignado de acuerdo con sus características y prioridades y con las capacidades del recurso. Es decir, se utiliza el Pull Model y el trabajo se envía cuando el recurso está disponible. Este modelo ha sido probado en situaciones extremas. El DIRAC incluye todos los recursos de cálculo y almacenamiento instalados con el middleware gLite. El equipo DIRAC desarrolló un Web Portal desde el cual los usuarios pueden consultar el estado y eliminar o reenviar sus trabajos. El DIRAC también soporta los trabajos MPI; siguiendo la idea de los trabajos piloto, se instala en los sitios una implementación de MPI, MPICH2,20 con la idea de que los trabajos de MPI sean ejecutados en sitios que explícitamente provean o no la capacidad de ejecutar trabajos de manera paralela. 298 Conclusiones Los grids son una realidad, continúan desarrollándose y cada día aumenta el número de posibilidades y de científicos que lo utilizan para resolver los problemas con los cuales se encuentran y que requieren de las grandes capacidades de cálculo que proveen organizaciones diferentes. 299 Referencias 1. Foster, I. What is the Grid? A Tree Point Checklist, Argonne National Laboratory & University of Chicago, julio de 2002. 2. Foster, I. y C. Kesselman, The Grid: Blueprint for a New Computing Infrastructure, Argonne National Lab & University of Chicago, 1998. 3. Braverman, A., ‚Gather of the Grid‛, University of Chicago Magazine, abril de 2004. En Internet (http://magazine.uch icago.edu /0404/features/indesx.shtml), página consultada el 1 de noviembre de 2009. 4. Grid Computing, en Internet, (http://en.wi ki pe dia.org/ wiki/Grid_computing), página consultada el 1 de noviembre de 2009. 5. Zaglacas, G., Grid Computing: Meeting the Challenges of an On Demand World, IBM, septiembre de 2004. En Internet (http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/za glakas/index.html), página consultada el 1 de noviembre de 2009. 6. Myerson, J., Cloud Computing versus Grid Computing, IBM, marzo de 2009. En Internet (http://www.ibm.com /developer works/web/library/wacloudgrid/), página consultada el 1 de noviembre de 2009. 7. An EGEE Comparative Study: Grids and Clouds. Evolution or Revolution, CERN, julio de 2008. En Internet (https://edms.cern.ch /file/925013/4 /EGEEGrid-Cloud-1_2.pdf), página consultada el 1 de noviembre de 2009. 8. gLite, en Internet (http://en.wiki pedia.org/wiki/GLite), página consultada el 1 de noviembre de 2009. 9. DIRAC Site, en Internet (https://twiki.cern.ch/ twiki/bin /view/LHCb/DIRAC3Site), página consultada el 1 de noviembre de 2009. 10. En Internet (http://glite.web.cern .ch/glite/). 11. En Internet (https://twiki.cern.ch/twik i/bin/view/LHCb/DIRAC3Site). 12. En Internet (http://setiathome.berk eley.edu/). 13. En Internet (http://www.globus.org/). 14. En Internet (http://www.ietf.org/). 15. En Internet ( http://www.w3.org). 16. En Internet ( http://www.oasis-open.org). 17. En Internet (http://www.globalgrid forum.org). 18. En Internet (http://public.web.cex rn.ch/public/). 19. En Internet (http://lhcb.web.cern.ch /lhcb/). 20. En Internet (http://www.mcs.anl.gov/ research/projects/mpich2/). 300 Herramienta Computacional para Determinar la Confiabilidad de los Activos Reparables de Distribución de CFE Teresa Natalia Figueroa Ríos, Leopoldo Altamirano Robles, Benjamín Sierra Rodríguez Resumen. La Comisión Federal de Electricidad (CFE) es una empresa de clase mundial que tiene que realizar acciones de optimización en el uso de activos fijos, tomando en consideración que se deben disminuir los tiempos de fuera de servicio, los costos de mantenimiento, los costos de operación y los accidentes de trabajo, y elevar la productividad, el desempeño, la vida útil del equipamiento y la seguridad. Por tal razón, el LVC-INAOE le ha propuesto a la CFE el desarrollo de un sistema para determinar el índice de confiabilidad de sus equipos y materiales de distribución. En este trabajo se presentan el estudio, el análisis y la implementación computacional de las herramientas probabilísticas y estadísticas que permiten la obtención de la confiabilidad de los activos reparables. Palabras clave: confiabilidad, estadística, riesgo, herramienta computacional. Abstract. Federal Commission of Electricity (CFE) is a world-wide class company that has to develop strategies to optimize the use of fixed assets, which considering that it has to decrease out-service time, maintenance and operation costs, and work accidents, and it has to increase productivity, performance, equipment useful life, and security. For these reasons LVC-INAOE has proposed CFE develop a system which calculates the equipment and materials reliability ratio. This paper describes the study, analysis and computer implementation of the probabilistic and statistical theory to calculate the reparable assets reliability ratio. Keywords: Reliability, Statistical, Risk, Computer Tool. Sumario: 1 Introducción 2 Confiabilidad de equipos reparables 2.1 Modelo de Harkov 3 Diseño y desarrollo de la herramienta computacional que determina la confiabilidad de los activos reparables 3.1 Descripción de clases 3.1.1 Clase 301 ‚activos reparables‛ (ActivosReparables) 3.1.2 Clase ‚par{metros‛ (Parametros) 3.1.3 Clase ‚tiempos de reparación‛ (TiempoReparacion) 3.2 Validación de la herramienta computacional 4 Conclusiones Referencias 1 Introducción La Comisión Federal de Electricidad (CFE) tiene como misión asegurar a sus clientes el servicio de energía eléctrica en condiciones de cantidad, calidad y precio. Uno de los procesos que le permite cumplir con esta misión es la prevención de las fallas en equipos; para esto, es necesario hacer estudios estadísticos que diagnostiquen el comportamiento operativo de los equipos y obtener modelos probabilísticos para determinar la incidencia de fallas y el índice de confiabilidad y que posteriormente estos resultados sean considerados como la base para la toma de decisiones que eviten la ocurrencia de fallas. Es decir, el estudio y análisis de la confiabilidad de los equipos de la CFE son necesarios para la toma de mejores decisiones a lo largo de la vida útil de cada equipo, ya que actualmente la confiabilidad se ha convertido en una herramienta indispensable para la gestión moderna del diseño, construcción, operación y mantenimiento de las principales tecnologías existentes, la cual se puede aplicar en todo tipo de procesos industriales, incluidos la generación, transmisión, transformación y distribución de energía eléctrica. En este trabajo se mostrará la herramienta computacional que sirve para la obtención del índice de confiabilidad y otros índices estadísticos que complementan la información para la toma de decisiones correspondientes al mantenimiento, operación, reemplazo o compra de activos reparables. Un equipo reparable es aquel que después de sufrir una falla se puede arreglar de tal forma que vuelva a realizar la función para la cual fue diseñado. Los estados de tales equipos son dos: en operación o en reparación. Es conveniente utilizar un modelo de Markov que represente el comportamiento del equipo reparable y por medio de éste obtener la confiabilidad y disponibilidad del equipo. 2 Confiabilidad de equipos reparables Un equipo reparable es aquel cuya condición operativa puede restaurarse después de fallar, con una reparación.1 Esta consideración implica que en su vida puede ocurrir más de una falla, y es ésta la diferencia fundamental con los equipos ‚no reparables‛, en cuya vida sólo puede ocurrir una única falla. Un esquema básico del comportamiento de un equipo reparable se muestra en la figura 1. 302 Fig 1. Representación del ciclo operación-falla-reparación-operación de un componente. El equipo es puesto en operación y se encuentra funcionando al tiempo t = 0. Cuando el equipo falla, es reparado. Tenemos entonces una secuencia de tiempos de vida o tiempos de funcionamiento T1, T2,... para el equipo; estos tiempos siguen cierta función de distribución F(t) = P(Ti ≤ t); i = 1, 2, <, y tiempo medio para la falla MTTF = E(T). Cuando el equipo falla, estará fuera de servicio por un cierto periodo, al que llamaremos ‚tiempo de reparación del equipo‛. Asumiremos que los tiempos de reparación D1, D2,< son independientes e idénticamente distribuidos (i.i.d), con función de distribución F(t) = P(Di ≤ t); i = 1, 2, <, y tiempo medio de reparación MTTR = E(D). 2.1 Modelo de Markov Un activo reparable en cualquier momento puede estar trabajando normalmente o tener una falla. Los estados del elemento se representan en la figura 2. Fig. 2. Representación de los estados de los equipos. Sobre esto, las variables más importantes al momento de un análisis son, sin lugar a duda, el número de ocurrencias de fallas y sus duraciones. Por ende, la estimación de estos datos se torna una misión indispensable. Esta estimación presenta cierta complejidad debido a que la ocurrencia de una falla es un hecho fortuito, difícil e incluso imposible de anticipar. Así, entonces, el sistema es continuo en el tiempo, con estados discretos finitos, con lo que se ajusta muy bien a una representación mediante los procesos 303 continuos de Markov.2 Cada elemento reparable, cuando falla, se repara, lo cual permite establecer una condición de operación normal del equipo o de falla. 1 El modelo de los componentes considera sólo dos estados (falla y operación); el modelo de Markov es perfectamente adecuado para determinar la probabilidad del estado y la disponibilidad; sin embargo, otros parámetros de confiabilidad, tales como la frecuencia de encontrarse en un estado y la duración promedio de residencia en dicho estado entrega información importante. La probabilidad de que un elemento esté en operación está dada por: m (10) P (op ) mr Donde m es el tiempo promedio de operación y r es el tiempo medio de reparación. La aplicación de esta técnica puede resumirse en lo siguiente: 1. 2. 3. Evaluar las probabilidades de los estados. Evaluar la frecuencia de encuentro en un estado. Evaluar la duración media de cada estado. Consideremos un componente reparable con una tasa de fallas y una tasa de reparación µ, donde el componente falla y es reparado inmediatamente. El componente tiene dos estados: el estado 0, donde el activo está en operación, y el estado 1, donde el activo esta fuera de servicio. 3 A la probabilidad de que un componente experimente una falla por unidad de tiempo, dado que el componente es reparable, se le llama ‚tasa de falla r(t)‛. r (t ) m 1 (t ) (11) El tiempo promedio entre fallas (MTTF) se obtiene mediante: MTTF tf (t )dt (12) 0 Donde f(t) es la función de probabilidad de los tiempos hasta la falla, la cual depende del tiempo. Si la función de confiabilidad es R(∞)=0, entonces el MTTF puede expresarse como: MTTF R(t )dt (13) 0 Si consideramos el proceso de falla-reparación como una cadena donde t=0 indica el tiempo en que el componente ha fallado, a la probabilidad de que el activo sea 304 reparado completamente antes de un tiempo t se le llama ‚distribución de reparación G(t)‛. El tiempo de reparación es una variable aleatoria, para la cual podemos tener su valor esperado; el valor medio de reparación (MTTR) se obtiene de la siguiente manera: MTTR tg (t )dt (14) 0 Si G(∞) = 1, entonces el MTTR puede escribirse como (15) MTTR 1 G(t )dt 0 Para el proceso de falla-reparación-falla, donde X(t) es la variable que define el estado del elemento; es decir, si x(t) = 0 quiere decir que el componente está en operación y x(t) = 1 indica que el componente está en estado de falla: P (1 | 0) P ( x(t dt ) 1 | x(t ) 0) dt P (0 | 0) P ( x(t dt ) 0 | x(t ) 0) 1 dt P (1 | 1) P ( x(t dt ) 1 | x(t ) 1) 1 dt P (0 | 1) P ( x(t dt ) 0 | x(t ) 1) dt (16) La P( x(t dt ) 1 | x(t ) 0) es la probabilidad de que el elemento falle al tiempo t + dt, dado que la componente esta funcionando al tiempo t. 3 Diseño y desarrollo de la herramienta computacional que determina la confiabilidad de los activos reparables Esta herramienta fue creada con el lenguaje de programación orientada a objetos JAVA.4 El proceso de desarrollo de implementación de la sección anterior en la herramienta computacional se muestra en el diagrama de flujo de la figura 3, el cual representa a grandes rasgos las etapas que se siguen para obtener la confiabilidad de equipos reparables. 305 Fig. 3. Diagrama de flujo del proceso llevado a cabo en la herramienta computacional. El funcionamiento de la herramienta se basa en tres clases principales: Clase activos reparables Clase parámetros Clase tiempos de reparación La interacción entre las clases permite la obtención de la confiabilidad, el tiempo esperado de falla, el tiempo esperado de reparación y la disponibilidad de un equipo reparable. En la figura 4 se presenta el diagrama de clases en el cual se muestra la interacción que existe entre las funciones de las diferentes clases. 306 Fig. 4. Diagrama de clases para obtener la confiabilidad. 3.1 Descripción de clases Como se mencionó anteriormente, la programación está dividida en tres clases, donde cada una contiene funciones que permiten obtener la confiabilidad tanto numérica como gráfica. A continuación se describe cada una de las clases. 3.1.1 Clase “activos reparables” (ActivosReparables) Ésta es la clase principal, la cual se encarga de la interfaz gráfica que se muestra al usuario, en dicha interfaz se visualizan gráfica y numéricamente los resultados obtenidos acerca de la confiabilidad para los activos reparables; además, permite al usuario calcular la confiabilidad y la tasa de fallas en un tiempo dado. Esta clase tiene funciones que se encargan de realizar los cálculos estadísticos para obtener estimadores de los tiempos de falla y reparación, así como la confiabilidad. 3.1.2 Clase “parámetros” (Parametros) El objetivo de esta clase es obtener los parámetros de la función de distribución de probabilidad de la confiabilidad para activos reparables, además de realizar los cálculos para obtener el número esperado de fallas, el tiempo promedio de falla, el tiempo esperado para la próxima falla. 3.1.3 Clase “tiempos de reparación” (TiempoReparacion) 307 En esta clase se obtienen estadísticas de los tiempos de reparación, como el tiempo promedio de reparación y la disponibilidad de un equipo. 3.2 Validación de la herramienta computacional Para validar que la aplicación sólo admite datos correctos y confiables se realizaron pruebas con cuatro tipos de datos: datos ficticios, datos erróneos, datos reales. Datos ficticios. Aquellos datos que se generaron sin ninguna metodología numérica para probar la herramienta Datos erróneos. Aquellos datos que se introducen de manera intencional para probar y comprobar que el sistema los detecta. Datos reales. Aquellos con los que el sistema va a trabajar normalmente. Datos fortuitos. Aquellos que se generaron mediante un software de forma aleatoria para probar el programa. Todos estos datos sirvieron para probar que la herramienta obtiene los resultados esperados. Además, se ejecutó la aplicación reiteradamente con diferentes cantidades de datos para obtener la capacidad de procesamiento, concluyendo que esta herramienta soporta 10 000 000 de datos. Finalmente, depurada y validada la herramienta, su interfaz se muestra en la figura 5. Fig. 5. Resultados obtenidos por la herramienta. 308 En la figura anterior se observan las gráficas de confiabilidad y la de la función de riesgo del lado izquierdo, del lado derecho superior se muestran las diferentes estadísticas de los tiempos de falla y reparación, así como la confiabilidad del equipo, y en la parte inferior derecha se permite al usuario introducir información para obtener las estadísticas principales, como la confiabilidad, el riesgo y la disponibilidad. 4 Conclusiones Ésta es una herramienta computacional desarrollada con el lenguaje de programación JAVA, el cual permite tener interfaces gráficas que el usuario comprende fácilmente y también realiza cálculos matemáticos de mediana y alta complejidad. Con esta herramienta computacional se pretende apoyar el manejo eficiente de los equipos y materiales eléctricos de distribución de la CFE. Con los resultados que se obtienen mediante de esta herramienta se espera que: Se adquieran equipos en función de su confiabilidad operativa, de su vida útil y de los costos que éstos tengan por operarlos y mantenerlos en buen estado. Se optimice la gestión de operación y mantenimiento de los equipos. Se mejore el diseño de los equipos por parte de los fabricantes. Se cuente con evidencia técnica para el reclamo de garantía, expectativa de vida útil y expectativa de vida remanente. 309 Referencias 1. Gnedenko y Ushakov, Probabilistic Reliability Engineering, John Wiley & Sons, 1995. 2. Kumamoto y Henley, Probabilistic Risk Assessment and Management for Engineers and Scientists, IEEE Press, Nueva York, 1996. 3. Modarres, M., Kaminsky, M. y V. KrivtsoV, Reliability Engineering and Analysis, CRC Press, Taylor & Francis Group, 1999. 4. JAVA, Developer Resources for JAVA Technology, enero de 2008. 5. Foster, I. y C. Kesselman, The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann, San Francisco, 1999. 6. Aggarwal, Reliability Engineering, Kluwer Academia Publishers, 1999. 7. Pecht, Product Reliability, Maintainability, and Supportability Handbook, CRC Press, 2000. 310 Modelo Eléctrico del Cátodo de una Descarga de Alta Presión de Sodio José Luis Tapia Fabela, Yulia Nikolaevna Ledeneva, René Arnulfo García Hernández Resumen: En este trabajo se presenta el desarrollo de un modelo eléctrico del cátodo (ECM) de una descarga HPS, basado en las ecuaciones físicas que describen su comportamiento eléctrico. El modelo evalúa la caída de voltaje instantánea en la cubierta del cátodo (caída de voltaje predominante en una lámpara HPS) y la distribución de temperatura en su interior usando como parámetros de entrada la geometría del cátodo y la corriente de la descarga. El ECM se basa en la ecuación del transporte de calor del electrodo; dicha ecuación fue resuelta empleando el método de elementos finitos. Los resultados obtenidos fueron comparados con los reportados en la literatura, encontrándose una buena correspondencia. Por lo anterior, se concluye que el ECM es una herramienta que ayuda a entender la interacción entre la descarga y el cátodo. Sumario: 1 Introducción 2 Geometría del cátodo 3. Modelo teórico 3.1 Cálculo de la temperatura en la superficie activa del cátodo 3.2 Ecuación del transporte de calor del electrodo 3.3 Condiciones de frontera 4 Resultados y discusión 4.1 Cálculo de la temperatura en la superficie activa del cátodo 4.2 Cálculo de la distribución de temperatura en el electrodo 4.3 Cálculo del gradiente en la superficie activa del cátodo 5 Conclusiones Referencias 1 Introducción Los electrodos de una lámpara de descarga gaseosa constituyen la interfaz entre la columna positiva y el circuito electrónico. Una fracción importante de la potencia eléctrica suministrada a la lámpara se disipa en los electrodos resultando en una pérdida de potencia para efectos de iluminación. Por lo tanto, resulta esencial comprender la interacción entre los electrodos y la columna positiva para tratar de reducir las pérdidas de energía y mejorar el desempeño de la lámpara. El estudio experimental de la interacción entre el cátodo y la columna positiva de una descarga resulta difícil de realizar usando lámparas comerciales porque éstas 311 no cuentan con terminales que permitan medir la caída de potencial en los electrodos, así que es necesario una disposición experimental sofisticada para realizar las mediciones. Además, en algunos casos, las dimensiones de las descargas son tan pequeñas que resulta difícil realizar las mediciones. Consecuentemente, un modelo numérico de la interacción plasma-cátodo representa una buena opción para llevar a cabo dicho estudio. En este trabajo se propone un modelo eléctrico del cátodo ECM de una descarga, el cual es capaz de predecir la caída de voltaje a través de la cubierta del cátodo bajo diferentes frecuencias y formas de onda de la corriente de alimentación. El ECM se basa en la ecuación del transporte de calor en el electrodo y la ecuación de las pérdidas eléctricas en el frente del electrodo propuesta por J. J. de Groot y J. A. van Vlient. 4 Esta ecuación relaciona el gradiente de temperatura en el frente del electrodo (superficie activa) con la caída de potencial en el mismo. El ECM fue desarrollado en MatLab aplicando el método de solución de elementos finitos. El modelo propuesto está basado en ecuaciones físicas que describen el comportamiento eléctrico del cátodo y por lo tanto es válido bajo diversas condiciones de operación. El usuario del ECM sólo necesita introducir amplitud, frecuencia y forma de onda de la corriente de la columna positiva, y para una geometría del cátodo dada, el modelo predecirá la caída de voltaje instantánea en el cátodo. Además, usando el ECM es posible calcular la distribución de temperatura dentro del cátodo. Esto resulta de gran interés porque la vida útil de una lámpara HPS está fuertemente relacionada con la distribución de temperatura en los electrodos.9 2 Geometría del cátodo El cátodo de una descarga HPS alcanza una alta temperatura durante su funcionamiento, por lo que éste debe ser elaborado con un material refractario, con un punto de fusión alto. La geometría del cátodo de una descarga HPS se muestra en la figura 1. Fig. 1. Sección transversal del cátodo de una lámpara de descarga HPS. 2 312 El cátodo de una descarga HPS está compuesto por una barra de tungsteno envuelta con una o dos bobinas del mismo material; esto tiene el objetivo de incrementar la superficie radiativa. Entre las bobinas se deposita una mezcla activadora de bario que permite una mayor emisión de electrones. 3 Modelo teórico De acuerdo con J. J. de Groot y J. A. van Vlient,4 las pérdidas eléctricas ( Pk ) en el frente del cátodo ( y 0 ) de una descarga HPS están definidas por la ecuación (1): 3 dT 1 Pk d e 2 K 4 dy y 0 (1) donde: d e simboliza el diámetro en el frente del electrodo, K es la conductividad térmica del y z (d e tungsteno, 1 2 ) representa la coordenada axial reducida con z igual a la coordenada axial y T es la temperatura del electrodo. Como se puede observar en la ecuación (1), la caída de potencial en el cátodo está relacionada con el gradiente de temperatura en su superficie activa. Por lo tanto, para calcular las pérdidas eléctricas en el electrodo de una descarga, es necesario obtener la distribución de temperatura a través del mismo usando una determinada corriente eléctrica y condiciones de frontera. Una vez que se conoce la distribución de temperatura es posible especificar el gradiente de temperatura en la superficie activa del electrodo. 3.1 Cálculo de la temperatura en la superficie activa del cátodo La emisión termoiónica de electrones, en el caso del cátodo de una descarga HPS, se ve favorecida con el campo eléctrico aplicado y por la presencia de la capa activadora, que reduce la función de trabajo en la superficie del electrodo. En este estudio se asume que la densidad de corriente en la superficie activa del cátodo ( j ) está definida por: corriente iónica y j ji je , donde ji representa la densidad de je es la densidad de corriente de electrones compuesta por la emisión secundaria ( je sec ) relacionada con el proceso γ-Townsed y por la th emisión termo-iónica corregida por el campo eléctrico ( je ) —descrita en la ecuación de Richardson-Dushman ecuación (4). Por lo tanto: je je je th sec . De acuerdo con Sherman, la emisión de electrones secundarios debida al bombardeo de iones de sodio sobre el cátodo de tungsteno es igual al 1% de los iones que alcanzan el c{todo. Usando el coeficiente β-Waymouth, el cual 7 313 establece una relación entre la densidad de corriente iónica ji y electrónica je en la cubierta del cátodo de una descarga HPS [Waymouth, 1982] tenemos: j ji i (2) je j th j sec e e j e sec j i (3) e ( Ek ) jeth A T 2 exp k T donde: A 4 e me k 2 (4) h 1.2 10 6 A m -2 2 , simboliza la constante de Richardson-Dushman,7 e y me representan la carga y la masa del electrón respectivamente, h es la constante de Planck, k es la constante de Boltzmann, Ek ( E k ) 0 ( E k ); 3 ( E k ) e Ek 4 0 (5) Corresponde al campo eléctrico aplicado en la superficie del cátodo y se relaciona con la caída de potencial ( Vk ) mediante la ecuación de MacKeown:6 1 e ( Ek ) 2 A Tact j exp 1 k Tact (6) Ek2 4 ji 0 mi Vk 2 e donde mi representa la masa iónica del sodio, 0 es igual a la constante dieléctrica del vacío, y: Aquí, 0 es la función de trabajo para el tungsteno y simboliza la corrección Schottky para la función de trabajo del tungsteno. Para calcular la temperatura en la superficie activa del cátodo de una descarga HPS, se asume que el acoplamiento entre el arco y el cátodo es de modo difuso.5 Cuando el cátodo opera en modo difuso, el plasma cubre la superficie activa del electrodo y sus lados. En el presente estudio se supone que únicamente la superficie activa del cátodo participa en la emisión termoiónica. Las otras zonas del electrodo son consideradas inactivas desde el punto de vista de emisión electrónica.5 Tomando en cuenta los argumentos anteriores y substituyendo las ecuaciones (2) y (3), en la ecuación (4), es posible derivar la siguiente ecuación que relaciona la densidad total de corriente con la temperatura en la superficie activa del cátodo ( Tact ): 314 Resolviendo la ecuación anterior se puede deducir la temperatura en la superficie activa del cátodo que produce una densidad de corriente igual a la corriente de la descarga. De acuerdo con Waymouth,9 el valor del coeficiente es considerado como el 20% de la densidad de corriente de electrones. 3.2 Ecuación del transporte de calor del electrodo La distribución de temperatura dentro del cátodo y en su superficie activa puede obtenerse resolviendo la ecuación (7) del transporte de calor del electrodo, usando las condiciones de frontera dadas (véase la sección 3.3). La ecuación (7) describe la variación de la cantidad de calor por unidad de volumen en el electrodo:1 cp T S K T t (7) donde: densidad, representa cp la la capacidad calorífica específica, T es la temperatura del electrodo, t denota la dependencia del tiempo de la ecuación y K simboliza la conductividad térmica del tungsteno. El término S de la ecuación (7) representa la potencia disipada en el electrodo por unidad de volumen debida al efecto Joule y es dada por la ecuación: 1 S e j 2 (8) Aquí j representa la densidad de corriente de la descarga y e la conductividad eléctrica del electrodo. El calor producido en el cuerpo del electrodo debido a la circulación de la corriente de la descarga a través del mismo, eleva su temperatura y por consiguiente el valor de la conductividad eléctrica e cambia; este cambio está determinado por la relación:1 Las constantes 0 y e (T ) o 1 T Tact (9) dependen del material del cual está constituido el cátodo. Para el caso del tungsteno sus valores se muestran en el cuadro 1. Además, la condición suplementaria siguiente, para la corriente total de la descarga, debe ser verificada: donde: r0 d e 2 es el radio del 2 cátodo, r es la coordenada radial e I representa la corriente en la descarga. r0 j r dr I (10) 0 315 Cuadro 1. Coeficientes del tungsteno (Cristea, 2003) Símbolo Valor Unidades 19300 [kg m-3] cp 133 K 0 776/(T0.256) 5.28X10-8 6.76X10-3 [J kg-1 K-1] [W m-1 K-1] *Ω-1m-1] [K-1] 3.3 Condiciones de frontera El frente (superficie activa) y el extremo posterior del cátodo fueron caracterizados con una condición de frontera de Dirichlet. La temperatura en el extremo posterior del cátodo de una descarga HPS similar a la modelada en este estudio fue medida experimentalmente por Cristea Tend 600K ;1 en el presente estudio, ante la imposibilidad de realizar esta medición, se usó el valor reportado. La temperatura en la superficie activa del cátodo Tact se obtiene al resolver la ecuación (6) para una determinada densidad de corriente de la descarga. Las condiciones de frontera en los bordes del cátodo se definieron como condiciones de Neumann; el significado físico de estas condiciones es el intercambio continuo del flujo energético —radiación, conducción, convección— entre el cátodo y el medio adyacente. La ecuación que define la condición de frontera es: 1 T 4 4 K (Tb ) n (Tb Tamb ) (Tb ) (T(11) b Tamb ) donde: representa la Tb n b temperatura del cátodo en el borde, Tamb es la temperatura ambiental, es el coeficiente de convección, simboliza la emisividad del tungsteno y El término es la constante de Stefan Boltzmann. (T n ) b representa la derivada de la temperatura en dirección normal n a la superficie activa del cátodo. 4 Resultados y discusión El procedimiento empleado para calcular las características eléctricas del cátodo se resume en el diagrama de flujo mostrado en la figura 2. En este diagrama los 316 parámetros de entrada y salida son representados mediante rectángulos redondeados para diferenciarlos de los rectángulos que identifican a los pasos de proceso. Como se puede ver, para obtener la temperatura en la superficie activa del electrodo es necesario conocer la caída de voltaje inicial en el cátodo y la corriente de la descarga. Con la temperatura obtenida es posible calcular la distribución de temperatura a través del electrodo, y continuando con los pasos subsecuentes se puede obtener una nueva caída en el cátodo que cumpla con las condiciones impuestas. El proceso se repite hasta que el programa converge. La ecuación (7) fue resuelta en MatLab usando el método de elementos finitos. Las dimensiones del cátodo empleado fueron: d e =1 mm, r2 =1.5 mm, r3 =1.0 mm, d1 =1.5 mm, d 2 =3 mm, d 3 =5 mm (véase la figura 1). Los resultados obtenidos se presentan a continuación: Corriente de la descarga jcalculada 0 1 2 e ( Ek ) j ATact exp kTact 1 j jcalculada .03 j sí fin no Temperatura en la superficie activa del cátodo c p 1 2 e ( Ek ) jcalculada ATact exp kTact 1 T S K T t Distribución de temperatura en el cátodo dT dy y 0 Gradiente de temperatura en la superfice activa del cátodo 3 dT 1 Pk d e2 K 4 dy y 0 Caída de potencial en el cátodo Fig. 2. Solución estructurada para calcular la caída de voltaje en la cubierta del cátodo de una descarga HPS.2 317 4.1 Cálculo de la temperatura en la superficie activa del cátodo La temperatura en la superficie activa del cátodo se obtiene mediante la ecuación (6). La solución fue conseguida por medio de un proceso iterativo que cambia la temperatura en la superficie activa del cátodo y calcula la corriente necesaria para alcanzar dicha temperatura, el proceso finaliza cuando se converge con la corriente impuesta por la descarga. En otras palabras, la solución de la ecuación (6) es una temperatura que produce una densidad de corriente eléctrica igual a la de la descarga. Los resultados del proceso anterior, para una densidad de corriente de la descarga de 1.2732×106 A/m2 en una lámpara HPS (400 W), se muestran en la figura 3. La temperatura obtenida en la superficie activa alcanza los 1650 K. Fig. 3. Solución gráfica para la temperatura de la superficie activa del cátodo usando una densidad de corriente de la descarga de j 1.2732x106 Am 2 . 4.2 Cálculo de la distribución de temperatura en el electrodo En la figura 4 se presenta la distribución de temperatura a través del cátodo de una descarga HPS, obtenida para una temperatura en la superficie activa de Tact 1650 K , la cual corresponde a una corriente en la descarga de 4 A. Como se puede observar, la distribución de temperatura presenta simetría axial. Considerando que en modo difuso la tasa de agotamiento de la capa de emisión del cátodo es la misma en todos los puntos; entonces, se puede suponer que en 318 este modo de operación el cátodo funcionará apropiadamente hasta la conclusión de la capa de emisión. La distribución de temperatura dentro del cátodo de una descarga resulta de gran interés debido a que la vida útil de las lámparas HPS está íntimamente relacionada con dicha distribución. 3 Fig. 4. Distribución de temperatura (escala de grises) y flujo de calor (flechas) en el cátodo de un descarga HPS. 4.3 Cálculo del gradiente en la superficie activa del cátodo Una vez que se cuenta con la distribución de temperatura en el interior del cátodo, es posible calcular el gradiente de temperatura en el frente del electrodo (superficie activa). En la figura 5 se muestra el perfil de temperatura en el centro del cátodo de una descarga HPS. En el frente del electrodo la temperatura es de 1650 K; sin embargo, la temperatura decrece rápidamente cuando se aproximan a la parte posterior del electrodo alcanzando un valor de 600 K. El decremento de temperatura es debido a las pérdidas por conducción y radiación del cátodo definidas en las ecuaciones (7) y (11). Asimismo, en la figura 5 se muestra el gradiente de temperatura en la superficie activa del electrodo. El perfil de temperatura fue comparado con las referencias,1 se encontró una buena correspondencia en cuanto a la pendiente del perfil en los primeros 5 mm; sin embargo, existe una notable diferencia en la parte posterior del electrodo. Lo anterior se explica debido al hecho de que para el cálculo del perfil de temperatura, los autores de las referencias anteriormente citadas, consideran que el electrodo es una barra de longitud infinita, y el cálculo lo realizan de manera unidimensional. 319 Fig. 5. Gradiente de temperatura en la parte frontal del cátodo usando una corriente senoidal de 4 A de 60 Hz. Usando el gradiente de temperatura de la superficie activa del cátodo, obtenido en la sección previa, se pueden calcular las pérdidas eléctricas y consecuentemente se logra determinar la caída de potencial en el cátodo. En la figura 6 se resume el procedimiento adoptado en este estudio para determinar la influencia de la frecuencia y forma de onda de la corriente de la descarga en la operación del cátodo. ECM I (f, wf) Fig. 6. Diagrama del modelo eléctrico del cátodo (ECM). Como se puede observar, para realizar el estudio descrito, se aplica una fuente de corriente I con frecuencia (f) y forma de onda (wf) al modelo propuesto ECM. En el cuadro 2 se reportan algunos resultados típicos obtenidos para cátodos de tungsteno en descargas HPS, lo anterior con el propósito de validar el modelo desarrollado. En el cuadro 2 es importante notar un ligero incremento en la caída de voltaje al aumentar la frecuencia. Las diferencias que aparecen con las referencias consultadas son debidas probablemente a las simplificaciones consideradas en el modelo propuesto. 320 Cuadro 2. Caída de voltaje típica obtenida para cátodos de tungsteno en descargas HPS 5 Conclusiones En el presente trabajo se diseñó un modelo eléctrico del cátodo de una descarga HPS dispuesto para el diseño de balastras electrónicas. El modelo se basa en la ecuación de la transferencia de calor y la ecuación de las pérdidas eléctricas del electrodo. Fue implementado en MatLab mediante el uso del método de elementos finitos. Debido a que el modelo propuesto está basado en ecuaciones físicas que describen el comportamiento eléctrico del cátodo, los resultados obtenidos con este modelo son validos sobre distintas condiciones de operación. El ECM es capaz de predecir la caída de voltaje en la cubierta del electrodo, bajo diferentes frecuencias y formas de onda de la corriente de alimentación. Usando el ECM es posible determinar la distribución de temperatura en el interior del cátodo, lo cual es de gran interés debido a que la vida útil de una lámpara HPS está fuertemente relacionada con ésta. Los resultados obtenidos usando el modelo fueron comparados con los reportados en la literatura y se encontró que el modelo predice de una manera satisfactoria los parámetros eléctricos en el cátodo de una descarga HPS. Por lo anterior se puede concluir que el ECM es una herramienta que ayuda a entender la interacción entre la descarga y el cátodo con el objetivo de mejorar el diseño de balastras electrónicas. 321 Referencias 1. Cristea, M. y G. Zissis, ‚Thin Barium Layer Formation and its Influence on Tungsten Electrode Arc Attachment Modes in HID Lamps‛, Journal of Optoelectronics and Advanced Materials, núm. 5, 2003, pp. 511-520. 2. Tapia Fabela, J. L., J. O. Pacheco-Sotelo, M. P. Pacheco, J. S. Benitez-Read, R. Lopez-Callejas, G. Zissis y S. Bhosle ‚Modeling the Voltage Drop Across the Cathode Sheath in HPS‛, IEEE Plasma Science, núm. 35, 2006, pp. 11041110. 3. Flesch, P., Light and Light Sources, High-Intensity Discharge Lamps, Springer-Verlag, Nueva York, 2007. 4. De Groot, J. J. y J. A. van Vliet, The High Pressure Sodium Lamp, MacMillan Education, Deventer, 1986. 5. Lichtenberg, S., D. Nandelstädt, L. Dabringhausen, M. Redwitz, J. Luhmann y J. Mentel, ‚Observation of Different Modes of Cathodic Arc Attachment to HID Electrodes in a Model Lamp‛, Journal of Physical Development: Applied Physics, núm. 35, 2002, pp. 1648-1656. 6. Mackeown, S. S., ‚The Cathode Drop in an Electric Arc‛, Physical Review, núm. 34, 1929, pp. 611-614. 7. Sherman, J. C., ‚Secondary Electron Emission by Multiply Charged Ions and its Magnitude in Vacuum Arcs‛, Journal of Physical Development: Applied Physics, núm. 10, 1977, pp. 355-359. 8. Tielemans, P. y F. Oostvogels, ‚Electrode Temperature in High Pressure Gas Discharge Lamps‛, Philips Journal Research, vol. 38, 1983, pp. 214-223. 9. Waymouth, J. F., ‚Analysis of Cathode-Spot Behavior in High-Pressure Discharge Lamps‛, Journal of Light and Vis. Env., núm. 6, 1982, pp. 53-64. 322 Control difuso de un Sistema no Lineal Luis Eduardo Espinosa Maya, Godolfredo Sánchez Medina, Horacio George Haro, René L. Pacheco L., Gerardo Villegas R., Gerardo Mino A., Oscar Morales P., Honorato Azucena C., Jorge Barahona Ávalos Resumen: En el presente trabajo se describe el diseño y la puesta en marcha de un controlador difuso para un prototipo no lineal, el cual está basado en el sistema clásico de la bola y la viga (ball and beam). El control difuso se implementa en un microcontrolador PIC de la familia 16F, el cual carece de instrucciones de multiplicación, por lo tanto, el diseño del algoritmo y su codificación cobran importancia. La funcionalidad del controlador se demuestra toda vez que resuelve el problema de control no lineal cuando se desconoce el modelo dinámico de la planta. Palabras clave: lógica microcontroladores. difusa, control difuso, sistema no lineal, Sumario: 1 Introducción 2 Lógica difusa 2.1 Controladores difusos 3.1 Construcción del sistema 4 Diseño de control difuso 4.1 Estabilidad 4.2 Modelado y simulación 5 Resultados experimentales 6 Conclusiones Referencias 1 Introducción El modelo de procesamiento de la información, desarrollado a finales del siglo XIX y principios del siglo XX, que conforma el binomio lógica booleana-máquina de Turing, es la base de los actuales sistemas de procesamiento digitales; por ejemplo, los microprocesadores, los microcontroladores, etcétera. Sin embargo, y sin desestimar sus indiscutibles logros, este esquema causa problemas cuadro se abordan tareas del mundo real, donde la información se presenta de forma masiva y típicamente distorsionada. Algunos modelos alternativos han sido propuestos para abordar el tema; entre ellos, las redes neuronales artificiales y los sistemas basados en lógica difusa son los que cuentan con mayor popularidad y se utilizan más. Éstos y otros modelos de procesamiento y control se engloban bajo el término de ‚inteligencia 323 computacional‛ o ‚soft computing‛, puesto que su inspiración para las soluciones son las que la naturaleza ha encontrado a lo largo de millones de años de evolución. Las soluciones naturales se copian en los sistemas artificiales, de los cuales se espera que contribuyan a resolver problemas tecnológicos importantes. La inteligencia artificial (IA) es una combinación de la ciencia de las computadoras, la psicología y la filosofía. Por otra parte, un controlador clásico es un compensador de atraso-adelanto cuyo diseño se basa en el conocimiento de un modelo matemático; el éxito del control reside comúnmente en la fidelidad de la representación del comportamiento de la planta por parte del modelo, lo que hace que estas técnicas sean de difícil aplicación cuando se desconoce el modelo o la incertidumbre es demasiada. Con estas premisas, aquí se propone el diseño y la puesta en marcha de un controlador difuso para un prototipo no lineal, usando un microcontrolador como sistema de procesamiento. Para los fines del trabajo, se plantea un sistema lineal del cual se conoce su representación matemática (sistema de la bola y la viga o ball and beam); con éste se complementa el diseño y se pone en marcha con el controlador mediante la simulación del sistema en lazo cerrado. 2 Lógica difusa El desarrollo de controladores difusos ha emergido como una de las más prósperas y fructíferas aplicaciones de la teoría de conjuntos difusos. Esta teoría fue postulada por Lotfi Zadeh, como una generalización de los conjuntos clásicos. Ya en los trabajos seminales, introduce la idea de formular el problema de control mediante el uso de reglas expresadas con representaciones lingüísticas. Las experiencias diarias de la vida real nos dan muchos ejemplos donde esto se confirma, como cuando el entendimiento, el pensamiento y la habilidad humana resuelven de manera eficiente el problema del control en una gran variedad de sistemas y sin hacer uso de los algoritmos sofisticados de la teoría del control. Mamdani y sus colegas fueron los primeros en aplicar la lógica difusa al control de procesos, particularmente, en un sistema de control para una máquina de vapor, y desde entonces el número de aplicaciones de los controladores difusos ha ido en aumento hasta estar prácticamente en todos los campos de la Ingeniería. Los controladores difusos tienen potencialmente muchas ventajas cuando las especificaciones del control requieren robustez, adaptabilidad y flexibilidad, debido a perturbaciones del entorno o a efectos no modelables de la dinámica del sistema. Los controladores difusos están basados en reglas que hacen discreto el espacio de operación continuo, no lineal y multidimensional en las clases discretas. Utilizando la lógica multivaluada, las variables difusas de las reglas preservan la información cuantitativa en los valores correspondientes de clase y de pertenencia a esa clase. El comportamiento del controlador difuso se 324 optimiza mediante una máquina de estados finitos, en términos de las clases discretas, y finalmente se usa la (3) F u, MembF u | u U información de la función de pertenencia para hacer una interpolación suave entre los puntos vecinos del espacio de operación continuo. Proposición 1. Conjuntos difusos. Para cualquier conjunto clásico C, definido en el universo de discurso U, es posible definir una función característica Memb C : U → {0, 1} como: (17) . En la teoría de conjuntos difusos, esta función característica se generaliza como una función de pertenencia que asigna a cada elemento u є U un valor en el intervalo unitario [0, 1]. El conjunto F obtenido con base en tal función de pertenencia se define como conjunto difuso. Función de pertenencia. La función de pertenencia MembF del conjunto difuso F es: MembF : U 0,1 , (2) donde, para cada elemento u є U, se asigna el grado de pertenencia MembF (u) є [0, 1]. De esta manera, F queda completamente determinado por el conjunto de pares: Proposición 2. Variable lingüística. La variable lingüística ui es una descripción simbólica constante utilizada para presentar, en general, una cantidad, variando en el tiempo dentro del intervalo definido por un universo de discurso Ui. Los diferentes valores que esta variable puede adquirir son conocidos como valores lingüísticos. 325 Fig. 1. Variables lingüísticas. 2.1 Controladores difusos La estructura general de un controlador difuso se muestra en la figura 2 y consta de cuatro módulos principales: 1) interfaz de fusificación, 2) base de conocimiento, 3) mecanismo de inferencia, y 4) interfaz de defusificación. Fig. 2. Arquitectura de un control difuso. Aquí hemos empleado las metodologías más usadas y estudiadas del control difuso: la fusificación triangular, la inferencia por Mamdani y una defusificación tipo centro de área. La base de conocimiento se propuso con base en la experiencia y fue ajustada por prueba y error. 326 3 Sistema no lineal El sistema no lineal usado para el trabajo es el sistema de la bola y la viga (ball and beam). La descripción completa de la dinámica de la bola rodando sobre la barra es compleja, pero una útil simplificación del modelo se presenta en la figura 3. Fig. 3. Fuerzas actuantes en el sistema. Este sistema tiene la siguiente representación matemática en variables de estado: x x 0 2 d x ( x g sin ) 0 0 u dt 1 0 (4) . 3.1 Construcción del sistema La construcción del sistema se divide en tres partes: construcción física de la bola y la viga (ball and beam); construcción electrónica y software del microcontrolador. 327 El sistema físico de la bola en la viga tiene las siguientes características: 50 cm de longitud de la barra —40 cm de esta longitud es para el desplazamiento de la bola—, servomotor de 3 Kg/cm y una pelota de poco peso. Con estos elementos se hizo un acoplamiento directo entre los dispositivos, considerando una base que soportara la barra. El prototipo quedó como se ve en la figura 4. Fig. 4. Prototipo del sistema. En este prototipo del sistema, la pelota saltaba fuera de la barra cuando se delizaba fuera del centro. Entonces, se construyó un segundo prototipo, respetando las mismas dimensiones y acoplando la barra directamente al tubo, el cual, ahora, hacía las veces de viga (véase la figura 5). Fig. 5. Prototipo final del sistema. La electrónica del sistema consta de: 1) sensor infrarrojo IR Sharp GP2DXX, el cual opera con base en el método de triangulación mediante un pequeño sensor detector de posición (PSD) lineal para determinar la distancia o la presencia de los objetos dentro de su campo de visión; 2) la señal del sensor se acondiciona por medio de un amplificador inversor y un filtro paso bajo de segundo orden, con frecuencia de corte de 100 Hz; 3) a la salida de la etapa de acondicionamiento se conecta la entrada del ADC de un microcontrolador PIC16F877; 4) un elemento de interfaz para el usuario, como un LCD de 2 x 16 caracteres y botones; 5) alimentación del sistema. 328 El software residente en el microcontrolador se implementó para ofrecer diferentes funciones: interfaz para el usuario (teclado y LCD), adquisición de la señal del sensor y procesamiento del control difuso. El software se desarrolla con un compilador C para los PIC de la familia 16F. Este software tiene dos ciclos principales: 1) el usuario ingresa el punto de partida (setpoint) mediante dos botones, arriba-abajo (up-down), que van aumentando-disminuyendo el punto de partida de 1cm a la vez, y 2) una ejecución del ciclo de control, donde el dato del sensor de posición adquiere, calcula el error actual, procesa la fusifucacióninferencia-defusificación y produce la salida en PWM para el motor. 4 Diseño de control difuso El sistema procesado obtiene la retroalimentación por medio del AD conectado al sensor de posición. Una vez adquirida esta información se calcula el error de posición, el cual se fusifica para aplicarlo al sistema difuso. Cuadro 1. Términos para el error de posición y el error anterior Término lingüístico Distancia Voltaje medido en el sensor NG 30 cm 1.87 volts NP 23 cm 0.76 volts C 20 cm 0.55 volts PP 17 cm 0.38 volts PG 10 cm 0.15 volts Los términos que aparecen en el cuadro 1 expresan funciones de pertenencias triangulares, con centro en el valor de distancia escrito en el rengón correspondiente. Para la salida o acción de control, se propone un conjunto de términos más grande. 329 Cuadro 2. Términos lingüísticos para la variable de salida Término lingüístico Angulo Nombre NG -60 Negativo grande NM -35 NP -10 C 0 Negativo mediano Negativo pequeño Cero PP 10 Positivo pequeño PM 35 Positivo mediano PG 60 Positivo grande La inferencia del sistema se propone en función de la experiencia, tal como se presenta en la figura 6. Aquí se reflejan casos simples, como error negativo grande (NG) o una acción positiva grande (PG). Fig. 6. Propuesta para la inferencia. Con base en esta propuesta se construyó un cuadro de relación para los términos lingüísticos de entrada y salida, y a su vez, sobre esta base se hizo la construcción del conjunto (set) de reglas a programar en el microcontrolador. Fig. 7. Matriz de reglas. 330 4.1 Estabilidad La estabilidad es una propiedad esencial que debe determinarse en los sistemas de lazo cerrado planta-controlador. En este caso, y por tratarse de un sistema de control difuso, aplicamos un criterio propuesto por Mamdani, el cual analiza el controlador demostrando que sus trayectorias convergen. Estabilidad en la energía de la relación difusa del controlador. La ecuación básica de un sistema difuso tiene la forma: (5) Donde XK y XK+1 son los conjuntos X K 1 X K U K R difusos de los estados K-ésimo y K 0,1,2,3,... . (K-1)-ésimo instante respectivamente; UK es la entrada en el instante K, y R es la relación difusa entre la entrada y la salida. Un sistema dinámico libre se realiza con una entrada cero (sistema autónomo), tendiendo entonces: X K 1 X K P , (6) donde P = UK º R para UK = cero para k = 0,1,2,3, < Entonces, un sistema de este tipo está en estado de equilibrio si X K+1 = XK para todo K. Un sistema es estable si su energía total es mínima y constante. El sistema es inestable si la energía se incrementa con el tiempo. Es oscilatorio si ésta fluctúa periódicamente. Se define la energía de una relación difusa P como: E P 1 n m wxi , y j f p xi , y j n m i 1 j 1 (7) Así, el rango de incremento de energía cambia constantemente: E P, i E P i E P i 1 , (8) Donde Pi = P º P º P < P son las veces que se aplica la composición m{ximomínimo (max-min) a la relación difusa P. 331 El algoritmo de estabilidad en la energía (ESA) tiene los siguientes estados: Si ΔE(P, i) ≤ 0 cuando i → ∞, entonces el sistema es estable. Si ΔE(P, i) > 0 cuando i → ∞, entonces el sistema es inestable. Si │ΔE(P, i)│ = │ΔE(P, i + τ )│, cuando i → ∞, entonces el sistema es oscilatorio con frecuencia 1/ τ. En nuestro caso, la relación de la entrada y la salida del controlador: P= 1000 620 620 620 620 P2= 660 760 760 620 620 620 580 620 660 620 620 620 480 480 580 1000 620 620 620 620 620 620 620 620 240 660 760 760 660 620 620 620 620 620 620 620 620 620 620 620 620 620 620 620 620 P3= 1000 620 620 620 620 660 760 760 660 620 620 620 620 620 620 620 620 620 620 620 620 620 620 620 620 Se aprecia que P2 = P3 y, por obviedad, será igual para Pn, por lo que se determina de igual forma que E(Pi) – E(Pi-1) = 0, sin necesidad de calcular la energía, y por lo tanto, ΔE(P, i) = 0 cuando i → ∞, entonces la relación difusa es estable. 4.2 Modelado y simulación La simulación del sistema de la bola y la viga (ball and beam) se presenta junto a su controlador difuso; para esto, se empleó el SimuLink y el FIS editor de MatLab 6.5. Cuando se trabaja con sistemas de control difuso no es necesario conocer la dinámica específica del sistema a controlar, por lo cual los coeficientes del sistema modelado en la simulación no corresponden a los valores del sistema real. Con el editor de sistemas difusos (FIS editor), se plantea un sistema con una base de reglas como las que hemos visto ya en la matriz de la figura 7 (véase la figura 8). 332 Fig. 8. Visor de reglas del FIS editor de MatLab 6.5. En SimuLink, se dibuja el diagrama general del sistema de lazo cerrado, tal como se muestra en la figura 9. Fig. 9. Diagrama en SimuLink. Los resultados de la simulación muestran que el controlador difuso efectivamente controla el sistema de la bola y la viga (ball and beam). 333 Fig. 10. Respuesta del sistema contra la entrada. 5 Resultados experimentales Con el sistema construido, se constituyó una batería de cuatro pruebas para diferentes puntos de partida (setpoints) 1—8cm a 22cm, en paso de 1cm—, considerando que la bola se encuentra en una posición inicial = 0cm (extremo de la viga). A continuación, se muestran los resultados obtenidos del experimento físico (véase el cuadro 3). 334 Cuadro 3. Resultados finales del sistema Setpoint (cm) 18 P1 P2 P3 P4 18.3 19.1 18.7 18.3 19 19.3 19.3 19.2 19.5 20 20.1 19.8 20.2 20.1 21 21.4 21.4 21.2 21.5 22 22.7 22.6 22.6 22.5 Conforme el sistema se aleja un poco del centro de la barra, ubicado a 20 cm (centro de la variable lingüística C), empieza a tener errores mayores, aunque aun así las variaciones son pequeñas. Entre las pruebas que se llevaron a cabo, hubo respuestas muy cercanas al punto de partida (setpoint). El error máximo registrado en las pruebas fue de 1.1 cm o 2.75%. 6 Conclusiones Para el diseño de las reglas del control difuso se probó el sistema de forma manual y se trató de equilibrar la bola, a partir de lo cual se concluyó que cuando la bola estaba muy cerca del punto deseado había que dar un ángulo pequeño para mover la bola sólo un poco, pero debido a que la bola estaba prácticamente frenada, un ángulo demasiado pequeño no la movía y uno algo grande la movía demasiado —esto, para romper la inercia de la bola. Así que inferimos que, cuando la bola cae en la vecindad de 1 cm del punto de partida (setpoint) o está prácticamente frenada, es difícil aproximarse al error cero, pues es difícil romper nuevamente la inercia para corregir el error, por las características dinámicas de la bola. Esta información experimental de primera mano sirvió como base para el ajuste de los valores de los términos lingüísticos asociados a la entrada y salida del sistema difuso, y de ahí se planteó la necesidad de incluir un estado anterior del error. El software para el control difuso se desarrolló en lenguaje C para microcontroladores PIC de la familia 16F, lo cual es importante, pues estos microcontroladores no cuentan con instrucciones tipo Mac y éstas se tienen que emular; esto implica un tiempo de ejecución muy grande cuando se está programando la parte difusa —lo que en esencia son sumas y multiplicaciones (operaciones Mac). El problema se resolvió precalculando algunas operaciones de constantes y cargando su valor como una constante para el programa. De esta 335 manera, se demostró que un software bien estructurado es capaz de ejecutar su tarea bajo las especificaciones de tiempo para la aplicación que nos ocupa. Los resultados de la demostración de la estabilidad del sistema de control difuso y de la simulación son complementarios y le dan el formalismo requerido al trabajo en su conjunto. Referencias Gómez Galindo, J., ‚Conjuntos y sistemas difusos‛, apuntes de curso de informática, Departamento de Lenguajes y Ciencias de la Computación, Universidad de Málaga, España. En Internet (www.uma.es), página consultada en en agosto de 2006. Ross, T. J. Fuzzy logic with Engineering Aplications, 2a edición, McGraw Hill, 1998. Joseph, G., Sistemas expertos. Principios y programación, 2a edición, Ciencias Thomson, 1999. Astrom, K. J. et al. Adaptive Control, Addison-Wesley, 1989. Ibrahim, A. M., Introduction to Applied Fuzzy Electronics, 3a edición, Prentice Hall, 1997. Angulo, J. M., Microcontroladores diseño y aplicaciones, 2a edición, McGraw-Hill, 2002. 336 Automatización de bombas de calor por medio del control de bombas en un puerto LPT con adquisición de datos en un Puerto GPIB R. J. Romero, Sotsil Silva-Sotelo, R. Best, J. Cerezo-Román Resumen. El presente trabajo muestra una primera aproximación para la automatización de una bomba de calor por absorción, operando en el modo de transformador térmico, para la recuperación de calor de desecho industrial. El programa de adquisición de datos fue realizado con programación dirigida a objetos y se hizo la configuración de la comunicación. También se muestra la estrategia de automatización con la señal enviada a través de un puerto LPT. Finalmente, se describe la operación de este sistema y sus capacidades de operación para la revalorización de energía de desecho. Palabras clave: bombas de calor, transformador térmico, programación dirigida a objetos, adquisición de datos, automatización y control. 1 Introducción El calentamiento global y el efecto invernadero se deben a la gran cantidad de personas que llevan a cabo actividades productivas. La mayor parte de la energía que se consume en el mundo proviene de diversas fuentes; entre ellas, la de mayor porcentaje corresponde a la quema de combustibles fósiles.1 La mayor parte de los procesos industriales transforman energía por medio de una reacción de oxidación de un hidrocarburo, lo que produce vapor de agua y dióxido de carbono. Sin embargo, esta emisión puede disminuirse mediante estrategias de menor quema de combustibles por sustitución de fuentes de energía. 2 Algunos procesos industriales no pueden llevarse a cabo con las fuentes alternativas de energía debido a sus bajos niveles térmicos. 3 La transformación de energía térmica a niveles altos, más útiles, aún no ha sido posible. La mayor parte 337 de las ampliaciones o crecimientos industriales se hace adquiriendo calderas nuevas para la quema local de combustibles fósiles, o bien, mediante la conexión de equipos eléctricos para aumentar la capacidad instalada. Sin embargo, existe una opción, la cual fue utilizada en varias bombas de calor por absorción, con bajo consumo de energía eléctrica, desde los años noventa hasta la fecha. 4,5,6,7,8,9 Uno de los principales problemas para la operación continua de este tipo de ciclos termodinámicos de bombeo de calor es el periodo transitorio previo al estado estable en que operan exitosamente estas tecnologías. 2 Bombas de calor Las bombas de calor son máquinas térmicas construidas con varios componentes de intercambio de calor y materia, en forma simultánea. El ciclo de bomba de calor se puede describir con base en la figura 1, de la siguiente manera: la energía, en forma de calor de desecho, está a una temperatura constante (T GE); esta energía se ingresa en un generador de vapor a baja presión, donde se lleva a cabo una transferencia de calor a un fluido concentrado en una sal afín a un fluido de trabajo. La presión en el interior del generador es suficientemente baja como para que ocurra un proceso de separación de fases. El fluido de trabajo vaporizado se conduce a un segundo componente que está a la misma presión pero que tiene retiro de calor por medio de un circuito secundario; el calor retirado de este componente realiza un cambio de fase y se obtiene fluido de trabajo en forma líquida. A este componente se le denomina ‚condensador‛ y opera a temperatura ambiente, siendo ésta (TCO) la menor de todo el sistema. El fluido de trabajo en forma líquida se bombea por medio de una pequeña cantidad de energía eléctrica —prácticamente una centésima parte de la energía suministrada por el generador. El vapor que se produce en la etapa de presión mayor a la misma temperatura constante de ingreso de la energía, ya sea de energías alternativas o de desecho industrial, se pone en contacto con la solución concentrada que quedó en el generador, provocando esto una reacción exotérmica a alta presión y temperatura, conocida como ‚calor de absorción‛. Este calor es útil y ocurre a la mayor temperatura del sistema. Después, la solución diluida que se ha formado pasa por un ‚intercambiador‛ de calor para precalentar la solución concentrada que va del generador al ‚absorbedor‛; entonces, la solución diluida regresa al generador para comenzar de nuevo el ciclo de la bomba de calor, operando como transformador térmico para la revalorización de la energía. 338 Fig. 1. Esquema de un transformador térmico para la revaloración del calor. 3 Estrategia de control Estos sistemas térmicos tienen un periodo transitorio de mayor tiempo, comparado con cada una de las operaciones unitarias que tienen cada uno de los componentes por separado y que forman el ciclo termodinámico. Los periodos transitorios comienzan con la generación de vapor, cuando la energía suministrada para realizar el cambio de fase está en función del fluido de trabajo que se envía al condensador. El fluido de trabajo que se cambia de fase en el condensador se puede expresar mediante el cálculo del flujo en función lineal de la potencia del condensador y evaporador: mWF mWF QCO TCO CO QEV TEV EV (1) (2) El total de este flujo es la variable limitante del proceso y esta variable participa en todos los balances de materia y energía, en cada uno de los cálculos de las operaciones unitarias de generación, condensación, evaporación, absorción e intercambio de calor. Para controlar el flujo que limita al sistema, 10 se ha propuesto la estrategia siguiente: 339 Fig. 2. Diagrama de control de flujo refrigerante. Para llevar a cabo este algoritmo, se requiere de la adquisición de datos vía GPIB,11 y así se conocen los valores asociados en las ecuaciones (1) y (2), mediante las siguientes ecuaciones: QCO mC PTCO (T1 T2 ) (3) QEV mC (4) EV P (T3 T4 ) Donde las temperaturas T1, T2, T3 y T4, cambian durante el periodo transitorio cada cinco segundos, por lo que se debe hacer el cálculo de las dos potencias expresadas en las ecuaciones (3) y (4). Se considera que los valores de los fluidos que retiran energía del condensador y la suministran al evaporador, permanecen en función de las temperaturas T CO y TEV, respectivamente, y se pueden determinar por el sistema de adquisición de datos. 340 4 Control automático Para el control automático del transformador térmico de una etapa, se ha propuesto un algoritmo de control12 cuyo diagrama se exhibe en la figura 3. Con este algoritmo, se ha construido un dispositivo acoplable al puerto de comunicaciones LPT. En este caso, se han modificado los controladores que operan la bomba que envía el fluido de trabajo del condensador al evaporador (mEV), para que el potenciómetro opere con un motor a pasos, el cual puede variar las revoluciones entre 50 y 3500 upm, con variaciones de 5 upm. Fig. 3. Diagrama de control para el control automático. En este caso, se han hecho dos programas con programación dirigida a objetos, en dos partes: 1) un programa de adquisición de datos y cálculo de potencias, y 2) 341 un programa de control de revoluciones por minuto en el controlador de la bomba del fluido de trabajo. Estos programas se han realizado en HPVEE Pro y en LabView 6i. Las pantallas del usuario se muestran en las figuras 8 y 9. El programa realizado en HPVEE Pro se encarga de la adquisición y cálculo de las 20 temperaturas, dos presiones y ocho potencias para el cálculo de los flujos de las ecuaciones (1) a (4). Con estos valores, se llama al programa de LabView 6i para modificar el valor de la posición del potenciómetro del controlador del fluido de trabajo del transformador térmico. Este dispositivo se muestra en las figuras siguientes. Fig. 4. Puerto LPT modificado para el control automático. Fig. 5. Controlador modificado de bomba de fluido de trabajo. 5 Resultados y discusión Se ha operado un transformador térmico de una etapa en el Laoratorio de Ingeniería Térmica Aplicada (LITA), del Centro de Investigación en Ingeniería y Ciencias Aplicadas (CIICAp) de la Universidad Autónoma del Estado de Morelos (UAEM). Para su operación se ha utilizado la mezcla carrol-agua. Se ha simulado el calor proveniente de las energías alternativas, con niveles térmicos de colectores solares de alta eficiencia13 o de calor de desecho industrial, con niveles térmicos entre 60 y 80 °C. 342 Calibración del sensor de flujo. Para la calibración del sensor de flujo tipo turbina se siguió la siguiente metodologia: 1. Se consideró como patrón a un sensor de flujo tipo Coriolis. 2. El sensor de flujo a calibrar se colocó en serie con el Coriolis. 3. Se fijó una temperatura de 25 °C y se varió el flujo másico 0.3 1, 3, 5, 10 y 15 kg/min, esperando en cada lectura un tiempo mínimo de condiciones de estabilidad de 15 minutos para el registro del potencial que mostraba el sensor. Estos datos se almacenaron en un archivo. 4. Después, se incrementó la temperatura con un incremento de T = 10°C y se varió el flujo másico descrito en el punto 3, hasta llegar a una temperatura de 150 °C. 5. A continuación, se procedió a calcular el flujo másico contra el voltaje y se calculó una correlación correspondiente. Las ecuaciones de los extremos de la calibración fueron las siguientes: A 20 °C F = 10.421x - 13.166 A 150°C F = 10.024x - 12.176 (5) (6) Donde F es el flujo masico, en kg/min, y ‚x‛ el potencial en voltios. Calibración del sensor de temperatura. Para la calibración del sensor de temperatura se siguió la siguiente metodología: 1. Se fijó una temperatura de 20 °C en un baño térmico. 2. Se introdujo un sensor de temperatura patrón y el testigo. 3. Se tomaron las lecturas de ambos sensores hasta condiciones de estabilidad y se almacenaron los datos en un archivo. 4. Después, se aumentó la temperatura un T = 10°C y se regresó al punto 3 hasta alcanzar una temperatura de 150 °C. 5. A continuación, se calculó la ecuación de la línea de tendencia del sensor testigo: T = 1.0107 (a) - 1.6722 (7) Donde T es la temperatura calibrada del sensor testigo en °C, válida en un rango de 20 °C y hasta 150 °C. El control del flujo refrigerante es fundamental para el control del sistema. Cuando éste no se controla, no se alcanza el periodo estable del sistema y no se recupera energía (véase la figura 6). La puesta en marcha del control automático por medio del fluido de trabajo en el condensador y en el evaporador muestra que se pueden alcanzar los estados permanentes en los que se han calculado las potencias de cada una de las operaciones unitarias involucradas en el ciclo 343 termodinámico de recuperación de calor, el cual puede provenir de energías alternativas o de desecho industrial. Fig. 6. Transitorio de la operación de un sistema de recuperación de energía de desecho. 344 Fig. 7. Condiciones de operación para revalorización de energía de 70 °C. En la figura 7 se muestran las condiciones de operación para la revalorización. Obsérvese que se llega a recuperar entre 25 y 33% de la energía de desecho con al menos 20 °C por arriba de la temperatura a la que fueron desechados. El nivel de recuperación de calor permite obtener 33% a 112 °C y hasta 25% a 120 °C de la energía simulada en el LITA-CIICAp. En las figuras 8 y 9 se ven las pantallas del control de fluido de trabajo, por medio de revoluciones por minuto, realizado en LabView, y la pantalla del usuario para la adquisición de datos cada cinco segundos, realizada en HPVEE Pro, desde donde se llama al programa de control cuando es necesario, en función del algoritmo mostrado en la figura 3. Fig. 8. Pantalla del usuario para el control de rpm de bomba de fluido refrigerante. 345 Fig. 9. Pantalla de usuario para adquisición de datos. Conclusiones El control automático para un transformador térmico de una etapa, con el cual se lleva a cabo la revalorización de energía proveniente de energías alternativas o de desecho industrial, se puede hacer por medio del control del flujo entre el condensador y el evaporador, conocido como fluido refrigerante. La operación se logra por medio del control del flujo mEV, en el cual se puede hacer una revalorización de energía de 80 °C a 120 °C, en el mejor escenario. Agradecimientos Los autores desean expresar su agradecimiento al proyecto Desarrollo y Aplicación de un Sistema de Refrigeración Termosolar Autosuficiente y Sustentable para Conservación de Productos Perecederos en Comunidades Costeras Alejas de la Red, por su apoyo parcial para esta investigación. 346 Referencias 1. Balance Nacional de Energía (SENER), 2008. 2. Romero, R. J., E. Velasco Uribe y J. Casillas Solano, ‚Comparación de la producción de CO2 contaminante basada en el rendimiento de bombas de calor‛, Memorias del XXVIII Encuentro Nacional de la AMIDIQ, Manzanillo, Colima, 2007. 3. Beltr{n Couste, J., ‚Evaluación de un sistema experimental de refrigeración por absorcion, que opera a baja temperatura con la mezcla monometilamina-agua‛, tesis de licenciatura en Ingeniería Mec{nica, FCQEIUAEM, 2009. 4. Fathalah, K. y S. E. Aly, ‚Theoretical Study of a Solar Powered Absorption/MED Combined System‛, Energy Conversion and Management, vol. 31, núm. 6, 1991, pp. 529-544. 5. Al-Juwayhel, F., H. El-Dessouky y H. Ettouney, ‚Analysis of Single-Effect Evaporator Desalination Systems Combined with Vapor Compression Heat Pumps‛, Desalination, núm. 114, 1997, pp. 253-275. 6. Elshamarka, S., ‚Absorption Heat Pump for a Potable Water Supply in a Solar House‛, Applied Energy, vol. 40, núm. 1, 1991, pp. 31-40. 7. Nguyen, M., S. B. Riffat y D. Whitman, ‚Solar-Gas-Driven Absorption HeatPump Systems‛, Applied Thermal Engineering, vol. 16, núm. 4, 1996, pp. 347-356. 8. Huicochea, A., J. Siqueiros y R. J. Romero, ‚Portable Water Purification System Integrated to a Heat Transformer‛, Desalination, núm. 165, 2004, pp. 385-391. 9. Romero, R. J. y A. Rodríguez-Martínez, ‚Optimal Water Purification Using Low Grade Waste Heat in an Absorption Heat Transformer‛, Desalination, vol. 220, núms. 1-3, marzo de 2008, pp. 506-513. 10. Alanís Navarro, J. A., D. C. Labastida del Toro, M. Fernández Resenos y R. J. Romero, ‚Control de flujo refrigerante en una bomba de calor por absorción de una etapa‛, Memorias del Encuentro de Investigación en Ingeniería Eléctrica, Zacatecas, 2006, pp. 204-208. 11. Romero, R. J., J. A. Sequeiros, M. A. Basurto-Pensado, J. J. Escobedo y J. M. Sierra, ‚Instrumentación específica para un transformador térmico de una etapa‛, Memorias de la XXVII Semana Nacional de Energía Solar, Chihuahua, 2003. 12. Barajas Mendoza A., Algoritmo de control y propuesta de control automático para un transformador térmico por absorción de una etapa para revalorización de energía térmica, tesis de licenciatura en Ingeniería Química, FCQEI-UAEM, México, 2007. 13. Romero, R. J., A. Barajas Mendoza y L. Rayón López, ‚Propuesta para el control de flujo refrigerante en una bomba de calor por absorción de una 347 etapa‛, Memorias de la XXX Semana Nacional de Energía Solar, Puerto de Veracruz, 2006. 348 Numerical Simulation of the Field Confinement in a Quasiperiodic Multilayered Microsphere as an Application of the Software Engineering Gennadiy Burlak, A. Díaz-de-Anda, René Santaolaya Salgado, Moisés González García. Resumen. Estudiamos numéricamente el control del espectro de frecuencias de nano-emisores puestos en una micro-esfera recubiertas con una pila cuasi periódica. Se investiga la evolución espectral de transmisión con el cambio de espesor de bloques de dos capas, construidos siguiendo la secuencia de Fibonacci. Encontrado básicamente un comportamiento no lineal en dicho sistema: cuando el número de capas (el orden de Fibonacci) aumenta, la estructura del espectro de transmisión adquiere una forma fractal. Nuestros cálculos muestran el confinamiento y una mejora gigantesca del campo, cuando la relación entre el ancho de las capas en la pila (parámetro de control) está cerca del valor de la regla de oro. Se discute también la necesidad de un código de programación estructura orientada a objetos, para el estudio numérico de tal sistema no lineal. Keywords: nanosystem, microsphere, quasiperiodic stack, numerical calculations, control of radiation. Abstract. We numerically study control of the frequency spectrum of nanoemitters placed in a recently constructed microsphere with a quasiperiodic spherical stack. The spectral evolution of transmittance at the change of thickness of two-layer blocks, constructed following the Fibonacci sequence, is investigated. We found essentially nonlinear behaviour in such a system: when the number of layers (Fibonacci order) increases the structure of transmittance spectrum acquires a fractal form. Our calculations show the confinement and gigantic field enhancement when the ratio of layers widths in the stack (control parameter) is close to the golden mean value. The necessity of object-oriented structure of the program code for numerical study of such a nonlinear system is also discussed. 349 Sumario: 1 Introduction 2. Basic equations 3. Program realization 3. Program realization 4. Numerical Results 5. Fractal structure 6. Conclusion. Referencias 1 Introduction. The use of microcavities and microspheres in advanced optoelectronics has provided a new view of various effects and interactions in highly integrated, functional photonic devices. A fundamental question in this area is how to drastically increase the spectral optical field strength, using artificially produced alternating layers on the surface of a microsphere. Nowadays, the basic regime of the operation for bare (uncoated) dielectric microspheres is the whispering gallery mode (WGM) [1]. But since fabricating the coated dielectric spheres of the submicron sizes [2], the problem arises to study the optical oscillations in microspheres beyond the WGM regime for harmonics with small spherical numbers. These possibilities allow expansion of the essential operational properties of microspheres with attractive artificial light sources for advanced optical technologies. The important optical property of a periodic alternating spherical stack is the possibility of confining the optical radiation (see ([3] and references therein). However, is periodicity necessary for such resonant optical effects? In order to answer this question, we have studied the optical radiation of a nanosource (nanometer-sized light source) placed into a microsphere coated by a quasiperiodic multilayered structure (stack) constructed following the Fibonacci sequence. Such structures are called quasiperiodic and, lie outside the constraints of periodicity. One of the main properties of such a stack is re-reflections of the electromagnetic waves from the interfaces of the layers that result in the collective wave contributions. The collective optical effects in a quasiperiodic spherical stack are appreciated only if the number of layers in the stack is large enough. In this case, various approximations based on the decomposition of field states in the partial spherical modes have insufficient accuracy, so a deeper insight requires more advanced approaches. Our approach is based on the dyadic Green's function technique [5] that provides an advanced approximation for a multilayered microsphere with nanoemitters [6]. We have applied this approach to a quasiperiodic spherical stack and found substantially enhanced optical resonances (Green function strength), when the ratio of the layers width in twolayer blocks in the stack (quasiperiodicity parameter) is close to the golden mean 350 value. As far as the author is aware, the optical fields of nanoemitters placed in a microsphere with a quasiperiodic spherical stack still have been poorly considered, though it is a logical extension of previous work in this area. This Report is organized as follows. In Section 2, we formulate our approach and basic equations for optical fields in a dielectric multilayered microsphere. We outline the numerical scheme of applying the dyadic Green function (DGF) technique to evaluate the spectrum of a nanoemitter placed in such a quasiperiodic system. We found the enhanced field peaks of such a parameter is close to the golden mean value. Section 3, outlying the structure of our objectoriented program code and the details of uur program realization is discussed. In Section 4, we present our numerical results on the structure of the cavity field states and resonances. In the Section 5 the fractal structures of the resonances in a microsphere with quasiperiodic spherical stackmdependently of the quasiperiodecity parameter is discussed. We fund the enhanced field peaks if sunch a parameter is cleso to the golden mean value. In the last Section, we summarize our results. 2 Basic equations The A one dimensional quasiperiodic (QP) spherical stack, where a Fibonacci sequence is considered, can be constructed following a simple procedure [4]. Let us consider two neighbors 2-layers segments, long and short, denoted, respectively, by L and S. If we place them one by one onto the surface of a microsphere, we obtain a sequence: LS. In order to obtain a QP sequence, these elements are transformed according to Fibonacci rules as follows: L is replaced by LS, S is replaced by L. As a result, we obtain a new sequence: LSL. Iteratively applying this rule, we obtain, in the next iteration, a sequence with a five-element stack LSLLS, and so on. One can control the properties of such a QP stack by the use of a control parameter . For the stack with N-elements, where N>>1, the ratio of numbers of long to short elements is the golden mean value, 0=1.618. Generally, in spherical geometry, the wave field depends on, position of a source and, it is formed on a distance scale of the order magnitude of the radius of the microsphere or thickness of nanolayers of a stack. For analysis of such a spectrum, it is necessary to use a more advanced approach: the Green function method. The base of the latter is a representation of the optical field, radiated by a nanosource in a coated microsphere, as a weighed superposition (sum) of forward and backward waves (reflected from the layers interfaces). We consider a situation where the radiating point source (nanoemitter) is placed into microsphere coated by a quasiperiodic stack. In this case, the frequency spectrum is not described longer by a spectrum of a bare microsphere slightly perturbed by 351 the external stack. If the number of layers is large enough, we have to study the photons field taking into account the spectral contributions of both the bottom microsphere and a quasiperiodic stack. In order to calculate the properties of such a field, we apply the Green function technique. In this case, a nanosource corresponds to a nanorod or quantum dot that recently was employed in experiments with microspheres, see [10], [7] and references therein. Layer N-1 Media N TM-case Er H rN Layer k rk E r1 L S L L S L S Media 0 Layer 1 H Hr E Media N TE-case Fig. 1: Geometry of system. The spatial scale of the nanoemitter objects (1÷100)nm is at least one order of magnitude smaller than the spatial scale of the microspheres (103÷104)nm. Therefore, in the coated microsphere we can represent the nanoemitter structure as a point source placed at r´ and having a dipole moment d 0. It is well known that the solution of the wave equation for the radiated electromagnetic field E(r) is due to a general source J(r), [8], [9]. ( ) ( ) ( ) (1) where G(r, r´, ) is the dyadic Green function (DGF), which contains all the physical information necessary for describing the multilayered structure. Following the approach [5], we write down DGF of such a system as follows: G(r,´r,w)=Gv(r,´r,w)δfs+G(fs)(r,´r,w) (2) where GV(r, r´, ) represents the contribution of the direct waves from the radiation sources in the unbounded medium, and G(fs)(r, r´, ) describes the contribution of the multiple reflection and transmission waves due to the layer interfaces. The dyadic Green's tensor GV(r, r´, ) in Eq. (2) is given by 352 G ( fe ) (r, r , ) iks 4 m 2m 1 m(m 1) x p e , o m 1 l 0 (m l )! f , e (2 0l )G pml (r, r , ), (m l )! (3) where G(fs)(r, r´, ) is the particular Green tensor, m is the spherical, l is the azimuth quantum numbers, and ki = ωni/c, ni = (i(ω))1/2 is the refraction index. 3 Program realization Calculation of a frequency spectrum of nanoemitter radiation in a layered microsphere is a rather difficult problem in the use of computer resources, and also on the complexity of the program code organization. Our realization includes two main blocks. The first one contains the code with a description of the structure of a layered microsphere, while the second block is responsible for the dynamic calculation of a frequency spectrum and the radial distribution of an electromagnetic field in the microsphere. Other blocks of the program realize the graphic support, the data exchange, and also the mathematical library of the special functions used for evaluation of the Green function. AbsStruct BaseLayer SphericalStack collection(Spheri cal-Layers) BaseGreenTensor BaseStack Bound. conditions. Spectrum of eigenfrequencies. Iterative calculation or reflection and transmittance matrices Calculation optical fields in the multilayered microsphere Fig. 2. The hierarchy of main classes in the program code. The organization of the program with such a level of complexity certainly requires the object-oriented approach that provides the modularity and structure of an object-oriented computer program. It is based on several techniques, 353 including inheritance, modularity, polymorphism, and encapsulation. In our structure (see Fig. 2), the self-contained class AbsStruct defines the abstract characteristics of a microsphere, including its characteristics (fields or properties) and the microsphere's behaviors (methods). The base of the class hierarchy of a microsphere contains two basic classes BaseLayer and BaseStack (with general parent class AbsStruct); in those, the structure (materials and the sizes) of a layered microsphere is memorized. The structure of the field is described by the base class BaseGreenTensor that mainly contains the description of the distribution of the optical fields equation (2) and scattering matrices (arrays) used to solve equation (1). Since a number of analytical approaches for low-layered microspheres (with 1 or 2 layers) was developed, we used a possibility to compare analytical and numerical solutions to evaluate the accuracy of our calculations. To do that, we used a general conception of polymorphism that allowed us to treat derived class members (e.g. 2-layered microspheres) just like their parent class's members. More precisely, in this case the polymorphism provided us the ability to use objects belonging to different types of coated microspheres (1 or 2-layers system) to respond to method calls of methods according to an appropriate type-specific behavior. At top of the class hierarchy, there is a class-successor (microsphere + field) that contains among other data two methods of the class: 1) collections of the layers that are defined by physical definition of the microsphere parameters, and 2) findings of matrixes of dispersion, calculated in agreement with the boundary conditions imposed on the field in a microsphere. Our program has a graphic user interface (GUI) to input all parameters of a microsphere, nanoemitters and parameters of the optical fields, see Figure 5. As a result, the program calculates various dependencies, e.g., the frequency spectrum of coefficient reflection and transmittance of a stack, the spatial distribution of the optical field, real and imaginary parts of the Green function of the system, etc. The algorithm is completely realized in C# program language. The visualization of graphical dependencies is prepared by means of a standard package TeeChart (Steema Software (R)). 4 Numerical Results The following parameters have been used in our calculations: the geometry of the system is A{L(B,C)…S(B,C)…}D, where letters A, B, C, and D indicate the materials in the spherical stack, respectively. The distinct two-layered blocks L(B,C) and S(B,C) are stacked according to the Fibonacci generation rule with control parameter being the ratio of layers. 354 Fig. 3. Graphical user interface and example calculation of the reflection and transmittance coefficients. For L and S blocks we use the notation L=(B,C,1) and L=(B,C,), where is the ratio of both thicknesses. In order to study the behavior of the field in the microsphere, we have calculated the frequency spectrum of the transmittance coefficient T and the corresponding spectrum of imaginary parts of the Green´s function W≡Im(Gϕϕ(r,r,ω)), where r is the position of a nanoemitter, ω=2πf. We have calculated the evolution of a spectrum for different values γ and also for different numbers of layers in the spherical stack (Fibonacci order F n) for a range [300-600] THz, or [1000-500] nm. The most intensive optical peak was found for the F9 stack, where =0.618=1/Γ0 (Γ0=1.618 is the golden mean value). The details of the field spectra are shown in Figure 1 for 68 layers in the stack (34 of 2-layers blocks, order Fibonacci is F9). We observe from Figure 1 that such a spectrum consists of peaks with various amplitudes; however, the most intensive peak with W=87 is located at 436.1THz (details of this peak are shown in the inset). Thus, even though the periodicity of the stack is broken, well defined intensive peak of the field is clearly seen. 355 Fig. 4. (a) imaginary parts of tangential component of the Green´s function W=Gϕϕ(r,r) for r=900nm; (b) Frequency spectrum of transmittance coefficient T for spherical quantum number m=9. Microsphere is coated by quasiperiodic stack with N=68 (34 of 2-layers blocks, order Fibonacci F9) for γ=0.618. See details in text. Fig. 5 . Spectrum of imaginary part of the Green´s function W=G ϕϕ(r,r) for r=900nm and 68 layers in stack (34 of 2-layer blocks F9) for different values of parameter quasiperiodisity γ close to the golden mean value: 1) 0.55, 2) 0.58, 3) 0.6, 4) 0.618, 5) 0.63, 6) 0.65, 7) 0.68. We have also calculated the evolution of a spectrum for different values close to = 1/Γ0 for a fixed number of layers in the spherical stack (Fibonacci order F n). The results are displayed in Figure 3 for the range [430-440] THz, or [697-681] nm. 356 One can see that in this area, the spectrum consists of rather narrow resonances, and a set of satellite peaks appears around the main peak. The intensity of this peak changes with a different γ, giving rise to another main peak, which corresponds to another quasi-periodic stack. When γ approaches to 1/Γ0=0.618, the field peaks become sharper, as shown in Figure 3. We observe that the amplitude of resonances is maximal for case γ=0.618. In previous figures, the frequency spectrum of the field (Im(Gϕϕ(r,a,f)) for the quasiperiodic stack was shown. The fractal complicity of the transmittance spectrum is defined by the intrinsic properties of the quasiperiodic spherical stack independently of the nanoemitter location. However, in experiments, it is important to identify the spatial distribution of the field radiated by nanosources located in such a quasiperiodic microsphere. Therefore, it is of interest to consider the spatial field distribution in a cross-section contained both center of the coated microsphere and nanoemitter for some resonant frequency. Such a distribution is shown in Figure 4 for the most intensive resonance at f0=436.098 THz (see Figure 5), when the quasiperiodicity parameter =0.618. We observe from Figure 6 that Im(Gϕϕ(r, a, ) has a very sharp peak in the place of the nanosource location. Such a spatial field structure may be treated as a confinement of the electromagnetic energy Im(Gϕϕ(r, r) [6] inside the coated microsphere. The leakage of photons through such a structure into the outer space obviously is small. We observe from Figure 6 that the field structure inside of the quasiperiodic stack is anisotropic and quite intricate, but the field distribution beyond the coated microsphere has a periodic character. Fig. 6. Spatial structure W(r,)=Im(G(r,a, )) in a cross-section 0<r<21μm and 0<<2 of the microsphere with quasiperiodic stack for eigenfrequency f=436.09THz. A nanoemitter is placed at point a=900nm. Other parameters are as in Figure 2. One can see the confinement of field in the stack. Outer cycle indicates the external boundary Rext=13.8μm of the quasiperiodic spherical stack. 357 5 Fractal structure As mentioned above, with a further increase of the Fibonacci order Fj, the structure of T becomes more indented, see Figure 4. One can see from Figure 4(a) that in a vicinity f = 425 THz, the splitting occurs, and here a new extreme of T has arisen. A new maxima (and minima) reshape the initially smooth form of the transmittancy spectrum to a well expressed fractal structure. In order to calculate the fractal dimension numerically, it is normally assumed that the fractal is lying on an evenly-spaced grid; then count how many boxes are required to cover it. Such a dimension is calculated by seeing how this number changes as we make the grid finer. If N(c) is the number of boxes of side length c required to cover the fractal, then the fractal (box-counting) dimension DH is defined as: DH = lim[lnN(c)/ln(1/c)] at c0 (see e.g. (Mandelbrot, 1982), (Falconer, 1990). Let us note that the numerical estimation DH for a finite set is a rather difficult problem and requires a great amount of data. In our approach, we have formed the fractal by sequential elimination of quasiband gaps with values less then . Such an approach is similar to the Cantor set generation, where the set is created by repeatedly deleting the middle third of a set of line segments. It is of interest to calculate the fractal dimension DH for other materials in a quasiperiodic spherical stack. In particular, we studied the change of DH for a case where the difference of refraction indexes for neighboring layers in the stack is less. We have considered DH for stack with MgO (n = 1.72, 1-st layer), while the material of 2-nd layer SiO2 was the same as before. In this case, the difference of the refraction indexes = 0.26 is less with respect to the previous case. Our calculations show that the transmittance frequency spectrum for such a configuration is less indented than the previous case. Calculated fractal dimension for such a stack is DH=0.965; which is close to 1; thus the fractal properties for a stack with small n is less pronounced. 358 Fig. 7. Fractal (capacity) dimension D_,H}(ε) for Fibonacci stack F_,j} with j=8÷12 and γ=0.5. The last curve shows the periodic stack case with F₁₂ and γ=1. (a) lossless stack; (b) dissipative stack. It is worth noting that the details of the optical field radiated by a nanoemitter incorporated into a microsphere depend on the position of such a nanoemitter. In general, such a field can be studied with the use of the above developed Green function technique. However, the latter is not necessary in a case where only the transmittance properties of a quasiperiodic spherical stack are of interest. Conclusion C We have studied the frequency spectrum of nanoemitters placed in a microsphere with a quasiperiodic subwavelength spherical stack. We found that the transmittance spectrum of such a stack consists of quasiband gaps and narrow resonances induced by re-reflection of optical waves. We show that the width of resonant peaks in the frequency spectrum becomes extremely narrow for a quasiperiodic spherical stack of a high Fibonacci order. In principle, that allows creating a narrow-band filter with a transmission state within the forbidden band gap of nanoemitters, incorporated in such a coated microsphere. We have found confinement and gigantic enhancement of the optical field in a quasiperiodic structure when the ratio of layers width in two-layer blocks of the stack is close to the golden mean value. This allows us to confine resonantly the field energy in the quasiperiodic stack in a very narrow frequency range in order to create very selective stop-band filters. Incorporating nanoemitters into such structured microspheres can open new opportunities for the active control of light 359 nanosources. References. [1] Braginsky, V.B., et.al., Quality-factor and nonlinear properties of optical whispering-gallery modes. 1989. Phys. Lett. A.137, 393. [2] Gourevich, I.,et al., Polymer Multilayer Particles: A Route to Spherical Dielectric Resonators. 2006. Macromolecules. 39, 1449. [3] Burlak, G.,. The Classical And Quantum Dynamics Of The Multispherical Nanostructures. Imperial College Press, 2004. [4] Vyacheslav R. Misko, Sergey Savel'ev, and Franco Nori.: Critical currents in superconductors with quasiperiodic pinning arrays: One-dimensional chains and twodimensional Penrose lattices. Phys. Rev. B. 74 024522 (2006). [5] Le-Wei Li; Pang-Shyan Kooi; Mook-Seng Leong; Tat-Soon Yee.: IEEE Trans. Mi-crowave Theory. 42 2302 (1994). [6] Burlak, G., Chavez, A.: Frequency spectrum and confinement of optical radiation of nanorods in multilayered microsphere. Optics Commun. 268 330 (2006). [7] B. Mller, U. Woggon, M. V. Artemyev, R. Wannemacher.: Mode control by nanoengineering light emitters in spherical microcavities. Appl. Phys. Lett. 83 2686 (2003). [8] Chew W.: Waves and Fields in Inhomogeneous Media. IEEE Press, New York (1996). [9] Jackson J.D.: Classical electrodynamics. JOHN Willey, Sons. (1975) [10] T. F. Smith, M. S. Waterman.: Identi¯cation of Common Molecular Subsequences. J. Mol. Biol. 147, 195-197 (1981). [11] Landau, L.D., Lifschitz, E. M.:Statistical Physics Part 2. Oxford, England, Perg-amon Press. (1981). 360 The use of Parallel Axtensions Libraries for Scientific and Engineering Calculations. Gennadiy Burlak, José Alberto Hernández Aguilar, René Santaolaya Salgado, Moisés González Garcia Resumen. Estudiamos el uso de la biblioteca de Ampliación Paralela de Microsoft de la Estructura .NET 3.5 para cálculos paralelos. Hemos desarrollado una jerarquía de clases anidadas que tienen una estructura interna complicada y hemos hecho las pruebas de laboratorio (con una interfase gráfica de usuario (GUI)) no sólo para los casos estáticos simples sino también para los tipos dinámicos complicados. Nuestras pruebas han mostrado la alta velocidad de la biblioteca. El uso de otras bibliotecas que permiten los cálculos en paralelo para distintas aplicaciones multiplataforma también es discutido. Palabras Clave. parallel calculations, hierarchy of nesting classes, cross-platform applications. Abstract. We studied the use of the library Microsoft Parallel Extensions to .NET Framework 3.5 for parallel calculations. We have developed a hierarchy of nesting classes having complicated internal structure and have made the bench tests (with graphic user interface (GUI)) not only for simple static cases but also for complex dynamic types. Our tests have shown high speedup of the library. The use of other libraries allowing calculations in parallel for various crossplatform applications is discussed also. Sumario: 1. Introduction 2. The structure of classes and working examples 3. Results and Discussion 4. Conclusions. Referencias 1 Introduction Dual cores PCs have gradually become the standard in Universities. Quad core PCs are also getting closer, and PCs with greater number of CPUs/cores are also available. Modern scientific problems require large amounts of computational tasks which are well time consuming. Sometimes parallel/ distributed computing 361 of such problems is of critical importance [1], [2]. Nowadays developers have access to PCs with several CPUs/cores; so there is a great task to use the whole computing power of such PCs in order to load all the cores to work effectively in parallel. Recently was published the Parallel Extensions to .NET Framework 3.5 Community Technology Preview (CTP) that provides a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified. Parallel Extensions makes it easier for developers to write programs that scale to take advantage of parallel hardware by providing improved performance as the numbers of cores and processors. Parallel Extensions provides library based support for introducing concurrency into applications written with .NET languages, including e.g. C#. In this release various samples of the library were used for time consuming problems calculating sequentially and in parallel was done (solve nqueen puzzle, sorting example, simple matrix multiplication, etc). However in the samples mainly was used a data with simple numeric static structure. For instance, the product of random double matrixes with large size was sequentially and in parallel processed. For such configurations it was demonstrated that performance of in parallel calculations gives an essential speedup of calculations. However in engineering calculations frequently one meets more advanced problems in which it is necessary to use the dynamic data with complicated internal structure. Typical example is calculations with complex numbers, Fast Fourier transformations, various numeric transformations with complex matrixes and vectors. Such structures normally must serve as dynamically distributed objects rather than being static ones. For such situations in parallel calculations are of great practical importance. It is well known that among the popular programming languages only FORTRAN and PYTHON have in-built complex data type. In languages as C++ and C# such types have to be created by programmers. However in languages C ++ and C# we meet other much more important feature: possibility to overload of the standard mathematical operators: addition, subtraction, multiplication and division that allows to extend considerably the meaning of such operators. The operator overloading allows constructing much more advanced numeric (and not only numeric) classes, such as a complex vectors and matrices having quite complicate behavior. However speedup of such structures in parallel mode still has been poorly considered though it is a logical extension of previous investigation in this area. In this Report we discuss the computations in parallel for C# that allows distributing the appropriate tasks effectively at all cores available in the system. We will take a very brief look at what is provided by Microsoft's in Microsoft Parallel Extensions to .NET Framework 3.5. The main aim is to discuss how to implement parallelism for dynamic hierarchies of classes with advanced internal 362 structure. We developed and applied such hierarchy of the nesting classes (complex matrixes and complex vectors) as working structures at in parallel calculations and have performed the bench tests. Also we have compared our results with parallel computations for other library. 2The structure of classes and working examples Fig.1 shows the structure of our nested classes for complex numbers, vectors and matrixes. One can see that structural complexity of such objects is much deeper with respect to a simple double type. For evaluation of real meaning of the MS parallel library it is important to investigate the speedup of calculation in parallel for such advanced structures. Fig.1. Logic diagram and structures of nested classes used in our calculations. In order to make bench tests of in parallel calculations we used MS VS C# 2008 Express Edition, see Fig.PicrkVS. To handle advanced calculations we had to extend essentially the code of a testing program. The elaboration consists in the following. i) The program was added part of code that allow working with dynamic objects, and ii) the graphic user interface (GUI) has been created. The latter allow selecting the type of test, and also a desired dimension of the complex matrixes. Details of our calculations and GUI are depicted in Fig.2. We have performed the bench tests of library mainly for one of must frequently used in parallel libraries the cycle operator Parallel.For. We did it not only for static 363 numeric data, but also for complex dynamic structures. Results of this work are shown in Fig. 3 and summarized in Table 1. The following technique was used to create the parallel loops over iteration spaces. For example, let's parallelize the loop, where the iteration range is based on doubles (for further references see [3]) for(int i = 0; i<1000; i ++) { Process(i); } The CTP Parallel.For(,,) only contains overloads For where the iteration variable. As an example, the previously shown loop could be rewritten as: Parallel.For(0, 1000, i => //using a lambda expression { double d = i / 1000.0; Process(d); }); The pseudocode for multiplication of dynamic complex matrices by means of sequential processing and parallel processing is shown below: Double ParallelMultiplicationOfComplexMatrix(N) Imaginary number I; Integer MATRIX_SIZE = N #Construction of dynamic matrices MatrixComplex m1a = MatrizComplex(MATRIZ_SIZE) MatrixComplex m2a = MatrizComplex(MATRIZ_SIZE) MatrixComplex m1 = MatrizComplex(MATRIZ_SIZE) MatrixComplex m2 = MatrizComplex(MATRIZ_SIZE) # Fill Matrices with random Numbers for i=0 to (MATRIZ_SIZE-1) with increments of 1 for j=0 to (MATRIZ_SIZE-1) with increments of 1 m1a[i, j] = m1[i, j] = generate_rnd_number() + I * generate_rnd_number() m2a[i, j] = m2[i, j] = generate_rnd_number() + I * generate_rnd_number() # Sequential product Timer.start() m3 = ProductSequential(m1a, m2a) Timer.stop() SequentialTime = Timer.getdifference() 364 m3 =null # Parallel product (Lambda operator => ) Timer.start() => m3 = m1 * m2 Timer.stop() ParallelTime = Timer.getdifference() # Ratio calculation ratio = SequentialTime/ParallelTime return ratio End ParallelMultiplicationOfComplexMatrix Fig. 2. In parallel calculations were tested in MS VS C\# 2008 Express Edition. Getting the full workload of multicore processors can be tricky because, in order for a program to make use of more than one core, it must divide its workload in such a way that it does not take more effort than the gains achieved by adding more cores. Most programming languages were written assuming just one processor would be working through the code sequentially, line by line [8]. Above example shows that is really easy to add parallel processing using functional programming and C# extensions. 365 CTP library is quite powerful, easy to use, and provides a lot of different features, which allow solving the different tasks of parallel computations. It provides much more than just a single Parallel.For(). However, there are some issues, which may require other solution for following reasons: 1. The parallel computations extension is targeted for .NET framework 3.5. Recently the .NET Framework 4 Beta 1 is available for download [4]. However, some applications may still want to support earlier .NET framework versions, like 2.0, for example that makes difficult for them to use this extension. The parallel computations extension is not yet included into the standard .NET framework installation, and requires components that could not be installed on a target system. 2. The parallel computations extension provided by Microsoft is aimed to run on Windows systems. However sometimes it is necessary to develop the cross platform applications that also has to run on Linux, e.g. under the Mono environment. In this situation one will be left without the paralleling support. Therefore further we give attention to the bench tests of parallel CTP library and the parallel library AFORGE [5]. In the latter the use of the dynamic module AFORGE.DLL is required only. This library represents a particular interest as it allows in parallel calculation not only in Windows, but also on cross-platform situations, for example in system Mono Linux. In this Report the following data types were used to in parallel bench tests: 366 Fig.3. Simple graphic user interface and our bench tests for in parallel calculations. 1) static array double [,]; 2) dynamic array double [,]; 3) static array TcompD [,]; 4) dynamic array TcompD [,]; 5) dynamic class TCompMatrix and TCompVector with the operators overloading; The speedup factor K is defined as K = T_paral/T_seq, where T_paral is average time of in parallel calculation, while T_ seq is the calculating average time in a sequentially regime. Table 1 summarizes our calculations. A computer with Windows XP SR.3, Intel Core2 duo CPU processor (two processors), and frequency of 2.0 GHz was used 367 3 Results and Discussion We observe that performance in parallel computations is 0.75, from mean number of speedup factor K from Table 1, which is evaluated in a simple way, 1.751=0.75, which exceds the sequential calculations. The speedup of Aforge library is comparable with CTP library at least for Parallel.For operator.For completeness it is worth noting one interesting project that was developed in Parallel Language Research Project, see [6]. Besides we have to refer to other more classical direction of Message Passing Interface (MPI). MPI.NET is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) for Microsoft's .NET environment, for further references see [7]. Table 1. The speedup factor K of calculations in parallel. Type of data CTP, 200x200 1.94 Aforge, 200x200 1.72 CTP, 400x400, 1.98 Aforge, 400x400 1.98 static matrixes: double[,] dynamic matrixes: double[,] complex static TcompD[,] complex dynamic TcompD[,] Multiplication objects TCompMatrix() Mult. TCompMatrix() and TCompVector() 2.04 1.75 2.03 1.80 1.72 1.74 1.72 1.82 1.67 1.76 1.70 1.75 1.675 1.76 1.70 1.7 2.36 2.24 2.38 2.27 Now almost all new servers and computers are running processors with multiple cores, and the software-design community is trying to figure out the best way of making use of this new architecture. Now is possible to use state of the art models and parallel computing programming languages like Chapel [9] or X10 [10], but if we analyze the sucessful of programming languajes like Java or C# in last decade, they felt familiar so it was easy to 368 adopt them. According to [11] People with legacy code need tools that have strong attention to the languages they have written and give them an incremental approach to add parallelism. If languages like X10 and Chapel do turn out to be popular, their advancements will be integrated into more popular languages. 4. Conclusions We studied the use of the library Microsoft Parallel Extensions CTP to .NET Framework 3.5 for calculations in parallel. In order to make the test deeper we developed dynamic hierarchies of classes having complicated internal structures that were applied as working example of advanced objects. Our testing program with graphic user interface (GUI) has allowed us to concentrate various bench tests. In result we have found that for advanced data the performance in parallel at least on 70%-80% and even more can exceed the sequential calculations. We believe using extensions like the proposed in this paper are the best approach to include parallel processing into new developments. 369 Referencias. [1] Are Magnus Bruaset, Aslak Tveito, Numerical Solution of Partial Differential Equations on Parallel Computers (Lecture Notes in Computational Science and Engineering), Springer, 2006. [2] Wenhua Yu, Raj Mittra, Tao Su, e.a., Parallel Finite-Difference TimeDomain Method, Artech House Publishers, 2006. [3] Eric Eilebrecht's blog, http://blogs.msdn.com/ericeil/archive/2009/04/23/clr-4-0-threadpoolimprovements-part-1.aspx [4] Visual Studio 2010 and .NET Framework 4 Beta 1, http://msdn.microsoft.com/es-mx/netframework/dd582936(en-us).aspx [5] GNC.com: Does parallel processing require new languages?, http://www.gcn.com/Blogs/Tech-Blog/2009/06/New-parallel-processinglanguages.aspx. [6] AForge.NET, http://www.aforgenet.com. [7] Parallel Language Research Project, http://www.parallelcsharp.com. [8] MPI.NET: High-Performance C# Library for Message Passing, http://www.osl.iu.edu/research/mpi.net;http://www.osl.iu.edu/research/mpi. net/software. [9] Chapel: The Cascade High-Productivity Language, http://chapel.cray.com/ [10] X10: The New Concurrent Programming Language for Multicore and Petascale Computing, http://x10-lang.org/ [11] Reinders, James. Intel Threading Building Blocks Outfitting C++ for Multi-core Processor Parallelism. Publisher O'Reilly Media, 2007. 370 Capítulo IV. Inteligencia Artificial y Visión 371 372 Complejidad de los datos en las redes neuronales artificiales: situación actual P. Toribio, B. G. Rodriguez, R. Alejo Resumen. En la actualidad, las redes neuronales artificiales son ampliamente utilizadas para tareas de reconocimiento de patrones, minería de datos y aprendizaje automático. Lamentablemente, su aplicación a problemas reales todavía está restringida debido a algunas debilidades, como lentitud en el proceso de aprendizaje y pobre capacidad de generalización, la cual se ha mostrado en múltiples aplicaciones prácticas. En este trabajo se estudian las principales características de los datos de entrenamiento que tienen un efecto negativo en el proceso de aprendizaje de la red neuronal, por ejemplo: el ruido, el solapamiento de clases, desbalance de clases, principalmente. Actualmente, la complejidad de los datos ha atraído la atención de numerosos investigadores. Se ha observado que la capacidad de generalización y la convergencia de la red dependen en gran medida del nivel de complejidad de los datos de entrenamiento. Palabras clave: Redes neuronales artificiales, costo-sensitivo, over-sampling, under-sampling, Wilson. Sumario: 1 Introducción 2 Complejidad de los datos 3 Métodos para tratar la complejidad de los datos 3.1 Métodos de muestreo (rebalancear la ME) y costosensitivo 3.2 Métodos para eliminar solapamiento, ruido, patrones atípicos y solapamiento de clases 4 Conclusiones 1 Introducción Hoy en día las áreas de reconocimiento de patrones, aprendizaje automático y minería de datos han despertado el interés de muchos investigadores; éstas se han convertido en herramientas útiles para automatizar procesos en diferentes campos, como la medicina, la industria y la biología, entre otros. Por ejemplo, la minería de datos ha surgido como alternativa para la extracción del conocimiento de grandes cantidades de datos con la finalidad de tomar decisiones o comprender algún fenómeno social o de la naturaleza. Actualmente, las redes neuronales artificiales (RNA) son muy utilizadas como clasificadoras en tareas de minería de datos, aprendizaje automático y reconocimiento de patrones. El Perceptron Multicapa (PM) ha sido utilizado en la interpretación de imágenes de lectura remota1 y como aproximador universal, principalmente. Sin embargo, aún se conoce poco de estos modelos, lo que trae 373 como consecuencia, lentitud en el proceso de aprendizaje y pobre capacidad de generalización. Varios investigadores han coincidido en que la precisión de estos clasificadores depende de la calidad de los datos,2,3,4,16 porque las RNA fueron diseñadas para aprender mediante bases de datos con clases balanceadas y también con datos que puedan ser linealmente separables, o por lo menos, que para este tipo de clasificador sea fácil transformar el espacio no linealmente separable a uno linealmente separable, por lo tanto todos aquellos factores o características del conjunto de datos que impiden que una RNA aprenda correctamente reciben el nombre de complejidad de los datos.2,3,5,6,7 Cada investigador define de forma diferente o engloba factores diferentes en cuanto a la complejidad de los datos; por ejemplo, Barandela3,4 dice que el conjunto de datos para entrenar la red contiene patrones atípicos y ruidosos que la afectan negativamente, Visa et al.2 tratan varios factores, como el desbalance — el problema más grave en redes neuronales—,5,6,7,8 el tamaño de la muestra de entrenamiento y el solapamiento de clases (véase la figura 1). Fig. 1. Solapamiento de clases. 2 Complejidad de los datos Como lo describimos en la sección anterior, la complejidad de los datos son aquellos factores que disminuyen la calidad de la muestra de entrenamiento (ME) y que por consiguiente disminuyen la precisión del clasificador. Estos factores se definen como sigue: Ruido: son datos con errores originados en su medición o registro —mal etiquetados, es decir, cuando no pertenecen a la clase donde fueron colocados.Patrones atípicos: son excepciones a la regla —aunque hayan sido identificados correctamente, éstos son muy diferentes al resto de los patrones de la misma clase. Solapamiento: es cuando dos o más clases se encuentran interceptadas entre sí, compartiendo elementos en común (véase la figura 1). 374 Desbalance de clases: sucede cuando una clase tiene más patrones que las otras, es decir, cuando una clase es demasiado pequeña respecto a las demás. Tamaño de la ME: la cantidad de patrones es directamente proporcional al tiempo que tarda una RNA en aprender todo el conjunto, por esta razón, entre más grande sea la muestra, más tiempo consumirá la red en aprender los patrones, a lo que hay que agregar la carga computacional asociada a este proceso. Algunos autores8 no sólo asocian el tamaño de la ME a la cantidad de patrones, sino también a la cantidad de atributos de cada patrón. Distribución de la los datos: en la figura 2 se muestran dos casos en los cuales se observa cómo están distribuidos los datos. En la figura 2a se ve una distribución que, para una red neuronal, sería la óptima. Aquí tomaremos la linealidad dentro de la distribución de los datos, pues la primera depende de la segunda. Fig. 2. Distribución de los datos: a) caso óptimo, b) caso no óptimo. 3 Métodos para tratar la complejidad de los datos El problema más grave, en el cual la mayoría de los investigadores se ha enfocado de manera particular, es el desbalance de clases.2,5,6,8,10 Sucede que en una buena parte de los problemas reales los datos están desequilibrados; por ejemplo, en los fraudes por vía telefónica —los cuales son mucho menos que las llamadas telefónicas normales— o al tratar con enfermedades como el SIDA — pues, en comparación con las sanas, hay menos personas contagiadas. Para corregir el problema del desbalance de datos, varios métodos han sido propuestos. Entre los más conocidos están los métodos de muestreo,2,10 basados en el de costo-sensitivo,11 los cuales se describen en la sección 3.1. Para tratar el solapamiento de clases, patrones atípicos y ruido se utilizan métodos como la edición de Wilson, basados en la técnica del vecino más cercano (NN, nearest neighbor rule) y sus variantes, por ejemplo, el 1-NN, k-NN y CNN. También se han utilizados técnicas basadas en el criterio de vecindad, como el Grafo de Gabriel (GG, Gabriel Graph) y Grafo de la Vecindad Relativa (RNG, Relative Neighbourhood Graph),12 las cuales se presentan en un panorama más amplio en la sección 3.2. Cabe señalar que tanto estos métodos como los de muestreo para combatir el desbalance modifican la distribución de los datos, así como el tamaño de la ME. A partir de esto último, nos planteamos la siguiente 375 pregunta: ¿qué tan conveniente es modificar el tamaño y la distribución de los datos? 3.1 Métodos de muestreo (rebalancear la ME) y costo-sensitivo Cuando hablamos de corregir el desbalance de datos por muestreo, nos referimos principalmente al over-sampling, under-sampling.2,10 La función principal del over-sampling es añadir a la clase minoritaria copias de los patrones de esta misma clase hasta equilibrar las clases de manera aleatoria, aunque Haibo et al.10 nos dicen que la desventaja de usar este método es que se puede llegar a un sobreajuste.13 De forma contraria, el under-sampling, elimina patrones de manera aleatoria de la clase mayoritaria hasta balancear la ME. Además, se ha popularizado SMOTE, una variación del over-sampling, cuya diferencia consiste en el hecho de que ya no se duplican patrones aleatoriamente, sino que se crean patrones sintéticos mediante la interpolación.2 Algunos autores rechazan estos métodos porque el under-sampling involucra pérdida de información —pues descarta datos potencialmente útiles— y el oversampling incrementa el tamaño de la ME sin ningún aumento de información, por lo tanto, sugieren que las investigaciones se enfoquen en los algoritmos de aprendizaje. Otro enfoque para combatir el desbalance de clases, es el de costo-sensitivo (costsensitive),11 el cual se basa en la afirmación de que el precio de cometer un error de clasificación debe ser distinto para cada clase.14 En este método se aplica una matriz de costos para C clases —los valores dependen del problema que se esté tratando—, donde: Denota el costo de una clasificación (véase el cuadro 1) errónea de un patrón de clase i-ésima en la clase j-ésima, , por ejemplo: Además, en los últimos años se ha popularizado el paradigma de aprendizaje en conjuntos,11,18 es decir, se entrenan varios clasificadores y se combinan sus predicciones. En este paradigma, cada clasificador es un aprendiz; entonces, cada uno de ellos vota por una clase, y la clase que haya recibido más votos es la que se retorna. 376 Cuadro 7. Ejemplo de una Matriz de Costo (Cost[i, j]) para una ME con tres clases i 1 2 3 J 1 0 1 1 2 1 0 1 3 8 9 0 3.2 Métodos para eliminar solapamiento, ruido, patrones atípicos y solapamiento de clases Diversos autores15,16 hablan del uso de técnicas basadas en la regla del vecino más cercano para la eliminación de ruido en la ME, lo que mejora el rendimiento del clasificador. Como en la mayoría de las investigaciones solapamiento, ruido y patrones atípicos se tratan en conjunto, englobaremos estos tres factores como ‚limpieza de la ME‛. Los algoritmos m{s utilizados para limpiar la ME son los de Edición, los cuales consisten en descartar prototipos (patrones) que se encuentren en la región correspondiente a una clase distinta a la suya, es decir, prototipos cuya probabilidad de pertenencia a su clase se vea superada por la probabilidad de pertenencia a alguna otra clase. La Edición de Wilson17 propone eliminar los elementos atípicos de la muestra de entrenamiento mediante la aplicación del procedimiento k-NN (k, vecinos más cercanos). Dado un patrón de prueba de la ME, se buscan sus k-vecinos más cercanos, y si la mayoría de éstos no pertenece a la misma clase, el patrón de prueba se elimina. La Edición de WilsonCN18 es una modificación del algoritmo de Wilson. Este método se basa en usar, en vez de la regla k-NN, la regla k-NCN (regla de los k-Vecinos de Centroides más Cercanos) como clasificador central del método, debido a que con ella se obtienen mejores resultados, sobre todo cuando el conjunto de entrenamiento es relativamente pequeño. Este algoritmo presenta el inconveniente de tener un costo computacional superior a la variante original, lo que limita su utilización en determinados problemas reales. Además de los métodos basados en la regla del vecino más cercano y sus variantes, los métodos basados en el criterio de vecindad han dado buenos resultados para la limpieza de la ME, aunque su impacto sobre la precisión del clasificador no ha alcanzado lo esperado. A continuación, el funcionamiento de estos métodos se describe con más detalle. La técnica GG (Grafo de Gabriel)18 dice que para un conjunto V de n puntos (refiriéndose a un vector) V = ,p1, p2,<, pn}, dos puntos pi y pj son vecinos de Gabriel si: dist2(pi,pj)<dist2(pi,pk)+dist2(pk,pj) (1) 377 Uniendo mediante una arista todos los vecinos de Gabriel en pares, se obtiene el grafo de Gabriel. En un sentido geométrico, los dos puntos pi y pj son vecinos de Gabriel si el circulo con diámetro igual a la distancia entre pi y pj no contiene ningún otro punto pk V. La técnica Grafo de Vecindad Relativa (RNG)18 basa su funcionamiento en que si dos puntos x, y son relativamente cercanos entre sí, el área definida por la intersección del circulo con centro en x y radio xy, y el circulo con centro en y con el mismo radio no contiene otro punto. Formalmente, el grado de la vecindad relativa de un conjunto de puntos S tiene una arista entre x e y si: dist(x,y)≤max[dist(x,z),dist(y,z)] (4) La desventaja de estos métodos es que no se tiene control sobre los patrones que se eliminan de la ME, y su uso en algunos casos aumenta el índice de error en proceso de aprendizaje.2 4 Conclusiones En este artículo concluimos que la complejidad de los datos son todos aquellos factores que afectan la calidad de la muestra de entrenamiento y por consiguiente disminuyen la presión de clasificación de la RNA. Estos factores son: ruido, patrones atípicos, solapamiento de clases, desbalance de clases, tamaño de la ME y distribución de los datos. Hemos discutido sobre el problema llamado complejidad de los datos y sus efectos en el entrenamiento de una red neuronal. Describimos también las soluciones más utilizadas para tratar este problema, lo que nos ayuda a comprender su magnitud, así como la dirección que deben tomar las investigaciones futuras para solucionarlo. Algunas propuestas de investigaciones futuras que podemos mencionar en este artículo son la búsqueda de métricas que ayuden a medir los factores englobados en la complejidad de los datos y la modificación de las técnicas anteriores para obtener mejores resultados. Por ejemplo: hasta ahora, algunos de los métodos mencionados se han aplicado en el espacio de entrada, pero ¿qué pasaría si se aplicaran en el espacio oculto de la red neuronal, donde en realidad trabaja la red?, ¿se mejoraría el desempeño de la red? 378 Referencias 1. Foody, G. M., ‚Using Prior Knowledge in Artificial Neural Network with a Minimal Training Set‛, International Journal of Remote Sensing, vol. 2, núm. 16, 1995, pp. 301312. 2. Visa, S. y A. Ralescu, A., ‚Issues in Mining Imbalanced Data Sets. A Review Paper‛, Proceedings of the Sixteen Midwest Artificial Intelligence and Cognitive Science Conference, 2005, pp. 67-73. 3. Barandela, R., E. Gasca y R. Alejo, ‚Corrección de la muestra para el aprendizaje del Perceptron Multicapa‛, Revista Iberoamericana de Inteligencia Artificial , año 2, vol. 9, núm. 13, 2001. 4. Barandela, R., E. Gasca y R. Alejo, ‚Correcting the Training Data. Combinatorial Optimization‛, Dordrecht, 13, 14, 2002. 5. Anand, R., K. Mehrotra, C. Mohan y S. Ranka, ‚An Improved Algorithm for Neural Network Classification of Imbalanced Training Sets‛, IEEE Transactions on Neural Networks, núm. 4, 1993. 6. Murphey, Y., H. Guo y L. Feldkamp, Neural learning from imbalanced data, Applied Intelligence, núm. 21, 2004. 7. Bruzzone, L. y S. Serpico, ‚Classification of Imbalanced Remote-Sensing Data by Neural Networks‛, Pattern Recognition Letter, núm. 18, 1997. 8. Lu, Y., H. Guo y L. Feldkamp, ‚Robust Neural Learning from Unbalanced Data Examples‛, Proceedings of IEEE International Joint Conference on Neural Networks, 1998. 9. Sanchez, J. S., R. A. Mollineda y J. M. Sotoca, An Analisis of how Training Data Complexity Affects the Nearest Neighbor Classifiers, Springer-Verlag, Londres, 2007. 10. Haibo, He y Edwardo A. Garcia, ‚Learning from Imbalanced Data‛, IEEE Transactions on Knowledge and Data Engineering, vol. 21, núm. 9, 2009. 11. Zhi-Hua, Xu-Ying Liu, ‚Training Cost-Sensitive Neural Networks with Methods Addressing the Class Imbalance Problem‛, IEEE Transactions on Knowledge and Data Engineering, vol. 18, núm. 1, 2006. 12. Sánchez Garreta, José Salvador, Training. Aprendizaje y clasificación basados en criterios de vecindad: métodos alternativos y análisis comparativo, tesis doctoral, Universitat Jaume I, 1998. 13. Mease, D., A. J. Wyner y A. Buja, Boosted Classification Trees and Class Probability/Quantile Estimation, Journal of Machine Learning Research, vol. 8, 2007. 14. Kukar, M. e I. Kononenko, Cost-Sensitive Learning with Neural Networks, XIII European Conference on Artificial Intelligence, 1998. 15. Gopalakrishnan M., V. Sridhar y H. Krishnamurthy, ‚Some application of clustering in the desing of neural networks‛, Patter Recognition Letters, vol. 16, núms. 59-65, 1995. 379 16. Barandela, R y E. Gasca, ‚Decontamination of Training Samples for Supervised Pattern Recognition Methods‛, en F. Ferri et al., Lecture Notes in Computer Science, 1876; Advances in Pattern Recognition, Springer-Verlag, Nueva York, 2000. 17. Wilson, D. L., ‚Asymptotic Properties of Nearest Neighbor Rules Using Edited Data Sets‛, IEEE. on Systems, Man and Cybernetics, vol. 2, 1972, pp. 408-421. 18. S{nchez, J. S., F. Pla y F. J. Ferri, ‚Using the Nearest Centroid Neighbourhood Concept for Editing Purpose‛, Proceedings VII Simposium Nacional de Reconocimiento de formas y Análisis de Imágenes, núm. 1, 1997, pp. 175-180. 19. T. G. Dietterich, Ensamble Learning. The Handbook of Brain Theory and Neural Networks, 2a. ed., MIT Press, Cambridge, Mass., 2002. 380 Automatización del Proceso de Ensamble utilizando Visión Artificial Mario Peña Cabrera, H. Gómez N., R. Osorio C., Ismael López-Juárez, Oleg Sergiyenko Resumen. Desde que el primer robot manipulador en aplicaciones industriales fue instalado para General Motors, la planeación y ejecución de sus movimientos ha sido parte del desarrollo de los sistemas robóticos y ha involucrado a investigadores de diferentes especialidades. La planificación y guía del movimiento en los robots es cada vez más compleja, debido a la gran variedad de aplicaciones en las que éstos se utilizan; desde tareas extremadamente repetitivas en las líneas tradicionales de ensamble hasta la asistencia en los movimientos precisos de las operaciones quirúrgicas. El artículo muestra un método novedoso basado en la integración de un algoritmo de reconocimiento y una arquitectura neuronal para aplicaciones de reconocimiento invariante de objetos, utilizando robots industriales autoadaptables que realicen tareas de ensamble. El método utilizado en experimentaciones de laboratorio es ahora presentado como una técnica robusta para el ensamble de piezas con robots guiados por visión artificial. Los objetos nuevos son reconocidos en milésimas de segundo y posteriormente clasificados en línea para realizar ensambles en tiempo real. La arquitectura se entrena primero con pistas que representan objetos diferentes a los cuales el robot, durante su aplicación, tratará de encontrar dentro de su espacio de trabajo para formar su base de conocimientos previos (BCP). Esta información dispara entonces el subsistema de aprendizaje en línea, basado en la red neuronal artificial FuzzyARTMAP, y el nuevo vector representativo de la imagen se sobreimpone a las pistas iniciales. El robot aprende a identificar tanto aquellos objetos que le son familiares como los nuevos, de esta manera se integra un sistema robótico más complejo con diferentes aplicaciones en manufactura inteligente. La propuesta tecnológica para el reconocimiento invariante de objetos está basada en el uso de formas canónicas dentro de la base primitiva de conocimiento y en la utilización de los aspectos y principios de la Gestalt. De este modo, se construyen las piezas con esas formas canónicas y se las agrupa de varias maneras, siguiendo el conocimiento a priori y considerando las formas de agrupamiento como pistas. El artículo muestra el diseño y los resultados obtenidos con el uso de la técnica descrita para reconocer piezas de ensamble dentro de una celda de manufactura inteligente. Sumario: 1 Introducción 2.1 Reconocimiento de objetos sin variante 2.2 Redes neuronales artificiales 3 Manufactura inteligente 3.1 Ensamble 4. Sistema de visión 4 Metodología 4.1 Generación del vector descriptivo 5 Resultados experimentales 381 5.1 Entrenamiento y reconocimiento en línea 6 Conclusiones y trabajo futuro. Referencia 1 Introducción Es deseable que los sistemas de visión actuales sean capaces de ver y percibir objetos e imágenes de la manera más semejante a como lo hace el ser humano. Esto es cada vez más necesario cuando se utilizan sistemas robóticos complejos en los cuales la planificación y guía del movimiento se ha ido complicando debido a la gran variedad de aplicaciones en las que los robots se utilizan.1 La planeación de los movimientos de los robots, o bien, la guía en línea para la realización de un proceso de ensamble, se utilizan de una u otra manera como la trayectoria o el curso planeado o calculado. El curso o rumbo de un movimiento robótico se define como la búsqueda continua de secuencias de movimiento sin colisiones entre un principio y una meta de movimiento a realizar; en cambio, la planeación de una trayectoria tiene que ver también con el historial o el plan programado de una configuración de secuencias de movimiento.2,3 Los sistemas en los cuales los robots tienen que compartir espacios comunes con otras máquinas o incluso otros robots manipuladores son el resultado de las demandas industriales en las que el tiempo, el espacio y la productividad están muy ligados entre sí. Por ejemplo, tratándose de volúmenes de producción muy grandes y tiempos prolongados del ciclo de vida de los productos, la planeación de las trayectorias de movimiento de los robots que van a ser instalados en un proceso de manufactura de algún producto nuevo se puede hacer ‚fuera de línea‛ y en un tiempo largo; sin embargo, aun así, puede hacerse necesario el detener la producción de una línea de manufactura, corroborar de cuando en cuando la exactitud de las trayectorias planeadas y establecer algún ajuste para luego reestablecer la línea de producción. Por otro lado, en sistemas en los que el volumen de producción es pequeño o mediano —producción por lotes— y una sola celda de manufactura tiene que manufacturar una variedad de productos, el proceso de planeación o cálculo de las trayectorias tiene que ser muy eficiente para asegurar que el tiempo que la línea de producción esté fuera de servicio no afecte el costo final de la producción del producto. De acuerdo con esto, la utilización de metodologías y la creación de algoritmos debe darle más flexibilidad a los sistemas no estructurados, permitiendo la planeación o c{lculo de trayectorias ‚en línea‛ e incrementando consecuentemente la productividad de los sistemas. En este sentido, se considera que la aplicación de técnicas de ‚inteligencia artificial‛ (soft computing) mejora el desarrollo de la planeación global de las trayectorias de los movimientos de los robots manipuladores industriales. En este enfoque del problema, se considera el hecho de que los mismos robots manipuladores tienen que encontrar un objetivo específico, definido como coordenadas en su área de trabajo, en lugar de llevar a cabo una configuración de tareas fijas y repetitivas. En los dos últimos decenios, este problema ha sido estudiado por muchos investigadores. 382 Técnicas de soft computing‛ es el nombre que se le ha dado en la tecnología de la información al conjunto de métodos que abarcan la ‚lógica difusa‛, las ‚redes neuronales‛ y los ‚algoritmos genéticos‛ utilizados para resolver los problemas no lineales que los métodos tradicionales no pueden resolver. Los algoritmos genéticos fueron desarrollados por Holland y posteriormente implementados por Goldberg. Un algoritmo genético es una estrategia de búsqueda que imita la teoría de la evolución de la vida natural. La lógica difusa, propuesta inicialmente por Zadhe, en 1965, e implementada por primera vez por Madmani, en 1974, es una extensión de la lógica Booleana que permite el procesamiento de información vaga o difusa. Las redes neuronales artificiales pretenden simular la manera como el cerebro humano interpreta y procesa la información. Los primeros trabajos al respecto fueron presentados por McCulloch y Pitts, en 1943. 2 Visión artificial El advenimiento de sistemas robóticos más complejos, en aplicaciones como manufactura inteligente, ciencias de la salud y el espacio, han creado la demanda de mejores sistemas de visión. Los sistemas de visión deben ser capaces de ver y percibir objetos e imágenes de la manera muy parecida a como el ser humano ve y percibe. Las ideas que han inspirado el proyecto y nos han otorgado un razonamiento para el diseño de la metodología han sido tomadas de observar el comportamiento en bebés humanos de entre tres meses y dos años, así como el comportamiento respecto de la evolución del desarrollo mental en los humanos, reportado por Piaget. Al observar cómo los bebés entienden una escena visual para asir un simple objeto o seguir una trayectoria con la mirada, se encontró que existen dos factores que deben considerarse como válidos para nuestro proyecto: Hay un primer punto dentro de la escena en el cual todos los atributos y la extracción de características se basan y éste parece ser el centro de masa —el área con más peso dentro de la imagen. Una vez que un objeto ha sido presentado para su visualización y aprendizaje, en la siguiente ocasión en que se le enseña el objeto al bebé humano, éste busca pistas en la escena utilizando datos y características previamente aprendidos. Estas ideas nos han llevado a pensar en la posibilidad de obtener información fiable y rápida con un análisis simple pero objetivo de lo que un objeto debe mostrar como la información más adecuada, necesaria y primitiva para tener un conocimiento sustancial y robusto de lo que se está viendo y memorizar los aspectos más importantes de la escena —a los que hemos llamado ‚pistas‛. Las pistas pueden utilizarse para recordar aspectos del objeto ya memorizados sin tener que obtener características más detalladas. Por medio de las redes neuronales, es posible aprender habilidades para manipular objetos que puedan ser usados por los robots manipuladores industriales. De alguna manera, los seres humanos lo hacemos de ese modo cuando ya hemos visto 383 y aprendido algo sobre el objeto, por lo tanto, creemos que aprendiendo formas canónicas en el proceso inicial de conocimiento será posible reconstruir más tarde todo el conocimiento acerca del objeto. 2.1 Reconocimiento de objetos sin variante El reconocer un objeto utilizando un sistema de visión artificial involucra una gran cantidad de cálculos y procesos matemáticos que tienen que ser codificados e implementados y probados para su utilización en una aplicación real. Los sistemas de visión y las tecnologías de estado sólido han evolucionado en forma paralela, es decir, al tener computadoras más rápidas y sofisticadas, se han podido desarrollar e implementar mejores y más complejos sistemas de visión con algoritmos más complejos que anteriormente parecía que no llegarían a ser una realidad. Las ideas básicas fueron establecidas con representaciones, arquitecturas y algoritmos que llevaron al desarrollo de esta disciplina en la investigación. Una solución general al problema de reconocimiento no existe todavía, la mayoría de los métodos clásicos de reconocimiento de objetos utilizan análisis de formas y extracción de atributos mensurables de imágenes digitales para alcanzar las soluciones. Las investigaciones más recientes apuntan al uso de técnicas de inteligencia artificial para buscar las soluciones al reconocimiento invariante de objetos utilizando la visión artificial. Las redes neuronales artificiales son técnicas muy representativas para este propósito. Nuestra propuesta de metodología para el reconocimiento invariante de objetos está basada en el uso de formas canónicas dentro de la base primitiva de conocimiento. Estas formas canónicas se pueden representar por un vector descriptivo que hemos llamado ‚CFD&POSE‛, el cual contiene la información necesaria para llevar a cabo las ideas que aquí se muestran: el diseño y los resultados obtenidos de la experimentación con piezas de ensamble dentro de una celda de manufactura inteligente diseñada alrededor de una arquitectura holónica donde cada componente de la celda es un agente inteligente. Al utilizar el modelo de red neuronal FuzzyARTMAP, se aprenden habilidades para manipular objetos usados por robots manipuladores industriales, emulando de alguna manera el comportamiento de los humanos. El reconocimiento se establece al conformar un vector que asimila la información del objeto con una dimensión fija de datos y basado en la secuencia geométrica de formas canónicas dentro del proceso inicial de conocimiento, para más tarde hacer posible la reconstrucción del conocimiento acerca del objeto. 384 2.2 Redes neuronales artificiales Existen diferentes tipos de redes neuronales artificiales (RNA). Para esta investigación se utilizó la red FuzzyARTMAP. ART son las iniciales de Adaptive Resonance Theory, un modelo bien establecido y asociado al funcionamiento cerebral; muy competitivo, introducido como una teoría del proceso cognitivo del ser humano y desarrollado por Stephen Grossberg en la Universidad de Boston. Grossberg resumió las situaciones mencionadas anteriormente en lo que llamó ‚Stability-plasticity dilemma‛ , sugiriendo que los modelos conexionistas deberían tener la posibilidad de adaptación y cambiar entre sus estados plásticos y estables. Esto es, un sistema debe exhibir plasticidad para acomodar la información nueva proveniente de eventos no familiares, pero también debe permanecer en una condición estable si ocurre información familiar o irrelevante. Este modelo de red se caracteriza por su capacidad de adquirir conocimiento incremental y su estabilidad, y además, por su respuesta rápida al reconocimiento de información. 3 Manufactura inteligente Recientemente, se ha generalizado la idea de contar con celdas inteligentes de manufactura que utilicen robots con capacidades sensoriales y algoritmos inteligentes basadas en las últimas investigaciones y desarrollos de inteligencia artificial (IA), como la lógica difusa y las redes neuronales. Con estas técnicas se simplifica el manejo de modelos matemáticos complejos que requieren de bastante tiempo de cómputo para su aplicación. El uso de sistemas multimodales que obtengan información de diferentes modos sensoriales con el propósito de manufactura, nos hace pensar en sistemas más robustos, autoadaptables y parecidos al comportamiento humano, los cuales necesariamente mejorarían el desempeño y la flexibilidad en aplicaciones comunes con robots manipuladores. En los sistemas de manufactura, han sido utilizados diferentes sensores para realizar tareas muy específicas y por separado, como, por ejemplo, guía de trayectorias para soldar piezas, sistemas de visión para aplicaciones de inspección y control de calidad, y sensores de fuerza-torque para realizar tareas de ensamble. La integración de robots con capacidades sensoriales para realizar tareas de ensamble en una celda flexible de manufactura es un tema de vanguardia en la investigación y desarrollo de sistemas de manufactura inteligente. La mayoría de los usuarios y fabricantes que utilizan sistemas automatizados en la fabricación han puesto su empeño en mejorar la precisión y velocidad de los sistemas robotizados, pero a un lado de las habilidades cinemáticas de un robot, sus capacidades sensoriales no han sido desarrolladas y son necesarias para proveer al robot con un alto grado de flexibilidad y autonomía en sus tareas de manufactura. Para lograr este objetivo es necesario cumplir con los requerimientos de 385 un ambiente de producción cuyas características resulte un factor crucial en el proceso de fabricación: Incertidumbre en la posición de las herramientas o piezas de trabajo. Para solventar esto, se utilizan partes y accesorios que garantizan posiciones fijas para realizar los ensambles, pero resultan costosas, muy particularizadas y generalmente con necesidad de ajuste en ciertos intervalos de tiempo de uso. Operación de los manipuladores con piezas de trabajo que se mueven. Evaluación de fuerzas de interacción y torques. Entonces, se tiene la idea contar con robots autoadaptables, con capacidades sensoriales y de aprendizaje de habilidades en la fabricación en línea. Para ello, se necesita una integración de diferentes modos de percepción sensorial, de manera que el desempeño se parezca al comportamiento humano en sus tareas de aprendizaje y ejecución en procesos de manufactura orientados a tareas de ensamble. El interés en desarrollar celdas inteligentes de manufactura con capacidades sensoriales tiene énfasis en el uso de un sistema de visión. 3.1 Ensamble El éxito de las operaciones de ensamble con robots industriales está prácticamente basado en la exactitud del mismo robot y en la precisión del conocimiento de su medio ambiente —por ejemplo, información de la geometría de las partes que se ensamblan y su localización en el espacio de trabajo. Los robots manipuladores operan en situaciones de tiempo real con un alto grado de incertidumbre, como ya se ha mencionado, y requieren de sistemas de censado que compensen los errores potenciales durante las operaciones de trabajo. Las incertidumbres provienen de una variedad de factores, como errores de posicionamiento de los robots, desajuste de los engranes, deflexión de los brazos, y en general, envejecimiento de los mecanismos. El control de todos estos aspectos en un proceso de ensamble es realmente una tarea difícil, pero si se tiene una estrategia más simple, es más conveniente, como sucede cuando se utilizan robots guiados con visión artificial, en una tarea de ensamble en la inserción denominada ‚peg-in-hole‛ 4 Sistema de visión Los sistemas de visión, hoy en día, son utilizados en aplicaciones como inspección, control de calidad y tareas de ensamble; han sido adoptados ahora como tecnología necesaria en las industrias modernas automatizadas. A continuación, se presenta un método novedoso para este propósito y pruebas para llevar a cabo un proceso de ensamble guiado por visión y utilizando para su experimentación piezas de aluminio 386 con diferentes secciones geométricas denominadas circular, cuadrada y radicuadrada. Estos componentes se muestran en la figura 1 y la operación peg-in-hole en la figura 2. Radiused-Square Circular Square 25 0 12.5R 15 15 15 25 Units in mm Fig. 1. Componentes de ensamble. Fig. 2. Operación de ensamble peg-in-hole. camera Fig. 3. Espacio de trabajo del sistema de visión. 387 El modo sensorial de visión proporciona al brazo-robot la información espacial en la localización (POSE) y captura de partes (grasping). La figura 3 muestra el sistema de visión, el cual está integrado por una cámara de televisión de alta velocidad, del tipo progresiva, con sensor CCD/B&W, PULNIX 6710,10 colocada en un sistema de posicionamiento X-Y en la parte superior de la celda de manufactura, lo que permite tener escenas de ‚partes‛ en diferentes localidades dentro del área de trabajo. La imagen es adquirida y procesada para obtener información confiable dentro de un rango de iluminación considerable en tareas de manufactura en un ambiente industrial. La imagen es procesada para obtener una imagen binaria sobre la cual se aplican algoritmos que permiten transformar la forma en una colección ordenada de pares numéricos, la cual es analizada y utilizada para obtener información de las coordenadas del centroide y puntos importantes de la forma, lo que permite el cálculo de la orientación del objeto para obtener el POSE. 5 Metodología La metodología para el reconocimiento sin variante de objetos de ensamble está basada en el uso de formas canónicas dentro de lo que se ha llamado ‚base de conocimiento primitiva‛ (BCP), la cual se construye durante la fase de entrenamiento, y una vez dentro del sistema, la idea es refinarla en línea. Para ilustrar la metodología es conveniente considerar los componentes de ensamble representados en 2D, como en la figura 4. Fig. 4. Representación de piezas de ensamble en 2D. Estas formas canónicas sirven como ‚pistas‛ insertadas inicialmente en la BPC y en la que es posible analizar el proceso de agrupamiento. El conocimiento es adquirido al presentar múltiples instancias del objeto en escena, como se muestra en la figura 5, donde se da un ejemplo de una pieza circular cuyas vistas son ilustradas en diagramas sucesivos. El siguiente paso es codificar la información de los objetos para tener un vector descriptivo sin variante para la rotación, la traslación y la aplicación de la escala. 388 Fig.. 5. Múltiples instancias de una pieza circular. Teniendo un vector descriptivo como éste, es posible entrenar una red neuronal artificial para tener una familia de vectores descriptivos generados en línea con el sistema de visión (véase la figura 6). Los pasos a seguir en la metodología del sistema de visión para el robot son: Rápida adquisición de la escena visual de trabajo. Encontrar la región de interés (ROI). Cálculo del histograma de la imagen. Búsqueda de piezas. Cálculo del centroide. Orientación de la pieza. Cálculo de la función boundary object function (BOF). Generación del vector descriptivo y normalización (CFD&POSE). Procesamiento de información en la red neuronal. 389 Fig. 6. Módulo CFD&POSE y red neuronal. 4.1 Generación del vector descriptivo Una vez que la información ha sido procesada, se conforma un vector descriptivo como entrada a la red neuronal. El vector se llama CFD&POSE y está formado por: D1 D 2 D3 D n [CFD & POSE] X c Y c Z ID donde: Di es la distancia del centroide al perímetro; XC, YC son las coordenadas del centroide; es el ángulo de orientación; 390 Z es la altura del objeto; ID es un número codificado relacionado con la geometría de los componentes. La función boundary object function (BOF) es la que describe cada pieza específica y variará de acuerdo con la forma de cada pieza (véase la figura 7). 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 a 1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 A 15 29 43 57 71 85 C b 1 99 113 127 141 155 169 183 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 B 15 29 43 57 71 85 99 113 127 141 155 169 183 c 1 15 29 43 57 71 85 99 113 127 141 155 169 183 Fig.. 7. BOF: a) circulo, b) cuadrado, c) radicuadrado. 5 Resultados experimentales 5.1 Entrenamiento y reconocimiento en línea Para verificar la realización y robustez de las tareas de ensamble con la red neuronal artificial y esta metodología se hicieron pruebas con las piezas de ensamble y el sistema de visión, en un trabajo experimental. En un principio, la red fue entrenada con 2 808 patrones diferentes para analizar la capacidad de aprendizaje y reconocimiento de las piezas de trabajo. Los resultados relacionados con el porcentaje de reconocimiento y el número de neuronas generadas se muestra en la figura 9. La gráfica muestra cómo el sistema aprendió todos los patrones en tres épocas, creando solamente 32 neuronas para clasificar 2 808 patrones. La figura 8 muestra el trabajo experimental con el robot. El tiempo promedio para el entrenamiento fue de 4.42 ms. y para la prueba de 1.0 ms. Un proceso de normalización se aplicó al vector descriptivo y el trabajo experimental se redujo a solo 216 patrones de componentes del mismo tamaño, correspondientes a 72 cuadrados, 72 círculos y 72 radicuadrados. Fig. 8. Trabajo experimental. 391 Fig. 9. Aprendizaje de la red neuronal. Los valores de orientación fueron 0, 45, 90, 135, 180, 215, 270 y 315 grados. Con estos patrones de entrenamiento, el sistema fue capaz de reconocer el 100% de las piezas presentadas en línea, sin importar si eran de diferente tamaño o estaban en diferente localidad y rotación y en diferentes condiciones de iluminación. Las piezas utilizadas para entrenar la red neuronal se muestran en la figura 10. En la figura 11 se muestran las gráficas para diferentes vectores descriptivos de cada pieza de ensamble y en diferentes posiciones, tamaños y orientaciones. Fig. 10. Piezas de ensamble para trabajo experimental. 392 1 a 0.9 0.8 0.7 0.6 0.5 0.4 0.3 1 0.2 0.1 b 0.9 0.8 0 1 11 0.7 31 21 0.6 0.5 41 51 61 71 81 1 11 21 31 41 51 61 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 91 101 111 121 131 141 151 161 171 181 0.4 0.3 0.2 0.1 0 1 c 0.9 0.8 71 81 91 101 111 121 131 141 151 161 171 181 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 11 21 Fig. 11. Vectores descriptivos para piezas de ensamble en diferentes posiciones y tamaños. 6 Conclusiones y trabajo futuro Una metodología novedosa para el rápido reconocimiento de objetos y la estimación de su posición se logró con éxito. Los resultados experimentales, con piezas de ensamble en manufactura, muestran la metodología para el procesamiento de imágenes, los cálculos del centroide y el perímetro en los componentes. Las pruebas se realizaron en ambientes de manufactura reales. Los resultados confirman la factibilidad del método para mandar información de ‚agarre‛ y morfología de las piezas a un robot, en tiempo real. Se logró también el reconocimiento muy aceptable de los componentes de ensamble y la identificación de piezas de trabajo, con éxito, utilizando un modelo de red neuronal FuzzyARTMAP. El desempeño del modelo fue muy satisfactorio, con tiempos de reconocimiento menores a 5 ms. y rangos de identificación del 100%. Las medidas experimentales mostraron ±3 milímetros de error en la información enviada al robot. El ángulo de orientación de las piezas pudo obtenerse hasta ±9 grados, lo cual es bastante bueno para que el robot pueda asir las piezas. Referencias 1. Tombropolous, R. Z., J. R. Adler et al., ‚Carabeamer : A Treatment Planner for a Robotic Radiocirurgical System with General Kinematics, Medical Image Analysis, vol. 3, núm. 3, 1999, pp. 237-264. 2. Sugihara, K. y J. Smith, ‚Genetic Algorithms for Adaptive Motion Planning of Autonomous Mobile Robots‛ (reporte ténico) University of Hawaii, Manoa, 1997. 393 3. Wise, D. K. y A. Bowyer, ‚A Survey of Global Configuration-Space Mapping Techniques for a Single Robot in a Static Environment‛, International Journal of Robotic Research, 2000, pp. 762-769. 4. Latombe, J. C., Robot Motion Planning, Kluwer Academic, Boston, 1991. 5. Hwang, Y. K. y N. Ahuja ‚Gross Motion Planning: A Survey‛, ACM Computing Surveys, vol. 24, núm. 3, 1992, pp. 219-291. 6. Holland, J. H. Adaptation in Natural and Artificial Systems, University of Michigan Press, Michigan, 1975. 7. Goldberg, D. E., ‚Computer-Aided Gas Pipeline Operation Using Genetic Algorithms and Rule Learning‛, disertación doctoral, University of Michigan, 1983. 8. Wu, L., S. L. Oviatt y P. R. Cohen, ‚Multimodal Integration. A Statical View‛, IEEE Transactions on Multimedia, vol. 1, núm. 4, 1999, pp. 334-341. 9. López-Juárez, I., On-Line Learning for Robotic Assembly Using Artificial Neural Networks and Contact Force Sensing, tesis doctoral, Nothingham Trent University, Inglaterra, 2000. 10. En internet (www.pulnix.com). 11. Peña, M., I. López-Ju{rez y R. Osorio, ‚Invariant Object Recognition Applied to Machine Robot Vision‛, ponencia presentada en la XVII Conference of the Mexican Society for Instrumentation, octubre de 2002. Sugihara, K. y J. Smith, ‚Genetic Algorithms for Adaptive Motion Planning of Autonomous Mobile Robots‛ (reporte ténico) University of Hawaii, Manoa, 1997. 12. Wise, D. K. y A. Bowyer, ‚A Survey of Global Configuration-Space Mapping Techniques for a Single Robot in a Static Environment‛, International Journal of Robotic Research, 2000, pp. 762-769. Latombe, J. C., Robot Motion Planning, Kluwer Academic, Boston, 1991. 394 Quality Measurement of Existing Color Metrics using Hexagonal Color Fields Yuriy Kotsarenko, Fernando Ramos Abstract. In the area of colorimetry there are many color metrics developed, such as those based on the CIELAB color space, which measure the perceptual difference between two colors. However, in software applications the typical images contain hundreds of different colors. In the case where many colors are seen by human eye, the perceived result might be different than if looking at only two of these colors at once. This work presents an alternative approach for measuring the perceived quality of color metrics by comparing several neighboring colors at once. The colors are arranged in a two dimensional board using hexagonal shapes, for every new element its color is compared to all currently available neighbors and the closest match is used. The board elements are filled from the palette with specific color set. The overall result can be judged visually on any monitor where output is sRGB compliant. Keywords: color metric, perceptual quality, color neighbors, quality estimation. Sumario:1 Introduction 2 Palette Exhaust on Hexagonal Field 3 The analysis of resulting fields 4 Conclusions and future work 5 Referencias 1 Introduction In the software applications there are applications where several colors need to be compared in order to determine the color that better matches the given sample. For instance, in stereo vision the colors from two separate cameras are compared to determine the visible depth. In image compression algorithms the colors of neighboring pixels are compared to determine what information should be discarded or preserved. Another example is color dithering – an approach, where color pixels are accommodated in special way to improve the overall look of the image. For instance, in Floyd-Steinberg dithering [1] and Riemersma dithering [2] the color is compared to several existing matches and closest match is used; the difference between original color and used match is calculated and propagated to other pixels. In order to measure the difference between the given colors, each of them has to be specified in a common system, usually referred to as color space. In computer applications it is very common to use RGB color space. However, since RGB color space is rather subjective in terms of specification, of which several exist (such as sRGB, see Rec. 709 [3]), several other color spaces were developed that are also thought to be more perceptually uniform (an important property for measuring color differences). The most commonly used formal color spaces are CIE XYZ, CIELAB and CIELUV [4]. If the original color is specified in RGB color space and that specification is known, the color can be converted to CIE XYZ without losing precision through gamma correction and linear transformation [5]. The transformation from CIE XYZ to CIELAB and/or CIELUV is made through a series of transforming functions (see [4] or [5]). Once the colors have been represented in CIELAB color space, several color difference equations exist (see [6], [7], [8] and [9]). Alternatives to CIELAB and CIELUV in terms of perceptual accuracy exist, such as DIN99 color space [10] with its associated color difference formulas [11], ATD95 color space [12] and HCL color space [13]. The aforementioned color spaces and their associated metrics have their strengths and weaknesses (see [5] and [14]) in terms of quality and performance. In this work the focus is made on the quality factor in practical applications – where color metrics are used in typical software applications. There are recent works that evaluate the quality of the different color metrics based on specific sample data (see [6] and [15]). However, as much as scientific background is important for a given color metric, its practical application’s strengths and weaknesses are of high priority to a software engineer. The experiments described in this work provide insight on how each color metric performs when working with colors typically displayed on a standard computer display. In the reality the human eye perceives a large variety of colors simultaneously and this work provides an alternative approach for testing the existing colors metrics with three or more colors at the same time. 2 Palette Exhaust on Hexagonal Field In order to measure the quality performance of the given metric, a fixed palette of colors is given. The color values were specified using two techniques – first involved uniform distribution of red, green and blue values in sRGB color space and second using random color generation using linear number distribution. The 396 colors were extracted from the palette one by one depending on the quality comparison described later on until all colors have been exhausted. The initial color that was looked for on the palette is gray (CIELAB coordinates corresponding to L*=50, a*=0 and b*=0). The different choice for the initial color produces different results and middle gray was selected as a reasonable average between the entire set of all possible colors. The colors were filled on a hexagonal two-dimensional field. The hexagonal shape of field cells was chosen over triangular or square shapes because it has the largest entropy of all three. The different entropy levels are illustrated on the Fig. . Fig. 1. The entropy of triangular (a), square (b) and hexagonal (c) cell shapes. The number of neighbors is marked with different colors to the given red cell in the middle. In the above figure it can be seen that the red cell has different number of neighbors depending on the shape. In the last image the hexagonal cell has six neighbors – the largest entropy that can be seamlessly fit on a two-dimensional field. The largest entropy is important for the context of this work as it allows measuring the visual difference between seven colors at once (one at the middle and six neighbors). In the hexagonal field the order at which the cells are filled with the colors from the source palette is important and affects the final result. There is a finite but significantly large number of all possible ordering schemes on two-dimensional field, starting from linear schemes (from left to right, from top to bottom) to pseudo random ordering such as Hillbert Curve [16]. In this work a radial ordering scheme was used – the initial cell was considered to be in the middle and its neighbors were filled in clockwise manner until the entire field has been filled or the colors from the source palette have been exhausted. 397 3 The analysis of resulting fields Once the hexagonal color field has been generated using the approach described earlier, the resulting image was analyzed by several human observers with healthy vision on the standard computer monitor that fully complies with sRGB color standard under such environment conditions, where the external illumination has little significance and can be neglected. It is important to note that although there were very few human observers involved in the experiments to be considered statistical evidence (for that matter, a more extensive study is recommended in the future works) and due to the fact that human color perception is rather subjective, the results should not be considered as statistics. The statistical analysis is beyond the scope of this work. Since the human color comparison is subjective to individual person each observant was given a complete freedom in terms of metrics and time to observe each of the generated images and then give each image a quality mark between 0 (unordered colors – all cells are different from their neighbors) and 100 (no defects or ‚jumps‛ between neighboring colors). The first set of experimental images is illustrated on the Fig.2. 398 Fig.2. Experimental Image Set 1 (from left to right, top to bottom) using CIELAB (a), CIELUV (b), HCL (c), DIN99 (d), CIEDE2000 (e) and ATD95 (f) color metrics with the reference palette (g). The above set of images was generated with the source palette with 1280 random colors on hexagonal field of dimensions 32x32. The experiments used the color metrics based on CIELAB [4], CIELUV [17] and HCL [13], and color difference formulae DIN99 [10], CIEDE2000 [9], and ATD95 [12]. The hexagonal field with unsorted reference palette is shown in the last image (only the first 1024 colors shown). The images were created by extracting colors from the original palette and filling the destination grid, starting from the center. Each color from the input palette is compared to the neighbor colors of the location where it will be placed and the best match is selected. It can be observed that the overall color distribution varies depending on the chosen color metric, although the observed image is similar (looks like a series of colored patches). The best color matching results appear closer to the center of the image and become worse to the edges as the remaining color options left in the source palette become sparse. The final score chart made by calculating the average of the human observant scores is illustrated on the Fig.. 399 Fig.3. Average score for the different color metrics using the experimental image set 1 as judged by 10 human observers. Although it is difficult if not impossible to rule out the subjectivity of human judgment by observing the experimental images, the chart on Fig. shows that color metric based on ATD95 and DIN99 generated the best results when comparing more than two colors at once. In this experiment the colors were generated randomly, which resulted in some colors being very similar to each other and some colors very different. Observing the results on the Fig. it can be concluded that all the tested color metrics can detect similar colors in groups to a different degree. The average score numbers cannot be used as an exact quality measurement for each of the color metrics but they show which color metric performed better than the rest. The second experimental image set consisted of source palette with 1331 colors distributed uniformly in sRGB color space with 11 levels for each component of red, green and blue, with hexagonal field dimensions of 32x32. The results are illustrated on Fig.. 400 Fig.4. Experimental Image Set 2 (from left to right, top to bottom) using CIELAB (a), CIELUV (b), HCL (c), DIN99 (d), CIEDE2000 (e) and ATD95 (f) color metrics with the reference palette (g). The peculiar property of this experimental set is that the difference between colors in the source palette is relatively constant in sRGB color space, so there is no such color pair where color difference is too small as in the previous experimental set. In the previous set of images the color distribution was somewhat similar with different color metrics, while in this set the distribution is quite different for each color metric. Fig.5. Average score for the different color metrics using the experimental image set 2 as judged by 10 human observers. In the chart on Fig. the average scores given by the jury are shown for the second experimental set of images. It can be observed that the scores are generally lower than in the previous experimental set with CIEDE2000 color metric’s generated image being the best observed. Although the different color metrics are placed 401 differently on the chart, the consensus from both experiments is that ATD95based color metric is better than DIN99 and CIELUV is better than CIELAB, with the color metric based on HCL color space being the worst in both cases. 4 Conclusions and future work In this work an alternative approach for measuring the perceived quality of different color metrics has been presented where three or more colors are compared at the same time as opposed to color pairs. The motivation behind this is that the reality is filled with many different colors which are viewed simultaneously by human eye. In the experiments, the colors were extracted from a fixed color palette one by one and were placed on two-dimensional field with hexagon-shaped cells. The colors from the palette were compared to all existing neighbors on the field and the best match was selected. The resulting images were presented to various human observes with healthy vision on a computer display compliant with sRGB standard for the judgment. The average scores provided by the jury were presented in this work, which indicate the tendency of certain color metrics performing better than others when working with several colors at the same time. Since the experiments described in this work can hardly be considered definitive for determining which metric performs better, further tests are required with more extensive color sets and different filling strategies on the two-dimensional field. In addition, triangular and square shaped fields with less entropy are to be assessed as potential alternatives to hexagonal fields. The entropy can be further increased by modeling the color cells each in three-dimensional fields where each color can have a certain shape such as a pyramid or a cube, although these fields can be more difficult to visualize and judge. References 1. Floyd, Robert, and Louis Steinberg. "An Adaptive Algorithm for Spatial Grey Scale." Proceedings of the Society of Information Display, 1976: 75-77. 2. Riemersma, Thiadmer. "A balanced dithering technique." C/C++ Users Journal (CMP Media, Inc.) 16, no. 12 (December 1998): 51-58. 3. "Recommendation ITU-R BT.709-5." Parameter values for the HDTV standards for production and international programme exchange. International Telecommunication Union, 2008. 402 4. Schanda, Janos. Colorimetry: Understanding the CIE system. Wiley Interscience, 2007. 5. Poynton, Charles. Digital Video and HDTV Algorithms and Interfaces. Morgan Kaufmann, 2003. 6. Melgosa, M., J. J. Quesada, and E. Hita. "Uniformity of some recent color metrics tested with an accurate color-difference tolerance dataset." Applied Optics (Optical Society of America) 33, no. 34 (1994): 8069-8077. 7. Luo, M. R., G. Cui, and B. Rigg. "The Development of the CIE 2000 Colour-Difference Formula: CIEDE2000." Color Research & Application 26, no. 5 (2001): 340-350. 8. Imai, F. H., N. Tsumura, and Y. Miyake. "Perceptual color difference metric for complex images based on Mahalanobis distance." Journal of Electronic Imaging 10, no. 2 (2001): 385-393. 9. Sharma, Gaurav, Wencheng Wu, and Edul N. Dalal. "The CIEDE2000 Color-Difference Formula: Implementation Notes, Supplementary Test Data, and Mathematical Observations." Color Research and Application 30, no. 1 (February 2005): 21-30. 10. Büring, Hendrik. "Eigenschaften des Farbenraumes nach DIN 6176 (DIN99-Formel) und seine Bedeutung für die industrielle Anwendung." 8. Workshop Farbbildverarbeitung der German Color Group, October 2002: 1117. 11. Cui, G., M. R. Luo, B. Rigg, G. Roestler, and K. Witt. "Uniform Colour Spaces Based on the DIN99 Colour-Difference Formula." Color Research & Application 27, no. 4 (2002): 282-290. 12. Guth, Lee S. "Further Applications of the ATD Model for Color Vision." Proc. SPIE (The International Society for Optical Engineering) 2414 (April 1995): 12-26. 13. Sarifuddin, M., and Rokia Missaoui. "A New Perceptually Uniform Color Space with Associated Color Similarity Measure for Content-Based Image and Video Retrieval." ACM SIGIR Workshop on Multimedia Information Retrieval, Salvador, Brazil, 2005. 14. Granger, E. M. "Is CIE L*a*b* Good Enough for Desktop Publishing?" Proceedings of SPIE, the International Society for Optical Engineering (Society of Photo-Optical Instrumentation Engineers) 2170 (1994): 144-148. 15. Luo, Ronnier M., Guihua Cui, and Changjun Li. "Uniform Colour Spaces Based on CIECAM02 Colour Appearance Model." Color Research & Application (Wiley InterScience) 31, no. 4 (June 2006): 320-330. 403 16. Hilbert, David. "Ueber die stetige Abbildung einer Line auf ein Flächenstück." Mathematische Annalen (Springer Berlin / Heidelberg) 38, no. 3 (September 1891): 459-460. 17. Carter, Robert C., and Ellen C. Carter. "CIE L*u*v* Color-Difference Equations for Self-Luminous Displays." Color Research & Application, 1983: 252-253. 404