求解定界调度的方法
本文关键字:方法 调度 | 更新日期: 2023-09-27 17:49:54
我正面临一个问题,我很难决定/想出一个解决问题的方法。问题如下:
给定要打N个电话,按最大次数安排。
知道信息:
规则:
我对人工智能有一点了解,我可以认识到这是一个适合这门课的问题,但我只是不知道该采取哪种方法…我应该使用神经网络吗?图搜索?
PS:这不是一个学术问题。这是我面临的现实问题。
PS2:指向系统仍在创建中…这里采样的点不是真实的…
PS3:生成的算法可以执行多次(批处理作业风格),也可以根据性能在线解决…
PS4:我的合同规定我将根据:(我拨打的电话数量)+(比率*电话持续时间)向客户收费,但有一个关于服务质量的条款,只拨打提醒电话对我来说不好,因为即使被提醒,人们仍然忘记参加他们的约会……这会降低我提供的服务的"质量"……我还不知道确切的数字
这对AI来说似乎不是问题。
如果是我,我会创建一组按优先级排序的规则。然后开始填写来电者的日程表。
可能规则之一是首先分配持续时间最短的呼叫类型(以满足"最大呼叫数"标准)。
这听起来越来越像一个背包问题,你可以用通话时长和通话点来代替重量和价格。
这只是一个非常基本的答案,但您可以尝试"蛮力"一个最佳解决方案:
- 使用组合库(它也在NuGet中)生成给定人在给定时间段内(例如,展望未来一周)的呼叫的每种排列。
- 对于每个排列,按估计持续时间将呼叫分组为8小时块,并为其分配日期。
- 遍历块-如果您太早到达调用,则丢弃该排列。否则,根据是否在结束日期之前进行呼叫来添加或减去点数。将总分存储为该排列的分数。
- 选择得分最高的排列。