mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
add insertion index to JobInsertionContext
This commit is contained in:
parent
278f1149ab
commit
0e80c0ab50
3 changed files with 25 additions and 6 deletions
|
|
@ -23,6 +23,7 @@ import jsprit.core.problem.cost.VehicleRoutingTransportCosts;
|
|||
import jsprit.core.problem.driver.Driver;
|
||||
import jsprit.core.problem.job.Job;
|
||||
import jsprit.core.problem.job.Service;
|
||||
import jsprit.core.problem.misc.ActivityContext;
|
||||
import jsprit.core.problem.misc.JobInsertionContext;
|
||||
import jsprit.core.problem.solution.route.VehicleRoute;
|
||||
import jsprit.core.problem.solution.route.activity.End;
|
||||
|
|
@ -134,6 +135,9 @@ final class ServiceInsertionCalculator implements JobInsertionCostsCalculator {
|
|||
for(TimeWindow timeWindow : service.getTimeWindows()) {
|
||||
deliveryAct2Insert.setTheoreticalEarliestOperationStartTime(timeWindow.getStart());
|
||||
deliveryAct2Insert.setTheoreticalLatestOperationStartTime(timeWindow.getEnd());
|
||||
ActivityContext activityContext = new ActivityContext();
|
||||
activityContext.setInsertionIndex(actIndex);
|
||||
insertionContext.setActivityContext(activityContext);
|
||||
ConstraintsStatus status = hardActivityLevelConstraint.fulfilled(insertionContext, prevAct, deliveryAct2Insert, nextAct, prevActStartTime);
|
||||
if (status.equals(ConstraintsStatus.FULFILLED)) {
|
||||
double additionalICostsAtActLevel = softActivityConstraint.getCosts(insertionContext, prevAct, deliveryAct2Insert, nextAct, prevActStartTime);
|
||||
|
|
|
|||
|
|
@ -141,6 +141,9 @@ final class ShipmentInsertionCalculator implements JobInsertionCostsCalculator {
|
|||
for(TimeWindow pickupTimeWindow : shipment.getPickupTimeWindows()) {
|
||||
pickupShipment.setTheoreticalEarliestOperationStartTime(pickupTimeWindow.getStart());
|
||||
pickupShipment.setTheoreticalLatestOperationStartTime(pickupTimeWindow.getEnd());
|
||||
ActivityContext activityContext = new ActivityContext();
|
||||
activityContext.setInsertionIndex(i);
|
||||
insertionContext.setActivityContext(activityContext);
|
||||
ConstraintsStatus pickupShipmentConstraintStatus = hardActivityLevelConstraint.fulfilled(insertionContext, prevAct, pickupShipment, nextAct, prevActEndTime);
|
||||
if (pickupShipmentConstraintStatus.equals(ConstraintsStatus.NOT_FULFILLED)) {
|
||||
pickupInsertionNotFulfilledBreak = false;
|
||||
|
|
@ -184,7 +187,9 @@ final class ShipmentInsertionCalculator implements JobInsertionCostsCalculator {
|
|||
for (TimeWindow deliveryTimeWindow : shipment.getDeliveryTimeWindows()) {
|
||||
deliverShipment.setTheoreticalEarliestOperationStartTime(deliveryTimeWindow.getStart());
|
||||
deliverShipment.setTheoreticalLatestOperationStartTime(deliveryTimeWindow.getEnd());
|
||||
|
||||
ActivityContext activityContext_ = new ActivityContext();
|
||||
activityContext.setInsertionIndex(j);
|
||||
insertionContext.setActivityContext(activityContext_);
|
||||
ConstraintsStatus deliverShipmentConstraintStatus = hardActivityLevelConstraint.fulfilled(insertionContext, prevAct_deliveryLoop, deliverShipment, nextAct_deliveryLoop, prevActEndTime_deliveryLoop);
|
||||
if (deliverShipmentConstraintStatus.equals(ConstraintsStatus.FULFILLED)) {
|
||||
double additionalDeliveryICosts = softActivityConstraint.getCosts(insertionContext, prevAct_deliveryLoop, deliverShipment, nextAct_deliveryLoop, prevActEndTime_deliveryLoop);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,9 @@ public class JobInsertionContext {
|
|||
|
||||
private List<TourActivity> associatedActivities = new ArrayList<TourActivity>();
|
||||
|
||||
private ActivityContext pickupContext;
|
||||
private ActivityContext activityContext;
|
||||
|
||||
private ActivityContext relatedActivityContext;
|
||||
|
||||
/**
|
||||
* Returns the existing route where the .getJob() needs to be inserted in.
|
||||
|
|
@ -116,10 +118,10 @@ public class JobInsertionContext {
|
|||
/**
|
||||
* Sets pickup context.
|
||||
*
|
||||
* @param pickupContext pickup context
|
||||
* @param relatedActivityContext pickup context
|
||||
*/
|
||||
public void setRelatedActivityContext(ActivityContext pickupContext) {
|
||||
this.pickupContext = pickupContext;
|
||||
public void setRelatedActivityContext(ActivityContext relatedActivityContext) {
|
||||
this.relatedActivityContext = relatedActivityContext;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -128,6 +130,14 @@ public class JobInsertionContext {
|
|||
* @return pickup context
|
||||
*/
|
||||
public ActivityContext getRelatedActivityContext() {
|
||||
return this.pickupContext;
|
||||
return this.relatedActivityContext;
|
||||
}
|
||||
|
||||
public void setActivityContext(ActivityContext activityContext){
|
||||
this.activityContext = activityContext;
|
||||
}
|
||||
|
||||
public ActivityContext getActivityContext(){
|
||||
return this.activityContext;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue