https://github.com/lithstudy/hmscheme
https://github.com/lithstudy/hmscheme
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lithstudy/hmscheme
- Owner: lithStudy
- Created: 2025-03-09T15:14:50.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-09T15:20:42.000Z (about 1 year ago)
- Last Synced: 2025-03-09T16:27:07.291Z (about 1 year ago)
- Language: Java
- Size: 1.75 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 智能食谱生成器
## 技术方案概述
本项目是一个基于多目标遗传算法的智能食谱生成系统,旨在为用户生成营养均衡、符合个人偏好的膳食方案。
### 核心算法
系统采用NSGA-II(非支配排序遗传算法II)作为核心优化算法,通过多目标优化来平衡多个相互冲突的目标:
1. 营养素目标
2. 用户偏好目标
3. 食物多样性目标
4. 营养平衡目标
### 系统架构
#### 1. 核心组件
- **NSGAIIMealPlanner**: 主算法实现类,负责种群初始化、进化过程控制和结果输出
- **MealSolution**: 表示一个膳食解决方案(染色体),包含食物组合和摄入量
- **MultiObjectiveEvaluator**: 多目标评估器,评估解决方案在各个目标上的表现
- **Population**: 种群管理类,处理个体的排序和选择
#### 2. 目标评估系统
系统实现了多个目标评估器:
1. **营养素目标评估器**
- 评估热量、蛋白质、脂肪、碳水化合物等营养素的达标情况
- 支持不同营养素的重要程度权重配置
- 考虑用户健康状况对营养素需求的影响
2. **用户偏好目标评估器**
- 评估食物是否符合用户口味偏好
- 考虑过敏原限制
- 考虑宗教信仰限制
- 考虑用户不喜欢的食物
3. **食物多样性目标评估器**
- 评估食物类别的多样性
- 评估食物组合的合理性
- 考虑理想的食物类别分布
4. **营养平衡目标评估器**
- 评估宏量营养素的比例
- 评估食物摄入量的合理性
- 考虑热量分配的合理性
#### 3. 遗传操作
1. **交叉操作**
- 实现父代解决方案的基因重组
- 保持解决方案的有效性
2. **变异操作**
1. **摄入量调整变异** (`INTAKE_ADJUSTMENT`)
- 随机选择一个食物
- 在其推荐摄入量范围内调整摄入量
- 使用变异强度参数控制调整幅度
2. **食物替换变异** (`FOOD_REPLACEMENT`)
- 随机选择一个食物进行替换
- 从同类别食物中选择替换食物
- 保持主食要求(如果需要)
- 新食物的摄入量在推荐范围内随机生成
3. **食物添加变异** (`FOOD_ADDITION`)
- 从食物数据库中选择新食物
- 考虑主食要求(如果需要)
- 新食物的摄入量在推荐范围内随机生成
4. **食物移除变异** (`FOOD_REMOVAL`)
- 随机选择一个食物移除
- 保持至少一种食物
- 考虑主食要求(如果需要)
5. **热量优化变异** (`CALORIES_OPTIMIZATION`)
- 根据目标热量和当前热量的差异进行调整
- 选择高热量密度的食物进行调整
- 智能计算调整幅度
- 确保调整后的摄入量在推荐范围内
6. **营养素敏感度变异** (`NUTRIENT_SENSITIVITY`)
- 分析当前膳食方案中各营养素的达成率
- 识别不足或过量的营养素
- 计算每种食材对各营养素的贡献度
- 选择最适合调整的食材
- 根据营养素权重和贡献度计算调整幅度
- 执行精准的摄入量调整
7. **综合变异** (`COMPREHENSIVE`)
- 随机选择上述变异类型之一执行
- 提供更全面的探索能力
#### 4. 约束处理
系统实现了多重约束机制:
1. **硬性约束**
- 营养素达标率范围
- 食物摄入量范围
- 食物组合规则
2. **软性约束**
- 用户偏好权重
- 营养平衡权重
- 多样性权重
### 特色功能
1. **个性化配置**
- 支持用户健康状况的个性化配置
- 支持用户偏好的个性化配置
- 支持营养素权重的动态调整
2. **智能优化**
- 基于NSGA-II的多目标优化
- 自适应变异策略
- 动态权重调整
3. **结果评估**
- 多维度评分系统
- 详细的营养分析
- 可视化输出
### 技术特点
1. **可扩展性**
- 模块化的目标评估系统
- 可配置的遗传操作
- 灵活的约束处理机制
2. **实用性**
- 考虑实际饮食场景
- 支持多种营养目标
- 考虑用户偏好和限制
3. **可靠性**
- 严格的约束检查
- 完整的有效性验证
- 详细的日志记录
### 使用的主要技术
- Java 8+
- 遗传算法框架
- 多目标优化算法
- 面向对象设计模式
- 数据结构和算法
### 性能优化
1. **计算优化**
- 缓存机制
- 并行评估
- 高效的数据结构
2. **内存优化**
- 对象复用
- 及时清理
- 内存管理
### 后续优化方向
1. **算法优化**
- 引入更多智能优化算法
- 优化变异策略
- 改进选择机制
2. **功能扩展**
- 支持更多营养目标
- 增加更多用户偏好选项
- 提供更多评估维度
3. **性能提升**
- 引入并行计算
- 优化数据结构
- 改进内存管理