daniel rrbelb8z rojas. profesor rsi$tente. departamento de...

8
Daniel Rrbelb8z Rojas. Profesor Rsi$tente. Departamento de Inform.,¡ón y Sistemas. UniuersiClQd del Ualle. La .empresa que se proponía Knuth recuerda los pro- pQsitos de otras empresas científicas o culturales inicia- Donald Knuth . das y llevadas algunas a cabo, por escritores, científicos publicó en 1968 el pnrner "- Q..artistq~ "iluminados", o sea aquellos que asumen una volumen de una obra, que se ha convertido Inmensa responsabilidad y procuran dejar para la poste- en un clásico de la computación y de la edu-: riolidad $U sello personal, aquellos que procuran esta- caclón al mismo tiempo. El autor de esta t»«;er una vinculación definitiva con su ciencia o con su resefta presenta sus Impresiones sobre afte. este trabajo e Intenta apreciar la Influen- cia que la obra ha tenido en Colombia. RESUMEN En 1968 publicó la Adisson-Wesley, el primer volumen de la obra "El arte de la programación de computadores" de Donald Knuth, un trabajo que se había concebido en siete volúmenes a saber: Algoritmos Fundamentales Algoritmos Seminuméricos, Clasificación y Búsqueda: Algoritmos Combinatorios, Teoría de lenguajes y Com- piladores. (1), (2), (3). la primera hojeada del volumen, "Algoritmos Funda- mentales", dejó la impresión de una obra extraria. Por un lado enciclopédica, cargada de personajes y hechos históricos, por otro lado escrita en un lenguaje materna- . tico, elevado a primera vista. Si el lector puede excusar nuestra ingenuidad, el encuentro con este trabajo se puede asimilar al que descubrimos con "Cien Alíos de Soledad". En ambos casos se descubren lenguajes nuevos, lo que implicaba emociones pero también serias inquietudes. 36 e ~l compromiso de Knuth al bosquejar su trabajo, era ya muy grande por el ascendiente ganado en la Universidad de Stanford y por su colaboración permanente en las revistas científicas y técnicas que se ocupaban de temas matemáticos y de computación. Nq ~iesen querido sus colegas y discípulos que le o~rriese lo mismo que a un famoso historiador inglés quien se propuso a los veinte años escribir "la historia de la civilización", y que posteriormente fué modificando sucesivamente por "la historia de la civilización en Occi- ~ente", "la historia de la civilización en Europa", y que flnalmerne a los setenta años escribió "la historia de Inglaterr~ en el siglo XVIII". B proceso seguido por Knuth ha sido más bien al con- trario. Se propuso escribir un libro sobre ciencias de la computación y encontró que tenía tantas ideas y plantea- ~ntos, que era imposible darles cabida en un solo volu- men. Nos proponemos ey- esta reseña, elaborar unas refle- /

Upload: trandien

Post on 30-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Daniel Rrbelb8z Rojas.Profesor Rsi$tente.

Departamento de Inform.,¡ón y Sistemas.UniuersiClQd del Ualle.

La .empresa que se proponía Knuth recuerda los pro-pQsitos de otras empresas científicas o culturales inicia-

Donald Knuth . das y llevadas algunas a cabo, por escritores, científicospublicó en 1968 el pnrner "- Q..artistq~ "iluminados", o sea aquellos que asumen una

volumen de una obra, que se ha convertido Inmensa responsabilidad y procuran dejar para la poste-en un clásico de la computación y de la edu-: riolidad $U sello personal, aquellos que procuran esta-caclón al mismo tiempo. El autor de esta t»«;er una vinculación definitiva con su ciencia o con suresefta presenta sus Impresiones sobre afte.este trabajo e Intenta apreciar la Influen-cia que la obra ha tenido en Colombia.

RESUMEN

En 1968 publicó la Adisson-Wesley, el primer volumende la obra "El arte de la programación de computadores"de Donald Knuth, un trabajo que se había concebido ensiete volúmenes a saber: Algoritmos FundamentalesAlgoritmos Seminuméricos, Clasificación y Búsqueda:Algoritmos Combinatorios, Teoría de lenguajes y Com-piladores. (1), (2), (3).

la primera hojeada del volumen, "Algoritmos Funda-mentales", dejó la impresión de una obra extraria. Porun lado enciclopédica, cargada de personajes y hechoshistóricos, por otro lado escrita en un lenguaje materna- .tico, elevado a primera vista. Si el lector puede excusarnuestra ingenuidad, el encuentro con este trabajo sepuede asimilar al que descubrimos con "Cien Alíos deSoledad". En ambos casos se descubren lenguajesnuevos, lo que implicaba emociones pero también seriasinquietudes.

36

e

~l compromiso de Knuth al bosquejar su trabajo, era yamuy grande por el ascendiente ganado en la Universidadde Stanford y por su colaboración permanente en lasrevistas científicas y técnicas que se ocupaban de temasmatemáticos y de computación.

Nq ~iesen querido sus colegas y discípulos que leo~rriese lo mismo que a un famoso historiador inglésquien se propuso a los veinte años escribir "la historia dela civilización", y que posteriormente fué modificandosucesivamente por "la historia de la civilización en Occi-~ente", "la historia de la civilización en Europa", y queflnalmerne a los setenta años escribió "la historia deInglaterr~ en el siglo XVIII".

B proceso seguido por Knuth ha sido más bien al con-trario. Se propuso escribir un libro sobre ciencias de lacomputación y encontró que tenía tantas ideas y plantea-~ntos, que era imposible darles cabida en un solo volu-men.

Nos proponemos ey- esta reseña, elaborar unas refle-

/

xiones elementales sobre esta obra veinte anos des-pués de haberse iniciado su publicación y al margen delas mismas elaborar algunos comentarios sobre su efec-to en Colombia. Presentamos dos anexos al final deeste comentario, sobre algunos personajes y conceptosutilizados. Lo hacemos como aficionados, pues esosomos.

Debemos advertir que solo conocemos los tres primerosvolúmenes, los Algoritmos Fundamentales, los Algorit-mos Seminuméricos y el volumen de la Clasificación yBúsqueda. Al parecer Knuth publicó ya los volúmenesIV y V. Los altos precios de los libros en Colombia nonos ha permitido adquirirlos y nos' hemos privado asl deindagar sobre lo que el autor llama los algoritmos combi-natorios.

A cualquier lector desprevenido podrfa parecerle algopretensioso el título bajo el cual aparecería su trabajo -"elarte de la programación de computadores"-. Se podríacuestionar si existe tal arte. Discutir esta situación es laprincipal motivación de este comentario. Para Knuth noexiste ninguna confusión al respecto, tal como lo deja ex-preso en las primeras líneasde su prólogo :

"El proceso de preparar programas para un computadordigital es especialmente atractivo, no unicamente acausa de la gratificación cienUficay económica, sinotambién porque puede ser una experiencia estética,

similara lacomposición de poesía o misca."

La propuesta de Knuth es interesante al menos por dosrazones.

En primer lugar, para el cc+ún de la gente, la idea deltrabajo en programación de computadores puede pare-cer atractivo en lo económico. Podría ser esa la razónprincipal de la existencia de un apreciable número deinstituciones privadas y públicas que se dedican a laensel'lanza de la computación y temas afines. O podríaplantearse, más bien, siguiendo el hilo de Knuth, que espor el presentimiento general de que tras la elaboraciónde programas se ofrecen posibilidades estéticas, lo cualhace del oficio de programador, una tarea similar a lacomposición artlstica y que ha llevado a miles de perso-nas a las aulas donde se imparte la correspondienteinstrucción. Hablaría muy bien de nuestro país se sepudiese comprobar la segunda hipótesis. Desafortuna-damente no se podría e~~plicarla demanda de nuestrosbachiUerespor los conse.vatoros y academias artísticas.

IEn segundo lugar, Kr~uthanuncia tanto en el título cornoen su prólogo, que e. lector encontrará allf experienciasestéticas. Adquiere je esta forma un tremendo compro-misocon el lector.

El autor habría po: ido tomar un camino menos compro-r

metedor, habría podido escribir, por ejemplo, "La téc-nica de programación de computadores", incluso,podría haber aventurado sobre un título que ya existíaen esa época en los EE. UU., la ciencia de la compu-tación y haber escrito "La programación de computado-res como una ciencia", tal como el mismo lo sugiere ensu disertación al recibir el premio Turing en 1974, (4). Laclasificación de la programación de computadores cornouna ciencia le resultaba inapropiado, puesto quepensaba que los desarrollos en este campo eranincipientes y mal podrfan clasificarse corno tal. Pensabaque tal vez se estaban dando los primeros pasos de latransformación entre un arte y una ciencia.Mirada la cuestión hoy, después de 20 anos de la publi-cación de los "Algoritmos Fundamentales", yobservan-do un poco de lejos el proceso de asentamiento de lasciencias de la computación, o sea definiéndonos cornoestudiantes en un país subdesarrollado, con una escasaformación científica y humanística, debemos admitir queel trabajo de Knuth causó la impresión de una obra dearte.

Para entender un poco esta consideración, o sea, aque-lla cualidad de que un texto universitario pudiese serconsiderado como una obra artística, bastaría solamentemencionar los innumerables y aburridos textos con loscuales fuimos abrumados en nuestros ya lejanos anosuniversitarios. Nuestra ingenierla se desarrollo con baseen los "handbooks". Unos inmensos y pesados volú-menes, repletos de tablas, fórmulas, nomogramas,esquemas y textos escritos, parece que intencio-nalmente para causar fastidio al iletrado e ingenuo lector.Nunca, y en eso podemos ser enfáticos, tuvimos a nues-tra disposición un libro que abriese el panorama de unoficio o de una profesión en la forma corno lo hizo Knuthcon su volumen 1.

Para Knuth, el arte consiste en una adecuada combi-nación de lo analítico y de lo intuitivo, del juego y de losasuntos serios,de las matemáticas profundas, delaritmética al alcance de todos, de los conceptos histó-ricos y de su evolución a lo largo de siglos. Su primervolumen lo titula "Algoritmos Fundamentales", y sonfundamentales primordialmente por razones históricas.

En este volumen y en toda su obra recoge los trabajosde los babilonios, de los griegos, de la edad media.Muestra como cuestiones que parecen ser ultramoder-nas, habían sido ya consideradas en la edad media.Plantea como las verdaderas ideas geniales, aquellasque constituyen el núcleo de las ciencias de la compu-tación, se sustentan en los trabajos de los grandesmatemáticos del pasado, pero también resalta la importan-cia de los cientfficos modernos, varios de ellos todavíavivos.

Un pasaje de la obra de Knuth podría tener un perfilcorno el siguiente: Plantea un problema computacional,

HEURlSTICA. VoL 2 No. 2 37

algo así. como analizar un algoritmo para realizar unaoperación intuitiva. fácil de realizar a mano pero condifiaJltades para el planteamiento sil'Ti>ólico.Examina losantecedentes históricos del problema. Encuentra en lostextos más curiosos. -con un parecido sorprendente aBorges-. valiosas referencias. Elabora una descripciónmatemática del problema y procura sacarle partido a estaformulación. reconociendo planteamientos de otrosproblemas que dan lugar a formulaciones matemáticassimilares. Estudia las soluciones de estos problemassimilares. Encuentra que estas soluciones fueron pro-puestas por algún gran matemático. por eje"l>lo. Euler.Estudia las circunstancias bajo las cuales se llegó a unasolución. Traslada estos resultados al problema original.Resuelve el problema. Le plantea luego al lectorvariaciones y divertimentos del problema. Finalmente leplantea al lector un problema que él no ha podidoresolver y cuya solución. se cree. todavía no ha sidoelaborada. Le promete que si la encuentra. el nombredel lector aparecera en una próxima edición.

Para Knuth. el computador solamente es un pretextopara escribir. El centro de su trabajo se desarrolla alre-deoor.de las matemáticas. de la historia y de su formida-ble capacidad para especular.

No existe una teoría de la computación en el "arte de laprogramación". Bien por Knuth. Casarse con una teoríaasí sea de "corte liberar le habría ganado el aplauso dealgunas decenas de "scholars" pero habría perdido laoportunidad de influir en miles de lectores pocopropensos a aceptar imposiciones de algún tipo.Recuérdese que la aparición del "arte...• "coincide con laaparición del hipismo. de los Beatles. Ocurre precisa-mente con la protesta estudiartil de los arios 68. con lacual los estudiantes entre otras manifestaciones. declara-ron su profunda insatisfacción ante una academiarecargadade teorías. pero anquilosada y aburrida.

Claro está que Knuth anuncia que en el sexto volumen ycomo culminación de su obra se ocupará de este asuntoteórico. Nuevamente bien por Knuth. El sexto tomopuede demorarse en aparecer. Con seguridad no seráel más leído.

Al comienzo del primer tomo. se elabora una definiciónde algoritmo. Es una definición intuitiva. como el mismoautor lo indica Y previniendose de las críticas de los"puristas". anuncia que jamás podría ser consideradacomo una definición matemática (5).

De allí en adelante. todo está permitido. El autor sedeclara en absoluta libertad para acometer el estudio y lasolución de problemas y le pide al lector que haga lopropio. No existen reglas ni esquemas para solucionarcasos y problemas. Cada uno de los problemas hay quemirario siempre desde ópticas diferentes. Pequelíasvariaciones en la formulación de un problema induce a38 HEURISTICA. VoL 2

cambios drásticos en sus métodos de análisis. A lo largode la obra se aprecia también que un problema.situación o algoritmo merece la pena ser estudiado solosi da lugar a nuevos planteamientos o a nuevos proble-mas. Pero cómo saberlo ?

En la ingeniería clásica y en muchas ciencias tradicio-nales este tipo de práctica no es posible. Se ha logradoacumular tanta información acerca de los objetos deestudio. que el lector de estos textos siempre encuentrareducido su espacio. No se le permite participar. Unbuen lector es el que adoptando los esquemas propues-tos por el autor. resuelve los problemas de finalde capítulo. El "exito" del autor es ese. Convencer al lec-tor de que la "síntesis" - la del autor -. a la cual ha llegadoresulta ser la más conveniente para la solución de unaclase de problemas. Un texto de esta clase puedeconstituirse en una obra técnica o práctica valiosa perojamás podría ser considerada una obra arte.

Fácil es demostrar la inmensa influencia que tuvo eltrabajo de Knuth en todas las organizaciones científicas.educativas y sociales que se ocupaban de la compu-tación. Indudablemente este trabajo ha sido el másimportante desde el punto de vista educativo que sehaya escrito en casi medio siglo de história de lacomputación digital. Knuth fué maestro de innume-rables autores que aparecieron en los arios 75-85.Varios lo reconocen. Algunos llegan a exclamar cuandifícil les resulta escapar a su notable influencia. Lossupuestos de Knuth, en especial los que elaboró en suprimer volumen. los problemas que allí dejó planteadoshan sido objeto de cientos de artículos aparecidos enrevistas matemáticas. de computación. de ingeniería. demúsica.de ciencia ficción. de magia. etc. etc. (6).

Si alguien pudiese tener alguna reserva en cuanto aconsiderar estos trabajos como productos típicos de lapequel"lo-burguesía americana. permitásenos informarleque ha sido traducida al ruso y que los institutos cien-tíficos de la URSS la consideran como una obra clásica.Los estudiantes cubanos y nicaraguenses tienen laventaja de que la obra circula por allí a precios bastantemódicos. Si alguién mantiene aún la duda. permitásenosinformarlesque también fué traducida al chino.

y EN COLOMBIA ?

La obra llegó a Colombia en los maletines de los profe-sores que regresaron de cumplir sendas comisiones deestudio en los EE. UU. y por supuesto que se sentíanimpresionados. algunos de ellos se encontraban moral-mente comprometidos.

Algunos. muy pocos. en la Universidad de los Andes yen la Universidad Nacional de Bogotá. en su primer curso

No. 2

de reenganche la impusieron como texto de curso. Esmuy difícil aventurar conclusiones de estos primerosintentos. No podemos decir que fracasaron. Pero tampo-co se puede indicar que tuvieron éxito. Enfrentaronserias dificultades para manteneno como texto de cursotanto que al final de la primera experiencia estos mismosprofesores lo relegaron a texto de consulta primero, yluego lo olvidaron.

Hoy 20 aros después de la aparición de los A1goritmosFundamentales, la obra es prácticamente desconocidaen la población universitaria que estudia ingeniería,matemáticas, computación. Es un resultado paradójico.El programa profesional en ingeniería más populosodespués de la ingeniería civil -ta cual tiene más de dossiglos de existencia- es la ingenieria de sistemas -ia cualtiene 20 a"os- , con 12000 estudiantes de pregrado.(7). En 1990 la ingeniería de sistemas será el programaprofesional más populoso en ingeniería. En el arlo 2000habrá más ingenieros de sistemas que abogados, si lastasas actuales se mantienen.

Nadie en sus cabales, puede pretender que una obrapor muy írroortante que haya sido se mantenga degeneración en generación de estudiantes. Aunqueaquí podríamos anotar por lo menos seis obras de cien-cias e ingeniería que conocimos como estudiantes semantienen como textos de estudio en la UniversidadNacional (8).

Qué pasó ? Se encontraron ideas y textos mejores enel interregno de los veinte arios ? Se logró al fin unateoría de la computación, que hizo irrelevante la obra deKnuth, de tal suerte que el tr1bajo con computadoresdejó de ser un arte ?

La respuesta es si. Se encontraron ideas y textos mejo-res. Cierto. Se encontró una teoría de la computación.También. El trabajo de Knuth se encontró obsoleto ydificu~oso. Bien ido.

La respuesta es si, bajo la lógica de la academia eningeniería (9).

Nada parece ser de mejor recibo en ingeniería que unbuen esquema. Sea Ud. esquemático y tendrá éxito ensu vida profesional, parodiando un poco a DaleCarnegie. Los estudiantes al fin de la carrera pidenesquemas y solo esquemas. Los profesores suministranesquemas. Algunos cursos en ingenieria son famososporque sus objetivos son perfectamente comprendidosen términos de los comportamientos finales. Tantoprofesor y estudiantes saben exactamente a donde hande llegar. Nadase deja al azar.

Bajo esta lógica se explica como Knuth se convierte enobsoleto. Los algoritmos en el "arte de la programación",no son estructurados. Utiliza la instruccción "GO TO".

Allí viene el esquema abuelo: "en la programaciónestructurada no se debe utilizar la instrucción -goto-".

Después aparece un esquema más fino: Las metodo-logías estructuradas. Por este camino se pretende redu-cir un trabajo de tipo artístico en el cual el participantepodría hasta divertirse, en algo serio de tipo tayloriano.Se trata de no perder tiempo. La elaboración de siste-mas de información pasa ahora a convertirse en untrabajo con una alta dosis de rutina. Como resultado deeste enfoque aplicado intensamente en varias universi-dades todos los sistemas de información elaborados des-pués de 1985 se parecen.Definitivamente la programación de computadores no esun arte en Colombia. Para algunos es una calamidad queesto ocurra.

ANEXO - 1

ALGUNOS PERSONAJES CELEBRESDEL "ARTE DE LA PROGRAMACION"

ADA AUGUSTA, condesa de Lovelace, mecenas deltrabajo científico de Babbage. En 1844 la condesaexpresaba que las máquinas de cómputo no solo servi-rían para realizar operaciones aritméticas sino que po-drían manejar símbolos de diferente naturaleza. Podríaser que se obtuviesen expresiones algebráicas comoresultados.

Dr. 1. J. MATRIX, matemático de origen írtanoés.Creía tener un don especial para el manejo de expre-siones aritméticas y algebráicas. Creía que el siguientedescubrimientose convertiría en una gran revelación:

9.1+2=11,9.12+3=111,9.123 + 4 = 1111, .

Esperaba que este descubrimiento y otros similaresfueran publicados en el "American Mathematical Mon-thly". Algún colega nos contó hace dias que el buen Dr.Matrix, tenía descendencia en Colombia: Se lo creemos.Todos tenemos algo del Dr. Matrix.

FIBONACCI. (1170 - 1250). El más grande matemá-tico de su época. Estudiando el problema de lareproducción de conejos, encontro la sucesión:

HEURlSTICA. 39VoL 2 No. 2

gación. Lo que hacía realmente era resolver un proble-ma de modesta dificultad. Así es la programación diná-mica. una de las materias más complejas en el área de lasmatemáticas aplicadas. Es una bella disciplina pero difícilcomo pocas. Deja por lo general un estrecho rendimien-to económico. Como cabe esperarse la programacióndinámica tiene muy poco éxito en Colombia.

0.1.1.2.3.5.8.13 •.....• en la cual cada número es la sumade los dos precedentes. La serie de Fibonacci estáconectada al algoritmo de Euclides para encontrar elmáximo común divisor de dos números. por aIUa toda lateorla de números y por esa via a los problemas moder-nosde col1l)Utacióny de optimización.

RAMANWAN. (1887 - 1920). Matemático hindú.Uno de los fuertes de KrlJth es el trabajo con expre-siones asintóticas. o sea la suma de una serie en térmi-nos de funciones conocidas. Para estudiar el comporta-miento de un algoritmo de clasificación es necesario eva-lúarexpresiones tales como:

n-1 n-1. n-2Q(n) - 1 + - + --- +

n n. n

n-1.n-2.n-3+ .

n.n.n

En 1912 Ramanujan propuso sin demostración que:

n le"Q(n) - -' ---

2 n"4 8

- --- +135 n 2835 n23

Esta. como todas las fórmJlas q.,Jepropuso resultaronciertas. El cuaderno de notas de Ramanujan en el cualconsigna cientos de fórmulas. integrales. series infinitasy fracciones continuas ha mantenido ocupados a variosmatemáticos durante 60 años, quienes sucesivamentehan pretendido "editar" el cuaderno de notas. (10). Dosmatemáticos británicos muestran cómo una de estasfórmulas les permitió elaborar un algoritmo para encontrarel valor de pi, con una precisión de cientos de millonesdedígitos.

SIMON NEWCOMB. Astrónomo americano del siglopasado y aficionado al juego de cartas. Se proponía dife-rentes formas de solitarios. pero tenía cuidado de anali-zar el comportamiento del juego en términos de probabi-lidades. Planteó alternativas. algunas las resolvió. otrasquedaron sin respuesta. Muchos años más tarde algu-nas de sus conjeturas fueron recogidas cuando seestudiaba el desempel'lo de los algoritmos de clasifi-cación.

RICHARD BEllMAN. Autor del libro "ProgramaciónDinámica". En este texto aparecen a final de capítulo ungrupo de problemas bajo el encabezamiento de "Ejerci-cios y Problemas de Investigación". El autor. -Bellman-.coloca en medio de ejercicios simples. problemas queno han sido resueltos. pero no le advierte al lector. Al-gún estudiante pasó meses resolviendo un problemacreyendo por supuesto que se trataba de una investi-

40 HEURISTICA. VoL 2

KARL PEARSON. Autor de la primera versión delestadígrafo chi-cuadrado. la popular prueba estadística.Permaneció durante dos semanas en el casino de MonteCarto estudiando los resultados de la famosa ruleta quehabla causado tantas ruinas y suicidios. Estaba intere-sado en la "honestidad" de la ruleta. Nada mejor paraprobar su famosa prueba estadtstíca, que observar unalarga corrida y compararta con los valores esperados encondiciones de completa aleatoriedad. Eso fué exac-tamente lo que hizo. solo para encontrar luego de largoscálculos que la ruleta bajo estudio se comportaba demanera "no canónica". por decir lo menos. Este resul-tado. inesperado para Pearson. no constituía una fatali-dad para la multitud de jugadores que se agolpaban trasla mesa de juego procurando desentral'lar los misterio-sos mecanismos de la máquina. según se relata en formamagistral en la novela "El jugador" de Dostowieski.

ANEXO - 2

ALGUNOS CONCEPTOS QUERECORREN LOS TRES VOLUMENES

EL ALGORITMO DE EUCLlDES. El algoritmo deEuclides (AE). es un método para calcular el máximocorrün divisor de dos números enteros. Es interesanteobservar como se puede obtener provecho pedagógicoa un método inventado por los griegos hace más de dosmil años. Este antiguo procedimiento había sido plantea-do en términos geométricos. Hoy se trabaja con laversión numérica. Knuth utiliza el AE para ilustrar sudefinición intuitiva de algoritmo. Por supuesto utiliza lasoperaciones aritméticas en su ilustración. Más adelanteal tratar de ilustrar otra definición. esta un poco másformal. -ta de Markov -. reproduce de manera inespera-da la demostración de Euclides. pero esta vez es laantigua. la original. la geométrica. la que aparece en ellibro VII. proposiciones I y 11. De esta manera el viejo yolvidado Euclidesse convierte en informático.

En adelante el AE se incorpora a los conceptos rela-cionados oon los números primos. los números deFibonacci y en general a la teoría de números. PeroNo. 2

0,1,1,2,3,5,8,13, ..... , en la cual cada número es la sumade los dos precedentes. La serie de Fibonacci estáconectada al algoritmo de Euclides para encontrar elmáximo común divisor de dos números, por aur a toda lateoría de números y por esa via a los problemas moder-nosde cof11)Utacióny de optimización.

RAMANWAN. (1887 - 1920). Matemático hindú.Uno de los fuertes de Kroth es el trabajo con expre-siones asintóticas, o sea la suma de una serie en térmi-nos de funciones conocidas. Para estudiar el comporta-miento de un algoritmo de clasificación es necesario eva-lúar expresiones tales como:

n-1 n-1. n-2O(n) - 1 + - + --- +

n n.n

n-1.n-2.n-3'-----+ .

n.n.n

En 1912 Rarnanujanpropuso sin demostración que:

n le"O(n) - _0 __

2 n"4 8

+ ------ -135 n 2835 n23

Esta, como todas las fórrnJlas qJe propuso resultaronciertas. El cuaderno de notas de Ramanujan en el cualconsigna cientos de fórmulas, integrales, series infinitasy fracciones continuas ha mantenido ocupados a variosmatemáticos durante 60 anos, quienes sucesivamentehan pretendido ·editar" el cuaderno de notas, (10). Dosmatemáticos británicos muestran cómo una de estasfórmulas les permitió elaborar un algoritmo para encontrarel valor de pi, con una precisión de cientos de millonesdedígitos.

SIMON NEWCOMB. Astrónomo americano del siglopasado y aficionado al juego de cartas. Se proponía dife-rentes formas de solitarios, pero tenía cuidado de anali-zar el comportamiento del juego en términos de probabi-lidades. Planteó alternativas, algunas las resolvió, otrasquedaron sin respuesta. Muchos anos más tarde algu-nas de sus conjeturas fueron recogidas cuando seestudiaba el desempeño de los algoritmos de clasifi-cación.

RICHARD BElLMAN. Autor del libro ·ProgramaciónDinámica·. En este texto aparecen a final de capítulo ungrupo de problemas bajo el encabezamiento de ·Ejerci-cios y Problemas de Investigación·. El autor, -Bellman-,coloca en medio de ejercicios simples, problemas queno han sido resueltos, pero no le advierte al lector. Al-gún estudiante pasó meses resolviendo un problemacreyendo por supuesto que se trataba de una investi-

40 HEURISTICA. VoL 2

gación. Lo que hacía realmente era resolver un proble-ma de modesta dificultad. Así es la programación diná-mica, una de las materias más complejas en el área de lasmatemáticas aplicadas. Es una bella disciplina pero difícilcomo pocas. Deja por lo general un estrecho rendimien-to económico. Como cabe esperarse la programacióndinámica tiene muy poco éx~oen Colombia.

KARL PEARSON. Autor de la primera versión delestadígrafo ohí-cuadrado, la popular prueba estadística.Permaneció durante dos semanas en el casino de MonteCarto estudiando los resultados de la famosa ruleta quenabla causado tantas ruinas y suicidios. Estaba intere-sado en la ·honestidad" de la ruleta. Nada mejor paraprobar su famosa prueba estadística, que observar unalarga corrida y compararta con los valores esperados encondiciones de completa aleatoriedad. Eso fué exac-tamente lo que hizo, solo para encontrar luego de largoscálculos que la ruleta bajo estudio se comportaba demanera "no canónica", por decir lo menos. Este resul-tado, inesperado para Pearson, no constituía una fatali-dad para la multitud de jugadores que se agolpaban trasla mesa de juego procurando desentrañar los misterio-sos mecanismos de la máquina, según se relata en formamagistral en la novela ·EI jugador" de Dostowieski.

ANEXO - 2

ALGUNOS CONCEPTOS QUERECORREN LOS TRES VOLUMENES

EL ALGORITMO DE EUCLlDES. El algoritmo deEuclides (AE), es un método para calcular el máximocornm divisor de dos números enteros. Es interesanteobservar como se puede obtener provecho pedagógicoa un método inventado por los griegos hace más de dosmil anos. Este antiguo procedimiento había sido plantea-do en términos geométricos. Hoy se trabaja con laversión numérica. Knuth utiliza el AE para ilustrar sudefinición intuitiva de algoritmo. Por supuesto utiliza lasoperaciones aritméticas en su ilustración. Más adelanteal tratar de ilustrar otra definición, esta un poco másformal, - la de Markov -, reproduce de manera inespera-da la demostración de Euclides, pero esta vez es laantigua, la original, la geométrica, la que aparece en ellibro VII, proposiciones I y 11. De esta manera el viejo yolvidado Euclidesse convierte en informático.

En adelante el AE se incorpora a los conceptos rela-cionados oon los números primos, los números deFibonacci y en general a la teoría de números. PeroNo. 2

como ocurre con todas las ideas, alguien se preguntó sise podría encontrar un mejor algoritmo para encontrar elMCD de dos números. Se obtuvo una respuesta típicade la época en 1962. Si, para los computadores. Resul-ta que si se representa en binario un número, al dividirpor dos no es necesario hacer realmente la división.Simplemente se pierde el último dígito. Este simpledetalle mejora, no radicalmente, pero mejora en algo eldeserJl)et'lo en el cálculo del MCD. Nadie ha dicho laúltima palabra sobre el algoritmo de Euclides. Si no locree, encuentre Ud. entonces el valor esperado delnúmero de iteraciones para calcular el mcd(a,b), paravaloresde a y b enteros, menores que n.

LA FUNCION GENERADORA. La función genera-dora, FG, o funciones gereradoras, mejor, ya que setrata de una clase de funciones, constituyen un mecanis-mo para la solución de problemas de tipo probabilístico ocombinatorio. Una función generadora, por ejemplo,resume de la mejor manera posible una asignación deprobabilidades de una variable aleatoria. Todo lo quehay que saber de una variable aleatoria se encuentra ensu1uncióngeneradora.

La práctica normal, lo que se hace en los cursos de proba-bilidad y lo que muestran rrultitud de textos americanossobre el tema es el método de encontrar la FG a partir dela distribución de probabilidades. En este caso sirvecomo propósitos de documentación y para demostrar elteorema del límitecentral. Pero no másde allí.

El trabajo normal que se realiza en ingeniería y enciencias para el estudio de un fenómeno aleatorio,consiste a grades rasgos en, a partir de un modelo y ladefinición de una o más variables aleatorias emprender labúsqueda de su función de densidas o fu~ión deprobabilidad con base en supuestos teóricos y/oexperimentales. Un trabajo valioso sin duda. Peroocurre que en el análisis de algoritmos, así sean estosmuy simples, se encuentran situaciones de ciertacomplejidad que hacen rruy difícil encontrar la funciónde probabilidadpor métodos directos.

A lo largo del •Arte de la programación de computado-res", Kuth propone otro camino. Le indica al lector queprimero intente encontrar la función generadora. Parecefácil, pero es un proceso complejo. Lo que sugiere esun cambio de lenguaje. Se trata de observar los proble-mas desde un plano diferente, inusual para el lector co-rriente. Pero si se hace, se consigue una recompensa.La mejor, por tal camino se podrían encontrar los hiloshistóricos.

Los grandes matemáticos del pasado Euler, Gauss,

¡

Poincaré y del presente como Von Newmann, Ramanu-jan y muchos otros trabajaban de la manera más familiaren este plano. Esta es una forma, no la única, de vincularla historia de la matemática a las ciencias de la computa-ción.

Una vez que se ha encontrado la función generadora deuna variable aleatoria, se puede recorrer el camino inver-so, o sea, explicar en términos probabilísticos y/o combi-natorios los resultados logrados con la función genera-dora. La teoría de la probabilidad y el análisiscombinatorio son sujetos entonces a fuertes jalonazos.Pero es desde el punto de vista educátivo que estassugerencias surtan el máximo efecto Algunos estu-diantes sienten indescriptibles sensaciones relaciona-das con descargas de adrenalina cuando entiendensituacionescomo éstas. Esel efecto del arte.Es allí donde Knuth es un maestro.

LOS NUMEROS ALEATORIOS. Los programa-dores de computadores a partir de 1950 le han puestotrabajo a un buen número de matemáticos. No se creaque todas las preguntas han sido contestadas. Algunosprogramadores en su impaciencia por obtener respues-tas rápidas se convirtieron en matemáticos. Algunosmatemáticos, al no poder responder satisfactoriamenteestas preguntas se convirtieron en programadores. Encompuatación es más fácil preguntar que responder.

Nada mejor para ilustrar estas simples ideas que la histo-ria reciente de los números aleatorios. Vamos a contarlaa grandes rasgos.

Primero el éxito de las teorías que involucran el azar en lafísica. Luego en labiología. Luego en toda la ciencia.

Segundo, la dificultad de resolver por medios analíticoslos modelos probabilisticosbasados en estasteorías.

Tercero la aparicióndel computador digita!.

En estos momentos empieza la interacción programador-matemático.

El gran programador y matemático Von Newmann reco-giendo las experiencias, tal vez de los geometrasfranceses, estilo Buffon, propuso que dada la velocidadde cálculo de los computadores digitales se podríanresolver algunos problemas al desmenuzarlos en suspropiedades microscópicas, y al repetir estas experien-cias, un número suficientemente grande de vecespodría ser razonable elaborar algunas conclusionessobre sus propiedades generales. Es el origen de losmétodosde MonteCarlo.

Se requería entonces encontrar algoritmos para generar

HEURlSTICA. VoL 2 No. 2 41

números aleatorios en el computador digital. Cómoencontrar un algoritmo que fuera eficiente y que sumi-nistrára números uniformes e independientes entre ceroy uno. La respuesta la conocía ya Von Newmann. No sepuede. Pero que más da, como complementa Knuth, loirJl)Ortante no es que sean aleatorios sino que loparezcan. Estas ideas motivan a un numeroso grupo dematemáticos a elaborar algoritmos, a demostrar teorica-mente sus propiedades, y a demostrar la independen-cia estadística para los métodos de generación. En elproceso de esta elaboración los matemáticos encuen-tran que es posible "pasear" por todos los númerosenteros menores que un número posiblemente muygrande, visitándolos una y una sola vez, y haciendo queestacaminata parezca a1eatoria.

De esta manera se llega a una receta que a juicio deexpertos constituye uno de los aportes de estos nuevos·científicos de la computación·. Generar tal caminata essimple. Basta usar la siguiente fórmula, que había sidoya planteadaen los trabajos de Gauss y de Euler:

Xn + 1 = (A. Xn + C) mod M

La sucesiónpedida es Xo ' X1 ,X2 ,X3 , ..... , XM-1

Donde: M es el módulo, puede ser tan grande como lapalabrade un computador, A y C son constantes.

Un teorema que se puede enunciar en tres líneas gastóvarios anos de trabajo. La fórmula genera todos losposiblesnúmeros si y solo si :

Q C YM son primos relativos.ii) A - 1 es múltiplo de p, para cada primo p que divide a M¡ji)A - 1 es múltiplode 4, si m es múltiplode 4.

Estas formas de generación pasaban satisfactoriamentetodas las pruebas estadísticas que se habían construidopara asegurar independencia y aleatoriedad. Pero losestadísticos se encontraban insatisfechos. Cómo así, sepreguntaban, una fórmula que a todas luces es detenni-nística, con un Xo que es un valor dado, se puedeconcluir que es una serie aleatoria. Algo estaba incom-pleto es su teoría. Había que tumbar esos métodos

desde el punto de vista estadístico. Empezó un trabajoque no ha concluído. En el camino se han encontradolas llamadas pruebas espectrales. Pero aún estas sonbondadosas en cuanto a los métodos de generacióncongruencial. El proceso no ha concluido.

BIBLlOGRAFIA y NOTAS

1. D. Knuth. The art of computer programming. Vol.1. Fundamental Algorithms. Addison Wesley.1968.

2. D. Knuth. idem. Vol. 2. Seminumerical Algorithms.A.W., 1973.

3. D. Knuth, idem. Vol. 3. Sorting and serching.A.W., 1973. Traducida al español por Reverté.

4. D. Knuth, Computer programming as an art, Comm.of ACM, Diciembrede 1974.

5. Knuth suministra en el primer capítulo una defini-ción algo más fonnal sobre algoritmo. Es la defini-ción de Mar1<ov. Al final de cuentas todas lasdefiniciones de algoritmo conducen a la definiciónde la máquinade Turing.

6. Las referencias a estos artículos se pueden obser-var en Communications of ACM, Journal of math.computing, IEEE transactios on math. Software.Además Knuth analiza diferentes juegos de cartas,solitarios y aspectos de magia. Aunque en la obratiene limitadas referencias a aspectos musicales, enartículos diversos estudia formas de codificaciónmusical.

7. BoletínestadísticodeIICFES.

8. Ejemplos el cálculo de Thomas, la física de Sears yZemanski, la termodinámica de Smith, el Handbookde Perry, la cinética química de Smith, y otros.

9. Se hace referenciaexclusiva a UnivaUe.

10. Borwein and Borwein; Ramanujan and 1t;ScientificAmerican, Feb. 1988.

HEURISTICA. Vol. 2 No. 242