遗传算法回路优化
C++20 团队作业:回路仿真、遗传优化、结构检查,再用固定种子扫一批,方便复现。
角色
- 团队成员
- 硕士小组作业
技术栈
- C++20
- CMake
- OpenMP
- Python
- Genetic algorithms
- Graph analysis
问题
在很多编码过的选矿回路里找仿真表现更好的结构,先丢掉算不出合理物料平衡的那些。
约束
- 拓扑先过可达、出口和循环检查,再做贵的仿真。
- 仿真是迭代求物料平衡,结构合法也不等于一定收敛。
- 要比随机优化,得控种子、多跑几次,不能只报一次最好的。
- 这是团队作业,仓库也是私有的。
我做了什么
- 参与遗传算法、仿真、有效性检查和复现流程。
- README 没写清模块归属,所以成果按团队算。
怎么做的
- 选择、交叉、变异、精英保留,停滞了就停;只演化通过检查的回路向量。
- 用单元分离、迭代物料平衡和经济适应度给候选打分。
- 固定种子扫基线和扩展模式;扩展里可选锦标赛、混合初始化、按图变异和子代修复。
- 实验性的拓扑和数值稳定性检查默认关着,因为有时检查本身比省下的仿真还贵。
怎么验
- CTest 覆盖随机数、遗传算子、收敛、仿真物理、基准和出口是否合法。
- 每个种子记下配置、耗时、表现、是否合法、退出状态和最终回路,方便对照。
- 那些实验性启发式只当可选发现,不当默认更好。
结果
- 团队留下了可配置的优化器、仿真、检查、诊断和后处理脚本。
- 这里不写最终最优解、加速比,也不把成果算成我一个人的。
依据和链接
README 将该项目标识为 2025–2026 帝国理工学院硕士小组课程作业,并把工作归于团队。
私有作品集仓库 README仓库记录了 C++20 构建要求、仿真器与遗传算法测试、带种子扫描脚本以及可选稳健性扩展。
私有作品集仓库 README