Entendemos por algoritmo un procedimiento seguro y mecánico que logra un cierto resultado, especialmente en matemáticas y en informática; el concepto es también aplicable en otros campos, como la economía, la ingeniería y, según veremos, incluso la biología. El término 'algoritmo' viene, a través de varias traducciones y corrupciones, del nombre del matemático persa Mûusâ al-Khowârizm, cuyo libro sobre procedimientos aritméticos, escrito por allá del año 835, fue traducido al latín en el siglo XII. El uso de la palabra en el sentido explicado ha tenido vigencia por varios siglos; asciende a mayor notoriedad, sin embargo, en nuestro tiempo, gracias a la obra metamatemática(1) de pensadores como Hilbert, Gödel, Church y Turing, que revolucionaron las ciencias matemáticas durante el primer tercio del siglo XX. La transferencia del concepto de la matemática a la informática ocurrió gracias a la obra del último de estos distinguidos matemáticos, quien propuso a sus colegas definir 'algoritmo' como lo que puede hacer una máquina descrita por él en términos muy abstractos –que por ello mismo puede representar muy distintas configuraciones– y que ahora lleva su nombre: máquina Turing(a). De acuerdo con esta propuesta suya, inmediatamente aceptada por los demás matemáticos, quedó establecido que algo es un algoritmo si, y solo si, se trata de un proceso con las siguientes características:
1. Sus pasos constituyen una secuencia finita, están claramente especificados y son independientes unos de los otros (digitalidad).
2. Un mismo agente (no necesariamente humano) determina qué es lo que corresponde hacer en cada momento (secuencialidad y control).
3. El agente es capaz de recabar la descripción operacional de la secuencia así como de almacenar resultados en el camino (interpretación y memoria).
4. La ejecución de una secuencia específica produce siempre los mismos resultados en cada paso para cada conjunto de datos iniciales (determinismo).
5. Finalmente, la secuencia concluye con un resultado final (terminación).
La penúltima condición prohíbe al agente actuar
en una forma probabilística o de manera arbitraria, por ejemplo tirando una
moneda al aire para que eso decida si ejecuta o no la próxima instrucción. El
último requisito es obligatorio solamente en los casos en que se espera obtener
un resultado concreto, como el valor de una función (por ejemplo dividir 7 834
entre 555, con un determinado número de decimales) o la preparación de un
cierto número de raciones de un plato de comida(2) o de una droga sintética. Sin embargo, se admite la
existencia de algoritmos repetitivos que nunca terminen, cuando lo que se trata
de provocar con el proceso, de manera constante o intermitente, no es un
resultado o valor sino algún efecto colateral. Por ejemplo, el algoritmo que
hace posible un marcapasos no debe terminar pues su función es regular de
manera permanente el latido de un corazón deficiente. El de un sistema
operativo como Windows o Linux no debe hacerlo tampoco, pues su justificación
es sustentar el funcionamiento indefinido de otros programas dentro de un
ambiente electrónico. A estos algoritmos que en principio no deben terminar se
los conoce como algoritmos irregulares o parciales.
Antes del advenimiento de las computadoras digitales, los algoritmos eran del
dominio preferente de los matemáticos, ya que para calcular una función
cualquiera se necesitaba un algoritmo. Pero una vez que quedó equiparado el
concepto de algoritmo con la operación de una máquina Turing, no transcurrirían
dos decenios antes de que los ingenieros eléctricos construyeran máquinas
concretas que dieran cuerpo a esa abstracción. Son las antecesoras de las que
hoy pueblan nuestros escritorios en forma de computadoras personales como la
que me sirve para componer este ensayo. Actualmente podemos equiparar
"algoritmo" con un amplio género de objetos que cubre programas tan
diversos como los de nuestras hojas de cálculo, procesadores de texto, bases de
datos, calendarios electrónicos y toda suerte de juegos digitales; y no olvidar
los sistemas operativos, que permiten a las computadoras –sin que paremos
mientes en su presencia– ejecutar cualquiera de los programas mencionados.
Es importante señalar que el concepto de algoritmo no incluye en sí la
especificación de algún material preciso del que deban estar construidos. En
puridad, no son construidos de ningún material particular, salvo el de que están
hechos los sueños: nuestras ideas. Pero para tener efecto en el mundo deben
"encarnarse" de alguna manera. Es ya proverbial la diferencia entre hardware
(alambrado) y software (programa). Esta diferencia es la que contrasta
una computadora –un algoritmo que ejecuta funciones muy generales– con el
programa específico que corre en ella y la transforma en una máquina Turing
mucho más concreta, por ejemplo, un procesador de texto o una hoja de cálculo.
Los lectores más viejos recordarán que en los años setenta se vendían unos
"procesadores de palabras" que no eran software sino hardware,
especie de máquinas de escribir muy caras que nos permitían hacer maravillas en
la preparación de documentos. Se trataba de hecho de algoritmos no escritos en
información electromagnética que uno pudiera "bajar" a una
computadora, sino grabados directamente en alambre, es decir en circuitos
eléctricos. Se trataba de algoritmos duros (hard) no suaves (soft).
Esta diferencia tan obvia no les quita el carácter de algoritmo a ninguno de
los dos términos de la comparación: tanto el hardware como el software
lo son. Esto es importante porque prepara nuestra mente para entender cómo
puede ser posible que un algoritmo pueda "encarnarse" de muchas
maneras diferentes. Y la manera que más nos interesa en esta obra es
precisamente la encarnación en carne, es decir en materia viva, puesto que
hemos llegado a concluir, con ayuda del filósofo estadounidense Daniel Dennett,
que la evolución por selección natural es un algoritmo, el más antiguo y
trascendente de todos. (DENNETT 95)
Como una persona a quien le ha tocado vivir una gran porción del siglo XX, puedo contemplar un panorama de algoritmos muy amplio entreverado a mi propia historia: primero, los que encontré al llegar a la escuela, al colegio y a la universidad; después, los que nos cayeron encima, para unos como maná del cielo pues simplificaba su trabajo; para otros, con la angustia de quedarse rezagados en el camino por las dificultades propias del aprendizaje de algo nuevo a la mitad de la vida. Recuerdo de los años treinta mi admiración de niño ante la efectividad de las reglas para sumar, restar, multiplicar y dividir que me enseñaran mi madre y mi maestra de clase. De los años cuarenta, ya en el colegio, alegrías sin nombre al entrar en contacto por primera vez con los algoritmos básicos del álgebra y de la geometría. De los años cincuenta, cursando la carrera de leyes, mi entusiasmo al trabar amistad con unas reglas de procedimiento que aseguraban resultados en los tribunales solo si se cumplían cuidadosamente sus pasos en sus mínimos –a veces ridículos– detalles(3). Descubrí también en esa época la magia de los algoritmos económicos, especialmente el de la oferta y la demanda que –bajo condiciones adecuadas– asegura automáticamente la provisión social de bienes y servicios más eficiente posible. Ya en mis estudios doctorales, me enteré de que la lógica y las matemáticas eran la misma cosa, como lo habían demostrado Peano y Bertrand Russell, entre otros creadores de la lógica matemática.
Pero todos esos eran algoritmos viejos, algunos entre ellos ancianos de siglos. No fue sino en los años sesenta cuando hicieron su aparición en público los algoritmos nuevos, hechos posibles por la creación de las computadoras. Algoritmos que tenían ahora la sorprendente particularidad no solo de explicarnos la lógica de una acción, sino de ejecutarla ellos mismos. Estos algoritmos, los algoritmos informáticos, aunque calcados de los algoritmos matemáticos, surgían con una autonomía que les daría la capacidad de cambiar, lenta pero seguramente, la estructura de la sociedad y –por efecto de nuestra reacción ante ellos– también nuestra propia concepción del ser humano y del mundo. Con esto se abría una intrigante dicotomía cuya profundidad y trascendencia todavía estamos ponderando. Por una parte, la increíble proeza de poner a las máquinas a realizar procesos racionales, antes reservados solo a los humanos, subrayaba más que nunca la extraordinaria capacidad de concebir y manejar símbolos, exclusividad de nuestra especie dentro del reino animal, como bien lo había categorizado Aristóteles. Pero por otro lado, el gran logro que significaba una máquina capaz de realizar actividades simbólicas, nos apremiaba a una introspección inédita sobre la naturaleza y alcances de nuestra "diferencia específica". En nuestra larga lucha por superar los atavismos ancestrales de nuestra especie, que nos asimilan a los animales más salvajes, percibíamos ahora que la racionalidad –de que tanto hacíamos gala aunque pocas veces ejercíamos suficientemente– nos asimilaba en algún sentido a las nuevas máquinas. Tanto más, cuanto que el paradigma mecanicista se estaba entronizando en las ciencias biológicas y apuntaba ya en la clara dirección de que debíamos considerar a nuestro cuerpo como la más fina y delicada de todas las máquinas, pero máquina al fin, incluyendo nuestro cerebro y todos sus procesos.
Pero al mismo tiempo que este impacto de autorredefinición, el ser humano estaba recibiendo de la revolución informática una plétora de nuevos bienes que no podían siquiera inventariarse porque seguían apareciendo continuamente, con velocidad que se intensificaba con el paso del tiempo. Los algoritmos se habían soltado por el mundo y andaban transformando todas y cada una de las actividades humanas, sin ninguna excepción, desde las más materiales hasta las más espirituales. En los años sesenta y setenta los vimos comenzar a transformar las burocracias y nos hicieron temer que llegaran a ser armas poderosas para gobiernos totalitarios monstruosos que acabaran con nuestra libertad e intimidad. Pero al comienzo de la década siguiente surgiría de un garaje californiano una revolución dentro de la revolución: la computadora personal que se adueñaría enseguida del mundo convirtiéndose en un instrumento de democratización que solo superaría más tarde la Internet(b) –otra revolución dentro de la revolución– en los años noventa. Mencionemos unas cuantas de las impresionantes consecuencias de esta serie de revoluciones que caracterizan la era informática que todavía estamos viviendo:
· Muy temprano en la historia, el procesador de texto transformó para siempre la práctica de la escritura, introduciendo todas las pequeñas maravillosas ventajas que le hacen superior al papel y la pluma como instrumento de producción de documentos.
· Poco después, la hoja electrónica alivió los dolores de parto intelectual de millones de contadores (profesionales o domésticos). Quien no vivió antes de esta notable invención no tiene idea de la increíble tortura que significaba cambiar un solo dato sobre el papel con borrador y lápiz, por la enormidad de sus repercusiones en el resto de la hoja de cálculo.
· Vinieron enseguida las bases de datos relacionales, prodigioso enjambre de interconexiones lógicas automáticas que aliviaron para siempre a los archivistas y permitieron a administradores y su público hacer búsquedas instantáneas en un mar de informaciones.
· Los juegos electrónicos y la "realidad virtual" hicieron su aparición, abriendo de golpe todo un mundo de posibilidades a la expresión y comunicación humanas y creando los cimientos para nuevas formas interactivas de educación.
· Se transformaron integralmente las operaciones bancarias, haciéndolas más eficientes y baratas y mucho más cómodas para el público.
· Se introdujo en el comercio y la industria el "justo a tiempo" que redujo al mínimo los inventarios mundiales, abaratando los precios para incontables artículos para millones de personas.
· La robotización pudo mantener la producción mundial de vehículos y electrodomésticos a la altura de la demanda creciente, mucho más allá de lo que hubiera permitido el aumento de la población sin ese avance tecnológico.
·
Se creó la manufactura flexible que permitió
redirigir la producción de una fábrica hacia especificaciones a la medida, por
medio de un simple cambio de parámetros en un programa de cómputo. Esta
transformación permitió a la industria adaptarse a las preferencias de grupos
pequeños de consumidores en campos tan disímiles como la industria de máquinas
herramientas o la publicación de libros, superando los inconvenientes de la
producción en masa heredada de
· Se generaron múltiples nuevas oportunidades de trabajo en casa, en campos tan variados como consultorías, actividades bursátiles, traducciones, o simple desconcentración de actividades propias de una oficina o negocio. Gracias a las redes electrónicas, esas desconcentraciones pudieron extenderse sobre las fronteras y los océanos al globalizarse la economía(c).
· La introducción de la imagenología digital volvió al cuerpo humano prácticamente transparente para el diagnóstico médico, con los consiguientes beneficios para la salud de la población mundial.
· Más recientemente, la secuenciación del genoma humano, con la correspondiente explosión del conocimiento de las ciencias biológicas, está a punto de producir técnicas médicas a la medida de cada fenotipo humano destinadas a hacer obsoletas la farmacología y la medicina tradicionales.
·
Un instrumento de comunicación digital creado en
los años setenta por los investigadores científicos para intercambiar
resultados a velocidad casi instantánea,
Detengámonos un momento en este último punto para
subrayar la influencia transformadora que los protocolos de Internet están
teniendo sobre el presente y futuro de la educación. De lo que se trata es ni
más ni menos que de la superación de los métodos educativos heredados de
Además de su interés para los matemáticos y los informáticos, y el público en general por sus aplicaciones prácticas, el algoritmo puede dar materia para reflexión filosófica importante. Aparte de los trabajos de metamatemática, que tienen gran interés filosófico en cuanto análisis de los límites del conocimiento –por ejemplo, el teorema de Gödel demuestra que las matemáticas son o incompletas o incongruentes, lo que nos infunde un sentido de humildad y de búsqueda permanente–, han surgido en nuestros días varios tópicos muy generales relacionados con los algoritmos de considerable contenido filosófico. Vamos a esbozar algunos de ellos.
El primero de esos tópicos entra a escena con un
artículo del propio Alan Turing, sobre la posibilidad de que las máquinas
puedan pensar, escrito en 1950, en la aurora misma de la era informática. (TURING 50) A pesar de que Turing no era
un profesional de la filosofía, era filósofo en el sentido profundo
característico de la época del Renacimiento y
La inteligencia artificial, como la definiría después John McCarthy, consiste
en el intento de capacitar a las máquinas para realizar actos que, si los
hiciera un ser humano, diríamos que requieren inteligencia. Esa capacitación se
trata de impartir dotando a la máquina en cuestión de algoritmos informáticos
que sean capaces de solucionar problemas como los que enfrentamos
rutinariamente; o en situaciones muy específicas, como al jugar ajedrez u otros
juegos de salón, probar teoremas, resolver acertijos, entender o producir
lenguaje, reconocer objetos de manera visual, dar diagnóstico médico o armar un
itinerario de viaje, evitar obstáculos al caminar, etcétera. Los logros de esta
empresa han sido considerables, dada su dificultad. Es interesante que el éxito
haya sido mayor en proporción a que la habilidad de que se trate sea propia de
expertos (como jugar ajedrez o hacer diagnóstico médico), y mucho menor
conforme la habilidad corresponda a lo que llamamos "sentido común"
(como conversar en una fiesta sobre temas intrascendentes, discutir de política
o plantear problemas filosóficos).
La inteligencia artificial, sin embargo, tiene sus escépticos. Uno de ellos, el
físico de nota Roger Penrose, subraya la oposición entre el carácter mecánico o
ciego de la ejecución de algoritmos y el carácter creativo, indeterminado y
sujeto a errores, propio de la inteligencia humana. (PENROSE 89) Tal contraste lo lleva a
negar que la inteligencia artificial sea realmente inteligencia y que la
inteligencia humana pueda estar basada en algoritmos. Pero no hace ningún intento de aclarar en qué consista el poder creativo de la inteligencia humana, mientras cierra los ojos a los logros creativos de la inteligencia artificial. Por nuestra parte,
creemos que el dilema apuntado puede resolverse de manera distinta a como lo
propone Penrose. Desde luego que los programas de inteligencia artificial son
ciegos y mecánicos en un sentido, puesto que los ejecuta una máquina; pero
igualmente lo son el disparo de nuestras neuronas y su contacto a través de
sinapsis, y sin embargo eso no nos hace menos inteligentes. La paradoja de la
inteligencia, artificial o humana, se resuelve dándonos cuenta de que la
estrategia de sus programas combina dos subalgoritmos, cada uno de los cuales
realiza su función de manera mecánica. El primero de ellos se encarga de generar,
de manera más o menos arbitraria, una serie de hipótesis que podrían ser
solución al problema que enfrenta; por su parte, el otro se ocupa enseguida de escoger,
de conformidad con una función heurística, aquella que resulte más promisoria
para los objetivos del programa. Esta función es falible aunque su aplicación
sea totalmente determinista(5).
Lo interesante del caso es que por medio de la combinación de estos dos procesos mecánicos no
creativos se puede producir –faliblemente por supuesto– un resultado creativo e inteligente.
Cualquier deficiencia que por el momento tenga la creatividad de nuestras máquinas
inteligentes comparadas con nuestra inteligencia se debe por supuesto a que todavía no hemos
terminado el arduo trabajo de diseñar algoritmos artificiales
tan buenos como los que han forjado millones de años de selección natural.
La estrategia de generar y examinar está presente también –con el nombre de "algoritmo genético"– en un segundo importante tópico filosófico. Se trata de otra nueva disciplina, surgida en la década de los ochenta y llegada a fruición en la de los noventa, denominada "vida artificial". Esta disciplina explota el hecho ya subrayado de que un algoritmo es indiferente a la materia en que se realice. Sobreentendiendo ya que la selección natural es un algoritmo, esta disciplina toma en serio la afirmación de que no existe ninguna razón por la que no pueda haber evolución de replicadores no biológicos sino de cualquier otra índole, por ejemplo secuencias digitales encerrados en la memoria de una computadora que se transformen a sí mismos a lo largo de muchas generaciones dentro de tan peculiar paisaje ecológico. En otras publicaciones hemos descrito este interesante experimento y subrayado su valor como prueba empírica directa de la validez de la teoría de la evolución por selección natural. (GUTIÉRREZ 93) (GUTIÉRREZ 99b)
Una vez que uno adquiere una nueva noción, si
ella vale la pena, un trabajo inevitable de elaboración interior nos lleva a
apropiárnosla por su interacción con nuestras ideas anteriores. Esta especie de
dialéctica del conocimiento nos obliga en forma reiterativa a replantear todo
lo que antes sabíamos a la luz de cada nuevo descubrimiento o concepto.
Pareciera una ley de la inteligencia sin escapatoria cuyo fundamento residiera
en la íntima conectividad orgánica de nuestras neuronas. Entendemos bajo esa
luz el agudo atisbo del filósofo norteamericano Daniel Dennett, (DENNETT 95) que reinterpreta –muy
apropiadamente– la teoría de la evolución por selección natural propuesta por
Darwin como un algoritmo en el mismo sentido de la informática contemporánea.
De acuerdo con esta teoría, debidamente complementada por los hallazgos
biológicos del siglo XX, la reproducción recursiva de una población produce en
cada generación individuos suficientemente variados y los constreñimientos del
medio escogen entre ellos los mejor adaptados a los nichos ecológicos
disponibles. Tomando en cuenta el carácter abstracto de los algoritmos, que no
dependen de los materiales en que se actualizan, no hay óbice para aceptar la
selección natural como un algoritmo de la más noble alcurnia. Y alcurnia tiene,
con los millones de años que ha estado operando en nuestro planeta, poblando
los mares y los continentes, para declararlo el más antiguo y distinguido de
todos los algoritmos(d).
Para percibir mejor este carácter algorítmico del
principio de selección natural, expresémoslo a la manera de un diagrama de
flujo de los que usan los informáticos para representar sus programas:
ENTRADA
Se produce una población de elementos capaces de autorreplicarse(6).
CICLO
Los miembros de la nueva generación, se enfrentan a los constreñimientos del
medio con el apoyo de recursos de ese mismo medio.
Algunos de los miembros de la nueva generación (menos dotados para hacer frente a los constreñimientos vigentes en el medio) quedan descartados.
El material que determina la replicación de los miembros para producir la próxima generación se modifica mínimamente en forma aleatoria.
Los miembros de la población
que no fueron eliminados realizan lo que es necesario para preparar su
replicación.
Se replican los elementos de la población.
Mientras existen replicadores se ejecuta de nuevo CICLO.
El hecho de que el programa pueda no terminar (en las condiciones normales de supervivencia de la especie) hace que técnicamente no sea este un algoritmo regular sino irregular o parcial, del mismo carácter de un sistema operativo, según hemos visto.
La acción del método generar y examinar no termina con la producción del género humano. En un momento dado de la evolución de nuestro linaje nuestro cerebro comenzó a tener tan grande conectividad que pudo emerger la capacidad de concebir, transmitir e interpretar símbolos. Ahí surgió la posibilidad de que el algoritmo de selección natural comenzara a aplicarse a algo distinto de los genes, dando lugar al desarrollo de la cultura humana. Esa nueva evolución ha estado en curso ya por más de dos millares de milenios, desde los primeros homínidos que probablemente comunicaban por símbolos no orales, hasta los sapiens actuales que conversamos por Internet, pasando por los inventores de las lenguas, la escritura, la contabilidad, la versificación, los códigos secretos, los templos griegos, las catedrales góticas, las matemáticas y las ciencias experimentales. En nuestro tiempo, ha logrado producir algo tan impresionante como sistemas de símbolos que pueden generarse, transmitirse e interpretarse con independencia de la mente humana, en máquinas automáticas creadas por procesos conscientes de acumulación de diseño(e): las computadoras y las redes de computadoras. Parece que nos está tocando vivir –para bien o para mal–, si no el fin de la historia que comenzara con los primeros balbuceos de los sistemas simbólicos, sí el comienzo de una etapa inédita suya que quizás lleguen a conocer nuestros descendientes como la "edad de la desencarnación de los símbolos".
Notas
Nota 1: No, no se trata de un error tipográfico. La
palabra "metamatemática" existe y se refiere a una ciencia "a la
segunda potencia" que consiste en aplicar matemáticas (o lógica) al examen
de las matemáticas mismas. Ahí se ventilan cosas como la interna congruencia de
sus sistemas, la decidibilidad de sus proposiciones (si se puede llegar a
determinar mecánicamente que son verdaderas o falsas), la integridad o
"completitud" de sus axiomas, y otros temas igualmente abstractos.
Nota 2: A más de un lector puede sorprender que una receta
de cocina esté emparentada con un algoritmo. Aunque la forma en que
corrientemente la expresamos no sea demasiado formal, tiene una naturaleza muy
semejante a la de un cálculo matemático o un programa informático. Considérese
por ejemplo la secuencia que da como resultado cuatro porciones de sopa de
cebolla:
Nota 3: Mucho más tarde, ya
como profesor de informática, me dio mucha satisfacción alentar el trabajo de
un joven jurista costarricense que se interesó en plasmar como un
"algoritmo del delito" los procedimientos penales del país, a fin de
facilitar la labor de los jueces. (CASTRO
92)
Nota 4:
A esta impresionante lista debemos agregar que en los primeros años del siglo
XXI se ha introducido una ampliación en el algoritmo de Internet que ha
comenzado a revolucionar radicalmente la telefonía mundial al permitir
comunicarse a viva voz por medio de sus protocolos. Esto asimila el precio de
la comunicación telefónica nacional e internacional al costo de la comunicación
por Internet, insignificante comparada con la de la telefonía tradicional,
destinada a desaparecer a corto plazo. Nota de 2004.
Nota 5: Un
ejemplo de función heurística muy cruda para escoger la mejor jugada en un
programa de ajedrez sería contar para cada posición alternativa las casillas
dominadas por el jugador y por su contendiente y restar el número ajeno del
propio; se seleccionaría como jugada la que condujera a la posición con la
calificación más alta. En todo caso, la función debe ser pertinente para el
problema de que se trate y establecida con base en la opinión –no infalible
pero ilustrada– de algún experto.
Nota 6: He
preferido no usar aquí imperativos, que es la manera usual de expresar los
"comandos" de programación informática, a fin de alejar la impresión
de que estas "instrucciones" requieran un ser consciente que dé las
órdenes y otro que las reciba. Se trata más bien de una situación de carácter
automático en que las leyes de la naturaleza realizan la acción, sin necesidad
de conciencia ni de dualidad entre dos partes, excepto desde luego el
encadenamiento natural de causas y efectos. En el caso de la informática, las
leyes naturales implicadas son las de la electricidad, pues las computadoras
que se construyen hoy son mecanismos electromagnéticos. En el caso de la
evolución biológica, las leyes implicadas son las que regulan los fenómenos
bioquímicos, fundamento de toda vida que nos sea conocida.
Referencias
Nota a: La informática
como ciencia teórica en mi Epistemología
e informática. (GUTIÉRREZ 93)
Nota b: Un
mem llamado Internet en Apéndices de la
quinta colección.
Nota c: La unificación mundial americana en de la quinta colección.
Nota d: La selección natural en este bloque.
Nota e: La acumulación del diseño en este bloque.
Copyright © 1996-2002 Claudio Gutiérrez