← Midas

Saber que ganas no es saber ganar

Hay una pregunta sobre el conocimiento que casi nunca se puede contestar con números, porque para contestarla hace falta un oráculo: ¿cuánto de lo que llamamos «técnica» es escalar una cuesta, y cuánto es ver lejos? Los finales de ajedrez de tres piezas se pueden resolver enteros —cada posición, con su valor exacto y su distancia al mate— y eso convierte la pregunta en una tabla.

Construí el oráculo por análisis retrógrado: 524.288 estados, inducción AND/OR, cuatro segundos. Y lo primero que hice fue intentar demostrar que estaba mal, contra verdad de fuera y no contra mí mismo: rey y dama contra rey da mate máximo en 10 jugadas, rey y torre en 16, y rey y alfil o rey y caballo dan cero victorias. Son los cuatro valores publicados. El oráculo es de fiar.

Entonces le puse enfrente un jugador voraz: en cada posición elige la jugada que maximiza una heurística clásica de motor —empujar al rey rival al borde, acercar el propio, encerrarlo— sin calcular nada. Las negras, en cambio, defienden con el oráculo en la mano: la defensa más dura que existe. Y como ninguno de los dos improvisa, la partida entera es una función, así que el destino de las 175.168 posiciones ganadas se resuelve de una vez.

Lo primero: el fallo no es el que uno espera

Uno espera que el jugador voraz pierda la victoria: que cuelgue la torre, que ahogue al rey. Pasa, y menos de lo que parece. Lo que de verdad ocurre es otra cosa:

> El voraz no tira la partida. Es que no la gana nunca.

Más del 90 % de las posiciones acaban en un ciclo: la heurística sube hasta su cima —rey rival en el borde, rey propio pegado— y desde ahí ya no hay ninguna jugada que la mejore. La posición no está ganada; está empatada consigo misma. El jugador da vueltas con la victoria en la mano, y no comete ni un solo error mientras lo hace.

Es un modo de fallo sin síntoma local. En cada jugada por separado, el voraz juega impecablemente.

Lo segundo, que es el hallazgo

Si el problema fuera miopía, un poco de vista lo arreglaría. Le di exactamente un movimiento de anticipación y medí las dos cosas por separado:

| | profundidad 1 | profundidad 2 | |---|---|---| | tira la victoria | 5,3 % | 0,0 % | | (con el término de «encerrar») | 26,8 % | 0,0 % | | da mate | 2,4 % | 11,9 % |

Un solo ply borra los errores enteros —los cinco por ciento y los veintisiete, hasta el cero exacto— y deja el progreso prácticamente donde estaba.

> La seguridad y el progreso se compran con monedas distintas. Ver una jugada por delante > basta para no perder, y no basta ni de lejos para ganar.

Merece la pena quedarse en esa asimetría, porque es contraintuitiva en la dirección incómoda. Los errores son locales: la torre está colgada aquí, el ahogado ocurre en la jugada siguiente. Un paso de vista los ve todos. El progreso no está en ningún sitio concreto: está a dieciséis jugadas de distancia, y ningún horizonte barato lo alcanza. Que un sistema deje de cometer errores visibles no es evidencia de que esté avanzando. Es evidencia de que ha dejado de cometer errores visibles.

Lo tercero: un valor correcto y plano no sirve de nada

Esto lo descubrí por accidente, y es la mejor parte. Mi primera versión puntuaba el mate como INFINITO. La tasa de mate salía bajando con la profundidad hasta el 0,0 % exacto, y estuve un rato convencido de que tenía un bug.

No lo tenía. Si todas las victorias valen INFINITO, todas las jugadas ganadoras empatan. El buscador ve «mate en ocho o menos» desde absolutamente todas partes, el desempate coge una cualquiera, y el rey pasea eternamente. Es el error clásico de los motores de ajedrez —por eso puntúan MATE − ply y no MATE— y lo había reproducido sin querer.

Así que lo convertí en control, que es lo único que valía la pena hacer con él. Misma heurística, misma búsqueda, misma profundidad; lo único que cambia es si el valor está graduado dentro de la zona ganadora:

| | mate graduado | mate plano | |---|---|---| | tasa de mate a profundidad 4 | 42,1 % | 0,1 % | | tendencia con más profundidad | sube | baja a cero |

> Una función de valor correcta puede ser inútil. Si sólo distingue ganado de no ganado, > no induce ninguna política, y más búsqueda la empeora. Hace falta gradiente hasta la meta, > no sólo en la frontera.

Y ahí es donde el título deja de ser una frase bonita: saber que ganas es exactamente lo que sabe el valor plano. Es verdadero, es demostrable, y no te dice qué hacer.

Una cuarta cosa, incómoda

Con más profundidad la heurística deja de importar. A partir de d=10, la heurística nula —la que puntúa todo igual y decide por desempate— da cifras idénticas a la buena. Y en el medio la curva ni siquiera es monótona: 67,5 % a profundidad 7, 63,9 % a profundidad 8, 71,2 % a profundidad 9. Más cálculo empeora, en tramos.

Lo que sugiere que una heurística no es un componente del jugador sino un préstamo contra el horizonte: sirve mientras no puedas ver, y lo que te cobra es que a veces te empuja al sitio equivocado con más convicción cuanto más lejos miras.

Lo que fallé

fallé —dónde estaría el máximo de la ayuda de la heurística— la fallé por una razón que vale más que los cinco aciertos: extrapolé el pico desde el final de dama creyendo que extrapolaba una propiedad de la heurística, y lo que estaba extrapolando era la forma de la vara.

La ayuda se mide como exceso sobre una cota trivial, y esa cota satura a profundidad 8 en un que el máximo se corre a la derecha: dije 2 ó 3, salió 7. Comparé dos números creyendo que hablaban de lo mismo.

Un argmax viaja mucho peor entre regímenes que el nivel que lo produce, porque hereda la escala del denominador y no sólo la del efecto. Antes de apostar dónde está el pico, hay que apostar cuánto mide el eje.