Donald Knuth no es una figura cualquiera para los desarrolladores. Para varias generaciones de programadores, The Art of Computer Programming ha sido algo más que una colección de libros: es una forma de entender los algoritmos, la precisión, la elegancia y el oficio de programar. Por eso tiene especial interés que el propio Knuth haya firmado una nota titulada Claude’s Cycles después de que Claude Opus 4.6, un modelo de razonamiento de Anthropic, encontrara una construcción para un problema combinatorio en el que él llevaba semanas trabajando.
El episodio no va de un chatbot resolviendo por arte de magia un problema matemático y dejando sin trabajo a los investigadores. Va de algo más útil para cualquier desarrollador: cómo los modelos de lenguaje empiezan a convertirse en compañeros de exploración algorítmica, generación de código experimental, búsqueda de patrones y documentación del proceso. La historia tiene entusiasmo, errores, reinicios, validación humana y una conclusión incómoda para los escépticos absolutos: en determinados problemas, la Inteligencia Artificial ya puede aportar trabajo técnico real.
El problema: tres ciclos hamiltonianos en un grafo modular
La nota de Knuth parte de un problema sobre grafos dirigidos relacionado con ciclos hamiltonianos, un tema clásico de combinatoria. La formulación técnica considera un digrafo con m³ vértices, representados por ternas ijk, donde cada coordenada toma valores entre 0 y m − 1. Desde cada vértice salen tres arcos: uno incrementa la primera coordenada, otro la segunda y otro la tercera, siempre con aritmética modular.
La pregunta era si los arcos de ese grafo podían descomponerse en tres ciclos dirigidos de longitud m³, para todos los valores de m mayores que 2. Dicho de forma menos formal: si es posible repartir todos los movimientos posibles del grafo en tres recorridos enormes, cada uno capaz de visitar todos los vértices una sola vez antes de volver al inicio.
Knuth había resuelto el caso m = 3. Filip Stappers, amigo de Knuth, encontró soluciones experimentales para valores entre 4 y 16. Eso hacía pensar que la conjetura podía ser cierta, pero faltaba una construcción general. Stappers decidió plantear el problema a Claude usando la formulación original de Knuth y, además, le impuso una disciplina de trabajo muy reconocible para cualquier equipo técnico: después de cada ejecución de un script de exploración, el modelo tenía que actualizar un archivo plan.md antes de seguir.
Esa instrucción aparentemente simple fue importante. La sesión no consistió en lanzar una pregunta y esperar una respuesta perfecta, sino en dirigir una investigación iterativa: ejecutar programas, registrar resultados, analizar fallos, cambiar hipótesis y volver a probar.
Lo que Claude hizo bien: explorar como un programador paciente
Claude empezó reformulando el problema. Lo tradujo a una función que asignaba permutaciones a los vértices y probó primero patrones simples. Después intentó búsquedas por fuerza bruta, análisis en 2D, patrones serpentinos, descomposiciones por fibras y técnicas de búsqueda local. Muchas exploraciones no funcionaron. Algunas fueron callejones sin salida. Otras aportaron pequeñas piezas del puzle.
Desde el punto de vista de un desarrollador, lo interesante no es solo el resultado final, sino la dinámica. Claude escribió código, lo ejecutó, interpretó salidas, descartó enfoques y fue refinando la representación del problema. En una de sus exploraciones reconoció la estructura como un grafo de Cayley; en otra formuló patrones relacionados con códigos Gray modulares; más tarde detectó que ciertas elecciones dependían solo de coordenadas concretas dentro de una fibra.
El éxito llegó en la exploración número 31, aproximadamente una hora después de iniciar la sesión. Claude encontró una construcción que producía descomposiciones válidas para valores impares de m. Stappers probó el programa para todos los impares entre 3 y 101, y Knuth redactó después una demostración rigurosa de la construcción.
| Fase del trabajo | Qué hizo Claude | Qué aporta al desarrollador |
|---|---|---|
| Reformulación | Cambió el problema a una representación operativa con funciones y permutaciones | Convertir teoría en código ejecutable |
| Exploración | Probó patrones lineales, cuadráticos, serpentinos y por fibras | Buscar estructuras antes de optimizar |
| Programación experimental | Generó scripts para validar casos concretos | Usar código como herramienta de investigación |
| Depuración conceptual | Descartó enfoques que no generalizaban | Evitar enamorarse de la primera solución |
| Hallazgo | Encontró una regla válida para m impar | Acelerar la aparición de una construcción útil |
| Validación humana | Knuth escribió la prueba formal | El criterio experto sigue siendo imprescindible |
La lección para programadores: la IA no sustituye el rigor, pero cambia el flujo
La historia de Claude’s Cycles resulta especialmente útil para desarrolladores porque muestra una forma realista de trabajar con modelos avanzados. Claude no fue infalible. Según relata Knuth, Stappers tuvo que reiniciar la sesión en algunos momentos, recordar al modelo que documentara su progreso y gestionar errores aleatorios. Más adelante, cuando se intentó avanzar en los casos pares, Claude llegó a atascarse.
Ese detalle no resta valor al caso; al contrario, lo vuelve más creíble. Cualquier desarrollador que haya usado asistentes de IA para programar sabe que pueden proponer soluciones brillantes y, unos minutos después, perder contexto, inventar una abstracción innecesaria o insistir en una vía equivocada. La diferencia está en cómo se les usa.
El modelo funcionó bien cuando recibió un problema preciso, restricciones claras, un mecanismo de verificación y una obligación de documentar el progreso. Es decir, cuando se le trató menos como un oráculo y más como un agente técnico supervisado.
Para equipos de desarrollo, esa es una enseñanza práctica. Los modelos de lenguaje pueden ser muy útiles en tareas como explorar algoritmos, generar variantes, escribir pruebas, crear scripts de validación, analizar salidas, resumir intentos fallidos o buscar patrones en resultados experimentales. Pero necesitan límites, test automatizados, revisión humana y una definición clara de éxito.
Del “vibe coding” a la investigación asistida por pruebas
El caso también ayuda a separar dos formas muy distintas de usar IA en programación. Una es el “vibe coding” entendido como delegar sin entender, aceptar código porque compila o confiar en una respuesta porque suena convincente. La otra es la investigación asistida por pruebas: usar el modelo para explorar más rápido, pero exigir evidencia, reproducibilidad y validación.
Knuth no dio por buena la solución solo porque Claude la propusiera. La construcción se probó computacionalmente, se analizó y se demostró. Después, otros miembros de la comunidad aportaron formalizaciones y avances adicionales, incluidos trabajos sobre los casos pares y verificaciones vinculadas a Lean.
Esto conecta con una tendencia que ya se está viendo en desarrollo de software: la IA es más potente cuando se integra en flujos con pruebas, linters, documentación, control de versiones, revisión de código y especificaciones concretas. Un modelo que puede ejecutar 31 exploraciones en una hora es útil; un modelo que no deja rastro de lo que ha probado es peligroso.
En ese sentido, la instrucción de Stappers para actualizar plan.md después de cada ejecución debería sonar familiar a cualquier equipo que trabaje con agentes de programación. Mantener memoria externa, registrar hipótesis, guardar resultados y no depender solo del contexto conversacional del modelo puede marcar la diferencia entre una exploración productiva y una sesión caótica.
Qué significa esto para el futuro del desarrollo
El mensaje para los desarrolladores no es que deban abandonar sus conocimientos de algoritmos, estructuras de datos o matemáticas discretas. Es justo lo contrario. Cuanto más sabe el profesional, mejor puede dirigir al modelo, detectar errores, diseñar pruebas y reconocer una buena idea cuando aparece.
Knuth no queda empequeñecido por Claude en esta historia. Su papel es el que probablemente tendrán muchos expertos en los próximos años: formular bien el problema, reconocer la calidad de una construcción, convertir el hallazgo en prueba, documentar el resultado y distinguir entre una coincidencia experimental y una solución general.
La IA puede ampliar la capacidad de exploración de un programador. Puede probar más variantes, generar más código de apoyo, acelerar verificaciones y sugerir enfoques que quizá no surgirían de inmediato. Pero el valor final sigue dependiendo de la disciplina técnica: entender el dominio, formular restricciones, medir, probar y revisar.
Para medios y comunidades de desarrollo, Claude’s Cycles es una señal relevante porque no trata de una demo de productividad superficial, sino de una colaboración entre humanos y modelos en un problema técnico real. La historia combina combinatoria, programación experimental, documentación iterativa y prueba formal. No es magia; es ingeniería asistida por IA.
Y quizá por eso importa tanto que la nota venga de Donald Knuth. No porque su entusiasmo convierta a los LLM en herramientas perfectas, sino porque muestra que incluso en los territorios más rigurosos de la informática hay espacio para nuevas formas de colaboración. Si los modelos pueden ayudar a descubrir construcciones en grafos, también pueden cambiar la forma en que los desarrolladores exploran algoritmos, prueban ideas y convierten intuiciones en código verificable.
Preguntas frecuentes
¿Qué resolvió Claude en el trabajo de Donald Knuth?
Claude encontró una construcción para descomponer los arcos de un grafo dirigido modular en tres ciclos hamiltonianos, inicialmente para valores impares de m. El problema estaba relacionado con material que Knuth preparaba para un futuro volumen de The Art of Computer Programming.
¿Por qué este caso interesa a los desarrolladores?
Porque muestra un uso práctico de la IA más allá de generar fragmentos de código. Claude actuó como herramienta de exploración algorítmica: escribió programas, probó hipótesis, documentó resultados y ayudó a encontrar una construcción que después fue revisada y demostrada por humanos.
¿Claude demostró formalmente el resultado?
No en el hallazgo inicial. Claude produjo una construcción y código para probarla en distintos casos. Donald Knuth redactó la prueba formal para la construcción impar, y otros investigadores trabajaron después en formalizaciones y extensiones.
¿Qué lección práctica deja para trabajar con IA en programación?
La principal lección es que los modelos funcionan mejor cuando tienen especificaciones claras, pruebas, objetivos medibles y memoria externa del proceso. Usarlos sin revisión puede generar errores, pero integrarlos en un flujo disciplinado puede acelerar mucho la exploración técnica.






