Abstract:
A non-transitory computer-readable storage medium may comprise instructions stored thereon for controlling operation of a vehicle travelling from a starting location to a target location. When executed by at least one processor, the instructions may be configured to cause a computing system to generate a travel itinerary for the vehicle to travel over different road segments at respective speeds between the starting location and the target location subject to an arrival time deadline for arriving at the target location, the different road segments being selected on a map to minimize a total fuel consumption of the vehicle in travelling from the starting location to the target location, and send the travel itinerary to a vehicle operator to operate the vehicle to travel over different road segments at respective speeds between the starting location and the target location.

Description:
BACKGROUND 
       [0001]    Global positioning system (GPS) and other navigation systems or map services (e.g., Google Maps, MapQuest, etc.) can provide road or route directions for a vehicle to go from a current location to a target destination. These navigation systems or map services may first detect the vehicle&#39;s current location, and then, with reference to geographical road maps, identify different paths or routes from the vehicle&#39;s current location to the target destination. The navigation systems and map services may present one or more of the paths or routes to the vehicle operator as suggested paths or routes for the vehicle operator to follow to go from the current location to the target destination. The suggested paths or routes may be based on calculations of travel distance (e.g., shortest route), or based on calculations of travel time (e.g. fastest route) using historical traffic conditions data for different paths and routes. However, a path identified as being the fastest route may turn out to be slower when actually used by the vehicle operator because the traffic conditions along the route may have changed. 
         [0002]    Consideration is now being given to systems and methods for controlling a vehicle&#39;s operation while travelling from a current location to a target destination based on dynamic considerations of multiple constraints including, for example, vehicle speed and fuel economy. 
       SUMMARY 
       [0003]    A computer system is used for controlling operation of a vehicle travelling from a starting location to a target location. The computer system includes a memory and a semiconductor-based processor, which form one or more logic circuits. In a general aspect, the logic circuits generate a travel itinerary for the vehicle to travel over different road segments at respective speeds from the starting location to the target location subject to an arrival time deadline for arriving at the target location. The logic circuits select the different road segments on a map to minimize a total fuel consumption by the vehicle in travelling from the starting location to the target location. The logic circuits send the travel itinerary to a vehicle operator to operate the vehicle to travel over different road segments at respective speeds from the starting location to the target location. 
         [0004]    In an aspect, the logic circuits are configured to generate the travel itinerary by defining a road segment “Rjk” extending from a current node “j” by selecting a next node “k” on the map from amongst one or more potential next nodes and calculating a suggested vehicle speed for the road segment Rjk based on consideration of vehicle speed and fuel consumption between the current node j and the next node k. 
         [0005]    In an aspect, the logic circuits are configured the logic circuits are configured to generate the travel itinerary for the vehicle to travel over different road segments at respective speeds from the starting location to the target location using bidirectional calculations of vehicle path and speed between the starting location and the target location. The logic circuits are configured to select one of the bidirectional calculations of vehicle path and speed, which has the least fuel consumption, for the travel itinerary from the starting location to the target location. 
         [0006]    In an aspect, the logic circuits are configured calculate a current accumulated fuel consumption up to node j and an additional estimated fuel consumption up to next node k. The logic circuits are configured to select next node k on the map by selecting a node from one or more potential nodes that results in a minimum fuel consumption. 
         [0007]    In a further aspect, wherein the logic circuits are configured to select next node k on the map by considering historical traffic data and dynamic traffic conditions on the road segment Rjk, and also the arrival time deadline for arriving at the target location. 
         [0008]    The details of one or more implementations are set forth in the accompanying drawings and the description below. Further features of the disclosed subject matter, its nature and various advantages will be more apparent from the accompanying drawings the following detailed description, and the claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]      FIG. 1  is a schematic illustration of a planned route on a map for the vehicle to go from a starting location to a target location, in accordance with the principles of the present disclosure. 
           [0010]      FIG. 2  is an example graph illustrating a typical fuel consumption characteristic curve for an automobile. 
           [0011]      FIG. 3  is a block diagram illustration of an example system for implementing a navigation solution for controlling a vehicle&#39;s operation, while travelling from a current location to a target destination, in accordance with the principles of the present disclosure. 
           [0012]      FIG. 4  is an example table, which lists terminology used herein to describe an objective function and an example algorithm. 
           [0013]      FIG. 5  includes example tables which illustrate the input data that may be available from several databases described herein. 
           [0014]      FIG. 6  is an example table, which illustrates the output data which may be included by a navigation handler in a planned travel itinerary (e.g., planned map route and speed instructions) for a vehicle, in accordance with the principles of the present disclosure. 
           [0015]      FIG. 7  is a flow chart illustrating an example method for generating a planned travel itinerary (e.g., planned map route and speed instructions) by a navigation handler, in accordance with the principles of the present disclosure. 
           [0016]      FIG. 8  is an illustration of example pseudo-code for performing the elements of the method of  FIG. 7 , in accordance with the principles of the present disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    Systems and methods (collectively “navigation solution”) for controlling a vehicle&#39;s operation, while travelling from a current location to a target destination, based on dynamic consideration of one or more constraints, are described herein. The constraints may, for example, include fuel consumption, arrival time deadlines, traffic conditions, vehicle type and vehicle load constraints, etc. The navigation solution may generate a planned travel itinerary satisfying the constraints (e.g., minimal fuel consumption) for the vehicle to go from its current location to the target destination. The travel itinerary may include both spatial and temporal aspects (i.e. geographical road segments, distances , turns, direction, vehicle speeds and timing, start times, halts, and end times, etc.). The planned travel itinerary may dynamically change as the vehicle travels along a planned route, for example, in response to dynamically changing traffic or road conditions. 
         [0018]    In an example implementation, the navigation solution described herein may be used in conjunction with location or positioning systems (e.g., GPS systems, RFID systems, optical camera systems, cell tower triangulation systems, etc.) that may detect and provide information on the vehicle&#39;s location. The location or positioning systems may include self-reporting systems (telephone, internet, cell phone etc.) by which a user can enter or provide information on the vehicle&#39;s location. Location information usually does not include speed, direction, or spatial orientation. 
         [0019]    In an example implementation, the navigation solution described herein may generate a planned travel itinerary including a planned route for the vehicle to go from its current location to the target destination. The planned route may identify road or highway distance segments (“road segments”) between nodes on a map and also recommend speeds at which the vehicle could traverse each road segment when going from its current location to the target destination. Thus, a planned route may include a series of route segments between nodes, with the road segments characterized by distance and speed. 
         [0020]      FIG. 1  shows, for example, a planned route  100  on a map  110  for the vehicle to go from a location “A” to a location “B.” Planned route  100  may include multiple nodes (e.g., node  1 , node  2 , node  3 , etc.) with each pair of consecutive nodes defining a road segment there between. For example, node  1  and node  2  may define a road segment  1  there between, node  2  and node  3  may define a road segment  2  there between, etc. For purposes of illustration, each of the road segments shown in  FIG. 1  is annotated with a number corresponding to a recommended vehicle speed for that segment. For example, road segment  1  and road segment  2  are annotated with numbers 60 and 80 corresponding to recommended vehicles speeds for road segment  1  and road segment  2 , respectively. 
         [0021]    The recommended speeds for each segment may be based on considerations of fuel economy. Fuel consumption by a vehicle may depend on the vehicle type, vehicle load, vehicle age, vehicle condition (e.g., engine status, tire inflation, etc.). However, vehicle speed is a major determinant of fuel consumption.  FIG. 2  shows a typical fuel consumption characteristic curve for an automobile. As seen from the figure, fuel consumption may be less (e.g., about 0.15 liters/km) when vehicle speed is about 60 km/hour than the fuel consumption at lower and higher vehicle speeds. 
         [0022]    In an example implementation, the navigation solution described herein may be configured to operate the vehicle in manner that reduces fuel consumption when the vehicle has go from its current location to the target destination subject to an arrival time deadline. 
         [0023]      FIG. 3  shows an example system  100  for implementing a navigation solution for controlling a vehicle&#39;s operation, while travelling from a current location to a target destination, in accordance with the principles of the present disclosure. 
         [0024]    System  100  may include a navigation handler  105 , which may be configured to generate a planned travel itinerary (e.g., planned map route and speed instructions  132 ) to control operation of a vehicle for travelling from its current location (e.g., location A,  FIG. 1 ) to a target location (e.g., location B,  FIG. 1 ) in a fuel efficient manner through varying traffic and road conditions, subject to a arrival time deadline for reaching location B. Navigation handler  105  may send the planned map route and speed instructions  132  to a vehicle operator/controller  130  to control operation of the vehicle while travelling from location A to location B. Navigation handler  105  may include processes to iteratively search for paths (e.g., nodes, road segments) between location A and location B, which result in reduced fuel consumption. 
         [0025]    Navigation handler  105  may be configured to receive input information, which may include, for example, the vehicle&#39;s current location from a vehicle location system  134 , the target location, and the arrival time deadline. Navigation handler  105  may be coupled to a database  150 , which may include vehicle data  152  (including, for example, vehicle fuel efficiency data), road and highway maps  154 , and historical traffic data  156 . Navigation handler  105  may also be configured to receive real-time or near real-time information on road and traffic conditions from a traffic and road conditions reporting system  136 . 
         [0026]    Navigation handler  105  may include an objective generation module  112  configured to process the input information to generate an objective function which defines the problem of travel from location A to location B with the fuel consumption and arrival time deadline constraints. Navigation handler  105  may further include a path generator  110 , a fuel consumption optimizer  120  and an optimized routing recommendation module  138  configured to minimize the objective function (subject to the constraints) iteratively to generate the planned travel itinerary (e.g., planned map route and speed instructions  132 ). Path generator  110  may include a node evaluator  112 , a node selector  114 , a traffic predictor  116  and a direct distance calculator  118 , which modules or processes may be configured to generate road segments for a planned route from location A to location B. Fuel consumption optimizer  120  may include processes (e.g., a speed selector  122 , a fuel usage calculator  124  and a fuel consumption estimator  126 ), which are configured to determine fuel consumption, for example, for the road segments generated by path generator  110 . Navigation handler  105 /optimized routing recommendation module  138  may be configured to dynamically update and send the planned map route and speed instructions  132  to vehicle operator/controller  130  even as the vehicle travelling from location A to location B. 
         [0027]    In system  100 , navigation handler  105  and other system components (e.g., database  150 , vehicle operator/controller  130 , etc.) may be hosted on one or more standalone or networked physical or virtual computing machines including computing machines that may be installed in the vehicle itself.  FIG. 1  shows, for example, navigation handler  105  hosted on a computing device  10  (e.g., a desktop computer, a mainframe computer, a server, a personal computer, a mobile computing device, a laptop, a tablet, or a smart phone), which may be available to a user. Computing device  10 , which includes an O/S  11 , a CPU  12 , a memory  13 , and I/O  14 , may further include or be coupled to a display  15  (including, for example, a user interface  16 ). Planned map route and speed instructions  132  generated by navigation handler  105  may be presented to the user, for example, on user interface  16 . 
         [0028]    Moreover, although computer  10  is illustrated in the example of  FIG. 1  as a single computer, it may be understood that computer  10  may represent two or more computers in communication with one another. Therefore, it will also be appreciated that any two or more components of system  100  may similarly be executed using some or all of the two or more computing devices in communication with one another. Conversely, it also may be appreciated that various components (e.g., database  150 , etc.) illustrated as being external to computer  10  may actually be implemented therewith. 
         [0029]    Navigation handler  105  may be linked, for example, via Internet or intranet connections, to database  150 , vehicle location systems  134 , and traffic and road conditions reporting system  136 . Further, navigation handler  105  may be linked to data sources on the web (e.g., worldwide and/or enterprise webs) and/or or other computer systems of the organization (e.g., e-mail systems, human resource systems, material systems, operations, etc.) that may have information relevant to the generation and implementation of the planned travel itinerary (e.g., planned map route and speed instructions  132 ) generated by navigation handler  105 . 
         [0030]    In example implementations, navigation handler  105  may be configured to generate the planned travel itinerary (e.g., planned map route and speed instructions  132 ) using algorithms based on an example “fuel consumption” model relating fuel consumption and travel along road segments of the route from location A to Location B. 
       Example Fuel Consumption Model 
       [0031]    The fuel consumption model used by navigation handler  105  is designed to determine a planned route or path for the vehicle, which may result in minimum fuel consumption, in dynamic traffic and road conditions, subject to arrival time constraints. 
         [0032]    A road segment in the model is defined by starting with a first node (beginning of the road segment) and then searching for and selecting a next node (end of the road segment). The number of nodes (and hence the number of road segments) in the planned route or path for the vehicle may be a variable number “n”. The selection of the next node (from one or more potential next nodes) may not be determined by consideration of minimum distance alone but may include consideration of fuel consumption and traffic conditions. The length of a road segment may not be selected to simply yield the minimum distance between locations A and B because it may be possible to take a longer route (e.g., to go around traffic jams) to satisfy the arrival time constraints, and it may be possible to travel a longer route at vehicle speeds which result in better fuel efficiency than to travel a shorter route at inefficient vehicle speeds. The model may make a balanced trade-off between the arrival time (or shortest distance) and fuel consumption. Further, the model may include consideration of dynamic traffic conditions along the various road segments and account for predicted or anticipated traffic conditions along the various road segments between locations A and B. 
       Example Algorithm for Generating the Planned Travel Itinerary 
       [0033]    An example iterative algorithm which may be used by navigation handler  105  to generate the planned travel itinerary (e.g., planned map route and speed instructions  132 ) is described below. The example algorithm may use dynamic predicted or anticipated traffic condition information (e.g., obtained from traffic and road conditions reporting system  136 ) in addition to arrival time constraints (e.g., obtained from a user by objective generation module  128 ) when selecting the next node (e.g., node  2 ) from amongst one or more potential next nodes to define a road segment (e.g., road segment  1 ). Further, the example algorithm when selecting the next node (e.g., node  2 ) may take into account, a current accumulated fuel consumption and the estimated fuel consumption. Further the example algorithm may be configured to calculate the planned map route and speed instructions  132  bidirectionally in parallel (i.e. from a starting node to an ending node, and in parallel, from the ending node to the starting node) to determine an optimal planned map route and speed instructions  132 . 
         [0034]    The example algorithm may determine the planned travel itinerary (e.g., planned map route and speed instructions  132 ) by minimizing an objective function, which may be constructed by objective generation module  128  to describe the travel of the vehicle from a starting location to a target location.  FIG. 4  shows an example table  400 , which lists example terminology which may be used herein to describe the objective function and the example algorithm. 
         [0035]    With reference to the terminology shown in table  400 , for the example algorithm and the objective function, it may be assumed that the vehicle fuel efficiency curve ( FIG. 1 ) can be discretized so that the curve can be expressed as “(F i , i),” where i=1, 2, . . . , N, and N is the maximum vehicle speed in the curve. 
         [0036]    Further, it may be assumed that the number of nodes on the map in a route between the starting location (e.g., location A,  FIG. 1 ) and the target locations (e.g., location B,  FIG. 1 ) is equal to “M”. With reference to the terminology shown in Table  400 , “R jk ” represents a road segment connecting node “j” to node “k”. Road segment R jk  may have a length or distance “D jk ”. For each road segment R jk , historical traffic data (e.g., historical traffic data  156 ) may be available for time periods T h , where h=1, 2, . . . , L. Time periods T h  may, for example, be 5 minute time intervals. From the historical traffic data for time periods T h , it may be possible to compute an average speed “S hjk ” (and a corresponding minimum speed “Smin hjk ” and maximum speed “Smax hjk ) historically available for the road segment road segment R jk  at time “h”. 
         [0037]    The objective function for minimizing fuel consumption in the travel of the vehicle from a starting location to a target location subject to arrival time deadline constraint may be formulated as calculating or selecting road segments R jk  and vehicle speeds along the road segments so that the vehicle starting at location A at a starting time “Ts” arrives at location B before an arrival deadline time “Ta” with the least amount of fuel consumption. 
         [0038]    An example objective function (constructed, for example, by objective generation module  128 ) may be: 
         [0000]      Minimize(Σ j=1   M Σ k=1   M   X   jk   F   s     jk     D   jk ),
 
         [0000]    subject to the following constraints: 
         [0000]    
       
         
           
             
               
                 
                   ∑ 
                   
                     j 
                     = 
                     1 
                   
                   M 
                 
                  
                 
                   
                     ∑ 
                     
                       k 
                       = 
                       1 
                     
                     M 
                   
                    
                   
                     
                       
                         X 
                         jk 
                       
                        
                       
                         D 
                         jk 
                       
                     
                     
                       S 
                       jk 
                     
                   
                 
               
               ≤ 
               
                 Ta 
                 - 
                 
                   Ts 
                    
                   
                       
                   
                    
                   
                     ( 
                     
                       arrival 
                        
                       
                           
                       
                        
                       time 
                        
                       
                         
                             
                         
                          
                         
                             
                         
                       
                        
                       constraint 
                     
                     ) 
                   
                 
               
             
             ; 
           
         
       
       
         
           
             
               
                 
                   ∑ 
                   
                     k 
                     = 
                     1 
                   
                   M 
                 
                  
                 
                   X 
                   Ak 
                 
               
               = 
               
                 1 
                  
                 
                     
                 
                  
                 
                   ( 
                   
                     starting 
                      
                     
                         
                     
                      
                     node 
                      
                     
                         
                     
                      
                     is 
                      
                     
                         
                     
                      
                     node 
                      
                     
                         
                     
                      
                     A 
                   
                   ) 
                 
               
             
             , 
             and 
           
         
       
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 M 
               
                
               
                 X 
                 jB 
               
             
             = 
             
               1 
                
               
                   
               
                
               
                 
                   ( 
                   
                     ending 
                      
                     
                         
                     
                      
                     node 
                      
                     
                         
                     
                      
                     is 
                      
                     
                         
                     
                      
                     node 
                      
                     
                         
                     
                      
                     B 
                   
                   ) 
                 
                 . 
               
             
           
         
       
     
         [0039]    Navigation handler  105  may be configured to minimize the foregoing objective function, in conjunction with input data, which may be available, for example, from databases vehicle data (fuel consumption curves)  152 , road and highways map  154 , and historical traffic data  156 .  FIG. 5  shows Table (Fuel Consumption)  501 , Table (Road Segments)  502  and Table  503  (Historical Traffic data), which illustrate the input data that may be available from the foregoing databases  152  - 156 . Table (Fuel Consumption)  501  may include metadata of vehicle fuel consumption (e.g., “(F i , i),” where i=1, 2, . . . , N, and N is the maximum vehicle speed in the curve in  FIG. 1 ). Table (Road Segments)  502  may include metadata for all road segments (e.g., road segment ID, Road segment name, starting node j, ending node k, and length or distance between node j and node k). Table  503  (Historical traffic data)  502  may include metadata related to historical traffic data for the road segments (e.g., identity of road segment, start time, end time, average speed, minimum speed and maximum speed). 
         [0040]      FIG. 6  shows table  602 , which illustrates output data which may be included by navigation handler  105  in the planned travel itinerary (e.g., planned map route and speed instructions  132 ) obtained by minimizing the objective function. 
         [0041]      FIG. 7  shows an example method  700  for generating the planned travel itinerary (e.g., planned map route and speed instructions  132 ) by navigation handler  105  (using the foregoing algorithm and objective function). 
         [0042]    Example method  700  may be used to generate the spatial aspects of the planned map route, for example, by defining a road segment R jk  (extending from current node j) by selecting a next node k on map  110  while calculating the vehicle speed for the road segment. In method  700 , selecting the next node k may not be based only on static considerations of minimum distance, but may involve selecting next node k as a dynamic node based on consideration of varying vehicle speed and fuel consumption between the current node and the next node. Selecting next node k may involve calculating a current accumulated fuel consumption (up to node j) and the additional estimated fuel consumption (up to next node k). Further, dynamic traffic conditions and the arrival time constraints may also be considered when evaluating and selecting the next node k. 
         [0043]    Method  700  may be performed by, or implemented using, for example, system  100  ( FIG. 1 ). 
         [0044]    With reference to  FIG. 7 , method  700  may include retrieving input data from the databases ( 701 ), formatting the data ( 702 ) and initializing input parameters and variables ( 703 ). This portion of method  700  may be performed, for example, by objective generation module  128 . Retrieving input data from the databases  701  may include retrieving vehicle fuel consumption efficiency data from database  152 , road segment data from database  154  and historical traffic data from database  156 . Formatting the data  702  may involve formatting the data to a format suitable for processing by other components (e.g., path generator  110  and fuel consumption optimizer  120 , etc.) of navigation handler  105 . Initializing input parameters and variables  703  may involve initializing the input parameter and variables for a specific use instance, based, for example, on user inputs for the specific use instance. In an example implementation, the input parameter and variables may be initialized as follows: 
         [0045]    N A : Start node 
         [0046]    N B : End node 
         [0047]    Ts: Start time 
         [0048]    Ta: Arrival time 
         [0049]    Tcj: Current time of N J , set Tc A  to Ts 
         [0050]    Fc j : Current fuel consumption of N j , set Fc A  to Ts to 0 
         [0051]    P j : Parent node of N j    
         [0052]    S Pj j: Speed from P j  to N j    
         [0053]    Os: Open set of nodes/road segments whose selection is not confirmed and need to be evaluated 
         [0054]    Cs: Closed set of nodes/road segments that do not need to be further evaluated 
         [0055]    After initializing input parameters and variables, method  700  may further include bidirectional calculation of the path and speed ( 704 ), which may involve calculation of the planned map route and speed starting from the current location (e.g., location A) and ending at the target location (e.g., location B), in parallel with calculation of the planned map route and speed starting from the target location (e.g., location B) and ending at current location (e.g., location A). 
         [0056]    For brevity,  FIG. 7  only shows method  700  elements (e.g.,  705 - 710 ) for the calculation of the planned map route and speed starting from the current location (e.g., location A) and ending at the target location (e.g., location B). Method  700  elements for the converse in-parallel calculation of the planned map route and speed starting from the target location (e.g., location B) and ending at current location (e.g., location A) may be performed by elements that are similar to the elements shown (e.g., elements  705 - 710 ). 
         [0057]    Method  700  elements (e.g.,  705 - 710 ) for the calculation of the planned map route and speed starting from the current location (e.g., location A) and ending at the target location (e.g., location B) may be as follows: 
         [0058]    ( 705 ): Start from N A , put N A into Os, 
         [0059]    ( 706 ): Search nodes connecting with N A , 
         [0060]    ( 707 ) Put the nodes connecting with the N A  node into Os and set N A  to their parent node, and move N A  from Os to Cs 
         [0061]    ( 708 ): If N B  is newly added into Os, go to  712   
         [0062]    ( 709 ): If N B  is not newly added into Os, calculate the fuel consumption c(N j )+f (N j ) for each uncalculated N j  in Os using the following formulas: 
         [0000]        c (N j )= Fc   P     j     +F   S     Pjj     D   P     j     j , 
         [0000]        S   P     j     j   ={i |Min( F   i )and  S min TC     Pj     P     j     j   ≦i≦S max TC     Pj     P     j     j }, and 
         [0000]        f ( N   j )=Min( F   i ) D   jB    
         [0000]    subject to the following arrival time constraint 
         [0000]    
       
         
           
             
               
                 Tc 
                 
                   P 
                   j 
                 
               
               + 
               
                 
                   D 
                   
                     
                       P 
                       j 
                     
                      
                     j 
                   
                 
                 
                   S 
                   
                     
                       P 
                       j 
                     
                      
                     j 
                   
                 
               
               + 
               
                 
                   D 
                   jB 
                 
                 
                   { 
                   
                     i 
                      
                     
                        
                       
                         Min 
                          
                         
                           ( 
                           Fi 
                           ) 
                         
                       
                       } 
                     
                   
                 
               
             
             ≤ 
             Ta 
           
         
       
     
         [0063]    ( 710 ): Update the following variables for each newly calculated N j  in Os: 
         [0000]    
       
         
           
             
               Tc 
               j 
             
             = 
             
               
                 Tc 
                 
                   P 
                   j 
                 
               
               + 
               
                 
                   D 
                   
                     
                       P 
                       j 
                     
                      
                     j 
                   
                 
                 
                   S 
                   
                     
                       P 
                       j 
                     
                      
                     j 
                   
                 
               
             
           
         
       
       
         
           
             
               Fc 
               j 
             
             = 
             
               
                 Fc 
                 
                   P 
                   j 
                 
               
               + 
               
                 
                   F 
                   
                     S 
                     
                       
                         P 
                         j 
                       
                        
                       j 
                     
                   
                 
                  
                 
                   D 
                   
                     
                       P 
                       j 
                     
                      
                     j 
                   
                 
               
             
           
         
       
     
         [0064]    ( 711 ): Select the node with the minimum fuel consumption c(N j )+f(N j ) as the current node and go to element  705 , and 
         [0065]    ( 712 ): Output the path and speed at each road segment. 
         [0066]    Since the calculation is bidirectional, there will be two output results—a first output result for the forward direction calculation starting from the current location (e.g., location A) and ending at the target location (e.g., location B), and a second output result for the converse direction calculation starting from the target location (e.g., location B) and ending at the current location (e.g., location A). Method  700  may include comparing the first output result and the second output result ( 713 ) and selecting the better of two results for inclusion in the planned travel itinerary (e.g., planned map route and speed instructions  132 ). 
         [0067]      FIG. 8  shows example pseudo-code  800  for performing the elements of method  700  described above. Pseudo-code  800  or similar code may used, for example, to configure the modules or processes of navigation handler  105  (e.g., node evaluator  112 , node selector  114 , traffic predictor  116 , direct distance calculator, speed selector  122 , fuel usage calculator, fuel estimator  126 , etc.) to implement method  700 . 
         [0068]    In example implementations, the vehicle may be configured with electronics and control systems to control operation of the vehicle. The electronics and control systems may use planned map route and speed instructions  132  to control travel of the vehicle from the starting location to the target location, for example, to achieve efficient fuel consumption. 
         [0069]    The various systems and techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, or in combinations of them. The various techniques may implemented as a computer program product, i.e., a computer program tangibly embodied in a machine readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. 
         [0070]    Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). 
         [0071]    Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magnetooptical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magnetooptical disks; and CDROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry. 
         [0072]    To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. 
         [0073]    Implementations may be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a frontend component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such backend, middleware, or frontend components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet. 
         [0074]    While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the scope of the embodiments.