
Este lunes, El Colegio Nacional comienza el curso Una breve introducción a la inteligencia artificial y sus aplicaciones, coordinado por el colegiado y computólogo Carlos A. Coello Coello. La actividad presencial comenzará a las 18 horas en el Aula Mayor de la institución (Donceles 104, Centro Histórico, CDMX). En el marco de esta sesión inaugural, compartimos algunos fragmentos del discurso de ingreso de Coello Coello a este órgano colegiado.
DE LAS ESTRUCTURAS RETICULARES A LOS ALGORITMOS EVOLUTIVOS
Mi largo camino de la ingeniería civil a las ciencias de la computación
Carlos A. Coello Coello
Miembro de El Colegio Nacional
[...] De joven, no fue fácil para mí decidir qué estudiar, pese a que tuve opciones muy limitadas. Para alguien que nació en un pequeño pueblo de la costa de Chiapas llamado Tonalá y que creció en los años setenta en Tuxtla Gutiérrez, las opciones profesionales eran muy escasas, pues se reducían a estudiar ingeniería civil, arquitectura, derecho, administración o medicina. Desde la adolescencia supe que me gustaban las matemáticas, pero creía tener también cierta inclinación por la electrónica y, de alguna forma, pensaba que se me facilitaba la química, aunque nunca me gustó tanto como las matemáticas. Decidí estudiar ingeniería civil, tal vez más porque era la profesión de mi padre que por ser la que parecía más cercana a mis intereses que eran diversos y quizá, hasta un tanto dispersos.
Desde la adolescencia me sentí atraído por la ciencia y también por la ciencia ficción. Crecí admirando a Los cazadores de microbios de Paul de Kruif y pasé horas leyendo historias fascinantes de ciencia ficción como las Crónicas marcianas de Bradbury y el Anochecer de Asimov [...]. También disfruté de la lectura de libros de divulgación como El cerebro de Broca… de Carl Sagan [...]. Fue así como un día de mi remota adolescencia, decidí que sería un científico. La incógnita que prevalecería durante varios años era el área en la que trabajaría.
Y así, llegué al verano de 1985. Tras haber aprobado el examen de admisión de la carrera de Ingeniería Civil en la UNACH [...]. Fue en ese entonces que mi padre llevó un día a casa una pequeña computadora Timex Sinclair que debía conectarse a un televisor. Esta computadora, que contaba con una memoria muy limitada, venía equipada con un intérprete del entonces popular lenguaje de programación BASIC y podía programarse con relativa facilidad. Mi primer contacto con esta pequeña computadora despertó en mí una fascinación que me ha acompañado durante el resto de mi vida. Pero la programación fue el inicio del camino a la curiosidad por saber más acerca de estas enigmáticas máquinas dentro de las cuales se ocultaban mundos maravillosos. Pronto, no me bastó con poder escribir programas que resolvieran problemas sencillos de ingeniería civil. Quería entender la forma en la que una computadora procesaba la información que yo le proporcionaba. Esto me llevó a leer diversos libros y revistas en una época en que no existía acceso a internet en Tuxtla Gutiérrez.
Después, y gracias a la generosidad de mi padre, vinieron otras computadoras: tuve una Commodore 64 y luego una Commodore 128 y algunos años más adelante, pude comprar con mis propios recursos, una computadora Printaform, compatible con IBM, que traía un monitor monocromático y una unidad de discos flexibles de 5.25 pulgadas. Con ellas aprendí a programar, de forma muy rudimentaria y totalmente autodidacta, en Pascal, Pilot, LOGO e incluso llegué a aprender algo del lenguaje ensamblador y algo del lenguaje de máquina ––o sea, a programar usando de manera directa números binarios––. Y por resolver problemas de análisis estructural y de hidráulica nació mi pasión por los métodos numéricos y por los algoritmos. Recuerdo que me volví una molestia constante para mis profesores de la UNACH, pues siempre quería conocer las ecuaciones detrás de los métodos gráficos de solución, que eran tan comunes en mis cursos de ingeniería civil de aquella época. Mi obsesión por entender a profundidad un problema a fin de encontrar la forma más adecuada de resolverlo, me ha acompañado desde entonces.
Y así, transcurrieron cinco largos años en los que logré concluir la carrera de Ingeniería Civil mientras estudiaba por mi cuenta diversos conceptos de computación que creía que me serían de utilidad más adelante. Bromeaba con mis amigos, diciéndoles que estaba estudiando computación y que en mis ratos libres, hacía mis tareas de ingeniería civil. Evidentemente, a esas alturas, estaba convencido de que lo que quería era estudiar computación y veía a la ingeniería civil como un simple pasatiempo. Elegí escribir mi tesis de licenciatura acerca del análisis de estructuras reticulares por computadora usando el método de rigideces. Cabe mencionar que las estructuras reticulares se forman por medio de barras, tales como las armaduras planas que suelen usarse en los puentes. Esto me permitió aprender más respecto del lenguaje de programación Pascal, que gozaba de gran popularidad a principios de los años noventa. Y en el proceso, aprendí diversos métodos numéricos como, por ejemplo, el método de Cholesky, que se usa para matrices simétricas, el cual apliqué al análisis de las estructuras que abordé en mi tesis.
[...] En aquellos días, en uno de mis frecuentes viajes a la Rectoría de la UNACH para completar los trámites de mi titulación, [...] me topé con un anuncio de unas becas que ofrecía [la SEP] para estudiar en la Universidad Tulane. [...] Ni siquiera sabía en dónde estaba ubicada esa universidad, pero de inmediato pensé que podría solicitar una beca para cursar una maestría en computación. Lleno de ilusiones, viajé a la Ciudad de México a entregar documentos, convencido de que obtendría una beca. Mientras esperaba los resultados de mi solicitud, estuve trabajando, primero en la hoy Facultad de Ingeniería Civil (FIC) de la UNACH y luego, en una constructora, a cargo del manejo de un programa llamado NeoData para calcular los costos de una obra. Ésta sería la única vez en mi vida en que trabajaría como ingeniero civil.
En el verano de 1991, me despedí de mis jefes de la constructora, diciéndoles que me iría a estudiar una maestría a Estados Unidos. Todos me felicitaron sin saber que, a esas alturas, no había recibido todavía respuesta a mi solicitud de beca. Tras varias semanas de incertidumbre y angustia, finalmente recibí la tan ansiada llamada telefónica que esperaba, en la que me decían que se me había otorgado una beca para cursar una maestría en Ciencias de la Computación en Tulane y viajé en agosto de 1991 a Nueva Orleans [...] para iniciar una nueva aventura.
En Tulane me hicieron ver que me habían aceptado por ser un buen estudiante de licenciatura, pero manifestaron [...] que resultaría muy difícil para alguien con mi formación, el poder sobrevivir a los cursos de maestría en Ciencias de la Computación. Entendí después que esto se debía [...] a que en Estados Unidos, las ciencias de la computación tienen una fuerte orientación matemática y que mi formación de ingeniero civil tenía serias deficiencias a ese respecto.
[...] Sobrevivir a los cursos de Tulane fue difícil, pero yo me encontraba muy motivado y entusiasmado porque sentía que finalmente podía estudiar aquello que tanto había deseado[...]. Me puse a estudiar a fondo los principios de diseño de los lenguajes de programación, los enigmas de lo computable y lo no computable, el álgebra relacional, el ciclo del software, los principios de la arquitectura de las computadoras, los problemas NP-completos y NP-duros y los fascinantes, pero complejos métodos para analizar algoritmos, entre muchos otros temas [...]. Fui avanzando en mis estudios y logré extender mi beca al doctorado, tras haber concluido con éxito la maestría en diciembre de 1993.
Y fue en algún momento durante 1994, cuando tuve mi primer encuentro con el área a la que me dedicaría el resto de mi vida[...].
