Resumen Técnico: Rompiendo las Simetrías de Objetos Indistinguibles
Planteamiento del Problema
En la programación con restricciones y paradigmas relacionados, los problemas suelen involucrar objetos indistinguibles: entidades que son equivalentes bajo intercambio, como máquinas idénticas en la programación de tareas o golfistas en el Problema del Social Golfer. Cuando estos objetos se modelan utilizando tipos etiquetados estándar (por ejemplo, enteros), el solver debe explorar un espacio de búsqueda inflado por simetrías, donde la permutación de las etiquetas de los objetos indistinguibles produce soluciones equivalentes.
Si bien la ruptura de simetrías es un tema ampliamente estudiado en satisfacción de restricciones (CSP), satisfacción de Booleanos (SAT) y programación entera mixta (MIP), los métodos existentes suelen tener dificultades con los objetos indistinguibles cuando estos aparecen dentro de estructuras de datos complejas y anidadas (por ejemplo, matrices indexadas por objetos indistinguibles, conjuntos de tuplas o funciones). Los lenguajes de modelado de alto nivel como Essence introducen "tipos sin nombre" para representar abstractamente estos objetos indistinguibles. Sin embargo, implementaciones anteriores de la herramienta de reescritura automática de modelos Conjure ignoraron las simetrías inherentes a los tipos sin nombre, transformándolos simplemente en enteros y fallando al romper las simetrías resultantes. Este artículo aborda el desafío de definir y romper las simetrías para los tipos sin nombre dentro de tipos compuestos arbitrariamente anidados.
Metodología
Los autores proponen un marco para definir simetrías en tipos sin nombre y romperlas mediante restricciones de líder-léxico (lex-leader). La metodología avanza a través de varias etapas teóricas y de implementación clave:
1. Definición Formal de Tipos Sin Nombre y Simetrías
El artículo define un tipo sin nombre T de tamaño n como un conjunto de valores {1T,2T,…,nT} equipado con el grupo simétrico $Sym(T)$ actuando sobre estos valores. A diferencia de los tipos estándar, los valores de un tipo sin nombre no tienen etiqueta y son intercambiables; las únicas operaciones permitidas son la igualdad y la desigualdad.
Para manejar tipos compuestos (matrices, multiconjuntos, tuplas, funciones, etc.) construidos a partir de tipos sin nombre, los autores definen una acción de grupo de forma recursiva:
- Valores atómicos: Si un valor es del tipo T, es permutado por la acción del grupo. Si es de un tipo atómico diferente, permanece fijo.
- Estructuras compuestas:
- Matrices: La acción permuta tanto los índices como los valores. Crucialmente, para una matriz m indexada por I, la imagen mg en el índice i se define como (mg−1)ig. El uso del preimágen (g−1) para los índices es necesario para asegurar que la acción forme un homomorfismo de grupo válido.
- Multiconjuntos y Tuplas: La acción se aplica elemento a elemento.
- Funciones/Relaciones: Tratadas como conjuntos de tuplas, la acción se aplica tanto a los elementos del dominio como del codominio.
Para múltiples tipos distintos sin nombre T1,…,Tm, el grupo de simetría es el producto directo Sym(T1)×⋯×Sym(Tm), que actúa sobre el espacio de soluciones conjunto.
2. Ordenación Total para la Ruptura de Simetría
Para romper las simetrías de manera completa, el artículo emplea restricciones de líder-léxico, que imponen que una solución X debe ser lexicográficamente menor o igual a su imagen bajo cualquier simetría g (es decir, X⪯Xg). Esto requiere una ordenación total (⪯T) sobre los valores de cada tipo T.
Los autores definen una ordenación total recursiva para todos los tipos de Essence que no están construidos a partir de tipos sin nombre:
- Tipos atómicos: Ordenación entera estándar, ordenación booleana ($false < true$) y ordenación de enumeración.
- Tipos compuestos:
- Matrices/Tuplas: Ordenación lexicográfica basada en la ordenación del tipo interno.
- Multiconjuntos: Una ordenación específica basada en el elemento mínimo y la comparación recursiva del multiconjunto restante (similar a la ordenación de "representación de ocurrencia" encontrada en la literatura). Esta ordenación se elige porque se alinea con la ordenación lexicográfica de una representación natural de los multiconjuntos.
3. Implementación en Conjure
La metodología se implementa en Conjure, la herramienta de reescritura automática de modelos para Essence. Características clave de la implementación incluyen:
- Nuevo tipo
permutation: Conjure introduce un constructor de dominio permutation para enteros, tipos enumerados y tipos sin nombre. Las permutaciones se almacenan como funciones biyectivas (matrices) junto con sus inversas para optimizar la aplicación de las restricciones de ruptura de simetría.
- Enteros Etiquetados (Tagged Integers): Durante el refinamiento, los tipos sin nombre se convierten en enteros pero retienen una "etiqueta" que indica su tipo original. Esto asegura que las permutaciones se apliquen correctamente al conjunto de valores correcto a través de diferentes variables de decisión.
- Generación de Restricciones: La herramienta genera restricciones de líder-léxico de la forma X⪯transform(g,X) para un subconjunto elegido del grupo de simetría G.
- Ruptura Completa: Utiliza el grupo simétrico completo (o el producto directo del mismo).
- Ruptura Parcial/Sólida (Sound): Utiliza subconjuntos de permutaciones (por ejemplo, solo intercambios adyacentes o todos los pares) para equilibrar el costo de generación de restricciones con la velocidad de resolución.
- Refinamiento: Las restricciones de ordenación de alto nivel se refinan recursivamente en restricciones concretas sobre tipos atómicos (enteros) y comparaciones lexicográficas, utilizando reglas de simplificación para reducir la redundancia.
Contribuciones Clave
- Semántica Formal para Objetos Indistinguibles: El artículo proporciona una definición recursiva rigurosa de cómo las simetrías en los tipos sin nombre inducen simetrías en tipos compuestos arbitrariamente anidados (matrices, funciones, conjuntos, etc.), resolviendo ambigüedades en cómo las permutaciones actúan sobre los índices frente a los valores.
- Marco General de Ruptura de Simetría: Extiende el método de líder-léxico para manejar tipos sin nombre dentro de estructuras de datos complejas, ofreciendo un enfoque general aplicable a cualquier lenguaje de modelado que soporte tipos abstractos.
- Implementación en Essence/Conjure: Los autores proporcionan una implementación completa en Conjure, introduciendo nuevos tipos (
permutation) y operadores (image, transform) para manejar estas simetrías automáticamente.
- Flexibilidad en la Ruptura de Simetría: El marco soporta un espectro de estrategias de ruptura de simetría, desde la ruptura completa (garantizando exactamente una solución por clase de equivalencia) hasta la ruptura sólida pero incompleta (usando subconjuntos de permutaciones para una resolución más rápida).
- Derivación de Métodos Conocidos: El artículo demuestra que las técnicas establecidas, como el método "double-lex" para matrices indexadas por dos tipos sin nombre, surgen naturalmente de su marco general.
Resultados y Casos de Estudio
Los autores validan su enfoque a través de varios casos de estudio que involucran tipos sin nombre en diversas configuraciones (resumidos en la Tabla 1 del artículo):
- Problema del Social Golfer: Demuestra el manejo de múltiples tipos sin nombre (golfistas, semanas, grupos) en una matriz.
- Problema de Diseño de Plantillas (Template Design): Ilustra la necesidad de una ruptura de simetría consistente a través de múltiples variables de decisión que comparten el mismo índice de tipo sin nombre.
- Problema de Yang-Baxter Teórico-Conjuntista: Un caso complejo donde un tipo sin nombre sirve tanto de índice como de elemento de una matriz, requiriendo permutaciones simultáneas de filas, columnas y valores.
- Otros Problemas: Incluye Diseños de Bloques Incompletos Balanceados, Arreglos de Cobertura, Configuración de Rack, Semigrupos y Programación de Torneos Deportivos.
Verificación:
- Los modelos resultantes fueron inspeccionados manualmente para verificar su corrección.
- Para instancias pequeñas de los problemas de Yang-Baxter y Semigrupos, el número de soluciones encontradas coincidió con la literatura existente, confirmando que la ruptura de simetría fue correcta y no eliminó soluciones válidas.
- El artículo señala que la ruptura de simetría completa para ciertos tipos de matrices (por ejemplo, T×T) es teóricamente tan difícil como el problema de Isomorfismo de Grafos, lo que explica por qué el número de restricciones puede ser grande.
Significado y Reivindicaciones
El artículo afirma proporcionar el primer método sistemático para romper automáticamente las simetrías derivadas de objetos indistinguibles en lenguajes de modelado de alto nivel cuando estos objetos están embebidos en tipos complejos y anidados.
- Automatización: Elimina la necesidad de experiencia manual en modelado para romper simetrías en problemas que involucran tipos sin nombre, una tarea que anteriormente requería un esfuerzo significativo y era propensa a errores.
- Generalidad: Al definir los tipos en términos de matrices, multiconjuntos y tuplas, el enfoque es generalizable a otros paradigmas de resolución y lenguajes de modelado más allá de Essence.
- Fundamento Teórico: El trabajo sirve como trasfondo teórico para investigaciones futuras, estableciendo una semántica recursiva para las acciones de tipos y las acciones de grupo sobre estructuras compuestas.
- Modestia sobre el Rendimiento: Los autores reconocen que la ruptura de simetría completa puede ser computacionalmente costosa (prohibitivamente, en algunos casos) debido a la gran cantidad de restricciones requeridas (vinculado a la complejidad del isomorfismo de grafos). En consecuencia, enfatizan el valor de su marco al ofrecer opciones de ruptura de simetría parcial, permitiendo a los usuarios elegir entre la velocidad de resolución y la completitud de la eliminación de simetrías.
El artículo concluye identificando trabajos futuros, incluyendo la investigación de ordenaciones totales específicas de la representación para mejorar la eficiencia y la exploración de la ruptura de simetría para grupos de permutación no simétricos (por ejemplo, simetrías de tablero de ajedrez).