miércoles, 17 de abril de 2013

Una máquina que puede hacer todo

DIALOGO CON JAVIER BLANCO, DOCTOR EN INFORMATICA POR LA UNIVERSIDAD DE EINDHOVEN, HOLANDA

La computación es una ciencia bastante reciente, que sigue debatiendo cuál es la forma de pensar lo computable. Detrás de la programación de sistemas formales hay sin embargo una esencia creativa que busca una solución de cálculo a todas las preguntas.

–Cuénteme.
–Después de mi doctorado, me fui a Famaf, en Córdoba. Y trabajaba en métodos formales. Ahora, desde hace unos cuatro o cinco años, trabajo en filosofía y computación y filosofía de la técnica, dos áreas que están relacionadas.
–Hablemos un poco de eso, entonces. Empecemos por la filosofía y la computación. –En este campo lo que hay es, como se imaginará, una divergencia enorme de temas: desde ética computacional hasta epistemología de la ciencia computacional (que es más lo que yo trabajo) o temas de robótica, vida artificial...
–¿Qué particularidad tiene la epistemología de la computación? –Esa rama de la filosofía lo que intenta es comprender esta disciplina nueva (relativamente), que tiene una cantidad de anclajes aún difíciles de ver y en disputa: por un lado, se la ve como una tecnología, por el otro se la ve como una ciencia formal (en tanto deriva de la matemática) y, por último, se la ve como una ciencia empírica. Hay una disputa enorme acerca de cuál es la forma de pensar lo computable. Mi opinión es que lo computable está más asociado a una ciencia formal, pero una ciencia formal de índole muy creativa y no tan mecanizada.
–¿Qué quiere decir eso? –Que algo tan poco atractivo como parece la axiomatización o las funciones programables admite una variedad de cosas muy interesante. Voy a ir un poco al tema ontológico.
–Vamos. ¿Qué son los programas? ¿Qué son los sistemas computables? –Una máquina de Turing, que es como el inicio de la computación, el modelo formal más aceptado hoy, era una máquina esencialmente compleja.
–¿En qué sentido? –Es una máquina que por un lado puede ser vista como determinista (uno puede ver el programa y sabría qué es lo que haría), pero al mismo tiempo es demostradamente impredecible: los resultados de la computabilidad muestran resultados que contradicen el sentido común. Si uno dispone de las ecuaciones básicas de un sistema, se supone que puede determinar lo que pasará a futuro. En la máquina de Turing eso no ocurre: uno no puede ni siquiera determinar si eso se va a detener o no. O sea que uno tiene un sistema completamente determinista y, al mismo tiempo, perfectamente impredecible. Eso es lo que Turing muestra en el ’36. Las consecuencias de esto son enormes, porque pareciera entonces que el determinismo no es algo que implique predictibilidad. Entonces, pensar esos artefactos, esa matemática, es algo que parecería esencialmente creativo y sin embargo formalizable.
–De todos modos, en esa matemática, tanto la de Gödel como la de Turing, lo que se dice es que la verdad que no se puede alcanzar es “este teorema no se puede alcanzar”. –Sí, pero relativo a cada axiomatización: para determinada axiomatización hay un teorema que no se puede alcanzar. Cuando Turing se va a Princeton a hacer su doctorado, él muestra cómo uno puede ir construyendo sistemas cada vez más complejos de manera tal que para cualquier verdad aritmética (que para el teorema de Gödel escaparía a una axiomatización) hay alguna axiomatización en la cual esa verdad va a ser demostrable. Muestra lo que algunos autores llaman “inexhaustibilidad”. Es un teorema muy fuerte, pero el problema es que no hay ninguna máquina que lo haga. Pero en principio, muestra una forma sistemática de ir construyendo sistemas axiomáticos cada vez más numerosos que van a demostrar todo. Y en ese punto es donde encontramos lo creativo en el propio núcleo de lo más árido, que es el sistema axiomático. Hay muchísimo a investigar en algo tan elemental o tan árido, y sin embargo permite miles de sorpresas.
–¿Hay algún tipo de similitud entre las máquinas y el cerebro? –Turing apostaba que sí, y obviamente similitudes hay. Es una de las preguntas que mucha gente quiere responder hoy, y hay diferencias muy sutiles. De todos modos, me parece que los modelos que se usan para buscar la analogía con el cerebro son modelos de máquina muy elementales, que no exploran toda la complejidad inherente a los modelos axiomáticos que Turing desarrolla. La máquina universal de Turing es mucho más rica que los modelos que se usan. Lo que sucede es que se confunde siempre el describir un sistema computacionalmente con que el sistema sea efectivamente computacional. Cualquier sistema se puede describir computacionalmente. Puedo describir el Sistema Solar como si fuera un sistema computacional, pero eso no significa que sea un sistema computacional.
–Si el cerebro es una computadora, más bien es una computadora química o eléctrica. –Es que la computación pareciera ser, en algún sentido, independiente del medio. Los primeros resultados de la computación eran resultados abstractos: hoy por hoy hay computadoras químicas, biológicas, cuánticas; hubo computadoras mecánicas. Si bien su sustrato es altamente diverso, todas parecerían compartir algo.
–¿Qué? –Esa pregunta no está acordada entre todos. Algunos dicen que comparten posibilidades, disposiciones; otros dicen que comparten estructuras de complejidad. Lo que comparten es que son programables: la idea de programa tiene que tomar un rol más importante en la caracterización ontológica. Esa no es una idea del todo explorada. Putnam, en el año ’75, intentó sugerir que cualquier proceso ejecuta cualquier computación y por lo tanto que cualquier cosa es en potencia una computadora.
–¿Cómo? –Cualquier proceso, si lo mido en distintos tiempos, toma distintos estados. Yo puedo mapear cualquier computación a ese proceso. Es un artilugio que Putnam propone para demostrar que no hay nada específico en la computación, que no tiene sustrato ontológico. Si bien es erróneo, costó mucho tiempo refutarlo.
–No dice mucho... –Exactamente. Yo creo que se refuta diciendo que si bien todo sistema se puede poner en correspondencia biunívoca con cualquier computación, eso no implica que el sistema se pueda programar para que haga lo que cualquier computadora va a hacer.
–Aunque sepamos cuál es la correspondencia biunívoca. –Claro. Si el sistema no es programable, puede responder sólo a un comportamiento. La computadora lo que tiene es la flexibilidad. Quiero decir: cualquier sistema se puede describir por una máquina de Turing, pero no por la máquina universal.
–Explique qué son. –La máquina universal es una máquina de Turing cualquiera que lo que hace es, primero, tomar un número que indica cualquier otra máquina de Turing. Después toma la entrada de esa máquina y se comporta como ella. O sea que la máquina universal, a partir de una codificación que toma en la entrada, se comporta como cualquier otra máquina. Es lo que hoy hace una computadora de hogar: por un rato es un teléfono, por un rato un proyector de películas, por un rato una planilla de cálculo. Esa versatilidad increíble se produce gracias a la programación. Lo que demuestra Turing en el ’36 es que eso se puede hacer con un modelo muy elemental. Es una cinta con ceros y unos y una persona que se va moviendo de derecha a izquierda cambiando ceros y unos nada más. Es una máquina muy potente, de alguna manera es el sueño de Leibniz: una máquina que puede hacer todo. En realidad no es tan así, porque obviamente la máquina tiene sus limitaciones. Pero es la versión posible del sueño de Leibniz: poder poner todo en un mismo nivel, que haya una solución de cálculo para todas las preguntas. Se trata entonces de una máquina que se puede comportar como cualquier otra.
–Eso la hace diferente del cerebro. –Hace poco vino acá un importante filósofo de la computación que planteaba que había tres modelos computacionales: el analógico, el digital y uno que sería “neuronal”. No sé si estoy del todo de acuerdo con eso, hay que estudiar mucho para ver si eso es posible, pero en principio la pregunta para hacerse es si en algún nivel de observación la mente es una computadora digital. El cerebro es mucho más que una computadora; si es una computadora es muchas otras cosas al mismo tiempo. Pero una parte de su funcionamiento podría ser descripta computacionalmente, sin lugar a dudas. No creo que como un todo.