Sie sind auf Seite 1von 8

NEWSLETTER

Laboratorio Nacional de Informtica Avanzada, A.C.

AO 15

VOLMENES 51 y 52

URGENTE: UNA DILISIS PARA MI EMPRESA!


Beatriz Gutirrez Almaraz*

Juan Prez recibe doble paga porque el sistema de nmina lo tiene registrado dos veces? El catlogo de productos no refleja el contenido del inventario de almacn? Los ingresos y egresos realizados no cuadran con los registros de contabilidad ? Estos son escenarios en los que indudablemente no nos gustara estar inmersos; sin embargo, si en nuestra empresa existe una constante generacin de informacin adems de mltiples accesos a sta desde diversas reas, la probabilidad de encontrarse en alguna de las situaciones planteadas aumenta paulatinamente. En la actualidad, las empresas centran su atencin en la administracin del conocimiento, donde se considera el conocimiento integral del equipo humano como uno de los activos ms valiosos; esto da pie al surgimiento de diversas tecnologas que permiten la gestin de la informacin. Las empresas tienden a adoptar sistemas transaccionales que les permiten la automatizacin de los procesos de negocio, un paso adelante para la gestin de la informacin. Sin embargo, ante un hecho irrefutable de la vida, la nica constante es el cambio, es posible considerar que las empresas presenten alteraciones tanto en el ambiente de trabajo como en el exterior, convirtindose estas alteraciones en fortalezas - debilidades (si provienen del interior de la empresa) y oportunidades - amenazas (si provienen del entorno). Bien podemos creer que no hay de qu preocuparnos; la informacin, a pesar del revuelo de sucesos a su alrededor, sigue guardada y disponible para cuando deseemos consultarla. Y es ah cuando nos percatamos de algunos sucesos extraos, acontecimientos que quiz por la premura de la solicitud de la informacin o las mltiples actividades en las que se est sumergido no recibieron la atencin adecuada; notamos que al consultar en nuestro sistema de informacin, varios clientes aparecen registrados ms de una vez, que el catlogo de productos muestra duplicados y sus precios no reflejan las cantidades adecuadas; la hora de la junta est cercana, se debe

presentar el concentrado de productos existentes as como un listado de productos adquiridos por clientes y no hay forma de que el sistema arroje la informacin que necesitamos. Qu hacer? Inmediatamente comenzamos a orquestar un sinfn de actividades para tener esos reportes; solicitamos al personal que consulte los archiveros del inventario, se buscan las facturas de venta y se clasifican por clientes; se obtienen unos listados aproximados, se imprime y tenemos el informe necesario para salir del paso. Se posee una cantidad considerable y valiosa de informacin, pero las consultas no reflejan la realidad de la empresa. De qu sirve tener tecnologa de gestin de informacin, si los datos almacenados no son confiables? Qu opciones tengo ante tales escenarios? Dos opciones saltan a la vista: hacer una evaluacin de los procesos de la empresa, validando cada dato existente a travs de expedientes, archivos, sistemas transaccionales o informacin de diversas fuentes que se tengan a la mano y hacer las correcciones

pertinentes; o bien dejar de utilizar todos los sistemas individuales que pudiesen existir en la empresa (contables, inventarios, directorio de clientes, etctera) y adquirir un software nuevo que integre todas las reas de la empresa, como por ejemplo los ERP (lo que significa, por sus siglas en ingls, Planificacin de Recursos Empresariales). Sin lugar a dudas, ambas opciones involucran gastos de tiempo y dinero; la primera opcin da cabida a la generacin de errores por omisin o fallos en los canales de comunicacin, y donde quizs todos los recursos invertidos no hayan sido fructferos. En la segunda opcin, es probable que los gastos se eleven considerablemente al comprar un software ERP y a la vez contratar consultores que tratarn de ajustar los procesos de la empresa a la forma en que trabaja el ERP y no a la inversa, convirtindolo en un proceso extremadamente complejo. Existe otra alternativa, que puede llegar a solucionar los escenarios planteados en un principio y que no involucra un cambio drstico en las

actividades de la empresa. La alternativa es contratar consultores que procedan a la Extraccin, Transformacin y Carga de los datos existentes en la empresa, desde sus diversas fuentes de informacin, concentrndolos en un almacn comn de datos. Dicho almacn ser la referencia de informacin confiable y donde tanto el personal como los sistemas existentes podrn establecer peticiones de informacin. Es fcil determinar cundo es factible optar por esta ltima solucin: si el paciente manifiesta una posible corrupcin de datos, cuenta con sistemas transaccionales que poseen datos inconsistentes y/o duplicados, y a final de cuentas la informacin no refleja la realidad de la empresa, entonces se recomienda recurrir a una dilisis empresarial. En trminos mdicos, una dilisis elimina los elementos dainos de la sangre a travs de un proceso mediante el cual se extrae la sangre del cuerpo; una mquina lava y drena la sangre infectada, y posteriormente la devuelve al torrente sanguneo del cuerpo. Es decir, se trata de un proceso de purificacin. En esta analoga, los miles de datos almacenados en la empresa representan las clulas sanguneas del cuerpo, y cuando esos datos presentan contaminacin es necesario: 1. extraerlos, 2. procesarlos por mecanismos de purificacin, y 3. devolverlos al torrente de informacin empresarial. Una vez que la empresa recibe sus datos
Contina en la pgina 2.

EN ESTE NMERO
Urgente: Una dilisis para mi empresa! ........1 Herencia: Una herramienta para mejorar...... 2 la aplicabilidad de los algoritmos evolutivos a problemas del mundo real. Todo menos los datos ..........................................4 Architectura de sistemas en capas .................. 6 Cmputo bio-inspirado ~ una mirada ............ 7 a lo natural. Carlos Coello: Premio de investigacin ............ 8 cientfica de la Academia Mexicana de Ciencias 2007.

viene de la pgina 1. URGENTE: DILISIS...

purificados vuelve a la vida, y puede entonces confiar en su informacin. La mquina de purificacin de nuestra dilisis empresarial es el lugar donde se concentran diversos mecanismos que procesan la informacin recopilada para poder recuperar informacin confiable y consistente que permitan fortalecer las actividades de la empresa. Extraer la informacin no es una tarea sencilla. Acaso toda la informacin empresarial est concentrada en un solo lugar? Muy probablemente la respuesta sea un rotundo NO. La informacin puede estar concentrada en diversos lugares y de diferentes formas, en informacin en papel, tarjeteros y/o en medios electrnicos: desde una base de datos hasta archivos en diferentes formatos tales como documentos, grficas, hojas de clculo, texto. Se recurre entonces a tecnologas encargadas de la recopilacin e integracin de informacin, actividad conocida como reconciliacin de datos. Puesto que la extraccin de infor-

macin no slo abarcar las partes daadas, sino tambin aquellos datos o informes que servirn para corroborar, filtrar y ajustar los datos proporcionados se requiere un proceso en el cual se identifiquen las posibles inconsistencias, proceso conocido como validacin de datos. Una vez extrada y validada la informacin, contina el proceso de purificacin, que involucra la transformacin de los datos, esto es, su colocacin en contenedores homogneos que faciliten a diversas tecnologas la aplicacin de tcnicas y metodologas para su correcto procesamiento y anlisis. Ms all de realizar una comparacin e integracin de informacin el reto del proceso de purificacin, conocido como integracin de datos, consiste en la identificacin de objetos mediante diversos medios, esto es, poder distinguir cundo diferentes objetos en diferentes fuentes de informacin representan al mismo elemento y por lo

tanto deberan ser considerados como un mismo objeto.(1) Por ejemplo, consideremos una empresa que a nivel de sus sistemas transaccionales identifique al personal por su CURP, en el rea contable a travs de su nmero de nmina, y en diversos documentos slo contemplen el nombre completo de la persona. La herramienta de integracin de datos debe determinar que los datos: CURP PEHJ651203MVZEWQ7, nombre: Juan Prez Hernndez y el nmero de nmina 5796 se estn refiriendo a una misma persona y no a tres diferentes. La informacin ya filtrada y procesada se incorpora nuevamente al torrente empresarial, a travs de bancos de datos existentes o inclusive nuevos, que permitirn al personal de la empresa acceder a los datos requeridos. Es as como los flujos de informacin se revitalizan, se vuelven confiables, consistentes y homogneos. Se empiezan a notar los primeros efectos, el sistema despliega informa-

cin de los clientes, sin presentar duplicados, y ahora es posible consultar todos los productos adquiridos por el cliente; consultando el catlogo de productos podemos determinar su precio correcto y cuntos hay en existencia. Se imprime el reporte y se entrega a tiempo. La empresa se transforma, mejoran los tiempos de respuesta, la informacin fluye, va y viene, se actualiza, vuelve a ocupar el nivel de confianza perdido; una vez ms la dilisis empresarial ha salvado a su paciente de un posible colapso de informacin. * Unidad de Desarrollo de Software LANIA. Correo electrnico: bgutierr@lania.mx
Referencias: 1)Matthias Jarke, Maurizio Lenzerini, Yannis Vassiliou, Panos Vassiliadis, Fundamentals of Data Warehouses. Second Edition. Editorial Springer-Verlag 2002, 2003.

HERENCIA
Una herramienta para mejorar la aplicabilidad de los algoritmos evolutivos a problemas del mundo real
Margarita Reyes Sierra*

i bien es cierto que los algoritmos evolutivos han sido muy exitosos resolviendo problemas de optimizacin, como el diseo de ingeniera, asignacin de horarios, control automtico, entre otros, su aplicacin introduce un costo computacional que crece considerablemente con respecto al que requiere la evaluacin del problema a resolver. Esto se debe a la naturaleza de los algoritmos evolutivos, (que en su gran mayora son de los llamados poblacionales). Los algoritmos evolutivos poblacionales usan un conjunto de posibles soluciones al problema (llamado poblacin), las cuales se evalan un cierto nmero de veces (llamadas generaciones). As, para obtener una solucin al problema por resolver, representado por la funcin objetivo, sta se evala tantas veces como el tamao de la poblacin por el nmero de generaciones. De esta manera, la aplicacin de los algoritmos evolutivos a problemas del mundo real se ve limitada cuando la funcin objetivo tarda demasiado tiempo en ser evaluada: horas, das, semanas o incluso meses. Por ello, en los ltimos aos se ha puesto especial inters en el diseo de algoritmos ms eficientes, en trminos del nmero de evaluaciones de la funcin objetivo que se requieren para obtener una solucin al problema. Una de las propuestas ms recientes se basa en el uso del concepto de herencia. Este concepto, originalmente propuesto por Smith y sus colaboradores(1) en el ao de 1995, consiste en asignar a un nuevo individuo una aptitud (o valor de la funcin objetivo) que se calcula usando los valores correspondientes de sus padres (esto es, los individuos correspondientes de la generacin anterior). As, cuando se usa la herencia, no es necesario evaluar a cada individuo en cada generacin y el nmero de evaluaciones se disminuye y, por consiguiente, el costo computacional se reduce tambin.
Contina en la pgina 3.

viene de la pgina 2. HERENCIA...

En el Grupo de Computacin Evolutiva del CINVESTAV-IPN, llamado EVOCINV, se propuso recientemente la aplicacin del concepto de herencia a un algoritmo para optimizacin multi-objetivo basado en cmulos de partculas. La optimizacin mediante cmulos de partculas (mejor conocida como Particle Swarm Optimization - PSO) est basada en el uso de una poblacin llamada cmulo, cuyos individuos son llamados partculas y que, a diferencia de la gran mayora de los algoritmos evolutivos, no usa operadores de cruza y/o mutacin para su evolucin, en su versin original(2). En este caso, las partculas modifican su posicin en el espacio de bsqueda bajo la influencia de la experiencia de sus vecinos, as como la suya propia. En particular, dada la posicin x(t) de una partcula x en el espacio de bsqueda en el tiempo t, sta se actualiza a cada generacin por medio de la siguiente frmula: x(t+1)=x(t)+v(t+1) Donde v(t+1) es un vector llamado velocidad y se calcula de la siguiente forma: v(t+1)=w*v(t)+c1*r1(pbest-x(t))+c2*r2(lder-x(t)) Donde w es llamado peso de inercia, c1 y c2 son llamados factores de aprendizaje (comnmente definidos como constantes), y r1 y r2 son valores aleatorios entre 0 y 1. La posicin pbest corresponde a la mejor posicin visitada hasta ahora por la partcula x y la posicin lder corresponde a la posicin de la partcula del cmulo que gua la bsqueda. Comnmente, se considera como partcula lder a la mejor partcula del cmulo (versin global); sin embargo, tambin es posible considerar como lder a la mejor partcula dentro de una cierta vecindad (versin local). As pues, el factor de aprendizaje c1 es llamado factor cognitivo y el factor c2 es llamado factor social. La propuesta de EVOCINV consiste en incorporar una tcnica de herencia a uno de los algoritmos basados en cmulos de partculas para optimizacin multi-objetivo, propuestos por el grupo. El algoritmo utilizado es llamado MOPSO (MultiObjective Particle Swarm Optimization) y su funcionamiento se muestra en la siguiente figura:
Inicio Inicializar cmulo de partculas Inicializar conjunto de lderes Inicializar archivo externo g=0 Mientras g=gmax ParaCada particula Seleccionar lder Actualizar Mutacin Si (rand(0,1)=ph) Heredar Si no Evaluar Actualizar pbest FinParaCada Actualizar conjunto de lderes Actualizar archivo externo g=g+1 FinMientras Reportar resultados en archivo externo Fin

En la siguiente tabla, se muestran resultados de las seis tcnicas de adaptacin propuestas (denotadas como T1, T2, T3, T4, T5 y T6), usando cuatro funciones de prueba tomadas de la literatura de optimizacin evolutiva multi-objetivo(6). Los valores mostrados corresponden al promedio de soluciones ptimas encontradas por los diferentes algoritmos (en 30 corridas), medidas sobre un total de cien soluciones obtenidas. En la tabla se muestran los resultados del algoritmo MOPSO sin herencia, y posteriormente los resultados del algoritmo MOPSO con herencia y con las seis tcnicas de adaptacin propuestas, con el correspondiente ahorro obtenido con cada una de ellas. Adems, en las ltimas dos columnas se muestran los resultados obtenidos por los dos algoritmos ms representativos del estado del arte: el NSGA-II(7) y el SPEA2(8). Los valores de los parmetros de todos los algoritmos fueron ajustados de forma que todos llevaran a cabo 20,000 evaluaciones de la funcin objetivo. As, por ejemplo, el algoritmo MOPSO con herencia usando las tcnicas tres y cinco de adaptacin, llev a cabo aproximadamente 10,000 evaluaciones.
Funcin MOPSO T1 T2 T3 T4 T5 T6 NSGA-11 ZDT1 ZDT2 ZDT3 ZDT4 Ahorro 87 92 76 96 0% 84 74 71 68 53 21 93 89 83 84 69 45 73 72 53 59 37 16 94 93 89 90 77 47 19% 32% 49% 49% 65% 78% 21 6 44 0 0% SPEA2 27 7 39 0 0%

Como se puede ver en la tabla, los resultados obtenidos son muy satisfactorios pues el nmero de soluciones ptimas encontradas es considerablemente alto tomando en cuenta el ahorro obtenido en el nmero de evaluaciones. En general, podemos ver que es posible ahorrar hasta un 30% del nmero de evaluaciones, sin afectar significativamente los resultados, especialmente en las funciones ZDT2, ZDT3 y ZDT4. Por otro lado, aunque los resultados son notablemente afectados en los casos en los que se ahorra el 50% (o ms) del nmero de evaluaciones, podemos ver que an en estos casos, los resultados obtenidos son de mejor calidad que los obtenidos por los algoritmos NSGA-II y SPEA2. En los casos de las funciones ZDT1 y ZDT3, es posible obtener la misma calidad en los resultados que los algoritmos NSGA-II y SPEA2, pero llevando a cabo un 65 y 50% menos evaluaciones, respectivamente. Por otra parte, en los casos de las funciones ZDT2 y ZDT4, an llevando a cabo un 80% menos de evaluaciones, la calidad sigue siendo superior. As pues, hemos visto que el uso de herencia disminuye notablemente el costo computacional, mientras que mantiene la calidad de los resultados aceptablemente. Como trabajo futuro, el grupo EVOCINV est considerando la incorporacin del concepto de herencia a diferentes algoritmos evolutivos (algoritmos genticos, estrategias evolutivas, etctera.), as tambin como su aplicacin a problemas del mundo real. * Grupo de Computacin Evolutiva (EVOCINV). Seccin Computacin, Departamento de Ing. Elctrica CINVESTAV-IPN. Correo electrnico: reyes_sierra@hotmail.com
Referencias: 1) Robert E. Smith, B. A. Dike and S. A. Stegmann. Fitness Inheritance in Genetic Algorithms. In SAC 95: Proceedings of the 1995 ACM Symposium on Applied Computing, pages 345350, Nashville, Tennessee, USA, 1995. ACM Press. 2) James Kennedy and Russell C. Eberhart. Particle Swarm Optimization. In Proceedings of the 1995 IEEE International Conference on Neural Networks, pages 19421948, Piscataway, New Jersey, 1995. IEEE Service Center. 3) Margarita Reyes Sierra and Carlos A. Coello Coello. Improving PSO-based Multi-objective Optimization using Crowding, Mutation and Dominance. In Third International Conference on Evolutionary Multi-Criterion Optimization, EMO 2005., pages 505519, Guanajuato, Mxico, 2005. LNCS 3410, Springer-Verlag. 4) Margarita Reyes-Sierra and Carlos A. Coello Coello. Dynamic fitness inheritance for Multiobjective particle swarm optimization. In Genetic and Evolutionary Computation Conference, pages 89-90, Seattle, WA, USA, 2006. 5) Margarita Reyes-Sierra and Carlos A. Coello Coello. Dynamic Fitness Inheritance Proportion for Multi-objective Particle Swarm Optimization. Technical Report EVOCINV-03-2006, Seccin de Computacin, Departamento de Ingeniera Elctrica, CINVESTAV-IPN, Mxico, April 2006. 6) Eckart Zitzler, Kalyanmoy Deb, and Lothar Thiele. Comparison of Multi-objective Evolutionary Algorithms: Empirical Results. Evolutionary Computation, 8(2):173195, Summer 2000. 7) Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, and T. Meyarivan. A Fast and Elitist Multiobjective Genetic Algorithm: NSGAII. IEEE Transactions on Evolutionary Computation, 6(2):182 197, April 2002. 8) Eckart Zitzler, Marco Laumanns, and Lothar Thiele. SPEA2: Improving the Strength Pareto Evolutionary Algorithm for Multiobjective Optimization. In K.C. Giannakoglou et al., editor, Proceedings of the EUROGEN2001Conference, pages 95100, Barcelona, Spain, 2002. CIMNE.

Como se puede ver en la figura, en el caso de optimizacin multi-objetivo no se tiene un solo lder sino un conjunto de lderes. Esto se debe a que un problema multi-objetivo generalmente no tiene una solucin nica, sino un conjunto de soluciones. De esta forma, se pretende que cada lder funja como gua para una solucin distinta. Por otro lado, en el caso del algoritmo MOPSO se hace uso de un archivo externo en el que se almacenan las mejores soluciones obtenidas hasta el momento (bajo ciertos esquemas de distribucin y/o convergencia al ptimo) y que sern devueltas como la salida correspondiente del algoritmo. As tambin, el algoritmo MOPSO incorpora un operador de mutacin con el fin de mantener diversidad dentro del cmulo de partculas. Todos los detalles del algoritmo MOPSO pueden consultarse en (3). Ahora bien, como se muestra en la figura anterior, el concepto de herencia se aplica con una cierta probabilidad, llamada proporcin de herencia ph. Esta probabilidad indica qu tan seguido se va heredar la aptitud (o valores de la funcin objetivo) de una partcula. De lo contrario, se evala la funcin de aptitud. Para llevar a cabo la herencia en el algoritmo MOPSO, se propuso el uso de una frmula muy similar a la presentada previamente para actualizar la posicin de las partculas en el espacio de bsqueda. Sin embargo, en este caso, la frmula es aplicada en el espacio de las funciones objetivo (es decir, la propuesta de EVOCINV es heredar los valores de las funciones objetivo): f(t+1)=f(t)+vf(t+1) vf(t+1)=w*vf(t)+c1*r1(pbest-f(t))+c2*r2(lder-f(t)) Puede verse que aqu simplemente se ha sustituido f(t) por x(t) en la ecuacin anterior. Por otro lado, se propusieron seis tcnicas distintas para adaptar el valor de la proporcin de herencia (a lo largo del proceso de bsqueda), ph, con el fin de obtener el mayor ahorro posible en el nmero de evaluaciones de la funcin objetivo. Todos los detalles de esta propuesta pueden consultarse en (4) y (5).

TODO MENOS LOS DATOS


Fernando Esponda*

udwig Wittgenstein, filsofo austriaco, con su clebre frase(7) dijo que lo ms importante de su libro el Tractatus es aquello que no est contenido en l. Esta paradoja sugiere que frecuentemente la identidad de algo se puede delinear mediante la descripcin de lo que no es: as, podemos determinar la ubicacin de nuestro coche en un estacionamiento si recordamos todos los lugares donde no nos estacionamos. A primera vista, esta sugerencia aparenta ser, simplemente, una manera ineficiente de representar la misma informacin; un anlisis ms atento, sin embargo, revela que existen diferencias en cuanto a la forma de acceder a ella. Qu tan til es revelar el 50% de los lugares en donde no est mi coche? No mucho si lo que se busca es simplemente ubicar el auto; ms bien, lo que sugiere es que almacenar datos negativos podra rendir dividendos en cuanto a la seguridad de la informacin que representan. En lo que sigue tratar sobre la posibilidad de representar negativamente una base de datos y describir un esquema cuyas caractersticas permiten limitar la manera en que stas pueden ser explotadas. BASES DE DATOS NEGATIVAS Supongamos que se tiene una base de datos con los nombres y direcciones de los empleados de una empresa. Una base de datos negativa es una representacin de todos los posibles nombres y direcciones excepto los de la base original. Me refiero a la base con los datos de inters inmediato (los nombres y direcciones por ejemplo) como base positiva y la abrevio como DB; la base de datos con todo lo dems es la base de datos negativa y me refiero a ella como NDB. Para ser ms preciso defino una base de datos como un conjunto de cadenas de longitud fija - una cadena es una sucesin de smbolos alfanumricos: una frase en espaol es una cadena de letras. Al restringir las cadenas de una base de datos a cierta longitud se limita tambin el nmero de cadenas posibles que la base puede contener; por ejemplo, si estamos hablando de cadenas de letras de longitud 4, hay 274 posibles combinaciones (27 letras del abecedario). El efecto de limitar el nmero de cadenas posibles es que la cantidad de cadenas o registros que no estn en una base de datos es finito, simplificando la tarea de crear una base negativa. Sin embargo, esto por si mismo no es suficiente para el objetivo real de crear una base de datos negativa en tiempo y espacio razonables - (usaremos el trmino razonable con el significado de que sea una funcin polinomial en el tamao de DB). Si la base de datos en cuestin contiene, digamos, 1000 cadenas de longitud 100, el nmero de entradas que deben ser representadas en su negativo es 27100 - 1000, bastante ms que la cantidad de tomos en el universo. Lo que se necesita, entonces, es una manera de representar tal nmero de cadenas de manera compacta y un algoritmo que genere NDB sin tener que enumerar todos los elementos que representa. Con este fin es conveniente enfocar nuestro anlisis a cadenas binarias: asumimos que los registros almacenados en una base de datos positiva son sucesiones de unos y ceros exclusivamente. Cabe notar que una cadena binaria puede ser interpretada como una cadena de letras (o smbolos de cualquier otro alfabeto) mediante la agrupacin de subcadenas de bits. Una base de datos negativa es un conjunto de cadenas definidas sobre el alfabeto ternario {0,1,*}. El nuevo smbolo *, llamado comodn, permite que una sola entrada en NDB represente mltiples sucesiones binarias (ver la siguiente tabla).

donde una tiene un cero y la otra un uno. Una cadena con n comodines representa 2n cadenas binarias (ver la siguiente figura ). Existen varios algoritmos (1,2,3,6) que toman como entrada una base de datos positiva y producen, en un tiempo y de un tamao razonable, una base negativa. La idea detrs de todos ellos es encontrar subconjuntos de 2n cadenas en U-DB que difieran en slo n posiciones para representarlos con una sola entrada en NDB (ver tabla anterior). Por ejemplo, el algoritmo del prefijo(1) busca subconjuntos de cadenas con prefijos que no estn en DB. Los distintos mtodos generan bases negativas con distintas propiedades, pero la de mayor inters para la actual exposicin es la de reversibilidad.

000101 00101 00001 00*01 000111 001101 001111 00*1*1

U
000 001 010 011 100 101 110 111

DB
001 100 110

U-DB
000 010 011 101 111

NDB
01 0*0 1*1
Dos cadenas binarias iguales excepto en una posicin, pueden ser representadas por una sola cadena con un comodn en la posicin en que difieren. Cuatro cadenas que difieran en slo dos posiciones son representadas por una entrada con dos comodines.

El universo, U, de posibles cadenas binarias de longitud tres; una base de datos positiva DB; las cadenas que no estn en DB (U-DB); y una base de datos negativa, NDB, representando U-DB.

Una cadena con un comodn en la posicin i (cualquier posicin) representa dos cadenas con los mismos smbolos que la original excepto en la posicin i,

REVERSIBILIDAD Diferentes algoritmos crean bases de datos negativas con diferentes caractersticas en dos aspectos: uno, en cuanto al nmero de comodines que cada registro tiene, y otro, en cuanto a si cada entrada en NDB representa un sub-conjunto exclusivo o no de cadenas binarias. En este ltimo punto surge la pregunta de qu tan fcil es recuperar la base de datos positiva representada por cierta NDB. A primera vista es de suponer que, dado que es fcil obtener la base negativa, es igualmente fcil recuperar la positiva; sin embargo, ste no es siempre el caso y depende de los detalles de NDB. El trabajo en (1) demuestra que el problema general de recuperar una base positiva pertenece a la clase de problemas NP-Duros(5), lo que
Contina en la pgina 5.

significa que no se conoce (y se conjetura que no existe) un algoritmo eficiente para lograr esta tarea. En (3) y (6) se investiga como generar bases de datos negativas que son difciles de revertir. APLICACIONES Una base de datos negativa difcil de revertir es potencialmente de utilidad para aplicaciones en donde los datos de la base original contienen informacin delicada. Supongamos que se trata de una lista con los nombres de los cien mejores clientes de un banco (los ms ricos, por ejemplo); crear una base negativa irreversible de esta lista protege los nombres e incluso el nmero de clientes incluidos en la lista. Pero si la lista original no se puede recuperar, de qu sirve, entonces? Una caracterstica de las bases de datos negativas es que aun cuando son difciles de revertir es fcil verificar si una entrada en particular, un nombre en este caso, est o no representado en ella - una cadena binaria x est representada en NDB si y slo si existe un registro z en NDB donde para cada posicin el valor de x y z son iguales o el valor de z es * (ver ejemplo en la tabla). De esta forma, usando NDB, podemos responder a preguntas del tipo Est Julio Regalado en la lista? mientras que preguntas como Quin est en la lista?, Quin de apellido Jimnez est en la lista? o Cuntos nombres hay en la lista? no son posibles de contestar en un tiempo razonable. Ms all de poder determinar la existencia de un dato en DB, es posible hacer otro tipo de manipulaciones de la base de datos utilizando nicamente NDB, como insertar y suprimir entradas de DB, as como realizar muchas operaciones del algebra relacional(4). Por ejemplo, dos compaas, A y B, quieren saber cules clientes tienen en comn, sin revelar el nombre de cualquier otro cliente y sin revelar cuntos clientes tiene cada uno. Una manera de realizar esta operacin es mediante el intercambio de las bases negativas correspondientes a sus listas de clientes; la compaa A determina qu clientes tiene en comn con B al establecer qu nombres de su base de datos (positiva) no estn en la base negativa de B. B hace lo mismo. Gracias a que las bases negativas de A y B son difciles de revertir, los nombres de los clientes que caen fuera de la interseccin, as como el tamao de las bases originales, permanecen protegidos. Supongamos que adems del nombre se cuenta tambin con el nmero de tarjeta de crdito del cliente. Mediante las operaciones descritas en (4), dadas las bases de datos negativas apropiadas, podemos generar una tercera que representa

los nombres y nmeros de tarjeta para aquellos clientes que estn registrados en ambas compaas. Podemos tambin restringir los contenidos de dicha base a clientes que tengan slo la tarjeta Visa o Visa y Amex por ejemplo (el tipo de tarjeta est determinado en los primeros dgitos de su nmero). Lo que resulta interesante es que todas estas manipulaciones son hechas sin saber el contenido de las bases positivas, es decir, sin saber el nombre de los clientes y sin saber qu tarjetas tienen. CONCLUSIN En esta nota describ un simple cambio de perspectiva en lo que significa tener un dato; desde el punto de vista de la informacin que representa, lo mismo es almacenar el dato que todos los posibles datos excepto se. Sin embargo, circunstancias donde el dato en s tiene un valor inmediato crean la oportunidad de explotar la representacin alterna para fines especficos. En particular, expuse cmo se puede aprovechar una representacin negativa de la informacin para restringir los usos que se le dan a una base de datos. La tecnologa descrita es nueva pero la evidencia sugiere que tiene un lugar en el mbito de la seguridad de informacin. *Instituto Tecnolgico Autnomo de Mxico Correo electrnico: fernando.esponda@itam.mx
Referencias: 1) F. Esponda, Negative Representations of Information, PhD Thesis, University of New Mexico. 2004. 2) F. Esponda, Elena S. Ackley, Stephanie Forrest and Paul Helman, On-line Negative Databases (Extended version). International Journal of Unconventional Computing, Vol.1. pp 201-220. 2005. 3) F. Esponda, E.S. Ackley, P. Helman, H. Jia, and S. Forrest. Protecting Data Privacy through Hard-to-Reverse Negative Databases. In proceedings of the 9th Information Security Conference (ISC06). Springer LNCS. Pginas 72-84, 2006. 4) F. Esponda, S. Forrest and E. Trias. An Algebra for Negative Databases. En revision. 2007. 5) M. R. Garey and D.S. Johnson. Computers and Intractability: A Guide to the Theory of NPCompleteness. W.H. Freeman & Company. 1978. 6) M. de Mare and R. Wright. Secure Set Membership Using 3SAT. In proceedings of the 8th International Conference on Information and Communication Security (ICICS 06). 2006. 7) L. Wittgenstein. Carta a Ludwig von Ficker. Octubre. 1919.

ARQUITECTURA DE SISTEMAS EN CAPAS


Beatriz Gutirrez Almaraz*
Qu tiene en comn los sistemas de informacin y las cebollas? Capas. En efecto, las cebollas tienen capas, los sistemas tienen capas, aunque, claro est, no a todos les gusta la cebolla, al igual que no a todos les gusta implementar sistemas en capas.

or lo general, un equipo de desarrollo de software est conformado por personas con distintos roles tales como analista, arquitecto de software, programador, verificador de calidad, lder de proyecto; aunque en la realidad encontramos situaciones en las que una sola persona desempea todos o la mayora de los roles mencionados. Por tal motivo, es recomendable que todos los integrantes de un equipo de desarrollo de software conozcan el ABC para la creacin de sistemas, que se compone de las siguientes fases: 1) Recopilacin de requerimientos y anlisis 2) Diseo y desarrollo 3) Realizacin de pruebas 4) Liberacin y puesta en marcha. Cada fase conlleva sus propios tiempos y actividades a realizar. Pero, qu sucede cuando llegamos al cuarto paso y el sistema se entrega al cliente? En ocasiones el cliente queda insatisfecho porque el sistema no cumple con sus expectativas. Es importante mencionar que no podemos sealar a un nico responsable causante de esta situacin no deseada. Existen mltiples factores que afectan la creacin de software y muchos de stos se concentran en una palabra: cambio. Cambios en los intereses del cliente, en el entorno econmico, socio-poltico, tecnolgico, en el equipo de desarrolladores, entre otros ms, impactan sustancialmente al producto final. Ante tales circunstancias, el equipo de desarrollo debe hacer su trabajo lo suficientemente flexible para poder adaptarse al entorno dinmico del exterior y de esta forma realizar una construccin de sistemas inteligibles, coherentes, descriptivos, funcionales y eficientes. Una forma de lograrlo es evitando caer en errores de diseo de software. De acuerdo con Robert C. Martin, existen cuatro indicadores interrelacionados sobre problemas en el diseo de software que hay que evitar (malas prcticas)(1): RIGIDEZ Dificultad de comprensin de cdigo, incertidumbre de las funciones que realizan.(1) La experiencia de involucrarse en cdigo de terceras personas puede resultar desagradable. El programador analista

est propenso a enfrentar diversos obstculos tales como: 1) un conglomerado de archivos con nombres sin significado pagcons, agrtodos, clieli de los cuales se desconoce las funciones que realizan 2) los archivos que conforman al sistema estn dispersos en diferentes computadoras y no se sabe cul es la versin final del cdigo; 3) el cdigo no est documentado, de tal forma que es difcil saber con exactitud el objetivo de los mtodos definidos dentro del cdigo, consecuentemente el seguimiento para la actualizacin del mismo se vuelve una tarea ardua. INMOVILIDAD Reescritura en lugar de reutilizacin.(1) Durante el desarrollo de un sistema es frecuente encontrar funcionalidades semejantes entre los diversos mdulos que se deben implementar. Entre programadores, existe la tendencia de copiar dichas funcionalidades en repetidas ocasiones y pegarlas en los lugares donde se les necesita (en lugar de implementarlas slo una vez e invocarlas desde los diversos lugares que lo requieran). El inconveniente de dicha tendencia, es que vuelve ms complicado el mantenimiento del cdigo y ms costosa la realizacin de modificaciones, puesto que en lugar de cambiar una sola vez el cdigo, se tiene que cambiar por cada copia existente en el sistema. VISCOSIDAD Es fcil hacerlo mal y difcil hacerlo bien.(1) Esto se manifiesta cuando el cdigo del sistema posee instrucciones difciles de cambiar debido a la alta dependencia que tienen con otros componentes de software. Dentro del argot del programador, el parchar software es una prctica frecuente, sucede cuando hay que realizar cambios en poco tiempo a un sistema o software existente, dado que el factor tiempo es de suma importancia, la forma de corregir el cdigo es impropia y es bien sabido que un software con demasiados parches tiende a comportarse de manera errtica. FRAGILIDAD Todo lo que tocas se rompe, un cambio mnimo en el cdigo implica problemas.(1)

Siguiendo con el cdigo de terceras personas, es posible que el programador haya tenido la sensacin de jugar Jenga al momento de efectuar cambios al cdigo, debido a que no le es posible determinar si dichos cambios afectarn el rendimiento o la correcta funcionalidad del sistema. Cuando el cdigo de un sistema presenta viscosidad y rigidez cualquier cambio realizado se convierte en una posibilidad de inestabilidad en el sistema. Al programador slo le queda crear respaldos y cruzar los dedos para que las modificaciones realizadas no provoquen ms problemas de los que intentaban resolver. Para evitar las situaciones mencionadas y optimizar la fase del diseo de software se usan dos tcnicas importantes en la ingeniera del software: patrones y arquitectura de software. Mientras que la arquitectura de software describe la forma y estructura del software, es decir, sus componentes y cmo estos interactan, un patrn describe un problema que ocurre una y otra vez en el entorno, y propone una solucin a ese problema, de tal forma que se puede utilizar dicha solucin una y otra vez(2). El equipo de desarrollo de software es el responsable de elegir las tcnicas convenientes para la realizacin de los sistemas encomendados. Si se est pensando en crear un sistema que mantenga separados e independientes los diversos mdulos de cdigo que lo conformaran se sugiere el uso

de un patrn de diseo llamado MVC - Modelo-Vista-Control (Model-ViewControl). ste posee tres separaciones lgicas; la primera de ellas conocida como Modelo, donde se realiza el acceso a los datos que maneja el sistema de informacin, y que es necesario para obtener y actualizar la informacin del sistema. Posteriormente aparece el Control, donde se localiza la lgica del negocio y todo el cdigo necesario para determinar el comportamiento del sistema y por ltimo la Vista, que es responsable del despliegue de la informacin solicitada y que posee todos los elementos visuales del sistema con los cuales el usuario podr interactuar. A nivel abstracto nos queda claro entonces lo que debemos realizar, separar el cdigo concerniente a la interfaz del usuario de todo el cdigo asociado a las reglas del negocio y de la recuperacin o actualizacin de datos. Pero an nos queda saber cmo podemos hacerlo? Una opcin es utilizar frameworks MVC que facilitan la distribucin del cdigo de nuestro sistema, adems de proveer funcionalidades para la intercomunicacin entre las separaciones lgicas anteriormente mencionadas. Algunos ejemplos de frameworks MVC son: Struts(3), Spring(4), Tapestry(5) y Wicket (6). Otra opcin es el manejo de la arquitectura en capas (ambas opciones no son excluyentes y pueden ser implementadas a la vez para un solo sistema). Considero que el aspecto
Contina en la pgina 7.

viene de la pgina 6. ARQUITECTURA...

clave de la arquitectura de capas radica en su simplicidad, al contemplar una capa como una separacin lgica del software(2). Es responsabilidad del programador definir cules sern los alcances y limitaciones de las capas que decida implementar.

cin de arquitectura en capas son: v Lleva a la reduccin de costos de mantenimiento de sistemas. Al poder identificar la arquitectura del sistema y la funcin de cada capa o subcapa contenida es ms sencillo determinar el lugar donde se debern ef-

La implementacin de capas en un sistema puede ser tan simple al dividir su cdigo en las tres capas sugeridas por el patrn MVC, o tan complejas al crear dentro de cada capa, subcapas que poseen actividades ms especficas, llevando el diseo del sistema a un nivel ms complejo en su estructura pero que facilita la identificacin de tareas y funcionalidades del sistema. Algunas ventajas de la implementa-

ectuar los cambios solicitados. De tal forma que la palabra cambio deja de ser sinnimo de inestabilidad en el sistema, permitiendo efectuar las actualizaciones solicitadas de forma efectiva, sin contratiempos en el menor tiempo posible. v Reutilizacin de cdigo y disminucin de tiempos de entrega. Dada la separacin lgica de los diversos componentes que integran al

sistema realizado, es posible extraer un componente y utilizarlo en otros desarrollos de sistemas que requieran una funcionalidad similar. El planear el desarrollo de sistemas basados en mdulos independientes permite la reutilizacin de cdigo y la posibilidad de crear una propia biblioteca de servicios o funcionalidades que estarn disponibles para desarrollos futuros. Lo cual se convierte en una ventaja competitiva que permite agilizar los tiempos de desarrollo y entrega de sistemas solicitados. v Promueve mejores prcticas entre el personal. Se incrementa el aprovechamiento de lecciones aprendidas hacia otros desarrollos de sistemas, esto es, el equipo de desarrollo puede aplicar los conocimientos adquiridos en otros sistemas que posean caractersticas en comn; la transicin de conocimiento se vuelve enriquecedora, fortaleciendo cada desarrollo realizado y dando pie al mejoramiento de lo aprendido. v Fomenta la especializacin del personal. Permite la asignacin de recursos a tareas especficas de acuerdo con las habilidades de cada integrante del equipo de desarrollo, es decir, si el integrante presenta mayores habilidades en la creacin de interfaces de usuario, ste se encargar de construir la capa

con la cual el usuario interactuar, si posee mayores habilidades de anlisis, entonces podra enfocarse nicamente a la parte de extraccin y actualizacin de datos. Implica un menor esfuerzo de aprendizaje y promueve la concentracin de sus habilidades en sus reas de inters. La adopcin de la arquitectura en capas dentro del ambiente laboral en ocasiones no es un proceso sencillo. La razn ms comn de esto es le renuencia del personal a cambiar su forma de trabajar; no a todos les gusta moverse de su sitio de confort. Sin embargo el contar con las ventajas de dicha arquitectura amerita el esfuerzo requerido por toda la empresa y su personal. *Unidad de Desarrollo de Software, LANIA. Correo electrnico: bgutierr@lania.mx
Referencias: 1) Robert C. Martin. Design Principles and Design Patterns. www.objectmentor.com 2) Roger S. Pressman. Software Engineering, a Practitioners Approach.Editorial McGrawHill, 6ta. edicin. 3) Pgina oficial de struts: http://struts.apache. org/ 4) Pgina oficial de spring: http://www.springframework.org/ 5) Pgina oficial de tapestry: http://tapestry.apache.org/ 6) Pgina oficial de wicket: http://wicket.apache.org/

Cmputo Bio-Inspirado Una mirada a lo natural


Efrn Mezura-Montes*

a dinmica del mundo actual exige cada vez ms la solucin de problemas complejos. Ejemplo de ello son los problemas de optimizacin, que consisten en encontrar la mejor solucin de entre un conjunto de posibilidades (por ejemplo, encontrar el camino ms corto entre dos ciudades unidas por diferentes rutas) y que con frecuencia se presentan en reas como el diseo en ingeniera, el control automtico, la calendarizacin de tareas y el ruteo de paquetes en redes de computadoras, entre otras. El rea de la investigacin de operaciones ofrece una gama de tcnicas diseadas para resolver este tipo de problemas. Pero existen tcnicas alternativas que permiten obtener una solucin aceptable en un tiempo moderado, aunque sin garantizar que sea la mejor solucin posible. A estas tcnicas se les conoce como heursticas, cuyo uso puede llevar a obtener una solucin aceptablemente buena para un problema determinado sin invertir mucho tiempo en ello. A partir del esfuerzo paralelo de tres investigadores con diferentes motivaciones en la dcada de los sesenta, a saber, John Holland en la Universidad de Michigan, Lawrence Fogel en la Universidad de California en Los ngeles e Ingo Rechenberg en la Universidad Tcnica de Berln, surgi el rea conocida hoy como Computacin Evolutiva. La Computacin Evolutiva engloba una serie de tcnicas heursticas basadas en la teora neo-Darwinista y que emulan de una manera simple la evolucin de las especies y la supervivencia del ms apto. En los algoritmos derivados de dichas tcnicas se representa y evala un conjunto de posibles soluciones a un problema de optimizacin de acuerdo a un valor de calidad que determina qu tan buena es una solucin con respecto a otras. Estas soluciones, llamadas individuos, son escogidas de acuerdo a su valor de calidad o aptitud mediante un proceso de seleccin, de forma que las soluciones ms aptas sean las que se reproduzcan, es decir, generen nuevas soluciones utilizando operadores de variacin (recombinacin)
Contina en la pgina 8.

viene de la pgina 7. CMPUTO...

y mutacin principalmente). Estos operadores son manipulaciones aleatorias de algunas de las partes de los individuos ms competitivos y emulan la transmisin de caractersticas entre padres y descendientes. Finalmente, mediante un proceso de reemplazo se elige de entre padres e hijos a los que sobrevivirn para formar parte de la poblacin de la siguiente generacin (una iteracin). Gracias a su simplicidad conceptual y de implementacin, los algoritmos evolutivos han sido ampliamente aplicados en problemas donde los mtodos de la investigacin de operaciones no han podido proporcionar soluciones competitivas o bien su aplicacin se considera complicada. Desde finales de los aos ochentas hasta mediados de los noventas surgen, con diferentes motivaciones, otras tcnicas evolutivas: la programacin gentica y la evolucin diferencial. La primera, gracias al uso de estructuras de rbol para representar soluciones, se orienta a la optimizacin simblica (optimizacin de cdigo o de circuitos lgicos combinatorios, entre muchas otras aplicaciones), mientras que la segunda se dise con base en elementos propios de la optimizacin clsica en un esquema evolutivo con vistas a resolver problemas de optimizacin numrica. Hacia mediados de los aos noventas, el rea del cmputo evolutivo se extiende al surgir nuevos modelos inspirados en otros fenmenos encontrados en la naturaleza, diferentes de la evolucin de las especies. Tales propuestas han sido agrupadas en un rea conocida como inteligencia colectiva (en ingls, Swarm Intelligence). En ella se distinguen dos paradigmas seminales: la optimizacin mediante enjambre de partculas (Particle Swarm Optimization, o PSO) y la colonia de hormigas. La optimizacin mediante enjambre de partculas est basada en las coreografas que forman algunas aves al moverse de un lugar a otro. Existe en ese caso un lder que gua a la parvada, pero sus integrantes se comunican entre ellos y cada uno toma decisiones de acuerdo con su propio conocimiento y con el comportamiento de sus vecinos. En cambio, en la colonia de hormigas se plantea la modelacin de diferentes comportamientos cooperativos encontrados en algunos tipos de especies de hormigas. El modelo ms conocido es el Ant System, que emula el comportamiento de forrajeo, o bsqueda de comida, de las hormigas al salir del nido, de forma que encuentran el camino ms corto entre su nido y la fuente de comida. Esto se realiza mediante la comunicacin indirecta entre hormigas mediante el depsito de una sustancia llamada feromona, que se va evaporando con el tiempo. Las hormigas que vienen detrs

darn preferencia a los caminos ms cargados de feromona. Recientemente se han propuesto nuevos algoritmos basados en comportamientos sociales en grupos de seres vivos simples, que en conjunto pueden resolver problemticas muy complejas. Ejemplo de ello es la colonia artificial de abejas, que emula la bsqueda del nctar de las flores por parte de esos insectos. Al interior de la colmena se da una comunicacin mediante danzas que indican la direccin y calidad de las fuentes de alimento. De esta manera, las abejas son capaces de concentrar la bsqueda en las zonas donde las fuentes de alimento sean ms abundantes. La optimizacin mediante enjambre de lucirnagas es otro modelo propuesto recientemente. En l, las lucirnagas se comunican unas a otras mediante la intensidad de su luz, de forma que las que estn ubicadas en zonas con mejores condiciones, atraern al resto. Adems, cada lucirnaga cuenta con un radio de visibilidad determinado, por lo que este algoritmo favorece la formacin de grupos, lo que se lleva muy bien con la optimizacin multimodal, donde se busca encontrar diferentes soluciones, todas de buena calidad. La optimizacin mediante el forrajeo de bacterias es otra propuesta reciente. Los movimientos originados por los flagelos de la bacteria E. Coli le permiten nadar o cambiar de direccin dependiendo de lo favorable que sean las condiciones de la zona del ambiente en la que se encuentre. Este proceso ha sido modelado e incluido en un algoritmo de bsqueda en espacios complejos. Dentro de esta propuesta tambin se consideran elementos de reproduccin y eliminacin de bacterias. En el Laboratorio Nacional de Informtica Avanzada, en Xalapa, Veracruz, se cuenta con un grupo de trabajo dedicado al estudio, diseo y aplicacin de este tipo de tcnicas heursticas, englobadas bajo el nombre de cmputo bio-inspirado, a problemas prcticos. Actualmente se tienen aplicaciones exitosas en reas como el control automtico, el diseo mecnico, el diseo electrnico y el registro de imgenes mdicas. Sin duda, el cmputo bio-inspirado un rea joven dentro de la Inteligencia Computacional es terreno frtil para la investigacin bsica y aplicada, y en el futuro cercano se vislumbra un crecimiento de la comunidad especializada en Mxico, que lleva a cabo anualmente una conferencia sobre el tema, desde 2003, y cada vez atrae ms el inters de investigadores y estudiantes. *LANIA. Correo electrnico: emezura@lania.mx

Carlos Coello: Premio de Investigacin Cientfica de la Academia Mexicana de Ciencias 2007*

l Premio de Investigacin de la Academia Mexicana de Ciencias fue instituido en 1961 y se otorga a investigadores no mayores de 40 aos, que realicen investigacin de punta en las reas de ciencias exactas, naturales, sociales, humanidades, ingeniera. Es la distincin ms importante que otorga la Academia Mexicana de Ciencias y se lo concedieron por vez primera a un doctor en Computacin. Carlos Coello form parte del cuerpo de investigadores de LANIA de 1997 al 2000, a su regreso del doctorado en la Universidad Tulane en EUA, por lo que nos honra reproducir un extracto de su discurso ante la Academia el da de su premiacin. Ver discurso y entrevista completa en: @rrob@, Columna Semanal de la Jornada de Oriente del 23 de Junio del 2008. En 2007 tuve la fortuna de haber sido galardonado con este importante premio, convirtindome as en el primer computlogo en obtenerlo. Algo curioso es que lo recib en el rea de Ciencias Exactas (donde tuve que competir contra fsicos, qumicos y matemticos), debido a que el rea de Ingeniera y Tecnologa (que a muchos pudiera parecerles un sitio ms adecuado para la computacin),

SOPORTE TCNICO Juan Manuel Gutirrez Mndez PRESIDENTE DEL COMIT TCNICO DEL FIDEICOMISO Sergio Autrey Maza
Edicin a cargo de: Cora B. Excelente

Laboratorio Nacional de Informtica Avanzada, LANIA A.C. Rbsamen 80, Col. Centro, A.P. 696, Xalapa,Veracruz 91000, Mxico. Tels: (52) (228) 841-6100 Fax: (52) (228) 841-6101 Direcciones electrnicas: biblioteca@lania.mx http://www.lania.mx/

Diseo e ilustracin: Susan Flaherty

slo considera a tecnlogos que cuenten, preferentemente, con patentes. La competencia para obtener este premio es muy dura, sobre todo si se considera que no participan (y nunca lo han hecho) computlogos en ninguna de las comisiones evaluadoras. Cabe mencionar que particip en tres aos consecutivos y que el premio lo obtuve en mi ltima oportunidad, justo antes de cumplir el lmite de edad impuesto en la convocatoria, y cuando ya haba perdido toda esperanza de ganarlo. Sobra decir que este premio es, sin lugar a dudas, un enorme incentivo para continuar nuestra labor como investigadores. Este reconocimiento lo compartimos tambin con nuestros estudiantes y colaboradores, sin cuyo apoyo, no estaramos aqu. Y a propsito de reconocimientos, uno muy especial merecen tambin nuestras familias. Pero este da, la felicidad

eclipsa, aunque sea por un momento, a la realidad. Este da, no pensaremos en las enormes limitantes que debemos enfrentar los cientficos mexicanos para poder realizar nuestro trabajo. Este da, nos olvidaremos de los tortuosos sistemas de evaluacin a los que estamos sujetos. Este da, pensaremos que somos otro Mxico; un Mxico en el cual la ciencia se ve como la puerta al desarrollo. Slo quisiera que este da no se acabara, si bien mi entrenamiento como cientfico, me impide ignorar la ingrata certeza de que esta ilusin no vivir hasta maana. * El Dr. Carlos Artemio Coello Coello, ex-investigador de LANIA, es miembro del Sistema Nacional de Investigadores Nivel 3, especialista en optimizacin evolutiva, egresado de la Universidad Autnoma de Chiapas y actualmente es investigador y jefe del Departamento de Ingeniera Elctrica, Seccin de Computacin del CINVESTAV. e-mail: ccoello@cs.cinvestav.mx http://delta.cs.cinvestav.mx/~ccoello/

DIRECTORIO
INVESTIGADORES Y COLABORADORES Julio Csar Aguilar Cabrera Edgard Ivn Bentez Guerrero Beatriz Gutirrez Almaraz Efrn Mezura Montes Miguel Angel Ponce Ruz Ericka Janet Rechy Ramrez Miguel Angel Snchez Martnez Mauricio Aranda Solares Ivn Gutirrez Guevara Leticia Medina Salazar Luis Guillermo Osorio Hernndez DIRECTOR GENERAL Cristina Loyo Varela
Impresin: Offset Rebosan

DIRECTORA DE OPERACIONES Cora Beatriz Excelente Toledo DIRECTOR DE EDUCACIN Pedro Nolasco Vzquez ADMINISTRACIN Mara Contreras

Das könnte Ihnen auch gefallen