private int calculateTripAmount(List<TaxiDemandPerLor> demandPerLor) {

    int amount = 0;
    for (TaxiDemandPerLor tdpl : demandPerLor) {
      amount += tdpl.getFromLor();
    }

    return amount;
  }
  private void addStartVehicles(int currentVeh, List<TaxiDemandPerLor> demandPerLor, int hr) {

    int amountOfTrips = this.calculateTripAmount(demandPerLor);
    int count = 0;

    for (TaxiDemandPerLor dpl : demandPerLor) {
      if (dpl.getFromLor() == 0) continue;
      double shareOfTripsFromHere = (double) dpl.getFromLor() / (double) amountOfTrips;
      long taxiAmountFromHere = Math.round(currentVeh * shareOfTripsFromHere);
      for (int i = 0; i < taxiAmountFromHere; i++) {
        Id<Vehicle> vid = Id.create("t_" + dpl.getFromId() + "_" + hr + "_" + i, Vehicle.class);
        VData v = new VData(vid, dpl.getFromId());
        int start = (hr % 24) * 3600 - 1800;
        int end = start + 7200 + rnd.nextInt(16 * 3600);
        v.t0 = start;
        v.t1 = end;
        vdata.add(v);
        count++;
      }
    }
    Collections.sort(demandPerLor);
    TaxiDemandPerLor dpl[] = {Collections.max(demandPerLor), demandPerLor.get(1)};
    int i = 0;
    int rest = currentVeh - count;
    while (rest > 0) {
      Id<Vehicle> vid =
          Id.create("t_" + dpl[i % 2].getFromId() + "_" + (hr % 24) + "_x" + i, Vehicle.class);
      VData v = new VData();
      i++;
      v.lor = dpl[i % 2].getFromId();
      v.vid = vid;
      int start = (hr % 24) * 3600 + rnd.nextInt(3600);
      int end = start + rnd.nextInt(8 * 3600);
      v.t0 = start;
      v.t1 = end;
      rest--;
      vdata.add(v);
    }
    System.out.println((hr % 24) + ": " + i);
  }