How to Bike Transport Pune to Delhi
Recently we did a trip to Leh and we had to transport our bikes (bicycles) from Mangalore and Pune to Delhi.
See also questions close to this topic

Multitrip VRP with time windows: CPLEX error in solution
I am writing my master thesis en encountering a problem in the MTVRPTW solution, with catering flights from depot 1 to 112 flights. There are 11 vehicles available so I am looking for an optimal tour for 11 vehicles. My vehicles make trips, but for example go from 14, from 15, from 16 and do not make tours and/or refill at the depot...
Have tried adding constraints one by one, removing constraints. The delta decision variable is optional and is 1 if a flight is outsourced and 0 if not.
This is the full code I have now:
int trucks = ...; range S = 1..trucks; // Trucks k in S int nodes = ...; range N = 1..nodes; // Nodes i,j in N int arcs = ...; range A = 1..arcs; // Arcs i,j in A int T[N][N] = ...; // Travel time from aircraft i to aircraft j int d[N] = ...; // Demand aircraft i in N int Qmax = ...; // Max capacity of truck int e[N] = ...; // Time window opens int l[N] = ...; int T0 = ...; // Start of shift (5:00 AM) int Th = ...; // End of shift, length of planning horizon (22:30PM) dvar boolean x[N][N][S]; // x[i][j][k] yes or no dvar boolean xi[N][N][S]; // If visited with stop in between depot 0 dvar int+ q[N][S]; // Quantity aboard truck k in S //dvar int+ r[N]; // Arrival time at aircraft i in N dvar int+ u[N][S]; // Position of i in N on the tour // dvar boolean delta[N]; // Boolean 0 when aircraft is served, 1 if outsourced minimize sum (i,j in N, k in S) T[i][j] * x[i][j][k]; subject to{ forall (i in N) sum (j in N, k in S) x[i][j][k] == 1; // Tour must leave in city i forall (j in N) sum (i in N, k in S) x[i][j][k] == 1; // Tour must enter in city j forall (i in N : i != 1) sum (j in N, k in S) x[i][j][k] == 1; // Assignment constraint TSP forall (i in N) sum (i,j in N, k in S) x[i][j][k] == sum (i,j in N, k in S) x[j][i][k]; // Flow conservation forall (k in S) sum (j in N) x[1][j][k] == sum (j in N) x[j][1][k]; // No of arcs entering depot == leaving depot forall (i in N, k in S) sum (j in N : i != 1) q[i][k] >= d[i]; // Demand constraint forall (k in S) sum (i in N) q[i][k] <= Qmax; // Capacity constraint forall (i,j in N : i != j && j != 1, k in S) u[i][k] + 1 <= u[j][k] + nodes * (1  x[i][j][k]); // Decide positions along tour forall (i in N, k in S) x[i][i][k] == 0; // Eliminate subtours forall (i,j in N, k in S) q[i][k] + d[i] <= q[j][k] + Qmax * (1  x[i][j][k]); // Eliminate subtours, allows to count trolleys forall (i in N, j in N : i != 1, k in S) u[i][k] + T[i][j] <= u[i][k] + M * (1  xi[i][j][k]); // Arrival time at i + time i > j has <= arrival time at j forall (i,j in N, k in S) u[i][k] + (T[i][1] + T[1][j]) <= u[j][k] + M * (1  xi[i][j][k]); // Each truck can make multiple trips forall (i in N, k in S) T[1][i] <= u[i][k]; forall (i in N, k in S) u[i][k] <= Th  T0; // Arrival at j cannot be smaller than traveltime depot to j forall (i in N, k in S) sum (j in N) xi[i][j][k] <= x[i][1][k]; // Connect variables to return to depot forall (j in N, k in S) sum (i in N) xi[i][j][k] <= x[1][j][k]; // Connect variables to return to depot forall (i,j in N, k in S) e[i] >= u[i][k]; // Arrival time cannot be smaller than earliest time window forall (i,j in N, k in S) u[i][k] <= l[i]; // Arrival time cannot be greater than latest time window }
There are no error messages now, but expected is that trips are constructed per truck, and that variable xi (going from aircraft i to aircraft j via depot 0) is also taken by some trucks to get refilled.
Thank you!!

GraphHopper + Jsprit erroneous solution output in VRP (Curly Problem)
Me and my team have been using GraphHopper + Jsprit for almost 2 years now to solve VRPs. However, along all these years we have always dealt with a problem that happens on very specific situations when trying to solve certain points configurations. Specifically, this problem occurs when streets blocks are geographically arranged as a "square grid", and the points are very close to each other. This problem causes the route solution to be not optimized. We have called it "the curly problem". Since it makes vehicles to perform unnecessary "curls" or loops, before getting to the next point.
Configuration:
 1 COMMON PICKUP (grey) and 2 DELIVERIES (blue).
 Just one vehicle. Homogeneous fleet. NO skills. Infinite capacity. Cost by meter: 1. Algorithm iterations: 200. Not using a fixed order. Not using hints. Not using delay times at stops. No time windows constraints.
 Graphopper Version: '0.8.2'
 Jsprit Version: '1.7'
Computed solution: (green arrows are streets ways; number on points represent the order of the solution output; grey path is map matching based on the solution order)
This is not an optimized solution. We would expect the following map matching (red arrows) solution, which is achieved when point 2 and 3 are swapped:
Clearly this is a the optimal solution given the points configuration. And, as seen on figure 2, street ways (green arrows) perfectly allows this.
Is there any hints on how to solve this? Maybe some parameter of graphHopper or some parameter on the Vehicle or in the VRP?
Hypothesis we have theorized but not proved:
 Cost Matrix is not taking into account the direction the vehicle is going when arriving to a point. This is leading to an instant Uturn on arrival at any point. Which would make the outputted solution the optimal for the engine.
The curly problem can become as ugly as this:
Here we can clearly see the problem arising on 7 & 8 on 10 & 11, and along other points in the route. (ignore cars in Map, this VRP was solved using the same initial configuration as stated before. The only difference is that we are using more points)
Thanks for reading. Me and my team are looking forward for your suggestions!

How to do scheduling of orders based on some constraints using java/tools?
I want to schedule my order based on inventory requirement. Like, say I have N trucks, M drivers and want to deliver goods to different locations with some set of constraints. what is the best way to do that? Can I use optaPlanner for it and if yes how it will exactly fit my usecase? Should I write my own code(algorithm) or there are any tools for it.
I have tried this example: https://www.baeldung.com/optaplanner