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 的模型走了不同的路——它在大量已知离散几何构造的训练数据基础上,通过形式化搜索与证明验证的闭环,自动生成了一组点集配置,使得该配置中单位距离对的数量超过了猜想所允许的上界。
关键步骤大致如下:
- 形式化目标:将猜想的上界公式转化为可检验的约束——"是否存在 n 和一组点集,使得 U(n) > f(n)"。
- 搜索构造空间:模型在参数化的点集族中进行搜索,尝试不同的排列模式(网格变形、圆弧叠加、递归嵌入等)。
- 自动验证:对每个候选构造,模型调用形式化验证工具(类似 Lean/Sympy 风格的符号计算),精确计算单位距离对数量,并与上界公式做比较。
- 反例确认:找到一个具体的 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 多强,而是把这套闭环搬进自己的研究流程里。