Résumé technique : Briser les symétries d'objets indistinguables
Énoncé du problème
Dans la programmation par contraintes et les paradigmes connexes, les problèmes impliquent souvent des objets indistinguables — des entités équivalentes par permutation, telles que des machines identiques dans la planification ou des golfeurs dans le problème du Social Golfer. Lorsque ces objets sont modélisés à l'aide de types étiquetés standards (par exemple, des entiers), le solveur doit explorer un espace de recherche gonflé par les symétries, où la permutation des étiquettes d'objets indistinguables produit des solutions équivalentes.
Bien que la rupture de symétrie soit un sujet bien étudié en satisfaction de contraintes (CSP), en satisfaisabilité booléenne (SAT) et en programmation linéaire en nombres entiers (MIP), les méthodes existantes peinent souvent avec les objets indistinguables lorsqu'ils apparaissent au sein de structures de données complexes et imbriquées (par exemple, des matrices indexées par des objets indistinguables, des ensembles de tuples, ou des fonctions). Les langages de modélisation de haut niveau comme Essence introduisent des « types sans nom » pour représenter de manière abstraite ces objets indistinguables. Cependant, les implémentations précédentes de l'outil de réécriture automatique de modèles Conjure ignoraient les symétries inhérentes aux types sans nom, les transformant simplement en entiers et échouant ainsi à briser les symétries qui en résultent. Cet article traite du défi consistant à définir et à briser les symétries pour les types sans nom au sein de types composés arbitrairement imbriqués.
Méthodologie
Les auteurs proposent un cadre pour définir des symétries sur les types sans nom et les briser en utilisant des contraintes de lex-leader (leader lexicographique). La méthodologie procède par plusieurs étapes théoriques et de mise en œuvre clés :
1. Définition formelle des types sans nom et des symétries
L'article définit un type sans nom T de taille n comme un ensemble de valeurs {1T,2T,…,nT} équipé du groupe symétrique $Sym(T)$ agissant sur ces valeurs. Contrairement aux types standards, les valeurs d'un type sans nom ne sont pas étiquetées et sont interchangeables ; les seules opérations autorisées sont l'égalité et l'inégalité.
Pour gérer les types composés (matrices, multisets, tuples, fonctions, etc.) construits à partir de types sans nom, les auteurs définissent une action de groupe de manière récursive :
- Valeurs atomiques : Si une valeur est de type T, elle est permutée par l'action de groupe. Si elle est d'un autre type atomique, elle reste fixe.
- Structures composées :
- Matrices : L'action permute à la fois les indices et les valeurs. Crucialement, pour une matrice m indexée par I, l'image mg à l'indice i est définie comme (mg−1)ig. L'utilisation de l'image réciproque (g−1) pour les indices est nécessaire pour garantir que l'action forme un homomorphisme de groupe valide.
- Multisets et Tuples : L'action s'applique élément par élément.
- Fonctions/Relations : Traitées comme des ensembles de tuples, l'action s'applique à la fois aux éléments du domaine et du codomaine.
Pour plusieurs types sans nom distincts T1,…,Tm, le groupe de symétrie est le produit direct Sym(T1)×⋯×Sym(Tm), agissant sur l'espace de solution conjoint.
2. Ordonnancement total pour la rupture de symétrie
Pour briser complètement les symétries, l'article emploie des contraintes de lex-leader, qui imposent qu'une solution X doit être lexicographiquement plus petite ou égale à son image sous une symétrie g (c'est-à-dire X⪯Xg). Cela nécessite un ordonnancement total (⪯T) sur les valeurs de chaque type T.
Les auteurs définissent un ordonnancement total récursif pour tous les types Essence qui ne sont pas construits à partir de types sans nom :
- Types atomiques : Ordonnancement standard des entiers, ordre booléen ($false < true$), et ordre d'énumération.
- Types composés :
- Matrices/Tuples : Ordonnancement lexicographique basé sur l'ordre du type interne.
- Multisets : Un ordonnancement spécifique basé sur l'élément minimum et la comparaison récursive du multiset restant (similaire à l'ordre de « représentation par occurrence » trouvé dans la littérature). Cet ordre est choisi car il s'aligne sur l'ordonnancement lexicographique d'une représentation naturelle des multisets.
3. Implémentation dans Conjure
La méthodologie est implémentée dans Conjure, l'outil de réécriture automatique de modèles pour Essence. Les principales caractéristiques de l'implémentation incluent :
- Nouveau type
permutation : Conjure introduit un constructeur de domaine permutation pour les entiers, les types énumérés et les types sans nom. Les permutations sont stockées comme des fonctions bijectives (matrices) accompagnées de leurs inverses pour optimiser l'application des contraintes de rupture de symétrie.
- Entiers marqués (Tagged Integers) : Lors du raffinement, les types sans nom sont convertis en entiers mais conservent un « tag » indiquant leur type d'origine. Cela garantit que les permutations sont appliquées correctement au bon ensemble de valeurs à travers les différentes variables de décision.
- Génération de contraintes : L'outil génère des contraintes de lex-leader de la forme X⪯transform(g,X) pour un sous-ensemble choisi du groupe de symétrie G.
- Rupture complète : Utilise le groupe symétrique complet (ou le produit direct de celui-ci).
- Rupture partielle/valide (Sound) : Utilise des sous-ensembles de permutations (par exemple, uniquement des échanges adjacents ou tous les couples) pour échanger le coût de génération de contraintes contre la vitesse de résolution.
- Raffinement : Les contraintes d'ordonnancement de haut niveau sont raffinées de manière récursive en contraintes concrètes sur les types atomiques (entiers) et les comparaisons lexicographiques, en utilisant des règles de simplification pour réduire la redondance.
Contributions clés
- Sémantique formelle des objets indistinguables : L'article fournit une définition récursive rigoureuse de la manière dont les symétries sur les types sans nom induisent des symétries sur les types composés arbitrairement imbriqués (matrices, fonctions, ensembles, etc.), résolvant les ambiguïtés sur la façon dont les permutations agissent sur les indices par rapport aux valeurs.
- Cadre général de rupture de symétrie : Il étend la méthode du lex-leader pour gérer les types sans nom au sein de structures de données complexes, offrant une approche générale applicable à tout langage de modélisation supportant les types abstraits.
- Implémentation dans Essence/Conjure : Les auteurs fournissent une implémentation complète dans Conjure, introduisant de nouveaux types (
permutation) et opérateurs (image, transform) pour gérer ces symétries automatiquement.
- Flexibilité de la rupture de symétrie : Le cadre prend en charge un spectre de stratégies de rupture de symétrie, allant de la rupture complète (garantissant exactement une solution par classe d'équivalence) à la rupture partielle/valide (utilisant des sous-ensembles de permutations pour une résolution plus rapide).
- Dérivation de méthodes connues : L'article démontre que les techniques établies, telles que la méthode « double-lex » pour les matrices indexées par deux types sans nom, découlent naturellement de leur cadre général.
Résultats et études de cas
Les auteurs valident leur approche à travers plusieurs études de cas impliquant des types sans nom dans diverses configurations (résumées dans le Tableau 1 de l'article) :
- Problème du Social Golfer : Démontre la gestion de plusieurs types sans nom (golfeurs, semaines, groupes) dans une matrice.
- Problème de conception de gabarits (Template Design) : Illustre la nécessité d'une rupture de symétrie cohérente à travers plusieurs variables de décision partageant le même indice de type sans nom.
- Problème de Yang-Baxter théorique de type ensemble : Un cas complexe où un type sans nom sert à la fois d'indice et d'élément d'une matrice, nécessitant des permutations simultanées des lignes, des colonnes et des valeurs.
- Autres problèmes : Inclut les plans d'équilibre incomplets (BIBD), les réseaux de couverture (Covering Arrays), les configurations de Rack, les semi-groupes et la planification de tournois sportifs.
Vérification :
- Les modèles résultants ont été inspectés manuellement pour vérifier leur correction.
- Pour les petites instances des problèmes Yang-Baxter et des semi-groupes, le nombre de solutions trouvées correspondait à la littérature existante, confirmant que la rupture de symétrie était correcte et n'avait pas éliminé de solutions valides.
- L'article note que la rupture de symétrie complète pour certains types de matrices (par exemple, T×T) est théoriquement aussi difficile que le problème de l'isomorphisme de graphes, expliquant pourquoi le nombre de contraintes peut être élevé.
Signification et affirmations
L'article affirme fournir la première méthode systématique pour briser automatiquement les symétries issues d'objets indistinguables dans les langages de modélisation de haut niveau lorsque ces objets sont intégrés dans des types composés complexes et imbriqués.
- Automatisation : Elle élimine le besoin d'une expertise de modélisation manuelle pour briser les symétries dans les problèmes impliquant des types sans nom, une tâche qui nécessitait auparavant des efforts considérables et était sujette aux erreurs.
- Généralité : En définissant les types en termes de matrices, de multisets et de tuples, l'approche est généralisable à d'autres paradigmes de résolution et langages de modélisation au-delà d'Essence.
- Fondation théorique : Ce travail sert de base théorique pour des recherches futures, établissant une sémantique récursive pour les actions de type et les actions de groupe sur les structures composées.
- Modestie sur la performance : Les auteurs reconnaissent que la rupture de symétrie complète peut être coûteuse (prohibitive dans certains cas) en raison du nombre massif de contraintes requises (lié à la complexité de l'isomorphisme de graphes). Par conséquent, ils soulignent la valeur de leur cadre en offrant des options de rupture de symétrie partielle, permettant aux utilisateurs de choisir entre la vitesse de résolution et l'exhaustivité de l'élimination des symétries.
L'article conclut en identifiant des travaux futurs, notamment l'étude d'ordonnancements totaux spécifiques à la représentation pour améliorer l'efficacité et l'exploration de la rupture de symétrie pour les groupes de permutations non symétriques (par exemple, les symétries d'échiquier).