Algorithm Safari lodge车辆分配-资源约束/分配算法?

Algorithm Safari lodge车辆分配-资源约束/分配算法?,algorithm,Algorithm,我在一家狩猎旅馆工作,在那里,我们需要在客人逗留期间不断为他们安排车辆,并遵守以下规定: 任何时候分配给车辆的客人不得超过6人 客人在逗留期间必须被分配到同一辆车上 如果一位客人(或一组客人)为私人车辆付费,则不得将其他客人分配到该车辆 私家车预订会影响可供分配的剩余车辆数量 一起旅行的客人必须被分配到同一辆车上 可用车辆的最大数量是固定的(=5) 要分配的潜在客人的最大数量是固定的(=24) 有时,某些车辆可能在一段时间内不可用 每天更新最新+最后一分钟预订的分配,并且在向前更新到未来(即明

我在一家狩猎旅馆工作,在那里,我们需要在客人逗留期间不断为他们安排车辆,并遵守以下规定:

  • 任何时候分配给车辆的客人不得超过6人
  • 客人在逗留期间必须被分配到同一辆车上
  • 如果一位客人(或一组客人)为私人车辆付费,则不得将其他客人分配到该车辆
  • 私家车预订会影响可供分配的剩余车辆数量
  • 一起旅行的客人必须被分配到同一辆车上
  • 可用车辆的最大数量是固定的(=5)
  • 要分配的潜在客人的最大数量是固定的(=24)
  • 有时,某些车辆可能在一段时间内不可用
  • 每天更新最新+最后一分钟预订的分配,并且在向前更新到未来(即明天以后)时,必须考虑当前日期的现有分配配置
  • 我们的目标是尽量减少在任何时候使用的车辆数量,而不必在客人逗留期间分散团队或将客人从一辆车转移到另一辆车
我遇到过一系列算法方法,从资源调度到贪婪算法——但实际上,我没有足够的技术来评估我需要什么以及它需要如何结合在一起。我有一些Javascript和VBA(颤栗)的基本编码经验,但我不是特别擅长数学。将此视为一个有趣的学习练习,如果我能找到一种方法来自动化大部分分配逻辑,那么生活将变得更加轻松。我无法在脑海中形成问题/方法的“图景”——不管是大型矩阵还是某种树

理想情况下,我能够生成一个算法解决方案,该解决方案将为我提供我所需的90%,然后我可以手动(至少)调整以获得最终解决方案,同时考虑到某些客人或团体的特殊特质。当收到最新的(更新的)预订列表时,此最终解决方案需要作为下一次分配更新的输入(起点)


很可能这个问题对我的技术能力来说太复杂了——但我要问才知道!非常感谢。

约束求解算法可能是一个很好的起点。有多种语言可供选择。感谢@IanMercer,我们将看一看约束求解算法可能是一个很好的起点。有多种语言可供选择。谢谢@IanMercer,我会看一看