OpenAI 模型推翻离散几何 80 年核心猜想——单位距离问题的新突破

2026-05-20 35 预计阅读时间:1 分钟
来源:openai.com AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:11 分钟

2025 年,一个由 OpenAI 研究团队驱动的数学推理模型,给出了一个反例构造,直接推翻了离散几何中悬置 80 年的"单位距离问题"(Unit Distance Problem)的核心猜想。这不是 AI 在数学竞赛里刷榜,而是它对一个长期被认为"几乎成立"的猜想给出了否定回答——这件事的意义远超一次解题。

单位距离问题到底是什么

问题表述极其简单:在平面上放置 n 个点,最多能有多少对点之间的距离恰好等于 1?

设 U(n) 为这个最大值。直觉上,n 个点之间最多有 n(n-1)/2 对,但距离恰好为 1 的约束极强。几十年来,离散几何学界普遍相信 U(n) 的增长不会太快——核心猜想认为 U(n) = O(n^{1 + c/\log\log n}),甚至更乐观地猜测 U(n) ≤ n · C^{log\log n},即"几乎线性"。

这个猜想之所以重要,是因为它直接关联到 Erdős 的超图消去问题、图论中的 Turán 型极值问题,以及高维几何中的 incidence bound。如果 U(n) 可以比猜想增长得更快,一大批下游结论的上界都要重写。

AI 如何找到反例

传统路径是:数学家提出构造 → 手工验证 → 逐步优化。OpenAI 的模型走了不同的路——它在大量已知离散几何构造的训练数据基础上,通过形式化搜索与证明验证的闭环,自动生成了一组点集配置,使得该配置中单位距离对的数量超过了猜想所允许的上界。

关键步骤大致如下:

  1. 形式化目标:将猜想的上界公式转化为可检验的约束——"是否存在 n 和一组点集,使得 U(n) > f(n)"。
  2. 搜索构造空间:模型在参数化的点集族中进行搜索,尝试不同的排列模式(网格变形、圆弧叠加、递归嵌入等)。
  3. 自动验证:对每个候选构造,模型调用形式化验证工具(类似 Lean/Sympy 风格的符号计算),精确计算单位距离对数量,并与上界公式做比较。
  4. 反例确认:找到一个具体的 n 和对应点集,使得单位距离对数量严格大于猜想上界在该 n 处的值。

这不是"暴力枚举"——搜索空间远超枚举能力。模型利用了对几何结构的深层理解来缩小搜索范围,然后在缩小后的空间里做精确验证。

用代码亲手感受单位距离问题

理解这个问题的最好方式是自己动手算。下面这段 Python 代码可以生成点集、计算单位距离对数量,并可视化结果。你可以用它来复现经典构造,也可以尝试自己设计新的排列。

import numpy as np
import matplotlib.pyplot as plt
from itertools import combinations

def count_unit_distances(points, tolerance=1e-9):
    """计算点集中距离恰好为 1 的点对数量"""
    count = 0
    unit_pairs = []
    for i, j in combinations(range(len(points)), 2):
        dist = np.linalg.norm(points[i] - points[j])
        if abs(dist - 1.0) < tolerance:
            count += 1
            unit_pairs.append((i, j))
    return count, unit_pairs

def generate_grid_with_unit_edges(n_side):
    """经典构造:正方形网格,边长为 1,每条边就是一个单位距离"""
    points = []
    for i in range(n_side):
        for j in range(n_side):
            points.append(np.array([float(i), float(j)]))
    return np.array(points)

def generate_hexagonal_lattice(n_rings):
    """六角格构造:相邻点距离为 1,密度更高"""
    points = []
    for ring in range(n_rings + 1):
        for k in range(6 * ring):
            angle = k * np.pi / (3 * ring) if ring > 0 else 0
            if ring == 0:
                points.append(np.array([0.0, 0.0]))
            else:
                # 六角格的精确坐标
                sector = k // ring
                pos_in_sector = k % ring
                base_angle = sector * np.pi / 3
                r = ring
                x = r * np.cos(base_angle) + pos_in_sector * np.cos(base_angle + np.pi / 3)
                y = r * np.sin(base_angle) + pos_in_sector * np.sin(base_angle + np.pi / 3)
                points.append(np.array([x, y]))
    return np.array(points)

def visualize(points, unit_pairs, title="Unit Distance Configuration"):
    """可视化点集和单位距离连线"""
    fig, ax = plt.subplots(figsize=(8, 8))
    ax.scatter(points[:, 0], points[:, 1], s=30, zorder=3, color='black')
    for i, j in unit_pairs:
        ax.plot([points[i][0], points[j][0]],
                [points[i][1], points[j][1]],
                color='red', linewidth=0.8, alpha=0.6)
    ax.set_aspect('equal')
    ax.set_title(f"{title}\nn={len(points)}, unit pairs={len(unit_pairs)}")
    plt.tight_layout()
    plt.savefig("unit_distance.png", dpi=150)
    plt.show()

# --- 实验 1:正方形网格 ---
grid = generate_grid_with_unit_edges(5)  # 5×5 网格,25 个点
count, pairs = count_unit_distances(grid)
visualize(grid, pairs, "Square Grid (side=1)")

# --- 实验 2:六角格 ---
hex_pts = generate_hexagonal_lattice(3)  # 3 层六角格
count2, pairs2 = count_unit_distances(hex_pts)
visualize(hex_pts, pairs2, "Hexagonal Lattice")

# --- 打印统计 ---
for label, pts, c, p in [("Grid", grid, count, pairs),
                          ("Hex", hex_pts, count2, pairs2)]:
    n = len(pts)
    ratio = c / n
    print(f"{label}: n={n}, U(n)={c}, U(n)/n={ratio:.2f}")

运行后你会看到两种经典构造的单位距离密度。六角格的 U(n)/n 比值明显高于网格——这正是 Erdős 当年关注的方向。而 OpenAI 模型找到的反例构造,其密度进一步突破了猜想上界。

改造建议:试着修改 generate_hexagonal_lattice 中的角度参数,或者叠加两层不同旋转角度的格,观察单位距离对数量的变化。反例构造往往藏在"几乎对称但有微妙偏移"的配置里。

为什么这次突破值得关注

1. AI 给的是否定答案

过去 AI 在数学上的高光时刻多是"证明了一个定理"或"解决了一个开放问题"——答案本身是对的。这次不同:AI 证明了一个被广泛相信的猜想是错的。否定性结果对搜索策略的要求更高,因为你不是在找一个满足已知结构的解,而是在找结构之外的漏洞。

2. 形式化验证闭环是关键

模型不是"觉得"猜想有问题。它给出了一个具体构造,并通过符号计算精确验证了单位距离对的数量。这种"生成 + 验证"的闭环,才是 AI 数学从"启发式辅助"走向"可靠产出"的核心机制。

3. 下游影响不可忽视

单位距离问题的上界一旦被打破,依赖这个上界的极值几何结论都需要重新审视。这不是一个孤立问题——它是离散几何基础设施的一部分。

实践启示与风险清单

如果你正在关注 AI for Mathematics 的落地,有几件事值得现在就做:

  • 搭建形式化验证环境:无论是 Lean、Coq 还是 SymPy,让你的团队习惯"AI 生成 → 自动验证"的工作流。没有验证的 AI 数学输出,可信度为零。
  • 关注否定性搜索:不要只让 AI 证明你想成立的命题。刻意设计"找反例"的任务,往往能暴露隐藏的假设错误。
  • 理解构造空间:AI 的搜索效率取决于你对问题结构的形式化程度。把几何约束写成可计算的函数(如上面代码中的 count_unit_distances),是让模型有效工作的前提。

同时需要清醒认识的风险:

  • 反例的 n 可能极大:AI 找到的反例构造涉及的点数 n 可能远超手工可检查的范围,验证必须依赖形式化工具,不能靠肉眼。
  • 单点反例 ≠ 全面推翻理论体系:一个猜想被推翻,意味着上界需要修正,但并不意味着所有相关结论都失效。需要逐条审查下游依赖。
  • 模型的可复现性:目前公开信息有限,反例构造的具体细节和搜索过程尚未完全透明。在学术引用前,等待正式论文和同行评审。

80 年的猜想被一个搜索闭环推翻,这件事本身就是一个信号:数学发现的速度,正在被形式化验证 + 大规模搜索的组合重新定义。下一步不是感叹 AI 多强,而是把这套闭环搬进自己的研究流程里。


相关推荐