Los rincones oscuros de Unicode

¿Qué hay tras un símbolo? Puede ser tan sólo un conjunto de líneas, o la representación más sintética del sufrimiento humano. En los últimos tiempos se han escuchado voces, provenientes en su mayoría de las repúblicas bálticas y Polonia, clamando por la ilegalización de los símbolos de su pasado bajo la dominación soviética. ¿Prohibirán también Unicode, y en particular, su símbolo U+262D?

Unicode incluye el símbolo de la hoz y el martillo, dentro del grupo Símbolos Misceláneos. Una curiosa coincidencia lo sitúa en la tabla junto al símbolo de la paz (código U+262E), en el subgrupo de símbolos religiosos y políticos. Si prospera la propuesta de ilegalización en toda la Unión Europea, es probable que el código U+262D quede vacante. Después de todo, un símbolo comparable en la intensidad de las reacciones que genera, la esvástica nazi, no se encuentra por ninguna parte, muy probablemente debido al hecho de que es ilegal en Alemania, y se ha intentado que también lo sea en toda la Unión.

En cualquier caso, puede que Unicode no recoja la esvástica, ¡porque ya contiene tres! Se trata de los códigos U+0FCC (esvástica tibetana), en el grupo Tibetano, junto con U+5350 (ideograma chino “esvástica”) y U+534D (ideograma chino “esvástica inversa”), ambos en el grupo Ideogramas CJK Unificados.

Es imposible eliminar estos símbolos del catálogo de Unicode sin dañar su capacidad para representar el chino y el tibetano. También creo que no tiene sentido prohibir un símbolo fuera de un contexto orwelliano de limpieza lingüistica. Las personas libres deben poder recordar su pasado, glorioso o abominable, del modo más eficaz; debería ser un derecho y un deber como ciudadanos. Así pues, añadamos esa esvástica (la que se dibuja en una rejilla cuadrada de 5×5, girada 45 grados) a su lugar correcto en Unicode, y seamos intolerantes con la intolerancia, la única excepción que como sociedad democrática deberíamos admitir.

Progreso creciente

En la anterior entrada surgió el peliagudo asunto de la Ley de Moore. La denominación de ley le otorga un rango que no tiene, pues no es más principio natural que el de Peter o la ley de Murphy. Pero —o precisamente— este paralelismo me hace dudar. ¿Paparruchas?

En realidad, la ley de Moore es lo suficientemente malinterpretable como para requerir una formulación más precisa. Vino también en forma de ley: la de Aceleración de los Retornos, en traducción literal (de Law of Accelerating Returns) o, creo que mejor expresado, Ley del Progreso Exponencial, original de Ray Kurzweil.

La Ley del Progreso Exponencial es lo que, intuitivamente, se suele tener en mente cuando se habla de la Ley de Moore. Afirma que la complejidad de los sistemas diseñados aumenta por productos sucesivos. Un conjunto de innovaciones se combina con otro para formar una matriz de innovaciones al cuadrado, y así una y otra vez. Se trata de una (leve) formalización del antiguo adagio “Si llegué tan lejos es porque me aupé en hombros de gigantes” (atribuída a Newton, gigante donde los haya en los ratos libres que le dejaba la alquimia y la teología).

Kurzweil parece haber olvidado la influencia de Murphy en la tecnología. En la conquista de la complejidad nos enfrentamos con sistemas que muestran modos de fallo más y más impredecibles. Preveo dos alternativas: la Singularidad, el final del camino de adoquines amarillos de la tecnología, llegará por accidente. O, peor aún: como describe Vernon Vinge en este artículo, no llegará. Pero por incompetencia.

Simulaciones del cerebro

El superordenador BlueGene/L ha estado ocupado últimamente con una simulación interesante: la del córtex cerebral de un ratón. Los reporteros de ciencia suelen cometer errores de bulto con frecuencia, y esta no es una excepción: si observáis con atención el artículo (y sus traducciones/copias en español) comprobaréis como se habla de “medio cerebro de un ratón”, lo que es obviamente incierto. El cerebro de un ratón tiene bastantes más neuronas que 16 millones, como puede comprobarse en esta interesantísima página de datos y cifras cerebrales.

Pero hoy no quería cebarme en los periodistas, sino reflexionar sobre el estado del arte en computación, y las consecuencias a medio plazo de desarrollos como el que relato. Tomando como base los números de la página citada anteriormente, vemos que el córtex humano tiene un número de neuronas estimado en 1010, con aproximadamente el mismo número de sinapsis por neurona que un ratón (6000, 8000… no es una diferencia significativa). BlueGene/L es una máquina capaz de alcanzar los 360 TFLOPS (360·1012 operaciones de punto flotante por segundo). Suponiendo que ése fue su rendimiento durante la simulación cortical, que duró 10 segundos, tenemos que se requirieron 3,6·1015 operaciones para realizarla.

Bienvenidos a la Ley de Moore. En su versión más conservadora, afirma que la capacidad computacional de los procesadores se dobla cada dos años (últimamente, parece que se dobla cada 18 meses). ¿Cuándo podemos esperar la simulación del córtex humano? En el mejor de los casos, considerando tan sólo un incremento lineal en el número de neuronas, será una simulación 1250 veces mayor. Pongamos 10000. Se necesitarán 3,6·1019 operaciones para realizarla, y BlueGene/L tardaría hoy, suponiendo que no tiene problemas de almacenamiento, alrededor de… 28 horas por segundo simulado. Para estudiar el funcionamiento del córtex cerebral, es perfectamente factible (y en el Laboratorio Goodman de Computación Cerebral de la Universidad de Nevada tienen ya el software).

¿Y en tiempo real? Hay una diferencia de 105 entre la capacidad actual de BlueGene/L y lo que haría falta para simular un córtex humano en tiempo real. Tomando logaritmos en base 2, tenemos la respuesta:

log2(105) = 16,6096

Recordemos la cifra estimada por Moore: el doble de capacidad cada 24 meses. Tendríamos una simulación en tiempo real de un córtex humano en 33 años (en 25 al ritmo actual). Sólo queda esperar que la ley de Moore no se cumpla por las limitaciones cuánticas de la miniaturización de transistores u otros efectos. Pero el ingenio humano va por delante —de momento.