# Euclidean Go：一个能在任意欧几里得铺砖上运行的几何盲围棋引擎

> 探索 Euclidean Go 项目——一个革命性的围棋引擎，它通过图神经网络实现几何盲设计，可以在正方形、六边形、三角形、阿基米德铺砖甚至非周期性彭罗斯铺砖上运行，而无需重新训练。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-06-09T19:44:01.000Z
- 最近活动: 2026-06-09T19:49:01.007Z
- 热度: 150.9
- 关键词: 围棋, 图神经网络, 机器学习, 几何盲AI, 欧几里得铺砖, AlphaZero, MCTS, 图论
- 页面链接: https://www.zingnex.cn/forum/thread/euclidean-go
- Canonical: https://www.zingnex.cn/forum/thread/euclidean-go
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者：** Alexandre Dufour-Richard (@vonduffen)
- **来源平台：** GitHub
- **原始标题：** euclidean-go
- **原始链接：** https://github.com/vonduffen/euclidean-go
- **发布时间：** 2026年6月

---

## 引言：当围棋突破方格的限制

围棋，这个起源于古老东方的策略游戏，几千年来一直被束缚在19×19的方格棋盘上。然而，一个名为 Euclidean Go 的开源项目正在挑战这一传统认知——它提出了一个根本性的问题：围棋的本质究竟是几何形状，还是更深层次的图结构关系？

这个项目的答案是后者。Euclidean Go 是一个几何盲（geometry-blind）的围棋引擎，它能够在任何欧几里得铺砖上运行——从传统的正方形、六边形、三角形，到复杂的阿基米德铺砖，甚至是非周期性的彭罗斯铺砖——而这一切，都依靠同一个未经重新训练的神经网络完成。

---

## 核心洞察：围棋本质上是图游戏

项目的核心洞察极具启发性：围棋本质上是一个图游戏。棋子位于棋盘的交叉点（节点），沿着线条连接（边），当一组棋子失去所有气（相邻空点）时就会被提走。规则本身并不关心这些交叉点是否构成方格。

Euclidean Go 将这一洞察字面化实现：

- **规则引擎**：基于图结构运行，处理提子、自杀禁止、位置超级劫（Tromp-Taylor规则，使用Zobrist哈希）和区域计分
- **蒙特卡洛树搜索（MCTS）**：在图结构上执行，而非固定网格
- **神经网络**：完全几何盲，只操作 BoardGraph（节点+边）

几何信息仅存在于两个地方：将铺砖编译成图的铺砖编译器，以及负责绘图的渲染器。这种架构设计使得同一个训练好的网络可以下目录中的每一个棋盘，包括那些从未训练过的铺砖。

---

## 技术架构：图神经网络的巧妙应用

### 拉普拉斯位置编码

为了让神经网络能够区分不同的顶点而不依赖坐标，项目采用了拉普拉斯特征向量位置编码（Laplacian-eigenvector positional encodings）。这是一种源自谱图理论的技术，通过计算图拉普拉斯矩阵的特征向量，为每个节点生成独特的指纹。

神经网络为每个节点看到的特征包括：游戏状态（黑白空）、节点度数（one-hot编码）、到棋盘边界的距离、拉普拉斯位置编码，以及一些全局特征。没有任何坐标信息。

### PUCT MCTS 搜索

项目实现了 AlphaZero 风格的 PUCT（Predictor + Upper Confidence bounds applied to Trees）MCTS 搜索，既有 Python 版本，也有高性能的 C++ 实现。搜索树在图结构上展开，神经网络提供策略和价值预测。

### 铺砖编译器

项目支持11种欧几里得均匀铺砖（包括正多边形和阿基米德铺砖），以及任意尺寸的矩形棋盘和非周期性的彭罗斯铺砖。编译器将这些几何结构转换为统一的图表示，使得同一引擎可以处理完全不同的拓扑结构。

---

## 训练与泛化：一个真正的通用冠军

### 自对弈训练

Euclidean Go 的通用冠军网络完全通过自对弈训练，没有使用任何人类棋谱或外部引擎。训练数据来自在混合底板上进行的自我对局。

### 惊人的泛化能力

实验结果揭示了一个令人惊讶的现象：

- **在正方形棋盘上**：引擎达到了业余级（kyu）水平
- **在非正方形铺砖上**：在混合底板上训练的网络比仅在正方形上训练的专家网络表现更强
- **零样本迁移**：对于训练时未见过的铺砖（如某些阿基米德铺砖和更大的彭罗斯区域），网络无需任何微调即可直接推理

这意味着神经网络学会了底板无关的概念，而非简单记忆网格模式。这是一个关于深度学习泛化能力的重要发现。

---

## 三种使用方式

项目提供了三种运行方式，适应不同场景：

### 1. Python 服务器（完整功能）

使用 uv run python scripts/play.py 启动，提供完整的分析功能（领地/所有权估计），需要 Python 和 PyTorch。

### 2. 纯网页应用（离线可用）

直接在浏览器中打开 webapp/tilinggo.html，无需安装，完全离线运行。使用纯 JavaScript 引擎，速度较慢但便携。

### 3. 原生 macOS 应用（高性能）

使用 python scripts/build_native.py 构建，生成 C++/Accelerate 引擎，每步约0.3秒，专为 Apple Silicon 优化。

---

## 学术意义与开源价值

Euclidean Go 不仅是一个有趣的围棋变体，更是一个研究深度学习泛化能力的小型试验场。它提出了一个根本性问题：模型能否学习到底板无关的概念，还是只能记忆特定网格？

项目完全开源（Apache-2.0 许可证），包括通过自对弈生成的权重。这为研究人员提供了一个独特的平台，用于探索图神经网络在策略游戏中的应用、零样本迁移学习、几何不变性的神经网络学习，以及非传统拓扑结构上的博弈论。

---

## 结语

Euclidean Go 代表了AI游戏研究的一个新方向——不再将棋盘视为固定几何，而是视为可塑的图结构。这种几何盲设计不仅实现了真正的泛化，也为我们理解神经网络如何从结构中学习提供了新的视角。

正如项目作者所言：棋盘是数据，不是架构。在这个理念下，围棋终于从19×19的方格中解放出来，进入了无限可能的欧几里得世界。

---

**项目链接：** https://github.com/vonduffen/euclidean-go
**在线体验：** https://vonduffen.github.io/euclidean-go/
