没有指定出发地点的接送学生

时间:2018-07-10 10:28:59

标签: optaplanner

我们需要为学校的公交车进行路线规划,任何学生之家都可以作为公交车的起始位置,但是我们没有指定任何公交车的起始位置。

我们期望的解决方案将确定每辆巴士的起始位置,以及从学生所在位置开始,在学校结束并按顺序经过学生的每辆巴士的回合,每辆巴士最多可容纳12辆学生例如:

我们希望这样:

34,30,27,38,30,15,10,5,8,8,3,2,1,0

21、29、23、32、11、13、9、4、6、5、7、12、0

..

..

..

其中0是学校位置索引,其他是学生位置索引。

该算法已将上面的34、21确定为满足时间窗口约束的公交车起始位置。

这种情况是否有可能实现? 知道如何实施吗?还是有我们可以看到的类似例子?

1 个答案:

答案 0 :(得分:0)

只需让ArrivalTimeUpdatingVariableListener以相反的顺序遍历链。

通常会这样做:

var listener

例如,您有以下链条:

  • A车->学生1(距离31公里)->学生2(距离25公里)->学生3(距离20公里)
  • 车辆B->学生7(距离33公里)->学生8(距离26公里)->学生9(距离15公里)

远离学校的意思。

然后您的var侦听器如下:

  • 学生3的到达时间=学校的开始时间-从3到学校的时间(20公里)
  • 学生2的到达时间=学生3的到达时间-2到3(> = 5公里)的时间
  • 学生1的到达时间=学生2的到达时间-1到2(> = 6公里)的时间
  • ...