{"id":26360174,"url":"https://github.com/lithstudy/hmscheme","last_synced_at":"2025-07-06T17:04:20.543Z","repository":{"id":281511381,"uuid":"945499630","full_name":"lithStudy/hmscheme","owner":"lithStudy","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-09T15:20:42.000Z","size":1834,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T16:27:07.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lithStudy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-09T15:14:50.000Z","updated_at":"2025-03-09T15:20:46.000Z","dependencies_parsed_at":"2025-03-09T16:37:32.470Z","dependency_job_id":null,"html_url":"https://github.com/lithStudy/hmscheme","commit_stats":null,"previous_names":["lithstudy/hmscheme"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lithStudy%2Fhmscheme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lithStudy%2Fhmscheme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lithStudy%2Fhmscheme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lithStudy%2Fhmscheme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lithStudy","download_url":"https://codeload.github.com/lithStudy/hmscheme/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243900027,"owners_count":20366087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-16T16:38:29.630Z","updated_at":"2025-07-06T17:04:20.518Z","avatar_url":"https://github.com/lithStudy.png","language":"Java","readme":"# 智能食谱生成器\n\n## 技术方案概述\n\n本项目是一个基于多目标遗传算法的智能食谱生成系统，旨在为用户生成营养均衡、符合个人偏好的膳食方案。\n\n### 核心算法\n\n系统采用NSGA-II（非支配排序遗传算法II）作为核心优化算法，通过多目标优化来平衡多个相互冲突的目标：\n\n1. 营养素目标\n2. 用户偏好目标\n3. 食物多样性目标\n4. 营养平衡目标\n\n### 系统架构\n\n#### 1. 核心组件\n\n- **NSGAIIMealPlanner**: 主算法实现类，负责种群初始化、进化过程控制和结果输出\n- **MealSolution**: 表示一个膳食解决方案（染色体），包含食物组合和摄入量\n- **MultiObjectiveEvaluator**: 多目标评估器，评估解决方案在各个目标上的表现\n- **Population**: 种群管理类，处理个体的排序和选择\n\n#### 2. 目标评估系统\n\n系统实现了多个目标评估器：\n\n1. **营养素目标评估器**\n   - 评估热量、蛋白质、脂肪、碳水化合物等营养素的达标情况\n   - 支持不同营养素的重要程度权重配置\n   - 考虑用户健康状况对营养素需求的影响\n\n2. **用户偏好目标评估器**\n   - 评估食物是否符合用户口味偏好\n   - 考虑过敏原限制\n   - 考虑宗教信仰限制\n   - 考虑用户不喜欢的食物\n\n3. **食物多样性目标评估器**\n   - 评估食物类别的多样性\n   - 评估食物组合的合理性\n   - 考虑理想的食物类别分布\n\n4. **营养平衡目标评估器**\n   - 评估宏量营养素的比例\n   - 评估食物摄入量的合理性\n   - 考虑热量分配的合理性\n\n#### 3. 遗传操作\n1. **交叉操作**\n   - 实现父代解决方案的基因重组\n   - 保持解决方案的有效性\n\n2. **变异操作**\n\n   1. **摄入量调整变异** (`INTAKE_ADJUSTMENT`)\n      - 随机选择一个食物\n      - 在其推荐摄入量范围内调整摄入量\n      - 使用变异强度参数控制调整幅度\n\n   2. **食物替换变异** (`FOOD_REPLACEMENT`)\n      - 随机选择一个食物进行替换\n      - 从同类别食物中选择替换食物\n      - 保持主食要求（如果需要）\n      - 新食物的摄入量在推荐范围内随机生成\n\n   3. **食物添加变异** (`FOOD_ADDITION`)\n      - 从食物数据库中选择新食物\n      - 考虑主食要求（如果需要）\n      - 新食物的摄入量在推荐范围内随机生成\n\n   4. **食物移除变异** (`FOOD_REMOVAL`)\n      - 随机选择一个食物移除\n      - 保持至少一种食物\n      - 考虑主食要求（如果需要）\n\n   5. **热量优化变异** (`CALORIES_OPTIMIZATION`)\n      - 根据目标热量和当前热量的差异进行调整\n      - 选择高热量密度的食物进行调整\n      - 智能计算调整幅度\n      - 确保调整后的摄入量在推荐范围内\n\n   6. **营养素敏感度变异** (`NUTRIENT_SENSITIVITY`)\n      - 分析当前膳食方案中各营养素的达成率\n      - 识别不足或过量的营养素\n      - 计算每种食材对各营养素的贡献度\n      - 选择最适合调整的食材\n      - 根据营养素权重和贡献度计算调整幅度\n      - 执行精准的摄入量调整\n\n   7. **综合变异** (`COMPREHENSIVE`)\n      - 随机选择上述变异类型之一执行\n      - 提供更全面的探索能力\n\n#### 4. 约束处理\n\n系统实现了多重约束机制：\n\n1. **硬性约束**\n   - 营养素达标率范围\n   - 食物摄入量范围\n   - 食物组合规则\n\n2. **软性约束**\n   - 用户偏好权重\n   - 营养平衡权重\n   - 多样性权重\n\n### 特色功能\n\n1. **个性化配置**\n   - 支持用户健康状况的个性化配置\n   - 支持用户偏好的个性化配置\n   - 支持营养素权重的动态调整\n\n2. **智能优化**\n   - 基于NSGA-II的多目标优化\n   - 自适应变异策略\n   - 动态权重调整\n\n3. **结果评估**\n   - 多维度评分系统\n   - 详细的营养分析\n   - 可视化输出\n\n### 技术特点\n\n1. **可扩展性**\n   - 模块化的目标评估系统\n   - 可配置的遗传操作\n   - 灵活的约束处理机制\n\n2. **实用性**\n   - 考虑实际饮食场景\n   - 支持多种营养目标\n   - 考虑用户偏好和限制\n\n3. **可靠性**\n   - 严格的约束检查\n   - 完整的有效性验证\n   - 详细的日志记录\n\n### 使用的主要技术\n\n- Java 8+\n- 遗传算法框架\n- 多目标优化算法\n- 面向对象设计模式\n- 数据结构和算法\n\n### 性能优化\n\n1. **计算优化**\n   - 缓存机制\n   - 并行评估\n   - 高效的数据结构\n\n2. **内存优化**\n   - 对象复用\n   - 及时清理\n   - 内存管理\n\n### 后续优化方向\n\n1. **算法优化**\n   - 引入更多智能优化算法\n   - 优化变异策略\n   - 改进选择机制\n\n2. **功能扩展**\n   - 支持更多营养目标\n   - 增加更多用户偏好选项\n   - 提供更多评估维度\n\n3. **性能提升**\n   - 引入并行计算\n   - 优化数据结构\n   - 改进内存管理 ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flithstudy%2Fhmscheme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flithstudy%2Fhmscheme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flithstudy%2Fhmscheme/lists"}