Shane Wighton, del canal Stuff Made Here, trabaja en proyectos tan largos como impresionantes. El último del que ha dado cuenta es la construcción de un mecanismo robótico para resolver puzles, pero puestos al tema, eligió la versión más difícil del reto: un puzle de 5.000 piezas y completamente blanco, de modo que la máquina ni siquiera podía guiarse por los dibujos, tan solo por la forma de las piezas.
Es mejor rebajar tus expectativas al intentar ciertos proyectos.
– Shane Wighton
El vídeo es largo pero muy ágil, y de él se extrae esta gran moraleja, que Shane repite más de una vez y que se puede aplicar a proyectos de todo tipo. Soluciones siempre hay, pero no es lo mismo. Por ejemplo, nada más empezar se da cuenta de que no existen puzles comerciales blancos de 5.000 piezas, sólo de 4.000, de modo que opta por comprar uno de 5.000 y pintarlo con spray. Más adelante descubrirá que las piezas no terminan de encajar bien, y pese a probar a limpiarlas y pulirlas no hay manera de que sirvan… Así que acaba creando su propio puzle blanco de 5.000 piezas recortándolo con láser; pese a eso los encajes que hace el robot tampoco son perfectos. ¡Ah, la famosa diferencia entre teoría y práctica!
Algunas cuestiones evidentes está muy bien resueltas: utiliza una cámara con una lente especial para escanear todas las piezas a altísima resolución, de modo que luego puede trazar sus contornos automáticamente. Cada escaneo de las 5.000 piezas supone unas 8 horas de trabajo (!) Y naturalmente, como suele suceder, no funciona a la primera. La forma matemática de definir el perímetro de las piezas, los encajes y salientes y determinar las esquinas es muy interesante y las explica con detalle; es geometría muy interesante. Todo esto lo programa él mismo en Python, porque le resulta más cómodo y quiera que sea «un proyecto de un solo hombre», aunque nuevamente hacia el final del vídeo los problemas le hacen necesitar de algo de ayuda externa (¡y siguen quedando bugs!)
La otra parte interesante es el algoritmo de resolución, que le tiene frustrado semanas y semanas. Con toda la información de las piezas, el ordenador puede resolver «mentalmente» el puzle y luego simplemente ir colocando cada pieza en su sitio. Hay veces que las piezas encajan y al añadir otras piezas alrededor entonces no, y hay que volver atrás. Todo esto es así al menos en teoría. El problema es que 5.000 piezas son muchas como para probar «todas con todas» y ha de buscar optimizaciones; seleccionar sólo aquellas con contornos compatibles es parte de la solución, aunque no es trivial (de hecho la falta de soluciones es lo que le desespera y hace ver que las piezas de un puzle normal no sirven).
Al final Shane consigue resultados adecuados con sus piezas cortadas con precisión, de modo que finalmente todo es cuestión de ir alimentando con piezas una por una al robot –cuyo mecanismo provenía de una máquina anterior, y no necesita demasiadas modificaciones excepto aumentar su superficie– y éste las va colocando. Curiosidad: a diferencia de los humanos, el robot no necesita empezar con la estrategia de «hacer primero el marco», que es lo que solemos hacer los humanos.
Como puede verse, en cada fase del proyecto aparecen nuevas dificultades y hay que rebajar expectativas: el puzle no puede ser el que se pensaba, el robot no consigue encajar todas las piezas bien y algunas piezas hay que terminar de empujarlas a mano, o el generador que usó para crear las piezas falló y varias de ellas no tienen la forma estándar (tiene que dejarlas aparte, para el final). Para colmo el robot se empeña en apilar algunas piezas encima de otras (¿bug?) o las arrastra con el movimiento si no estaban bien encajadas (¡aggg!) pero, contra viento y marea, y tras muchas semanas de trabajo, el reto se puede dar por superado.
§
Con la parte mecánica resuelta, una de mis otras dudas sigue en pie: ¿Cuál es la forma óptima de resolver un puzle tradicional en equipo, entre varias personas? Ahí si que no he vuelto a ver avances al respecto. ni sé de que haya competiciones temáticas.
Actualización (3 de diciembre de 2022) – También es casualidad: justo hoy el algoritmo me sugirió este vídeo de Karen Puzzles donde se ve es el desarrollo de una competición de puzles por equipos. Básicamente todos parecen utilizar la estrategia de: primero el borde, luego cada persona se concentra en una zona con un color determinado. Supongo que esto servirá para algunos diseños de puzles y no para otros, pero esa parece ser la idea dominante.
Relacionado:
- Cómo resolver un puzzle entre varias personas, de forma óptima
- El puzle de piezas que cambian de color, de Clemens Habitcht
- Eternity II: el nuevo puzzle con un premio de dos millones (2007)
- 216 lagartijas: un puzzle que forma un patrón infinito
- Jigsomania 1000, el puzle de puzles
- Puzles transparentes