2025-04-16 01:32:53 +08:00
|
|
|
|
# LEAD (LLM-Evolved Algorithm Development)
|
2025-03-17 00:58:42 +08:00
|
|
|
|
|
2025-04-16 01:32:53 +08:00
|
|
|
|
LLM驱动的算法进化开发框架,支持单目标和多目标优化问题的算法自动进化。
|
|
|
|
|
|
|
|
|
|
## 单目标算法进化
|
|
|
|
|
|
|
|
|
|
### 1. 配置要求
|
|
|
|
|
在问题目录下的`problem_config.json`中配置:
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"multi_objective": false,
|
|
|
|
|
"description": "问题描述",
|
|
|
|
|
"function_name": "函数名",
|
|
|
|
|
"input_format": "输入格式",
|
|
|
|
|
"output_format": "输出格式",
|
|
|
|
|
"evolution_params": {
|
|
|
|
|
"algorithm": "TU", # 或"DE"
|
|
|
|
|
"population_size": 8,
|
|
|
|
|
"generations": 10
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. 运行流程
|
|
|
|
|
1. 初始化种群:LLM根据问题描述生成初始算法代码
|
|
|
|
|
2. 评估:计算每个个体的适应度(单目标值)
|
|
|
|
|
3. 进化循环:
|
|
|
|
|
- 选择:锦标赛选择或差分进化选择
|
|
|
|
|
- 交叉:代码片段重组
|
|
|
|
|
- 变异:LLM引导的代码变异
|
|
|
|
|
4. 输出:最优算法代码和适应度曲线
|
|
|
|
|
|
|
|
|
|
### 3. 运行命令
|
|
|
|
|
```bash
|
|
|
|
|
lead-run --problem [问题名] [--generations 代数] [--population 种群大小]
|
|
|
|
|
```
|
|
|
|
|
可选参数:
|
|
|
|
|
- `--generations`: 覆盖默认进化代数
|
|
|
|
|
- `--population`: 覆盖默认种群大小
|
|
|
|
|
|
|
|
|
|
## 多目标算法进化
|
|
|
|
|
|
|
|
|
|
### 1. 配置要求
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"multi_objective": true,
|
|
|
|
|
"objective_names": ["目标1", "目标2"],
|
|
|
|
|
"description": "问题描述",
|
|
|
|
|
"evolution_params": {
|
|
|
|
|
"algorithm": "MO",
|
|
|
|
|
"population_size": 10,
|
|
|
|
|
"generations": 20
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. 运行流程
|
|
|
|
|
1. 初始化种群:LLM生成初始多目标算法
|
|
|
|
|
2. 评估:计算每个个体的多目标适应度向量
|
|
|
|
|
3. 进化循环:
|
|
|
|
|
- 非支配排序
|
|
|
|
|
- 拥挤度计算
|
|
|
|
|
- 精英保留
|
|
|
|
|
4. 输出:Pareto前沿算法集合
|
|
|
|
|
|
|
|
|
|
### 3. 运行命令
|
|
|
|
|
```bash
|
|
|
|
|
lead-run --problem [问题名] [--generations 代数] [--population 种群大小]
|
|
|
|
|
```
|
|
|
|
|
可选参数同上
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
- `problem_config.json`必须包含:
|
|
|
|
|
- 问题描述
|
|
|
|
|
- 输入输出格式
|
|
|
|
|
- 进化参数
|
|
|
|
|
- 可选配置:
|
|
|
|
|
- LLM参数
|
|
|
|
|
- 评估超时时间
|
|
|
|
|
|
|
|
|
|
## 结果输出
|
|
|
|
|
|
|
|
|
|
- 单目标:`evolution_history/[时间戳]/`目录保存各代最优解
|
|
|
|
|
- 多目标:`multi_objective_history/[时间戳]/`保存Pareto前沿
|