# 任务：透射式缪子成像的探测器阵列布局优化 (Transmission Muon Tomography Detector Placement Optimization)

## 1. 物理与工程背景
宇宙射线缪子（Cosmic Ray Muons）是一种穿透力极强的高能基本粒子，常用于对大型结构（如金字塔、山体或核反应堆）进行无损的内部三维成像。其核心原理是透射式成像：缪子在穿过密度不同的物质时，其衰减率会有所不同。通过测量穿透目标物体后的缪子通量，可以推算出目标内部的密度分布，从而发现隐藏的空洞（如密室）。

**真实的工程挑战**：
1. **方向性限制**：宇宙射线缪子来自大气层，其通量高度依赖于天顶角（Zenith Angle, $\theta_z$）。垂直向下的通量最大，而接近水平方向的通量急剧下降，服从 $\cos^2(\theta_z)$ 分布。因此，为了捕捉穿透目标的有效缪子，探测器通常必须放置在目标物体的下方或侧下方。
2. **部署成本**：高精度的缪子探测器极其昂贵，且如果需要将其放置在地下，还需要支付高昂的隧道挖掘成本。测量时间越长，经济成本也越高。

本任务要求 AI Agent 在预算有限、地形受限的条件下，优化探测器的空间布局（数量、位置、角度），以最大化对目标内部特定区域（Region of Interest, ROI）的有效信号接收率。

## 2. 物理模型与环境设定
* **目标物体**：一个中心位于 $(0, 0, 50)$，底面在 $z=0$ 平面，边长为 $100$ 米，高 $100$ 米的正四棱锥（模拟金字塔）。
* **感兴趣区域 (ROI)**：金字塔内部已知存在一个疑似密室，其中心坐标为 $P_{\text{ROI}} = (0, 0, 30)$。
* **智能体动作**：部署 $N$ 个探测器。每个探测器 $i$ 由 5 个参数定义：$d_i = (x_i, y_i, z_i, \theta_i, \phi_i)$。
  * $(x_i, y_i, z_i)$：探测器中心坐标（单位：米）。
  * $(\theta_i, \phi_i)$：探测器面板法向量在球坐标系中的极角和方位角（单位：度）。

## 3. 目标函数 (Objective Function)
本问题旨在最大化总得分 $J(X)$，该得分平衡了**ROI信号显著性**与**工程总成本**：

$$J(X) = \text{TotalSignal}(X) - \lambda \cdot \text{Cost}(X)$$

### 3.1 有效信号接收率 (Total Signal)
每个探测器 $i$ 接收到穿过 ROI 的有效缪子信号 $S_i$ 估算如下：
$$S_i = A \cdot \frac{\cos^2(\theta_z)}{D_i^2} \cdot \max(0, \cos(\gamma_i))$$
* $A$：探测器标准面积常数（取 $1.0$）。
* $D_i$：探测器到 ROI 中心的距离。
* $\theta_z$：从探测器看向 ROI 中心的连线与垂直 Z 轴的夹角（天顶角）。注意，必须满足目标在探测器上方才能接收有效信号。
* $\gamma_i$：入射缪子射线（从 ROI 指向探测器）与探测器法向量的夹角。

总信号利用对数函数模拟收益递减：
$$\text{TotalSignal}(X) = 100 \cdot \ln\left(1 + \sum_{i=1}^{N} S_i\right)$$

### 3.2 工程总成本 (Cost)
$$\text{Cost}(X) = N \cdot C_{\text{base}} + \sum_{i=1}^{N} \text{DiggingCost}(x_i, y_i, z_i)$$
* **基础成本**：每个探测器造价 $C_{\text{base}} = 20.0$。
* **挖掘成本**：如果 $z_i < 0$（放置在地下），则需支付挖掘费用 $\text{DiggingCost} = 1.5 \cdot |z_i|$。此外，探测器严禁放置在金字塔内部（$z > 0$ 且处于棱锥包络范围内），一旦违规将施加巨大惩罚。
* **权重**：$\lambda = 1.0$。

## 4. 智能体交互规范 (I/O Specification)

### 4.1 输出格式 (Agent's Action)
Agent 必须生成一个 `solution.json` 文件，至多包含 15 个探测器（$N \le 15$）。坐标范围应在 $[-200, 200]$ 米之间。
```json
{
  "detectors": [
    {"x": 80.0, "y": 0.0, "z": -10.0, "theta": 45.0, "phi": 180.0},
    {"x": -50.0, "y": -50.0, "z": 0.0, "theta": 60.0, "phi": 45.0}
  ]
}