# PCB 布局布线求解:社区贡献方向 **四个公共算法包已经分离,可以让社区直接贡献算法 PR。** 它们在本仓库同一个 Go module 中,不需要另建仓库、安装 EasyEDA 或连接 daemon。问题是:选择完整电路块的位置与角度,为所有声明连接寻找可共存的路径,在硬约束成立后改善移动量、过孔、线长等指标。 **2026-09-24 可行性复核:建议推进有明确范围的社区共建。** 数学建模和四包分工成立,多层可沿现有架构扩展;能否持续获得高质量 PR,还取决于维护者提供规则、案例、评价工具和评审。现有证据支持局部联合求解,尚不足以承诺任意整板自动完成。外部研究、源码核对和实测边界见[可行性调研](pcb-layout-solver-research.md#社区算法与多层协调的可行性复核)。 | 已有包 | 负责什么 | |---|---| | [`pcbmodel`](../pkg/pcbmodel/README.md) | 板框、层、器件、焊盘、铜、规则与完整组变换 | | [`pcblayout`](../pkg/pcblayout/README.md) | 有限布局候选、平移/旋转、机械检查和让位邻域 | | [`pcbrouting`](../pkg/pcbrouting/README.md) | 单路径寻路、多网共同选择、路径与排网顺序回溯 | | [`pcbsolve`](../pkg/pcbsolve/README.md) | 多层布局与布线协调、冲突反馈、共享预算和独立复验(当前实现二层) | 当前适合改进的是**已有相对布局的电路块如何组合移动和共同布线**。二层、固定装配面、每网最多两个通孔已经有实现;自动让位、多组递归让位和平移后旋转已有离线案例。历史 `auto-place`、专用模块策略等尚未全部迁入公共包;带内部铜的统一 Apply、四层联合求解和完整整板验收仍未完成。详细状态见[开发验证清单](pcb-layout-validation.md)。 社区首批任务建议如下,具体范围与验收见[详细稿](pcb-solver-community-design-detail.md): 1. **小型精确参照与基准案例**:用独立枚举证明极小离散题目的可行性和最优指标,量出当前启发式漏了什么。 2. **同层替代路径搜索**:现有协调器能回退和换排网顺序,但单次候选生成在每个允许层通常只给一条路径;补充有界替代路线,比较同预算下的共同布通率。 3. **拥塞感知的初始布局**:在共同试布前估计模块间的通道需求,改善种子候选;使用固定 Router 和相同预算比较,最终仍精确复验。 4. **多层布局布线协调**:沿用四包明确各层用途和换层规则,先完成四层案例,再扩展更多层;模型与接口现在一起设计,搜索与验收分步推进。 多层是 `pcbsolve` 的长期范围。社区可以同时考虑层叠、过孔和回流要求;二层已有能力继续作为兼容基线,多层任务的通过状态按实际实现和证据单独记录。 启动时先补三件事:扩充独立精确参照和真实模块案例;让一次命令能比较改动前后的正确性、布通率和资源消耗;公开可认领的小任务与结果预览。现有六个文件案例每例只有 1~3 条连接需求,包测试通过还不能说明整板可布。多层模型与检查可同时设计,搜索扩展以这些评价基础为前提。 从 `dev` 开始,运行 `make pcb-solver-test` 即可离线验证四包;已为算法 PR 准备独立的 Go-only CI。现有 [文件案例](../pkg/pcbsolve/testdata/) 可以直接修改参数复现。可以直接提 PR,也可以用仓库的“PCB 算法贡献”Issue 模板说明准备解决的反例。 以上贡献入口和专用 CI 已在本地准备;2026-09-24 查询时远端 `dev` 已有四包,社区设计文档尚未推送,GitHub 默认分支仍是 `main`。正式招募前需完成入口同步和任务发布。此状态不代表已有人认领,也不以关注数推算贡献人力。 维护者提供稳定的题目、独立约束、验证器与宿主适配;贡献者提交算法、反例和可复现的前后比较。先满足硬约束,再比较合法候选的质量。原理图专项仍有搜索预算与现场严格检查缺口,属于另一条工作线;PCB 公共包通过不能替代它,也不能替代真实工程的保存重载和 DRC。