Predictive Arrival


Published on

Predictive arrival solution for last-mile package deliveries. Implemented at Ensenda, Inc.

Published in: Technology
  • Be the first to comment

Predictive Arrival

  1. 1. APAS:AgentNetPredictive ArrivalService
  2. 2. What is APAS?2Software service whichgenerates end-user packagearrival times based onnumerous events (actual andpredicted) that occur during adelivery
  3. 3. Introduction•  Provides predictive arrival times for packagedeliveries.•  Accuracy based on telemetry data from numerousresources (carriers, live traffic streams, GPSdevices).•  Supports a number of heuristic rules to ensurequality and end-user acceptable predictions.•  Provides an external interface to drop in third-party predictive services.•  Allows carriers to contribute at run-time to APAS inheuristics and actual ETA times. For example,providing length of time to unload a package.3
  4. 4. Contributions•  Research papers – examples:•  “Hybrid Predictive Control Strategy for a public TransportSystem with Uncertain Demand”.•  “Integration of Predictive Routing Information with dynamicTraffic Signal Control”.•  “Agent-Based Approaches to Transportation Logistics”.•  “The Use of Integrated Historical and Predictive Data toSupport Flight Planning by Airline Dispatchers”.•  Studies/Research Organizations•  Committee on New Transportation Systems and Technology.•  Transportation Research Board•  Transit Cooperative Research Program•  Texas Transportation Institute•  Open Source and APIs•  OpenGTS – open GPS management system•  GeoBase – Application Programming Interface•  Existing vendors•  FltAdvisor – predictive arrival for airline flights•  INRIX – traffic information•  GeoBase4
  5. 5. 5Types of TelemetryStop 1 Stop 3Stop 2GPS ActivitiesDelivery Activities(e.g. DELIVERED STOP 3)Distance/Travel Time(PCMiler, Haversine Formula)RouteRoute GenerationPackage Activities(Scanning)Stop 0
  6. 6. Telemetry Use• Telemetry helps:– Determine the current state andprogress of the delivery vehicle.– Determine the impact of anevent on a predicted value. Forexample, how does an eventsuch as a traffic accident effectthe travel time between twostops.6
  7. 7. Predicted Arrival Times• Each generated predicted arrival timeis accompanied by a confidence level:• Level 1: Highest confidence. Value basedon GPS, accurate distance/travel data,access to GPS-decoding facility, and trafficinformation. We don’t currently generatelevel 1 prediction values.• Level 2: Value based on GPS and accessto GPS-decoding facility.• Level 3: Value based solely on estimates.• Level 4: Value based on heuristics(market site, travel, distance, etc.).7
  8. 8. What is a Prediction?8Arrival Time =∑ dwell + (distance / speed ) + delayi = mn-1i i i inArrival Time at stop n is the sum ofthe dwell time, travel time, and delayfor each stop between the currentstop m and stop n.Stop m + 1 Stop n - 1Stop m + 2Stop m Stop n…
  9. 9. Better Predictions• A good prediction depends on gettingthe best prediction values for:– Dwell Time: how long a driver remains ata stop for delivering a package(unloading).– Delay Time: amount of time the driver maybe delayed (for example, lunch).– Distance: distance between two stops.– Speed: speed of the vehicle.9
  10. 10. Better Predictions• Additional telemetry data points includingcross-boundaries (route overlaps).• Better application of heuristics. Forexample, multiple sets of heuristics basedon region, population density (city),carrier, vehicle type, product type,weather.• Better application of algorithms derivedfrom research into predictive arrival.10
  11. 11. Analysis Filter Service• Transportation studies on predictivearrival times indicate specific end-user reactions to arrival values.• Studies indicate you cannot merelydisplay every generated arrival time.• The Analysis Filter Service employsheuristics described in thetransportation studies.• The Analysis Filter Service uses theprediction confidence levelsgenerated by the Prediction Engine.11
  12. 12. Analysis Filter Service - Example12Tracking ScreenRequest ETAPredictiveEngineAnalysisFilterPredict ArrivalPrediction:12/4 at 10:00Level 4But it’s scheduledfor 12/1 at 2:00ETA12/1 at 2:00
  13. 13. GPS• GPS is used for :–  Current location of a delivery vehicle.Distance from stop indicated on trackingweb page.–  If the vehicle is in the geozone (vicinity) ofa route stop. Useful for route stops thatdo not represent a vendor delivery (3rdparty).•  GPS cannot tell us:–  If we have visited a route stop.–  If we are between two adjacent routestops since we don’t know the route.–  Speed of the vehicle.–  Traffic congestion.13
  14. 14. 14GPS IssuesGPS 1Where Am I in the route given the GPS values?GPS 3GPS 2
  15. 15. 15GPS: 3rd Party DeliveriesStop 1 Stop 3Stop 2GeoZone (virtual boundary)GPS ActivitiesCurrent Stop (location within GeoZone)Stop 0
  16. 16. • Designed to support the processing oflarge volumes of telemetry data.• For fast response, predictions arecalculated at telemetry time, not atrequest time.• Designed to incorporate any number ofadditional telemetry streams such astraffic information sources, traffic alerts,and third-party data streams.16Architecture
  17. 17. Architecture: The Carrier Route17•  Central internal data structure for ETA.•  Sent by the carrier to AgentNet.•  Stored at AgentNet.•  Supports multiple delivery requests.•  Contains deliveries for one carrier.•  Contains deliveries for one driver.•  Stores the predictive (ETA) values.•  Stores all heuristics (e.g. market siteestimates, speed, distance).Delivery request A DestinationDelivery request B DestinationDwell TimeSpeed to Next StopDelay to Next StopTravel Time to Next StopPredicted ArrivalPredicted DepartureStop 0Stop 1Stop 2Stop 3CarrierRouteLast StopSpeed HeuristicDistance HeuristicTravel Time HeuristicLast GPS LatitudeLast GPS LongitudeOrigin (Cross Dock)Distance from vehicleScheduled deliverytime
  18. 18. 18Architecture: Process1.  Collect And Apply Telemetry(including prediction generation)Stop 0Stop 1Stop 2CarrierRoute2. Provide PredictionsRoute constructionand maintenanceRoute reference
  19. 19. 19ArchitecturePredictiveAnalysis FilterTelemetry(Data Flow)ManagerPredictiveEngineTracking Screen / End Recipient1.  Receives request for ETA.2.  Requests Prediction from Prediction Engine3.  Analyze results to determine appropriate response.4.  Sends response to end recipient.Carrier TelemetryGenerate PredictionsRequest PredictionAgentnetETA Service(interface toexternal callers)predict ( tracking number)
  20. 20. • The Telemetry Data Flow Manager isresponsible for:• Collecting Telemetry• Constructing the appropriate data flows forsupported telemetry types (routes, activities,GPS, heuristics)• Executing constructed data flows• Requesting prediction generation for anyaffected routes• Posting notifications for end-recipientsubscribers20ARCHITECTURE: Telemetry Data Flow Manager
  21. 21. 21ARCHITECTURE: Telemetry Processing via Data FlowsTelemetryDataFlowManagerTelemetry DataGPSMarket-SiteEstimateHeuristicsConstruct data flow
  22. 22. 22ARCHITECTURE: Delivery RequestCarrier Route(single stop)Stop 0Stop 1Source (Leg Origin)PredictiveDataFlowManagerMerchant Telemetry (Delivery Request)Destination (Leg Destination)DeliveryTelemetryMarketSiteTelemetryDistanceTelemetryHeuristicsTelemetry
  23. 23. 23ARCHITECTURE: Carrier RouteCarrier RouteStop 0Stop 1Stop 2Stop 3Predictive DataManagerCarrier Telemetry (Carrier Route)Carrier RouteStop 0Stop 1Carrier RouteStop 0Stop 1Construct Route(discard associateddelivery routes)DeliveryTelemetryDistanceTelemetryMarketSiteTelemetry
  24. 24. Predictive Heuristics24Receive Request (best/worst)Shipped From DC(best/worst)Arrived at LDP (best/worst)Picked Up (best/worst)Carrier RouteMarket Estimate (best/worst)ReceiveRequest + ShippedFromDC + ArrivedLDP + PickedUpLDP = Market EstimateHeuristic (in hours)in transit
  25. 25. • Estimations from historical data for:– Typical vehicle speed– Typical distance between stops– Typical travel time between stops– Typical stop dwell time (e.g. time to unloadpackages)25Predictive Heuristics
  26. 26. Predictive Arrival Service (ETA)26INTERNALS
  27. 27. •  Individual JAR. No longer part of the“com.agentnet.service” name family.•  Considered at the same level as the “Services” layer inthe AgentNet Architecture.•  Does not access any class in the Service layer (duplicatesa few service classes to accomplish this).•  Name family for the Predictive Service is“com.agentnet.predictive”.•  For every interface class, there is a correspondingimplementation class with the name “Standard<interfaceclass name>”. Allows to easily “load” a layer ofassociated classes.•  External interface which is available to outside vendorsis “org. smarttransportnetwork.epas”.•  All Agent-based services will use the family name“org.smarttransportnetwork”.27Internals: AgentNet Predictive Service
  28. 28. •  Predictive codeline is divided into five paths:–  Statistics (package com.agentnet.epas.statistics).Provides management and processing of statisticalinformation relating to routes, route-based deliveries,and predictive events.–  Data (package Providesmanagement and processing of data associated withpredictive arrival (e.g. telemetry, geozones,geopoints).–  GIS (package com.agentnet.epas.gis). Providesabstraction layer for existing geospatial informationsystems such as Google and PCMiler.–  Runtime (package com.agentnet.epas.runtime).Provides runtime processing of the predictive serviceincluding filtering and the prediction engine.–  External interfaces (packageorg.natltransportgrid.epas). Interfaces available tothe outside world.28Internals: General Code Structure
  29. 29. 29Internals: Data Code Structurecom.agentnet.epas.dataTelemetry(handlers)ManagerPredictiveCarrierRoutePredictiveCarrierRouteStopStandardTelemetryDataFlowManagerLocationTelemetryDomainStandardETADataManagerStandardRouteStopManagerMarketSiteTelemetryDistanceTelemetryGPSLocationTelemetryGeoPoint GeoZone
  30. 30. 30Friday, January 4, 2013Agentnet Company ConfidentialInternals: Runtime Code Structurecom.agentnet.epas.runtimeenginefilterStandardETAAnalysisFilter StandardPredictiveEngineserviceStandardETAServicecall sequence
  31. 31. 31Internals: Statistics Code Structurecom.agentnet.epas.statisticsRouteStatisticsPredictiveRouteStatisticsPredictiveEventStatistics
  32. 32. 32Internals:External Geospatial Information Systems (e.g. PCMiler)com.agentnet.epas.gisPCMiler GeoBase …Google
  33. 33. 33Internals: External Interfaces Code Structureorg.natltransportgrid.epasserviceETAServicepredict(trackingNumber)Data(not used)
  34. 34. 34Internals: Telemetry Handling Process FlowETA DataManagerIntegrationOperationHandlersTelemetryData FlowManagerTelematicsListenerTelematicsQueueTelemetry Data(XML conversations)IntegQueuecollectTelemetry(<telemetry>)NotificationListenerNotificationQueueFuture Direct Flows
  35. 35. 35Internals: Prediction RequestsETAServiceAny internal/externalmoduleAnalysisFilterpredict(trackingNumber)predict(trackingNumber)PredictiveEnginepredict(trackingNumber)ETAResult
  36. 36. •  Stores heuristics. Accessed by heuristics telemetry handler. Forexample:[when] city=‘SAN FRANCISCO’ and carrier=‘CMS’ and packageType=‘CABINET’[then] dwell = 100•  Stores Filter Rules. Accessed by ETA Analysis Filter to apply filterrules to predictions. For example:[when] etaFrom > etaPreviousFrom[then] etaFrom = etaPreviousFrom•  Stores notification rules. Used by notification listener to invokeend-user subscription rules.[when] distanceFromStop < 30[then] sendEmail()•  Agentnet uses Drools 5.0. All rules are managed via the DroolsGuvnor product.36Drools: JBoss Rules Engine
  37. 37. 37Internals: Route Database TablesRouteSearchIndexUsed for searching. Locates a route for a particular delivery leg.TrackingID Agentnet Tracking NumberDeliveryID ObjectID of correspondingdelivery object containing leg.RouteID ObjectID of route containingthe delivery leg.LastPredictedArrivalFromLastPredictedArrivalToLastPredictedDepartureFromLastPredictedDepartureToPredictionConfidenceLevelRouteStores the route XML string which holds allpredictive informationRouteXML CarrierRoute XMLString
  38. 38. 38Internals: Route Event Database TablesRouteEventUsed for searching. Locates a route for a particular delivery leg.ObjectID Agentnet Tracking NumberAgentnetTrackingNumber ObjectID of correspondingdelivery object containing leg.RouteID ObjectID of route containing thedelivery leg.CreationDateStopAgentnetIdentifierStopSequenceReasonEventTypePredictedArrivalFromPredictedArrivalToPredictedDepartureFromPredictedDepartureToDwellSpeedDistanceDelayDistanceFromStopActualArrivalActual DepartureStores prediction history. Usedto determine the accuracy ofEPAS and as the contributor tothe eventual feedback loop. Onerow for each prediction change.Essentially, one row for eachtelemetry event.