技术摘要:打破不可区分对象的对称性
问题陈述
在约束编程及相关范式中,问题经常涉及不可区分对象(indistinguishable objects)——即在交换下等价的实体,例如调度问题中的相同机器或社交高尔夫问题(Social Golfer Problem)中的高尔夫球手。当这些对象使用标准标记类型(如整数)进行建模时,求解器必须探索被对称性膨胀的搜索空间,其中置换不可区分对象的标签会产生等效解。
虽然对称性破缺在约束满足问题(CSP)、布尔可满足性问题(SAT)和混合整数规划(MIP)中已有深入研究,但现有方法在处理出现在复杂嵌套数据结构(如由不可区分对象索引的矩阵、元组集合或函数)中的不可区分对象时仍表现挣扎。高级建模语言 Essence 通过引入“无名类型”(unnamed types)来抽象表示这些不可区分对象。然而,之前的自动模型重写工具 Conjure 的实现忽略了无名类型中固有的对称性,仅将其转化为整数,从而未能打破由此产生的对称性。本文旨在解决如何在任意嵌套复合类型中定义并打破无名类型的对称性。
方法论
作者提出了一个框架,用于定义无名类型的对称性并使用字典序领导者约束(lex-leader constraints)来打破它们。该方法通过以下关键理论和实现步骤进行:
1. 无名类型与对称性的形式化定义
论文将一个大小为 n 的无名类型 T 定义为一个包含值 {1T,2T,…,nT} 的集合,并配备作用于这些值的对称群 $Sym(T)$。与标准类型不同,无名类型的值是无标签且可互换的;允许的操作仅限于相等和不等。
为了处理由无名类型构建的复合类型(矩阵、多重集、元组、函数等),作者递归地定义了一个群作用(group action):
- 原子值: 如果一个值属于类型 T,则它受群作用置换。如果它是另一种原子类型,则保持不变。
- 复合结构:
- 矩阵: 该作用同时置换索引和值。至关重要的是,对于一个由 I 索引的矩阵 m,其在索引 i 处的像 mg 定义为 (mg−1)ig。使用索引的逆映射(g−1)是为了确保该作用构成有效的群同态。
- 多重集与元组: 该作用按元素逐一应用。
- 函数/关系: 被视为元组的集合,作用应用于定义域和陪域的元素。
对于多个不同的无名类型 T1,…,Tm,其对称群是直积 Sym(T1)×⋯×Sym(Tm),作用于联合解空间。
2. 用于对称性破缺的全序关系
为了完全打破对称性,论文采用了字典序领导者约束,该约束强制要求解 X 必须在字典序上小于或等于其在任何对称性 g 下的像(即 X⪯Xg)。这要求为每个类型 T 的值定义一个全序关系(⪯T)。
作者为所有非由无名类型构建的 Essence 类型定义了递归全序关系:
- 原子类型: 标准整数排序、布尔排序($false < true$)以及枚举顺序。
- 复合类型:
- 矩阵/元组: 基于内层类型的排序进行字典序排序。
- 多重集: 一种基于最小元素和剩余多重集递归比较的特定排序(类似于文献中发现的“出现表示法”排序)。选择这种排序是因为它与多重集的自然表示的字典序对齐。
3. 在 Conjure 中的实现
该方法在 Conjure 中实现,Conjure 是 Essence 的自动模型重写工具。关键实现特性包括:
- 新
permutation 类型: Conjure 为整数、枚举类型和无名类型引入了 permutation 域构造器。置换被存储为带有其逆映射的双射函数(矩阵),以优化对称性破项约束的应用。
- 标记整数: 在细化过程中,无名类型被转换为整数,但保留一个指示其原始类型的“标签”。这确保了置换能正确应用于不同决策变量中正确集合的对应值。
- 约束生成: 工具生成形式为 X⪯transform(g,X) 的字典序领导者约束,其中 g 为选定的对称群 G 的子集。
- 完全破缺(Complete Breaking): 使用完整的对称群(或其直积)。
- 部分/可靠破缺(Partial/Sound Breaking): 使用置换的子集(例如仅相邻交换或所有对交换),以在求解速度和生成的约束成本之间进行权衡。
- *细化(Refinement): 高层排序约束被递归地细化为基于原子类型(整数)的具象约束和字典序比较,并利用简化规则来减少冗余。
主要贡献
- 无名类型的形式语义: 论文提供了一个严谨的递归定义,说明了无名类型的对称性如何诱导嵌套复合类型(矩阵、函数、集合等)的对称性,解决了关于置换如何作用于索引与值的歧义。
- 通用对称性破缺框架: 它将字典序领导者方法扩展到处理复杂数据结构中的无名类型,提供了一种适用于任何支持抽象类型的建模语言的通用方法。
- 在 Essence/Conjure 中的实现: 作者在 Conjure 中实现了该方法,引入了新的类型(
permutation)和操作符(image, transform)来自动处理这些对称性。
- 对称性破缺的灵活性: 该框架支持多种对称性破缺策略,从完全破缺(保证每个等价类恰好有一个解)到可靠但不完全的破缺(使用置换子集以提高求解速度)。
- 已知方法的推导: 论文展示了已建立的技术(如针对两个无名类型索引的矩阵的“双字典序”方法)是如何自然地从其通用框架中产生的。
结果与案例研究
作者通过涉及各种配置下含有无名类型的多个案例研究验证了其方法(总结于论文表 1 中):
- 社交高尔夫问题(Social Golfer Problem): 展示了在矩阵中处理多个无名类型(高尔夫球手、周、小组)的情况。
- 模板设计问题(Template Design Problem): 说明了在共享相同无名类型索引的多个决策变量之间保持一致对称性破缺的必要性。
- 集合论杨-巴克塞勒问题(Set-theoretic Yang-Baxter Problem): 一个复杂的案例,其中无名类型既作为矩阵的索引又作为元素,需要同时进行行、列和值的置换。
- 其他问题: 包括平衡不完全区组设计、覆盖阵列、架配置(Rack Configuration)、半群以及体育赛事调度。
验证:
- 对生成的模型进行了人工检查以确保正确性。
- 对于杨-巴克瑟勒和半群问题的较小实例,发现的解数量与现有文献一致,证实了对称性破缺是正确的,且没有消除有效解。
- 论文指出,对于某些矩阵类型(例如 T×T),完全对称性破缺在理论上与图同构问题一样难,这解释了为什么约束数量可能非常庞大。
重要性与主张
该论文声称提供了第一个系统化的方法,用于自动打破在高级建模语言中由于嵌入复杂嵌套类型而产生的由不可区分对象引起的对称性。
- 自动化: 它消除了在涉及无名类型的建模中手动破缺对称性的需求,此前这项工作需要大量的专业知识且极易出错。
- 通用性: 通过将类型定义为矩阵、多重集和元组,该方法可以推广到超越 Essence 的其他求解范式和建模语言。
- 理论基础: 这项工作为未来的研究提供了理论背景,建立了类型作用和复合结构上群作用的递归语义。
- 对性能的审慎态度: 作者承认,完全对称性破缺在某些情况下在计算上可能非常昂贵(由于约束数量巨大,这与图同构的复杂度相关)。因此,他们强调其框架提供部分对称性破缺选项的价值,允许用户在求解速度和对称性消除的完备性之间进行选择。
论文最后确定了未来的工作方向,包括研究特定表示的完全序以提高效率,以及探索针对非对称置换群(如国际象棋棋盘对称性)的对称性破缺。