>> Hi, my name's Ashley Song.
I'm a Program Manager at Microsoft Maps and Geospatial Group.
Today, I welcome you to check out
our really released Multi-Itinerary Optimization API ,
proudly presented to you by Microsoft Maps team.
First of all, what are the use cases
of Multi-itinerary Optimization API?
There a lot of businesses; small, medium,
or large that focused on service dispatch,
field sales management, or customer pickup and deliveries.
For example, checks sending goods to
and from distribution centers, and retail stores.
Shuttle vehicles that pick up and
drop off passengers at different places.
Postal services delivering mails and packages,
waste collection, from commercial, or residential locations.
There are also professional analyst and personnel,
who visits difference worksites or homes for medical services,
home repairs, sales, food deliveries, and many more.
Traditionally, these route planning and
service dispatch have been done manually which is time-consuming,
and difficult to find optimal solutions,
especially as the number of stops increases.
If multiple driver need to be involved in servicing all the stops,
the complexity of dividing up all the stops
among the drivers goes up exponentially.
Our Multi-Itinerary Optimization API automates the process of
route optimization to save you
time and reduce your operational cost.
It does mark scheduling,
based on the business service time window
and the shifts of your drivers,
and it improves the productivity of your mobile workforce.
Here is a route optimization scenario on Microsoft campus.
A Microsoft shuttle starts from the commerce building and makes
for additional stops along
the route to pick up and drop off passengers,
and ends the route at building 33.
Without the optimization, if the driver goes to
the stops in a sequence of the requests,
the total travel distance will be 5.3 miles,
and it will take about 32 minutes to go to the final stop.
Using the Multi-Itinerary Optimization API,
the sequence of the stops is reordered
to optimize further travel time and travel distance.
For example, in the optimize route,
it's saved about 34 percent of the traveled distance,
and 26 percent of their travel time.
Here are more complex scenario.
If there are too many stops for one agent to visit,
we will need more drivers to service all of the stops,
and divide the stops among older drivers.
The purpose of the Multi-Itinerary Optimization API,
is to build multiple itineraries,
while optimizing the routes among
older drivers to save the travel time and travel distance.
The Multi-Itinerary Optimization API can handle multiple routes,
multiple agents, multiple shifts,
available time windows and priority of each location,
the dwell time at each location
while considering the predictive traffic time.
To configure for each agent,
we define one or multiple shifts.
Each shift is defined by a working hour window,
and start at end location for that shift.
Only during these hours we will
sketch itinerary item for that agents.
For each itinerary item,
you can configure a preferred time window
for one agent should visit,
and the dwell time at that location.
Without these constraints taking into consideration,
we build the optimize itinerary,
making sure that the agents arrive and leave
inside the defined availability time window.
The underlying mechanism of Multi-Itinerary Optimization API is
the distance matrix with traffic and
optimization algorithm we developed with Microsoft Research.
So what's distance matrix?
Distance matrix calculates the pairwise distance
and travel time among multiple locations.
As shown in this map Joe leave home
and have five worksites to visit today.
The table on the right calculates
the pairwise travelled distance among
his home and the five work sites.
Note that distance from home to job 1 may
not be the same as the distance from job 1 to home.
With a distance matrix,
we can find the optimal sequence
and routes for visiting older work sites.
The distance matrix can include the option of histogram of
travel times based on attempt window
and the predictive traffic at these times.
As shown on the map below,
the distance metrics with predictive traffic,
calculates the travel time and distance pair,
over a time window.
For example, you can specify
the time interval down to every 15 minutes.
For traveling between location one and location four,
you can see that there are two peak hours,
during the 24 hours time window.
The first peak around 8:00 a.m in the morning,
and the second peak around the 5:00 p.m in the afternoon.
Note that the travel distance between location one and location
four does not change during the 24 hours.
For traveling between locations three and five,
there are also two peaks,
around a.m and 5:00 p.m, respectively.
However, the travel distance actually varies throughout the day.
With our thumb, selecting
different route space on the predicted traffic patterns.
Especially from location three to location five,
you can see that distance matrix with predictive traffic
selects longer but faster route for the non-peak hours.
Here is another simple scenario for the API.
Two food inspectors, Charlie and Andre,
need to visit 13 restaurants for inspection.
The first table shows the shift information.
Charlie has two shifts during the day;
one before noon and one after his lunch break.
His second shift ends at home,
around 5:00 p.m. On the other hand,
Andre is only available in the afternoon and
want to start and end his shift at the same location.
The second table shows
the available hours and priority of each restaurants,
and the dwell time
the food inspector need to spend at each restaurants.
Note that the Monorail Espresso is only open from 7:00 a.m
to 1:00 p.m. Thai Grill has
a higher priority than other restaurants.
As we showed earlier,
Monorail Espresso only opens between 07:00 a.m and 1:00 p.m,
which routes out the inspector Andre,
who only worked in the afternoon.
The first shift of Charlie is
a perfect example showing how
time window constraints are considered.
The coffee shop is open end to 1:00 p.m,
and the API assigns Charlie to
arrive at the coffee shop before 11:00 a.m,
with plenty of time to finish his visit.
After his lunch break,
Charlie has four more additional stops
scheduled in his second shift
before arriving home at 05:00 p.m. Andre on the other hand,
start and ends his shift from the same location.
All his places are available in the afternoon,
including the high-priority location,
which is the Thai Grill.
All they're route optimization for
the day is done by the predefined shifts,
time we indulge, while considering the predictive traffic.
Now, I would like to give you a quick walkthrough of
how to use the Multi-Itinerary Optimization API.
Here is an example POST request body in JSON format.
We need to define information about the agents and their shifts.
In the POST body,
we define tissues for Charlie,
and one shift for Andre,
with the start and end locations and times in each shifts.
In the POST body,
we also need to define the operating hours,
dwell time, and priority of each location.
Once you have the POST body defined,
you can post a asynchronous request with
the agents shifts and itinerary items defined in the POST body.
You can use this http POST Request URL
with your own Bing Maps API key.
You can look at this snippet of
the JSON response returning information about the async request.
The response list the route instruction for each agents,
including leaving from the start location,
traveling between locations, and visiting each location.
The response also gave us a summary of the route for each agents,
such as lat-long of the start and end location,
and all the waypoints,
the total travel time and total travel distance.
The request is successful.
Http status code of 200 is returned.
That's all for the quick overview of
the Multi-Itinerary Optimization API.
For more inflammation and
the full request body examples of the API,
please visit our API documentation page.
You may also find information about our other route APIs,
such as Traffic Routing API,
[inaudible] API, Snap-to-Route API,
and our Bing Maps Route API page.
Thank you and I hope you have a great Microsoft Build 2019.