PIENSA COMO UN PROGRAMADOR
EPISODIO 8: LA BIFURCACIÓN
La caída desde la torre
envía a Ética y Hedge
a girar dentro de los rápidos
de un río de energía pura.
Este torrente fluye desde el Bradbarrier
todo el camino a Huxenborg.
Allí, en una ciudad entera de fábricas
construyen los robots y albergan
el Nodo de la Memoria,
el último de los tres artefactos
que Ética necesita recolectar.
Después de un largo día
y una noche aún más larga
se encuentran en un cañón
de ladrillo y acero.
Justo cuando van a alcanzar
el fin de la línea,
una cuerda los atrapa.
Su salvadora, Lemma,
los ha estado esperando.
Cuando Ética reclamó el Nodo de Creación
de la torre del bosque,
las radios de todo el país
volvieron a la vida.
Adila, la líder de la resistencia,
comenzó a contactar a sus aliados,
nada más importante que Lemma,
una científica genial que trabaja dentro
de Huxenborg para derribar las máquinas.
Desafortunadamente,
las radios también avisaron a los robots.
Por ello, han tomado medidas defensivas
para proteger el artefacto final
en su hogar en el corazón de la ciudad.
Solo hay una forma de llegar:
un desafiante camino de bifurcaciones.
Es una serie mortal de conductos luminosos
que serpentean por debajo de Huxenborg.
Empezando desde la posición actual,
cada sección recorre una distancia,
luego se divide en dos.
Cada rama hace lo mismo,
una y otra vez.
Hay miles de ramas.
Solo un camino conduce al artefacto;
todos los demás a la destrucción.
Afortunadamente, el Nodo de Creación
le ha otorgado a Hedge un extraño poder:
puede producir versiones
un poco más pequeñas de sí mismo.
Cada versión puede hacer solo dos cosas:
devolver información
por radio a la matriz,
y producir versiones
un poco más pequeñas de sí mismas...
quienes pueden hacer las mismas dos cosas,
al igual que sus copias,
durante tantas generaciones
como sea necesario.
Un patrulla se acerca a su posición,
así que el tiempo de Ética es limitado.
¿Qué instrucciones debería darle a Hedge
para encontrar el único camino seguro?
[Pausa el vídeo para resolverlo tú mismo]
Pista en: 3
Pista en: 2
Pista en: 1
Los programadores tienen
una elegante herramienta en su arsenal
llamada recursión.
La recursión es cuando
tienes un conjunto de instrucciones
que se refieren a sí mismo.
Es como usar una palabra
en su propia definición,
y aunque eso está mal visto,
es increíblemente efectivo.
La recursión implica la repetición,
pero de una manera diferente a los bucles.
Donde un bucle realiza una acción
y la repite una y otra vez,
la recursión inicia una acción,
y antes de que termine, la usa de nuevo,
y antes de que esa termine,
la usa de nuevo, y así sucesivamente.
Sigue haciendo esto hasta que
se alcanza algún estado final.
Luego pasa la información
de vuelta, capa tras capa,
hasta que alcanza la parte superior
y finaliza el ciclo.
La recursión es ideal para problemas
que implican autosimilitud,
en los que cada parte
se asemeja a un todo mayor.
Como, por ejemplo,
un sistema de defensa mortal
diseñado para acabar
con cualquier persona o cosa
que se atreva a pisarlo.
[Pausa el vídeo para resolverlo tú mismo]
Solución en: 3
Solución en: 2
Solución en: 1
El enigma de Ética parece
extenderse en la superficie,
pero hay una solución
notablemente simple usando la recursión.
Para encontrarlo,
veamos primero la versión más simple
de este rompecabezas:
¿Y si todo el laberinto
fueran solo dos caminos?
Si Hedge se copia a sí mismo,
la copia que va por el camino equivocado
será destruida.
Así que el otro,
que alcanzará el artefacto,
puede transmitir por radio
el camino que tomó,
y luego, sin importar
qué camino sea el correcto,
esa es la respuesta que recibirá Hedge.
Esto se llama el "caso base"
de la recursión.
Ahora, supongamos que el laberinto
se ramifica dos veces
desde el punto de partida,
y en cada intersección,
las copias de Hedge,
llamémoslas Twig 1 y Twig 2,
hacen más copias,
llamémoslas Leaves 1 a la 4.
Tres Leaves serán destruidas.
La que alcance el artefacto enviará
por radio la respuesta correcta,
pero solo a su matriz.
Así que si Twig 1 o 2
está esperando en una intersección
y oye algo por la radio,
ese es el camino correcto
de ir al artefacto desde donde está.
Para darle a Hedge la respuesta correcta
desde su perspectiva,
El Twig debería decir por dónde fue,
y luego la ruta que acaba
de escuchar en la radio.
Este mismo proceso funcionará
sin importar cuántas veces
se ramifique el laberinto.
Cualquier respuesta
que una copia escuche en la radio
debe ser el camino a
la sala de control desde su ubicación,
y si luego agrega el camino que tomó,
puede decirle a su matriz cómo llegar.
Podemos resumir las instrucciones
en una acción llamada Pathfinder
que cada versión de Hedge seguirá:
1. Si has alcanzado el artefacto,
avisa por radio a tu matriz si llegaste
yendo a la izquierda o a la derecha.
2. Cuando llegues a una intersección,
sal del conducto
y envía nuevas copias por los caminos
de la izquierda y la derecha.
Haz que cada uno ejecute el Pathfinder.
Aquí es donde la recursión entra en juego,
y esto puede suceder muchas veces
antes de que se desencadene
la última instrucción, que es:
3. Si escuchas algo en la radio,
debes decirle a tu matriz
si llegaste a tu lugar yendo
a la izquierda o a la derecha,
y luego repetir todo
lo que acabas de escuchar.
Pathfinder es un ejemplo
de lo que los programadores llaman
funciones, subrutinas o procedimientos.
No importa la terminología,
la idea es la misma:
es un conjunto de instrucciones
con una etiqueta
para que pueda ser fácilmente reutilizado,
tal vez incluso por sí mismo.
Y en nuestro caso
eso funcionará perfectamente,
una red entera de caminos mapeados
usando solo tres instrucciones.
Así que esto es lo que pasa.
Para cuando la patrulla
llegue a la esquina,
Ética y Lemma
habrán improvisado disfraces.
Tratan de confundir
a los bots lo suficiente
para comprarle tiempo a Hedge.
Finalmente, la radio de Hedge cobra vida
con una serie de direcciones.
Los tres saltan por el conducto
y huyen para salvar sus vidas,
con un escuadrón de robots
ejecutores persiguiéndolos.