Bogotá D.C., Colombia • revista@sistemasunbosque.edu.co • Volumen 6 Número 1 • Enero a Junio de 2007
UNIVERSIDAD EL BOSQUE RECTOR Dr. Jaime Escobar Triana VICERRECTOR ACADÉMICO Dr. Erix Bozón Martínez VICERRECTOR ADMINISTRATIVO Dr. Carlos Felipe Escobar Roa SECRETARÍA GENERAL Dr. Luis Arturo Rodríguez DECANO FACULTAD INGENIERÍA DE SISTEMAS Ing. Jairo Hernán Barragán Gómez jairoher@sistemasunbosque.edu.co DIRECTORA DE INVESTIGACIONES FACULTAD DE INGENIERÍA Ing. Giovanna Sabogal giovannasabogal@sistemasunbosque.edu.co SECRETARIO ACADÉMICO Ing. Hernando Ramírez Llinas hernandoramirez@sistemasunbosque.edu.co DIRECTOR ÁREA BÁSICA Lic. Marlene Garzón marlenegarzon@sistemasunbosque.edu.co DIRECTOR ÁREA PROFESIONAL Ing. Carlos Ortiz Buitrago carlosortiz@sistemasunbosque.edu.co DIRECTOR ÁREA DE TELECOMUNICACIONES Ing. Carlos Fernando Varela Pérez carlosvarela@sistemasunbosque.edu.co DIRECTORA ÁREA LABOR SOCIAL Dra. Sandra Angarita sandraangarita@sistemasunbosque.edu.co DIRECTOR REVISTA DE TECNOLOGÍA Dr. Saudiel O. López Cruz orlandolopez@sistemasunbosque.edu.co COMITÉ EDITORIAL Ing. Jairo Barragán G. - Universidad El Bosque Ing. Liliana Buitrago - Universidad El Bosque Dr. César A. Mendoza - Universidad Nacional Dr. Saudiel O. López C. - Universidad El Bosque Dr. Oswaldo J. Gómez Díaz - Universidad Nacional Revista de Tecnología Facultad de Ingeniería de Sistemas ISSN 1692-1399 Volumen 6 Número 1 Para información sobre tarifas publicitarias comunicarse con la Dirección de la Revista: revista@sistemasunbosque.edu.co
OBJETIVOS Y ALCANCE: La REVISTA DE TECNOLOGÍA es una publicación que actúa como foro de investigaciones sobre las tecnologías de información, las interrelaciones de la tecnología informática con las organizaciones y con las prácticas y políticas de gestión. La REVISTA DE TECNOLOGÍA convoca a un amplio rango de análisis sobre estas interrelaciones y los cuestionamientos críticos sobre ellas desde la Medicina, Filosofía, Antropología, Derecho, Auditoría, Psicología, Sociología, Trabajo Social y otras ciencias sociales y exactas, incluyendo investigaciones y estudios teóricos, empíricos, analíticos e interpretativos. Su objetivo principal es acerca de las tecnologías de información, sus fundamentos teóricos, su práctica, evaluación y la exploración y comprensión de la relación de la tecnología informática con otras disciplinas incluyendo, pero sin restringirse a, la Medicina, la Gestión (Management), Matemáticas, Física, Filosofía, Antropología, Derecho, Auditoría, Psicología, Sociología y Trabajo Social, analizando el impacto de la tecnología informática sobre la ética, los derechos individuales, la transferencia de tecnología informática a las organizaciones y sobre los conceptos cambiantes de la gestión, la auditoría, el bienestar de las personas y la viabilidad de las organizaciones. La REVISTA DE TECNOLOGÍA viene a mejorar las comunicaciones entre la Universidad, las Organizaciones en general y las Empresas en particular. La tecnología informática moldea y es moldeada por, afecta y es afectada por aspectos económicos, políticos y sociales de las organizaciones en los sectores financiero, de servicios, educación, salud e industrial de origen privado o gubernamental. A su turno, las organizaciones experimentan el reto de la globalización, el fenómeno de la transmundialización y la necesidad de estandarizar para responder la demanda del mercado y a la vez adicionar características de diferenciación para ser competitivas. © Todos los derechos reservados. Se requiere permiso para reproducir, almacenar en un sistema de recuperación en cualquier forma o por cualquier medio, electrónico, mecánico, fotocopiado, grabado o por cualquier forma de todo o parte de esta Revista de Tecnología. Contáctenos para atender cualquier inquietud: Universidad El Bosque - Facultad de Ingeniería de Sistemas, Transversal 7 B Bis 132-11 Edificio El Campito, Bogotá D.C., Colombia. e-mail: revista@sistemasunbosque.edu.co. SUSCRIPCIONES Y PUBLICIDAD: La REVISTA DE TECNOLOGÍA ISSN 1692-1399 lo invita a dirigir sus órdenes publicitarias a la correo electrónico orlandolopez@sistemasunbosque.edu.co o a la siguiente dirección geográfica: Orlando López - Facultad de Ingeniería de Sistemas, Transversal 7 B Bis 132-11 Edificio El Campito, Bogotá D.C., Colombia. Aunque todos los anuncios y demás contenidos de la revista dicen estar conforme a estándares éticos, por su inclusión en esta publicación, el anunciante declara que la responsabilidad por perjuicios o daños a personas o propiedades como resultado de la calidad o fiabilidad de los productos, la negligencia u otra forma, cualquier uso u operación de los métodos, productos, instrucciones o ideas contenidas en el material corresponde enteramente a su responsabilidad. Las suscripciones corporativas, educativas e individuales son siempre bienvenidas. Las suscripciones pueden ser realizadas al correo electrónico orlandolopez@sistemasunbosque.edu.co o a la siguiente dirección geográfica: Orlando López - Facultad de Ingeniería de Sistemas, Transversal 7 B Bis 132-11 Edificio El Campito, Bogotá D.C., Colombia. Vía fax al número (57 1) 625 2030. Dentro de Colombia también puede hacerlo vía telefónica al (57 1) 520 4018.
AIMS AND SCOPE JOURNAL OF TECHNOLOGY is a journal offering a forum for research on information technologies, the interrelationship between information technologies, organisations and management practices and policies. JOURNAL OF TECHNOLOGY invites a broad range of analyses of these interrelations as well as critical questioning of them from such a knowledge fi elds as Medicine, Philosophy, Anthropology, Law, Auditing, Psychology, Sociology, Social Work and any other social or exact science, including theoretical, empirical, analytical and interpretative studies and action research. Its special concern is on information technologies, its theoretical foundation, practice, assessment, exploring and understanding the relationship between information technology to other disciplines including, but not limited to, medicine, management, Mathematics, Physics, Philosophy, Anthropology, Law, Auditing, Psychology, Sociology, Social Work, analyzing the impacts of information technologies on ethics, individual rights, technology transfer into organisations and changing concepts on management, auditing, people well-being and organisations viabilityy. JOURNAL OF TECHNOLOGY comes to improve communications between University, organisations in general and business in particular. Information technology shapes and is shaped by, affects and is affected by economic, political and social affairs across organisations in fi nancial, service, education, health and industrial sectors either of private or governmental origin. In turn, organisations are being challenged by globalization, the trans-world phenomena and the need to be standardized to attend the demand from the market and, at the same time, to add differential characteristics to be competitive. © All rights reserved. Permission of the publisher is required to reproduce, store in a retrieval system in any form or by any means, electronic, mechanical, photocopying, recording or otherwise of all or any part of this Journal of Technology. Contact the publisher for any request El Bosque University Information Systems Engineering Faculty, Transversal 7 B Bis 132-11 Edificio El Campito, Bogotá D.C., Colombia, e-mail: Revista@sistemasunbosque.edu.co. SUBSCRIPTIONS AND ADVERTISING Revista de Tecnologia - Journal of Technology ISSN 1692-1399 is published on a semester basis by El Bosque University, Please direct inquiries regarding the placing of advertising in this journal to Orlando Lopez, El Bosque University Information Systems Engineering Faculty Transversal 7 B Bis 132-11, Bogotá, Colombia. Phone (57 1) 520 4018. e-mail: revista@sistemasunbosque.edu.co. Both Institutional and individual subscriptions are welcome. Inside Colombia by phone call, outside Colombia besides phone call fax (57 1)625 20 30 or e-mail revista@sistemasunbosque.edu.co. Although all advertising and further contents is expected to conform to ethical standards, inclusion in this publication does not constitute a guarantee or endorsement of the quality or value of such productd or the claims made of it by its manufacturer. No responsibility is assumed by the Publisher for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or form any use or operation of any methods, products, instructions or ideas contained in the material herein.
© De cada texto su Autor. © 2007 Universidad El Bosque Ediciones El Bosque • Transversal 7 B Bis 132-11 PBX: 633 1368 - 633 1320 Fax: 625 2030. Facultad de Ingeniería de Sistemas Tel.: 520 4018 Página web: www.sistemasunbosque.edu.co Link: Revista. e-mail: revista@sistemasunbosque.edu.co Bogotá, D.C., Colombia. ISSN 1692-1399 Diseño de Portada: Andrea Osorio Diagramación: Centro de Diseño • Universidad El Bosque. PBX: 648 9000 Ext.: 311-322 Impresión: Bogotá D.C., Colombia Junio de 2007
Contenido Con este número conmemoramos tres décadas de la fundación de la Universidad El Bosque. Además de su prestigiosa Facultad de Medicina cuenta ahora con más facultades y recono cidos programas de postgrado, comprometidos con la investigación y la producción académica.
Editorial “Posibilidad de la Investigación Académica en Universidades de países en Desarrollo.” Treinta años comprometidos con educación de calidad y alta tecnología para la construcción de un país más competente y competitivo. _________________ Orlando López Cruz.
5
INVESTIGACIONES Y AVANCES Distribución y localización de fragmentos en una base de datos distribuida mediante el uso de algoritmos genéticos. ___________________________________________ Luis Miguel Beltrán Sierra. Juan Carlos Villamizar Perdomo.
Software de planificación para generación dinámica de nodos de un cluster en Linux.
7
19
César Eduardo Guzmán González, IS. Daniel Burbano, McpE.
Diseño del prototipo de un Sistema Multiagente Tutor Virtual. __________________ Edward Alexander Duque Tamayo.
Software para el procesamiento digital de imágenes médicas radiográficas en Java™. ______________________________________________________________
25
43
Jessie Alejandro Palacios Sarmiento.
Sistema experto de predicción de cáncer prostático a través de muestras de sangre por examen de Antígeno Prostático Específico. ______________________________ Andrés Leonardo Corredor Mahecha.
NOTA DE RESPONSABILIDAD La Revista de Tecnología de la Facultad de Ingeniería de Sistemas de la Universidad El Bosque, es una publicación abierta a todas las opiniones e intereses académicos. En ese sentido, la responsabilidad sobre los contenidos del material presentado es de responsabilidad exclusiva de sus autores.
49
INVITACIÓN A ESCRIBIR ARTÍCULOS Desde esta sección la REVISTA DE TECNOLOGÍA hace un llamado a la comunidad a escribir artículos a ser publicados en siguientes números. Una forma de desarrollo de nuestras profesiones es la publicación de documentos que reportan nuestras actividades en algún campo. Son aceptados artículos correspondientes a investigaciones originales e inéditas, revisión de artículos y de productos de software y hardware. Casos de estudio con su soporte teórico, ensayos y artículos en tópicos técnicos, pedagógicos, académicos, administrativo y, en general, material de importancia para el desarrollo de las Ciencias de la Computación y de su interrelación con otras áreas del conocimiento. Los artículos deben ser enviados a la dirección e-mail: revista@sistemasunbosque.edu.co. En el asunto (subject) del mensaje indicar «Artículo para publicar» y como anexo un a rchivo en Microsoft Word, con la s sig uientes características: Los márgenes superior, inferior e izquierdo de 4 cm. El márgen derecho de 3cm. Preferiblemente tipo de letra Arial tamaño 12. Párrafos con interlineado 1.5. En caso de contener gráficos o imágenes, estas deben -además de estar incrustadas en el texto- venir en un archivo aparte anexo. En general, las publicaciones son temas de interés e investigación de los autores, de aspectos de su trabajo o campo de investigación. Se recomienda a los autores acompañar sus archivos con una carta de presentación donde manifiestan que no están considerando publicar el documento en otra revista y cediendo los derechos de autor. Se confirmará recibo de los archivos por el mismo medio. El envío de un manuscrito no obliga a la revista ni la compromete a la publicación. El archivo debe contener las siguientes partes. 1. TÍTULO: Se sugiere un título breve pero a la vez descriptivo. 2. AUTOR: Indicar nombre, apellido. 3. RESUMEN en castellano y ABSTRACT en inglés: en el que en un párrafo (máximo 2 párrafos o 150 palabras) se resume el tema del artículo, se presenta el punto de partida, el punto de finalización (de la investigación, experimento o ejercicio) y una lista de los medios utiliza dos (Tipos de laboratorio, ubicación geográfica, entre otros) cuando aplique.
5. INTRODUCCIÓN: Debe contener los aspectos que motivaron la investigación, los métodos utilizados, el objetivo de la investigación y una breve reseña de los resultados obtenidos. 6. DESARROLLO TEMÁTICO: Es uno o más subtítulos que describen el método utilizado, las referencias a los productos de hardware y software utilizados, el marco teórico, los resultados obtenidos y las restricciones que existieron dentro del tema desarrollado. A partir del título de la Introducción, todos los títulos deben ir numerados consecutivamente en formato arábigo. Si aparecen referencias a las fuentes, estas deben ir en forma consecutiva entre paréntesis cuadrados. Si usa imágenes o fotografías por favor incluir el nombre y la fuente. 7. DISCUSIÓN/CONCLUSIÓN: En esta sección se confrontan los resultados con el marco teórico para establecer coincidencias, diferencias y aspectos sin resolver. En esta sección deben aparecer los puntos que pueden generar nuevas actividades de investigación. Una vez planteada la discusión, enuncie las conclusiones deriva das de las observaciones. Señale las perspectivas futuras que el tema permita explorar en futuras investigaciones. 8. REFERENCIAS: Corresponde a las referencias a libros, publicaciones periódicas e incluso URLs de instituciones en la Web. En este último caso es importante señalar URLs correspondientes a entidades cuya permanencia permita la recuperación de la referencia. La lista debe estar ordenada en forma lexicográfica por autor y precedida de un número arábigo que las enumera a partir del número 1. Este es el número que se anotará como referencia dentro del texto. En esta lista deben aparecer relacionados solamente documentos que hayan sido referenciados dentro del texto del artículo. 9. PRESENTACIÓN DEL AUTOR: En pocas palabras indicar su posición académica, institución a la que está vinculado, profesión, intereses e indicar si ha recibido financiación para realización del trabajo del que se presenta el informe. Para obtener una plantilla con el formato para escribir artículos consulte la página web: Www.sistemasunbosque.edu.co, link: revista, link: formato de artículos.
4. PALABRAS CLAVE: Corresponde a los conceptos clave, llaves de búsqueda que permiten clasificar en forma automática los contenidos del artículo, no más de cinco por favor. ADVERTENCIA: Todos los artículos enviados son evaluados por pares. Por tanto, los autores aceptan explícitamente, con el envío del artículo, que su trabajo solo será publicado si cumple con los OBJETIVOS y ALCANCE de esta Revista, así como con los requisitos formales y políticas editoriales.
Editorial “Posibilidad de la Investigación Académica en Universidades de países en Desarrollo.”
Saudiel O.López Cruz
Treinta años comprometidos con educación de calidad y alta tecnología para la construcción de un país más competente y competitivo.
Cuando Francisco José de Caldas (1768 - 1816), quien fue fusilado en la cúspide de la madurez de su producción científica por el régimen colonial de la corona española en las tierras de la Nueva Granada, adelantó sus investigaciones, no se disponía de elementos tecnológicos avanzados, como los de comienzos del actual siglo XXI, que apoyaran sus agudas observaciones botánicas, astronómicas y geográficas. En el desarrollo de la Expedición Botánica, con la colaboración de intelectuales como Alexander Von Humboldt (1769 - 1859) [5], el sabio Caldas no sólo parece haber tomado en cuenta el contexto histórico, político y cultural sino también tomó cuidado de expresar el conocimiento construido localmente en términos del lenguaje científico vigente. Cabe relatar que el momento histórico del intelectual Caldas estaba dominado por la urgente necesidad de la corona española de reprimir la tendencia de sus colonias -desde finales del siglo XVIII- hacia la búsqueda de una administración autónoma -libre de la permanente y descontextualizada administración peninsular y que se materializó en la fuerte represión militar iconizada en nuestra historiografía por Pablo Morillo [4]. Este escenario dista bastante del sosegado -y hasta despreocupado- medio en el que concebimos, en nuestros imaginarios contemporáneos, lo que debe ser el entorno de trabajo de la investigación científica. Debería ser claro que el investigador académico está inmerso en una realidad temporal concreta que involucra componentes culturales, elementos históricos, características sociales y, por lo menos, un contexto económico. “Para la élite neogranadina la cartografía fue un poderoso instrumento en la realización de proyectos. El conocimiento de las vías de comunicación, por ejemplo, les permitió buscar maneras de integrar las regiones dentro de un orden económico y político”[4]. Es decir, la realidad que experimentó Caldas exhibía una complejidad que no es ajena a ningún intelectual de cualquier punto del planeta o de cualquier momento en la historia, entendiendo por complejidad “la propiedad de un sistema de ser capaz de adoptar un gran número de estados o de comportamientos” [2]. No obstante, un individuo en particular que está sujeto, una vez más, a una realidad compleja- a lo sumo percibe una porción de la dicha realidad a través de construcciones mentales, llamadas modelos, y que sólo incluye una cantidad de variables varios órdenes menor que los que presenta la realidad observada. Desde este punto de vista, la epistemología antecede y determina a la ontología, puesto que declaramos la incapacidad de que un solo observador pueda conformar un modelo exhaustivo de la realidad. Algo así como la generalización del principio de incertidumbre de Werner Karl Heisenberg (1901 -1976), “incluso los modelos de datos sensoriales que nos aportan nuestros órganos de percepción son simplemente construcciones limitadas por el aparato fisiológico que los produce” [2]. Por tanto, la observación -de la cual provienen los modelos- es un fenómeno eminentemente subjetivo, por lo cual no se puede predicar sobre la bondad sino sobre la utilidad de un modelo. Esto permite explicar por qué las investigaciones académicas realizadas por intelectuales foráneos u organismos extranjeros pueden tener una utilidad restringida o distinta a la que representaría una investigación efectuada por observadores locales o involucrados en el contexto específico. También permite
6
Universidad El Bosque - Facultad de Ingeniería de Sistemas
explicar por qué un fenómeno tipificado o nombrado de la misma manera -pero sucede en distintos lugares geográficos- es observado de distinta manera. Por ejemplo, el desplazamiento forzado en Colombia es distinto al desplazamiento forzado en países del oriente próximo, sin desconocer que es posible hallar características en común. En consecuencia, la investigación académica en países en desarrollo no sólo es válida sino necesaria. Y no sólo es necesaria sino posible. Dicha posibilidad se concreta evitando la trampa de la autocensura [3] orientando los esfuerzos al cuestionamiento sobre la coherencia y consistencia del modelo de la realidad observada. La enorme variedad del ejercicio epistemológico puede atenuarse mediante el trabajo académico en equipo, asunto este que no es una novedad del siglo XX, pues ya Caldas lo hacía: “Los mapas de Caldas -como los de cualquier cartógrafo- no pueden ser el resultado exclusivo de sus propias observaciones; era necesario que trabajara sobre cartas, tablas astronómicas y mediciones anteriores” [6], y desde la academia actual -que es lo que nos preocupa de inmediato, pero no es lo único que nos debe ocupar- la investigación debe incluir al estudiante, mas no como aprendiz pasivo, sino como co-gestor principiante de resultados académicos. Sólo que este cambio de frente no empieza en el estudiante sino que el profesor de educación superior debe asumir una posición crítica frente al conservadurismo pedagógico, que es indiferente al fracaso académico, para revertir los efectos negativos, “la monótona uniformidad de la enseñanza que suelen implementar muchos profesores universitarios para todos los grupos posibles termina convirtiéndose en una pedagogía rígida plena de poderes y controles explícitos. Esta perspectiva va, generalmente, acompañada de un desinterés por los problemas académicos y personales de los estudiantes por tratarse éstos de historias ajenas en su quehacer” [1]. Un camino posible y vinculante, que además concuerda con la perspectiva epistemológica antes citada, es que cada docente lidere una propuesta de investigación -necesariamente enmarcada en sesgos sociales, históricos, políticos y económicos- en la que se recorra una trayectoria en compañía de estudiantes, no sólo en trabajos de grado o proyectos de graduación sino -especialmente- desde su asignatura, desde el desarrollo de su materia a cargo, como integrantes de un grupo de investigación de su Facultad, asumiéndolo como una vocación: “Cuando la sabiduría entre en tu corazón y la ciencia fuere grata a tu alma, la prudencia vigilará sobre ti, la inteligencia te custodiará para librarte del mal camino” (Proverbios 2:10-12). Quizás hoy no estemos mucho mejor que el sabio Caldas, en lo que respecta a los contextos políticos, pero en cambio contamos con la experiencia que recorrió aquel magno intelectual que -tal vez- nos dice con su vida que la única forma de investigar en un país en desarrollo es emprender el camino de la investigación dentro de las restricciones de la realidad inmediata perceptible -o de la comprensión de ella-, como lo hicieron los fundadores de la Universidad El Bosque hace treinta años, visionarios y pioneros de la educación de alta calidad unida a la tecnología de distintos frentes que permite brindar un aporte real para la conformación de un país más competente y competitivo.
Saudiel O. López Cruz Director e-mail: orlandolopez@sistemasunbosque.edu.co
REFERENCIAS [1] DIAZ VILLA, Mario, (2000), La formación de profesores en la educación superior colombiana: Problemas, conceptos, políticas y estrategias, Instituto Colombiano para el Fomento de la Educación Superior ICFES, Bogotá. [2] ESPINOSA, Ángela, (2001), Una visión cibernética de las organizaciones sociales, en: Andrade Hugo, Dyner Isaac, Espinosa Ángela, López, Hernán, Sotaquirá, Ricardo, Pensamiento Sistémico: Diversidad en búsqueda de Unidad, Ed. Universidad Industrial de Santander UIS, Bucaramanga, pp.99-168. [3] LÓPEZ CRUZ, Orlando, (2004), La investigación como agente de renovación de paradigmas, en Revista de Tecnología, Vol.3, No.3, Enero a Junio de 2.004, Universidad El Bosque, Bogotá, pp.53-57. [4] LÓPEZ JERÉZ, Mabel Paola, (2007), Aparecen los mapas ocultos de Caldas, en Nota Uniandina, No. 21, Abril de 2.007, Universidad de los Andes, Bogotá, pp.50-53. [5] NIETO OLARTE, Mauricio, (2006), Remedios para el imperio, 2ª.ed., Ed. Uniandes, Bogotá. [6] NIETO OLARTE, Mauricio, (2007), Orden natural y orden social, Ed. Uniandes, Bogotá.
Distribución y localización de fragmentos en una base de datos distribuida mediante el uso de algoritmos genéticos Luis Miguel Beltrán Sierra Juan Carlos Villamizar Perdomo
Resumen
Abstract
La distribución óptima de fragmentos en un sistema de datos distribuido o base de datos distribuida constituye un problema. Este tipo de problema, dada su complejidad computacional (tiempo de computación) no puede ser t rat ado con méto dos de prog ramación lineal convencionales.
The optimal fragment distribution in a data system distributed or distributed database represents a problem. This kind of problem, given its computational complexity (time of computation) cannot be treated with conventional methods of linear programming.
En este artículo se muestra una aproximación a su solución mediante el uso de técnicas metaheurísticas, en concreto, algoritmos genéticos. Se parte del análisis de las variables implícitas en el problema, se deduce luego un modelo matemático para la estimación de costos de una distribución, el cual converge en una función de costos. Se diseña y programa un algoritmo genético que, tomando la información del sistema y evaluando la función de costos, encuentre las distribuciones que resulten más económicas. Pa l a b r a s c l a v e s : A lg o r i t m o , C o m p l e j i d a d Computacional, Máquina de Turing, Problema Tipo, Metaheurísticas, Computación Evolutiva, Algoritmo Genético, Fragmentación.
In this article is shown an approach to the solution to this problem by means of metaheurístics techniques, in particular, genetic algorithms. It begins with the analysis of the implicit variables in the problem; the mathematical model is deduced for the estimation of costs of a distribution that converges in a function of cost. A genetic algorithm is designed and programmed to taking the information from the system and evaluate the function of costs, finding the distributions that are more economical. Key words: Algorithm, Computational Complexy, Turing Machine, Problem Type, Metaeuristhics, Evolutive Computation, Genetic Algorithm, Fragmentation.
8
Universidad El Bosque - Facultad de Ingeniería de Sistemas
I. INTRODUCCIÓN Hasta hace unos 30 años se pensaba que todos o al menos la mayoría de problemas prácticos de optimización podían ser resueltas con la programación lineal [4], pero lamentablemente esa no es la realidad. Más aún, si se piensa en los problemas reales que suelen ser de interés, para los cuales el objetivo es encontrar la solución que optimiza algún tipo de criterio (por ejemplo, la que da lugar al menor costo bajo determinadas circunstancias) la situación es justamente la opuesta: tan sólo una pequeña parte de ellos pueden ser resueltos. En tales circunstancias los métodos heurísticos están adquiriendo cada vez mayor importancia. Dentro de las técnicas heurísticas, la computación evolutiva ha sido una de las herramientas más potentes y eficientes. Esta plantea los problemas de búsqueda y optimización bajo un enfoque evolutivo, basado inicialmente y a grandes rasgos en la teoría de la evolución de las especies elaborada por Darwin. De forma general, estos algoritmos realizan una búsqueda estocástica guiada, basándose en la evolución reiterada de un conjunto de estructuras y la selección de las más adecuadas (aptas) en cada ciclo. Estas técnicas pueden ser clasificadas en tres categorías principales: Los algoritmos genéticos (AG), las estrategias evolutivas (EE) y la programación evolutiva (PE). [1] [2] La distribución óptima de fragmentos de información de una base de datos o sistema de datos distribuido en una red de sitios o nodos cae en la categoría de problemas de optimización combinatoria, para los cuales, desde el punto de vista computacional no existe (o al menos no se conoce hasta ahora) una algoritmo polinomial de resolución, lo que obliga al uso de técnicas heurísticas para su solución. En este artículo se hace una descripción de una aproximación a dicha solución con el uso de los algoritmos genéticos. II. ALGORITMOS GENÉTICOS Forman parte de los métodos inspirados en la naturaleza y parte de la premisa de que la naturaleza siempre busca las soluciones óptimas a sus problemas, razón muy válida para querer imitar sus procesos. En el caso de los algoritmos genéticos lo que se imita es el mismo proceso de evolución. La evolución es el resultado de la interacción de pro cesos esto c á st icos (Reproducción, mutación, selección) actuando sobre una población, generación tras generación. La evolución de las especies da como resultado especies cada vez mejor adaptadas a su medio ambiente. El mejor individuo (el más adaptado, el más fuerte), tiene una mayor probabilidad de sobrevivir y de reproducirse (se
alimenta mejor, gana peleas). Los padres pasan información genética a sus descendientes entre la que se encuentra la que le permitió ser uno de los mejor adaptados. Los Algoritmos Genéticos [1] (GA) fueron introducidos por John Holland en 1970, quien manejó el principio Darwiniano de la evolución de las especies y la genética, para el desarrollo de sus proyectos de optimización, estos se definen como: “Algoritmos probabilísticos que ofrecen un mecanismo de búsqueda paralela y adaptativa basada en el principio de supervivencia de los más aptos y en la reproducción de los mismos” [1]. Poco tiempo después, Holland comenzó a analizar los sistemas de desarrollo de algoritmos genéticos, lo cual le permitió plantear satisfactoriamente los objetivos de lo que vendría a ser su investigación. Estos objetivos fueron los siguientes: • Imitar los procesos adaptativos de los sistemas naturales. • Diseñar sistemas artificiales (normalmente Algoritmos) que retengan los mecanismos importantes de los sistemas naturales. Partiendo de los objetivos anteriormente mencionados, concluyó que la evolución tenía lugar en los cromosomas, en donde estaba codificada la información del ser vivo y que esta variaba de una generación a otra. Determinó que en el proceso de formación de un nuevo individuo, se combinaban las informaciones cromosómicas de los progenitores, aunque la forma exacta en que se realizaba este procedimiento era desconocido para él. Aunque muchos aspectos están todavía por discernir, existen unos principios generales ampliamente aceptados por la comunidad científica. De acuerdo con la teoría de C. Darwin, el principio de selección privilegia los individuos más aptos con mayor longevidad y, por lo tanto, con mayor probabilidad de reproducción, además los individuos con más descendentes tienen más opor tunidades de transmitir sus códigos genéticos en las próximas generaciones, tales códigos genéticos constituyen la identidad de cada individuo y están representados en los cromosomas. En términos generales se trata de procesos iterativos que, en cada etapa, mantienen una población de soluciones candidatas que satisfacen las restricciones de un problema. En cada etapa, a partir de la población actual, una nueva generación de soluciones es formada usando un conjunto de operadores, dentro de los cuales los tres más importantes son la selección, el cruce y la mutación. A continuación se describen cada uno de ellos:
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
• Selección: Consiste en seleccionar aleatoria o heurísticamente un subconjunto de elementos de la población, con base en un factor cuantitativo de calidad del elemento (denomina función de evaluación).[3] • Cruce: Consiste en seleccionar pares de elementos o soluciones para ser combinados entre sí, generando nuevos elementos que mantienen, por lo tanto, características de cada uno de los progenitores. En él esta combinación debe ser realizada teniendo en cuenta el dominio del problema, es decir, generando nuevos elementos que de por sí también constituyen soluciones factibles. En teoría, este proceso daría mejores hijos, pero si se pasaran las características tal cual, llegaría un momento de estado estable donde todos tendrían la misma información. Es en este punto donde entra la mutación para introducir características diferentes que pueden ser mejores o peores. • Mutación: Consiste en que el operador de mutación crea nuevos elementos produciendo pequeñas alteraciones en algunos de los elementos generados en la etapa anterior. • Elitismo: Este procedimiento consiste en escoger el mejor elemento de la población actual y pasarlo sin modificación alguna a la siguiente generación. Para llevar a la práctica los conceptos anteriores, se debe realizar un análisis detallado tanto del la representación del problema como de las operaciones a utilizar. Por ello, al aplicar un algoritmo genético para resolver un problema de asignación, el primer análisis que se debe hacer es tratar de codificar dicho problema en un cromosoma artificial. Los cromosomas artificiales pueden ser cadenas de unos y ceros, listas de parámetros o hasta códigos complejos.
secuencia de poblaciones que esperanzadamente contendrán más y mejores soluciones para el problema en cuestión. Existe una amplia variedad de operadores utilizados en un algoritmo genético, pero en general son selección, cruce y mutación. El operador de selección aporta mayor supervivencia a los mejores individuos y los operadores de cruce y mutación aportan mayor diversidad a la población. Se dice que los algoritmos genéticos son métodos de búsqueda ciega debido a que estos no disponen de más información del problema a resolver que aquella obtenida de la función objetivo empleada. Como fue mencionado, el proceso comienza con la generación aleatoria de un conjunto de soluciones o población inicial (N individuos). Cada una de estas soluciones (individuo) esta codificada mediante una cadena de longitud finita que la hace corresponder con un punto del dominio del problema. Estableciendo la analogía natural, cada cadena sería un cromosoma y cada elemento de la cadena un gen. Dichos cromosomas representan “algo” que al usuario le interesa. El usuario debe codificar ese “algo” (por ejemplo, en una cadena de bits) y saber que representa cada uno de dichos cromosomas. La figura 1 representa a un individuo en términos generales, no se especifica qué representa cada cromosoma o cada gen:
Figura 1. Representación de un individuo. Otro componente que se debe tener en cuenta, es el procedimiento o los medios para discriminar las soluciones buenas de las malas, este proceso lo logra una función de evaluación, que será usada por el Algoritmo Genético para guiar la evolución de las generaciones futuras. Una vez codificado el problema de manera cromosómica y teniendo los medios para discriminar las buenas soluciones de las malas, se está en condiciones de evolucionar soluciones para el problema mediante la creación de una población inicial de soluciones posibles. Esta población puede ser creada aleatoriamente o utilizando algún conocimiento previo de buenas soluciones posibles. Generada la población inicial, los operadores genéticos procesan la población iterativamente para crear una
La transformación de los individuos de cada generación se lleva acabo mediante la definición de una serie de operadores genéticos, los más habituales son la selección, el cruce y la mutación, como puede apreciarse en la figura 2. Mediante la aplicación de estos operadores sobre los cromosomas de diferentes miembros de la población, es CRUCE
1 0 1 0 1 1
1 0 1 0 0 0
0 0 1 1 0 0
0 0 1 1 1 1
Padres
Mutación
0 1 1 1 0 0
Antes
0 1 0 1 0 0
Después
Figura 2. Cruce y mutación.
Hijos
9
10
Universidad El Bosque - Facultad de Ingeniería de Sistemas
El proceso se repite hasta que algún individuo alcanza un valor prefijado del nivel de adaptación, el algoritmo converge, o simplemente hasta que el número de iteraciones llega a un valor predeterminado. La Figura 3 representa dicho proceso.
a través de una red. Los procesadores de un sistema distribuido pueden variar en cuanto su tamaño y función. Pueden incluir microcomputadores pequeños, estaciones de trabajo y sistemas de computadores grandes de aplicación general. Estos procesadores reciben diferentes nombres, tales como localidades, nodos o computadores.
Estructura de un algoritmo genético La estructura de un algoritmo genético se representa mediante la siguiente secuencia de acciones: Crear y evaluar la población inicial de cromosomas Hacer Seleccionar y reproducir dos cromosomas Selección, cruce, mutación
El medio ambiente típico de un SMBDD consiste de un conjunto de sitios o nodos los cuales tiene un sistema de procesamiento de datos completo que incluye una base de datos local, un sistema de manejo de bases de datos y facilidades de comunicaciones. Si los diferentes sitios pueden estar geográficamente dispersos, entonces, ellos están interconectados por una red de tipo WAN. Por otro lado, si los sitios están localizados en diferentes edificios o depar tamentos de una misma organización pero geográficamente en la misma ubicación, entonces, están conectados por una red local (LAN) (Figura 4).
Evaluar el fitness del nuevo hijo Bogotá
Sustituir generación
Evaluación de los hijos
f( )
Cromosoma Palabra Aptitud A 100100 1296 B 010010 324 C 010110 484 D 000001 1
Cali
Manizales
Hasta cumplir criterio de terminación
Red de Comunicaciones
Padres
Medellín
Barranquilla
Evolución
Figura 4. Un medio ambiente distribuido para bases de datos. Hijos
Reproducción
Figura 3. Ciclo de un algoritmo genético III. BASES DE DATOS DISTRIBUIDAS A. Generalidades Una base de datos distribuida o sistema distribuido de bases de datos consiste en un conjunto de localidades, cada uno de las cuales puede participar en la ejecución de transacciones que accedan a datos de una o varias localidades. La diferencia principal entre los sistemas de base de datos centralizados y distribuidos es que, en los primeros, los datos residen en una sola localidad, mientras que, en los últimos, se encuentran en varias localidades [5]. En un sistema de base de datos distribuida, los datos se almacenan en varios computadores comunicados entre sí
B. Factores a considerar en la construcción de una BDD Existen varios factores relacionados a la construcción de bases de datos distribuidas que no se presentan en bases de datos centralizadas. Entre los más importantes se encuentran los siguientes: el diseño, el procesamiento de las consultas, el control de concurrencia, la confiabilidad y la transparencia.1 El diseño de las bases de datos centralizadas contempla los dos puntos siguientes: 2 • Diseño del "esquema conceptual" el cual describe la base de datos integrada (esto es, todos los datos que son utilizados por las aplicaciones que tienen acceso a las bases de datos). 1 Bell, D.; Germson, J. "Distributed Database Systems". Addison Wesley, 1992 2 Ceri, S.; Pelagatti, G. "Distributed Database. Principles and Systems". Mc.GrawHill, 1985
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
• Diseño "físico de la base de datos", esto es, mapear el esquema conceptual a las áreas de almacenamiento y determinar los métodos de acceso a las bases de datos. En el caso de las bases de datos distribuidas se tienen que considerar además los dos problemas siguientes: • Diseño de la fragmentación, este se determina por la forma en que las relaciones globales se subdividen en fragmentos horizontales, verticales o mixtos. • Diseño de la asignación de los fragmentos, esto se determina en la forma en que los fragmentos se mapean a las imágenes físicas, en esta forma, también se determina la solicitud de fragmentos. IV. EL PROBLEMA Las dos primeras fases del diseño corresponden en realidad al trabajo que se debe efectuar sobre cualquier base de datos por lo que su desarrollo teórico o conceptual esta bien determinado y no constituye actualmente un problema. La tercera fase correspondiente a la fragmentación de las relaciones o tablas, también está actualmente bien sustentada, toda vez que se han desarrollado y demostrado los fundamentos teóricos matemáticos que sustentan en forma eficiente dicho proceso. Sin embargo, es en la cuarta y última fase donde radica el problema alrededor del cual se desarrolla este artículo, por cuanto, una vez hechos los fragmentos y sus réplicas, se debe enfrentar la cuestión de cómo distribuirlos en la red de modo que dicha distribución resulte lo más eficiente posible, entendiendo como eficiente el hecho de que cumpla con todos los requerimientos del sistema al menor costo posible, esto es, que dicha distribución resulte óptima. Se puede deducir entonces que se trata de un problema de optimización. El estudio de los problemas que caen en dicha categoría se inicio en los años 40 alrededor de situaciones que exigían una adecuada distribución y uso de recursos tales como personal, tiempo, presupuesto, máquinas, distancias, etc., donde tanto las funciones matemáticas como las restricciones son lineales. Surgió entonces alrededor de estos problemas, la investigación operativa y la programación lineal como sustento matemático. Esta funciona bien cuando el espacio de búsqueda es relativamente pequeño; pero cuando es del orden de millones de posibilidades, aunque podría hacerlo, su tiempo de respuesta tiempo de cómputo es excesivamente la rgo aún pa ra g randes sup er computadores.
Existe además dentro del campo de la optimización un tipo de problema que implica probar todas las combinaciones posibles para obtener la respuesta óptima, se denominan problemas de optimización combinatoria, el problema alrededor del cual gira este trabajo cae en ese dominio y es un problema complejo desde el punto de vista computacional, se ha caracterizado este tipo de problema desde el punto de vista matemático como clase NP No Polinomial en el sentido que, al crecer la complejidad, esto es, al aumentar las posibilidades de combinaciones, su tiempo de búsqueda de solución óptima no crece en relación polinomial sino exponencial. Dada la dificultad práctica para resolver los problemas de tipo combinatorio y la necesidad de ofrecer alguna solución, empezaron a formularse en principio una serie de algoritmos que proporcionan soluciones factibles, las cuales, aunque no optimizan la función objetivo, se supone que al menos se acercan al valor óptimo en un tiempo de cálculo razonable, por lo que se podrían llamar soluciones satisfactorias. Este tipo de algoritmos se denominan metaheurísticas. Las principales técnicas metaheurísticas en la actualidad son: recocido simulado, algoritmos genéticos, búsqueda tabú, GRASP (Greedy Randomized Adaptive Search Procedures) y redes neuronales. V. APROXIMACIÓN A LA SOLUCIÓN DEL PROBLEMA A. Deducción del modelo de costos Supongamos que hay un conjunto de fragmentos F = {F1, F2, ..., Fn }y una red que consiste de los sitios S = {S1, S2, ..., Sm } en los cuales un conjunto de consultas Q = {q1, q2, ..., qq }se van a ejecutar. En la fase de asignación se necesita conocer información cuantitativa relativa a la base de datos, las aplicaciones que se utilizarán, la red de comunicaciones, las capacidades de procesamiento y de almacenamiento de cada nodo en la red. • Requerimientos de información En la fase de asignación se necesita conocer información cuantitativa relativa a la base de datos, las aplicaciones que se utilizarán, la red de comunicaciones, las capacidades de procesamiento y de almacenamiento de cada nodo en la red. Información sobre la base de datos. Es necesario conocer la selectividad de un fragmento Fj con respecto a una consulta qi, esto es, el número de tuplas de Fj que será necesario accesar para procesar qi. Este valor se denota como sel( Fj ). Así también, es necesario conocer el tamaño de cada fragmento, el cual está dado por:
11
12
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Size(Fj ) = card( Fj ) * length( Fj ) Donde length( Fj ) es la longitud en Bytes de una tupla del fragmento Fj . Información sobre las aplicaciones. Las dos medidas mas importantes a tener en cuenta son el número de accesos de lectura que una consulta qi hace a un fragmento Fj durante su ejecución (denotada por RRij) y el número de accesos de actualización que dicha consulta haga a dicho fragmento (denotada por URij). Es necesario distinguir el número de lecturas que una consulta q j hace a un fragmento Fj durante su ejecución, del número de escrituras. Se requiere de una matriz que indique que consultas actualizan cuales fragmentos. Una matriz similar se necesita para indicar las lecturas de consultas a fragmentos. Por tanto, se requiere definir dos matrices RM y UM con elementos rij y uij, respectivamente, los cuales se especifican de la siguiente manera:
rij =
En la práctica dicho costo sobre el frame se define en función de un conjunto de variables que en términos generales podrían ser: la velocidad de comunicación la cual implica a su vez la capacidad del canal, la distancia entre sitios, el tipo de protocolo y el medio de transporte-, el tiempo de latencia en la comunicación y la cantidad de trabajo adicional a realizar para una comunicación. • Modelo de localización El modelo de localización debe responder a la siguiente forma: min (Costo Total) Sujeto a -Restricciones en el tiempo de respuesta -Restricciones en las capacidades de almacenamiento -Restricciones en el tiempo de procesamiento
1 si la consulta qi recupera desde el fragmento Fj 0 si la consulta qi NO recupera desde el fragmento Fj
uij =
frame entre dos nodos Si y Sj y fsize como el tamaño del frame en bytes. En el caso particular de este trabajo se asumirá fsize = 1 Byte.
1 si la consulta qi actualiza el fragmento Fj 0 si la consulta qi NO actualiza el fragmento Fj
A continuación se tratará de ampliar las componentes de este modelo. Se define la variable de decisión xij de la siguiente manera:
xij =
1 si el fragmento Fj es almacenado en el nodo Sj 0 en otro caso
Además, se necesita saber cual es el nodo de la red que origina cada consulta. Por tanto, se requiere definir un vector O con valores o(i), donde o(i) especifica cual es el nodo de la red que origina cada consulta. Finalmente, para definir la restricción de tiempo de respuesta, un máximo tiempo de respuesta permisible en cada aplicación debe ser definido. Información sobre cada nodo de la red. Para cada nodo es ne ces a r io cono cer sus c apacidades t a nto de almacenamiento como de proceso. Ya sean calculadas mediante algún tipo de función o por simple estimación. Las medidas utilizadas son el costo unitario de almacenamiento de datos en un nodo y el costo unitario de procesamiento de datos en un nodo. El costo unitario de almacenamiento de datos en un nodo Sk se denota como USCk y el costo unitario de procesamiento de datos en un nodo Sk se denota como LPCk. Información sobre la red de comunicaciones. Asumimos en nuestro modelo una red simple donde el costo de comunicación es definido en términos de un frame de datos. Por tanto gij denotará el costo de comunicación por
La función de costo total tiene dos componentes: procesamiento de consultas y almacenamiento. Así, puede ser expresado de la siguiente forma:
TOC =
∑QPC + ∑ ∑STC
∀qi ∈Q
i
(1)
∀s k ∈S ∀F j ∈F
jk
Donde QPCi es el costo de procesamiento de la consulta qi, y STCjk es el costo de almacenar el fragmento Fj en el nodo Sk. El costo de almacenamiento se puede expresar como: STCjk = USCk * size( Fj ) * xjk (2) Donde USCk es el costo de almacenamiento unitario en el nodo Sk. El costo de procesamiento de una consulta tiene dos componentes: el costo de procesamiento y el costo de transmisión. Esto se puede expresar como:
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
QPCi = PCi + TCi (3)
TCU i =
La componente de procesamiento involucra tres factores: el costo acceso (AC), el costo de mantenimiento de la integridad (IE) y el costo debido al control de concurrencia (CC). Así podemos expresar:
La especificación detallada de cada uno de esos factores de costo depende del algoritmo utilizado para realizar estas tareas. Sin embargo, el costo de acceso se puede especificar con algún detalle:
∑ ∑(u *UR +r *RR )*LPC *x
∀Sk∈S ∀Fj∈F
ij
ij
ij
ij
∀S k ∈S ∀F j ∈F
∑ ∑u
∀S k ∈S ∀F j ∈ F
ij
* g o (i ), k * x jk +
ij
* g k , o(i ) * x jk (7)
PCi = ACi + IEi + CCi (4)
ACi =
∑ ∑u
k
Donde la primera componente de la suma representa el envío del mensaje de actualización de qi desde el nodo de origen o(i) a todas las réplicas de fragmentos que requieran ser actualizadas y la segunda componente es para la confirmación. La componente de recuperación o consulta la función de transmisión es:
jk
TCR
i
(5) El término entre paréntesis es el total de actualizaciones y lecturas realizadas por la consulta qi en el fragmento Fj, y LPCk es el costo unitario de procesamiento local, en Sk, de una unidad de trabajo. Los costos del mantenimiento de la integridad y del control de concurrencia pueden ser, o bien estimados con base en la experiencia o calculados similarmente al costo de acceso pero para ello se requiere un estudio juicioso sobre los métodos de concurrencia y chequeo de integridad que abarcan varios capítulos de un texto sobre diseño y administración de sistemas de bases datos distribuidas. En nuestro modelo simple los omitiremos. Respecto a la componente de transmisión (TCi), ésta puede separarse en el procesamiento de actualizaciones y de consultas (lecturas): TCi = TCUi + TCRi (6) Dado que los tiempos de procesamiento para ellas son completamente diferentes. En las actualizaciones, es necesario informar a todos los nodos con réplicas, mientras que en las lecturas o consultas, es suficiente con accesar solo una de las copias. Más aún, al final de una solicitud de actualización, no existe una transmisión de datos de regreso más que un mensaje de confirmación, mientras que una consulta puede resultar una transmisión significativa de datos. La componente de actualizaciones de la función de transmisión es:
r ij * g
=
∑ min
∀ F j∈ F
k ,o ( i )
*
sel
(u
Sk∈S i j
ij
* length fsize
* g
* x
o ( i ), k
(F j )
* x
+
jk
jk
)
(8) El primer término representa el costo de transmitir la solicitud de consulta a aquellos nodos que contienen copias de los fragmentos que necesitan ser accesados. El segundo término toma en cuenta la transmisión de los resultados de esos nodos al nodo de origen. La ecuación sólo considera de entre los nodos con copias del mismo fragmento, solo el nodo que produce el costo mínimo de transmisión. • Restricciones Las funciones de restricción se pueden especificar con un detalle similar a la función de costo total. Sin embargo, en lugar de describir tales funciones con profundidad, se indicará simplemente cual es su forma general. * La restricción del tiempo de respuesta se debe especificar como: Tiempo de ejecución de qi máximo tiempo de respuesta de qi , ∀qi ∈ Q * La restricción de almacenamiento se puede especificar como: que la capacidad de jk a lmac ena m iento del ∀F j ∈F nodo
∑ STC
≤
S k , ∀S k ∈ S
13
14
Universidad El Bosque - Facultad de Ingeniería de Sistemas
lpc[ ]]:Vector de costo unitario de proceso sel[ ][ ]]: Matriz de selectividad de los fragmentos len[ ]]:Vector de longitud de tuplas size[ ]]:Vector de tamaño de Fragmento
* La restricción del tiempo de procesamiento es:
∑
carga de procesamiento de qi en Sk capacidad de almacenamiento del nodo
∀qi ∈Q
S
k
, ∀
S
∈
k
• Variables del Algoritmo genético
S
Esto completa nuestro análisis para obtener un modelo aproximado al problema de localización de fragmentos y réplicas en una red, el modelo podrá ser considerado completo cuando se le agreguen las componentes referentes al control de concurrencia y el mantenimiento de la integridad pero como se mencionó su estudio esta fuera del objetivo de este trabajo y por ahora no se asumen o se utilizarán costos estimados teóricamente.
procruce procruce: Probabilidad de cruce promutación promutación: Probabilidad de mutación tamp tamp: Tamaño de la población numgen numgen: Número de Generaciones
• Diagramas de flujo Generales
El modelo de costos, función final de Costos, función objetivo o desde el punto de vista del algoritmo genético, Función para Evaluación queda por tanto expresado de la siguiente forma:
Inicio No
TOC =
∑[ ∑ ∑(u
∀qi∈Q ∀Sk ∈S ∀Fj∈F
∑ ∑u
∀Sk ∈S ∀Fj ∈F
ij
∑
S k ∈S
∑u
∀Sk ∈S ∀Fj ∈F
ij
ij
* g o (i ),k * x jk + rij * g k ,o (i ) *
∑
USC
∀sk ∈ S ∀F j∈ F
Nuevo
*URij + rij * RRij ) * LPCk * x jk +
* go(i),k * x jk + ∑
∑ min(u
∀F j ∈F
ij
k
* gk,o(i) * x jk * x jk ) + seli j * length( F j )
* size(
fsize
Fj ) * x
]+
jk
Parámetros Generales Variables problema
Configuración del sistema Cargar Datos
(9) B. Planteamiento del algoritmo • Parámetros generales
Algoritmo Genéticos
m: Numero de sitios o nodos de la red n: Número de fragmentos r: Número de consultas
No ¿Sale?
• Variables del problema Um[ ][ ]]:Matriz de decisión de actualización rm[ ]]:Matriz de decisión de lectura x[ ][ ]]:Matriz de individuo o[ ]]:Vector de orígenes de las consultas g[ ][ ]]:Matriz costos de transmisión ur[ ][ ]]:Matriz de frecuencias de actualización rr[ ][ ]]:Matriz de frecuencias de lectura
Fin
Figura 5.Diagrama General
Archivos Datos
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
• Pseudocódigo de funciones
Algoritmo Genético
Definir vector mejores [ ]
Población Inicial
i<=0; generaciones; 1
Evaluación
Sacar mejor individuo
Agregar mejor a mejores [ ]
Aptitud
Selección
Cruce
Cambio Generación
Mejor individuo, costo
Fin Figura 6.Diagrama Algoritmo Genético
Función población inicial Definir vector Población Para jj=0 hasta tamp Definir vector individuo Para ii=0 hasta m*n Generar aleatorio entre 0-1 Agregar aleatorio a vector individuo Siguiente i Agregar vector individuo a Población Siguiente j Fin Función Función evaluación Definir ct=0; //Costo total Para ii=0 hasta r ct = ct+Función Costo de proceso (i)+ Función Costo de Transmisión (i) Siguiente i ct=ct +Función Costo Almacenamiento Definir suma=0; //Penalización si no ubica fragmento Para ii=0 hasta n Definir suma2=0; Para jj=0 hasta m Si x[i][j] 0 suma2=suma2+1 Fin Si Si suma2=0 suma=suma+1 Fin Si Siguiente j Siguiente i Ct=ct*(1+2*suma) // Incrementa el costo para que no entre en los mejores Retornar ct Fin Función Función aptitud // Calcula y guarda las aptitudes de todos los individuos Definir vector aptitudes Definir suma A=0 // Suma total de Aptitudes Para ii=0 hasta tamaño del vector evaluaciones aptitud= mayor - iésimo elemento de evaluaciones Agregar aptitud al vector de aptitudes SumaA=sumaA+aptitud Siguiente i Fin Función Función selección // selecciona a los padres más aptos Definir suma1, suma2 Definir vector padres//contendrá los padres seleccionados Para ii=0 hasta tamp uno=aleatorio entre 1- SumaA Suma1=0; Para j=0 hasta tamp val=iésimo elemento del vector aptitudes Si val 0 suma2=suma1 suma1=suma1+val Si suma1=uno=suma2 posición=j; Salir de ciclo j Fin Si Fin Si Siguiente j Padre=Extraer elemento en posición posición del vector Población Agregar padre a vector padres Siguiente i Fin Función
15
16
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Función Cruce Definir vectores hijo1, hijo2, nueva generación Para ii=0 hasta tamp Step 2 pc=aleatorio entre 0 y 100 // probabilidad de cruce Si pc 100-procruce // Hay cruce Posini= (aleatorio entre 0 y m*n) +1 // posición inicio cruce Definir vectores hijo11, hijo22 hijo1=iésimo elemento del vector padres hijo2= iésimo+1 elemento del vector padres Para jj=0 hasta posini val1= jésimo elemento del vector hijo1 Val2= jésimo elemento del vector hijo2 Agregar val1 a hijo11 Agregar val2 a hijo22 Siguiente j Para jj=posini hasta n*m val1= jésimo elemento del vector hijo1 val2= jésimo elemento del vector hijo2 Agregar val1 a hijo11 Agregar val2 a hijo22 Siguiente j hijo1= llamar función mutación (hijo11) hijo2= llamar función mutación (hijo22) Agregar hijo1 al vector nueva generación Agregar hijo2 al vector nueva generación Si no // No hay cruce hijo1= iésimo elemento del vector padres hijo2= iésimo+1 elemento del vector padres Agregar hijo1 al vector nueva generación Agregar hijo2 al vector nueva generación Fin Si Siguiente i Fin Función Función cambio Generación Definir vector población // Para nueva generación Para ii=0 hasta tamaño del vector nueva generación Agregar elemento iésimo del vector nueva generación al vector Población Siguiente i Fin Función
Se programó tanto el algoritmo como la función de evaluación (modelo de costos) en Java de modo que permitirá construir cualquier configuración de red para hacer la simulación. C. Pruebas Para comprobar la eficiencia del algor itmo se desarrollaron algunas pruebas, se extraen las más significativas para mostrar en este artículo. Tabla1. Datos prueba 1
PRUEBA 1 Tiempos de respuesta (Segundos) 800MHz 1.6GHz 3.2 GHz 3 2 1 N F Q P G PC PM 3 3 3 50 50 98 2
Figura 7. Pantalla captura datos
Figura 8. Resultados Prueba 1
En este caso, la probabilidad de mutación es baja por lo que se observa una estabilidad en los costos de cada generación, tendiendo a ser constante en cada corrida como a lo largo de todas las corridas. Por otra parte, tanto el número de nodos como de fragmentos y consultas es realidad muy bajo para considerarlo un problema real, las posibles soluciones (combinaciones) también son muy pocas por lo que no se puede apreciar la potencia y eficacia del algoritmo.
Tabla 2. Datos prueba 2
PRUEBA 2 Tiempos de respuesta (Segundos) 800MHz 1.6GHz 3.2 GHz 5 3 2 N F Q P G PC PM 5 5 5 50 50 98 5
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Se observa que si aumentamos el número de generaciones la eficiencia del algoritmo es mucho mayor por cuanto encuentra mucho mas rápido soluciones más económicas. Tabla 4. Datos prueba4
PRUEBA 4 Tiempos de respuesta (Segundos) 800MHz 1.6GHz 3.2 GHz 43 22 15 N F Q P G PC PM 10 10 10 50 1000 98 5 Figura 9. Resultados Prueba 2 Se observa que si aumentamos la probabilidad de mutación el algoritmo encuentra mejores soluciones de manera más rápida, es decir en menos corridas, por cuanto si la mutación es baja, las soluciones tienden a ser siempre las mismas. En este caso particular en 4 corridas logra bajar el costo de la solución inicial aleatoria propuesta de 1639812 a 1024986
Tabla3. Datos prueba 3 PRUEBA 3 Tiempos de respuesta (Segundos) 800MHz 1.6GHz 3.2 GHz 35 16 11 N F Q P G PC PM 10 10 10 50 500 98 5
Figura 11. Resultados Prueba 4
Se obser va que si aumentamos el número de generaciones, la eficiencia del algoritmo es mucho mayor por cuanto encuentra mucho mas rápido soluciones más económicas. El tiempo de proceso crece. VI. CONCLUSIONES En este trabajo, para el problema de localización de fragmentos en una base de datos distribuida, se ha propuesto un simple y comprensivo modelo que puede reflejar los costos de transacciones en este tipo de arquitectura. Basados en un modelo tanto de configuración como de transacciones, se ha desarrollado y propuesto un modelo matemático para la función objetivo para hallar distribuciones cercanas a la óptima de modo que el costo de todo el proceso se minimice tanto como sea posible.
Figura 10. Resultados Prueba 3
Se ha programado un algoritmo basado en computación evolutiva, de modo que a través de sus etapas sea capaz de procesar el modelo matemático y proponer soluciones.
17
18
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Los resultados muestran que el algoritmo es eficiente por cuanto es capaz de bajar los costos implícitos en una solución propuesta de arranque en un porcentaje considerable acorde con los parámetros de entrada del algoritmo. Se ha notado que la eficiencia del algoritmo crece o se aprecia mejor en la medida que crece el tamaño de la red, el número de fragmentos a distribuir y el número de transacciones a realizar. En problemas donde dichas variables tiene valores pequeños, las posibilidades o combinaciones posibles son pocas, por lo que el algoritmo tiende a estabilizarse muy rápido, esto es, a dar valores constantes desde el principio. Para valores grandes (mayores a 10), en los parámetros de configuración, se aprecia como el algoritmo es capaz de bajar los costos paulatinamente, esto es, partiendo de una solución propuesta con un determinado costo, el algoritmo es capaz de encontrar soluciones cuyo costos es apreciablemente mas bajo aunque como es de esperar, los tiempos de proceso crecen, aunque no necesariamente en proporción lineal. Otra cosa que se ha notado es que, en la medida en que crece el número de generaciones, crece la rapidez de convergencia a soluciones más económicas.
VII. REFERENCIAS [1] Cheng, Runwei y Gen, Mitsuo, (1996), A tutorial survey of job-shop scheduling problems using genetic algorithms. Representation. Computers & Industrial Engineering, September 1996. [2] Croce, Federico Della y Tadei, Roberto, A genetic algorithm for the job shop problem. Computers & Operations Research, January 1995. Volume 22, Pages: 15 - 24 [3] Hancock, Peter J.B., (1995), Selection Methods for Evolutionary Algorithms, en Lance Chambers (editor), Practical Handbook of Genetic Algorithms, Vol. II, CRC Press, Boca Raton, Florida, pp. 67-92. [4] Hillier, Lieberman, (2001), Investigación de Operaciones. Mc Graw Hill. Capítulo 11. México. [5] Tamer, Ozsu; Valduriez, Patrick, (1999), Principles of Distributed Database Systems, Second Edition, Edit. Prentice Hall, México.
Desde el punto de vista de sus deficiencias, cabe señalar que es un algoritmo aproximado por cuanto, por una parte, no se consideraron algunos aspectos referentes a los costos de mantenimiento de integridad y control de concurrencia, aspectos que un modelo real, son de gran importancia.
Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje. Los Autores Juan Carlos Villamizar Perdomo Ingeniero de Producción Agroindustrial, con Maestría en Ciencias de la Computación de Instituto Tecnológico de Monterrey. Es docente de planta en la Universidad de la Sabana, Investigador del Centro de Investigación en Tecnologías Avanzadas de Decisión (CITAD) de la Universidad de la Sabana. Actualmente lidera la línea de técnicas metaheurísticas, de la cual han sido presentados artículos a nivel nacional e internacional. Así mismo lidera los proyectos de desarrollo de software del CITAD. Juan.villamizar@unisabana.edu.co
Luis Miguel Beltrán Sierra Licenciado en Física, Ingeniero de Sistemas con maestría en Docencia de la Física Es docente de planta en la Universidad de la Sabana, Investigador del Centro de Investigación en Tecnologías Avanzadas de Decisión (CITAD) de la Universidad de la Sabana. Actualmente lidera el grupo de investigación sobre Desarrollo de Tecnologías Informáticas para el Apoyo a la toma de Decisiones del programa de Ingeniería Informática de la Universidad de la Sabana. luism.beltran@unisabana.edu.co
Software de Plantificación para Generación Dinámica de Nodos de un Cluster en Linux Daniel Burbano, MCpE César Eduardo Guzmán González, IS
Resumen
Abstract
El presente artículo, describe la implementación de la primera fase del proyecto EVA R-GRID[1], propuesto por el equipo de investigación en software libre de la Facultad de Ingeniería de Sistemas de la Universidad El Bosque (EQUIS).
The present article describes the development of the first phase of the EVA R-Grid project proposed by the Free Software Research Group (EQUIS) of the Systems Engineering Faculty.
Esta fase tiene como objetivo principal desarrollar un software que permita a un computador formar parte de un Cluster cuando este se encuentre inactivo mediante la recolección de datos de desempeño del mismo.
This phase main goal is the development of a software that allows a computer become a part of a Cluster when it is idle, through idleness detection. The idleness detection is accomplished through the collecting of performance data of the different components of the computer.
Palabras clave: Computación paralela, Proceso de cargue, cluster, periodos de inactividad, inactividad.
Keywords: Parallel computing, boot process, cluster ,idle periods, idleness.
20
Universidad El Bosque - Facultad de Ingeniería de Sistemas
I. INTRODUCCIÓN Actualmente las máquinas de la sala de computadores de la Facultad de Ingeniería de Sistemas de la Universidad El Bosque son encendidas en la mañana y apagadas alrededor de las diez de la noche, lo que indica que están funcionando mas de doce horas diarias. Teniendo en cuenta que en gran medida estos equipos se encuentran la mayor parte del tiempo simplemente encendidos en espera de ser utilizados, como en las ocasiones en que en la sala no hay clase y se encuentran disponibles para el uso de cualquier estudiante, en muchos no hay una persona haciendo uso de ellos; ya sea utilizando un procesador de texto o navegando en Internet; y en gran parte de las veces cuando se está dictando una clase, los grupos de estudiantes son tan pequeños que varios computadores no son utilizados, esto genera intervalos de tiempo en que permanecen estos equipos encendidos sin ser empleados en la realización de algún trabajo, además al terminar las clases algunos computadores permanecen encendidos toda la noche hasta la mañana del día siguiente por un periodo aproximado de 8 horas, desperdiciando poder de procesamiento, memoria y recursos de almacenamiento. Para aprovechar esos periodos de inactividad de los computadores, el grupo de investigación en Software Libre de la Facultad de Ingeniería de Sistemas (EQUIS) ha propuesto el desarrollo del Entorno Vir tual de Aprendizaje Remoto en Grid (EVA R-Grid). El objetivo principal del proyecto EVA R-Grid es desarrollar una plataforma de aprendizaje virtual que permita realizar prácticas reales mediante Internet utilizando una arquitectura de Grid, ofreciendo al estudiante un ambiente de trabajo que le permite realizar sus prácticas usando los recursos informáticos con los que dispone el cluster accediendo a ellos en el momento y lugar que se ajuste a sus necesidades. El proyecto inicialmente está enfocado a la enseñanza de herramientas de software libre pero no se quiere limitar solo a estas herramientas. Para el funcionamiento del Cluster, y la puesta en marcha del proyecto, una de las primeras etapas es la programación y la planificación de los recursos que formarán parte del Cluster; dado que las máquinas de las salas de computadores de la Facultad de Sistemas, son de uso regular por los estudiantes, es necesario hacer que los equipos formen parte del Cluster cuando no están siendo utilizados. Para que el tiempo de operación del Cluster sea lo más óptimo, se necesita que los computadores estén operando sobre Linux el mayor tiempo posible, a causa de esto se hace necesario programar la entrada automática de los equipos que forman parte del Cluster. En las siguientes secciones se explica el diseño del sistema de monitoreo que comprende dos módulos principales, el
primer módulo que sirve para el cambio automático del sistema operativo con el cual inicia el computador y el sistema de detección de inactividad del computador, que como su nombre lo indica detecta cuando el computador no ha sido utilizado. II. DISEÑO DE LA SOLUCIÓN Como se mencionó anteriormente, los computadores son utilizados por estudiantes, evitando esto que los mismos se ejecuten constantemente sobre el sistema operativo Linux. Se necesita un sistema que permita cambiar automáticamente el sistema operativo sobre el cual se encuentra trabajando el computador para que pase de estar ejecutando Windows a ejecutar Linux, permitiendo de esta manera que el computador pase a formar parte del cluster. El rol principal del sistema es detectar los periodos de tiempo en los computadores en los que se encuentra instalado y que pertenecen a la red, para así poder aprovechar estos periodos y permitir que sus recursos sean utilizados por el cluster. Basado en la detección de estos intervalos de tiempo, el sistema reinicia el computador para que inicie el sistema operativo Linux, sin la intervención de ningún usuario. El diseño del sistema se puede dividir en dos partes principales, una que maneja la elección del sistema operativo cuando el computador es iniciado y otra que maneja la detección de los intervalos de tiempo en los que la máquina está inactiva. Elección del Sistema Operativo El proceso de carga en los computadores [6] se inicia con el BIOS. Este controla el inicio del computador, después del POST (Power On Self Test) cuando los componentes de hardware son inicializados, el BIOS del sistema identifica el dispositivo de arranque que generalmente es una partición del disco duro o un disquete, en el caso del disco duro, lee el primer sector físico de este llamado Master Boot Record (MBR) y lo carga en memoria, una vez cargado en memoria, transfiere el control al MBR para iniciar el proceso de carga del sistema operativo. El proceso de arranque del computador se puede ver en la figura 1. POST BIOS MBR CARGADOR DE ARRANQUE
Figura 1. Proceso de arranque del computador
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
El MBR contiene la tabla de particiones y un código ejecutable denominado cargador de arranque (ver figura 2), este examina la tabla de particiones e identifica la partición activa, una vez localizada la partición activa, ubica el primer sector de la partición llamado sector de arranque y lo carga en memoria, finalmente el MBR transfiere el control del arranque al sector de arranque cargado en memoria. Aunque el MBR es independiente del sistema operativo, el sector de arranque de la partición activa es dependiente tanto del sistema operativo como del tipo de sistemas de archivos en el que se encuentra.
INITIAL PROGRAM LOADER
una partición FAT de 32MB aproximadamente que contenga los archivos necesarios para el correcto funcionamiento del gestor de arranque NTLDR. La forma como deben quedar distribuidas las particiones en el disco duro se muestra en la Figura 3.
1ª Partición
2ª Partición
FAT 32 MB
NTFS Designado por el usuario
3ª Partición EXT3 Designado por el usuario
4ª Partición SWAP Tamaño de RAM del Sisitema
Figura 3. Particiones para funcionamiento de EVA R-Grid
TABLA DE PARTICIONES
Figura 2. Componentes del Master Boot Record El sector de arranque contenido en la partición activa es la que permite cargar el sistema operativo con el que trabaja el computador. Uno de los problemas de esta forma de arranque es que sólo se puede arrancar el sistema operativo contenido dentro de la partición activa. Para brindar al sistema la posibilidad de tener varios sistemas operativos instalados y poder arrancar el que el usuario elija, se reemplaza el cargador de arranque por defecto del MBR con otro cargador mas avanzado. Los cargadores de arranque [6] funcionan en dos etapas, la primera etapa es cargada por el MBR y la segunda etapa es la que se encarga de todas las tareas requeridas para cargar el sistema operativo específico, que ha elegido el usuario ya sea manualmente o que ha configurado para que cargue por defecto. Los cargadores de arranque pueden ser configurados de dos maneras, como cargador de arranque principal o como cargador de arranque secundario. Cuando es configurado como cargador de arranque principal la primera etapa del cargador es instalada en el MBR, por otra parte cuando son configurados como secundarios la primera etapa es instalada en una partición activa, cuando el MBR es ejecutado, utiliza el sector de arranque de la partición activa ejecutando así el cargador de arranque. El cargador de arranque más usado por Linux es Grub, mientras que el cargador de arranque usado por Windows NT, Windows 2000 y Windows XP se conoce como Ntldr. Para el manejo del arranque del sistema operativo se crea
La primera partición debe ser de tipo primaria y debe ser la primera creada dado que algunos sistemas no aceptan que la información del arranque del sistema se encuentre ubicada después del cilindro 1024, imposibilitando que el computador pueda arrancar algún sistema operativo e iniciar correctamente. El sistema se encarga de cambiar el archivo de configuración del gestor de arranque para que al reiniciar Windows cargue el sistema operativo Linux. III. DETECCIÓN DE INACTIVIDAD EN OTROS SISTEMAS DISTRIBUIDOS La utilización de computadores personales que no hacen uso de todos sus recursos para formar parte de un sistema de procesamiento paralelo o Cluster nació en 1978 como un proyecto de Xerox, fue llevado a cabo por John F. Shoch y Jon A. Hupp[4] en su centro de investigación en Palo Alto, mejor conocido como PARC (Palo Alto Research Center). El proyecto conocido como Worm o “gusano” consiste en un programa que se ejecuta en una o más máquinas. Los programas que son ejecutados en cada computador individualmente son denominados como los segmentos del gusano. Para encontrar los computadores inactivos, cada segmento que deseaba utilizar una máquina verificaba mediante una consulta la disponibilidad de esta, una máquina se consideraba disponible o inactiva cuando estaba ejecutando un diagnóstico de memoria, al recibir una respuesta positiva, el segmento se copiaba a través de la red y solicitaba permiso para ejecutarse, una vez concedido el permiso se utilizaba el protocolo ftp para transferir el programa que se iba a ejecutar utilizando el gusano, al terminar de ejecutarse el programa, el segmento debía retornar el computador a un estado de inactividad, para que pudiera ser accedido nuevamente por el gusano.
21
22
Universidad El Bosque - Facultad de Ingeniería de Sistemas
La idea inicial del proyecto Worm de aprovechar los recursos de cómputo inactivos fue retomada después por Michael Litzkow, Miron Livny, y Matt Mutka[5], un grupo de investigadores en la Universidad de Winsconsin, quienes fundaron en 1988 el proyecto Condor. Condor es un sistema especializado en la administración de trabajos y recursos para trabajos que requieren un poder de cómputo más grande del normal, como otros sistemas similares Condor provee un mecanismo para la administración de los trabajos, unas reglas para la programación y la prioritización de los mismos, el monitoreo y la administración de los recursos disponibles. El funcionamiento básico consiste en que los usuarios envían sus trabajos hacia Condor y basado en las reglas definidas, Condor elige cuando y como ejecutarlos, una vez terminada la ejecución retorna el resultado al usuario. Condor puede también buscar y administrar poder de cómputo desperdiciado a través de una red Ethernet, por ejemplo cuando se configura para ejecutar trabajos en los computadores solamente cuando el teclado y la CPU están inactivos. Si un usuario regresa y presiona una tecla, el trabajo hasta donde ha sido realizado es guardado y enviado a otro computador para que continúe con el proceso desde donde se había dejado, esto permite a Condor combinar todo el poder de cómputo de una organización en un solo gran recurso. SETI (Search for Extraterrestrial Intelligence) es una institución establecida en 1984, cuyo objetivo es detectar vida inteligente fuera del planeta Tierra, una de las formas de detección es conocida como radio SETI, que usa radio telescopios para escuchar señales de radio provenientes del espacio, estas señales no son esperadas que ocurran de forma natural, así que su detección brindaría evidencia de tecnología extraterrestre. Analizar un espectro de frecuencia requiere una gran cantidad de poder de cómputo, así que en 1995 David Gedye[1] propuso hacer el análisis del espectro mediante una supercomputadora virtual que consistiera en un gran número de computadoras conectadas mediante Internet. El proyecto conocido como seti@home consiste en un servidor principal que recolecta datos del radio telescopio y envía porciones de estos datos conocidas como unidades de trabajo a los clientes que están conectados a él para que los procesen. Para la detección de inactividad de los computadores, el programa cliente de seti@home detecta los periodos de inactividad mediante el monitoreo de la actividad del usuario, si este no usa el teclado o el mouse, el computador activa el protector de pantalla, que es el programa cliente en este caso y comienza a procesar la información enviada desde el servidor central.
A. Detección de inactividad en EVA R-Grid Para la detección de los periodos inactivos del computador el sistema mide la utilización de los componentes principales del equipo, como son el porcentaje de uso del procesador, la cantidad de memoria utilizada, el número de procesos que se ejecutan actualmente y el porcentaje de utilización del disco duro. Durante periodos de una hora el sistema recolecta datos de uso de los dispositivos antes mencionados y con estos determina si el computador ha sido o no utilizado a través de unos umbrales estáticos definidos manualmente por el administrador del sistema. Para la recolección de los datos de uso del sistema se utiliza una librería proporcionada por Windows y que se viene utilizando desde la version 4.0 de Windows NT, denominada PDH (Per formance Data Helper). La librería PDH (Per formance Data Helper) [7] es una mejora a las capacidades de monitoreo de desempeño de Windows NT. Los datos de desempeño que Windows NT proporciona y contienen información para un número variable de objetos, instancias por objeto, y contadores por tipo de objeto, los contadores son usados para medir varios aspectos del desempeño; por ejemplo, el Objeto Procesador incluye un contador para el porcentaje de tiempo que el procesador está siendo utilizado.
PDH.DLL WMI Hi- Perf Provider InterfaceI Registry DLL ProviderI
RegQueryValueEx ADVAPI32.32DLL
System System Performance System Performance DLL Performance DLL DLL
PerfLib
Performance Performance Extension Performance Extension DLL Extension DLL DLL
Hi-Perf Data Hi-Perf Data Provider Hi-Perf Data Provider Object Provider Object Object
Figura 4 Librería Performance Data Helper (PDH)
Para que un programa pueda utilizar las características de desempeño de Windows NT, es necesario el uso de funciones que usan el registro de Windows, las funciones de registro leen los blobs de datos desde la clave HK EY_PER FOR M A NCE_DATA que cont iene la información de desempeño; lo que hace la librería PDH es empaquetar estos datos en una forma que no requiera ninguna transformación, además la librería permite especificar el objeto y el contador específico.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
B. Funcionamiento básico del sistema de monitoreo de inactividad. El funcionamiento del sistema de monitoreo de inactividad de EVA R-Grid puede resumirse en los siguientes pasos.
deben evaluar varios que comprendan características importantes de la máquina como el uso de procesador, el uso de memoria, el uso de disco duro y la cantidad de procesos ejecutándose, para de esta manera poder hacer un análisis más efectivo de la actividad total del equipo. REFERENCIAS
1. El sistema inicia al arrancar el sistema operativo Windows. 2. Verifica la hora y revisa en el horario si el computador debe ser reiniciado. En caso de tener que ser reiniciado modifica el archivo boot.ini para que el sistema operativo Linux, arranque por defecto al iniciar el computador. 3. Si no es reiniciado, el sistema comienza a recolectar datos de uso de los componentes del computador mencionados anteriormente. 4. Al cambiar de hora, analiza los datos recolectados, para determinar si el computador ha estado activo y marca la hora en el horario para que el computador sea reiniciado. 5. Vuelve al paso 2. De esta manera, el sistema de monitoreo combina la detección de inactividad, con el cambio del sistema operativo, para manejar de manera automática el cambio en el modo de operación del computado, para que pueda formar parte del Cluster. CONCLUSIONES
[1]ANDERSON, David P., et al. SETI@home: an ex p er iment in public-re s ourc e comput ing En Communications of the ACM, n.11. Vol 45 November 2002; p.56-61. [2] BURBANO, Daniel; SABOGAL, Guiovanna y ORGANISTA, Pedro. Entorno virtual de aprendizaje remoto sobre Grid, EVA R-GRID. En: Revista de Tecnología. V.5, No.1 (enerojunio 2006); p. 13-20 [3] BONNEY, Laurence. Boot Loader showdown: Getting to know LILO and GRUB En:DeveloperWorks Linux de IBM.[Página Web].2005,[consultado 15 septiembre 2006]. disponible en < H t t p : / / w w w - 1 2 8 . i b m .c o m / d e v e l o p e r w o r k s / linux/library/l-bootload.html>. [4] SHOCH, John y HUPP, Jon. The `Worm' Programs -Early Experience with a Distributed Computation En Communications of the ACM, n.3. vol.25, march 1982; p. 172-180. [5] THAIN, Douglas;TANNENBAUM, Todd y BERMAN, Livny. CONDOR AND THE GRID En BERMAN, Fran; HEY, J. G. Anthony y FOX, Geoffrey. Grid Computing: Making The Global Infrastructure a Reality.Inglaterra. John Wiley & Sons Ltd, 2003.p. 299-332.
Al implementar un sistema de detección de inactividad se debe tener en cuenta la carga que genera el programa en los componentes para que los datos obtenidos sean confiables y reflejen el verdadero desempeño de las diferentes partes del equipo que están siendo medidas, el programa debe hacer un uso eficaz de la memoria disponible y debe utilizar la menor cantidad de memoria posible para no afectar el rendimiento normal del equipo.
[6] USA,Microsoft Corporation, Soporte Microsoft [do cument ación en line a], disp onible en <http://support.Microsoft.com/kb/114841/>.
Además es importante resaltar que los parámetros seleccionados para la detección del equipo no pueden ser usados independientemente, es decir, que un solo parámetro no refleja la utilización total del equipo, se
[ 7 ] USA , M i c r o s o ft Co r p o r a t i o n , M s d n librar y[document ación en linea], disponible en http://msdn.Microsoft.com/library/default.asp?url=/libra ry/enus/perfctrs/perf/performance_counters_portal.asp
Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje. Los Autores Daniel Alberto Burbano Sefair Ingeniero electrónico, MCpE Ingeniería Eléctrica y Computadoras, docente de la Facultad de Sistemas de la Universidad El Bosque, Coordinador línea Grid Computing del Equipo de Investigación en software Libre. e-mail: daniel.burbano@gmail.com Cesar Eduardo Guzmán Ingeniero de Sistemas Universidad el Bosque, realizó su proyecto de grado bajo la línea de Grid Computing del Equipo de investigación en Software Libre de la Universidad el Bosque, trabajo que fue reconocido como Laureado en el 2007. e-mail: cesarguzman@sistemasunbosque.edu.co
23
Personería Jurídica Resolución No. 11153 del 4 de Agosto de 1978 expedidda por el M.E.N.
Diseño del Prototipo de un Sistema Multiagente Tutor Virtual Edward Alexander Duque Tamayo
Resumen
Abstract
A continuación se presenta el diseño de un prototipo de sistema multiagente (SMA) como material educativo computacional, que preste la labor de tutor a través de un ambiente virtual. Esta idea se soporta en las líneas de investigación de Inteligencia Artificial, Informática Educativa y Software Libre. El prototipo de Sistema Multiagente Tutor Virtual es un software adaptativo orientado hacia el estudiante, siguiendo el modelo pedagógico conductista cognoscitivo y los estilos de aprendizaje propuestos por Richard Felder.
Next is the design of a prototype of multi-agent system (MAS) as Educative Software Material, that can work as a tutor through a virtual environment. This idea is supported in the lines of investigation of: Artificial intelligence, Educative Informatics and Free Software. The prototype of Virtual Multi-agent Tutorial System is an adaptive software oriented towards the student, following the characteristics of the Behaviorism Cognitivism pedagogical model and considering some of the learning styles proposed by Richard Felder.
Para su creación, se muestran los diferentes tópicos que deben ser tomados en cuenta, y que debieron ser investigados para poder realizar el diseño del software. Se toma como punto de partida la teoría de Inteligencia Artificial para agentes inteligentes y el paradigma de Programación Orientada a Agentes (POA). Estas teorías describen metodologías que permiten el desarrollo del ciclo de vida de dichos entes como sistemas distribuidos; se muestra la metodología orientada a agentes MASCommonKADS para abordar la fase de análisis y diseño del software; para la implementación de los agentes se deja propuesta la arquitectura cliente-servidor con ayuda de diversos programas de software libre: JDK, Apache Tomcat, JADE y JESS.
For its creation, the different topics that must be taken into account are shown, and which they had to be investigated to be able to make the design of software. The theory of Artificial intelligence for intelligent agents and the paradigm from Agent-Oriented Programming (AOP) are taken as a departure point. These theories describe methodologies that allow the development of the lifecycle of such agents as distributed systems; then, the agent-oriented methodology MAS-CommonKADS will be followed to approach the phase of software analysis and design; for the implementation of the agents, the server-client architecture is proposed with the help of diverse programs of free software: JDK, Tomcat Apache, JADE and JESS.
Palabras Clave: Inteligencia Ar tificial. Sistema Multiagente. Informática Educativa. Material Educativo Computacional. Modelo Pedagógico Conductista Cognoscitivo. Estilos de Aprendizaje de Felder. P r o g r a m a c i ó n O r i e n t a d a a A g e n t e s. M A S CommonKADS. Arquitectura Cliente-Servidor. JADE. JESS.
Keywords: Artificial Intelligence. Multi-agent System. Educative Informatics. Educative Software Material. Behaviorism Cognitivism Pedagogical Model. Felder's Learning Styles. Agent-Oriented Programming. MASCommonKADS. Server-Client Architecture. JADE. JESS.
26
Universidad El Bosque - Facultad de Ingeniería de Sistemas
I. INTRODUCCIÓN Desde la creación del computador personal, se planteó la idea de adecuar los materiales informáticos para la educación, así rápidamente se fueron creando programas de apoyo al aprendizaje en diferentes campos del conocimiento. Con la construcción de dichos programas, nació la informática educativa y la idea de llevar las teorías desarrolladas en la filosofía y los modelos pedagógicos a dichas herramientas para optimizar el uso de las mismas. Estas nuevas creaciones entraron a formar parte del grupo de Materiales Educativos Computarizados (MEC) y, desde entonces, se ha trabajado en conjunto con pedagogos para sacar mejor provecho de este tipo de herramientas. Al mismo tiempo, con ayuda de ciencias básicas como la matemática, la filosofía y el lenguaje, la Inteligencia Artificial comenzó a dar frutos, desarrollando métodos y modelos que permitían la incursión de nuevos trabajos, en los que se tenía en cuenta la formulación de prototipos que cumplieran metas y objetivos, que tuvieran cierto nivel de aprendizaje y conocimiento, entre otras cualidades; a dichos prototipos se les empezó a conocer con el nombre de agentes inteligentes y, se convirtieron en una excelente solución para problemas con altos grados de complejidad. Con los agentes, nació la Inteligencia Artificial Distribuida (IAD), que los muestra como sistemas distribuidos, denominándolos sistemas multi-agentes y, los paradigmas de Programación Orientada a Agentes (POA) con la Ingeniería de Software Orientada a Agentes, que se encargan de desarrollar metodologías que lleven a cabo todo el ciclo de vida de este tipo de software. Estos campos se ocupan de mejorar el tratamiento de la información de este tipo de entes y, gracias a la evolución de la tecnología, cada vez han sido mejores los usos que se les ha dado a los agentes en la vida real. A continuación se traza la elaboración del diseño de un prototipo de sistema distribuido que simule un tutor orientado a la adaptabilidad en el estudiante, llevando a cabo el ciclo de vida del software a través de la metodología orientada a agentes MAS-CommonKADS [8], que hace parte del paradigma de programación de agentes y las metodologías existentes orientadas a los mismos, que se explicará mas adelante en detalle, y que hace parte del proceso investigativo que se llevó a cabo para poder implementar el sistema. Adicionalmente se mencionarán los requerimientos necesarios para poder crear software educativo con dichos entes, así como la clasificación del software que se pretende implementar, junto con la explicación de las teorías que soportan el modelo pedagógico conductista cognoscitivo y los estilos de aprendizaje que tienen los estudiantes según los doctores Richard Felder y Linda Silverman. Para finalizar la parte investigativa del proyecto, se describe la arquitectura
cliente-ser vidor y los programas propuestos para desarrollar el software. Se mostrará de forma resumida las fases de análisis y diseño del software, aplicando la metodología MASCommonKADS. Más adelante, se explicará el diseño global y el diseño detallado del sistema, donde se da una propuesta de la arquitectura global y detallada que debe tener el software para su funcionamiento. Finalmente se describe la metodología, en la cual, se dan las pautas que se deben seguir para lograr crear el Sistema Multiagente Tutor Vir tual. Se finaliza el ar tículo mostrando las conclusiones del proyecto. II. AGENTES Y PARADIGMA DE PROGRAMACIÓN ORIENTADA A AGENTES A. Agentes “Un agente es todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o actúa en tal ambiente por medio de efectores.” [17]. Los agentes humanos responden a su entorno a través de los diferentes órganos con los que perciben el mundo y actúan en él con las partes del cuerpo; de esta manera se puede decir que los agentes artificiales responden a su entornos con diversas “entradas” que les permiten concebir su ambiente y responder a éstos a través de “salidas” que serían los efectores, véase figura 1. Aunque no hay una definición concreta de agente, se puede decir que un agente es aquel que percibe su entorno y decide cómo actuar para alcanzar sus objetivos, además de ello presenta algunas (o todas) de las siguientes características: • Autonomía: Trabaja sin la necesidad de un control por parte del usuario y tiene cierto control sobre sus acciones. • Reactividad: Percibe su entorno y responde a cambios que se produzcan en el mismo. • Proactividad: Decide cómo y cuándo satisfacer a las necesidades que le sean solicitadas. • Inteligencia: Que se expresa como el hecho de razonar, que implica perseguir y conseguir objetivos y el hecho de aprender, que implica tener nuevos conocimientos a partir de eventos nuevos y experiencia adquirida. • Sociabilidad: Interactúan con usuarios y con otros agentes. • Movilidad: Capacidad de desplazamiento.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Figura 1. Los agentes interactúan con el ambiente a través de sensores y efectores [17] Los agentes poseen también diferencias con los sistemas expertos y los objetos, las cuales se pueden observar en la tabla 1 y la tabla 2. Tabla 1. Objetos Vs. Agentes [13]
Como los agentes responden a las percepciones del entorno, y esas percepciones están descritas en una s e cuencia, és t a s ay uda r á n a det er m ina r su comportamiento, por ello, es adecuado elegir las acciones que los agentes deberían tomar de acuerdo a una serie de percepciones iniciales y originar una tabla, la cual, se constituirá entonces con una lista extensa, casi infinita de acciones; ésta lista se denomina mapeo. La idea es, generalizar las situaciones, como en un problema matemático donde se puede describir una función con tan solo un enunciado o un algoritmo, para que el agente pueda actuar de manera ilimitada, resolviendo diversas tareas en ambientes aleatorios. Es importante tener en cuenta que el diseño del agente se compone de dos partes que permiten su creación: el programa que lo describe y la arquitectura de software y/o hardware que soporta su funcionamiento. Hay que hacer un análisis del agente, tomando los objetivos, ambientes y metas que podría lograr; para ello existe la descripción PAMA (Percepciones, Acciones, Metas y Ambientes), la cual se puede observar en la tabla 3, y que sirve para hacer un bosquejo del agente a tratar. Tabla 3. Ejemplo de Diversos Tipos de Agentes y sus Correspondientes Descripciones Pama. [17]
Tabla 2. Sistemas Expertos Vs. Agentes [13]
Gracias a este bosquejo se puede programar el agente dependiendo de los requerimientos que se pidan. En la figura 2, se muestra el “esqueleto” del programa de un agente generalizado, un agente que trabaja recibiendo percepciones del entorno, aceptándolas y, gracias a éstas, responde con sus acciones. Se puede observar que se actualiza la memoria para que exprese una nueva percepción y tome la mejor acción, terminando el ciclo actualizando nuevamente la memoria guardando la acción realizada [17].
27
28
Universidad El Bosque - Facultad de Ingeniería de Sistemas
function SKELETON - AGENT (percept) returns action función ESQUELETO - AGENTE (percepción) responde con una acción estática: memoria, la del mundo del agente memoria ACTUALIZACIÓN-MEMORIA (memoria, percepción) acción ACTUALIZACIÓN-MEMORIA (memoria) memoria ACTUALIZACIÓN-MEMORIA (memoria, acción) responde con una acción
Figura 2. El “esqueleto” de un agente. [17] B. Sistemas Multiagente En este caso los agentes no son desarrollados de forma independiente sino como entidades que constituyen un sistema y que se relacionan con objetos, para ello es fundamental que interactúen por medio del diálogo, que se deleguen funciones, que cooperen para lograr un objetivo común y que coordinen lo que están haciendo, para organizar el proceso de la solución del problema y se eviten interacciones nocivas [4], de esta forma diversos tipos de agentes proporcionan servicios inteligentes a los usuarios. Los sistemas multiagente se abren paso en el campo de la Inteligencia Artificial Distribuida (DAI, Distributed Artificial Intelligence), ya que esta rama de la IA se encarga de su comprensión. C. Paradigma de Programación Orientada a Agentes Ya que los agentes presentan particularidades diversas a los objetos, ha sido necesario desarrollar la Ingeniería del Software Orientada a Agente (AOSE Agent Oriented Software Engineering) [13], y a su vez diferentes metodologías que permitan llevar a cabo el ciclo de vida de este tipo de software de la manera adecuada. Dichas metodologías, no son en su totalidad nuevas creaciones, pues se derivan de las metodologías orientadas a objetos (OO) y las metodologías de ingeniería del conocimiento (ICO), ya que éstas tienen muchas características que pueden servir en el moldeamiento de agentes y sistemas multiagente. Extensión de Metodologías OO. Hay una notoria relación entre agentes y objetos, ya que de una u otra forma éstos presentan similitudes, según Carlos Iglesias, los agentes: “pueden considerarse como objetos activos, es decir objetos con estado mental. Ambos paradigmas comparten el paso de mensajes para comunicarse, y el empleo de herencia y agregación para definir su arquitectura. Las principales diferencias estriban en que los mensajes de los agentes tienen un tipo predeterminado (su acto comunicativo) y en que el estado mental del agente se basa en sus creencias, intenciones, deseos, acuerdos, etc.”[8]. De otro lado, ayuda a que la programación orientada a agentes se extienda de la programación orientada a objetos, por el uso habitual y popularidad que ésta última posee, “la experiencia y difusión de las metodologías orientadas a
objetos facilitarían el aprendizaje y comprensión de los diagramas de las metodologías orientadas a agentes que las extiendan.”[8] Se puede evitar trabajo en aprender una metodología totalmente nueva y se puede garantizar de una u otra forma el éxito utilizando metodologías que ya han sido aprobadas, como las orientadas a objetos, que garantizan su aplicación. Aunque los objetos y agentes no son iguales se puede utilizar la teoría existente, extendiéndola y modificándola para ajustarla a las nuevas necesidades. Extensión de Metodologías ICO. Debido a que las metodologías de ingeniería del conocimiento, “tratan del desarrollo de sistemas basados en el conocimiento, (…) y los agentes tienen características cognitivas, estas metodologías pueden proporcionar las técnicas de modelado de la base del conocimiento de los agentes.”[8] El conocimiento de un agente, según Carlos Iglesias: “puede considerarse un proceso de adquisición de conocimiento, y dicho proceso solo es abordado por estas metodologías”[8], entonces se ve la extensión que tienen las metodologías or ientadas a agentes de las metodologías de ingeniería del conocimiento, teniendo en cuenta que en éstas también se tiene experiencia y han sido utilizadas con éxito en el mercado. Metodologías Existentes. Bajo estas extensiones, se han desarrollado diferentes trabajos que pretenden llevar a cabo el ciclo de vida de agentes distribuidos. Los principales trabajos extendidos de metodologías OO son: • Modelado y diseño de agentes en BDI (Believes, Desires, Intentions) • Análisis y diseño OA de Burmeister • GAIA • TROPOS • MaSE • MESSAGE De otro lado los trabajos extendidos de metodologías ICO son: • CoMoMAS • MAS-CommonKADS III. SOFTWARE EDUCATIVO El software educativo es uno de los pilares fundamentales de la informática educativa y agrupa todas aquellas herramientas que permiten fomentar la educación mediante medios computacionales y dar al usuario programas que permitan fomentar su interés y desarrollo en determinado campo o área de trabajo.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
A. Material Educativo Computacional (MEC) Un material educativo computacional (MEC) es todo lo que trata de “complementar lo que con medios y materiales de Aprendizaje-Enseñanza (E-A) no es posible o es difícil de lograr” [6], esto lleva a la clara abstracción de lo que no se puede hacer con las herramientas típicas utilizadas por maestros; la idea de los MECs no es sustituir ninguno de los demás recursos existentes, en la educación o, en su defecto solamente computarizarlos. El principio que diferencia un MEC de todos los demás instrumentos pedagógicos existentes, es la interacción, pues solamente el computador puede unir imágenes, texto, video, entre otros, y desarrollar programas para darle al estudiante un ambiente completo donde pueda aprovechar al máximo sus habilidades para aprender. Tipos de Materiales Educativos Computarizados. Existen dos tipos de MECs: los de tipo algorítmico, que transmiten el aprendizaje hacia quien quiere aprender, el estudiante debe asimilar lo enseñado siguiendo una trayector ia que le per mita seguir la r uta del conocimiento; y los de tipo heurístico, que brindan la enseñanza al estudiante a través de situaciones en las que pueda experimentar y descubrir el conocimiento. También se pueden clasificar de acuerdo a la función que asumen como se puede observar en la tabla 4.
Los Sistemas Tutores Inteligentes tienen la capacidad de adaptarse a las particularidades de cada alumno, proporcionando de esta manera ambientes que facilitan el aprendizaje del usuario, estos sistemas aprovechan el conocimiento que disponen para guiar el proceso de tutor. “La idea básica de un STI es la de ajustar la estrategia de enseñanza-aprendizaje, el contenido y forma de lo que se aprende, a los intereses, expectativas y características del aprendiz, dentro de las posibilidades que brinda el área y nivel de conocimiento y de las múltiples formas en que éste se puede presentar u obtener.”[6] Los STI poseen cuatro módulos básicos que se pueden observar en la figura 3: el Modelo del Alumno o Modelo del Estudiante, el Modelo Pedagógico o Modelo Tutor, el Modelo Didáctico y el Modelo de Interfase, aunque estos modelos pueden variar dependiendo de la aplicación. Dichos modelos son independientes y pueden estar representados por agentes inteligentes distribuidos en una arquitectura de SMA, no obstante, cada modelo tiene la posibilidad de estar dividido en sub-modelos.
Tabla 4. Clasificación de los MECs según las Funciones Educativas que asumen. [6]
Figura 3. Estructura Tradicional de un STI [7]
A. Sistemas Tutoriales Inteligentes
En el Modelo del Estudiante o Modelo del Alumno, se recolecta la información del aprendiz, sus actitudes y aptitudes desde el punto de vista pedagógico, el conocimiento que posee sobre el dominio tratado y las habilidades y destrezas para realizar actividades. “Este modelo además, debe ser capaz de recoger el comportamiento evolutivo del alumno durante el trabajo en diferentes sesiones y modelar el estado mental del alumno, es decir "lo que sabe y lo que no sabe" y a partir de esto adaptar el sistema sobre la base de sus respuestas.”[7]
Los sistemas tutores inteligentes se diferencian de los sistemas tutoriales por que poseen un comportamiento adaptativo a las características del estudiante y trabajan en función de lo que se quiere enseñar. Este tipo de MECs utiliza técnicas de inteligencia artificial para representar el conocimiento y dirigir una estrategia de enseñanza. Es un software personalizado, experto en el dominio del conocimiento y en el dominio pedagógico [11].
En el Modelo Pedagógico es donde se “almacena” la información del cerebro del sistema. Contiene la base de conocimiento del sistema y por ende los mecanismos para responder a las peticiones del estudiante, también tiene información de las metodologías pedagógicas y del aprendizaje humano. Este modulo, con la ayuda del Modelo del Estudiante proponen el Modelo Didáctico del sistema.
29
30
Universidad El Bosque - Facultad de Ingeniería de Sistemas
El Modelo Didáctico es quien escoge las tareas que se le mostrarán al estudiante de acuerdo a los objetivos plasmados por el Modelo Pedagógico, es el encargado de seleccionar estrategias pedagógicas de acuerdo al perfil del estudiante y corregir el Modelo del Estudiante, por último se encarga de activar el Modelo de Interfase de la aplicación. Para finalizar, el Modelo de Interfase ofrece las tareas de aprendizaje al estudiante a través de diversos medios de comunicación y distintos tipos de ambiente logrando una enseñanza adaptativa y eficiente. C. SMA en STI La incorporación de técnicas de IA en STI se ha desarrollado desde la aparición de éstos, resulta ventajoso utilizar SMA ya que la estructura tradicional de cuatro modelos de los STI mostrada en la figura 3, puede ser adaptada a cuatro agentes, o en su defecto dividir un módulo en varios agentes, lo que convierte el STI flexible en sus componentes. Dadas las características de los agentes, construir un SMA para la educación resulta benéfico, ya que se pueden añadir agentes en cualquier momento del desarrollo, de otro lado, cada agente puede tener una arquitectura independiente, igual que un lenguaje de desarrollo, lo que permite fusionar agentes y/o acoplarlos en la estructura general de la aplicación. Como los agentes son autónomos aplicar cada módulo del STI a un agente permite que el software sea modular y escalable. Además autores como Elizabeth Jiménez y otros [11], Jonson W.L. [12] y Gonzalo Villarreal [21], expresan más ventajas de los SMA en STI. Como los SMA se incorporan en los STI, no basta con reconocer las ventajas que muestran los agentes en educación, también hay que tener en cuenta que, este Software Educativo, es representado a través de la multimedia del computador, por ello, para que un SMA cumpla los requisitos básicos de enseñanza-aprendizaje y sea aceptado pedagógicamente según Clara Jerez, debe cumplir con ciertos requisitos: • “La información que suministre el agente debe generar un contexto para la tarea de aprendizaje que se presente al alumno. • Los estímulos que se presenten sincrónicamente deben ser coherentes (sin romper expectativas cognitivas de los alumnos). • Los agentes deben ser realmente 'interactivos' (los refuerzos que suministren se deben corresponder con la ejecución de la tarea y sus resultados). • Los agentes deben aparecer en el proceso de generación de contextos de tareas de aprendizaje y no sólo como elemento de refuerzo en los resultados de la ejecución de tareas.
• Los agentes deben ser 'agradables', es decir deben tener características que permitan asegurar el no rechazo afectivo de dicho elemento. (…). • Las capacidades físicas del agente (cómo se desplaza por la pantalla, cómo gesticula) y las funciones que puede ejecutar el agente (cómo indica un objeto o muestra un concepto) deben ser coherentes con el contenido a enseñar, y el modo de presentación de la información. • El agente ha de incorporar métodos de motivación al aprendizaje (contextualización de la tarea que se demanda al estudiante y los refuerzos de la ejecución de dichas tareas) y promover aprendizaje significativo. (…).” [10] IV. TEORÍAS PEDAGÓGICAS A. Modelo Pedagógico Conductista Cognoscitivo El modelo pedagógico conductista cognoscitivo se basa en dos de los modelos pedagógicos más representativos: el conductismo y el cognoscitivismo, los cuales muestran sus principios básicos en la tabla 5, y a su vez, las reglas de instrucción en la tabla 6.
Tabla 5. Principios Básicos del Conductismo y Cognoscitivismo [9]
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Como se puede apreciar en la tabla 5 y 6, el modelo conductista, no toma en cuenta al aprendiz como tal, sino las condiciones que lo rodean para formar el conocimiento, mientras que el polo opuesto, el modelo cognoscitivista centra su teoría en el individuo y cómo forma el conocimiento a través del entorno que lo rodea. La figura 4, muestra el foco del modelo pedagógico conductista cognoscitivo, este modelo elaborado por Robert Gagné toma las características principales de los modelos pedagógicos conductista y cognitivista y los une en una sola teoría, teoría a la que suma también los tipos de estímulos denominados eventos y las respuestas a éstos, denominados resultados o aprendizajes esperados, así como las fases de aprendizaje (procesamiento de la información) con las que se debe trabajar para lograr los diversos tipos de resultados.
Tabla 6. Reglas de Instrucción del Conductismo y Cognoscitivismo [9]
Estímulo
Respuesta
Reforzamiento Conductivismo
Estímulo
Respuesta Organismo
Organismo
Entorno
Entorno
Reforzamiento Conductivismo Cognoscitivo
Cognoscitivismo
Figura 4. Focos de atención en las diferentes teorías de aprendizaje [6].
Los conceptos básicos del conductismo cognitivista se basan en cuatro tópicos: el aprendizaje, el modelo de procesamiento de información y aprendizaje, las fases o etapas de aprendizaje y los tipos de resultado de aprendizaje. B. Estilos de Aprendizaje de Felder y Silverman Un estilo de aprendizaje es la “manera de observar” el comportamiento de un individuo frente a la forma en cómo toma la información, forma estrategias para aprender, cómo entiende y cómo le gusta revisar la información que esta utilizando para llegar a determinado conocimiento, entre otros factores. Un estilo de aprendizaje es una aproximación para “clasificar” un aprendiz en un área específica de acuerdo a un perfil, ya que este estilo evoluciona y cambia constantemente respecto a las variables de entorno que afectan al estudiante. El modelo de Felder y Silverman "Felder Silverman Learning Style Model”[3], clasifica los estilos de aprendizaje de los estudiantes en ocho grandes grupos, que se relacionan con las preguntas y respuestas que se muestran a continuación en la tabla 7:
31
32
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Tabla 7. Preguntas y Respuestas relacionadas para definir los estilos de aprendizaje de Felder y Silverman [1]
• Secuenciales: Aprenden en pequeños pasos incrementales cuando el siguiente paso está siempre lógicamente relacionado con el anterior; ordenados y lineales; cuando tratan de solucionar un problema tienden a seguir caminos por pequeños pasos lógicos. • Globales: Aprenden en grandes saltos, aprendiendo nuevo material casi que al azar y «de pronto» visualizando la totalidad; pueden resolver problemas complejos rápidamente y de poner juntas cosas en forma innovadora. Pueden tener dificultades, sin embargo, en explicar cómo lo hicieron.
Los estudiantes se agrupan de ésta manera en pares dicotómicos, los cuales presentan una serie de características según Teía Baus Roset:
En este modelo no hay estilos correctos de aprendizaje; más bien, se entiende como un sistema de preferencias en el cual par ticipan los estudiantes de manera individual.”[1] V. HERRAMIENTAS DE DESARROLLO
• “Sensoriales: Concretos, prácticos, orientados hacia hechos y procedimientos; les gusta resolver problemas siguiendo procedimientos muy bien establecidos; tienden a ser pacientes con detalles; gustan de trabajo práctico (trabajo de laboratorio, por ejemplo); memorizan hechos con facilidad; no gustan de cursos a los que no les ven conexiones inmediatas con el mundo real.
A. Arquitectura Cliente-Servidor
• Intuitivos: Conceptuales; innovadores; orientados hacia las teorías y los significados; les gusta innovar y odian la repetición; prefieren descubrir posibilidades y relaciones; pueden comprender rápidamente nuevos conceptos; trabajan bien con abstracciones y formulaciones matemáticas; no gustan de cursos que requieren mucha memorización o cálculos rutinarios.
• Cualquier combinación de sistemas que pueden colaborar entre si para dar a los usuarios toda la información que ellos necesiten sin que tengan que saber donde esta ubicada.
La arquitectura cliente-servidor es un modelo que se creo para aumentar la eficiencia dividiendo las aplicaciones de software, ya que el trabajo esta dividido entre el cliente y servidor. Esta arquitectura cuenta con las siguientes definiciones:
• Es una arquitectura de procesamientos cooperativo donde uno de los componentes pide servicios a otro.
• Visuales: En la obtención de información prefieren representaciones visuales, diagramas de flujo, diagramas, etc.; recuerdan mejor lo que ven.
• Es un procesamiento de datos de índole colaborativo entre dos o más computadoras conectadas a una red.
• Verbales: Prefieren obtener la información en forma escrita o hablada; recuerdan mejor lo que leen o lo que oyen.
• El término cliente/servidor es originalmente aplicado a la arquitectura de software que describe el procesamiento entre dos o más programas: una aplicación y un servicio soportante.
• Activos: Tienden a retener y comprender mejor nueva información cuando hacen algo activo con ella (discutiéndola, aplicándola, explicándosela a otros). Prefieren aprender ensayando y trabajando con otros. • Reflexivos: Tienden a retener y comprender nueva información pensando y reflexionando sobre ella; prefieren aprender meditando, pensando y trabajando solos. Activo en sentido más restringido, diferente al significado general que le venimos dando cuando hablamos de aprendizaje activo y de estudiante activo. Obviamente un estudiante reflexivo también puede ser un estudiante activo si está comprometido y si utiliza esta característica para construir su propio conocimiento.
• IBM define al modelo Cliente/Servidor. “Es la tecnología que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de trabajo y/o, a través de la organización, en múltiples plataformas. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otros computadores llamados servidores". • “Es un modelo para construir sistemas de información, que se sustenta en la idea de repartir el tratamiento de la información y los datos por todo el sistema informático,
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
permitiendo mejorar el rendimiento del sistema global de información”[20] La arquitectura cliente servidor tiene tres componentes básicos: el cliente, el servidor y los procesos o la comunicación, como se pude apreciar en la figura 5.
El software de bases de datos MySQL consiste de un sistema cliente/servidor que se compone de un servidor SQL, multihilo, varios programas clientes y bibliotecas, herramientas administrativas, y una gran variedad de interfaces de programación (APIs). Se puede obtener también como una biblioteca multihilo que se puede enlazar dentro de otras aplicaciones para obtener un producto más pequeño, más rápido, y más fácil de manejar. Para obtener información técnica más detallada, es necesario consultar la guía de referencia de MySQL.[16] C. Apache Tomcat Es un servidor Web multiplataforma que “funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems. Se le considera un servidor de aplicaciones.”[22] Tomcat es un herramienta de software libre empleada con éxito en la actualidad ya que se utiliza con lenguaje Java y soporta aplicaciones de gran tamaño y gran volumen de clientes. D. JADE
RMI Registry Jade Main Container JRE 1.2
Application Agent
Application Agent
Application Agent
Host 3 Application Agent
Application Agent
Application Agent
Es un sistema de administración para bases de datos relacionales que permite gestionar una colección estructurada de datos desarrollada en C y C++. Para almacenar la información MySQL utiliza diferentes tablas y las relaciones existentes entre ellas. Esta aplicación es multiplataforma, multihilo y multiusuario, además de permitir ser utilizada por diferentes lenguajes como Java, Php, entre otros; es una her ramienta utilizada actualmente con éxito por su confiabilidad y por ser de tipo Open Source. Este tipo de herramientas ofrecen al usuario flexibilidad para desarrollar las aplicaciones, así como velocidad para las consultas.
Host 2 Application Agent
B. MySQL
Host 1 Application Agent
Esto demuestra un sistema distribuido en estos componentes, básicamente la arquitectura funciona de la siguiente manera: el cliente solicita hace un requerimiento de un servicio específico al servidor, esta solicitud se hace a través de una red cualquiera y se puede convertir en múltiples requerimientos, para el cliente los datos son totalmente transparentes, pues éste sólo ve la interfaz de la aplicación. Una vez el servidor recibe la petición del cliente éste da inicio a su solución enviando información de respuesta para que el cliente sepa que su servicio ya fue atendido. Un servidor es cualquier equipo capaz de responder las peticiones de los clientes.
JADE (Java Agente Development Environment), es una herramienta para el desarrollo de agentes, esta hecho totalmente en Java y esta basado en el estándar de FIPA (Foundation for Intelligent Physical Agents) para la ejecución de los agentes, además de un paquete FIPA para poder programarlos. Cada agente se implementa como un hilo y como lenguaje de comunicación entre agentes utiliza FIPA-ACL, cuenta con constructores básicos de los agentes, en JA DE los agentes prog raman su comportamiento a través de creencias. En la figura 6 se puede apreciar la plataforma de JADE, en la cual un sistema multiagente puede estar en una JVM o en varias.
Application Agent
Figura 5. Arquitectura Cliente-Servidor.
Jade distributed Agent Platform Jade Agent Container
Jade Agent Container
JRE 1.2
JRE 1.2
Network protocol stack
Figura 6. Plataforma JADE [2]
33
34
Universidad El Bosque - Facultad de Ingeniería de Sistemas
“Un agente JADE es una instancia de una clase de JAVA definida por el usuario que extiende la clase AGENTE básica (…). El ciclo de vida de un agente JADE sigue el ciclo de FIPA, el método setup es donde se inicializa el agente y las tareas que realiza un agente en JADE se estructuran en comportamientos” [19]. Para programar un agente en JADE se debe: 1. Determinar qué debe ser capaz de hacer el agente. 2. Asociar cada funcionalidad con un comportamiento. 3. Escoger el tipo de comportamiento. 4. Dejar a JADE la tarea del scheduling (un solo comportamiento se está ejecutando en cada instante) (…) Cada agente tiene para sí una cola de comportamientos activos: • El cuerpo de acciones de un comportamiento se programa redefiniendo el método action(). • Cuando el método anterior finaliza, y dependiendo del tipo de comportamiento, el scheduler lo saca de la cola o lo vuelve a colocar al final. • Un comportamiento puede bloquearse (block()) hasta que lleguen más mensajes al agente; el bloqueo significa que, cuando action() termina, se le coloca en una cola de bloqueados.
por Ernest Friedman-Friedman-Hill en los laboratorios nacionales de Sandia en Livermore, CA. JESS proporciona la posibilidad de crear programas con capacidad de “razonar”, empleando un algoritmo para procesar reglas comparándolas con hechos. JESS es pequeño, ligero y uno de los motores de inferencia más rápidos existentes en el mercado. A diferencia de CLIPS, JESS también utiliza la lógica inversa para encontrar resultados, además de ser completamente compatible con los objetos de Java y poder ser utilizado en Eclipse. [5] VI. MAS-COMMON KADS Es la extensión de CommonKADS a SMA empleando técnicas utilizadas para objetos e ingeniería de protocolos en las fases de análisis y diseño, la fase de implementación se deja “abierta” para el uso de diferentes arquitecturas y diversos programas de desarrollo para los agentes; esta metodología adapta el modelo en espiral dirigido por riesgos y añade una fase de conceptuación previa a todo el ciclo de vida del software. MAS-CommonKADS, propone siete modelos para el desarrollo de SMA, que se pueden observar en la figura 7, y que se explicarán más adelante.
• Cuando llega un nuevo mensaje, se le saca de esa cola y se coloca al final de la de comportamientos activos. [2] E. CLIPS Es un lenguaje de programación empleado para sistemas expertos a través de la lógica de primer orden. CLIPS corresponde a las siglas de C Language Integrated Production System. “CLIPS probablemente es el sistema exper to más ampliamente usado debido a que es rápido, eficiente y gratuito. Aunque ahora es de dominio público, aun es actualizado y mantenido por su autor original, Gary Riley. CLIPS incorpora un completo Lenguaje orientado a objetos (COOL) para la elaboración de sistemas expertos. Aunque está escrito en C, su interfaz más próxima se parece a Lisp. (…). Como otros lenguajes para sistemas expertos, CLIPS trabaja con reglas y hechos. Algunos hechos pueden hacer que una regla sea aplicable.” [22] F. JESS Acrónimo de Java Expert System Shell escrito totalmente en Java es un programa desarrollado por Sun para hacer sistemas expertos y programas basados en el conocimiento, fue creado
Figura 7. Modelos empleados por MAS-CommonKADS.[8]
Esta metodología plantea las siguientes fases para el ciclo de vida del software orientado a agentes: Conceptuación, Análisis, Diseño, Codificación y pruebas, Integración y para finalizar Operación y Mantenimiento. En la fase de Conceptuación se hace una extracción de los primeros requisitos para tener una descripción del problema mediante casos de uso. La fase de Análisis toma el enunciado del problema y, a partir de éste determina los requerimientos desarrollando seis de los modelos planteados:
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Modelo de Agente (AM): Especifica las características • “Modelo de un agente: sus capacidades de razonamiento, habilidades, servicios, sensores, efectores, grupos de agentes a los que pertenece y clase de agente. Un agente puede ser un agente humano, software, o cualquier entidad capaz de emplear un lenguaje de comunicación de agentes. • Modelo de Organización (OM): Es una herramienta para analizar la organización humana en que el sistema multiagente va a ser introducido y para describir la organización de los agentes software y su relación con el entorno. • Modelo de Tareas (TM): Describe las tareas que los agentes pueden realizar: los objetivos de cada tarea, su descomposición, los ingredientes y los métodos de resolución de problemas para resolver cada objetivo. • Modelo de la Experiencia (EM): Describe el conocimiento necesitado por los agentes para alcanzar sus objetivos. Sigue la descomposición de CommonKADS y reutiliza las bibliotecas de tareas genéricas. • Modelo de Comunicación (CM): Describe las interacciones entre un agente humano y un agente software. Se centra en la consideración de factores humanos para dicha interacción. • Modelo de Coordinación (CoM): Describe las interacciones entre agentes software.”[8] La fase de Diseño, determina cómo los requisitos de la fase de análisis pueden ser logrados y desarrolla el séptimo modelo planteado: • “Modelo de Diseño (DM): (…) Este modelo se utiliza para describir la arquitectura y el diseño del sistema multiagente como paso previo a su implementación.”[8] La fase de Codificación y Pruebas, implementa cada agente, la fase de Integración, compacta y prueba todo el sistema y por último la fase de Operación y Mantenimiento, que se encarga de que todo el sistema continúe funcionado en buen estado.
diseñadores del software, aunque requiere de tiempo para lograr comprender toda la metodología. • Utiliza el modelo de espiral bajo riesgos, lo que implica que se puede devolver a cualquiera de las fases sin afectar ampliamente los desarrollos realizados en el sistema. • Deja Abierta la posibilidad de emplear una arquitectura independiente para cada agente, y en sí, para el sistema distribuido en general; por lo tanto es flexible en el desarrollo de la aplicación. • La Metodología se ha aplicado con éxito a diferentes trabajos creados o en etapa de desarrollo, que funcionan basados en el conocimiento, entre ellos: Sistema Híbrido de Software Inteligentes de Apoyo en la Comercialización de Energía Eléctrica [15], desarrollado por Julián Moreno Cadavid y Demetrio Ar turo Ovalle Carranza en Colombia; Diseño de un Sistema para nutrición y Dietética[14] propuesto por Cecilia Labraña y otros en Chile y, Sistema Basado en el Conocimiento para la Educación A Distancia (SBC-ED) [18], propuesto por Pedro Salcedo Lagos, también en Chile, entre otros. • La metodología se encuentra completa de principio a fin, en el idioma Español, hablado en el país, para facilidad de su uso. Empleando la metodología, se inicia por hacer un análisis en los procesos que se afectarán con la introducción del sistema multiagente, éste análisis da como resultado una serie de constituyentes que servirán para estructurar los siete modelos que MAS-CommonKADS plantea. Dichos constituyentes revisan las funciones, procesos, e s t r uc t ur a, jer a rquía y re cur s os del mo delo organizacional de la institución para mediar el nivel de afectación que surgirá empleando una nueva tecnología. Como siguiente paso se hace la fase de conceptuación, en la cual desde el punto de vista del usuario se observan los requerimientos. Como resultado se obtienen los casos de uso (véase figura 8) y la documentación correspondiente.
Explicada la metodología de manera breve, se tomó como punto de partida para el diseño del Sistema Multiagente Tutor Virtual por las siguientes razones: • Explica detalladamente todos los modelos empleados y muestra las respectivas gráficas para elaborarlos, además de una fase inicial de conceptuación en la cual se puede abordar el problema a tratar con facilidad. • Emplea técnicas de metodologías orientadas a objetos que permiten fácil comprensión por parte de los
Figura 8. Casos de uso usuario estudiante.
35
36
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Dados los requerimientos, se inicia con la fase de análisis y se comienzan a desarrollar cada uno de los modelos que la metodología plantea. En la figura 9 se pude observar la tarea de planificación de personalidad por primera vez, la cual hace parte del modelo de tareas y que se conectaría con el CU2. Tomar Test de Personalidad. Así mismo en la figura 10 se puede observar una tarjeta CRC del Agente Estudiante, en la cual se da una descripción de los planes y servicios que éste ofrecerá, dicha tarjeta hace parte del modelo del agente. Identificados los Casos de Uso, las Tareas y Agentes del sistema se puede hacer una tabla que determine los objetivos del cada uno de los agentes y poder trazar el funcionamiento del software, que se mostrará en el diseño detallado (capítulo VIII). Figura 11. Arquitectura Global del SMATV.
1). Planificación de Personalidad (1ª Vez): 1. Planificación de Personalidad (1ª Vez) 1.1 Recepción de 1.2 Planificación de 1.3 Informar Test de Personalidad Perfil Perfil 3 Búsqueda Base de Conocimiento Figura 9. Tarea Planificación de Personalidad por 1ª Vez.
Agente: Estudiante
Clase: Mod_Estudiante
Objetivos
Planes
Conocimiento Colaborador
Servicio
Registrar el historial relacionado con el usuario: Temas, Evaluaciones, material didáctico y ejemplos.
Pedir historiales
Usuario en BD
Acciones
Introducir Información Usuario
Registrar Perfil de Usuario
Pedir perfil
Ninguno
Pedagógico
Informar Perfil de Usuario
Informar historial de SMA cuando se identifica un usuario.
Informar historial
Usuario en BD
Interfaz
Retornar Información Usuario
Figura 10. Tarjeta CRC para el Agente Estudiante.
VII. DISENO GLOBAL DEL SISTEMA Para el diseño global del prototipo de Sistema Multiagente Tutor Virtual (SMATV) se utilizará la arquitectura clienteservidor, donde el servidor tendrá toda la lógica del sistema y las bases de datos implicadas en el desarrollo de la operación. La arquitectura global que se propone para la creación del SMATV se puede apreciar en la figura 11.
Las Bases de Conocimiento serán desarrolladas en CLIPS, este lenguaje basa su programación en lógica de primer orden lo que permite establecer reglas para la construcción de las mismas y elaborar hechos mediante los cuales se puedan elaborar las consultas en este tipo de bases de datos. CLIPS es un lenguaje plano y sin interfaz gráfica, que se trabaja por medio de consola de comandos. Para conectarla con facilidad al servidor se utilizará JESS una librería de Java elaborada por Sun Microsystems como motor de inferencia, esta librería cuenta con una mejor interfaz para el usuario y esta desarrollada para sistemas expertos. El servidor Web será el Apache Tomcat que posee un compilador para convertir los JSP (Java Server Pages) en servlets para ser enviados como “paquetes” a las diferentes bases de datos del sistema. Este servidor web también esta desarrollado para Sun, por lo cual existe código de Java con el cual se desarrollaran las clases y objetos que participan en la aplicación. Este servidor Web conecta la interfaz de usuario con las bases de datos. El sistema multiagente se desarrollará en JADE, una librer ía especial desar rollada por Sun para la implementación de agentes, cuenta con las capacidades para lograr ajustarse a las necesidades de los agentes y a la comunicación existente entre ellos, ésta aplicación cuenta con los estándares FIPA, que define la plataforma que deben tener éstos ente artificiales. El SMA utiliza las bases de conocimiento y bases de datos existente por medio del servidor. La interfaz será implementada a través de código HTML, con ayuda de XML, Applets, JavaScript, Macromedia, entre otros programas que permitan dar páginas dinámicas al usuario.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
VIII. DISENO DETALLADO DEL SISTEMA A. Modelo Vista Controlador
Agente Interfaz, Agente Acciones, Agente Pedagógico, Agente Domino, Agente Evaluación, Agente Estudiante y Agente Material.
Este patrón se empleará para el desarrollo de la arquitectura del SMATV, véase figura 12, ya que es una aplicación Web, de otro lado, este patrón cuenta con características de flexibilidad, que permiten a los diseñadores cambiar segmentos de la aplicación sin tener que modificar todo el código fuente; escalabilidad ya que por la forma de su diseño el sistema puede crecer sin problema y, robustez, por que tiene que responder a las expectativas en caso de que sucedan errores sin afectar el sistema.
Se encarga de controlar el tránsito entre el modelo y la vista. (Servlet)
Figura 13. Agentes distribuidos en módulos del STI.
CONTROLADOR
Datos del Sistema: Base de Datos Usuarios, Bases del Conocimiento MODELO
Es la interfaz con el usuario que se encarga de mostrar los datos VISTA
Figura 12. Modelo Vista Controlador El modelo de la aplicación esta compuesto por: la base de datos, en la cual se depositará la información de los usuarios y el material didáctico de la materia y, las bases de conocimiento, donde se depositarán el dominio pedagógico y el experto en la materia; éstos son los datos mediante los cuales opera el sistema multiagente. De otro lado, el controlador esta dado por los servlets que se encuentran en el servidor y que se encargarán de generar las páginas de forma dinámica para el usuario, éstos controlan el tránsito entre el modelo y la vista. Para finalizar la vista brindará la interfaz al usuario y será la encargada de interactuar directamente con él. B. Arquitectura Detallada del Sistema A continuación, se detalla en general la arquitectura del sistema multiagente y cuál es la función de cada uno dentro de la aplicación, así como el funcionamiento del sistema en general. La figura 13 muestra la arquitectura del SMATV teniendo en cuenta los cuatro módulos básicos de un STI, estos son: Módulo Estudiante, Módulo Pedagógico, Módulo Didáctico, Módulo de Interfase, en donde se encuentran distribuidos los siguientes agentes:
El Agente Interfaz y el Agente Acciones, hacen parte del Módulo de Interfase, ellos son los encargados de mostrarle la información al aprendiz y de llevar el comportamiento de éste hacia el SMA. El Agente Material hace parte del Módulo Material, el cual es el encargado de preparar el material que se le va a brindar al alumno. El Agente Estudiante hace parte del Módulo del Estudiante, es el encargado de llevar toda la información concerniente al aprendiz, historial de temas, evaluaciones, ejemplos, entre otros, así como sus datos básicos y perfil. El Módulo Pedagógico esta conformado por 3 agentes: El Agente Dominio, quien es el experto en el domino de la materia, el Agente Pedagógico, quien es el experto en pedagogía y perfiles de usuario y el Agente Evaluador que debe realizar las evaluaciones al aprendiz para determinar su grado de conocimiento. En la figura 14 se puede observar La comunicación y el funcionamiento de los agentes a través de líneas de colores que detallan el comportamiento del sistema y que tienen una numeración que se relaciona a continuación. 1. El usuario ingresa su perfil básico llenando un test que describe las aptitudes, actitudes, habilidades y destrezas que posee con la ayuda de los estilos de aprendizaje de Felder y Silverman. 2. El agente interfaz se encarga de darle al agente acciones el movimiento que el usuario tiene a través de la pantalla y las diferente “partes” o “módulos” que la componen: imágenes, textos, ejercicios, entre otros.
37
38
Universidad El Bosque - Facultad de Ingeniería de Sistemas
3. Con la información brindada por el agente interfaz, el agente acciones muestra el comportamiento al agente pedagógico, quien ajusta el perfil que cree adecuado para el estudiante de acuerdo a esta información, si le gusta más las imágenes, el texto, los módulos que se mueven en pantalla, hacer preguntas, entre otros, el agente lo tendrá en cuenta para la elaboración del mismo. El agente acciones también muestra el comportamiento al agente estudiante para que lleve el historial de lo que el aprendiz ha visto en el curso.
9. El agente evaluador devuelve la información al agente material, para que se la muestre al usuario a través del agente interfaz. 10. En todo momento el agente interfaz se comunica con el agente material, que a su vez se comunica con los demás agentes, para actualizar información acerca de tareas, evaluaciones, temas vistos entre otros. De otro lado, en todo momento el agente acciones muestra la información al agente estudiante y pedagógico para que actualicen su información. Para complementar el funcionamiento del SMATV se tiene en cuenta la adhesión de los siguientes agentes: El Agente Tareas, que le brindará al estudiante los temas de la asignatura para que pueda elegir el que desee, el Agente Lenguaje Natural que procesa la información en lenguaje natural proveniente del aprendiz y el Agente Personaje que muestra una interfaz en forma de caricatura para que el estudiante se sienta acompañado en el proceso de enseñanza. Esta arquitectura se puede apreciar en al figura 15 y a continuación se detalla el funcionamiento de los mismos.
Figura 14. Funcionamiento SMATV básico. 4. El agente interfaz se encarga de enviar las “opciones” digitadas por el estudiante al agente material, quien informa al agente pedagógico, dominio. 5. El agente pedagógico informa el perfil adecuado al agente estudiante quien actualiza la información acerca del estudiante, y su perfil. El agente estudiante lleva un historial completo del estudiante para que cuando éste se identifique en el sistema, se cargue toda la información correspondiente. Esta información se carga en los agentes estudiante, material, pedagógico, dominio e Interfaz, que son los responsables de dar información al aprendiz. 6. Con la información que obtiene del agente estudiante, el agente pedagógico y el agente dominio, el agente material conforma el material didáctico que le va a brindar al estudiante, sacando la información de mensajes de los agentes expertos y de la Base de Datos de Usuarios.
11. El Agente Tareas, organiza los temas de la asignatura para que el estudiante lleve la guía y contenido de la materia, se ayuda del agente material para su funcionamiento. 12. El Agente Lenguaje Natural, es añadido para que la comunicación en el módulo de interfase sea más adecuada en el diálogo hombre-máquina, este agente descompone la información para el agente interfaz. Para finalizar un Agente Personaje, que será el encargado de personificar el tutor, con estados de ánimo que permitan al estudiante familiarizarse con la herramienta e interactuar más dinámicamente con él. Este agente se ayuda de los mensajes de otros agentes para su funcionamiento.
7. El agente material da la información al agente interfaz para que éste se las muestre al usuario, en código dinámico, mostrando en pantalla: texto, imágenes, ejemplos, material de refuerzo, entre otros. 8. El agente evaluador se basa en la información que pasa por el agente material y el historial que tiene el agente estudiante, para poder hacer evaluaciones, una evaluación se hace al final de un módulo, el agente evaluador se informa del agente estudiante para conocer el perfil del usuario y se ayuda del agente pedagógico para ajustar la evaluación a dicho perfil.
Figura 15. Funcionamiento SMATV completo.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Para terminar, se muestra en la figura 16 el modelo entidad-relación que interactúa con los agentes estudiante y material y, que muestra la estructura de la base de datos de usuarios y de material, donde se registran los movimientos del usuario, del material didáctico y de las evaluaciones que el usuario lleva en el sistema. IX. METODOLOGÍA Debido a la complejidad del proyecto, éste se desarrollará por los estudiantes de la facultad de Ingeniería de Sistemas de la Universidad El Bosque y por diferentes expertos a través de 6 años, los cuales pueden ser disminuidos al hacer algunas etapas de forma simultánea, en 6 sub-proyectos diferentes complementarios a éste. En la tabla 8, se puede detallar el diagrama de Gant correspondiente a las fases mediante las cuales se desarrollaría el prototipo de Sistema Multiagente Tutor Virtual (SMATV) y los recursos humanos necesarios para lograr su realización completamente.
Historial # id_historial
adjunto
Tema # id_tema
posee
Estudiante # id_Usuario + codigo_usuario + nombre_usuario + login_usuario + pass_usuario
contiene
Evaluacion # id_evaluacion Imagen # id_imagen + nombre_imagen
ayudado
tiene
Perfil # id_perfil + nombre_perfil
Ejemplo # id_ejemplo + nombre_ejemplo apoyado
Figura 16. Modelo Entidad-Relación BD Usuarios y Material
Tabla 8. Diagrama de Gant
X. CONCLUSIONES La programación orientada a agentes cada vez toma más fuerza en el mercado informático, por esta razón se ha ido desarrollando diversas metodologías que tratan de diferentes formas suplir las necesidades del ciclo de vida de los agentes, dichas metodologías se han extendido con pequeñas modificaciones de las metodologías orientadas a objetos (OO) y de las metodologías de ingeniería del conocimiento (ICO), ya que de cada una de ellas se han tomado teorías que se aplican de forma correcta para el moldeamiento de agentes, además teniendo en cuenta que, las metodologías antiguas cuentan con experiencia y se han aplicado con éxito desde hace muchos años en todo tipo de sistemas.
39
40
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Se puede decir que los trabajos presentados en la Ingeniería de Software Orientada a Agentes son relativamente nuevos y por ello no presentan todas las fases desarrolladas, sino que dejan abierta la posibilidad de hacer las fases de implementación y pruebas en una arquitectura independiente a la metodología y en un lenguaje que los desarrolladores dependiendo de las fases de diseño y análisis escogerán y adaptaran de acuerdo a las necesidades funcionales del sistema. Simular un tutor para el estudiante debía tratarse como un problema distribuido, dividiendo la tarea de ser profesor en varios entes, que a través de su cooperación lograran adaptarse al estudiante, debido a este nuevo enfoque fue necesario crear un sistema multiagente para el desarrollo del prototipo de agente tutor. Al investigar en el campo de la Informática Educativa y los Materiales Educativos Computacionales (MECs), se encontró a los Sistemas Tutoriales Inteligentes (STI), que podían comportarse como tutores inteligentes. Los STI tienen cuatro módulos básicos: el módulo pedagógico, el módulo estudiante, el módulo material didáctico y el módulo interfaz, que se distribuyeron en los diferentes agentes del SMATV: acciones, interfaz, pedagógico, evaluador, dominio, material y estudiante. Después, al consultar materiales que dieran el peso pedagógico para la herramienta que se comenzó a diseñar, los agentes debían tener métodos para adaptarse al estudiante, para poder guiar la labor de enseñanza como lo hace un tutor; para cumplir con estos requer imientos es necesar io seguir un modelo pedagógico para poder completar la tarea de enseñanzaaprendizaje, y, además, dotar al sistema de una herramienta que le permitiera adaptarse al estudiante, en este punto se indagó sobre los modelos pedagógicos y se tomó como referencia el modelo conductista cognoscitivo de Gagné, también se determinó que a través de los estilos de aprendizaje de Felder y Silverman, el sistema podía adaptarse de alguna manera al estudiante. En el estudio de las metodologías se encontraron herramientas que permitieran desarrollar el ciclo de vida de los agentes, como la metodología empleada en éste proyecto, MAS-CommonK ADS, la cual permitió desarrollar el ciclo de vida del software hasta las fases tratadas de forma muy general, pero con la posibilidad de seguir profundizando en ella para continuar con la ejecución del proyecto. Para finalizar, con la investigación realizada en todos los campos, se logró establecer un diseño global y un diseño detallado, estipulando herramientas de desarrollo para aplicaciones Web, Sistemas Multiagente y Bases del Conocimiento, mostrando el funcionamiento del sistema en general y mediante el cual se estructura el proyecto y se
define la metodología, para que éste continúe hasta lograr terminar todas las etapas con el fin de simular un profesor on-line para los estudiantes de la facultad: El Sistema Multiagente Tutor Virtual. REFERENCIAS [1] BAUS, Teía. Los Estilos de Aprendizaje. 2002. h t t p : / / w w w. m o n o g r a f i a s . c o m / t r a b a j o s 1 2 / losestils/losestils.shtml [2] BOTÍA, Juan A. La Plataforma de Agentes JADE. Universidad de Sevilla. España, 2005. http://imaginatica.eii.us.es/2005/agentes/info/materialbotia/jade.pdf [3] F EL DER, R icha rd y SI LV ER M A N, L inda. Felder_Silverman Learnig Style Model. Carolina del Norte, 1988. Http://chat.carleton.ca/~tblouin/Felder/Richard%20Felde r's%20Home%20Page.htm [4] FERNÁNDEZ, Carmen, GÓMEZ, Jorge y PAVÓN, Juan. Desarrollo de Agentes Software. Introducción a los Agentes Inteligentes. España, 2003. Universidad Complutense de Madrid. Departamento de Sistemas Informáticos y Programación. [5] FRIEDMAN, Ernest. JESS, the Rule Engine for the Java Platform. Estados Unidos, 2006. http://www.jessrules.com/ [6] GALVIS, Álvaro H. Ingeniería de Software Educativo. ¿Para qué y cómo educar?. Bogotá: Ediciones Uniandes, 1992. 359 p. [7] GONZÁLEZ, Carina Soledad. Sistemas Inteligentes en la Educación: Una Revisión de las Líneas de Investigación Actuales. En Revista Electrónica de Investigación y Evaluación Educativa V. 10 España: Universidad de la Laguna, 2004. http://www.uv.es/RELIEVE/v10n1/RELIEVEv10n1_1.htm.
[8] IGLESIAS, Carlos Ángel. Definición de una Metodología para el Desarrollo de Sistemas Multiagente MAS-CommonK ADS (Knowledge Acquisition and Documentation System). Madrid, 1998, 322 p. Tesis Doctoral. Universidad Politécnica de Madrid. Departamento de Ingeniería de Sistemas Telemáticos. [9] INSTRUCTIONAL DESIGN KNOW-LEDGE BASE (IDKB). USA, 2002. Ht t p://classweb.gmu.edu/ ndabbagh/ Resources/ IDKB/models_theories.htm
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
[10] JERÉZ, Clara. Criterios pedagógicos en el uso de multimedia en educación: los agentes pedagógicos. Universidad de La Laguna. España, 2003. http://www.ub.es/div5/ site/pdf/ponencia4/barroso4.pdf [11] JIMÉNEZ, M. Elizabeth, GROSSI, María Delia y PER ICHINSKY, Gregorio. Una Aplicación de la Tecnología de MultiAgentes a los Sistemas Tutores Inteligentes: Enseñanza de Computación en Carreras de Ingeniería. Universidad de Buenos Aires. Facultad de Ingeniería. Argentina, 2005. https://dc.exa.unrc.edu.ar/wicc/papers/InformaticaEduca tiva/83.pdf [12] JOHNSON W.L, RICKEL J.W. & LESTER J.C. Animated Pedagogical Agents: Face-to-Face. Interaction in Interactive Learning Environments, International Journal of Artificial Intelligence in Education. 2000. [13] JULIÁN, Vicente J. y BOTTI, Vicente J. Estudio de métodos de desarrollo de sistemas multiagente. España, 2003. http://www.isys.Dia.fi.upm.es/caepia/numeros/18/julian. pdf [14] LABRAÑA, Cecilia, SALCEDO L. Pedro, CID F. Ricardo y FARRAN L. Yussef. Marcos del Modelado en la Ingeniería del Conocimiento, CommonKADS y el Diseño de un Sistema para Nutrición y Dietética. Chile, 2002. Universidad de Concepción. Departamento de Ingeniería Informática y Ciencias de la Computación, Departamento de Investigación e Informática Educativa.
[16] MYSQL Hispano. México, 2003. http://www.mysql-hispano.org/page.php?id=2 [17] RUSSELL, Stuart y NORVIG Peter. Inteligencia Artificial: Un Enfoque Moderno. ¿Qué es la IA?. México: Prentice Hall Hispanoamericana S.A., 1996. 979 p. [18] SALCEDO, Pedro. Inteligencia Artificial Distribuida y Razonamiento Basado en Casos en la Arquitectura de un Sistema Basado en el Conocimiento para la Educación a Distancia (SBC-ED). Chile, 2005. Universidad de Concepción. Facultad de Educación. Departamento de Metodología de la Investigación e Informática Educativa. UNI V ER SIDA D POLI T ÉCNICA DE VA LENCI A. Introducción a JADE, Curso Doctorado. España, 2004. www.upv.es/sma/practicas/jade/Introducci%F3nJADE.pdf
[19] VALLE, José Guillermo y GUTIÉRREZ, James Gildardo. Definición Arquitectura Cliente Servidor. Bogotá, 2005. http://www. monografias.com/ trabajos24/ arquitecturacliente-servidor/arquitectura cliente servidor. Shtml [20] VILLAREAL, Gonzalo. Agentes Inteligentes en Educación. En Revista Edutec, Revista Electrónica de Tecnología Educativa, No. 16 Chile, Universidad de Santiago de Chile, abril de 2003. http://edutec.rediris.es/Revelec2/ revelec16/villarreal.pdf WIKIPEDIA, La Enciclopedia Libre. TOMCAT. España, 2006. http://es.w ikipedia.org/
[15] MORENO, Julián y OVALLE, Demetrio Arturo. Sistema Híbrido de Agentes de Software Inteligentes de Apoyo en la Comercialización de Energía Eléctrica. Medellín, 2005. Universidad Nacional de Colombia. Grupo de Inteligencia Artificial.
Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje. El Autor
Edward Alexander Duque Tamayo Ingeniero de Sistemas, Universidad El Bosque. Desarrolló como Tesis de Grado el Diseño del Prototipo de un Sistema Multiagente Tutor Virtual. En la Línea de Énfasis: Ingeniería de Software y Telecomunicaciones. Áreas de Investigación: Inteligencia Artificial, Informática Educativa, Software Libre. e-mail: edwardduque@sistemasunbosque.edu.co
41
DIVISIÓN DE POSTGRADOS Y FORMACIÓN AVANZADA DOCTORADO
Medicina Familiar
Operatoria Dental Estética y Materiales Dentales
6 Semestres - 7243
3 Semestres - 52352
Medicina Física y Rehabilitación
Bioética
Patología Oral y Medios Diagnósticos
6 Semestres - 1785
6 Semestres - 51832
4 Semestres - 1806
Medicina Interna 6 Semestres - 1786
MAESTRÍAS
PSICOLOGÍA
Nefrología Pediátrica 4 Semestres - 11047
Psicología Médica y de la Salud
Bioética
Neumología
3 cuatrimestres - 8498
4 Semestres - 1787
Ciencias Biomédicas
Psicología del Deporte y del Ejercicio
Neumología Pediátrica
2 Semestres - 12932
4 Semestres - 1800
Psicología Ocupacional y Organizacional
Neonatología
3 cuatrimestres - 10756
4 Semestres - 11197 4 Semestres - 52068
Psiquiatría Forense 4 Semestres - 51833
4 Semestres - 5033
ESPECIALIZACIONES
EDUCACIÓN
Neurocirugía 10 Semestres - 8193
Docencia Universitaria
Neurología
2 Semestres - 20781
8 Semestres - 1788
MEDICINA
Pedagogía del Lenguaje con énfasis en Producción de Materiales
Oftalmología
Anestesiología y Reanimación 6 Semestres - 1796
6 Semestres - 1789
3 Semestres - 13137
Otorrinolaringología
Cardiología de Adultos
Educación con énfasis en Didáctica del Pensamiento Creativo
8 Semestres - 52370
4 Semestres - 1781
Cardiología Pediátrica
Ortopedia y Traumatología
Cirugía de Columna
Pediatría
2 Semestres - 15984
6 Semestres - 1792
3 Semestres - 13131
Cirugía del Tórax
Psiquiatría
INGENIERÍA
3 Semestres - 13139
8 Semestres - 1791
4 Semestres - 1803
4 Semestres - 1799
Educación Bilingüe – Inglés
6 Semestres - 1793
Cirugía General
Radiología e Imágenes Diagnósticas
8 Semestres - 1782
8 Semestres - 1798
Cirugía Plástica, Reconstructiva y Estética
Salud Ocupacional
Cirugía Vascular y Angiología
Urología.
4 Semestres - 20577
8 Semestres - 15689
Dermatología 6 Semestres - 1783
ODONTOLOGÍA
Epidemiología Clínica
8 Semestres - 7465
3 Semestres - 1794
Gerencia de Proyectos. 2 Semestres - 10531
Gerencia de Producción 2 Semestres - 13773
INTERDISCIPLINARIOS Bioética 2 Semestres - 3069
Endodoncia
Filosofía de la Ciencia
3 Semestres - 51644
4 Semestres - 3572
2 Semestres - 5302
Gastroenterología Pediátrica
Ortodoncia
Gerencia de la Calidad en Salud
6 Semestres - 1790
3 Semestres - 3885
Cirugía Oral y Maxilofacial
Higiene Industrial
8 Semestres - 1795
2 Semestres - 3060
Medicina Crítica y Cuidados Intensivo Pediátrico
Periodoncia y Medicina Oral
Epidemiología General
5 Semestres - 1801
3 Semestres - 51642
Medicina del Deporte
Prostodoncia
Salud Familiar y Comunitaria
6 Semestres - 1802
6 Semestres - 2674
2 Semestres - 4852
Medicina del Dolor y Cuidados Paliativos
Odontología Pediátrica
Ergonomía
4 Semestres - 1805
2 Semestres - 10626
4 Semestres - 52359
Ginecología y Obstetricia 8 Semestres - 1784
4 Semestres - 52368
2 Semestres - 52360
Por una Cultura de la Vida, su Calidad y su Sentido Calle 134 No. 7 B - 83 Tel 6489026 - 6489037 Pbx 6489000 ext. 233 - 108 - 315 Línea de Atención al Aspirante: 6489080 Fax: 6489040 Atención al Usuario 01 900 3318626 postgrados@unbosque.edu.co - Bogotá D.C. Colombia
www.unbosque.edu.co
Resolución 327 de 5 de febrero de 1997 de Ministerio de Educación Nacional
Software para el Procesamiento Digital de Imágenes Médicas Radiográficas en Java™ Jessie A. Palacios S.
Resumen
Abstract
Con el procesamiento de imágenes médicas radiográficas se busca proporcionar herramientas que posibiliten la percepción adecuada de las imágenes tomadas normalmente en los centros de salud y dar soporte al proceso de aprendizaje de los estudiantes de medicina. Para lograr estos objetivos se pueden destacar filtros como los de suavizado, realce, detección de bordes, entre otros. Adicionalmente se propone una base de datos para optimizar el tiempo de búsqueda del historial clínico del paciente, la forma de almacenar optimizando espacios de almacenamiento, entre otros beneficios.
Medical image processing provides tools to improve image perception. Images generally taken from hospitals and in that way give assistance in learning process. In order to obtain these objectives, filters as smoothed, enhancement, edges detection, among others. Additionally a data base sets out to optimize the time search of the clinical file of the patient; the Data Base optimizes storage spaces, among other benefits.
En un sistema de procesamiento se debe tener en cuenta la representación de las imágenes en el PC. Adicionalmente se debe tener en cuenta conceptos de matrices y escala de grises. Palabras Clave: procesamiento de imágenes, computación gráfica, aplicaciones con matrices.
In a processing system is important to know the image composition and the representation in the Pc. Additionally are good to review matrices and gray scale concepts. Keywords: Image Processing, Graphic Computation, applications with matrices.
44
Universidad El Bosque - Facultad de Ingeniería de Sistemas
I. INTRODUCCIÓN En su momento autores como González y Woods escribieron sobre el tratamiento de imágenes y la forma como estas son representadas, en el dominio espacial F(x,y) como una matriz de pixeles[1]. A partir de ello se realizan operaciones sobre estos pixeles ya sean individuales, vecinales o conjuntamente el uso de ambas. Gracias a estas operaciones se pueden proporcionar cambios significativos en las propiedades de las imágenes. El objetivo con este cambio es ofrecer una mayor apreciación de las características que la imagen pueda mostrar en condiciones normales, características que pueden ser definitivas en el tratamiento de una lesión ósea y se pretenden mostrar más adelante. Para lograr estos objetivos se emplean máscaras como la máscara de Kirsch, Laplaciano, entre otras que hacen parte del proceso de tratamiento digital. Aunque las máscaras se pueden aplicar para cualquier imagen, el objetivo que se busca varía según la necesidad; por ejemplo, en el campo de la ortopedia, más específicamente en lesiones óseas, el uso de filtros como el realce y una buena detección de bordes se hacen suficientes para suplir las necesidades básicas como lo es el poder apreciar detalles de fracturas y una detección significativa del curso de la lesión. El procesado de imágenes puede ser aplicado para resolver las dificultades en el aprendizaje del médico residente para detectar lesiones en radiografías que a ojo inexperto no se distinguen con facilidad. Conjuntamente con el desarrollo de una base de datos se propone apoyar las labores diarias de los médicos en consultorios, optimizando el proceso de almacenamiento, de esta manera se mostrará cómo se pude mejorar el tiempo desde que se toma hasta que el paciente vuelve a control. Para poder entender más el proceso es necesario explicarse a groso modo algunos de los procesos de tratamiento y la disposición de la base de datos. II. REPRESENTACIÓN DE IMÁGENES DIGITALES
Las imágenes se representan con una matriz de MxN[2], esta matriz lleva consigo elementos como intensidad y valores de RGB siempre y cuando está sea una imagen a color. Si la imagen que se esta representando es una imagen a grises estos valores son tomados de la escala de grises que se encuentra entre 0 y 255. Para la aplicación de los métodos de procesado estos pueden hacerse individualmente o por vecinos fig.2. Cuando hablamos de los vecinos de un pixel son aquellos que se encuentren cercanos al pixel evaluado en todas sus direcciones. La cantidad de vecinos puede variar de tamaño dependiendo que tantos pixeles se desee incluir.
Píxel Individual
Vecindad de un Píxel
Figura 2. Pixeles individuales y vecindad.
El tamaño de las matrices depende de las dimensiones de la imagen inicial. En caso que sea una imagen de 1280X1024, la matriz tomará ese mismo tamaño y lo representara en forma numérica basado en las propiedades de cada pixel en un punto determinado de la imagen. Se sabe que el tamaño de la imagen afecta directamente el desempeño de los algoritmos de procesado y su tiempo de respuesta, es decir, que si la imagen inicial es de 1200x600 el proceso será más lento que con un tamaño de 800X600, así con imágenes de menor tamaño. III. FILTROS Y PROCESOS Con el objetivo de sacarle un mayor provecho a las imágenes se proponen a continuación filtros y procesos para tratar estas imágenes. A. Paso a Grises Teniendo en cuenta la estructura matricial de las imágenes, el proceso se hace tomando pixel por pixel, después de un proceso de descomposición se dispone a asignarle una representación en la escala de grises. El resultado se puede observar en la Figura 3 donde se prefiere mostrar el rostro de una joven a color que una radiografía para así apreciar el efecto.
Figura 1. Matriz de MxN.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
también son llamados máscaras y son aplicadas en cada uno de los pixeles teniendo en cuenta sus vecinos. Las dimensiones de estas máscaras pueden variar según se necesite, para el caso del suavizado entre más grande sea la máscara mayor desenfoque tendrá la imagen. Las dimensiones se recomiendan sean cuadradas e impares ya que de esta manera es mas fácil referenciar en la convolución el pixel central que será afectado, se sugieren máscaras de 3x3, 5x5 o 7x7 el propósito, es hacer de una imagen con problemas de “sal y pimienta” una imagen nueva con esos problemas disipados como se muestra en la figura 5 donde se tomó la imagen que se ha venido tratando desde el principio.
Figura 3. Imagen original y después del paso a grises. B. Blanco y Negro Para este proceso, se parte del hecho que la imagen se toma descompuesta dentro de la escala de grises, haciendo un recorrido por la imagen y realizando simultáneamente operaciones individuales, se evalúa si el valor en un punto I(x,y) de la imagen pertenece al intervalo propuesto en la escala de grises y se les asigna el valor correspondiente. De esta manera, por ejemplo, si se dice que los pixeles que se encuentren dentro del rango (0128) tomaran el valor de 0, de lo contrario tomaran el valor de 255; donde 0 es el negro absoluto y 255 el blanco absoluto, de esta manera se obtiene como resultado una imagen binarizada(fig. 4).
Figura 5. Imagen suavizada.
D. Realce En el realce se utiliza el mismo método para recorrer la imagen. Este proceso se basa en la aplicación del mismo principio de filtros cuadrados e impares, en el realce solo varia el tipo de filtro que se va a utilizar, que a diferencia del Suavizado este es Laplaciano, El objetivo es, exponer los detalles de la imagen para que sirvan, en el caso de las radiografías, para mostrar de mejor manera las fracturas o fisuras existentes. En la fig.6(a) continuación se muestra una radiografía de Pelvis donde se aprecia el cambio de la imagen.
Figura 4. Imagen resultante de la Binarización. C. Suavizado En el proceso de Suavizado se propone una aplicación de filtros homogéneos, es decir que los valores que componen la matriz a utilizar sean el mismo, estos filtros
Figura 6 (a). Radiografía Original.
45
46
Universidad El Bosque - Facultad de Ingeniería de Sistemas
El procesamiento de estas imágenes y la aplicación de filtros para crear un ambiente mejor al momento de apreciar estas imágenes se hace gracias a las combinaciones de estos filtros, para este caso, se puede apreciar un buen resultado, dado que el filtro de detección de bordes deja esta imagen a blanco y negro para apreciar mejor dicha imagen, esos detalles que a color se hacen más complicados. Figura 6 (b). Radiografía Realzada. E. Detección de Bordes Por último se presenta el proceso para obtener como resultado sobre una imagen la detección de sus bordes, filtro de gran importancia para médicos que están en el proceso de aprendizaje. La Detección de Bordes toma una máscara de las existentes como el operador en diagonal de Roberts y los operadores de fila como Sobel, Prewitt y Frei-Chen[2], pero en este caso se dará a conocer el filtro de Kirsch, llamado también Brújula ya que este operador usa máscaras pequeñas donde se definen ocho direcciones, que se indican como puntos cardinales mostrado en la Fig.7.
IV. ALMACENAMIENTO En el ambiente de un consultorio de ortopedia, es normal que se requieran las llamadas historias clínicas para ver el seguimiento que se le ha hecho a un caso determinado. Los beneficios de tener la información e medios magnéticos y almacenados en bases de datos se ve reflejado en el rendimiento no solo por almacenamiento y ahorro en espacios en bodegas o cuartos de archivo, sino también por la adquisición de los datos del paciente y la manera como son transportados desde su lugar de trabajo, el tiempo que se mueven los datos y se actualizan es menor que cuando se tiene en archivos físicos. Al tener los datos en medios físicos, corren el riesgo de extraviarse, deteriorarse por el paso del tiempo o por factores externos como la humedad, el polvo, entre otros. Por ello, al mantener estos datos y su referencia en imagen asociada a este archivo hacen estos problemas aislados. Esto funciona siempre y cuando se sepa hacer un buen mantenimiento de la base de datos. Para la implementación de la base de datos se usó Mysql debido a que este software cumple con cuatro características relevantes para el desarrollo del proyecto [4]:
Figura 7. Ocho máscaras representativas del operador de Kirsch.
• Costos: Es gratuito para la mayor parte de los usos y su servicio de asistencia resulta económico.
Para este proceso se hace el mismo recorrido, pixel por pixel y revisando sus vecinos en un proceso de convolución que se hace en la misma posición de la imagen con las ocho máscaras de esta manera se determina la ubicación del borde. El resultado de este proceso se muestra en la fig.8.
• Funcionalidad: Dispone de muchas de las funciones que exigen los desarrolladores profesionales, compatibilidad para la mayor parte de xxxxxxx, duplicación, integración con la mayor parte de los entornos de programación. • Portabilidad: Se ejecuta en la inmensa mayoría de sistemas operativos y, la mayor parte de los casos, los datos se pueden transferir de un sistema a otro sin dificultad. • Facilidad de Uso: Resulta fácil de utilizar y de administrar. Las herramientas de Mysql son potentes y flexibles, sin sacrificar su capacidad de uso.
Figura 8. Imagen de una radiografía después de la detección de bordes.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
V. CONCLUSIONES Debido a la disposición libre del software para el procesamiento de las imágenes radiográficas deja la puerta abierta a futuras investigaciones y creación de nuevos filtros adicionales que proporcionen una mayor utilidad a nuevos retos. Adicionalmente se sigue de una base de datos y la posible aplicación de nuevos módulos y herramientas para el manejo de la base de datos. El procesamiento de imágenes y los filtros en general sirven de apoyo no solo a problemas de aprendizaje del estudiante de medicina sino también para aprovechar al máximo procesos mineros, entre otros. Hoy en día los datos son transportados con mayor seguridad gracias a las nuevas tecnologías de almacenamiento y transporte y haciendo que las bases de datos sean usadas con mayor frecuencia. REFERENCIAS [1] González, Rafael C, Woods, Richard E., (1996) “Tratamiento Digital de Imágenes”, Wilmington, Delaware, Addison Wesley Iberoamericana. S.A. [2] Pajares, Gonzalo, De la cruz, Jesús M. (2002) “Visión por Computador, Imágenes Digitales y Aplicaciones”, México. Alfaomega Ra Ma. [3] Palacios S. Jessie A. “Software para el Procesamiento Digital de Imágenes Médicas Radiográficas en JavaTM”, Diciembre 2006. Pp 48-49.
Artículo de investigación Científica y Tecnológica. El Autor
Jessie Alejandro Palacios Sarmiento Ingeniero de Sistemas, Universidad El Bosque. e-mail: jessiepalacios@sistemasunbosque.edu.co
47
Sistema Experto de predicción de Cáncer Prostático a través de muestras de sangre por examen de Antígeno Prostático Específico Andrés Leonardo Corredor Mahecha
Resumen
Abstract
El presente documento es el reporte de la finalización de una investigación que tuvo como fin desarrollar un sistema experto de diagnóstico de cáncer de próstata mediante niveles de antígeno prostático específico (PSA) en sangre. La construcción de software contó con el apoyo de los conocimientos de un experto urólogo colombiano.
This document reports results of the research which aim was to develop an expert system to diagnose prostate cancer by means of levels of prostate specific antigen (PSA) in blood. Software construction was supported by knowledge provided by a Colombian expert urologist.
Para esto el sistema experto se desarrolló utilizando el lenguaje de programación CLIPS con las librerías JESS para la plataforma JAVA™, así mismo, se empleó una base de conocimientos en MySQL. Se alcanzó un nivel de desacoplamiento de software, se utilizó el patrón de diseño modelo vista controlador (MVC) con un ambiente Web en SERVLET´s y JSP´s, y se alojó en un servidor HTTP Apache Tomcat. Este proyecto se soporta en las líneas de investigación de inteligencia artificial y sistemas expertos. Palabras claves: Inteligencia artificial, sistema experto, plataforma JAVA™, CLIPS, JESS, MySQL, MVC, SERVLET, JSP, Apache Tomcat, cáncer de próstata, antígeno prostático específico (PSA), urólogo.
The expert system was developed by using the programming language CLIPS with the JESS API's for JAVA platform. A knowledge base in MySQL was used also. A level of undocking of software was reached, was used the design pattern model view controller (MVC) will be used with an ambient Web in SERVLET´s and JSP´s, which will have to be hosted in a HTTP Tomcat Apache server. This project is supported in research groups of artificial intelligence and expert systems. Keywords: Artificial intelligence, expert system, JAVA™ platform, CLIPS, JESS, MySQL, MVC, SERVLET, JSP, Tomcat Apache, prostate cancer, prostate specific antigen (PSA), urologist.
50
Universidad El Bosque - Facultad de Ingeniería de Sistemas
I. INTRODUCCIÓN
apoyos de diversas áreas para ser precisos y exitosos en la prevención, detección y erradicación de enfermedades.
Desde tiempos inmemorables el cáncer ha afectado al hombre de manera directa, es decir, como individuo y de forma indirecta al impactar también la sociedad que lo rodea. La primera información escrita sobre el tratamiento a un paciente con cáncer data del año 1600 antes de Cristo, a pesar de esto el cáncer era detectado y diagnosticado en estados tardíos, en los cuales las intervenciones terapéuticas ya no eran de gran utilidad y su manejo se tornaba bastante complicado, sin embargo, con el paso del tiempo, los avances de la ciencia, la tecnología, y la adquisición de nuevo conocimiento han p er m it ido implement a r nueva s her r a m ient a s diagnósticas que permiten la detección de estas patologías en estados más tempranos, evitando las evoluciones intratables.
La tecnología y sus permanentes innovaciones, la convier ten en una respuesta per tinente para las necesidades del mundo actual. En áreas como la Medicina, es apremiante la necesidad de contar con paradigmas múltiples que la apoyen y le permitan hacer su labor con mayor precisión y eficacia, los sistemas expertos se convirtieron en una herramienta esencial para los especialistas en estudios y predicciones de enfermedades, sin embargo, se requieren estudios investigativos que analicen casos particulares de la Medicina, con el fin de proveerle diseños inteligentes de sistemas tecnológicos en el diagnóstico, la prevención y la erradicación de enfermedades.
Dentro de estas nuevas herramientas se encuentran los sistemas expertos, los cuales son una rama de la inteligencia artificial capaz de llevar el conocimiento de un especialista en un área específica a un lenguaje de programación. Estos sistemas brindan ayuda para resolver problemas de distinta índole y para la toma de decisiones en las áreas para las cuales se hayan diseñado. Su diseño permite que estos sistemas basados en conocimientos funcionen como el asistente inteligente de un especialista humano. Cuanto más conocimiento se añade a un sistema inteligente mas actuará como un especialista. Por tanto, desarrollar un sistema inteligente puede constituir un útil acontecimiento en la producción de un sistema experto completo. Además, es posible que al acelerar la solución de problemas se le proporcione un ahorro de tiempo a los especialistas. Por lo anterior, el objetivo principal de este trabajo fue desarrollar un sistema experto para la predicción de cáncer prostático con el marcador de Antígeno Prostático Específico PSA y los objetivos específicos fueron los siguientes: validar la efectividad del Sistema Experto con una población de 30 pacientes del Dr. Álvaro Gutiérrez, entre 40 y 79 años, elaborar el sistema experto con lenguaje CLIPS como motor de inferencia del presente proyecto, con una interfaz Web con SERVLET's y JSP's y utilizar los rangos de PSA por raza entre pacientes de 40 y 79 años (a las que se hace referencia en la tabla I contenida en este articulo), para crear las reglas del sistema experto, y el conocimiento del Dr. Álvaro Gutiérrez. II. PROBLEMA Sin duda, las actuales disciplinas de conocimiento en todo el mundo, se ven en la necesidad de recibir apoyo de los avances tecnológicos de hoy, con el fin de hacer más efectivo y eficiente su labor. La Medicina es una de ellas, ya que sus innovaciones en conocimientos requieren de
El cáncer de próstata es causa de 40.000 muertes por año en los Estados Unidos. Es la segunda causa de muerte después del cáncer de pulmón. En Colombia se estaría hablando de estadísticas similares [5]. La probabilidad de desarrollar un cáncer de próstata aumenta con la edad, siendo poco frecuente antes de los 50 años, aumentando rápidamente después de esta edad, estimándose en un 17% (uno de cada 6 hombres) la posibilidad de desarrollarlo a lo largo de la vida, y en un 3% (uno de cada 30 hombres) la posibilidad de morir a causa de este. En un estudio de autopsias se encontraron focos microscópicos de cáncer de próstata y de neoplasia intraepitelial de alto grado en el 29% de los hombres entre 30 y 40 años, y en el 64% de los hombres entre 60 y 70 años. En los Estados Unidos los datos referentes a la epidemiología del cáncer de próstata se obtienen del SEER (Surveillance, Epidemiology, and End Results), programa del Instituto Nacional del Cáncer, según sus datos, la incidencia de cáncer de próstata aumentó en un 2,3% anual entre 1975 y 1985, progresó a un 6% anual entre 1985 a 1989 coincidiendo con el inicio de la utilización masiva del PSA, y posteriormente presentó un aumento del 18,4% anual desde 1989 hasta 1992. Desde 1992 hasta 1995 la incidencia de cáncer de próstata disminuyó en un 14% anualmente y ahora parece estabilizarse. En 2002 en los Estados Unidos se diagnosticaron 189.000 casos de carcinoma de próstata y murieron por esta causa 30.200 personas [3]. En Cali en estudios realizados, es la principal causa de muerte en el género masculino. El de antígeno prostático específico ayuda a mitigar el cáncer de próstata, pero solo es efectivo si es acompañado del examen físico de tacto rectal [4]. El proyecto sistema experto de predicción de cáncer prostático a través de muestras de sangre por examen de
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Antígeno Prostático Específico, surge de la observación de una serie de artículos que se han emitido en diferentes congresos, especialmente en Texas, sobre la lucha contra el cáncer. Con este proyecto se desarrollará un sistema experto que lea el examen correspondiente al marcador de la proteína PSA, y se le realizara a pacientes entre 40 y 79 años para el diagnóstico de cáncer de próstata.
En la figura 1 se explica el concepto básico de un sistema experto basado en conocimiento. El usuario aporta los hechos al sistema experto y recibe concejo o experiencia como respuesta de él, en su interior el sistema experto incluye dos componentes principales la base de conocimiento y el mecanismo de inferencia, que al interactuar genera conclusiones; estas son las respuestas del sistema experto a la consulta especializada [6].
III. SISTEMAS EXPERTOS Cuando los sistemas expertos se desarrollaron por primera vez en los años setenta, contenían exclusivamente conocimiento experto; sin embargo, hoy en día a menudo se aplica el término a sistema experto a cualquier sistema que utiliza tecnología de sistemas expertos. Esta tecnología, puede incluir a los lenguajes y programas especiales de sistemas expertos, además del hardware diseñado para su desarrollo y ejecución [6]. El profesor Edgard Feigenbaum se le llama “Padre de los Sistemas Expertos” los define como “un programa de computación inteligente que usa el conocimiento y los procedimientos de inferencia para resolver problemas que son lo suficientemente difíciles como para requerir significativamente exper iencia humana para su solución”[7]. Es decir un sistema experto es un sistema de cómputo que emula la habilidad de tomar decisiones de un experto humano. El conocimiento de un sistema experto se puede representar de varias maneras como en reglas y objetos, la manera más común es: SI…ENTONCES por ejemplo: SI la luz es roja ENTONCES deténgase Si existe el hecho de que la luz sea roja, esto concuerda con el patrón “la luz es roja”, la regla se satisfizo y se ejecuta la acción deténgase. El conocimiento de los sistemas expertos puede obtenerse por experiencia o consulta de los conocimientos que suelen estar disponibles en libros, revistas y con personas capacitadas. Tabla 1. Rangos por raza (ng/ml)
RAZA
Hechos Base de Conocimiento Usuario Aptitudes de Experto
Mecanismo de Inferencia
Figura 1. Sistema experto concepto básico. IV. ANTÍGENO PROSTÁTICO ESPECÍFICO Es una sustancia producida por la próstata que se puede encontrar en grandes cantidades en la sangre, de los hombres que tienen cáncer de la próstata, hiperplasia prostática benigna, o infección o inflamación de la próstata. Frecuentemente abreviado por sus siglas PSA, es una sustancia proteica sintetizada por la próstata normal y cuya función es la disolución del coágulo seminal. Su producción depende de la presencia de andrógenos y del tamaño de la glándula prostática. Una pequeñísima parte de este PSA pasa a la circulación sanguínea el cual se mide para el diagnóstico, pronóstico y seguimiento del cáncer de próstata [2]. Con la edad aumenta la concentración del PSA, el límite superior normal deberá aumentar con la edad. Utilizando los rangos específicos por edad, se aumenta la sensibilidad de la prueba en hombres jóvenes y se aumenta la especificidad en hombres de edad avanzada, llegando a evitarse muchas biopsias innecesarias. Con respecto a la raza, hombres de raza negra tienen mucho mayor riesgo de desarrollar el cáncer que el hombre de raza blanca. Los hombres de raza negra manejan concentraciones más elevadas que los blancos, siendo los a siát icos los que t ienen menores concentraciones [1]. La relación se muestra en la tabla I. V. DISEÑO
EDAD NEGRA 40-49 <2,0
ASIÁTICA <2,0
BLANCA <2,5
50-59
<4,0
<3,0
<3,5
60-69
<4,5
<4,0
<4,5
70-79
<5,5
<5,0
<6,5
Para desarrollar el sistema exper to se eligió la herramienta de programación Clips como motor de inferencia, a diferencia del motor de inferencia WINPROLOG esta herramienta fue diseñada por la NASA para el desarrollo de sistemas expertos, las desventajas de Clips según experiencia del autor, es que tiene una interfaz con el usuario plana por consola de comandos y el estilo de programación compleja basado en Common
51
52
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Lips. Gracias a una librería JESS la cual implementó Clips en JAVA™, se puede hacer mejor la interacción con el usuario y el sistema experto. Al estar desarrollada en JAVA™ se puede utilizar tecnología Web de JSP y SERVLET y utilizar muchos patrones de diseño, y con la tecnología Web se puede acceder a cualquier hora desde cualquier Terminal con acceso a Internet. En la figura 2 muestra el diseño global.
El sistema experto tuvo la capacidad de diagnosticar la enfermedad correspondiente en 26 pacientes, sin embargo, en 3 pacientes con posible enfermedad prostática no fueron detectados, por lo tanto se puede decir, que el sistema experto originó 3 resultados erróneos y uno no se pudo comprobar si era correcto o no. La figura 3 es la gráfica que genera el sistema experto y en la figura 4 están representadas las estadísticas en porcentajes. El sistema experto fue correcto en un 87%.
Figura 4. Porcentaje de fiabilidad sistema experto
Figura 2. Diseño global VI. PRUEBAS Se evaluaron 30 pacientes al azar, los cuales se caracterizaban por ser de sexo masculino, en edades entre 40 y 79 años, obtenidos de la base de datos del Dr. Álvaro Gutiérrez.
Figura 3. Gráfico de barras fiabilidad sistema experto PSA
En el sistema se evaluaron dos razas de las tres razas del sistema experto, dos hombres de raza negra y 28 hombres de raza blanca. Con la raza blanca el sistema tuvo una efectividad del 85% ver figura 5. En la raza negra tuvo una efectividad del 100%. Ver figura 6
Figura 5. Porcentaje de fiabilidad sistema experto raza blanca
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
3. Diseño de Conocimiento: Se realizaron todos los diagramas y modelos que definieron el sistema, como diagramas de casos de uso, diagramas de flujo, diagramas de entidad relación. Se hizo el diseño de la interfaz gráfica para la interacción con el usuario. 4. Desarrollo: En esta etapa con base al diseño de conocimiento ya definido, se inició la construcción del Sistema Experto e implementación.
Figura 6. Porcentaje fiabilidad sistema experto raza negra
5. Pruebas: Se realizaron las pruebas con el Experto, para la comprobación de la fiabilidad del sistema experto. Se definieron los datos y controles de prueba y la forma en que se analizaron los resultados.
De 8 pacientes ya diagnosticados con cáncer de próstata (dos de raza negra y seis de raza blanca), el sistema experto acertó en los ocho diagnósticos, con una efectividad del 100%.
6. Integración: Esta es la ultima etapa en el ciclo de desarrollo, en este periodo se terminaron los documentos requeridos, documento de tesis, manual del usuario y se generaron las conclusiones.
VII. METODOLOGÍA
VIII. CONCLUSIONES
La metodología que se presentara a continuación ha sido creación de mi propia autoría, desarrollada a partir de los conocimientos adquiridos del los profesores Javier Rodríguez y Hernando Ramírez Llinás, de la Universidad el Bosque y de la experiencia en los distintos trabajos (Sinersys S.A, Comcel S.A y la Bolsa de valores de Colombia).
Al desarrollar el sistema experto de predicción de cáncer de próstata se utilizaron nuevas tecnologías, JESS, JAVA™, Apache Tomcat, MySql, Eclipse que permitieron facilitar el desarrollo de los mismos para el lenguaje CLIPS y lograron satisfacer las exigencias del desarrollo de la investigación.
Se usó el ciclo de desarrollo de software por etapas, cada etapa tiene un periodo de duración según su complejidad. Las etapas están comprendidas por Iniciación, Definición, Diseño, Desarrollo, Pruebas e Implementación. Descripción de las etapas: 1. Iniciación de Conocimiento: En esta etapa se hizo la investigación del proyecto, en la cual se hicieron entrevistas con el experto preguntándole como es su trabajo para desarrollar una tarea especifica, se deben grabar estas entrevistas para futuras consultas, además de las entrevistas, se consultan otras referencias como libros, revistas, otros expertos en la materia, para identificar cuáles son los orígenes del conocimiento, y así hacer el levantamiento del conocimiento. 2. Definición de Conocimiento: Se definieron de manera detallada las funcionalidades del sistema, reglas, hechos, requerimientos funcionales y no funcionales.
De 30 pacientes en edades entre 40 y 79 años examinados con el sistema por el doctor Álvaro Gutiérrez, se encontró que el 87% fue correcto, el 10% fue erróneo y el 3% no se pudo comprobar, lo que demuestra la efectividad del sistema experto en el diagnóstico de cáncer de próstata. Al comparar los resultados de ocho pacientes entre 40 y 79 años que ya habían sido diagnosticados con cáncer de próstata, con los resultados del sistema experto, se encontró una efectividad del 100%; de estos ocho pacientes seis eran de raza negra y dos de raza blanca. El examen de sangre de antígeno prostático específico acompañado del examen físico de tacto rectal es efectivo para el diagnóstico de cáncer de próstata. A partir de los resultados de efectividad, la utilización y opinión del experto urólogo Dr. Álvaro Gutiérrez se puede considerar que el sistema experto es una buena herramienta diagnóstica para los profesionales de la salud colombiana, en el campo del cáncer de próstata. El presente proyecto es un aporte para los estudiantes que están cursando las materias de programación funcional y
53
54
Universidad El Bosque - Facultad de Ingeniería de Sistemas
sistemas expertos de la Universidad El Bosque. Durante la investigación se desarrolló un tutorial para hacer la instalación de la librería JESS 7.0 para el compilador Eclipse SDK 3.2.1 como plugin, para el desarrollo de aplicaciones en CLIPS, JESS y JAVA™. RECONOCIMIENTO A Álvaro Gutiérrez. Doctor, Urólogo de la Universidad El Bosque, por sus amplios aportes al conocimiento del sistema experto, por el tiempo, la amabilidad y la colaboración prestados. REFERENCIAS [1] Antígeno Prostático Específico PSA. Recuperado el 20 de Septiembre de 2006. http://geosalud.com/Cancerpacientes/psa.htm. [2] Antígeno Prostático Específico. Recuperado el 20 de septiembre de 2006 de http://es.w ikipedia.org. [3] ARBEL AEZ ARANGO, Santiago. Carcinoma Prostático T1c: Análisis Clínico y Anatomopatológico de 202 casos Tratados con Prostatectomia Radical. Barcelona, 2003, 229p. Tesis (Doctorado) Universidad de Barcelona. Facultad de Medicina. Departamento de Cirugía.
[4] A R BEL A E Z, Gino. BRAVO, Luis Eduardo. CARBONELL, Jorge. RESTREPO, Andrés. QUIROZ, Amelia. Fiabilidad del antígeno prostático específico en el diagnóstico de cáncer de próstata, Urología Colombiana. Volumen XII, agosto 2003. [5] CAJIGAS Jaime Andrés, GOMEZ Felipe, LATTIF Alfonso, MEDINA Camilo Andrés, SERRANO Alfonso. Guía De Manejo Para El Tratamiento Del Carcinoma Avanzado De La Próstata, Sociedad Colombiana De Urología Guías De Práctica Clínica (Gpc). Recuperado el 11 de Octubre de 2005. http://scu.org.co/Pdf/1.pdf. [6] GIARRATANO, Joseph y RILEY, Gary. Sistemas Expertos, Principios y Programación. México: 3ra edición, 2001. 579p. [7] GIARRATANO, Joseph y RILEY, Gary. Sistemas Expertos, Principios y Programación. México: 3ra edición, 2001. 579p
Artículo de investigación Científica y Tecnológica. El Autor
Andrés Leonardo Corredor Mahecha. Ingeniero de Sistemas de la Universidad El Bosque; marcada afinidad por la Rama de Inteligencia Artificial, con énfasis en sistemas expertos. e-mail: andrescorredor@sistemasunbosque.edu.co
Anteriores Publicaciones Revista de Tecnología
Volumen 1 Número 1 • Editorial • Aptitudes del ingeniero de software Ninfa Delgado. • CORBA Juan Manuel Velásquez. • GNU/Linux en la U Juan Carlos Cadena. • Hacia una implementación homogénea de control de acceso en bases de datos relacionales Orlando López C. • Nuevas tendencias para la implementación de sistemas de procesamiento paralelo Carlos F. Varela Pérez. • Redes privadas virtuales Fernando Torres, Fabian Romero. • La mente, ¿una computadora biológica? Hernando Ramírez. • Sobre lo sistemático y lo sistémico Orlando López C. • La importancia del saber matemático Maribel Cortés, Nancy Martínez. • La administración y los sistemas Guillermo Giraldo. • Taylor, el ingeniero que determinó la administración: Taylorismo como máxima expresión del cartesianismo en la administración Orlando López C.
Volumen 2 Número 1 • Ingeniería de Sofware: Entre la tradición de la Programación y el Management Orlando López C. • Fotorrealismo José Luis Espinosa. • Modelos de sombreado y color en animación por computador Nelson Hernández. • Gestión integrada de telecomunicaciones y el modelo TMN de la ITU Carlos F. Varela Pérez. • Comunicaciones Industriales Nidya Monroy. • Hombre Vs. Máquinas... Y quién tendrá el control? Hernando Ramírez. • La Sección Áurea Leonardo Donado. • De la Linealidad a la Fractalidad: El Principio de la Recursividad Nancy Martínez. • Henri Fayol: the mines engineer and his approach to a system view of management Orlando López C. • Invertir: es toda una Estrategia Guillermo Giraldo. • Self Control: Intelligent Organizations Orlando López C.
56
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Volumen 2 Número 2 • Posicionamiento y de Navegación satelital Carlos F. Varela Pérez. • Redes Inalámbricas Eduardo Avendaño. • Robustness in Robotics Pedro Díaz. • Introducción a los Músculos Artificiales Jorge Jiménez. • Visión Artificial Nelson Hernández. • Una Aplicación de Mathlab Oswaldo Rojas. • Hackers & Crackers & Phreackers: Una Perspectiva Ética Orlando López C. • La Otra alternativa: simbiosis ente el hombre y la máquina transhumanismo Hernando Ramírez. • La Estadística en un proceso de decisión social Leonardo Donado. • Tecnología en la Matemática Esmeralda Monroy. • Aplicación de redes neuronales para el reconocimiento de voz Juan Carlos Cadena. • Técnicas de Procesamiento de Imágenes Carolina Méndez, Juliana Bustamante. • Ambientes Virtuales de Aprendizaje Nidya Monroy, Ninfa Delgado.
Volumen 3 Número 1 • Genetic Algorithms Pedro Díaz. • Evolutionary computation applied to intrusion detection Pedro Díaz. • Protección y Seguridad Informática /ISO 17799 Orlando López C. • Comunidades virtuales, redes temáticas y su implementación Carlos F. Varela Pérez. • Arquitectura para M-commerce Eduardo Avendaño. • Ante la enorme influencia de la Era Digital, es necesario el Humanismo. Más lectura para los profesionales de la Ciencia y la Tecnología. Francisco Tamayo Collins. • La Investigación como agente de renovación de paradigmas Orlando López C. • Conocer-representar-transformar: Caminos diversos para acceder al conocimiento de tipo geométrico. Nancy Martínez. • Comparación entre las técnicas de control de riesgo en los bancos comerciales y de inversión Guillermo Giraldo. • Ambiente Virtual de Aprendizaje (AVA) como herramienta de apoyo a la educación Nidya Monroy, Ninfa Delgado. • Nuestros compañeros, los androides Hernando Ramírez. • Importancia de la ayuda multimedia en los estudiantes José Luis Espinosa.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
Volumen 3 Número 2 • Red Neuronal Artificial de crecimiento basado en comunicación de clientes y servidores por protocolo TCP/IP "Neuroinformador” Luis Ernesto Sanz. • Conceptos Generales de Gestión del Conocimiento Carlos F. Varela Pérez. • Computación en Malla Guiovanna Sabogal. • Software Libre como solución para el atraso tecnológico de nuestro país Alejandro León. • Conociendo y haciendo scripts en Linux Laura Paredes, Edwin Casallas. • El poder del mago de la información: esteganografía Mauricio Sáenz. • Informática Educativa al día Nidya Monroy. • Políticas de seguridad informática... Seguras Orlando López C. • Algoritmo Genético para el problema del Job-Shop Juan Carlos Villamizar, María Cervantes, Paola Andrea Acevedo, Alexa Oviedo. • Técnicas para resolver el problema de satisfactibilidad y sus aplicaciones Juan Carlos Villamizar • La resolución de problemas: una estrategia holística para el desarrollo del pensamiento matemático Nancy Martínez. • El algoritmo de la División Leonardo Donado. • Fórmulas para la solución de ecuaciones de 3o y 4o Orden Marlene Garzón • Fundamento de procesamiento digital de imágenes Nelson Hernández. • Software para multimedia José Luis Espinosa. • Enseñanza de las humanidades Francisco Tamayo Collins. • Los bancos centrales en la economía mundial Guillermo Echeverry. • Transhumanistas aseguran que la especie, hoy en día, representa el principio de la evolución Gloria Helena Rey.
Volumen 4 Número 1 • J2ME: Software libre para aplicaciones móviles Edwin Casallas, Laura Paredes. • Ingeniería de Teletráfico y herramientas de software libre Guiovanna Sabogal. • Fundamentos de tecnología XDSL y ADSL Carlos F. Varela Pérez. • Ingeniería del software basada en componentes Alejandra Cechic, Mario Piatinni. • El papel de la educación virtual en la reconstrucción de la socioeconomía colombiana Luis Sanz. • Agentes virtuales racionales Nidya Monroy. • Con los pelos de punta Gilberto Cediel. • Computación gráfica y su relación con el álgebra abstracta Nelson Hernández. • Introducción a procesamiento paralelo Daniel Burbano. • La globalización y la desregularización del comercio y el capital Guillermo Giraldo.
57
58
Universidad El Bosque - Facultad de Ingeniería de Sistemas
Volumen 4 Número 2 • El aluvión económico de los satélites de comunicación Francisco Sacristán. • La organización sistémica de la ciencia, la tecnología y la innovación en Colombia: Una visión estratégica del sistema nacional Sonia Esperanza Monroy. • Aplicaciones Empresariales usando plataforma J2EE Gina Mosquera, David Bracho. • Programación Visual como herramienta de productividad en la enseñanza de Ingeniería de Sistemas Alejandro León. • Matlab, el aprendizaje basado en indagación y el desarrollo de competencias profesionales Mauricio Duque. • Simulación de redes ad hoc y evaluación de parámetros bajo cuatro modelos de movilidad Miguel Saumett. • Los depósitos centralizados de valores como mediadores de riesgo en los mercados de capitales Guillermo Giraldo.
Volumen 5 Número 1 • Editorial - Huir hacia adelante Orlando López C. • Sistematización del Test de abdominales de la batería de condición física EUROFIT Yessika Méndez. • Entorno virtual de aprendizaje remoto sobre Grid EVA R-GRID Daniel Burbano, Guiovanna Sabogal, Pedro Organista. • Análisis del sonido, representación y comprensión de imágenes mediante Mathlab Samuel Barreto, Milton Lesmes. • El teorema de Shannon y la criptografía Leonardo Donado. • Sistema de transmisión de mensajes utilizando un sistema de transmisión radial en FM Miguel Saumett.
Volumen 5 Número 2 • Sistema de información integrado para el Centro de Servicios del Sena Regional Bogotá Claudia Monroy, Carlos Ortiz. • Trabajador, trabajo y sociedad. Una relación que se complejiza en la interacción Saudiel López C., Viviana Muñoz. • Sistematización de información para historias clínicas odontológicas y generación de estadísticas Luz Nidia Espitia. • Evaluación de las diferentes herramientas utilizadas en la implementación de Grids María Carolina Pardo, Daniel Burbano. • Construcción de ayudas didácticas para la enseñanza de programación orientada a objetos usando Java ™ 50 Alejandro León, Carolina Torres. • Los Weblogs y la Educación en la Facultad de Ingeniería de Sistemas de la Universidad El Bosque Jesson F. Pérez, Carlos F. Garavito, Alejandro León. • Diseño e implementación de un sistema de comunicación y de mensajería de voz sobre IP a través de redes LAN conectadas por protocolo TCP/IP Didier M. Muñoz, José A. Ballén, Carlos F. Varela Pérez. • Evaluación de la transmisión de datos en una red GPRS por medio de Ns2 Miguel Calvache, César Rodríguez. • La feria del plagio Francisco Reyes Villamizar.
Políticas Editoriales La REVISTA DE TECNOLOGÍA es publicada semestralmente por la Universidad El Bosque, en Bogotá D.C., Colombia y está comprometida con divulgación de documentos originales y de calidad científica que resulten de estudios y avances de la Universidad El Bosque y de la comunidad académica. La REVISTA DE TECNOLOGÍA está abierta a recibir todos los documentos que sean postulados dentro de los Objetivos y Alcance de esta publicación. No obstante, para garantizar los objetivos de calidad inherentes a toda publicación científica, todo documento es expuesto a la revisión de un par evaluador. En todo caso, el Comité Editorial se reserva el derecho de publicar los documentos recibidos. Los documentos son recibidos en idioma castellano o en idioma inglés. En todo caso, cuando el documento es enviado en idioma castellano, debe incluir la versión sumaria equivalente al RESUMEN en inglés con el título ABSTRACT. Para mayores detalles acerca del formato de los artículos, puede consultar y copiar el formato mediante el enlace a la plantilla del formato de artículos*. Los autores que deseen publicar en la REVISTA DE TECNOLOGÍA pueden enviar sus artículos en cualquier época del año. El Comité Editorial se reserva el derecho de indicar al autor postulante las modificaciones formales que deban ser introducidas a su documento postulado con el fin de cumplir con las características de calidad de la publicación. Una vez que el documento postulado cumpla con las características formales requeridas y eventualmente indicadas para su publicación, el Comité Editorial tomará hasta seis (6) meses para efectuar la publicación del documento o comunicar al autor postulante sobre la decisión de postergar la publicación del mismo. Para detalles sobre cada convocatoria a escribir artículos, consulte Call for papers. El siguiente orden establece las categorías de prioridad de preferencia de los documentos que publica la REVISTA DE TECNOLOGÍA, siendo los primeros los más preferidos: 1. Artículos de Investigación científica y tecnológica: Son documentos que exponen en forma detallada resultados originales de proyectos de investigación académica. La estructura formal de este documento puede ser obtenida mediante el enlace a la plantilla del formato de artículos.* 2. Artículos de Reflexión: Son documentos que presentan resultados de investigaciones desde una perspectiva analítica, interpretativa o crítica del autor, sobre un tema específico, recurriendo a fuentes originales. La estructura formal de este documento puede ser obtenida mediante el enlace a la plantilla del formato de artículos.* 3. Artículos de revisión: Son documentos que presentan resultados de una investigación. Este tipo de documentos analizan, sistematizan e integran los resultados de investigaciones publicadas o no publicadas, sobre un campo de conocimiento de la ciencia o la tecnología. Este tipo de documentos tiene como finalidad informar los avances y las tendencias de desarrollo. Se caracteriza por presentar una cuidadosa revisión bibliográfica de por lo menos cincuenta (50) referencias. La estructura formal de este documento puede ser obtenida mediante el enlace a la plantilla del formato de artículos.* 4. Artículos cortos: Son documentos que presentan de manera sucinta los resultados preliminares (originales) o resultados parciales de una investigación científica o tecnológica, que por lo general requieren de una pronta difusión. La estructura formal de este documento puede ser obtenida mediante el enlace a la plantilla del formato de artículos.* 5. Reportes de caso: Son documentos que presentan los resultados de un estudio sobre una situación particular con el fi n de dar a conocer las experiencias técnicas y metodológicas consideradas en un caso específico. Incluye una revisión sistemática comentada de la literatura sobre casos análogos. La estructura formal de este documento puede ser obtenida mediante el enlace a la plantilla del formato de artículos.* 6. Revisión de tema: Son documentos que informan el resultado de la revisión crítica de la literatura sobre un tema particular.
* El formato de artículos puede ser obtenido en el sitio web: www.sistemasunbosque.edu.co, link: revista, link: formato de artículos.
7. Traducciones: Son documentos que vierten al castellano la traducción de textos clásicos o de actualidad. También pueden ser transcripciones de documentos históricos o de interés particular dentro del dominio establecido como Objetivos y Alcance de la REVISTA DE TECNOLOGÍA. 8. Cartas al Editor: Son documentos que contienen posiciones críticas, analíticas o interpretativas sobre los documentos publicados en la REVISTA DE TECNOLOGÍA y que a juicio del Comité Editorial de la misma constituyen un aporte importante a la discusión del tema por parte de la comunidad científica o de tecnología en general y de tecnología informática en particular. 9. Documentos de reflexión no derivados de investigación: Son documentos que responden más a la posición particular de un autor o autores acerca de un tema específico. Como su nombre lo indica, tiene un carácter menos objetivo que las categorías 1 a 5 de esta categorización de prioridades. 10. Reseñas bibliográficas: Son documentos que reportan la reseña realizada a un libro en cualquier idioma y que puede ser punto de referencia a los investigadores. Adjunte una imagen de la portada del libro y, de considerarlo necesario, de la contracarátula del mismo.
Comité Editorial. REVISTA DE TECNOLOGÍA Universidad El Bosque Bogotá, D.C., Colombia