Ready and Due parameters not working as expected


#1

Hi,

We are wanting to use RouteXL to optimise our property inspections for a given day for our inspectors.
As inspections get booked for a given day we want RouteXL to optimise the route for other inspections along with the property inspections already booked. We were hoping to use the Ready and Due fields to set them as static bookings and add other properties to be optimised and added the the route. We are finding the the Ready and Due fields aren’t working the way we need them to.

This is my request where all the properties have a ready a due time set so I can add other properties to be added around these addresses.
locations=
[
{
“address”: “Home Start?Rochedale South QLD 4123”,
“lat”: “-27.6”,
“lng”: “153.133333”,
“servicetime”: 0,
“ready”: 0,
“due”: 0
},
{
“address”: “434375?Stage 2 27-29 Industrial Avenue, MOLENDINAR QLD 4214”,
“lat”: “-27.9754359”,
“lng”: “153.3780932”,
“servicetime”: 120,
“ready”: 120,
“due”: 120
},
{
“address”: “582499?Unit 1/45 Paradise Parade, PARADISE POINT QLD 4216”,
“lat”: “-27.8899178”,
“lng”: “153.3897386”,
“servicetime”: 60,
“ready”: 240,
“due”: 240
},
{
“address”: “582739?Unit 2104/5 Harbour Side Court, BIGGERA WATERS QLD 4216”,
“lat”: “-27.9313887”,
“lng”: “153.3917674”,
“servicetime”: 60,
“ready”: 300,
“due”: 300
},
{
“address”: “570220?Unit 2/18 Bali Avenue, PALM BEACH QLD 4221”,
“lat”: “-28.124615”,
“lng”: “153.4681365”,
“servicetime”: 60,
“ready”: 420,
“due”: 420
},
{
“address”: “582850?525 Oyster Cove Promenade, HELENSVALE QLD 4212”,
“lat”: “-27.8880572”,
“lng”: “153.3534789”,
“servicetime”: 60,
“ready”: 510,
“due”: 510
},
{
“address”: “581284?9 Jilpangi Crescent, ASHMORE QLD 4214”,
“lat”: “-27.9841934”,
“lng”: “153.3796497”,
“servicetime”: 60,
“ready”: 600,
“due”: 600
}
]

The response doesn’t honour the ready and due time and is changing the inspection route booked order.
{
“id”: “83T361MP”,
“count”: 7,
“feasible”: true,
“route”: {
“0”: {
“name”: “Home Start?Rochedale South QLD 4123”,
“arrival”: 0,
“distance”: 0
},
“1”: {
“name”: “582850?525 Oyster Cove Promenade, HELENSVALE QLD 4212”,
“arrival”: 33,
“distance”: 45.7
},
“2”: {
“name”: “582499?Unit 1/45 Paradise Parade, PARADISE POINT QLD 4216”,
“arrival”: 100,
“distance”: 51.6
},
“3”: {
“name”: “582739?Unit 2104/5 Harbour Side Court, BIGGERA WATERS QLD 4216”,
“arrival”: 165,
“distance”: 56.9
},
“4”: {
“name”: “434375?Stage 2 27-29 Industrial Avenue, MOLENDINAR QLD 4214”,
“arrival”: 231,
“distance”: 62.4
},
“5”: {
“name”: “570220?Unit 2/18 Bali Avenue, PALM BEACH QLD 4221”,
“arrival”: 372,
“distance”: 90.4
},
“6”: {
“name”: “581284?9 Jilpangi Crescent, ASHMORE QLD 4214”,
“arrival”: 453,
“distance”: 117.3
}
}
}

What am I doing something wrong? Any help would be appreciated.


#2

First, the ready and due time should be part of the restrictions array. Next to that, the due time should be the moment when the inspection should be done, so including the servicetime. Also, we’d advise to give ready and due some slack, if your business allows that, so that the routing algorithm has a few more choices.

For example:

{
    "address": "434375?Stage 2 27-29 Industrial Avenue, MOLENDINAR QLD 4214",
    "lat": "-27.9754359",
    "lng": "153.3780932",
    "servicetime": 120,
    "restrictions": {
           "ready": 110,
           "due": 250
    }
}

And, the last location in your input array will be the arrival destination. If you add other properties, do not add them at the end of the input array, as the last one will not be optimised.


#3

Thank you very much for your reply. I’ll update the request method to add the restriction array and see how it responds