Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

El mago que adivina de verdad

Uno de los primeros programas que se dejan a los alumnos en las carreras de computación, particularmente en lo que se refiere a estructuras de...

mago

Uno de los primeros programas que se dejan a los alumnos en las carreras de computación, particularmente en lo que se refiere a estructuras de datos, es la del árbol binario. A través de este ejercicio el alumno tiene que construir una estructura arbórea, en donde de la raíz del árbol salen dos ramas, a su vez de éstas salen, en cada una dos ramas y así sucesivamente. Para ilustrar el asunto normalmente se usa el juego de las preguntas, el cual se basa en respuestas de sí y no, de manera que de acuerdo a las preguntas, si la respuesta es “sí”, se recorre uno a la rama de la izquierda y si se contesta “no”, entonces se recorre a la rama derecha.

El sistema puede preguntar cosas de este estilo: “piensa en un animal real” (digamos que nuestra elección es ‘elefante’). La primera pregunta podría ser: “¿pesa más de 300 kilogramos? Contestaremos “sí”. Siguiente pregunta: ¿es acaso el animal que pensaste un toro?. La respuesta será “no”. Entonces el sistema nos dirá: Dame una pregunta (de respuesta “sí” o “no”), que distinga a un elefante de un toro. Podríamos poner la siguiente pregunta: ‘el animal en el que estás pensando ¿tiene trompa?’. Si la respuesta es afirmativa, entonces estaríamos hablando de un elefante”.

Así, la siguiente vez que se entra a este programa éste preguntará empezando por “¿pesa más de 300 kilogramos?” Y seguirá las preguntas en el orden en que han sido programadas. De acuerdo a la base de datos arbórea, estaremos recorriendo las ramas hasta llegar a una rama terminal (la cual ya no tiene más ramas). Si es así, el sistema pondrá la respuesta que asume debe ser. Si acierta, el juego concluye. Si no acierta, entonces habrá que crear una rama extra, con la respuesta positiva a la izquierda y la negativa en el lado derecho.

Pues bien, en este sitio hallé este juego. Me pedían que pensara en un personaje real o ficticio y el “mago” intentaría decirme en qué personaje estaba pensando. Se me ocurrió por razones que desconozco, pensar en Garry Kasparov, excampeón mundial de ajedrez y quizás el jugador más fuerte de toda la historia del tablero escaqueado. El mago inició sus preguntas, y me hizo muchas, en donde la mayoría eran si mi personaje era real o ficticio, si jugaba algún deporte, si utilizaba pelotas para el mismo, si era un deporte de combate, etc. Finalmente me dijo: “Piensas en Garry Kasparov”. ¡Había acertado!

Suena increíble si no se entiende el mecanismo de un árbol binario. ¿Cómo pudo saber, entre tantos personajes que hay en el planeta, el que estaba pensando haciéndome una serie de preguntas? La respuesta es fácil, teniendo una base de información en un árbol binario y recorriéndose por las ramas del mismo, guíadas por las respuestas. Pensemos, por ejemplo, ¿cuántos personajes puede contener este programa? La respuesta no es muy difícil. Si iniciamos el árbol ráiz con dos ramas, a la izquierda puede ir –digamos– Serena Williams (la tenista) y a la derecha Penélope Cruz (la actriz). Preguntamos entonces, como primera pregunta, si el personaje que pensamos es actriz. Si la respuesta es “sí”, entonces asumimos que hablamos de Penélope. Si la respuesta es “no” asumimos que hablamos de la tenista. Si contestamos que “sí”, pero no se trataba de Penélope entonces el sistema nos debe preguntar en qué actriz pensábamos y cómo la diferenciamos de la anterior. La pregunta podría ser: “¿es una actriz mexicana?”. Si la respuesta es “sí”, hablaríamos de Salma Hayek, si es la respuesta contraria, podríamos decir que es, no sé, Galilea Montijo. Obsérvese con este ejemplo que el árbol crecerá en potencias de dos: una raíz, dos ramas, cuatro subramas, ocho sub-subramas, dieciséis sub-sub ramas, treinta y dos sub sub sub ramas, etc. Así, a la pregunta 8 ya podremos decidir sobre un total de 256 personajes. Si tenemos 9 preguntas, hablaremos de 512 personajes ya en nuestra base de datos. 10 preguntas nos dan información sobre 1024 personas, 11 preguntas y tendremos 2048. 12 preguntas y estaremos con 4096. 13 preguntas serían 8192 personajes. 14 preguntas nos darían un resultado posible de 16384, etc. Es decir, esto aumenta en 2 a la potencia N, donde en cada N que aumenta en 1, se duplica la información que tenemos. Así entonces, por eso es que el sistema adivina el personaje de los miles que quizás puedan existir, sin considerar siquiera que habrá unos más famosos que otros por los medios y por la época que nos tocó vivir.

Y aunque la explicación es razonable y probablemente cierta en términos generales, el programa del mago es muy interesante porque en este caso su árbol de posibilidades no es binario, ya que le podemos decir -a una pregunta del mago- “sí”, “probablemente en parte”, “no lo sé”, “probablemente no, no mucho” y “no”. Sin duda un programa ingenioso que además, ahora puede descargarse para Android, iOS y Windows Phone. Hay versiones gratuitas y de pago.

Pro no me crea nada. Pruébelo por usted mismo y asómbrese…

Comentarios