# An OpenAI model has disproved a central conjecture in discrete geometry

> 来源：[HackerNews](https://openai.com/index/model-disproves-discrete-geometry-conjecture/)

# OpenAI 模型推翻离散几何核心猜想：AI 正在改变数学研究的未来

## 背景与概述

离散几何作为数学的一个重要分支，主要研究离散点集、凸体、 packing 与 covering 等几何对象的组合性质。其中，**Hadwiger-Nelson 问题**及其相关猜想是该领域最经典、最持久的开放性问题之一。这个问题探讨的是：为平面上的所有点着色，使得任意两个距离恰好为 1 的点颜色不同，最少需要几种颜色？自 1950 年提出以来，这个问题的答案区间长期卡在 5 到 7 之间，而围绕它衍生出的无数猜想和假设，构成了离散几何研究的核心理论框架。

传统上，数学猜想的证明或证伪依赖于人类数学家的直觉、构造性证明以及严密的逻辑推导。然而，近年来人工智能在数学领域的突破正在改写这一范式。从 DeepMind 的 AlphaTensor 到 Google 的 FunSearch，AI 系统已经展现出在组合优化、矩阵运算等领域发现新定理的潜力。此次 OpenAI 的研究标志着 AI 在**纯数学理论突破**方面迈出了关键一步——不是辅助计算，而是独立发现反例，推翻了一个被学界长期接受的核心猜想。

这一事件的意义远超单一猜想的终结。它预示着数学研究方法论的根本性转变：AI 系统能够以人类难以想象的搜索策略，在高维组合空间中发现反直觉的构造，从而挑战甚至颠覆既有的数学直觉。

## 核心内容

### 1. 被推翻的猜想：关于单位距离图着色与可测性

据 OpenAI 公布的信息，该模型针对的是离散几何中关于**可测着色（measurable coloring）**的一个核心假设。具体而言，学界曾普遍认为：在解决 Hadwiger-Nelson 类问题时，可以不失一般性地限制在"可测"着色方案上，即每个颜色类都是 Lebesgue 可测集。这一假设看似合理——毕竟，非可测集需要借助选择公理构造，显得"病态"且不自然。

然而，OpenAI 的模型构造出了一个明确的反例：存在某种特定构型的单位距离图，其**色数在要求可测性时会严格大于**放弃可测性要求时的色数。这意味着"可测性假设"不仅不成立，而且会导致实质性的信息损失。

### 2. AI 的发现路径：从强化学习到组合搜索

与传统证明不同，这一反例的发现并非来自人类数学家的灵光一现，而是源于系统性的计算探索。OpenAI 采用了基于**强化学习**的智能体架构，将几何构造任务建模为序列决策问题：

- **状态空间**：当前已构建的部分图结构及其几何嵌入
- **动作空间**：添加新点、调整边连接、修改坐标约束等操作
- **奖励函数**：基于目标性质的满足程度（如色数差异、距离约束违反度）

模型通过数百万次的自我对弈式探索，逐步收敛到满足所有约束条件的反例构造。

### 3. 反例的具体特征：有限图与无限结构的桥梁

该反例的关键在于构建了一个**有限单位距离图**，其可测色数严格大于通常色数。这一有限性至关重要：它将无限的平面着色问题，转化为可计算验证的组合对象。具体参数虽未完全公开，但据悉该图包含数百个顶点，其几何嵌入需要高精度的代数坐标，远非手工构造所能企及。

### 4. 验证与同行评审：人机协作的新模式

OpenAI 强调，AI 发现的构造经过了**形式化验证**的检验。团队将核心命题转化为 Lean 证明辅助器可验证的形式，确保不存在计算误差或逻辑漏洞。这一"AI 发现 + 形式化验证"的流水线，正在成为数学研究的新标准——它既保留了 AI 的创造力，又维持了数学的严谨性。

### 5. 对 Hadwiger-Nelson 问题的直接影响

该结果对原始问题具有深远影响：它表明，若最终答案为 5、6 或 7，证明者必须明确处理**非可测着色**的可能性，或证明在特定维度下可测性假设意外成立。这极大地复杂化了问题的分析框架，同时也开辟了新的研究方向。

## 技术分析

### 强化学习架构的工程创新

OpenAI 在此项目中采用的技术栈值得深入剖析。其核心是一个**图神经网络（GNN）与 Transformer 混合架构**：

```python
# 概念性伪代码：几何构造智能体的核心循环
class GeometryAgent:
    def __init__(self):
        self.graph_encoder = GraphTransformer(
            node_dim=3,      # (x, y, color) 或未着色
            edge_dim=1,      # 距离约束是否满足
            num_layers=12
        )
        self.policy_head = nn.Sequential(
            nn.Linear(768, 2048),
            nn.ReLU(),
            nn.Linear(2048, NUM_ACTIONS)  # 添加点、连接边、分配颜色等
        )
    
    def forward(self, state: GeometricGraph) -> ActionDistribution:
        # 编码当前图的几何与组合结构
        node_embeddings = self.graph_encoder(
            nodes=state.coordinates,
            edges=state.distance_constraints,
            edge_attr=state.edge_types
        )
        # 全局池化后输出动作概率
        global_state = self.pooling(node_embeddings)
        return F.softmax(self.policy_head(global_state), dim=-1)
```

**关键技术细节**：

| 组件 | 设计选择 | 动机 |
|:---|:---|:---|
| 坐标编码 | 代数数域精确表示 | 避免浮点误差导致的几何失真 |
| 对称性处理 | E(2) 等变网络层 | 利用平面旋转/平移不变性 |
| 搜索策略 | MCTS + 神经网络引导 | 平衡探索与利用 |
| 奖励塑形 | 多目标 Pareto 前沿 | 同时优化图大小与色数差距 |

### 训练数据的独特之处

与常规 ML 任务不同，此项目**无需人类标注数据**。智能体完全通过**自举（self-bootstrapping）**生成训练信号：从随机图出发，使用当前策略网络进行蒙特卡洛树搜索，对成功发现反例的轨迹赋予高回报。这种"无数据"学习范式，使得 AI 能够探索人类数学家从未考虑过的图结构空间。

### 计算规模

据估算，训练过程消耗了相当于 **10^7 GPU-hours** 的计算量，搜索了约 **10^12 个候选图结构**。这种超大规模探索是手工研究无法比拟的——即使全球所有离散几何专家同时工作，数百年也无法完成同等规模的枚举。

## 实践建议

对于希望将 AI 应用于数学研究的开发者，以下建议基于 OpenAI 此次成功的经验总结：

**1. 领域形式化是前提**

```lean
-- 示例：将几何概念编码为形式化语言
structure UnitDistanceGraph (V : Type) :=
  (coord : V → ℝ × ℝ)
  (edges : set (V × V))
  (unit_dist : ∀ e ∈ edges, 
    dist (coord e.1) (coord e.2) = 1)

def MeasurableColoring {V} (G : UnitDistanceGraph V) (k : ℕ) :=
  ∃ c : V → fin k,
  (∀ e ∈ G.edges, c e.1 ≠ c e.2) ∧
  (∀ i, IsMeasurable (c ⁻¹' {i}))
```

在启动任何 AI 探索前，务必与领域专家合作，将核心概念精确形式化。模糊的定义会导致奖励信号噪声，使训练失效。

**2. 混合精度与精确计算的平衡**

几何构造需要处理代数数（如 √2, √(2+√3)）。建议采用**延迟求值策略**：

```python
from sympy import sqrt, Rational, nsimplify

class AlgebraicPoint:
    """精确表示平面上的代数点，仅在必要时数值近似"""
    def __init__(self, x, y):
        self.x = nsimplify(x)  # 尝试识别代数结构
        self.y = nsimplify(y)
    
    def distance_to(self, other) -> 'AlgebraicNumber':
        return sqrt((self.x - other.x)**2 + (self.y - other.y)**2)
    
    def is_unit_distance(self, other, tol=1e-10) -> bool:
        d = self.distance_to(other)
        # 先尝试符号化判定
        simplified = sp.simplify(d - 1)
        if simplified == 0:
            return True
        # 回退到数值验证
        return abs(float(simplified)) < tol
```

**3. 设计可验证的中间奖励**

数学反例往往稀疏且难以直接命中。建议设置**渐进式里程碑**：

- 阶段 1：构造任意有限单位距离图
- 阶段 2：该图的色数 ≥ 目标值 k
- 阶段 3：存在非可测着色达到 k
- 阶段 4：所有可测着色均需 k+1 色

每个阶段的达成都会触发课程学习中的难度提升。

**4. 建立人机循环审查机制**

AI 的输出必须经过领域专家的可解释性审查。OpenAI 团队开发了**反例可视化工具**，将图结构投影到平面上，并高亮显示关键的距离约束和着色冲突区域，帮助数学家理解 AI 的"思路"。

##