一个智能样本组合优化系统,使用遗传算法、模拟退火算法和贪心算法进行最佳样本选择。
该系统帮助用户寻找满足特定覆盖要求的最佳样本组合。它提供了三种优化算法:
- 遗传算法(Genetic Algorithm)
- 模拟退火算法(Simulated Annealing)
- 贪心算法(Greedy Algorithm)
系统具有用户友好的GUI界面,并维护优化结果数据库以供参考。
-
多算法支持
- 遗传算法优化
- 模拟退火算法优化
- 贪心算法优化
- 实时进度跟踪
- 详细结果可视化
- 算法对比分析
-
参数配置
- 总样本数量 (m):45-54
- 选择样本数量 (n):7-25
- 组合大小 (k):4-7
- 子集参数 (j):≥3
- 覆盖参数 (s):3-7
- 覆盖次数 (f):≥1
-
样本选择方法
- 随机选择
- 手动输入
-
结果管理
- 将优化结果保存到数据库
- 查看历史优化记录
- 导出结果到文本文件或PDF
- 删除不需要的记录
- Python 3.6+
- PyQt5
- SQLite3
- DEAP(用于遗传算法)
- NumPy
- SciPy
- tqdm
- reportlab(用于PDF导出,可选)
- 克隆仓库:
git clone [repository-url]
cd [repository-name]- 安装所需包:
pip install -r requirements.txt- 运行应用程序:
python main_window.py-
配置参数:
- 设置总样本数量 (m)
- 设置选择样本数量 (n)
- 设置组合大小 (k)
- 设置子集参数 (j)
- 设置覆盖参数 (s)
- 设置覆盖次数 (f)
- 选择优化算法
-
选择样本:
- 选择随机生成或手动输入
- 若手动输入,请输入以逗号分隔的样本编号
-
执行优化:
- 点击"执行"按钮
- 实时监控进度
- 在显示区域查看结果
-
管理结果:
- 将结果保存到数据库
- 查看历史记录
- 导出结果到文本文件或PDF
- 删除不需要的记录
-
算法对比:
- 在对比选项卡中可以同时运行多种算法
- 比较不同算法的性能和结果质量
- 验证结果是否满足覆盖要求
系统使用SQLite3数据库,包含以下表:
-
runs:存储优化运行信息
- 参数 (m, n, k, j, s, f)
- 时间戳
- 执行时间
- 使用的算法
- 运行计数
- 格式化ID
-
samples:存储每次运行的选定样本
- 运行ID
- 样本编号
-
results:存储优化结果
- 运行ID
- 组ID
- 样本编号
.
├── main_window.py # 主应用程序入口和GUI实现
├── genetic_algorithm.py # 遗传算法实现
├── simulated_annealing.py # 模拟退火算法实现
├── greedy_optimizer.py # 贪心算法实现
├── solution_validator.py # 解决方案验证器
├── results.db # SQLite数据库
├── requirements.txt # Python依赖项
└── 算法流程.png # 算法流程图
- 遗传算法:通过模拟自然选择过程,利用交叉、变异等操作进行样本组合的优化。
- 模拟退火算法:通过模拟物理退火过程,以一定概率接受差解,避免陷入局部最优解。
- 贪心算法:基于覆盖贡献度选择样本组合,每次选择能够增加最大覆盖率的组合。
欢迎贡献!请随时提交Pull Request。
如有任何问题或建议,请联系项目维护者。