optaplanner - 找到给定日期的最佳培训
问题描述
我确实对使用 Optaplanner 的“ do-ablitites ”有疑问。我必须解决以下问题:
“n”个训练确实包含“n”个序列,其中包括“n”个位置
那,我必须展示/解决:
时隙
- 从 8:00 到 22:00
- 一年 365 天
地区
- 我们有多达 30 个地区
- 可以加权(例如好或非常好)
- 确实有使用时间段(例如 60 分钟、90 分钟、...)
序列
- 是“n”个位置的预定义集合
- 确实有重量(例如好或非常好)
培训
- 加权 ($$$, $$, $)
- 最多可以有 15 个不同的序列,这些序列可以有“n”个位置
要解决的问题/目标:
随着时间的推移,越来越多的培训将被添加到一个日期中。每次添加培训时,都应检查所有现有培训和新培训,如果
- a) 为新增加的训练留有局部性
- b) 为每次训练找到最佳序列(更多训练,使用更多位置,每次训练需要验证不同序列)
- c)显示/返回当天的最佳解决方案(大多数培训,其中每次培训都有最佳顺序,考虑到一整天)
知道这是否可行吗?干杯-菲利克斯
解决方案
推荐阅读
- json - 将 JSON 解组为具有多个嵌入式结构和重叠字段名称的结构
- java - 按大小排列的编号表
- python - 如何调用函数中的某个参数?
- java - Java 8 流。如何将每个枚举类型的 BigDecimal 总计聚合到自定义 bean
- javascript - 循环遍历所有不起作用的 DOM 元素
- sql - Teradata SQL - 如何将小时数添加到整数?
- reactjs - 查找后将对象合并到一个数组中
- java - 如何使用 Junit 创建可共享的测试包?
- mysql - 在 MySQL 中创建 SQL 表时遇到错误
- javascript - 尝试从 HTML 元素中的 api 数据格式化文本