1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

some renaming

This commit is contained in:
Stefan Schroeder 2013-08-23 15:19:41 +02:00
parent 3bf9c288ca
commit 2b1203e4ab
8 changed files with 47 additions and 47 deletions

View file

@ -16,6 +16,7 @@ import org.apache.log4j.Logger;
import util.Neighborhood;
import algorithms.HardConstraints.HardRouteLevelConstraint;
import algorithms.MarginalsCalculus.Marginals;
import basics.Job;
import basics.Service;
import basics.costs.VehicleRoutingTransportCosts;
@ -76,8 +77,8 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
if(jobToInsert == null) throw new IllegalStateException("jobToInsert is missing.");
if(newVehicle == null || newVehicle instanceof NoVehicle) throw new IllegalStateException("newVehicle is missing.");
InsertionFacts iFacts = new InsertionFacts(currentRoute, jobToInsert, newVehicle, newDriver, newVehicleDepartureTime);
if(!hardRouteLevelConstraint.fulfilled(new InsertionScenario(iFacts, null))){
InsertionContext insertionContext = new InsertionContext(currentRoute, jobToInsert, newVehicle, newDriver, newVehicleDepartureTime);
if(!hardRouteLevelConstraint.fulfilled(insertionContext)){
return InsertionData.noInsertionFound();
}
@ -101,7 +102,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
break;
}
if(neighborhood.areNeighbors(deliveryAct2Insert.getLocationId(), prevAct.getLocationId()) && neighborhood.areNeighbors(deliveryAct2Insert.getLocationId(), nextAct.getLocationId())){
Marginals mc = calculate(iFacts, prevAct, nextAct, deliveryAct2Insert, prevActStartTime);
Marginals mc = calculate(insertionContext, prevAct, nextAct, deliveryAct2Insert, prevActStartTime);
if(mc != null){
if(mc.getAdditionalCosts() < bestCost){
bestCost = mc.getAdditionalCosts();
@ -116,7 +117,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
}
End nextAct = end;
if(neighborhood.areNeighbors(deliveryAct2Insert.getLocationId(), prevAct.getLocationId()) && neighborhood.areNeighbors(deliveryAct2Insert.getLocationId(), nextAct.getLocationId())){
Marginals mc = calculate(iFacts, prevAct, nextAct, deliveryAct2Insert, prevActStartTime);
Marginals mc = calculate(insertionContext, prevAct, nextAct, deliveryAct2Insert, prevActStartTime);
if(mc != null) {
if(mc.getAdditionalCosts() < bestCost){
bestCost = mc.getAdditionalCosts();
@ -135,7 +136,7 @@ final class CalculatesServiceInsertion implements JobInsertionCalculator{
return insertionData;
}
public Marginals calculate(InsertionFacts iFacts, TourActivity prevAct, TourActivity nextAct, TourActivity newAct, double departureTimeAtPrevAct) {
public Marginals calculate(InsertionContext iFacts, TourActivity prevAct, TourActivity nextAct, TourActivity newAct, double departureTimeAtPrevAct) {
return marginalCalculus.calculate(iFacts, prevAct, nextAct, newAct, departureTimeAtPrevAct);
}

View file

@ -7,13 +7,13 @@ class HardConstraints {
interface HardRouteLevelConstraint {
public boolean fulfilled(InsertionScenario iScenario);
public boolean fulfilled(InsertionContext insertionContext);
}
interface HardActivityLevelConstraint {
public boolean fulfilled(InsertionFacts iFacts, TourActivity act, double arrTime);
public boolean fulfilled(InsertionContext iFacts, TourActivity act, double arrTime);
}
@ -27,10 +27,10 @@ class HardConstraints {
}
@Override
public boolean fulfilled(InsertionScenario iScenario) {
int currentLoad = (int) states.getRouteState(iScenario.getiFacts().getRoute(), StateTypes.LOAD).toDouble();
Service service = (Service) iScenario.getiFacts().getJob();
if(currentLoad + service.getCapacityDemand() > iScenario.getiFacts().getNewVehicle().getCapacity()){
public boolean fulfilled(InsertionContext insertionContext) {
int currentLoad = (int) states.getRouteState(insertionContext.getRoute(), StateTypes.LOAD).toDouble();
Service service = (Service) insertionContext.getJob();
if(currentLoad + service.getCapacityDemand() > insertionContext.getNewVehicle().getCapacity()){
return false;
}
return true;
@ -47,7 +47,7 @@ class HardConstraints {
}
@Override
public boolean fulfilled(InsertionFacts iFacts, TourActivity act, double arrTime) {
public boolean fulfilled(InsertionContext iFacts, TourActivity act, double arrTime) {
if(arrTime > states.getActivityState(act, StateTypes.LATEST_OPERATION_START_TIME).toDouble()){
return false;
}

View file

@ -5,7 +5,7 @@ import basics.route.Driver;
import basics.route.Vehicle;
import basics.route.VehicleRoute;
class InsertionFacts {
class InsertionContext {
private VehicleRoute route;
private Job job;
@ -48,7 +48,7 @@ class InsertionFacts {
return newDepTime;
}
public InsertionFacts(VehicleRoute route, Job job, Vehicle newVehicle,
public InsertionContext(VehicleRoute route, Job job, Vehicle newVehicle,
Driver newDriver, double newDepTime) {
super();
this.route = route;

View file

@ -2,9 +2,9 @@ package algorithms;
class InsertionScenario {
InsertionFacts iFacts;
InsertionContext iFacts;
InsertionData iData;
public InsertionScenario(InsertionFacts iFacts, InsertionData iData) {
public InsertionScenario(InsertionContext iFacts, InsertionData iData) {
super();
this.iFacts = iFacts;
this.iData = iData;
@ -12,7 +12,7 @@ class InsertionScenario {
/**
* @return the iFacts
*/
public InsertionFacts getiFacts() {
public InsertionContext getiFacts() {
return iFacts;
}
/**

View file

@ -1,27 +0,0 @@
package algorithms;
class Marginals {
private double additionalCosts;
private double additionalTime;
public Marginals(double additionalCosts, double additionalTime) {
super();
this.additionalCosts = additionalCosts;
this.additionalTime = additionalTime;
}
/**
* @return the additionalCosts
*/
public double getAdditionalCosts() {
return additionalCosts;
}
/**
* @return the additionalTime
*/
public double getAdditionalTime() {
return additionalTime;
}
}

View file

@ -4,6 +4,32 @@ import basics.route.TourActivity;
interface MarginalsCalculus {
Marginals calculate(InsertionFacts iFacts, TourActivity prevAct, TourActivity nextAct, TourActivity newAct, double depTimeAtPrevAct);
class Marginals {
private double additionalCosts;
private double additionalTime;
public Marginals(double additionalCosts, double additionalTime) {
super();
this.additionalCosts = additionalCosts;
this.additionalTime = additionalTime;
}
/**
* @return the additionalCosts
*/
public double getAdditionalCosts() {
return additionalCosts;
}
/**
* @return the additionalTime
*/
public double getAdditionalTime() {
return additionalTime;
}
}
Marginals calculate(InsertionContext iContext, TourActivity prevAct, TourActivity nextAct, TourActivity newAct, double depTimeAtPrevAct);
}

View file

@ -20,7 +20,7 @@ class MarginalsCalculusTriangleInequality implements MarginalsCalculus{
}
@Override
public Marginals calculate(InsertionFacts iFacts, TourActivity prevAct, TourActivity nextAct, TourActivity newAct, double depTimeAtPrevAct) {
public Marginals calculate(InsertionContext iFacts, TourActivity prevAct, TourActivity nextAct, TourActivity newAct, double depTimeAtPrevAct) {
double tp_costs_prevAct_newAct = routingCosts.getTransportCost(prevAct.getLocationId(), newAct.getLocationId(), depTimeAtPrevAct, iFacts.getNewDriver(), iFacts.getNewVehicle());
double tp_time_prevAct_newAct = routingCosts.getTransportTime(prevAct.getLocationId(), newAct.getLocationId(), depTimeAtPrevAct, iFacts.getNewDriver(), iFacts.getNewVehicle());

View file

@ -36,7 +36,7 @@ public class BuildCVRPAlgoFromScratchTest {
HardActivityLevelConstraint hardActLevelConstraint = new HardActivityLevelConstraint() {
@Override
public boolean fulfilled(InsertionFacts iFacts, TourActivity act, double arrTime) {
public boolean fulfilled(InsertionContext iFacts, TourActivity act, double arrTime) {
return true;
}
};