Partitioning of distance matrices

deals with computation of distance matrices
Post Reply
User avatar
Bernd Welter
Site Admin
Posts: 2664
Joined: Mon Apr 14, 2014 10:28 am
Contact:

Partitioning of distance matrices

Post by Bernd Welter »

Hi there,

this week several players asked me about almost the same requirement - here's the story, based on xServer2:
We have encountered a situation where we need a distance (and ETA) matrix exceeding the current limit of 250,000 relations. According to our estimates, we expect to work with matrices of approximately 3'000x3'000 in size.
I have learned that there may be a solution to increase this limit. Could you share your opinion on the feasibility of increasing the matrix size limit? Additionally, do you have a good walkthrough or guidelines on how we could achieve this?
So this stratement is driven by the usage of the distance matrix content not within the PTV servers but on the client side. So the user is familiar with the method com.ptvgroup.xserver.xdima.CreateAndGetDistanceMatrixRequest which offers
  • to create the dima content
  • to download the content on clientside
The information needed on the client side could be huge and therefore the download of a larger distance matrix is consuming bandwith / requires time. This is why CreateAndGetDistanceMatrixRequest is limited to "not more than 250'000 relations".

But: The internal calculation of distance matrices through the dima engine is not limited to such dimensions. As you can see in Dima calculation times xDima2 (HPR) we can compute much bigger matrices with up to (100'000)² relations. So the challenge is
If the huge data is produced and stored on the server: how to transfer it to the client without being restricted by the 250'000 limit?
Well : nobody said, that you have to consume the data in a single transaction. Just cut that thing into pieces!
Imagine a (3'000)² matrix created on the server via a single, regular com.ptvgroup.xserver.xdima.CreateDistanceMatrixRequest (based on HPR)
  • get 3'000 slices of the shape [1]:[3000] (3'000 relations each)
  • Or even bigger substructures such as 100 calls of shape [30]x[3000] (90'000 relations each)
each color displays a single com.ptvgroup.xserver.xdima.GetDistanceMatrixByLocationsRequest request
each color displays a single com.ptvgroup.xserver.xdima.GetDistanceMatrixByLocationsRequest request
dima.png (9.74 KiB) Viewed 14 times
Bernd Welter
Technical Partner Manager Developer Components
PTV Logistics - Germany

Bernd at... The Forum,LinkedIn, Youtube, StackOverflow
I like the smell of PTV Developer in the morning... :twisted:
Post Reply