revista de tecnología

62

Upload: universidad-el-bosque

Post on 20-Feb-2016

222 views

Category:

Documents


6 download

DESCRIPTION

Revista de Tecnología. enero a junio de 2007 » volumen6 » número1

TRANSCRIPT

Page 1: Revista de Tecnología
Page 2: Revista de Tecnología

Bogotá D.C., Colombia • [email protected] • Volumen 6 Número 1 • Enero a Junio de 2007

UNIVERSIDAD EL BOSQUE

RECTORDr. Jaime Escobar Triana

VICERRECTOR ACADÉMICODr. Erix Bozón Martínez

VICERRECTOR ADMINISTRATIVODr. Carlos Felipe Escobar Roa

SECRETARÍA GENERALDr. Luis Arturo Rodríguez

DECANO FACULTADINGENIERÍA DE SISTEMAS

Ing. Jairo Hernán Barragán Gó[email protected]

DIRECTORA DE INVESTIGACIONESFACULTAD DE INGENIERÍA

Ing. Giovanna [email protected]

SECRETARIO ACADÉMICOIng. Hernando Ramírez Llinas

[email protected]

DIRECTOR ÁREA BÁSICALic. Marlene Garzón

[email protected]

DIRECTOR ÁREA PROFESIONALIng. Carlos Ortiz Buitrago

[email protected]

DIRECTOR ÁREADE TELECOMUNICACIONESIng. Carlos Fernando Varela Pérez

[email protected]

DIRECTORA ÁREA LABOR SOCIALDra. Sandra Angarita

[email protected]

DIRECTOR REVISTA DE TECNOLOGÍADr. Saudiel O. López Cruz

[email protected]

COMITÉ EDITORIALIng. Jairo Barragán G. - Universidad El BosqueIng. Liliana Buitrago - Universidad El BosqueDr. César A. Mendoza - Universidad Nacional

Dr. Saudiel O. López C. - Universidad El BosqueDr. Oswaldo J. Gómez Díaz - Universidad Nacional

Revista de TecnologíaFacultad de Ingeniería de Sistemas

ISSN 1692-1399Volumen 6 Número 1

Para información sobre tarifas publicitarias comunicarse con la Dirección de la Revista:

[email protected]

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: [email protected].

SUSCRIPCIONES Y PUBLICIDAD:

La REVISTA DE TECNOLOGÍA ISSN 1692-1399 lo invita a dirigir sus órdenes publicitarias a la correo electrónico [email protected] 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ó[email protected] 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.

Page 3: Revista de Tecnología

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:[email protected].

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: [email protected]. 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 [email protected].

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 ideascontained in the material herein.

© De cada texto su Autor.© 2007 Universidad El BosqueEdiciones El Bosque • Transversal 7 B Bis 132-11PBX: 633 1368 - 633 1320 Fax: 625 2030.Facultad de Ingeniería de SistemasTel.: 520 4018Página web: www.sistemasunbosque.edu.co Link: Revista.e-mail: [email protected]á, D.C., Colombia.ISSN 1692-1399Diseño de Portada:Andrea OsorioDiagramación:Centro de Diseño • Universidad El Bosque.PBX: 648 9000 Ext.: 311-322Impresión:

Bogotá D.C., ColombiaJunio de 2007

ContenidoCon 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 r e cono c idos p rog r a ma s 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.

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. 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™. ______________________________________________________________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 RESPONSABILIDADLa 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.

5

7

19

25

43

49

Page 4: Revista de Tecnología

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:[email protected].

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: [email protected]. 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 [email protected].

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 ideascontained in the material herein.

© De cada texto su Autor.© 2007 Universidad El BosqueEdiciones El Bosque • Transversal 7 B Bis 132-11PBX: 633 1368 - 633 1320 Fax: 625 2030.Facultad de Ingeniería de SistemasTel.: 520 4018Página web: www.sistemasunbosque.edu.co Link: Revista.e-mail: [email protected]á, D.C., Colombia.ISSN 1692-1399Diseño de Portada:Andrea OsorioDiagramación:Centro de Diseño • Universidad El Bosque.PBX: 648 9000 Ext.: 311-322Impresión:

Bogotá D.C., ColombiaJunio de 2007

ContenidoCon 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 r e cono c idos p rog r a ma s 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.

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. 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™. ______________________________________________________________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 RESPONSABILIDADLa 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.

5

7

19

25

43

49

Page 5: Revista de Tecnología

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: [email protected]. En el asunto (subject) del mensaje indicar «Artículo para publicar» y como anexo un archivo en Microsoft Word, con las siguientes 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.

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.

INVITACIÓN A ESCRIBIR ARTÍCULOS

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.

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.

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.

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

Saudiel O.López Cruz

Page 6: Revista de Tecnología

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: [email protected]. En el asunto (subject) del mensaje indicar «Artículo para publicar» y como anexo un archivo en Microsoft Word, con las siguientes 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.

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.

INVITACIÓN A ESCRIBIR ARTÍCULOS

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.

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.

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.

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

Saudiel O.López Cruz

Page 7: Revista de Tecnología

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 CruzDirectore-mail: [email protected]

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 SierraJuan Carlos Villamizar Perdomo

Resumen

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 ratado con métodos de programación lineal convencionales.

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 distr ibuciones que resulten más económicas.

Pa labras c l aves : A lg o r i t m o , Co 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.

Abstract

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. 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.

Page 8: Revista de Tecnología

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 CruzDirectore-mail: [email protected]

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 SierraJuan Carlos Villamizar Perdomo

Resumen

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 ratado con métodos de programación lineal convencionales.

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 distr ibuciones que resulten más económicas.

Pa labras c l aves : A lg o r i t m o , Co 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.

Abstract

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. 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.

Page 9: Revista de Tecnología

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 procesos estocá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:

“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].

• 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.

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

• Selección:

• Cruce:

• Mutación:

• Elitismo:

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:

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

Figura 1. Representación de un individuo.

Figura 2. Cruce y mutación.

1 0 1 0 1 1 1 0 1 0 0 0

0 0 1 1 0 0 0 0 1 1 1 1

0 1 1 1 0 0

0 1 0 1 0 0

CRUCE

Padres Hijos

Mutación

Antes

Después

8 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 9

Page 10: Revista de Tecnología

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 procesos estocá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:

“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].

• 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.

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

• Selección:

• Cruce:

• Mutación:

• Elitismo:

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:

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

Figura 1. Representación de un individuo.

Figura 2. Cruce y mutación.

1 0 1 0 1 1 1 0 1 0 0 0

0 0 1 1 0 0 0 0 1 1 1 1

0 1 1 1 0 0

0 1 0 1 0 0

CRUCE

Padres Hijos

Mutación

Antes

Después

8 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 9

Page 11: Revista de Tecnología

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.

Estructura de un algoritmo genético

La estructura de un algoritmo genético se representa mediante la siguiente secuencia de acciones:

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í

Estructura de un algoritmo genético

A. Generalidades

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.

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).

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

1la transparencia.

El diseño de las bases de datos centralizadas contempla 2los dos puntos siguientes:

• 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).

B. Factores a considerar en la construcción de una BDD

Crear y evaluar la población inicial de cromosomas

Hacer

Seleccionar y reproducir dos cromosomas

Selección, cruce, mutación

Evaluar el fitness del nuevo hijo

Sustituir generación

Hasta cumplir criterio de terminación

Cromosoma Palabra Aptitud

A 100100 1296B 010010 324C 010110 484D 000001 1

f( )

Padres

Hijos

Evaluaciónde los hijos

Reproducción

Evolución

Figura 3. Ciclo de un algoritmo genético

Figura 4. Un medio ambiente distribuido para basesde datos.

Red deComunicaciones

Bogotá

Cali

BarranquillaMedellín

Manizales

• 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 largo aún para grandes super 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:

A. Deducción del modelo de costos

• Requerimientos de información

Información sobre la base de datos.

1 Bell, D.; Germson, J. "Distributed Database Systems". Addison Wesley, 1992

2 Ceri, S.; Pelagatti, G. "Distributed Database. Principles and Systems". Mc.Graw-Hill, 1985

10 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 11

Page 12: Revista de Tecnología

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.

Estructura de un algoritmo genético

La estructura de un algoritmo genético se representa mediante la siguiente secuencia de acciones:

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í

Estructura de un algoritmo genético

A. Generalidades

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.

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).

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

1la transparencia.

El diseño de las bases de datos centralizadas contempla 2los dos puntos siguientes:

• 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).

B. Factores a considerar en la construcción de una BDD

Crear y evaluar la población inicial de cromosomas

Hacer

Seleccionar y reproducir dos cromosomas

Selección, cruce, mutación

Evaluar el fitness del nuevo hijo

Sustituir generación

Hasta cumplir criterio de terminación

Cromosoma Palabra Aptitud

A 100100 1296B 010010 324C 010110 484D 000001 1

f( )

Padres

Hijos

Evaluaciónde los hijos

Reproducción

Evolución

Figura 3. Ciclo de un algoritmo genético

Figura 4. Un medio ambiente distribuido para basesde datos.

Red deComunicaciones

Bogotá

Cali

BarranquillaMedellín

Manizales

• 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 largo aún para grandes super 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:

A. Deducción del modelo de costos

• Requerimientos de información

Información sobre la base de datos.

1 Bell, D.; Germson, J. "Distributed Database Systems". Addison Wesley, 1992

2 Ceri, S.; Pelagatti, G. "Distributed Database. Principles and Systems". Mc.Graw-Hill, 1985

10 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 11

Page 13: Revista de Tecnología

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:

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 necesar io conocer sus capacidades t anto 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

Información sobre las aplicaciones.

1 si la consulta qi recupera desde el fragmento Fj 0 si la consulta qi NO recupera desde el fragmento Fj

1 si la consulta qi actualiza el fragmento Fj

0 si la consulta qi NO actualiza el fragmento Fj

rij =

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.

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

A continuación se tratará de ampliar las componentes de este modelo. Se define la variable de decisión xij de la siguiente manera:

La función de costo total tiene dos componentes: procesamiento de consultas y almacenamiento. Así, puede ser expresado de la siguiente forma:

(1)

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:

• Modelo de localización

min (Costo Total)

xij

1 si el fragmento Fj es almacenado en el nodo Sj 0 en otro caso

xij =

∑∑∑∈∀∈∀∈∀

+=FF

jkSsQq

i

jki

STCQPCTOC

QPCi = PCi + TCi (3)

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:

PCi = ACi + IEi + CCi(4)

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:

(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:

(7)

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:

(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

* La restricción de almacenamiento se puede especificar como:

que la capacidad de a lmacenamiento del nodo

• Restricciones

jkkijijijFF

ijSS

i xLPCRRrURuACjk

**)**( += ∑∑∈∀∈∀

∑∑

∑∑

∈∀∈∀

∈∀∈∀

+=

FFjkiokij

SS

FFjkkioij

SSi

jk

jk

xgu

xguTCU

**

**

)(,

),(

)*)(*

**

**(

)(,

),(min

jk

jji

iokij

jkkioijFF SS

i

xfsize

Flengthselgr

xguTCRj k

+= ∑∈∀ ∈

Qqq ii ∈∀,

≤∑∈∀ FF

jk

j

STC

SSS kk ∈∀,

12 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 13

Page 14: Revista de Tecnología

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:

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 necesar io conocer sus capacidades t anto 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

Información sobre las aplicaciones.

1 si la consulta qi recupera desde el fragmento Fj 0 si la consulta qi NO recupera desde el fragmento Fj

1 si la consulta qi actualiza el fragmento Fj

0 si la consulta qi NO actualiza el fragmento Fj

rij =

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.

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

A continuación se tratará de ampliar las componentes de este modelo. Se define la variable de decisión xij de la siguiente manera:

La función de costo total tiene dos componentes: procesamiento de consultas y almacenamiento. Así, puede ser expresado de la siguiente forma:

(1)

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:

• Modelo de localización

min (Costo Total)

xij

1 si el fragmento Fj es almacenado en el nodo Sj 0 en otro caso

xij =

∑∑∑∈∀∈∀∈∀

+=FF

jkSsQq

i

jki

STCQPCTOC

QPCi = PCi + TCi (3)

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:

PCi = ACi + IEi + CCi(4)

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:

(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:

(7)

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:

(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

* La restricción de almacenamiento se puede especificar como:

que la capacidad de a lmacenamiento del nodo

• Restricciones

jkkijijijFF

ijSS

i xLPCRRrURuACjk

**)**( += ∑∑∈∀∈∀

∑∑

∑∑

∈∀∈∀

∈∀∈∀

+=

FFjkiokij

SS

FFjkkioij

SSi

jk

jk

xgu

xguTCU

**

**

)(,

),(

)*)(*

**

**(

)(,

),(min

jk

jji

iokij

jkkioijFF SS

i

xfsize

Flengthselgr

xguTCRj k

+= ∑∈∀ ∈

Qqq ii ∈∀,

≤∑∈∀ FF

jk

j

STC

SSS kk ∈∀,

12 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 13

Page 15: Revista de Tecnología

* La restricción del tiempo de procesamiento es:

carga de procesamiento de qi en Sk capacidad de almacenamiento del nodo

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.

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:

(9)

B. Planteamiento del algoritmo

• Parámetros generales

m: Numero de sitios o nodos de la redn: Número de fragmentosr: Número de consultas

• Variables del problema

Um[ ][ ]:Matriz de decisión de actualizaciónrm[ ]:Matriz de decisión de lecturax[ ][ ]:Matriz de individuoo[ ]:Vector de orígenes de las consultasg[ ][ ]:Matriz costos de transmisiónur[ ][ ]:Matriz de frecuencias de actualizaciónrr[ ][ ]:Matriz de frecuencias de lectura

B. Planteamiento del algoritmo

• Parámetros generales

• Variables del problema

Um[ ][ ]rm[ ]x[ ][ ]o[ ]g[ ][ ]ur[ ][ ]rr[ ][ ]

lpc[ ]:Vector de costo unitario de procesosel[ ][ ]: Matriz de selectividad de los fragmentoslen[ ]:Vector de longitud de tuplassize[ ]:Vector de tamaño de Fragmento

• Variables del Algoritmo genético

procruce: Probabilidad de crucepromutación: Probabilidad de mutacióntamp: Tamaño de la poblaciónnumgen: Número de Generaciones

• Diagramas de flujo Generales

lpc[ ]sel[ ][ ]len[ ]size[ ]

• Variables del Algoritmo genético

procrucepromutacióntampnumgen

• Diagramas de flujo Generales

∑∈∀ Qqi

SSS kk ∈∀,

[ ++= ∑∑∑∈∀∈∀∈∀

jkkijijijFF

ijSSQq

xLPCRRrURuTOCjki

**)**(

++ ∑∑∑∑∈∀∈∀∈∀∈∀

)***** )(,),( jkFF

jkiokijSSFF

jkkioijSS

xxguxgujkjk

]++∑∈∀ ∈ fsize

Flengthselgrxgu

jji

iokijjkkioijFF SSj k

)(*****( )(,),(min

∑∑∈∀∈∀ FFSs jk

jkjk x* ) F size( * USC

No

Nuevo

Parámetros Generales

Variablesproblema

Configuracióndel sistema

Archivos Datos

Cargar Datos

No

¿Sale?

Inicio

Algoritmo Genéticos

Fin

Figura 5.Diagrama General

Sacar mejor individuo

Algoritmo Genético

Mejor individuo, costo

Fin

Definir vector mejores [ ]

Población Inicial

i<=0; generaciones; 1

Evaluación

Agregar mejor a mejores [ ]

Selección

Aptitud

Cruce

Cambio Generación

Figura 6.Diagrama Algoritmo Genético

• Pseudocódigo de funciones

Función población inicial Definir vector Población Para j=0 hasta tamp

Definir vector individuoPara i=0 hasta m*n Generar aleatorio entre 0-1 Agregar aleatorio a vector individuoSiguiente iAgregar vector individuo a Población

Siguiente jFin Función Función evaluación Definir ct=0; //Costo total Para i=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 i=0 hasta n

Definir suma2=0;Para j=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 ctFin FunciónFunción aptitud // Calcula y guarda las aptitudes de todos los individuos Definir vector aptitudes Definir suma A=0 // Suma total de Aptitudes Para i=0 hasta tamaño del vector evaluaciones aptitud= mayor - iésimo elemento de evaluaciones Agregar aptitud al vector de aptitudes SumaA=sumaA+aptitud

Siguiente iFin Función

Función selección // selecciona a los padres más aptos Definir suma1, suma2 Definir vector padres//contendrá los padres seleccionados Para i=0 hasta tamp

uno=aleatorio entre 1- SumaASuma1=0;Para j=0 hasta tampval=iésimo elemento del vector aptitudes Si val 0

suma2=suma1suma1=suma1+val

Si suma1=uno=suma2posició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

• Pseudocódigo de funciones

población inicial

Para j

Para i

Siguiente i

Siguiente j

evaluación

Para iCosto de proceso

Costo de Transmisión Siguiente i

Costo Almacenamiento

Para i

Para j Si

Fin Si

Siguiente j Siguiente i

aptitud

Para i

selección

Para i

Si

Si

Fin Si Fin Si Siguiente j

Siguiente i

Retornar

14 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 15

Page 16: Revista de Tecnología

* La restricción del tiempo de procesamiento es:

carga de procesamiento de qi en Sk capacidad de almacenamiento del nodo

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.

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:

(9)

B. Planteamiento del algoritmo

• Parámetros generales

m: Numero de sitios o nodos de la redn: Número de fragmentosr: Número de consultas

• Variables del problema

Um[ ][ ]:Matriz de decisión de actualizaciónrm[ ]:Matriz de decisión de lecturax[ ][ ]:Matriz de individuoo[ ]:Vector de orígenes de las consultasg[ ][ ]:Matriz costos de transmisiónur[ ][ ]:Matriz de frecuencias de actualizaciónrr[ ][ ]:Matriz de frecuencias de lectura

B. Planteamiento del algoritmo

• Parámetros generales

• Variables del problema

Um[ ][ ]rm[ ]x[ ][ ]o[ ]g[ ][ ]ur[ ][ ]rr[ ][ ]

lpc[ ]:Vector de costo unitario de procesosel[ ][ ]: Matriz de selectividad de los fragmentoslen[ ]:Vector de longitud de tuplassize[ ]:Vector de tamaño de Fragmento

• Variables del Algoritmo genético

procruce: Probabilidad de crucepromutación: Probabilidad de mutacióntamp: Tamaño de la poblaciónnumgen: Número de Generaciones

• Diagramas de flujo Generales

lpc[ ]sel[ ][ ]len[ ]size[ ]

• Variables del Algoritmo genético

procrucepromutacióntampnumgen

• Diagramas de flujo Generales

∑∈∀ Qqi

SSS kk ∈∀,

[ ++= ∑∑∑∈∀∈∀∈∀

jkkijijijFF

ijSSQq

xLPCRRrURuTOCjki

**)**(

++ ∑∑∑∑∈∀∈∀∈∀∈∀

)***** )(,),( jkFF

jkiokijSSFF

jkkioijSS

xxguxgujkjk

]++∑∈∀ ∈ fsize

Flengthselgrxgu

jji

iokijjkkioijFF SSj k

)(*****( )(,),(min

∑∑∈∀∈∀ FFSs jk

jkjk x* ) F size( * USC

No

Nuevo

Parámetros Generales

Variablesproblema

Configuracióndel sistema

Archivos Datos

Cargar Datos

No

¿Sale?

Inicio

Algoritmo Genéticos

Fin

Figura 5.Diagrama General

Sacar mejor individuo

Algoritmo Genético

Mejor individuo, costo

Fin

Definir vector mejores [ ]

Población Inicial

i<=0; generaciones; 1

Evaluación

Agregar mejor a mejores [ ]

Selección

Aptitud

Cruce

Cambio Generación

Figura 6.Diagrama Algoritmo Genético

• Pseudocódigo de funciones

Función población inicial Definir vector Población Para j=0 hasta tamp

Definir vector individuoPara i=0 hasta m*n Generar aleatorio entre 0-1 Agregar aleatorio a vector individuoSiguiente iAgregar vector individuo a Población

Siguiente jFin Función Función evaluación Definir ct=0; //Costo total Para i=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 i=0 hasta n

Definir suma2=0;Para j=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 ctFin FunciónFunción aptitud // Calcula y guarda las aptitudes de todos los individuos Definir vector aptitudes Definir suma A=0 // Suma total de Aptitudes Para i=0 hasta tamaño del vector evaluaciones aptitud= mayor - iésimo elemento de evaluaciones Agregar aptitud al vector de aptitudes SumaA=sumaA+aptitud

Siguiente iFin Función

Función selección // selecciona a los padres más aptos Definir suma1, suma2 Definir vector padres//contendrá los padres seleccionados Para i=0 hasta tamp

uno=aleatorio entre 1- SumaASuma1=0;Para j=0 hasta tampval=iésimo elemento del vector aptitudes Si val 0

suma2=suma1suma1=suma1+val

Si suma1=uno=suma2posició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

• Pseudocódigo de funciones

población inicial

Para j

Para i

Siguiente i

Siguiente j

evaluación

Para iCosto de proceso

Costo de Transmisión Siguiente i

Costo Almacenamiento

Para i

Para j Si

Fin Si

Siguiente j Siguiente i

aptitud

Para i

selección

Para i

Si

Si

Fin Si Fin Si Siguiente j

Siguiente i

Retornar

14 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 15

Page 17: Revista de Tecnología

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.

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.

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.

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.

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

Función Cruce Definir vectores hijo1, hijo2, nueva generación Para i=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 j=0 hasta posini

val1= jésimo elemento del vector hijo1Val2= jésimo elemento del vector hijo2Agregar val1 a hijo11Agregar val2 a hijo22

Siguiente j Para j=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 padreshijo2= iésimo+1 elemento del vector padresAgregar hijo1 al vector nueva generaciónAgregar hijo2 al vector nueva generación

Fin SiSiguiente i

Fin Función Función cambio Generación

Definir vector población // Para nueva generaciónPara i=0 hasta tamaño del vector nueva generaciónAgregar elemento iésimo del vector nueva generación al

vector PoblaciónSiguiente 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.

Cruce

Para i

Si

Para j

Siguiente j Para j

mutación mutación

Si no

Fin SiSiguiente i

cambio Generación

Para i

Siguiente i

C. Pruebas

Figura 7. Pantalla captura datos

Figura 8. Resultados Prueba 1

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

Tabla 2. Datos prueba 2Tabla1. 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 9. Resultados Prueba 2

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

Tabla3. Datos prueba 3

Figura 10. Resultados Prueba 3

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

Tabla 4. Datos prueba4

Figura 11. Resultados Prueba 4

16 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 17

Page 18: Revista de Tecnología

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.

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.

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.

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.

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

Función Cruce Definir vectores hijo1, hijo2, nueva generación Para i=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 j=0 hasta posini

val1= jésimo elemento del vector hijo1Val2= jésimo elemento del vector hijo2Agregar val1 a hijo11Agregar val2 a hijo22

Siguiente j Para j=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 padreshijo2= iésimo+1 elemento del vector padresAgregar hijo1 al vector nueva generaciónAgregar hijo2 al vector nueva generación

Fin SiSiguiente i

Fin Función Función cambio Generación

Definir vector población // Para nueva generaciónPara i=0 hasta tamaño del vector nueva generaciónAgregar elemento iésimo del vector nueva generación al

vector PoblaciónSiguiente 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.

Cruce

Para i

Si

Para j

Siguiente j Para j

mutación mutación

Si no

Fin SiSiguiente i

cambio Generación

Para i

Siguiente i

C. Pruebas

Figura 7. Pantalla captura datos

Figura 8. Resultados Prueba 1

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

Tabla 2. Datos prueba 2Tabla1. 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 9. Resultados Prueba 2

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

Tabla3. Datos prueba 3

Figura 10. Resultados Prueba 3

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

Tabla 4. Datos prueba4

Figura 11. Resultados Prueba 4

16 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 17

Page 19: Revista de Tecnología

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.

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.

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.

Resumen

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). 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.

Palabras clave: Computación paralela, Proceso de cargue, cluster, periodos de inactividad, inactividad.

Abstract

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.

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.

Keywords: Parallel computing, boot process, cluster ,idle periods, idleness.

Juan Carlos Villamizar PerdomoIngeniero 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 [email protected]

Luis Miguel Beltrán SierraLicenciado 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 [email protected]

Software de Plantificación para Generación Dinámica de Nodos de un Cluster en Linux

Daniel Burbano, MCpECésar Eduardo Guzmán González, IS

18 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Los Autores

Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.

Page 20: Revista de Tecnología

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.

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.

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.

Resumen

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). 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.

Palabras clave: Computación paralela, Proceso de cargue, cluster, periodos de inactividad, inactividad.

Abstract

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.

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.

Keywords: Parallel computing, boot process, cluster ,idle periods, idleness.

Juan Carlos Villamizar PerdomoIngeniero 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 [email protected]

Luis Miguel Beltrán SierraLicenciado 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 [email protected]

Software de Plantificación para Generación Dinámica de Nodos de un Cluster en Linux

Daniel Burbano, MCpECésar Eduardo Guzmán González, IS

18 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Los Autores

Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.

Page 21: Revista de Tecnología

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.

Elección del Sistema Operativo

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.

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

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.

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.

CARGADOR DEARRANQUE

MBR

BIOS

POST

Figura 1. Proceso de arranque del computador

20 Universidad El Bosque - Facultad de Ingeniería de Sistemas

INITIALPROGRAMLOADER

TABLA DEPARTICIONES

Figura 2. Componentes del Master Boot Record

1ªPartición

2ªPartición

3ªPartición

4ªPartición

FAT32 MB

NTFSDesignado por

el usuario

EXT3Designado por

el usuario

SWAPTamaño de RAM

del Sisitema

Figura 3. Particiones para funcionamiento de EVA R-Grid

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 21

Page 22: Revista de Tecnología

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.

Elección del Sistema Operativo

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.

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

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.

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.

CARGADOR DEARRANQUE

MBR

BIOS

POST

Figura 1. Proceso de arranque del computador

20 Universidad El Bosque - Facultad de Ingeniería de Sistemas

INITIALPROGRAMLOADER

TABLA DEPARTICIONES

Figura 2. Componentes del Master Boot Record

1ªPartición

2ªPartición

3ªPartición

4ªPartición

FAT32 MB

NTFSDesignado por

el usuario

EXT3Designado por

el usuario

SWAPTamaño de RAM

del Sisitema

Figura 3. Particiones para funcionamiento de EVA R-Grid

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 21

Page 23: Revista de Tecnología

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.

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 HKEY_PERFORMANCE_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.

A. Detección de inactividad en EVA R-Grid 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.

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

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.

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

B. Funcionamiento básico del sistema de monitoreo de inactividad.

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]ANDERSON, David P., et al. SETI@home: an exper iment in public-resource 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 <Ht t p : / /w w w-128 . i bm.com/develop e r wor 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.

[6] USA,Microsoft Corporation, Soporte Microsoft [ d o c u m e n t a c i ó n e n l i n e a ] , d i s p o n i b l e e n <http://support.Microsoft.com/kb/114841/>.

[ 7 ] US A , M i c r o s o f t C o r p o r a t i o n , M s d n librar y[documentación en linea], disponible en http://msdn.Microsoft.com/library/default.asp?url=/library/enus/perfctrs/perf/performance_counters_portal.asp

22 Universidad El Bosque - Facultad de Ingeniería de Sistemas

RegQueryValueEx

PerfLibADVAPI32.32DLL

PDH.DLL

WMI

Registry DLL ProviderI

Hi- Perf Provider InterfaceI

SystemPerformanceDLL

SystemPerformanceDLL

SystemPerformanceDLL

PerformanceExtensionDLL

PerformanceExtensionDLL

PerformanceExtensionDLL

Hi-Perf DataProviderObject

Hi-Perf DataProviderObject

Hi-Perf DataProviderObject

Figura 4 Librería Performance Data Helper (PDH)

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 23

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: [email protected]

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: [email protected]

Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.

Los Autores

Page 24: Revista de Tecnología

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.

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 HKEY_PERFORMANCE_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.

A. Detección de inactividad en EVA R-Grid 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.

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

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.

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

B. Funcionamiento básico del sistema de monitoreo de inactividad.

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]ANDERSON, David P., et al. SETI@home: an exper iment in public-resource 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 <Ht t p : / /w w w-128 . i bm.com/develop e r wor 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.

[6] USA,Microsoft Corporation, Soporte Microsoft [ d o c u m e n t a c i ó n e n l i n e a ] , d i s p o n i b l e e n <http://support.Microsoft.com/kb/114841/>.

[ 7 ] US A , M i c r o s o f t C o r p o r a t i o n , M s d n librar y[documentación en linea], disponible en http://msdn.Microsoft.com/library/default.asp?url=/library/enus/perfctrs/perf/performance_counters_portal.asp

22 Universidad El Bosque - Facultad de Ingeniería de Sistemas

RegQueryValueEx

PerfLibADVAPI32.32DLL

PDH.DLL

WMI

Registry DLL ProviderI

Hi- Perf Provider InterfaceI

SystemPerformanceDLL

SystemPerformanceDLL

SystemPerformanceDLL

PerformanceExtensionDLL

PerformanceExtensionDLL

PerformanceExtensionDLL

Hi-Perf DataProviderObject

Hi-Perf DataProviderObject

Hi-Perf DataProviderObject

Figura 4 Librería Performance Data Helper (PDH)

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 23

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: [email protected]

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: [email protected]

Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.

Los Autores

Page 25: Revista de Tecnología

Diseño del Prototipo de un Sistema Multiagente Tutor Virtual

Edward Alexander Duque Tamayo

Resumen

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.

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 MAS-CommonKADS 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.

Palabras Clave: Inteligencia Ar tificial. Sistema Multiagente. Informática Educativa. Material Educativo Computacional. Modelo Pedagógico Conductista Cognoscitivo. Estilos de Aprendizaje de Felder. P rog r a mac ión Or ien t ada a Agent e s. M A S-CommonKADS. Arquitectura Cliente-Servidor. JADE. JESS.

Abstract

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.

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 life-cycle 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.

Keywords: Artificial Intelligence. Multi-agent System. Educative Informatics. Educative Software Material. Behaviorism Cognitivism Pedagogical Model. Felder's Learning Styles. Agent-Oriented Programming. MAS-CommonKADS. Server-Client Architecture. JADE. JESS.

Personería Jurídica Resolución No. 11153 del 4 de Agosto de 1978 expedidda por el M.E.N.

Page 26: Revista de Tecnología

Diseño del Prototipo de un Sistema Multiagente Tutor Virtual

Edward Alexander Duque Tamayo

Resumen

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.

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 MAS-CommonKADS 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.

Palabras Clave: Inteligencia Ar tificial. Sistema Multiagente. Informática Educativa. Material Educativo Computacional. Modelo Pedagógico Conductista Cognoscitivo. Estilos de Aprendizaje de Felder. P rog r a mac ión Or ien t ada a Agent e s. M A S-CommonKADS. Arquitectura Cliente-Servidor. JADE. JESS.

Abstract

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.

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 life-cycle 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.

Keywords: Artificial Intelligence. Multi-agent System. Educative Informatics. Educative Software Material. Behaviorism Cognitivism Pedagogical Model. Felder's Learning Styles. Agent-Oriented Programming. MAS-CommonKADS. Server-Client Architecture. JADE. JESS.

Personería Jurídica Resolución No. 11153 del 4 de Agosto de 1978 expedidda por el M.E.N.

Page 27: Revista de Tecnología

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-servidor 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 MAS-CommonKADS. 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.

A. Agentes

• Autonomía:

• Reactividad:

• Proactividad:

• Inteligencia:

• Sociabilidad:

• Movilidad:

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.

Como los agentes responden a las percepciones del entorno, y esas percepciones están descritas en una se cuencia, és t a s ay uda rán a deter 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.

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].

26 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 1. Los agentes interactúan con el ambiente a travésde sensores y efectores [17]

Tabla 1. Objetos Vs. Agentes [13]

Tabla 2. Sistemas Expertos Vs. Agentes [13]

Tabla 3. Ejemplo de Diversos Tipos de Agentes y susCorrespondientes Descripciones Pama. [17]

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 27

Page 28: Revista de Tecnología

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-servidor 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 MAS-CommonKADS. 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.

A. Agentes

• Autonomía:

• Reactividad:

• Proactividad:

• Inteligencia:

• Sociabilidad:

• Movilidad:

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.

Como los agentes responden a las percepciones del entorno, y esas percepciones están descritas en una se cuencia, és t a s ay uda rán a deter 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.

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].

26 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 1. Los agentes interactúan con el ambiente a travésde sensores y efectores [17]

Tabla 1. Objetos Vs. Agentes [13]

Tabla 2. Sistemas Expertos Vs. Agentes [13]

Tabla 3. Ejemplo de Diversos Tipos de Agentes y susCorrespondientes Descripciones Pama. [17]

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 27

Page 29: Revista de Tecnología

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

B. Sistemas Multiagente

C. Paradigma de Programación Orientada a Agentes

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.

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 permita seguir la ruta 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.

A. Sistemas Tutoriales Inteligentes

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].

A. Sistemas Tutoriales Inteligentes

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.

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]

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.

28 Universidad El Bosque - Facultad de Ingeniería de Sistemas

function SKELETON - AGENT (percept) returns actionfunció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]

Tabla 4. Clasificación de los MECs según las FuncionesEducativas que asumen. [6]

Figura 3. Estructura Tradicional de un STI [7]

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 29

Page 30: Revista de Tecnología

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

B. Sistemas Multiagente

C. Paradigma de Programación Orientada a Agentes

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.

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 permita seguir la ruta 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.

A. Sistemas Tutoriales Inteligentes

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].

A. Sistemas Tutoriales Inteligentes

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.

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]

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.

28 Universidad El Bosque - Facultad de Ingeniería de Sistemas

function SKELETON - AGENT (percept) returns actionfunció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]

Tabla 4. Clasificación de los MECs según las FuncionesEducativas que asumen. [6]

Figura 3. Estructura Tradicional de un STI [7]

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 29

Page 31: Revista de Tecnología

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.

C. SMA en STI

• 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.

A. Modelo Pedagógico Conductista Cognoscitivo

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.

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:

B. Estilos de Aprendizaje de Felder y Silverman

30 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Tabla 5. Principios Básicos del Conductismo yCognoscitivismo [9]

Tabla 6. Reglas de Instrucción del Conductismo yCognoscitivismo [9]

Estímulo Respuesta

Reforzamiento

Entorno

Organismo

Conductivismo Conductivismo Cognoscitivo Cognoscitivismo

Estímulo Respuesta

Reforzamiento

Entorno

Organismo

Figura 4. Focos de atención en las diferentes teorías deaprendizaje [6].

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 31

Page 32: Revista de Tecnología

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.

C. SMA en STI

• 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.

A. Modelo Pedagógico Conductista Cognoscitivo

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.

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:

B. Estilos de Aprendizaje de Felder y Silverman

30 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Tabla 5. Principios Básicos del Conductismo yCognoscitivismo [9]

Tabla 6. Reglas de Instrucción del Conductismo yCognoscitivismo [9]

Estímulo Respuesta

Reforzamiento

Entorno

Organismo

Conductivismo Conductivismo Cognoscitivo Cognoscitivismo

Estímulo Respuesta

Reforzamiento

Entorno

Organismo

Figura 4. Focos de atención en las diferentes teorías deaprendizaje [6].

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 31

Page 33: Revista de Tecnología

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:

• “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.

• 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.

• Visuales: En la obtención de información prefieren representaciones visuales, diagramas de flujo, diagramas, etc.; recuerdan mejor lo que ven.

• Verbales: Prefieren obtener la información en forma escrita o hablada; recuerdan mejor lo que leen o lo que oyen.

• 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.

• 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.

En este modelo no hay estilos correctos de aprendizaje; más bien, se entiende como un sistema de preferencias en el cual par t icipan los estudiantes de manera individual.”[1]

V. HERRAMIENTAS DE DESARROLLO

A. Arquitectura Cliente-Servidor

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:

• 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.

• Es una arquitectura de procesamientos cooperativo donde uno de los componentes pide servicios a otro.

• Es un procesamiento de datos de índole colaborativo entre dos o más computadoras conectadas a una red.

• 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.

• 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,

A. Arquitectura Cliente-Servidor

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.

B. MySQL

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 herramienta 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.

B. MySQL

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

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 JADE los agentes programan 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.

C. Apache Tomcat

D. JADE

32 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Tabla 7. Preguntas y Respuestas relacionadas para definirlos estilos de aprendizaje de Felder y Silverman [1]

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.

Figura 5. Arquitectura Cliente-Servidor.

Network protocol stack

Host 2 Host 3

Jade Agent Container Jade Agent ContainerJade Main Container

Jade distributed Agent Platform

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Host 1

RMIRegistry

JRE 1.2 JRE 1.2 JRE 1.2

Figura 6. Plataforma JADE [2]

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 33

Page 34: Revista de Tecnología

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:

• “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.

• 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.

• Visuales: En la obtención de información prefieren representaciones visuales, diagramas de flujo, diagramas, etc.; recuerdan mejor lo que ven.

• Verbales: Prefieren obtener la información en forma escrita o hablada; recuerdan mejor lo que leen o lo que oyen.

• 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.

• 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.

En este modelo no hay estilos correctos de aprendizaje; más bien, se entiende como un sistema de preferencias en el cual par t icipan los estudiantes de manera individual.”[1]

V. HERRAMIENTAS DE DESARROLLO

A. Arquitectura Cliente-Servidor

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:

• 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.

• Es una arquitectura de procesamientos cooperativo donde uno de los componentes pide servicios a otro.

• Es un procesamiento de datos de índole colaborativo entre dos o más computadoras conectadas a una red.

• 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.

• 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,

A. Arquitectura Cliente-Servidor

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.

B. MySQL

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 herramienta 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.

B. MySQL

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

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 JADE los agentes programan 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.

C. Apache Tomcat

D. JADE

32 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Tabla 7. Preguntas y Respuestas relacionadas para definirlos estilos de aprendizaje de Felder y Silverman [1]

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.

Figura 5. Arquitectura Cliente-Servidor.

Network protocol stack

Host 2 Host 3

Jade Agent Container Jade Agent ContainerJade Main Container

Jade distributed Agent Platform

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Ap

plic

atio

n A

gent

Host 1

RMIRegistry

JRE 1.2 JRE 1.2 JRE 1.2

Figura 6. Plataforma JADE [2]

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 33

Page 35: Revista de Tecnología

“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.

• 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

E. CLIPS

F. JESS

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.

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:

• “Modelo de Agente (AM): Especifica las características 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.

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

Modelo de Agente (AM):

Modelo de Organización (OM):

Modelo de Tareas (TM):

Modelo de la Experiencia (EM):

Modelo de Comunicación (CM):

Modelo de Coordinación (CoM):

“Modelo de Diseño (DM):

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 Arturo 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, es t r uc tura, jera rquía y recur sos del modelo 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.

34 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 7. Modelos empleados por MAS-CommonKADS.[8]

Figura 8. Casos de uso usuario estudiante.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 35

Page 36: Revista de Tecnología

“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.

• 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

E. CLIPS

F. JESS

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.

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:

• “Modelo de Agente (AM): Especifica las características 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.

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

Modelo de Agente (AM):

Modelo de Organización (OM):

Modelo de Tareas (TM):

Modelo de la Experiencia (EM):

Modelo de Comunicación (CM):

Modelo de Coordinación (CoM):

“Modelo de Diseño (DM):

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 Arturo 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, es t r uc tura, jera rquía y recur sos del modelo 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.

34 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 7. Modelos empleados por MAS-CommonKADS.[8]

Figura 8. Casos de uso usuario estudiante.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 35

Page 37: Revista de Tecnología

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.

VIII. DISENO DETALLADO DEL SISTEMA

A. Modelo Vista Controlador

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.

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:

A. Modelo Vista Controlador

B. Arquitectura Detallada del Sistema

Agente Interfaz, Agente Acciones, Agente Pedagógico, Agente Domino, Agente Evaluación, Agente Estudiante y Agente Material.

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.

36 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 11. Arquitectura Global del SMATV.

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).

VII. DISENO GLOBAL DEL SISTEMA

Para el diseño global del prototipo de Sistema Multiagente Tutor Virtual (SMATV) se utilizará la arquitectura cliente-servidor, 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.

Se encarga decontrolar el tránsitoentre el modelo yla vista. (Servlet)

Datos del Sistema:Base de DatosUsuarios, Bases

del Conocimiento

Es la interfaz con elusuario que se

encarga demostrar los datos

CONTROLADOR

VISTAMODELO

Figura 12. Modelo Vista Controlador

Figura 13. Agentes distribuidos en módulos del STI.

1). Planificación de Personalidad (1ª Vez):

1. Planificación de Personalidad (1ª Vez)

1.1 Recepción de Test de Personalidad

1.2 Planificación de Perfil

1.3 Informar Perfil

3 Búsqueda Basede Conocimiento

Figura 9. Tarea Planificación de Personalidad por 1ª Vez.

Agente: Estudiante Clase: Mod_Estudiante

Registrar el historial relacionado con el usuario: Temas, Evaluaciones, material didáctico y ejemplos.

Registrar Perfil de Usuario

Informar historial de SMA cuando se identifica un usuario.

Pedir historiales

Pedir perfil

Informar historial

Usuario en BD

Ninguno

Usuario en BD

Acciones

Pedagógico

Interfaz

Introducir Información Usuario

Informar Perfil de Usuario

Retornar Información Usuario

Objetivos Planes Conocimiento Colaborador Servicio

Figura 10. Tarjeta CRC para el Agente Estudiante.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 37

Page 38: Revista de Tecnología

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.

VIII. DISENO DETALLADO DEL SISTEMA

A. Modelo Vista Controlador

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.

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:

A. Modelo Vista Controlador

B. Arquitectura Detallada del Sistema

Agente Interfaz, Agente Acciones, Agente Pedagógico, Agente Domino, Agente Evaluación, Agente Estudiante y Agente Material.

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.

36 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 11. Arquitectura Global del SMATV.

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).

VII. DISENO GLOBAL DEL SISTEMA

Para el diseño global del prototipo de Sistema Multiagente Tutor Virtual (SMATV) se utilizará la arquitectura cliente-servidor, 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.

Se encarga decontrolar el tránsitoentre el modelo yla vista. (Servlet)

Datos del Sistema:Base de DatosUsuarios, Bases

del Conocimiento

Es la interfaz con elusuario que se

encarga demostrar los datos

CONTROLADOR

VISTAMODELO

Figura 12. Modelo Vista Controlador

Figura 13. Agentes distribuidos en módulos del STI.

1). Planificación de Personalidad (1ª Vez):

1. Planificación de Personalidad (1ª Vez)

1.1 Recepción de Test de Personalidad

1.2 Planificación de Perfil

1.3 Informar Perfil

3 Búsqueda Basede Conocimiento

Figura 9. Tarea Planificación de Personalidad por 1ª Vez.

Agente: Estudiante Clase: Mod_Estudiante

Registrar el historial relacionado con el usuario: Temas, Evaluaciones, material didáctico y ejemplos.

Registrar Perfil de Usuario

Informar historial de SMA cuando se identifica un usuario.

Pedir historiales

Pedir perfil

Informar historial

Usuario en BD

Ninguno

Usuario en BD

Acciones

Pedagógico

Interfaz

Introducir Información Usuario

Informar Perfil de Usuario

Retornar Información Usuario

Objetivos Planes Conocimiento Colaborador Servicio

Figura 10. Tarjeta CRC para el Agente Estudiante.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 37

Page 39: Revista de Tecnología

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.

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.

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.

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.

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.

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.

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.

38 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 14. Funcionamiento SMATV básico.

Figura 15. Funcionamiento SMATV completo.

posee

tiene

# id_historial

Historial

# id_Usuario+ codigo_usuario+ nombre_usuario+ login_usuario+ pass_usuario

Estudiante

# id_perfil+ nombre_perfil

Perfil

# id_tema

Tema

# id_evaluacion

Evaluacion

# id_imagen+ nombre_imagen

Imagen

# id_ejemplo+ nombre_ejemplo

Ejemplo

adjunto

contiene

ayudado

apoyado

Figura 16. Modelo Entidad-Relación BD Usuarios yMaterial

Tabla 8. Diagrama de Gant

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 39

Page 40: Revista de Tecnología

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.

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.

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.

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.

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.

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.

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.

38 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 14. Funcionamiento SMATV básico.

Figura 15. Funcionamiento SMATV completo.

posee

tiene

# id_historial

Historial

# id_Usuario+ codigo_usuario+ nombre_usuario+ login_usuario+ pass_usuario

Estudiante

# id_perfil+ nombre_perfil

Perfil

# id_tema

Tema

# id_evaluacion

Evaluacion

# id_imagen+ nombre_imagen

Imagen

# id_ejemplo+ nombre_ejemplo

Ejemplo

adjunto

contiene

ayudado

apoyado

Figura 16. Modelo Entidad-Relación BD Usuarios yMaterial

Tabla 8. Diagrama de Gant

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 39

Page 41: Revista de Tecnología

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ñanza-aprendizaje, 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-CommonKADS, 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/material-botia/jade.pdf

[3] FELDER, R ichard y SILVER M AN, L inda. Felder_Silverman Learnig Style Model. Carolina del Norte, 1988.Http://chat.carleton.ca/~tblouin/Felder/Richard%20Felder'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-CommonKADS (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 tp://classweb.gmu.edu/ ndabbagh/ Resources/ IDKB/models_theories.htm

[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 PERICHINSKY, 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/InformaticaEducativa/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.

[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.

[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.UNIVERSIDAD POLITÉCNICA DE VALENCIA. 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/ arquitectura-cliente-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.pdfWIKIPEDIA, La Enciclopedia Libre. TOMCAT. España, 2006. http://es.wikipedia.org/

40 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 41

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: [email protected]

Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.

El Autor

Page 42: Revista de Tecnología

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ñanza-aprendizaje, 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-CommonKADS, 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/material-botia/jade.pdf

[3] FELDER, R ichard y SILVER M AN, L inda. Felder_Silverman Learnig Style Model. Carolina del Norte, 1988.Http://chat.carleton.ca/~tblouin/Felder/Richard%20Felder'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-CommonKADS (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 tp://classweb.gmu.edu/ ndabbagh/ Resources/ IDKB/models_theories.htm

[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 PERICHINSKY, 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/InformaticaEducativa/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.

[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.

[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.UNIVERSIDAD POLITÉCNICA DE VALENCIA. 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/ arquitectura-cliente-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.pdfWIKIPEDIA, La Enciclopedia Libre. TOMCAT. España, 2006. http://es.wikipedia.org/

40 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 41

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: [email protected]

Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.

El Autor

Page 43: Revista de Tecnología

Software para el Procesamiento Digital de Imágenes Médicas Radiográficas en Java™

Jessie A. Palacios S.

Resumen

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.

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.

Abstract

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.

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.

DIVISIÓN DE POSTGRADOSY FORMACIÓN AVANZADA

DOCTORADO

ESPECIALIZACIONES

MAESTRÍA

Bioética6 Semestres - 51832

Bioética4 Semestres - 11197

Ciencias Biomédicas4 Semestres - 52068

Psiquiatría Forense4 Semestres - 51833

MEDICINAAnestesiología y Reanimación6 Semestres - 1796

Cardiología de Adultos4 Semestres - 1781

Cardiología Pediátrica4 Semestres - 1803

Cirugía de Columna2 Semestres - 15984

Cirugía del Tórax4 Semestres - 1799

Cirugía General8 Semestres - 1782

Cirugía Plástica, Reconstructiva yEstética8 Semestres - 7465

Cirugía Vascular y Angiología4 Semestres - 20577

Dermatología6 Semestres - 1783

Epidemiología Clínica3 Semestres - 51644

Gastroenterología Pediátrica4 Semestres - 52359

Ginecología y Obstetricia8 Semestres - 1784

Medicina Crítica y CuidadosIntensivo Pediátrico4 Semestres - 52368

Medicina del Deporte6 Semestres - 1802

Medicina del Dolor y CuidadosPaliativos2 Semestres - 52360

S

Medicina Familiar6 Semestres - 7243

Medicina Física y Rehabilitación6 Semestres - 1785

Medicina Interna6 Semestres - 1786

Nefrología Pediátrica4 Semestres - 11047

Neumología4 Semestres - 1787

Neumología Pediátrica4 Semestres - 1800

Neonatología4 Semestres - 5033

Neurocirugía10 Semestres - 8193

Neurología8 Semestres - 1788

Oftalmología6 Semestres - 1789

Otorrinolaringología8 Semestres - 52370

Ortopedia y Traumatología8 Semestres - 1791

Pediatría6 Semestres - 1792

Psiquiatría6 Semestres - 1793

Radiología e Imágenes Diagnósticas8 Semestres - 1798

Salud Ocupacional3 Semestres - 1794

Urología.8 Semestres - 15689

ODONTOLOGÍAEndodoncia4 Semestres - 3572

Ortodoncia6 Semestres - 1790

Cirugía Oral y Maxilofacial8 Semestres - 1795

Periodoncia y Medicina Oral5 Semestres - 1801

Prostodoncia6 Semestres - 2674

Odontología Pediátrica4 Semestres - 1805

Docencia Universitaria2 Semestres - 20781

Pedagogía del Lenguaje con énfasis enProducción de Materiales3 Semestres - 13137

Educación con énfasis en Didáctica delPensamiento Creativo3 Semestres - 13139

Educación Bilingüe – Inglés3 Semestres - 13131

PSICOLOGÍAPsicología Médica y de la Salud3 cuatrimestres - 8498

Psicología del Deporte y del Ejercicio2 Semestres - 12932

Psicología Ocupacional y Organizacional3 cuatrimestres - 10756

EDUCACIÓN

Bioética2 Semestres - 3069

Filosofía de la Ciencia2 Semestres - 5302

Gerencia de la Calidad en Salud3 Semestres - 3885

Higiene Industrial2 Semestres - 3060

Epidemiología General3 Semestres - 51642

Salud Familiar y Comunitaria2 Semestres - 4852

Ergonomía2 Semestres - 10626

INGENIERÍAGerencia de Proyectos.2 Semestres - 10531

Gerencia de Producción2 Semestres - 13773

INTERDISCIPLINARIOS

Operatoria Dental Estética yMateriales Dentales3 Semestres - 52352

Patología Oral y Medios Diagnósticos4 Semestres - 1806

www.unbosque.edu.coCalle 134 No. 7 B - 83Tel 6489026 - 6489037 Pbx 6489000 ext. 233 - 108 - 315Línea de Atención al Aspirante: 6489080 Fax: 6489040Atención al Usuario 01 900 [email protected] - Bogotá D.C. Colombia

Por una Cultura de la Vida, su Calidad y su Sentido

Resolución 327 de 5 de febrero de 1997 de Ministerio de Educación Nacional

Page 44: Revista de Tecnología

Software para el Procesamiento Digital de Imágenes Médicas Radiográficas en Java™

Jessie A. Palacios S.

Resumen

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.

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.

Abstract

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.

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.

DIVISIÓN DE POSTGRADOSY FORMACIÓN AVANZADA

DOCTORADO

ESPECIALIZACIONES

MAESTRÍA

Bioética6 Semestres - 51832

Bioética4 Semestres - 11197

Ciencias Biomédicas4 Semestres - 52068

Psiquiatría Forense4 Semestres - 51833

MEDICINAAnestesiología y Reanimación6 Semestres - 1796

Cardiología de Adultos4 Semestres - 1781

Cardiología Pediátrica4 Semestres - 1803

Cirugía de Columna2 Semestres - 15984

Cirugía del Tórax4 Semestres - 1799

Cirugía General8 Semestres - 1782

Cirugía Plástica, Reconstructiva yEstética8 Semestres - 7465

Cirugía Vascular y Angiología4 Semestres - 20577

Dermatología6 Semestres - 1783

Epidemiología Clínica3 Semestres - 51644

Gastroenterología Pediátrica4 Semestres - 52359

Ginecología y Obstetricia8 Semestres - 1784

Medicina Crítica y CuidadosIntensivo Pediátrico4 Semestres - 52368

Medicina del Deporte6 Semestres - 1802

Medicina del Dolor y CuidadosPaliativos2 Semestres - 52360

S

Medicina Familiar6 Semestres - 7243

Medicina Física y Rehabilitación6 Semestres - 1785

Medicina Interna6 Semestres - 1786

Nefrología Pediátrica4 Semestres - 11047

Neumología4 Semestres - 1787

Neumología Pediátrica4 Semestres - 1800

Neonatología4 Semestres - 5033

Neurocirugía10 Semestres - 8193

Neurología8 Semestres - 1788

Oftalmología6 Semestres - 1789

Otorrinolaringología8 Semestres - 52370

Ortopedia y Traumatología8 Semestres - 1791

Pediatría6 Semestres - 1792

Psiquiatría6 Semestres - 1793

Radiología e Imágenes Diagnósticas8 Semestres - 1798

Salud Ocupacional3 Semestres - 1794

Urología.8 Semestres - 15689

ODONTOLOGÍAEndodoncia4 Semestres - 3572

Ortodoncia6 Semestres - 1790

Cirugía Oral y Maxilofacial8 Semestres - 1795

Periodoncia y Medicina Oral5 Semestres - 1801

Prostodoncia6 Semestres - 2674

Odontología Pediátrica4 Semestres - 1805

Docencia Universitaria2 Semestres - 20781

Pedagogía del Lenguaje con énfasis enProducción de Materiales3 Semestres - 13137

Educación con énfasis en Didáctica delPensamiento Creativo3 Semestres - 13139

Educación Bilingüe – Inglés3 Semestres - 13131

PSICOLOGÍAPsicología Médica y de la Salud3 cuatrimestres - 8498

Psicología del Deporte y del Ejercicio2 Semestres - 12932

Psicología Ocupacional y Organizacional3 cuatrimestres - 10756

EDUCACIÓN

Bioética2 Semestres - 3069

Filosofía de la Ciencia2 Semestres - 5302

Gerencia de la Calidad en Salud3 Semestres - 3885

Higiene Industrial2 Semestres - 3060

Epidemiología General3 Semestres - 51642

Salud Familiar y Comunitaria2 Semestres - 4852

Ergonomía2 Semestres - 10626

INGENIERÍAGerencia de Proyectos.2 Semestres - 10531

Gerencia de Producción2 Semestres - 13773

INTERDISCIPLINARIOS

Operatoria Dental Estética yMateriales Dentales3 Semestres - 52352

Patología Oral y Medios Diagnósticos4 Semestres - 1806

www.unbosque.edu.coCalle 134 No. 7 B - 83Tel 6489026 - 6489037 Pbx 6489000 ext. 233 - 108 - 315Línea de Atención al Aspirante: 6489080 Fax: 6489040Atención al Usuario 01 900 [email protected] - Bogotá D.C. Colombia

Por una Cultura de la Vida, su Calidad y su Sentido

Resolución 327 de 5 de febrero de 1997 de Ministerio de Educación Nacional

Page 45: Revista de Tecnología

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.

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.

A. 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 (0-128) 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).

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

B. Blanco y Negro

C. Suavizado

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.

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.

D. Realce

44 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 1. Matriz de MxN.

Píxel Individual

Vecindad de un Píxel

Figura 2. Pixeles individuales y vecindad.

Figura 3. Imagen original y después del paso a grises.

Figura 4. Imagen resultante de la Binarización.

Figura 5. Imagen suavizada.

Figura 6 (a). Radiografía Original.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 45

Page 46: Revista de Tecnología

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.

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.

A. 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 (0-128) 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).

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

B. Blanco y Negro

C. Suavizado

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.

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.

D. Realce

44 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 1. Matriz de MxN.

Píxel Individual

Vecindad de un Píxel

Figura 2. Pixeles individuales y vecindad.

Figura 3. Imagen original y después del paso a grises.

Figura 4. Imagen resultante de la Binarización.

Figura 5. Imagen suavizada.

Figura 6 (a). Radiografía Original.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 45

Page 47: Revista de Tecnología

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.

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.

E. Detección de Bordes

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.

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]:

• Costos: Es gratuito para la mayor parte de los usos y su servicio de asistencia resulta económico.

• 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.

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.

46 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 6 (b). Radiografía Realzada.

Figura 7. Ocho máscaras representativas del operador deKirsch.

Figura 8. Imagen de una radiografía después de ladetección de bordes.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 47

Jessie Alejandro Palacios Sarmiento

Ingeniero de Sistemas, Universidad El Bosque.e-mail: [email protected]

El Autor

Artículo de investigación Científica y Tecnológica.

Page 48: Revista de Tecnología

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.

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.

E. Detección de Bordes

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.

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]:

• Costos: Es gratuito para la mayor parte de los usos y su servicio de asistencia resulta económico.

• 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.

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.

46 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 6 (b). Radiografía Realzada.

Figura 7. Ocho máscaras representativas del operador deKirsch.

Figura 8. Imagen de una radiografía después de ladetección de bordes.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 47

Jessie Alejandro Palacios Sarmiento

Ingeniero de Sistemas, Universidad El Bosque.e-mail: [email protected]

El Autor

Artículo de investigación Científica y Tecnológica.

Page 49: Revista de Tecnología

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

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.

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.

Abstract

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.

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.

Page 50: Revista de Tecnología

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

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.

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.

Abstract

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.

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.

Page 51: Revista de Tecnología

I. INTRODUCCIÓN

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 per mit ido implement a r nuevas her ramient a s diagnósticas que permiten la detección de estas patologías en estados más tempranos, evitando las evoluciones intratables.

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

apoyos de diversas áreas para ser precisos y exitosos en la prevención, detección y erradicación de enfermedades.

La tecnología y sus permanentes innovaciones, la convier ten en una respuesta pertinente 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.

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

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].

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 asiát icos los que t ienen menores concentraciones [1]. La relación se muestra en la tabla I.

V. DISEÑO

Para desarrollar el sistema exper to se eligió la herramienta de programación Clips como motor de inferencia, a diferencia del motor de inferencia WIN-PROLOG 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

50 Universidad El Bosque - Facultad de Ingeniería de Sistemas

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.

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.

EDAD NEGRA BLANCA

40-49 <2,0 <2,0 <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

RAZA

ASIÁTICA

Tabla 1. Rangos por raza (ng/ml)

Hechos

Aptitudesde

Experto

UsuarioBase de Conocimiento

Mecanismo de Inferencia

Figura 1. Sistema experto concepto básico.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 51

Page 52: Revista de Tecnología

I. INTRODUCCIÓN

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 per mit ido implement a r nuevas her ramient a s diagnósticas que permiten la detección de estas patologías en estados más tempranos, evitando las evoluciones intratables.

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

apoyos de diversas áreas para ser precisos y exitosos en la prevención, detección y erradicación de enfermedades.

La tecnología y sus permanentes innovaciones, la convier ten en una respuesta pertinente 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.

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

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].

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 asiát icos los que t ienen menores concentraciones [1]. La relación se muestra en la tabla I.

V. DISEÑO

Para desarrollar el sistema exper to se eligió la herramienta de programación Clips como motor de inferencia, a diferencia del motor de inferencia WIN-PROLOG 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

50 Universidad El Bosque - Facultad de Ingeniería de Sistemas

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.

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.

EDAD NEGRA BLANCA

40-49 <2,0 <2,0 <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

RAZA

ASIÁTICA

Tabla 1. Rangos por raza (ng/ml)

Hechos

Aptitudesde

Experto

UsuarioBase de Conocimiento

Mecanismo de Inferencia

Figura 1. Sistema experto concepto básico.

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 51

Page 53: Revista de Tecnología

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.

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.

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%.

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

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%.

VII. METODOLOGÍA

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).

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.

Descripción de las etapas:

1. Iniciación de Conocimiento:

2. Definición de Conocimiento:

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.

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.

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.

VIII. CONCLUSIONES

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.

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

3. Diseño de Conocimiento:

4. Desarrollo:

5. Pruebas:

6. Integración:

52 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 2. Diseño global

Figura 3. Gráfico de barras fiabilidad sistema experto PSA

Figura 4. Porcentaje de fiabilidad sistema experto

Figura 5. Porcentaje de fiabilidad sistema experto razablanca

Figura 6. Porcentaje fiabilidad sistema experto raza negra

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 53

Page 54: Revista de Tecnología

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.

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.

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%.

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

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%.

VII. METODOLOGÍA

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).

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.

Descripción de las etapas:

1. Iniciación de Conocimiento:

2. Definición de Conocimiento:

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.

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.

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.

VIII. CONCLUSIONES

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.

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

3. Diseño de Conocimiento:

4. Desarrollo:

5. Pruebas:

6. Integración:

52 Universidad El Bosque - Facultad de Ingeniería de Sistemas

Figura 2. Diseño global

Figura 3. Gráfico de barras fiabilidad sistema experto PSA

Figura 4. Porcentaje de fiabilidad sistema experto

Figura 5. Porcentaje de fiabilidad sistema experto razablanca

Figura 6. Porcentaje fiabilidad sistema experto raza negra

Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 53

Page 55: Revista de Tecnología

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.wikipedia.org.

[3] ARBELAEZ 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] ARBEL AEZ, 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

54 Universidad El Bosque - Facultad de Ingeniería de Sistemas

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: [email protected]

Anteriores PublicacionesRevista 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.

• Editorial• Aptitudes del ingeniero de software

• CORBA

• GNU/Linux en la U

• Hacia una implementación homogénea de control de acceso en bases de datos relacionales

• Nuevas tendencias para la implementación de sistemas de procesamiento paralelo

• Redes privadas virtuales

• La mente, ¿una computadora biológica?

• Sobre lo sistemático y lo sistémico

• La importancia del saber matemático

• La administración y los sistemas

• Taylor, el ingeniero que determinó la administración: Taylorismo como máxima expresión del cartesianismo en la administración

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.

• Ingeniería de Sofware: Entre la tradición de la Programación y el Management

• Fotorrealismo

• Modelos de sombreado y color en animación por computador

• Gestión integrada de telecomunicaciones y el modelo TMN de la ITU

• Comunicaciones Industriales

• Hombre Vs. Máquinas... Y quién tendrá el control?

• La Sección Áurea

• De la Linealidad a la Fractalidad: El Principio de la Recursividad

• Henri Fayol: the mines engineer and his approach to a system view of management

• Invertir: es toda una Estrategia

• Self Control: Intelligent Organizations

El Autor

Artículo de investigación Científica y Tecnológica.

Page 56: Revista de Tecnología

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.wikipedia.org.

[3] ARBELAEZ 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] ARBEL AEZ, 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

54 Universidad El Bosque - Facultad de Ingeniería de Sistemas

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: [email protected]

Anteriores PublicacionesRevista 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.

• Editorial• Aptitudes del ingeniero de software

• CORBA

• GNU/Linux en la U

• Hacia una implementación homogénea de control de acceso en bases de datos relacionales

• Nuevas tendencias para la implementación de sistemas de procesamiento paralelo

• Redes privadas virtuales

• La mente, ¿una computadora biológica?

• Sobre lo sistemático y lo sistémico

• La importancia del saber matemático

• La administración y los sistemas

• Taylor, el ingeniero que determinó la administración: Taylorismo como máxima expresión del cartesianismo en la administración

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.

• Ingeniería de Sofware: Entre la tradición de la Programación y el Management

• Fotorrealismo

• Modelos de sombreado y color en animación por computador

• Gestión integrada de telecomunicaciones y el modelo TMN de la ITU

• Comunicaciones Industriales

• Hombre Vs. Máquinas... Y quién tendrá el control?

• La Sección Áurea

• De la Linealidad a la Fractalidad: El Principio de la Recursividad

• Henri Fayol: the mines engineer and his approach to a system view of management

• Invertir: es toda una Estrategia

• Self Control: Intelligent Organizations

El Autor

Artículo de investigación Científica y Tecnológica.

Page 57: Revista de Tecnología

56 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 57

Volumen 2 Número 2

• Posicionamiento y de Navegación satelitalCarlos F. Varela Pérez.

• Redes InalámbricasEduardo Avendaño.

• Robustness in RoboticsPedro Díaz.

• Introducción a los Músculos ArtificialesJorge Jiménez.

• Visión ArtificialNelson Hernández.

• Una Aplicación de MathlabOswaldo Rojas.

• Hackers & Crackers & Phreackers: Una Perspectiva ÉticaOrlando 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.

• Posicionamiento y de Navegación satelital

• Redes Inalámbricas

• Robustness in Robotics

• Introducción a los Músculos Artificiales

• Visión Artificial

• Una Aplicación de Mathlab

• Hackers & Crackers & Phreackers: Una Perspectiva Ética

• La Otra alternativa: simbiosis ente el hombre y la máquina -transhumanismo

• La Estadística en un proceso de decisión social

• Tecnología en la Matemática

• Aplicación de redes neuronales para el reconocimiento de voz

• Técnicas de Procesamiento de Imágenes

• Ambientes Virtuales de Aprendizaje

Volumen 3 Número 1

• Genetic AlgorithmsPedro Díaz.

• Evolutionary computation applied to intrusion detectionPedro Díaz.

• Protección y Seguridad Informática /ISO 17799Orlando López C.

• Comunidades virtuales, redes temáticas y su implementaciónCarlos F. Varela Pérez.

• Arquitectura para M-commerceEduardo 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.

• Genetic Algorithms

• Evolutionary computation applied to intrusion detection

• Protección y Seguridad Informática /ISO 17799

• Comunidades virtuales, redes temáticas y su implementación

• Arquitectura para M-commerce

• 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.

• La Investigación como agente de renovación de paradigmas

• Conocer-representar-transformar: Caminos diversos para acceder al conocimiento de tipo geométrico.

• Comparación entre las técnicas de control de riesgo en los bancos comerciales y de inversión

• Ambiente Virtual de Aprendizaje (AVA) como herramienta de apoyo a la educación

• Nuestros compañeros, los androides

• Importancia de la ayuda multimedia en los estudiantes

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.

• Red Neuronal Artificial de crecimiento basado en comunicación de clientes y servidores por protocolo TCP/IP "Neuroinformador”

• Conceptos Generales de Gestión del Conocimiento

• Computación en Malla

• Software Libre como solución para el atraso tecnológico de nuestro país

• Conociendo y haciendo scripts en Linux

• El poder del mago de la información: esteganografía

• Informática Educativa al día

• Políticas de seguridad informática... Seguras

• Algoritmo Genético para el problema del Job-Shop

• Técnicas para resolver el problema de satisfactibilidad y sus aplicaciones

• La resolución de problemas: una estrategia holística para el desarrollo del pensamiento matemático

• El algoritmo de la División

• Fórmulas para la solución de ecuaciones de 3o y 4o Orden

• Fundamento de procesamiento digital de imágenes

• Software para multimedia

• Enseñanza de las humanidades

• Los bancos centrales en la economía mundial

• Transhumanistas aseguran que la especie, hoy en día, representa el principio de la evolución

Volumen 4 Número 1

• J2ME: Software libre para aplicaciones móvilesEdwin Casallas, Laura Paredes.

• Ingeniería de Teletráfico y herramientas de software libreGuiovanna Sabogal.

• Fundamentos de tecnología XDSL y ADSLCarlos F. Varela Pérez.

• Ingeniería del software basada en componentesAlejandra 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.

• J2ME: Software libre para aplicaciones móviles

• Ingeniería de Teletráfico y herramientas de software libre

• Fundamentos de tecnología XDSL y ADSL

• Ingeniería del software basada en componentes

• El papel de la educación virtual en la reconstrucción de la socioeconomía colombiana

• Agentes virtuales racionales

• Con los pelos de punta

• Computación gráfica y su relación con el álgebra abstracta

• Introducción a procesamiento paralelo

• La globalización y la desregularización del comercio y el capital

Page 58: Revista de Tecnología

56 Universidad El Bosque - Facultad de Ingeniería de Sistemas Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007 57

Volumen 2 Número 2

• Posicionamiento y de Navegación satelitalCarlos F. Varela Pérez.

• Redes InalámbricasEduardo Avendaño.

• Robustness in RoboticsPedro Díaz.

• Introducción a los Músculos ArtificialesJorge Jiménez.

• Visión ArtificialNelson Hernández.

• Una Aplicación de MathlabOswaldo Rojas.

• Hackers & Crackers & Phreackers: Una Perspectiva ÉticaOrlando 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.

• Posicionamiento y de Navegación satelital

• Redes Inalámbricas

• Robustness in Robotics

• Introducción a los Músculos Artificiales

• Visión Artificial

• Una Aplicación de Mathlab

• Hackers & Crackers & Phreackers: Una Perspectiva Ética

• La Otra alternativa: simbiosis ente el hombre y la máquina -transhumanismo

• La Estadística en un proceso de decisión social

• Tecnología en la Matemática

• Aplicación de redes neuronales para el reconocimiento de voz

• Técnicas de Procesamiento de Imágenes

• Ambientes Virtuales de Aprendizaje

Volumen 3 Número 1

• Genetic AlgorithmsPedro Díaz.

• Evolutionary computation applied to intrusion detectionPedro Díaz.

• Protección y Seguridad Informática /ISO 17799Orlando López C.

• Comunidades virtuales, redes temáticas y su implementaciónCarlos F. Varela Pérez.

• Arquitectura para M-commerceEduardo 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.

• Genetic Algorithms

• Evolutionary computation applied to intrusion detection

• Protección y Seguridad Informática /ISO 17799

• Comunidades virtuales, redes temáticas y su implementación

• Arquitectura para M-commerce

• 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.

• La Investigación como agente de renovación de paradigmas

• Conocer-representar-transformar: Caminos diversos para acceder al conocimiento de tipo geométrico.

• Comparación entre las técnicas de control de riesgo en los bancos comerciales y de inversión

• Ambiente Virtual de Aprendizaje (AVA) como herramienta de apoyo a la educación

• Nuestros compañeros, los androides

• Importancia de la ayuda multimedia en los estudiantes

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.

• Red Neuronal Artificial de crecimiento basado en comunicación de clientes y servidores por protocolo TCP/IP "Neuroinformador”

• Conceptos Generales de Gestión del Conocimiento

• Computación en Malla

• Software Libre como solución para el atraso tecnológico de nuestro país

• Conociendo y haciendo scripts en Linux

• El poder del mago de la información: esteganografía

• Informática Educativa al día

• Políticas de seguridad informática... Seguras

• Algoritmo Genético para el problema del Job-Shop

• Técnicas para resolver el problema de satisfactibilidad y sus aplicaciones

• La resolución de problemas: una estrategia holística para el desarrollo del pensamiento matemático

• El algoritmo de la División

• Fórmulas para la solución de ecuaciones de 3o y 4o Orden

• Fundamento de procesamiento digital de imágenes

• Software para multimedia

• Enseñanza de las humanidades

• Los bancos centrales en la economía mundial

• Transhumanistas aseguran que la especie, hoy en día, representa el principio de la evolución

Volumen 4 Número 1

• J2ME: Software libre para aplicaciones móvilesEdwin Casallas, Laura Paredes.

• Ingeniería de Teletráfico y herramientas de software libreGuiovanna Sabogal.

• Fundamentos de tecnología XDSL y ADSLCarlos F. Varela Pérez.

• Ingeniería del software basada en componentesAlejandra 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.

• J2ME: Software libre para aplicaciones móviles

• Ingeniería de Teletráfico y herramientas de software libre

• Fundamentos de tecnología XDSL y ADSL

• Ingeniería del software basada en componentes

• El papel de la educación virtual en la reconstrucción de la socioeconomía colombiana

• Agentes virtuales racionales

• Con los pelos de punta

• Computación gráfica y su relación con el álgebra abstracta

• Introducción a procesamiento paralelo

• La globalización y la desregularización del comercio y el capital

Page 59: Revista de Tecnología

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ónFrancisco 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.

• El aluvión económico de los satélites de comunicació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

• Aplicaciones Empresariales usando plataforma J2EE

• Programación Visual como herramienta de productividad en la enseñanza de Ingeniería de Sistemas

• Matlab, el aprendizaje basado en indagación y el desarrollo de competencias profesionales

• Simulación de redes ad hoc y evaluación de parámetros bajo cuatro modelos de movilidad

• Los depósitos centralizados de valores como mediadores de riesgo en los mercados de capitales

Volumen 5 Número 1

• Editorial - Huir hacia adelanteOrlando 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.

• Editorial - Huir hacia adelante

• Sistematización del Test de abdominales de la batería de condición física EUROFIT

• Entorno virtual de aprendizaje remoto sobre Grid EVA R-GRID

• Análisis del sonido, representación y comprensión de imágenes mediante Mathlab

• El teorema de Shannon y la criptografía

• Sistema de transmisión de mensajes utilizando un sistema de transmisión radial en FM

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.

• Sistema de información integrado para el Centro de Servicios del Sena Regional Bogotá

• Trabajador, trabajo y sociedad. Una relación que se complejiza en la interacción

• Sistematización de información para historias clínicas odontológicas y generación de estadísticas

• Evaluación de las diferentes herramientas utilizadas en la implementación de Grids

• Construcción de ayudas didácticas para la enseñanza de programación orientada a objetos usando Java ™ 50

• Los Weblogs y la Educación en la Facultad de Ingeniería de Sistemas de la Universidad El Bosque

• 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

• Evaluación de la transmisión de datos en una red GPRS por medio de Ns2

• La feria del plagio

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.

Page 60: Revista de Tecnología

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ónFrancisco 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.

• El aluvión económico de los satélites de comunicació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

• Aplicaciones Empresariales usando plataforma J2EE

• Programación Visual como herramienta de productividad en la enseñanza de Ingeniería de Sistemas

• Matlab, el aprendizaje basado en indagación y el desarrollo de competencias profesionales

• Simulación de redes ad hoc y evaluación de parámetros bajo cuatro modelos de movilidad

• Los depósitos centralizados de valores como mediadores de riesgo en los mercados de capitales

Volumen 5 Número 1

• Editorial - Huir hacia adelanteOrlando 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.

• Editorial - Huir hacia adelante

• Sistematización del Test de abdominales de la batería de condición física EUROFIT

• Entorno virtual de aprendizaje remoto sobre Grid EVA R-GRID

• Análisis del sonido, representación y comprensión de imágenes mediante Mathlab

• El teorema de Shannon y la criptografía

• Sistema de transmisión de mensajes utilizando un sistema de transmisión radial en FM

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.

• Sistema de información integrado para el Centro de Servicios del Sena Regional Bogotá

• Trabajador, trabajo y sociedad. Una relación que se complejiza en la interacción

• Sistematización de información para historias clínicas odontológicas y generación de estadísticas

• Evaluación de las diferentes herramientas utilizadas en la implementación de Grids

• Construcción de ayudas didácticas para la enseñanza de programación orientada a objetos usando Java ™ 50

• Los Weblogs y la Educación en la Facultad de Ingeniería de Sistemas de la Universidad El Bosque

• 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

• Evaluación de la transmisión de datos en una red GPRS por medio de Ns2

• La feria del plagio

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.

Page 61: Revista de Tecnología

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ÍAUniversidad El BosqueBogotá, D.C., Colombia

Page 62: Revista de Tecnología