Optaplanner,使用实验收集器问题

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

我尝试了实验收集器并遇到了一些问题。我需要找到序列之间的中断,它确实找到了序列 - 看起来,所以我希望它也能识别中断,但我没有。我希望能够调用 .getNextBreak(),然后调用 .getNext Sequence(),因为返回了几个序列,但没有中断,所以我不能来回跳转并以这种方式解决问题。 Maybee 它与连接有关,只连接使用过的时间颗粒。

在 0-9 的 timegrainfact 列表中,我分配了 3 个会议,它确实找到了看起来的序列,但我没有得到任何我正在寻找的休息时间。我希望只有两个序列重叠,即(0-1 和 4-7)并从(2-3 和 8-9)中断。

ConstraintCollectors.consecutive:
Meetingassign ID: 6   Sequence [7, 5, 6], breakList=[]
Meetingassign ID: 5   Sequence [5, 6, 4], breakList=[]
Meetingassign ID: 4   Sequence [0,1], breakList=[]
ConstraintCollectors.breaks:
<empty>

protected Constraint unusedTimeGrains(ConstraintFactory constraintFactory) {
    return constraintFactory.forEach(TimeGrain.class)        
            .join(MeetingAssignment.class, 
                    Joiners.overlapping((TimeGrain timegrain)-> timegrain.getGrainIndex(), 
                            (TimeGrain timegrain)-> timegrain.getGrainIndex()+1, 
                            (MeetingAssignment assignment) ->assignment.getStartingTimeGrain().getGrainIndex(),
                            (MeetingAssignment assignment) ->assignment.getStartingTimeGrain().getGrainIndex() + assignment.getDurationInGrains()
                            )
                    )                
                    .groupBy((timegrain, assingment) ->   
                    timegrain, 
                             (timegrain, assingment) ->   assingment,
                              ConstraintCollectors.consecutive((timegrain, assingment) ->  
                              timegrain, 
                                      TimeGrain::getGrainIndex
                                      )
                              )
                    .flattenLast(ConsecutiveInfo::getConsecutiveSequences)
                    .penalizeConfigurable( (timegrain, assingment,shiftSequence) -> shiftSequence.getLength()) // not-e here is rewarded not penalized, as its overlaps not gaps that is found  
            .asConstraint(MeetingConstraintConfiguration.UNUSED_TIME_GRAIN);
}    
optaplanner
© www.soinside.com 2019 - 2024. All rights reserved.