# NOAI 2026: 迷宫信息预测

**注意：本题将在基于 `noai:2026v1.1` 镜像的环境中评测，参赛者请选择 `noai:2026v1.1` 作为训练镜像。**



## 1. 任务描述

本题给定一个由 $30\times30$ 个单元格组成的四连通网格迷宫。

迷宫中的每个单元格由以下五种字符之一表示：

| 字符 | 含义                                                         |
| ---- | ------------------------------------------------------------ |
| `S`  | 起点，视为空地，可通行                                       |
| `T`  | 终点，视为空地，可通行                                       |
| `.`  | 已知空地，可通行                                             |
| `#`  | 已知障碍，不能通行                                           |
| `?`  | 未知单元格，其在真实迷宫中的状态为 `.` 或 `#`，但观测数据中未直接给出 |

在四连通迷宫中，四连通指的是：每一步只能移动至上、下、左、右相邻的单元格，且只能经过可通行单元格，即 `S`、`T` 或 `.`。

对于给定的观测迷宫，参赛者需要预测其对应真实迷宫的以下 4 个数值指标：

- 障碍单元格总数；
- 从 `S` 出发可到达的空地单元格总数；
- 所有可通行单元格构成的四连通块数量；四连通块：按照上述移动规则，若若干个非障碍格子之间可以通过不断向上、下、左、右移动相互到达，则这些格子属于同一个四连通块。一个四连通块是满足这一条件的**最大非障碍格子区域**。
- 从 `S` 到 `T` 的最短路径长度。



## 2. 数据集

### 2.1 数据规模

每个迷宫均为 $30\times30$ 的网格，并按照从上到下、每行从左到右的顺序展开为一个长度为 900 的字符串；每个迷宫保证包含且仅包含一个 `S` 和一个 `T`。对于数据集中的所有迷宫，保证原始迷宫中  `S` 和 `T`连通。

| Split               | 样本数 | 说明                                  |
| ------------------- | ------ | ------------------------------------- |
| 训练集 (Train)      | 5,000  | `train_data.csv` + `train_answer.csv` |
| 验证集 (Validation) | 3,000  | `val_data.csv`（无标签）              |
| 测试集 (Test)       | 3,000  | `test_data.csv`（无标签）             |

### 2.2 数据格式

**观测迷宫（`train_data.csv` / `val_data.csv` / `test_data.csv`）：**

每行 900 个字符（30×30 展开），表示一个带 `?` 的观测迷宫。

**答案文件（`train_answer.csv`）：**

每行 4 个整数，依次表示该样本真实迷宫中的：

| 序号 | 含义                |
| ---- | ------------------- |
| y1   | 障碍总数            |
| y2   | S 可达空地数量      |
| y3   | 空地连通块数量      |
| y4   | S 到 T 最短路径长度 |

### 2.3 训练数据访问

在开发阶段，参赛者只能直接访问训练集。验证集和测试集仅在正式评测环境中提供，参赛者需通过指定的环境变量读取其存储路径，请参考基线[baseline ](https://www.bohrium.com/notebooks/44754561216)Notebook了解具体的访问方式。

下图给出训练集中的前 4 个迷宫样本布局。

![train_first4_mazes](https://bohrium-ioai-test.oss-cn-zhangjiakou.aliyuncs.com/article/76715/4c7f5ff083e045aba657c4ccc1237ea7/a5410249-aadd-4d00-84be-11949784c8df.jpeg)



## 3. 示例说明

下面以一个 $5\times5$ 的简化迷宫为例，说明 4 个标签的含义。

![statement_5x5_examples](https://bohrium-ioai-test.oss-cn-zhangjiakou.aliyuncs.com/article/76715/4c7f5ff083e045aba657c4ccc1237ea7/5e889bce-b0ff-4f72-9686-0119adce9bfd.jpeg)

从左到右分别表示：

1. **观测迷宫**：`?` 表示未知区域；
2. **真实迷宫**：每个 `?` 被还原为具体的 `.` 或 `#`，其中障碍 `#` 一共 9 个；
3. **S 可达空地**：可达区域用 `A` 表示，共 12 个格子（包含 `S` 和 `T`）；
4. **空地连通块**：所有空地按四连通划分后共有 4 块；
5. **最短路径**：最短路径用 `*` 标出，其长度为 8，即从 `S` 移动到 `T` 共需要 8 步。

该迷宫对应的 4 个标签为：

```
9, 12, 4, 8
```



## 4. 任务

参赛者需要对验证集和测试集中的每个观测迷宫，预测其对应真实迷宫的以下 4 个数值：：障碍总数、S 可达空地数、空地连通块数、最短路径长度。

- **输入**：900 字符的迷宫字符串（含 `S`、`T`、`.`、`#`、`?`）
- **输出**：4 个实数



## 5. 提交

参赛者需提交一个名为 `submission.ipynb` 的 Notebook，该 Notebook 应包含完整的数据读取、数据处理、模型训练、预测及提交文件生成流程，并能够在评测环境中从头运行。

### 5.1 输入与输出

- **输入**：训练集 `train_data.csv` + `train_answer.csv`；验证集和测试集数据在提交时通过环境变量获取（详见[baseline](https://www.bohrium.com/notebooks/44754561216)代码）。
- **输出**：一个名为 `submission.zip` 的压缩文件，包含：
  - `submission_val.csv` — 验证集预测结果
  - `submission_test.csv` — 测试集预测结果

### 5.2 文件结构

请参见[baseline](https://www.bohrium.com/notebooks/44754561216) Notebook 中的完整文件结构。

### 5.3 提交 CSV 格式

每个 CSV 文件中每行为 4 个实数（无表头），与输入样本顺序一致：

```csv
12.5,85.3,3.1,18.0
9.0,120.0,5.0,22.0
```

### 5.4 本题只允许提交一个Notebook文件，不允许外挂数据集和其他文件



## 6. 评分

### 6.1 指标

四个预测目标分别独立计分，每个目标最高得 0.25 分。评分使用平均绝对百分比误差（MAPE）和 Top 10% 平均百分比误差（Max10PE）。

对某一个预测值，设样本数量为 $n$，真实值为 $y_{1\sim n}$，预测值为 $\hat{y}_{1\sim n}$：

**绝对百分比误差：**

$$\text{APE}_i = \frac{|\hat{y}_i - y_i|}{|y_i|}$$

**平均绝对百分比误差：**

$$\text{MAPE} = \frac{1}{n}\sum_{i=1}^{n}\text{APE}_i$$

**Top 10% 平均百分比误差：** 设 $k = \lceil 0.1n \rceil$，将 APE 从大到小排序后取前 $k$ 个求平均：

$$\text{Max10PE} = \frac{1}{k}\sum_{i=1}^{k}\text{APE}_{(i)}$$

**单个预测值小分：**

$$0.2 \times e^{-\text{MAPE}} + 0.05 \times e^{-\text{Max10PE}}$$

**最终分数**为 4 个预测值小分之和，满分为 1.0。

### 6.2 公开榜与私有榜

- **公开榜（A 榜）**：根据验证集（Validation Set）进行计算；
- **私有榜（B 榜）**：根据测试集（Test Set）进行计算，并在比赛结束后公布。

### 6.3 零分规则

以下情况直接判为 0 分：

| 违规项   | 说明                                                         |
| -------- | ------------------------------------------------------------ |
| 格式错误 | `submission_val.csv`或`submission_test.csv`行列数不正确，或包含 NaN/Inf（建议单独检测处理） |
| 异常行为 | 使用非正常方法影响评分程序                                   |
| 网络访问 | 评测时程序试图访问外网                                       |
| 文件操作 | 评测时程序试图打开或创建规定之外的文件或目录                 |
| 进程调用 | 评测时程序试图运行其他程序                                   |



## 7. 限制

- 不允许下载或使用本题提供的数据集之外的任何外部数据，但允许参赛者基于题目提供的数据进行特征构造、数据变换和二次标注；
- 不允许使用外部大语言模型 API（如 GPT、Claude）进行预测、特征生成、数据标注或模型集成；

- 评测环境不提供网络访问，参赛程序不得执行联网操作，也不得通过 `pip install` 安装额外依赖。参赛者只能使用指定镜像中预装的软件包；

- 本题使用**CPU**进行训练和评测，训练 + 推理总时长不超过 25 分钟。



## 8. 基线分数与参考分数

- **B 榜基线分数 ([baseline](https://www.bohrium.com/notebooks/44754561216))**：0.4508
- **科学委员会提供的参考解答的B榜分数 (Reference Result)**：0.8653



## 9. 致谢

感谢科学委员会 XR 老师提供本题。