每天在任务分配Optaplanner中将一个任务分配给一位客户

问题描述 投票:0回答:1

我需要有关Optaplanner任务分配更改的帮助,以下是有关该任务的完整信息:-

我有70个任务,每个任务需要2到8个小时,每个任务定义2个小时,每个任务的优先级低,员工与客户之间的亲和力低,这些任务与37个客户相关联。

我的问题是,我如何将这些任务分配给员工,以便如果将客户的任务分配给员工,那么在那天,该客户的另一任务将不会分配给同一员工或另一位员工。有人可以为drl规则或Java约束提供帮助吗?

drools optaplanner
1个回答
0
投票

不知道您的数据模型,我将对可用字段进行一些假设。约束看起来像这样:

.from(Task.class)
.ifExistsOther(Task.class, 
    Joiners.equal(Task::getCustomer), 
    Joiners.equal(Task::getDay))
.penalize("Two tasks for the same customer on the same day", ...)

由您来决定应处罚的力度。如果要消除这种情况,则应将其设为硬约束-打破此约束的解决方案将不可行。

© www.soinside.com 2019 - 2024. All rights reserved.