¿Qué es un invariante y cómo encontrarlo?
Un invariante es una cantidad que no cambia bajo las operaciones del problema. En un problema de juego o proceso, si podemos encontrar una función del estado del sistema tal que , entonces es imposible pasar de uno al otro mediante las operaciones dadas.
Los invariantes más comunes en olimpiadas son: (1) paridad de alguna suma o conteo; (2) **residuo módulo de una cantidad; (3) suma total de los elementos; (4) número de inversiones en una permutación; (5) coloración**: el color de una celda o vértice es invariante si las operaciones respetan la coloración.
Cómo encontrar el invariante: El método estándar es calcular el valor de la función candidata para los estados iniciales y finales y verificar que difieren. Si no hay candidato obvio, intentar: (a) calcular después de una operación y ver qué se conserva; (b) buscar cantidades que se conserven al hacer una operación elemental ("¿qué no cambia cuando hago la operación?"); (c) probar con paridad, suma, producto, y XOR de los elementos del estado.
Ejemplo básico: Se tienen enteros en una lista. Una operación consiste en elegir dos elementos y reemplazarlos por su suma y su diferencia. ¿Es posible que todos los números sean impares al final si inicialmente hay al menos un número par? Invariante: la paridad de la cantidad de números pares en la lista. Cada operación reemplaza por . Si y son ambos pares o ambos impares, y son ambos pares; si uno es par y otro impar, y son ambos impares. En ningún caso cambia la paridad de la cantidad de pares en — pero sí puede cambiar. El invariante correcto aquí es: la suma total no cambia (pues ... espera, la suma cambia). El invariante verdadero es: la suma de todos los elementos módulo 4, o la paridad del número de elementos pares. El análisis detallado depende del enunciado exacto.
Invariante de suma: La operación preserva solo si . No preserva la suma. El invariante no trivial de esta operación es: el conjunto cambia de a o de a . En particular, si inicialmente hay exactamente un número par, después de una operación que involucra ese número habrá 0 o 2 números pares. Luego la paridad de la cantidad de impares (contada módulo 2) se conserva solo si la operación no involucra al número par.
Monovariantes y argumentos de buen orden
Un monovariante (también llamado semivariante o función de progreso) es una función del estado del sistema que es estrictamente monótona bajo cada operación: siempre aumenta, o siempre disminuye, en cada paso. El papel del monovariante no es demostrar imposibilidad (como el invariante), sino demostrar que el proceso termina.
Principio de buen orden: Un proceso que en cada paso disminuye estrictamente una función (enteros no negativos) termina necesariamente, ya que no puede disminuir infinitamente. Este es el argumento de descenso infinito aplicado a la combinatoria.
Ejemplo: En un tablero con fichas, la operación es: si hay dos fichas en la misma columna, mover la ficha de la fila más alta a la casilla libre más cercana debajo de ella. Demostrar que el proceso termina. Monovariante: . Cada operación disminuye la fila de una ficha, luego disminuye estrictamente en cada paso. Como , el proceso termina.
Monovariante en problemas de juego: En un juego, si se puede definir una función del estado del juego que siempre disminuye con cada movimiento de ambos jugadores, entonces el juego termina. (Esto garantiza que el juego es finito, condición necesaria para aplicar el teorema de Sprague-Grundy.) Además, si solo puede disminuir en pasos de cierto tamaño, se pueden contar los movimientos máximos del juego.
Monovariante inverso (función de potencial): En algunos problemas, se busca el número mínimo de operaciones para pasar de un estado a otro. La idea es definir que disminuye en exactamente 1 por operación (o acotar por debajo cuántas operaciones son necesarias para reducir en la cantidad requerida). La cota inferior es dividido por la disminución máxima por operación.
Paridad como invariante
La paridad es el invariante más sencillo y más frecuente en olimpiadas. Para usarla, se define una función que vale o (par o impar) y se verifica que cada operación preserva la paridad de .
Paridad de suma: Si la operación es para un entero fijo, la suma es invariante. Si además la suma inicial y la final difieren en paridad, la transformación es imposible.
Paridad de conteos: En problemas de tablero, contar el número de fichas de un cierto tipo módulo 2. Si las operaciones cambian ese conteo en 0 o 2 (siempre), la paridad se conserva.
Ejemplo de olimpiada (IbAm estilo): Se tienen monedas en fila, cada una cara () o cruz (). Una operación: elegir una moneda con al menos un a su izquierda, y cambiar esa por y el más cercano a su izquierda por (en esencia, intercambiar una con un adyacente hacia la izquierda). Demostrar que el número de inversiones ( antes de ) estrictamente disminuye con cada operación. Monovariante: número de pares con , moneda es y moneda es (número de inversiones). Cada operación intercambia una en posición con un en posición adyacente, reduciendo las inversiones en exactamente 1. Como , el proceso termina en la configuración (todos los primero).
Paridad de posición en tableros: En un tablero de ajedrez (casillas negras y blancas), la paridad de la posición de una ficha (¿está en casilla negra o blanca?) es invariante bajo movimientos de dominó o de caballo si el movimiento siempre cambia el color (como el caballo de ajedrez). Si el movimiento siempre preserva el color, la paridad es un invariante que prohíbe llegar a ciertas posiciones.
Coloraciones como invariantes
La coloración es una técnica de invariante en la que se asignan colores (usualmente 2 o más) a las posiciones o elementos, de forma que las operaciones respetan la coloración. El invariante es entonces el multiconjunto de colores de los objetos (o alguna función de él).
Coloración de tablero: El ejemplo más clásico es la coloración en blanco y negro de un tablero de ajedrez. Si la operación consiste en mover una ficha a una casilla adyacente (horizontal o verticalmente), el color de la casilla cambia con cada movimiento. Si se quiere pasar de una casilla negra a otra negra en un número par de movimientos, la coloración no impone restricciones. Pero si se quiere pasar de negra a blanca en un número impar de movimientos, la coloración es un invariante que lo permite, y en un número par, lo prohíbe.
Coloración con más de 2 colores: Para problemas más complejos, se usa una coloración periódica con colores. Por ejemplo, colorear las casillas de un tablero con los residuos módulo 3 de : colores . Si la operación mueve en (caballo de ajedrez), el color cambia según el tipo de salto. Para que la operación sea imposible entre ciertas casillas, se necesita que los colores de las casillas inicial y final sean incompatibles bajo la coloración.
Ejemplo resuelto — problema de olimpiada: En un tablero (con divisible por 3), se quieren cubrir todas las casillas con piezas en forma de de 3 casillas (que cubren 3 casillas en : dos en una fila y una perpendicular). Demostrar que esto es imposible si no es divisible por 4... (adaptación). Coloración: Colorear el tablero con 3 colores: a la celda le asignamos el color . Cada pieza en L cubre 3 casillas; se verifica que cada pieza en L cubre exactamente una casilla de cada color . Luego si hay piezas, se cubren casillas de cada color. Como el tablero tiene casillas y de cada color, . Para que el número sea entero, , es decir . La coloración da la condición necesaria .
Coloración de grafos como invariante: En problemas de grafos, la coloración propia de un grafo con colores puede ser un invariante bajo ciertas operaciones (como contraer aristas). Si una operación preserva la -colorabilidad, el grafo resultante es -coloreable si y solo si el original lo es. Esto se usa en problemas de reconfiguraciones de grafos.
Dos problemas resueltos de olimpiada
Problema 1 (Cono Sur 2018, estilo): Se tienen enteros positivos en círculo, (con ). Una operación consiste en elegir dos elementos adyacentes y reemplazarlos por y . Demostrar que el proceso eventualmente se estabiliza (no hay más cambios posibles) y describir el estado final.
Solución al Problema 1: Monovariante: (suma de cuadrados). Calculamos cómo cambia bajo una operación sobre : los nuevos valores son y , y , mientras que era el aporte anterior. Luego aumenta en con cada operación... eso no acota el proceso. El monovariante correcto es o el máximo . Analicemos: si , cuando . El producto no es claramente monótono. El invariante más útil: el es invariante (pues ). El proceso termina cuando todos los elementos son iguales al mcd o... el estado estable es aquel donde para cada par adyacente la operación no cambia nada, es decir y (imposible) o los dos son iguales. En el estado estable, todos los elementos son iguales a , y el monovariante decrece o llega a .
Problema 2 (IbAm 2014, estilo): Se tiene un tablero y se colocan fichas en algunas casillas. Una operación: si tres casillas en línea (horizontal, vertical o diagonal) de 3 consecutivas están todas ocupadas, se puede vaciar la del medio y llenar las otras dos casillas adyacentes a esas tres en la misma línea (si existen). Demostrar que el número de fichas módulo 3 es invariante.
Solución al Problema 2: Asignamos a cada casilla el valor . El invariante candidato es .
Una operación en dirección horizontal sobre las casillas (todas ocupadas): se vacía y se llenan y (si existen). El cambio en es: . Los valores módulo 3: , , . La suma de los salientes es . La suma de los entrantes es . El cambio neto en es ... esto no es siempre 0, así que no es invariante. El invariante correcto en este tipo de problema es simplemente el número de fichas módulo 3: cada operación elimina 1 ficha del medio y agrega 2 fichas en los extremos (neto: ficha), o elimina 1 y agrega 0 (si los extremos no existen, neto: ). Modulo 3, los cambios son o , que no son . El número de fichas módulo 3 no es invariante en general; el enunciado exacto del problema determina cuál cantidad sí lo es.