@@ -175,6 +175,8 @@ public static class Builder {
175
175
176
176
private ScoringFunction regretScorer = null ;
177
177
178
+ private RegretScoringFunction regretScoringFunction = null ;
179
+
178
180
private Map <SearchStrategy , Double > customStrategies = new HashMap <>();
179
181
180
182
private VehicleFleetManager fleetManager = null ;
@@ -318,6 +320,11 @@ public Builder setRegretScorer(ScoringFunction scoringFunction) {
318
320
return this ;
319
321
}
320
322
323
+ public Builder setRegretScoringFunction (RegretScoringFunction scoringFunction ) {
324
+ this .regretScoringFunction = scoringFunction ;
325
+ return this ;
326
+ }
327
+
321
328
public VehicleRoutingAlgorithm buildAlgorithm () {
322
329
return new Jsprit (this ).create (vrp );
323
330
}
@@ -382,6 +389,8 @@ public int createNumberToBeRemoved() {
382
389
383
390
private ScoringFunction regretScorer ;
384
391
392
+ private RegretScoringFunction regretScoringFunction ;
393
+
385
394
private final Map <SearchStrategy , Double > customStrategies = new HashMap <>();
386
395
387
396
private VehicleFleetManager vehicleFleetManager ;
@@ -398,12 +407,18 @@ private Jsprit(Builder builder) {
398
407
this .activityInsertion = builder .activityInsertionCalculator ;
399
408
this .acceptor = builder .solutionAcceptor ;
400
409
regretScorer = builder .regretScorer ;
410
+ regretScoringFunction = builder .regretScoringFunction ;
401
411
customStrategies .putAll (builder .customStrategies );
402
412
vehicleFleetManager = builder .fleetManager ;
403
413
}
404
414
405
415
private void ini (VehicleRoutingProblem vrp ) {
406
- if (regretScorer == null ) regretScorer = getRegretScorer (vrp );
416
+ if (regretScorer == null ) {
417
+ regretScorer = getRegretScorer (vrp );
418
+ }
419
+ if (regretScoringFunction == null ) {
420
+ regretScoringFunction = new DefaultRegretScoringFunction (regretScorer );
421
+ }
407
422
}
408
423
409
424
private VehicleRoutingAlgorithm create (final VehicleRoutingProblem vrp ) {
@@ -533,7 +548,6 @@ private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
533
548
ruinTimeRelated .setRandom (random );
534
549
535
550
AbstractInsertionStrategy regret ;
536
- final ScoringFunction scorer ;
537
551
538
552
boolean fastRegret = Boolean .parseBoolean (getProperty (Parameter .FAST_REGRET .toString ()));
539
553
if (es != null ) {
@@ -546,8 +560,7 @@ private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
546
560
.setAllowVehicleSwitch (toBoolean (getProperty (Parameter .VEHICLE_SWITCH .toString ())))
547
561
.setActivityInsertionCostCalculator (activityInsertion )
548
562
.build ();
549
- scorer = regretScorer ;
550
- regretInsertion .setScoringFunction (scorer );
563
+ regretInsertion .setRegretScoringFunction (regretScoringFunction );
551
564
regretInsertion .setDependencyTypes (constraintManager .getDependencyTypes ());
552
565
regret = regretInsertion ;
553
566
}
@@ -559,8 +572,7 @@ private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
559
572
.setAllowVehicleSwitch (toBoolean (getProperty (Parameter .VEHICLE_SWITCH .toString ())))
560
573
.setActivityInsertionCostCalculator (activityInsertion )
561
574
.build ();
562
- scorer = regretScorer ;
563
- regretInsertion .setScoringFunction (scorer );
575
+ regretInsertion .setRegretScoringFunction (regretScoringFunction );
564
576
regret = regretInsertion ;
565
577
}
566
578
} else {
@@ -572,8 +584,7 @@ private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
572
584
.considerFixedCosts (toDouble (getProperty (Parameter .FIXED_COST_PARAM .toString ())))
573
585
.setActivityInsertionCostCalculator (activityInsertion )
574
586
.build ();
575
- scorer = regretScorer ;
576
- regretInsertion .setScoringFunction (scorer );
587
+ regretInsertion .setRegretScoringFunction (regretScoringFunction );
577
588
regretInsertion .setDependencyTypes (constraintManager .getDependencyTypes ());
578
589
regret = regretInsertion ;
579
590
}
@@ -584,8 +595,7 @@ private VehicleRoutingAlgorithm create(final VehicleRoutingProblem vrp) {
584
595
.considerFixedCosts (toDouble (getProperty (Parameter .FIXED_COST_PARAM .toString ())))
585
596
.setActivityInsertionCostCalculator (activityInsertion )
586
597
.build ();
587
- scorer = regretScorer ;
588
- regretInsertion .setScoringFunction (scorer );
598
+ regretInsertion .setRegretScoringFunction (regretScoringFunction );
589
599
regret = regretInsertion ;
590
600
}
591
601
}
0 commit comments