Technisches Resümee: Das Brechen von Symmetrien ununterscheidbarer Objekte
Problemstellung
In der Constraint-Programmierung und verwandten Paradigmen beinhalten Probleme oft ununterscheidbare Objekte – Entitäten, die unter Vertauschung äquivalent sind, wie etwa identische Maschinen in der Terminplanung oder Golfer im Social-Golfer-Problem. Wenn diese Objekte mit Standard-gelabelten Typen (z. B. Ganzzahlen) modelliert werden, muss der Solver einen durch Symmetrien aufgeblähten Suchraum explorieren, in dem die Permutation der Labels ununterscheidbarer Objekte äquivalente Lösungen liefert.
Obwohl das Brechen von Symmetrien ein gut untersuchtes Thema in der Constraint Satisfaction (CSP), im Boolean Satisfiability (SAT) und im Mixed-Integer Programming (MIP) ist, haben bestehende Methoden Schwierigkeiten mit ununterscheidbaren Objekten, wenn diese innerhalb komplexer, verschachtelter Datenstrukturen auftreten (z. B. Matrizen, die durch ununterscheidbare Objekte indiziert sind, Mengen von Tupeln oder Funktionen). Hochwertige Modellierungssprachen wie Essence führen „unbenannte Typen“ ein, um diese ununterscheidbaren Objekte abstrakt darzustellen. Frühere Implementierungen des automatischen Modell-Rewriting-Tools Conjure ignorierten jedoch die in unbenannten Typen inhärenten Symmetrien, indem sie diese einfach in Ganzzahlen transformierten und somit das Brechen der resultierenden Symmetrien versäumten. Dieses Paper adresset die Herausforderung, Symmetrien für unbenannte Typen innerhalb beliebig verschachtelter zusammengesetzter Typen zu definieren und zu brechen.
Methodik
Die Autoren schlagen ein Framework vor, um Symmetrien auf unbenannten Typen zu definieren und diese mittels Lex-Leader-Constraints zu brechen. Die Methodik umfasst mehrere theoretische und implementierungstechnische Schritte:
1. Formale Definition von unbenannten Typen und Symmetrien
Das Paper definiert einen unbenannten Typ T der Größe n als eine Menge von Werten {1T,2T,…,nT}, die mit der symmetrischen Gruppe $Sym(T)$ ausgestattet ist, welche auf diesen Werten operiert. Im Gegensatz zu Standardtypen sind die Werte eines unbenannten Typs ungelabelt und austauschbar; die einzigen erlaubten Operationen sind Gleichheit und Ungleichheit.
Um zusammengesetzte Typen (Matrizen, Multimengen, Tupel, Funktionen usw.) zu handhaben, die aus unbenannten Typen konstruiert sind, definieren die Autoren eine Gruppenaktion rekursiv:
- Atomare Werte: Wenn ein Wert vom Typ T ist, wird er durch die Gruppenaktion permutiert. Wenn es sich um einen anderen atomaren Typ handelt, bleibt er fixiert.
- Zusammengesetzte Strukturen:
- Matrizen: Die Aktion permutiert sowohl die Indizes als auch die Werte. Entscheidend ist, dass für eine Matrix m, die durch I indiziert ist, das Bild mg am Index i als (mg−1)ig definiert ist. Die Verwendung des Präbilds (g−1) für Indizes ist notwendig, um sicherzustellen, dass die Aktion einen gültigen Gruppenhomomorphismus bildet.
- Multimengen und Tupel: Die Aktion erfolgt elementweise.
- Funktionen/Relationen: Diese werden als Mengen von Tupeln behandelt; die Aktion findet sowohl auf den Domänen- als auch auf den Kodomänen-Elementen Anwendung.
Für mehrere verschiedene unbenannte Typen T1,…,Tm ist die Symmetriegruppe das Direktprodukt Sym(T1)×⋯×Sym(Tm), das auf dem gemeinsamen Lösungsraum operiert.
2. Totale Ordnung für das Symmetriebrechen
Um Symmetrien vollständig zu brechen, verwendet das Paper Lex-Leader-Constraints, die erzwingen, dass eine Lösung X lexicographisch kleiner oder gleich ihrem Bild unter einer Symmetrie g sein muss (d. h. X⪯Xg). Dies erfordert eine totale Ordnung (⪯T) auf den Werten jedes Typs T.
Die Autoren definieren eine rekursive totale Ordnung für alle Essence-Typen, die nicht aus unbenannten Typen konstruiert sind:
- Atomare Typen: Standardmäßige Ganzzahl-Ordnung, Boolean-Ordnung ($false < true$) und Enumerations-Ordnung.
- Zusammengesetzte Typen:
- Matrizen/Tupel: Lexicographische Ordnung basierend auf der Ordnung des inneren Typs.
- Multimengen: Eine spezifische Ordnung basierend auf dem Minimum-Element und dem rekursiven Vergleich der verbleibenden Multimenge (ähnlich der „Occurrence Representation“-Ordnung in der Literatur). Diese Ordnung wurde gewählt, weil sie mit der lexicographischen Ordnung einer natürlichen Repräsentation von Multimengen übereinstimmt.
3. Implementierung in Conjure
Die Methodik wird in Conjure implementiert, dem automatischen Modell-Rewriting-Tool für Essence. Wesentliche Implementierungsmerkmale sind:
- Neuer
permutation-Typ: Conjure führt einen permutation-Domänenkonstruktor für Ganzzahlen, enumerierte Typen und unbenannte Typen ein. Permutationen werden als bijektive Funktionen (Matrizen) zusammen mit ihren Inversen gespeichert, um die Anwendung von Symmetriebrechen-Constraints zu optimieren.
- Tagged Integers: Während der Verfeinerung werden unbenannte Typen in Ganzzahlen umgewandelt, behalten aber ein „Tag“, das ihren ursprünglichen Typ angibt. Dies stellt sicher, dass Permutationen korrekt auf die korrekten Mengen von Werten über verschiedene Entscheidungsvariablen hinweg angewendet werden.
- Constraint-Generierung: Das Tool generiert Lex-Leader-Constraints der Form X⪯transform(g,X) für eine gewählte Teilmenge der Symmetriegruppe G.
- Vollständiges Brechen: Verwendet die vollständige symmetrische Gruppe (oder deren Direktprodukt).
- Partielles/Soundes Brechen: Verwendet Teilmengen von Permutationen (z. B. nur benachbarte Vertauschungen oder alle Paare), um einen Kompromiss zwischen der Kosten der Constraint-Generierung und der Lösungsgeschwindigkeit einzugehen.
- Verfeinerung: Die hochgradigen Ordnungskonstraints werden rekursiv in konkrete Constraints über atomare Typen (Ganzzahlen) und lexicographische Vergleiche verfeinert, wobei Vereinfachungsregeln zur Reduktion von Redundanz genutzt werden.
Wesentliche Beiträge
- Formale Semantik für ununterscheidbare Objekte: Das Paper liefert eine rigorose rekursive Definition dafür, wie Symmetrien auf unbenannten Typen Symmetrien auf beliebig verschachtelten zusammengesetzten Typen (Matrizen, Funktionen, Mengen usw.) induzieren, und löst dabei Unklarheiten darüber, wie Permutationen auf Indizes versus Werte wirken.
- Allgemeines Framework zum Symmetriebrechen: Es erweitert die Lex-Leader-Methode auf unbenannte Typen innerhalb komplexer Datenstrukturen und bietet einen allgemeinen Ansatz, der für jede Modellierungssprache anwendbar ist, die abstrakte Typen unterstützt.
- Implementierung in Essence/Conjure: Die Autoren liefern eine vollständige Implementierung in Conjure, indem sie neue Typen (
permutation) und Operatoren (image, transform) einführen, um diese Symmetrien automatisch zu handhaben.
- Flexibilität beim Symmetriebrechen: Das Framework unterstützt ein Spektrum von Strategien zum Symmetriebrechen, von vollständigem Brechen (garantiert genau eine Lösung pro Äquivalenzklasse) bis hin zu soundem, aber unvollständigem Brechen (unter Verwendung von Teilmengen von Permutationen für schnelleres Lösen).
- Ableitung bekannter Methoden: Das Paper zeigt, dass etablierte Techniken, wie die „Double-Lex“-Methode für Matrizen, die durch zwei unbenannte Typen indiziert sind, natürlich aus ihrem allgemeinen Framework hervorgehen.
Ergebnisse und Fallstudien
Die Autoren validieren ihren Ansatz durch mehrere Fallstudien mit unbenannten Typen in verschiedenen Konfigurationen (zusammengefasst in Tabelle 1 des Papers):
- Social Golfer Problem: Demonstriert den Umgang mit mehreren unbenannten Typen (Golfer, Wochen, Gruppen) in einer Matrix.
- Template Design Problem: Illustriert die Notwendigkeit eines konsistenten Symmetriebrechens über mehrere Entscheidungsvariablen hinweg, die denselben unbenannten Typ-Index teilen.
- Set-theoretisches Yang-Baxter-Problem: Ein komplexer Fall, in dem ein unbenannter Typ sowohl als Index als auch als Element einer Matrix dient, was eine gleichzeitige Zeilen-, Spalten- und Wertepermutation erfordert.
- Andere Probleme: Beinhaltet Balanced Incomplete Block Designs, Covering Arrays, Rack Configuration, Semigroups und Sports Tournament Scheduling.
Verifizierung:
- Die resultierenden Modelle wurden manuell auf Korrektheit geprüft.
- Für kleine Instanzen der Yang-Baxter- und Semigroup-Probleme entsprach die Anzahl der gefundenen Lösungen der bestehenden Literatur, was bestätigt, dass das Symmetriebrechen korrekt war und keine gültigen Lösungen eliminiert hat.
- Das Paper merkt an, dass das vollständige Symmetriebrechen für bestimmte Matrizentypen (z. B. T×T) theoretisch so schwer ist wie das Graph-Isomorphismus-Problem, was die hohe Anzahl an benötigten Constraints erklärt.
Bedeutung und Behauptungen
Das Paper beansprucht, die erste systematische Methode für das automatische Brechen von Symmetrien, die durch ununterscheidbare Objekte entstehen, in Hochsprachen-Modellierungssprachen bereitzustellen, wenn diese Objekte in komplexen, verschachtelten Typen eingebettet sind.
- Automatisierung: Es eliminiert die Notwendigkeit manueller Modellierungsexpertise zum Brechen von Symmetrien in Problemen mit unbenannten Typen – eine Aufgabe, die zuvor erheblichen Aufwand erforderte und fehleranfällig war.
- Generalität: Durch die Definition von Typen in Bezug auf Matrizen, Multimengen und Tupel ist der Ansatz auf andere Lösungs-Paradigmen und Modellierungssprachen über Essence hinaus generalisierbar.
- Theoretische Grundlage: Die Arbeit dient als theoretischer Hintergrund für zukünftige Forschung und etabliert eine rekursive Semantik für Typ-Aktionen und Gruppenaktionen auf zusammengesetzten Strukturen.
- Bescheidenheit bezüglich der Performance: Die Autoren räumen ein, dass vollständiges Symmetriebrechen in bestimmten Fällen rechenintensiv (prohibitiv teuer) sein kann, da die Anzahl der Constraints mit der Komplexität des Graph-Isomorphismus verknüpft ist. Folglich betonen sie den Wert ihres Frameworks, indem sie Optionen für partielles Symmetriebrechen bieten, die es Nutzern ermöglichen, zwischen Lösungsgeschwindigkeit und der Vollständigkeit der Symmetrieeliminierung zu wählen.
Das Paper schließt mit dem Ausblick auf zukünftige Arbeiten, einschließlich der Untersuchung repräsentationsspezifischer totaler Ordnungen zur Effizienzsteigerung und der Erforschung des Symmetriebrechens für nicht-symmetrische Permutationsgruppen (z. B. Schachbrett-Symmetrien).