Skip to content
/ AI Public

这是澳门科技大学人工智能课程的实验代码

Notifications You must be signed in to change notification settings

RuotianJoy/AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Optimal Samples Selection System

一个智能样本组合优化系统,使用遗传算法、模拟退火算法和贪心算法进行最佳样本选择。

系统概述

该系统帮助用户寻找满足特定覆盖要求的最佳样本组合。它提供了三种优化算法:

  • 遗传算法(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导出,可选)

安装

  1. 克隆仓库:
git clone [repository-url]
cd [repository-name]
  1. 安装所需包:
pip install -r requirements.txt

使用方法

  1. 运行应用程序:
python main_window.py
  1. 配置参数:

    • 设置总样本数量 (m)
    • 设置选择样本数量 (n)
    • 设置组合大小 (k)
    • 设置子集参数 (j)
    • 设置覆盖参数 (s)
    • 设置覆盖次数 (f)
    • 选择优化算法
  2. 选择样本:

    • 选择随机生成或手动输入
    • 若手动输入,请输入以逗号分隔的样本编号
  3. 执行优化:

    • 点击"执行"按钮
    • 实时监控进度
    • 在显示区域查看结果
  4. 管理结果:

    • 将结果保存到数据库
    • 查看历史记录
    • 导出结果到文本文件或PDF
    • 删除不需要的记录
  5. 算法对比:

    • 在对比选项卡中可以同时运行多种算法
    • 比较不同算法的性能和结果质量
    • 验证结果是否满足覆盖要求

数据库结构

系统使用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。

联系方式

如有任何问题或建议,请联系项目维护者。

About

这是澳门科技大学人工智能课程的实验代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •