congrats Icon
New! Tabnine Pro 14-day free trial
Start a free trial
Tabnine Logo
TimeWindow
Code IndexAdd Tabnine to your IDE (free)

How to use
TimeWindow
in
com.graphhopper.jsprit.core.problem.solution.route.activity

Best Java code snippets using com.graphhopper.jsprit.core.problem.solution.route.activity.TimeWindow (Showing top 20 results out of 315)

origin: graphhopper/jsprit

public void add(TimeWindow timeWindow){
  for(TimeWindow tw : timeWindows){
    if(timeWindow.getStart() > tw.getStart() && timeWindow.getStart() < tw.getEnd()){
      throw new IllegalArgumentException("time-windows cannot overlap each other. overlap: " + tw + ", " + timeWindow);
    }
    if(timeWindow.getEnd() > tw.getStart() && timeWindow.getEnd() < tw.getEnd()){
      throw new IllegalArgumentException("time-windows cannot overlap each other. overlap: " + tw + ", " + timeWindow);
    }
    if(timeWindow.getStart() <= tw.getStart() && timeWindow.getEnd() >= tw.getEnd()){
      throw new IllegalArgumentException("time-windows cannot overlap each other. overlap: " + tw + ", " + timeWindow);
    }
  }
  timeWindows.add(timeWindow);
}
origin: graphhopper/jsprit

public Builder<T> addTimeWindow(double earliest, double latest) {
  return addTimeWindow(TimeWindow.newInstance(earliest, latest));
}
origin: graphhopper/jsprit

/**
 * Returns new instance of TimeWindow.
 *
 * @param start
 * @param end
 * @return TimeWindow
 * @throw IllegalArgumentException either if start or end < 0.0 or end < start
 */
public static TimeWindow newInstance(double start, double end) {
  return new TimeWindow(start, end);
}
origin: graphhopper/jsprit

@Override
public void informJobInserted(Job job2insert, VehicleRoute inRoute, double additionalCosts, double additionalTime) {
  Break aBreak = inRoute.getVehicle().getBreak();
  if(aBreak != null){
    boolean removed = inRoute.getTourActivities().removeJob(aBreak);
    if(removed){
      logger.trace("ruin: {}", aBreak.getId());
      stateManager.removed(aBreak,inRoute);
      stateManager.reCalculateStates(inRoute);
    }
    if(inRoute.getEnd().getArrTime() > aBreak.getTimeWindow().getEnd()){
      InsertionData iData = breakInsertionCalculator.getInsertionData(inRoute, aBreak, inRoute.getVehicle(), inRoute.getDepartureTime(), inRoute.getDriver(), Double.MAX_VALUE);
      if(!(iData instanceof InsertionData.NoInsertionFound)){
        logger.trace("insert: [jobId={}]{}", aBreak.getId(), iData);
        for(Event e : iData.getEvents()){
          eventListeners.inform(e);
        }
        stateManager.informJobInserted(aBreak,inRoute,0,0);
      }
    }
  }
}
origin: graphhopper/jsprit

  @Override
  public void informInsertionStarts(Collection<VehicleRoute> vehicleRoutes, Collection<Job> unassignedJobs) {
    for(VehicleRoute route : vehicleRoutes){
      Break aBreak = route.getVehicle().getBreak();
      if(aBreak != null && !route.getTourActivities().servesJob(aBreak)){
        if(route.getEnd().getArrTime() > aBreak.getTimeWindow().getEnd()){
          InsertionData iData = breakInsertionCalculator.getInsertionData(route, aBreak, route.getVehicle(), route.getDepartureTime(), route.getDriver(), Double.MAX_VALUE);
          if(!(iData instanceof InsertionData.NoInsertionFound)){
            logger.trace("insert: [jobId={}]{}", aBreak.getId(), iData);
            for(Event e : iData.getEvents()){
              eventListeners.inform(e);
            }
            stateManager.informJobInserted(aBreak,route,0,0);
          }
        }
      }
    }

  }
}
origin: graphhopper/jsprit

public Builder addDelivery(Shipment shipment, TimeWindow deliveryTimeWindow) {
  if (openShipments.contains(shipment)) {
    TourActivity act = openActivities.get(shipment);
    act.setTheoreticalEarliestOperationStartTime(deliveryTimeWindow.getStart());
    act.setTheoreticalLatestOperationStartTime(deliveryTimeWindow.getEnd());
    tourActivities.addActivity(act);
    openShipments.remove(shipment);
  } else {
    throw new IllegalArgumentException("cannot deliver shipment. shipment " + shipment + " needs to be picked up first.");
  }
  return this;
}
origin: graphhopper/jsprit

public Builder addDeliveryTimeWindow(double earliest, double latest) {
  addDeliveryTimeWindow(TimeWindow.newInstance(earliest, latest));
  return this;
}
origin: graphhopper/jsprit

  @Override
  public double getCosts(VehicleRoutingProblemSolution solution) {
    double costs = 0.;
    for (VehicleRoute route : solution.getRoutes()) {
      costs += route.getVehicle().getType().getVehicleCostParams().fix;
      boolean hasBreak = false;
      TourActivity prevAct = route.getStart();
      for (TourActivity act : route.getActivities()) {
        if (act instanceof BreakActivity) hasBreak = true;
        costs += vrp.getTransportCosts().getTransportCost(prevAct.getLocation(), act.getLocation(), prevAct.getEndTime(), route.getDriver(), route.getVehicle());
        costs += vrp.getActivityCosts().getActivityCost(act, act.getArrTime(), route.getDriver(), route.getVehicle());
        prevAct = act;
      }
      costs += vrp.getTransportCosts().getTransportCost(prevAct.getLocation(), route.getEnd().getLocation(), prevAct.getEndTime(), route.getDriver(), route.getVehicle());
      if (route.getVehicle().getBreak() != null) {
        if (!hasBreak) {
          //break defined and required but not assigned penalty
          if (route.getEnd().getArrTime() > route.getVehicle().getBreak().getTimeWindow().getEnd()) {
            costs += 4 * (maxCosts * 2 + route.getVehicle().getBreak().getServiceDuration() * route.getVehicle().getType().getVehicleCostParams().perServiceTimeUnit);
          }
        }
      }
    }
    for(Job j : solution.getUnassignedJobs()){
      costs += maxCosts * 2 * (11 - j.getPriority());
    }
    return costs;
  }
};
origin: com.graphhopper/jsprit-core

/**
 * Returns new instance of TimeWindow.
 *
 * @param start
 * @param end
 * @return TimeWindow
 * @throw IllegalArgumentException either if start or end < 0.0 or end < start
 */
public static TimeWindow newInstance(double start, double end) {
  return new TimeWindow(start, end);
}
origin: graphhopper/jsprit

public Builder addPickup(Shipment shipment, TimeWindow pickupTimeWindow) {
  if (openShipments.contains(shipment))
    throw new IllegalArgumentException("shipment has already been added. cannot add it twice.");
  List<AbstractActivity> acts = jobActivityFactory.createActivities(shipment);
  TourActivity act = acts.get(0);
  act.setTheoreticalEarliestOperationStartTime(pickupTimeWindow.getStart());
  act.setTheoreticalLatestOperationStartTime(pickupTimeWindow.getEnd());
  tourActivities.addActivity(act);
  openShipments.add(shipment);
  openActivities.put(shipment, acts.get(1));
  return this;
}
origin: graphhopper/jsprit

public Builder addPickupTimeWindow(double earliest, double latest) {
  return addPickupTimeWindow(TimeWindow.newInstance(earliest, latest));
}
origin: com.graphhopper/jsprit-core

@Override
public void informJobInserted(Job job2insert, VehicleRoute inRoute, double additionalCosts, double additionalTime) {
  Break aBreak = inRoute.getVehicle().getBreak();
  if(aBreak != null){
    boolean removed = inRoute.getTourActivities().removeJob(aBreak);
    if(removed){
      logger.trace("ruin: {}", aBreak.getId());
      stateManager.removed(aBreak,inRoute);
      stateManager.reCalculateStates(inRoute);
    }
    if(inRoute.getEnd().getArrTime() > aBreak.getTimeWindow().getEnd()){
      InsertionData iData = breakInsertionCalculator.getInsertionData(inRoute, aBreak, inRoute.getVehicle(), inRoute.getDepartureTime(), inRoute.getDriver(), Double.MAX_VALUE);
      if(!(iData instanceof InsertionData.NoInsertionFound)){
        logger.trace("insert: [jobId={}]{}", aBreak.getId(), iData);
        for(Event e : iData.getEvents()){
          eventListeners.inform(e);
        }
        stateManager.informJobInserted(aBreak,inRoute,0,0);
      }
    }
  }
}
origin: PGWelch/com.opendoorlogistics

TimeWindow twObj = new TimeWindow(tw[0].getTotalMilliseconds(), tw[1].getTotalMilliseconds());
if (i == 0) {
  builder.setPickupTimeWindow(twObj);
origin: graphhopper/jsprit

public Builder addService(Service service, TimeWindow timeWindow) {
  if (service == null) throw new IllegalArgumentException("service must not be null");
  List<AbstractActivity> acts = jobActivityFactory.createActivities(service);
  TourActivity act = acts.get(0);
  act.setTheoreticalEarliestOperationStartTime(timeWindow.getStart());
  act.setTheoreticalLatestOperationStartTime(timeWindow.getEnd());
  tourActivities.addActivity(act);
  return this;
}
origin: graphhopper/jsprit

Builder(String id) {
  if (id == null) throw new IllegalArgumentException("id must not be null");
  this.id = id;
  pickupTimeWindows = new TimeWindowsImpl();
  pickupTimeWindows.add(TimeWindow.newInstance(0.0, Double.MAX_VALUE));
  deliveryTimeWindows = new TimeWindowsImpl();
  deliveryTimeWindows.add(TimeWindow.newInstance(0.0, Double.MAX_VALUE));
}
origin: com.graphhopper/jsprit-core

  @Override
  public void informInsertionStarts(Collection<VehicleRoute> vehicleRoutes, Collection<Job> unassignedJobs) {
    for(VehicleRoute route : vehicleRoutes){
      Break aBreak = route.getVehicle().getBreak();
      if(aBreak != null && !route.getTourActivities().servesJob(aBreak)){
        if(route.getEnd().getArrTime() > aBreak.getTimeWindow().getEnd()){
          InsertionData iData = breakInsertionCalculator.getInsertionData(route, aBreak, route.getVehicle(), route.getDepartureTime(), route.getDriver(), Double.MAX_VALUE);
          if(!(iData instanceof InsertionData.NoInsertionFound)){
            logger.trace("insert: [jobId={}]{}", aBreak.getId(), iData);
            for(Event e : iData.getEvents()){
              eventListeners.inform(e);
            }
            stateManager.informJobInserted(aBreak,route,0,0);
          }
        }
      }
    }

  }
}
origin: PGWelch/com.opendoorlogistics

private Service buildStop(ODLTableReadOnly table, int row, StopsTableDefn dfn, Service.Builder builder) {
  LatLong ll = dfn.latLong.getLatLong(table, row,false);
  
  Location location = Location.newInstance(locs.addLatLong(ll));
  builder.setLocation(location);
  
  // validate and add quantities
  for (int q = 0; q < dfn.quantityIndices.length; q++) {
    builder.addSizeDimension(q, dfn.getQuantity(table, row, q));
  }
  // validate and set service duration
  if (dfn.serviceDuration != -1) {
    builder.setServiceTime(dfn.getDuration(table, row).getTotalMilliseconds());
  }
  // validate and set time window
  ODLTime[] tw = dfn.getTW(table, row);
  if (tw != null) {
    builder.setTimeWindow(new TimeWindow(tw[0].getTotalMilliseconds(), tw[1].getTotalMilliseconds()));
  }
  // add required skills
  for(String skill: getSkillsArray((String)table.getValueAt(row, dfn.requiredSkills))){
    builder.addRequiredSkill(skill);
  }
  return builder.build();
}
origin: graphhopper/jsprit

private Builder addBreakInternally(Break currentBreak, TimeWindow timeWindow, Location breakLocation) {
  List<AbstractActivity> acts = jobActivityFactory.createActivities(currentBreak);
  BreakActivity act = (BreakActivity) acts.get(0);
  act.setTheoreticalEarliestOperationStartTime(timeWindow.getStart());
  act.setTheoreticalLatestOperationStartTime(timeWindow.getEnd());
  act.setLocation(breakLocation);
  tourActivities.addActivity(act);
  return this;
}
origin: graphhopper/jsprit

Builder(String id){
  this.id = id;
  timeWindows = new TimeWindowsImpl();
  timeWindows.add(TimeWindow.newInstance(0.0, Double.MAX_VALUE));
}
origin: com.graphhopper/jsprit-core

  @Override
  public double getCosts(VehicleRoutingProblemSolution solution) {
    double costs = 0.;
    for (VehicleRoute route : solution.getRoutes()) {
      costs += route.getVehicle().getType().getVehicleCostParams().fix;
      boolean hasBreak = false;
      TourActivity prevAct = route.getStart();
      for (TourActivity act : route.getActivities()) {
        if (act instanceof BreakActivity) hasBreak = true;
        costs += vrp.getTransportCosts().getTransportCost(prevAct.getLocation(), act.getLocation(), prevAct.getEndTime(), route.getDriver(), route.getVehicle());
        costs += vrp.getActivityCosts().getActivityCost(act, act.getArrTime(), route.getDriver(), route.getVehicle());
        prevAct = act;
      }
      costs += vrp.getTransportCosts().getTransportCost(prevAct.getLocation(), route.getEnd().getLocation(), prevAct.getEndTime(), route.getDriver(), route.getVehicle());
      if (route.getVehicle().getBreak() != null) {
        if (!hasBreak) {
          //break defined and required but not assigned penalty
          if (route.getEnd().getArrTime() > route.getVehicle().getBreak().getTimeWindow().getEnd()) {
            costs += 4 * (maxCosts * 2 + route.getVehicle().getBreak().getServiceDuration() * route.getVehicle().getType().getVehicleCostParams().perServiceTimeUnit);
          }
        }
      }
    }
    for(Job j : solution.getUnassignedJobs()){
      costs += maxCosts * 2 * (11 - j.getPriority());
    }
    return costs;
  }
};
com.graphhopper.jsprit.core.problem.solution.route.activityTimeWindow

Javadoc

TimeWindow consists of a startTime and endTime.

Most used methods

  • getEnd
    Returns endTime of TimeWindow.
  • getStart
    Returns startTime of TimeWindow.
  • newInstance
    Returns new instance of TimeWindow.
  • <init>
    Constructs the timeWindow

Popular in Java

  • Updating database using SQL prepared statement
  • getSharedPreferences (Context)
  • orElseThrow (Optional)
    Return the contained value, if present, otherwise throw an exception to be created by the provided s
  • addToBackStack (FragmentTransaction)
  • FlowLayout (java.awt)
    A flow layout arranges components in a left-to-right flow, much like lines of text in a paragraph. F
  • InputStreamReader (java.io)
    A class for turning a byte stream into a character stream. Data read from the source input stream is
  • SimpleDateFormat (java.text)
    Formats and parses dates in a locale-sensitive manner. Formatting turns a Date into a String, and pa
  • Collections (java.util)
    This class consists exclusively of static methods that operate on or return collections. It contains
  • JCheckBox (javax.swing)
  • Join (org.hibernate.mapping)
  • Sublime Text for Python
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimAtomGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyStudentsTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now