US20110098914A1 - System and method for generating tactical routes - Google Patents
System and method for generating tactical routes Download PDFInfo
- Publication number
- US20110098914A1 US20110098914A1 US12/920,580 US92058008A US2011098914A1 US 20110098914 A1 US20110098914 A1 US 20110098914A1 US 92058008 A US92058008 A US 92058008A US 2011098914 A1 US2011098914 A1 US 2011098914A1
- Authority
- US
- United States
- Prior art keywords
- node
- cost
- intervisibility
- route
- generator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3461—Preferred or disfavoured areas, e.g. dangerous zones, toll or emission zones, intersections, manoeuvre types, segments such as motorways, toll roads, ferries
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
Definitions
- the present invention generally relates to generation of tactical routes, and more particularly to a method and system for generating geographic terrain routes that balance speed and exposure to potential threats.
- soldiers must gather intelligence on the terrain to be traversed. Often, this comes in the form of topographic maps, aerial photos, incident reports, previous mission plans, and firsthand knowledge. Soldiers operating in areas with more attention and traffic may receive accurate, up to date maps; others, like Special Forces soldiers operating in remote terrain, may receive local maps that are often highly outdated. Soldiers have helpful acronyms to help them remember what factors to consider when analyzing terrain and gathering intelligence for route planning, such as OCOKA (observation, concealment and cover, obstacles, key terrain, and avenues of approach). Soldiers also analyze the contour lines in topographic maps in an attempt to visualize the lay of the land. Reading contour maps and visualizing terrain is a skill that takes years of training and practice to refine and use properly. Satellites and spy planes flying overhead provide aerial photographs that reveal critical details about the battlefield terrain, such as vegetation, structures, and enemy force composition.
- soldiers use the intelligence gathered to plan a route. Choosing a starting location first, often a forward operating base, combat outpost, or objective rally point, soldiers then plan routes one waypoint at a time. Many soldiers use digital mapping software, either on personal computers or global positioning system (GPS) devices, to place waypoints. Software then connects each subsequent waypoint placed by the soldier with a straight line. In complex terrain, soldiers are forced to look closely at the map, placing waypoints close together so that the connecting lines do not intersect buildings and other obstructions. Often, soldiers spend hours placing hundreds of waypoints in this manner, refining route legs and tweaking waypoints, until the route reaches the destination.
- GPS global positioning system
- route traversal will be preceded by a route reconnaissance where one or more scouts observe the avenues of approach used by the route for enemy action or other interesting intelligence.
- soldiers finally embark on the route there is usually no guarantee that the intelligence used to plan the route has not since changed drastically. Knowing this, each soldier ensures that he knows his current position at all times so that he can react quickly if the plan changes.
- Evidence that the plan can (and often does) change can be found in accounts of the Battle of Mogadishu, Battle for Baghdad, and countless others.
- soldiers have not had access to such a tactical route planning tool in the past. While many civilians benefit daily from analogous route planning tools (MapQuest, Google Maps, and Microsoft Streets and Trips) that help them plan fast and short routes along highway networks, soldiers have simply not had access to that kind of tool for military purposes.
- analogous route planning tools MapQuest, Google Maps, and Microsoft Streets and Trips
- a computer-implemented system and method for generating tactically-feasible routes in battlefield terrain including an Intervisibility Analyzer for analyzing propagation of optical lines of sight in a geographic terrain, a Speed Analyzer for analyzing speed of travelers in the geographic terrain, and a Route Generator for generating routes that facilitate tactical movement.
- the Intervisibility Analyzer utilizes a digital elevation model of terrain to compute a populate a database of viewsheds for each point in the model, where each viewshed is a set of other points having optical line of sight to the point.
- the Speed Analyzer determines how fast a traveler may move across varying types of terrain.
- the Route Generator searches the nodes and edges in a graph representing the cost grid to generate the best path between a start and end point.
- the exemplary embodiments include various features that are of particular utility, for example, including suggesting intelligent ground maneuvers.
- the exemplary embodiments provide to ground soldiers what aviators have had for quite some time: intelligent routing tools that suggest the correct path of travel based on environmental factors like terrain types and visibility.
- the exemplary embodiments blend speed and concealment during route generation, helping to ensure that soldiers can reach the destination quickly and unobserved.
- the exemplary embodiments mimic the way soldiers actually plan concealed tactical routes.
- soldiers accept exposure to the surrounding area, but with every step, try to minimize the amount of new terrain to which they are exposed. This explains why rounding corners, entering rooms, and coming up over ridges are all dangerous movements; they expose the soldier to large amounts of previously hidden terrain all at once.
- the exemplary embodiments create routes that minimize the amount of new terrain to which route travelers are exposed during travel and do so by minimizing the sums of the sizes of the unions of the sets of points visible to each route waypoint. This key technique is subtly different and yet vastly superior to any existing technique which tries to minimize the sums of the sizes of the sets of points visible to each route waypoint because it mimics the way soldiers actually plan tactical routes.
- the exemplary embodiments maximize any advantages in weapons range.
- Soldiers in tactical environments may sometimes desire to move in open areas where terrain allows them to move quickly and their weapons capabilities are maximized for the areas visible during travel.
- Soldiers moving in this fashion leverage routes through open areas to stay outside the range of enemy weaponry but inside the range of their own weaponry and visibility.
- the exemplary embodiments generate routes that allow soldiers to maximize the advantages in range afforded by their weapons and have the capability to generate routes that utilize both highly visible and fast terrain, thereby allowing a soldier to more fully leverage any potential advantages in weapons (e.g., 50 caliber guns) or surveillance (e.g., night vision).
- the exemplary embodiments create routes that facilitate efficient searching between waypoints.
- Soldiers in tactical environments may sometimes desire to travel between two waypoints while maximizing the amount of visible terrain per unit of distance travelled. Generating a route like this by hand would be extremely difficult for a human.
- the exemplary embodiments generate routes that maximize visibility per unit distance travelled and do so by exposing travelers to the largest collective area of terrain while minimizing the distance travelled.
- FIG. 1 illustrates an Overall System for Tactical Routing
- FIG. 2 illustrates a Cost Generator
- FIG. 3 illustrates Cost Generator Example
- FIG. 4 illustrates a Speed Analyzer
- FIG. 5 illustrates a Speed Analyzer Example
- FIG. 6 illustrates an Intervisibility Analyzer
- FIG. 7 illustrates an Intervisibility Analyzer Example
- FIG. 8 illustrates a Minimum Edge Cost Finder
- FIG. 9 illustrates a Minimum Edge Cost Finder Example
- FIG. 10 illustrates a Route Generator
- FIG. 11 illustrates a Route Generator Example
- FIG. 12 illustrates a Cost Evaluator
- FIG. 13 illustrates a Cost Evaluator Example
- FIG. 14 illustrates a second Cost Evaluator Example
- FIG. 15 illustrates a second Route Generator Example
- FIG. 16 illustrates a second Cost Generator
- An exemplary embodiment for generating tactical routes is one that minimizes the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- travelers are exposed to a minimal amount of previously-unexposed terrain after beginning travel, thereby reducing the risk of encountering enemies in unexposed terrain.
- travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- FIG. 1 illustrates the system's main components of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Cost Generator 100 uses speed and visibility information to create a blended cost grid for generating tactical routes.
- the Minimum Edge Cost Finder 102 searches the edges of a graph to find the minimum cost edge which is used in computing heuristics while generating tactical routes.
- the Route Generator 104 generates tactical routes.
- Each of the components has access to a collection of databases.
- the Map Database 110 contains geographic information including land cover maps, cost surfaces, and graphs.
- the Map Database 110 is a standard Geographic Information System (GIS) such as MapInfo by ESRI, Inc. of Redlands, Calif.
- GIS Geographic Information System
- the Intervisibility Database 108 contains viewsheds, where each viewshed is a set of terrain locations having optical line of sight to an observing location.
- Algorithms for computing viewsheds use digital elevation models (DEMs) of varying resolution and complexity, and these algorithms are well-known to those skilled in the art of terrain analysis.
- An example of one such algorithm for computing viewsheds is the ESRI Visibility algorithm in the ISurfaceOp package.
- the Intervisibility Database 108 is rectified to match the coordinates used in the Map Database 110 .
- the Capabilities Database 106 contains a traversal matrix for mapping land cover types to traversal speeds and a visibility matrix for mapping visibility parameters to varying observer capabilities.
- FIG. 2 illustrates the Cost Generator 100 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Cost Generator 100 begins at step 200 by retrieving the threshold traversal speed from the Capabilities Database 106 .
- the Cost Generator 100 retrieves the cost grid from the Map Database 110 .
- the Cost Generator 100 retrieves the graph from the Map Database 110 .
- the Cost Generator 100 obtains the list of nodes from the graph.
- the Cost Generator 100 determines if there are more nodes to evaluate. If not, at step 222 , the Cost Generator 100 stores the now-populated cost grid back to the Map Database 110 and terminates.
- the Cost Generator 100 gets the current node and proceeds to step 212 .
- the Cost Generator 100 obtains the node's speed by passing the node to the Speed Analyzer 212 .
- the Cost Generator 100 determines whether the node's speed is below the threshold traversal speed. If so, at step 220 , the Cost Generator 100 sets the node's corresponding cell in the cost grid to a cost of infinity to indicate the node is impassable and proceeds to step 208 . If not, at step 216 , the Cost Generator 100 obtains the node's visibility by passing the node to the Intervisibility Analyzer 216 and proceeds to step 218 .
- the Cost Generator 100 sets the node's corresponding cell in the cost grid to the visibility and continues evaluating nodes by proceeding to step 208 .
- the Cost Generator 100 stores the cost grid.
- the Cost Generator 100 will have set the cost of each node's corresponding cell in the cost grid in the Map Database 110 .
- the Cost Generator 100 constructs the cost grid to facilitate the Route Generator 104 avoiding nodes having too slow a traversal speed (i.e., traversal speeds below a threshold value).
- the Cost Generator 100 first retrieves the threshold traversal speed 300 from the Capabilities Database 106 .
- the Cost Generator 100 retrieves the cost grid 302 from the Map Database 110 .
- the Cost Generator 100 retrieves the graph 304 from the Map Database 110 .
- the Cost Generator 100 obtains the node list 306 from the graph 304 .
- the Cost Generator 100 examines each node in the node list 306 . In this example 300 , the Cost Generator 100 selects node 308 with label 3 at position (0,2).
- the Cost Generator 100 passes the node 308 to the Speed Analyzer 212 .
- the Speed Analyzer 212 returns a speed of 20 kph.
- the Cost Generator 100 determines that the speed of the node 308 , 20 kph, is not below the threshold traversal speed 300 of 5 kph.
- the Cost Generator 100 passes the node 308 to the Intervisibility Analyzer 216 .
- the Intervisibility Analyzer 216 returns a visibility of 4 cells.
- the Cost Generator 100 sets the corresponding cell 310 with label 3 at position (0,2) in the cost grid 302 to 4 and continues evaluating nodes until termination. In another example, the Cost Generator 100 selects node 312 with label 10 at position (2,1).
- the Cost Generator 100 passes the node 312 to the Speed Analyzer 212 .
- the Speed Analyzer 212 returns a speed of 0 kph.
- the Cost Generator 100 determines that the speed of the node 312 , 0 kph, is below the threshold traversal speed 300 of 5 kph.
- the Cost Generator 100 sets the corresponding cell 314 with label 10 at position (2,1) in the cost grid 302 to infinity ( ⁇ ) and continues evaluating nodes until termination. After evaluating each node in the node list 306 , the Cost Generator 100 will have set the costs of each corresponding cell in the cost grid 302 . The Cost Generator 100 then terminates.
- FIG. 4 illustrates the Speed Analyzer 212 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Speed Analyzer 212 begins at step 400 by retrieving the node passed in from the Cost Generator 100 .
- the Speed Analyzer 212 retrieves the land cover map from the Map Database 110 .
- the Speed Analyzer 212 retrieves the traversal matrix from the Capabilities Database 106 .
- the Speed Analyzer 212 queries the land cover map for the node's terrain type using the node's position.
- the Speed Analyzer 212 returns the speed of the terrain type found in the traversal matrix and terminates. Upon termination, the Speed Analyzer 212 has found the speed for the node. Speeds represent how fast a traveler can travel across the terrain represented by the node.
- the Speed Analyzer 212 retrieves the node 500 with label 3 at position (0,2) from the Cost Generator 100 .
- the Speed Analyzer 212 retrieves the land cover map 502 from the Map Database 110 .
- the Speed Analyzer 212 retrieves the traversal matrix 504 from the Capabilities Database 106 .
- the Speed Analyzer 212 queries the land cover map 502 for the terrain type of the node 500 with label 3 at position (0,2).
- the land cover map 502 indicates that the terrain type of the node 500 with label 3 at position (0,2) is field.
- the Speed Analyzer 212 queries the traversal matrix 504 for the speed of the field terrain type.
- the traversal matrix 504 indicates that the speed of the field terrain type is 20 kph.
- the Speed Analyzer 212 then terminates by returning a speed of 20 kph.
- the Speed Analyzer 212 retrieves the node 506 with label 10 at position (2,1) from the Cost Generator 100 .
- the Speed Analyzer 212 queries the land cover map 502 for the terrain type of the node 506 with label 10 at position (2,1).
- the land cover map 502 indicates that the terrain type of the node 506 with label 10 at position (2,1) is water.
- the Speed Analyzer 212 queries the traversal matrix 504 for the speed of the water terrain type.
- the traversal matrix 504 indicates that the speed of the water terrain type is 0 kph.
- the Speed Analyzer 212 then terminates by returning a speed of 0 kph.
- FIG. 6 illustrates the Intervisibility Analyzer 216 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Intervisibility Analyzer 216 begins at step 600 by retrieving the node passed in from the Cost Generator 100 .
- the Intervisibility Analyzer 216 queries the Intervisibility Database 108 for the node's viewshed V using the node's position.
- the viewshed V is a set whose elements comprise the nodes having optical line of sight to the node, and the Intervisibility Database 108 is the record of all such sets.
- the Intervisibility Analyzer 216 counts the number of elements in V to determine the V's cardinality (size),
- the Intervisibility Analyzer 216 terminates by returning
- the Intervisibility Analyzer 216 retrieves the node 700 with label 7 at position (1,2) from the Cost Generator 100 .
- the Intervisibility Analyzer 216 queries the Intervisibility Database 108 for the viewshed 702 of the node 700 with label 7 at position (1,2).
- the Intervisibility Database 108 indicates that the viewshed 702 of the node 700 with label 7 at position (1,2) is ⁇ (2,3), (1,2), (2,2), (1,1) ⁇ .
- the Intervisibility Analyzer 216 counts the number of elements in the viewshed 702 to determine the cardinality (size) of viewshed 702 .
- the Intervisibility Analyzer 216 determines that the visibility is 4.
- the Intervisibility Analyzer 216 terminates by returning 4.
- FIG. 8 illustrates the Minimum Edge Cost Finder 102 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Minimum Edge Cost Finder 102 begins at step 800 by retrieving the graph as input.
- the Minimum Edge Cost Finder 102 retrieves the visibility matrix from the Intervisibility Database 108 .
- the Minimum Edge Cost Finder 102 sets the current minimum edge cost C to the maximum viewshed cardinality indicated by the visibility matrix.
- the Minimum Edge Cost Finder 102 obtains the list of edges from the graph.
- the Minimum Edge Cost Finder 102 determines if there are more edges to evaluate.
- the Minimum Edge Cost Finder 102 returns C. If so, at step 810 , the Minimum Edge Cost Finder 102 obtains the current edge from the graph. At step 812 , the Minimum Edge Cost Finder 102 queries the Intervisibility Database 108 for the viewsheds V 1 and V 2 of the Edge's nodes N 1 and N 2 using the nodes' positions. The viewsheds V 1 and V 2 are sets whose elements comprise the nodes having optical line of sight to nodes N 1 and N 2 respectively. At step 814 , the Minimum Edge Cost Finder 102 calculates a first difference D 1 by subtracting V 2 from V 1 using set subtraction, as indicated by the following formula:
- D 1 represents the set of elements in V 1 and not in V 2 .
- the Minimum Edge Cost Finder 102 counts the number of elements in D 1 to determine the D 1 's cardinality,
- the Minimum Edge Cost Finder 102 calculates a second difference D 2 by subtracting V 1 from V 2 using set subtraction, as indicated by the following formula:
- D 2 represents the set of elements in V 2 and not in V 1 . It is noteworthy that D 1 may or may not be equal to D 2 .
- the Minimum Edge Cost Finder 102 counts the number of elements in D 2 to determine the D 2 's cardinality,
- the Minimum Edge Cost Finder 102 tests if
- the Minimum Edge Cost Finder 102 continues evaluating edges. Upon termination after step 828 , the Minimum Edge Cost Finder 102 will have found C, the smallest possible incremental cost of moving from one node to any adjacent node in any direction.
- the Minimum Edge Cost Finder 102 retrieves the graph 900 as input.
- the Minimum Edge Cost Finder 102 retrieves the visibility matrix 902 from the Intervisibility Database 108 .
- the Minimum Edge Cost Finder 102 sets the current minimum edge cost C to the maximum viewshed cardinality indicated by the visibility matrix 904 .
- the observer type is human, so the Minimum Edge Cost Finder 102 sets C to 9.
- the Minimum Edge Cost Finder 102 obtains the edge list 904 from the graph 900 .
- the Minimum Edge Cost Finder 102 selects the edge 900 with label 1 for evaluation.
- the Minimum Edge Cost Finder 102 queries the Intervisibility Database 108 for the viewshed V 1 908 of the first node of the edge 906 .
- the Minimum Edge Cost Finder 102 queries the Intervisibility Database 108 for the viewshed V 2 910 of the second node of the edge 906 .
- the Minimum Edge Cost Finder 102 calculates a first difference D 1 by subtracting V 2 from V 1 using set subtraction as follows:
- D 1 represents the set of elements in V 1 and not in V 2 ; in this example, V 1 has no elements not in V 2 , so D 1 is the empty set ( ⁇ ).
- the Minimum Edge Cost Finder 102 counts the number of elements in D 1 to determine D 1 's cardinality,
- 0.
- the Minimum Edge Cost Finder 102 calculates a second difference D 2 by subtracting V 1 from V 2 using set subtraction as follows:
- D 2 represents the set of elements in V 2 not in V 1 ; in this example, V 2 has some elements not in V 1 .
- the Minimum Edge Cost Finder 102 counts the number of elements in D 2 to determine the D 2 's cardinality,
- 1.
- the Minimum Edge Cost Finder 102 tests if
- 0, so the Minimum Edge Cost Finder 102 sets C to 0 and terminates by returning C.
- FIG. 10 illustrates the Route Generator 104 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Route Generator 104 begins at step 1000 by retrieving the graph as input.
- the Route Generator 104 retrieves the cost grid from the Map Database 110 .
- the Route Generator 104 then executes the A* algorithm 1004 , which finds an optimal path from a start node to an end node.
- the Route Generator 104 assumes the nodes of the graph 1000 are pre-initialized for use in the A* algorithm 1004 .
- the A* algorithm 1004 is well known to those skilled in the art, and can be performed, for example, using “Artificial Intelligence, Third Edition” by Patrick Henry Winston, published by Addison-Wesley, which is incorporated by reference herein. Initialization of a graph's nodes for use in the A* algorithm 1004 is also well-known to those skilled in the art and can be performed, for example, using chapter 5 of the book “Artificial Intelligence, Third Edition” by Patrick Henry Winston, published by Addison-Wesley.
- the Route Generator 104 necessitates inclusion of a union field in each node that stores a union of one or more viewsheds.
- the Route Generator 104 computes and maintains each node's union field in the same manner as each node's key field is normally computed and maintained.
- a node's union field represents the set union of the viewsheds of the nodes in the path leading up to the node
- a node's key field represents the cardinality of the node's union (i.e., the number of nodes in the union).
- initialization of the union field for use in the A* algorithm 1004 requires setting the start node's union field to the start node's viewshed from the Intervisibility Database 108 , the start node's key field to the cardinality of the start node's union field, and the union and key fields for all other nodes to null and zero respectively. It also follows that in the step where the A* algorithm 1004 relaxes a node, both the node's key and union fields are relaxed as well. In the step where the A* algorithm 1004 considers adjacent nodes, the Route Generator 104 will ignore adjacent nodes having infinite cost as indicated by the cost grid contained in the Map Database 110 .
- this modification is that the Route Generator 104 does not include nodes with infinite cost in the optimal path, thereby ensuring that the traversal speeds of each node in the optimal path meets or exceeds a threshold value. It is realized that this modification may cause the Route Generator 104 to report that no route exists. However, alternate exemplary embodiments of the Route Generator 104 may allow nodes having infinite cost into the minimum priority queue, facilitating route generation at the expense of breaking below the speed threshold if no other route exists.
- the A* algorithm 1004 calculates the cost from the current node in consideration to the adjacent node in consideration, but substitutes use of the Cost Evaluator 1006 to obtain the cost.
- the Cost Evaluator 1006 computes the key and union fields for adjacent nodes as well as an estimate used for ordering nodes in the minimum priority queue.
- the Route Generator 104 returns the tactical route.
- the Route Generator 104 begins by retrieving the graph 1100 as input, which specifies a start node 1106 and an end node 1108 .
- the Route Generator 104 will generate the optimal path from the start node 1106 with label 7 at position (1,2) to the end node 1108 with label 13 at position (3,0).
- the Route Generator 104 retrieves the cost grid 1102 from the Map Database 110 .
- the Route Generator 104 executes the A* algorithm 1004 .
- the A* algorithm 1004 configures a node table 1104 and initializes the fields of each node in the table 1104 .
- the A* algorithm 1004 begins by examining the start node 1106 with label 7 .
- the cost of moving from node 7 to each of node 7 's adjacent nodes is computed using the Cost Evaluator 1006 . Since each of node 7 's adjacent nodes are unvisited, all are added to the minimum priority queue, except node 10 which is ignored because it has infinite cost.
- node 7 is retired and node 11 is extracted from the minimum priority queue.
- the cost of moving from node 11 to each of node 11 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and some of node 11 's adjacent nodes are added to the minimum priority queue.
- node 11 is retired and node 6 is extracted from the minimum priority queue.
- the cost of moving from node 6 to each of node 6 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and some of node 6 's adjacent nodes are added to the minimum priority queue.
- node 6 is retired and node 16 is extracted from the minimum priority queue.
- the cost of moving from node 16 to each of node 16 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 16 's adjacent nodes are added to the minimum priority queue.
- node 16 is retired and node 14 is extracted from the minimum priority queue.
- the cost of moving from node 14 to each of node 14 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 14 's adjacent nodes are added to the minimum priority queue, including node 13 , the end node. At this point, a path from the start node 1106 to the end node 1108 has been found: node 7 to 11 to 14 to 13 , and the cost of this path is 9. However, since this may not be the optimal path, the algorithm continues searching.
- node 14 is retired and node 4 is extracted from the minimum priority queue.
- the cost of moving from node 4 to each of node 4 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 4 's adjacent nodes are added to the minimum priority queue.
- node 4 is retired and node 8 is extracted from the minimum priority queue.
- the cost of moving from node 8 to each of node 8 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 8 's adjacent nodes are added to the minimum priority queue.
- node 8 is retired and node 12 is extracted from the minimum priority queue.
- the cost of moving from node 12 to each of node 12 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 12 's adjacent nodes are added to the minimum priority queue.
- node 12 is retired and node 15 is extracted from the minimum priority queue.
- the cost of moving from node 15 to each of node 15 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 15 's adjacent nodes are added to the minimum priority queue.
- node 15 is retired and node 9 is extracted from the minimum priority queue.
- the cost of moving from node 9 to each of node 9 's adjacent nodes is computed using the Cost Evaluator 1006 .
- Node 13 is relaxed from a cost of 9 to a cost of 7, and none of node 9 's adjacent nodes are added to the minimum priority queue.
- node 9 is retired and node 13 is extracted from the minimum priority queue. Since node 13 was extracted from the queue, the optimal path from start to end has been found and node evaluation terminates.
- the optimal path 1154 is constructed by following parent pointers starting at node 13 . The optimal path 1154 is found to be node 7 to 6 to 9 to 13 with a cost of 7. The optimal path also meets the speed constraint by avoiding use of node 10 , the only node with infinite cost in the graph. The Route Generator 104 then terminates by returning the optimal path.
- FIG. 12 illustrates the Cost Evaluator 1006 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- the Cost Evaluator 1006 begins at step 1200 by retrieving the current node as input.
- the Cost Evaluator 1006 retrieves the adjacent node as input.
- the Cost Evaluator 1006 queries the Intervisibility Database 108 for the viewshed V of the adjacent node using the adjacent node's coordinates.
- the Cost Evaluator 1006 obtains the current union Ucurrent stored in the current node's union field.
- the Cost Evaluator 1006 calculates the adjacent union Uadjacent as the union of V and Ucurrent as follows:
- the Cost Evaluator 1006 retrieves the minimum edge cost as input.
- the Cost Evaluator 1006 calls the Underestimate Generator 1212 to determine an estimate E of the cardinality of the union of the best path from the adjacent node to the end node.
- the Underestimate Generator 1212 uses the diagonal distance heuristic, which measures distance accumulated by traveling along both axial and diagonal edges in a graph.
- the diagonal distance heuristic can be computed using, for example, “An optimal pathfinder for vehicles in real-world digital terrain maps”, at www.student.nada.kth.se/ ⁇ f93-maj/pathfinder/4.html#1, and incorporated by reference herein.
- the Underestimate Generator 1212 then multiplies the result of the optimal distance heuristic by the minimum edge cost to obtain the estimate E as follows:
- the Underestimate Generator 1212 will not be described any further herein. Instead, please refer to U.S. Pat. No. 6,963,800 to Milbert, which is incorporated herein by reference.
- the Cost Evaluator 1006 sets the estimated route cost Restimated of the adjacent node by summing the result of the Underestimate Generator 1212 and the cardinality of Uadjacent,
- the Cost Evaluator 1006 sets the adjacent route cost Radjacent of the adjacent node to Uadjacent's cardinality as follows:
- step 1216 the Cost Evaluator 1006 terminates.
- the Cost Evaluator 1006 retrieves the current node 1300 with label 7 at position (1,2) from the Route Generator 104 . Next, the Cost Evaluator 1006 retrieves the adjacent node 1302 with label 3 at position (0,2). Next, the Cost Evaluator 1006 queries the Intervisibility Database 108 for the viewshed 1304 V of the adjacent node 1302 with label 3 at position (0,2).
- the Intervisibility Database 108 indicates that the viewshed 1304 of the adjacent node 1302 with label 3 at position (0,2) is ⁇ (0,3), (1,3), (0,2), (0,1) ⁇ .
- the Cost Evaluator 1006 obtains the union 1306 Ucurrent of the current node 1300 .
- Ucurrent ⁇ (2,3), (1,2), (2,2), (1,1) ⁇ .
- the Cost Evaluator 1006 computes the adjacent union Uadjacent as follows:
- the Cost Evaluator 1006 retrieves the minimum edge cost 1308 as input. In this example, the minimum edge cost 1308 is 0.
- the Cost Evaluator 1006 calls the Underestimate Generator to determine an estimate E. In this example, the Underestimate Generator computes E as follows:
- Cost Evaluator 1006 computes the estimated route cost Restimated using E and the cardinality of Uadjacent as follows:
- Cost Evaluator 1006 computes the adjacent route cost Radjacent as follows:
- Another exemplary embodiment for generating tactical routes is one that maximizes the path's intervisibility union while meeting speed constraints by avoiding slow terrain.
- maximizing the path's intervisibility union travelers are exposed to a maximal amount of previously-unexposed terrain after beginning travel, thereby allowing travelers to exert a surveillance or weapons capability advantage (e.g., range) over enemies in unexposed terrain.
- a surveillance or weapons capability advantage e.g., range
- travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- This exemplary embodiment for generating routes that maximize the path's intervisibility union while meeting speed constraints by avoiding slow terrain defines explicitly-different behavior for only the Cost Evaluator 1006 component, and implicitly-different behavior for the Route Generator 104 component. Also, this exemplary embodiment relies on using inverses of cost values representing union cardinality. A variation on this exemplary embodiment may, instead of taking inverse cost values representing union cardinality, utilize a maximum priority queue for selecting nodes in the A* algorithm 1004 . Such an exemplary embodiment would likely have to abandon using infinite costs to represent slow terrain. Yet another variation on this exemplary embodiment may cease node evaluation after each node adjacent to the end node has been retired. Although such an exemplary embodiment may be unobvious because it is not widely employed in the art, it may reduce the running time of the Route Generator 104 because wasted computation would be avoided.
- the Cost Evaluator 1006 sets the estimated route cost Restimated of the adjacent node by taking the inverse of the sum of the result of the Underestimate Generator 1212 and the cardinality of Uadjacent,
- the Cost Evaluator 1006 sets the adjacent route cost Radjacent of the adjacent node to the inverse of Uadjacent's cardinality as follows:
- the Cost Evaluator 1006 retrieves the current node 1400 with label 7 at position (1,2) from the Route Generator 104 . Next, the Cost Evaluator 1006 retrieves the adjacent node 1402 with label 3 at position (0,2). Next, the Cost Evaluator 1006 queries the Intervisibility Database 108 for the viewshed 1404 V of the adjacent node 1402 with label 3 at position (0,2).
- the Intervisibility Database 108 indicates that the viewshed 1404 of the adjacent node 1402 with label 3 at position (0,2) is ⁇ (0,3), (1,3), (0,2), (0,1) ⁇ .
- the Cost Evaluator 1006 obtains the union 1406 Ucurrent of the current node 1400 .
- Ucurrent ⁇ (2,3), (1,2), (2,2), (1,1) ⁇ .
- the Cost Evaluator 1006 computes the adjacent union Uadjacent as follows:
- the Cost Evaluator 1006 retrieves the minimum edge cost 1408 as input. In this example, the minimum edge cost 1408 is 0.
- the Cost Evaluator 1006 calls the Underestimate Generator to determine an estimate E. In this example, the Underestimate Generator computes E as follows:
- Cost Evaluator 1006 computes the estimated route cost Restimated using E and the cardinality of Uadjacent as follows:
- Cost Evaluator 1006 computes the adjacent route cost Radjacent as follows:
- the Route Generator 104 begins by retrieving the graph 1500 as input, which specifies a start node 1506 and an end node 1508 .
- the Route Generator 104 will generate the optimal path from the start node 1506 with label 7 at position (1,2) to the end node 1508 with label 13 at position (3,0).
- the Route Generator 104 retrieves the cost grid 1502 from the Map Database 110 .
- the Route Generator 104 executes the A* algorithm 1004 .
- the A* algorithm 1004 configures a node table 1504 and initializes the fields of each node in the table 1504 .
- the A* algorithm 1004 begins by examining the start node 1506 with label 7 .
- the cost of moving from node 7 to each of node 7 's adjacent nodes is computed using the Cost Evaluator 1006 . Since each of node 7 's adjacent nodes are unvisited, all are added to the minimum priority queue, except node 10 which is ignored because it has infinite cost.
- node 7 is retired and node 3 is extracted from the minimum priority queue.
- the cost of moving from node 3 to each of node 3 's adjacent nodes is computed using the Cost Evaluator 1006 . Nodes 2 , 4 , 6 , and 8 are relaxed, and none of node 3 's adjacent nodes are added to the minimum priority queue.
- node 3 is retired and node 6 is extracted from the minimum priority queue.
- the cost of moving from node 6 to each of node 6 's adjacent nodes is computed using the Cost Evaluator 1006 . Nodes 2 and 11 are relaxed, and some of node 6 's adjacent nodes are added to the minimum priority queue.
- node 2 is retired and node 5 is extracted from the minimum priority queue.
- the cost of moving from node 5 to each of node 5 's adjacent nodes is computed using the Cost Evaluator 1006 . Node 9 is relaxed, and none of node 5 's adjacent nodes are added to the minimum priority queue.
- node 5 is retired and node 9 is extracted from the minimum priority queue.
- the cost of moving from node 9 to each of node 9 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 9 's adjacent nodes are added to the minimum priority queue.
- node 9 is retired and node 14 is extracted from the minimum priority queue.
- the cost of moving from node 14 to each of node 14 's adjacent nodes is computed using the Cost Evaluator 1006 . Nodes 11 and 13 are relaxed, and some of node 14 's adjacent nodes are added to the minimum priority queue.
- node 14 is retired and node 15 is extracted from the minimum priority queue.
- the cost of moving from node 15 to each of node 15 's adjacent nodes is computed using the Cost Evaluator 1006 . Nodes 11 and 12 are relaxed, and some of node 15 's adjacent nodes are added to the minimum priority queue.
- node 15 is retired and node 12 is extracted from the minimum priority queue.
- the cost of moving from node 12 to each of node 12 's adjacent nodes is computed using the Cost Evaluator 1006 . Node 8 is relaxed, and none of node 12 's adjacent nodes are added to the minimum priority queue.
- node 12 is retired and node 8 is extracted from the minimum priority queue.
- the cost of moving from node 8 to each of node 8 's adjacent nodes is computed using the Cost Evaluator 1006 . Node 4 is relaxed, and none of node 8 's adjacent nodes are added to the minimum priority queue.
- node 8 is retired and node 4 is extracted from the minimum priority queue.
- the cost of moving from node 4 to each of node 4 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 4 's adjacent nodes are added to the minimum priority queue.
- node 4 is retired and node 11 is extracted from the minimum priority queue.
- the cost of moving from node 11 to each of node 11 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 11 's adjacent nodes are added to the minimum priority queue.
- node 11 is retired and node 16 is extracted from the minimum priority queue.
- the cost of moving from node 16 to each of node 16 's adjacent nodes is computed using the Cost Evaluator 1006 . No nodes are relaxed, and none of node 16 's adjacent nodes are added to the minimum priority queue.
- node 16 is retired and node 13 is extracted from the minimum priority queue. Since node 13 was extracted from the queue, the optimal path from start to end has been found and node evaluation terminates.
- the optimal path 1566 is constructed by following parent pointers starting at node 13 .
- the optimal path 1566 is found to be node 7 to 3 to 6 to 2 to 5 to 9 to 14 to 13 with a cost of 0.067 (approximating 1/15).
- the optimal path also meets the speed constraint by avoiding use of node 10 , the only node with infinite cost in the graph.
- the Route Generator 104 then terminates by returning the optimal path.
- the Route Generator 104 produces the path having the maximum visibility union per distance travelled.
- the ratio of the cardinality of the path's union to the number of edges in the route is the maximum for any possible route.
- Another exemplary embodiment for generating tactical routes is one that minimizes the path's intervisibility sum while meeting speed constraints by avoiding slow terrain.
- travelers are exposed to a minimal amount of terrain after beginning travel, thereby reducing the risk of encountering enemies in unexposed terrain.
- travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- This exemplary embodiment omits use of the Minimum Edge Cost Finder 102 and the Cost Evaluator 1006 and modifies the behavior of the Cost Generator 100 of the exemplary embodiment for generating routes that maximize the path's intervisibility union.
- FIG. 16 illustrates the Cost Generator 100 of the exemplary embodiment for generating routes that minimize the path's intervisibility sum while meeting speed constraints by avoiding slow terrain.
- the Cost Generator 100 begins at step 1600 by retrieving the threshold traversal speed from the Capabilities Database 106 .
- the Cost Generator 100 retrieves the cost grid from the Map Database 110 .
- the Cost Generator 100 retrieves the graph from the Map Database 110 .
- the Cost Generator 100 retrieves the visibility matrix from the Intervisibility Database 108 .
- the Cost Generator 100 sets the current minimum edge cost C to the maximum viewshed cardinality indicated by the visibility matrix.
- the Cost Generator 100 obtains the list of nodes from the graph.
- the Cost Generator 100 determines if there are more nodes to evaluate. If not, at step 1628 , the Cost Generator 100 stores the now-populated cost grid back to the Map Database 110 . If so, at step 1614 , the Cost Generator 100 gets the current node and proceeds to step 1616 .
- the Cost Generator 100 obtains the node's speed by passing the node to the Speed Analyzer 212 .
- the Cost Generator 100 determines whether the node's speed is below the threshold traversal speed. If so, at step 1620 , the Cost Generator 100 sets the current node cost N in the corresponding cell in the cost grid to infinity to indicate the node is impassable and proceeds to step 1622 . If not, at step 1624 , the Cost Generator 100 obtains the current node's viewshed V by passing the node to the Intervisibility Analyzer 216 and proceeds to step 1626 .
- the Cost Generator 100 sets the current node cost N in the corresponding cell in the cost grid to the cardinality of V,
- the Cost Generator 100 updates C to the smaller of C and the current node cost N, as indicated by the following formula:
- the Cost Generator 100 continues evaluating nodes by proceeding to step 1612 .
- the Cost Generator 100 stores the cost grid.
- the Cost Generator 100 logs the current minimum cost C.
- the Cost Generator 100 will have set the cost of each node's corresponding cell in the cost grid in the Map Database 110 .
- Another exemplary embodiment for generating tactical routes is one that maximizes the path's intervisibility sum while meeting speed constraints by avoiding slow terrain.
- maximizing the path's intervisibility sum travelers are exposed to a maximal amount of previously-unexposed terrain after beginning travel, thereby allowing travelers to exert a surveillance or weapons capability advantage (e.g., range) over enemies in unexposed terrain.
- a surveillance or weapons capability advantage e.g., range
- travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- the Cost Generator 100 of this exemplary embodiment that maximizes the path's intervisibility sum differs from that of the exemplary embodiment that minimizes the path's intervisibility sum in two steps; first, at step 1608 , the Cost Generator 100 sets the current minimum edge cost C to 1. Second, at step 1626 , the Cost Generator 100 sets the current node cost N in the corresponding cell in the cost grid to the inverse of the cardinality of V,
- the above-described devices and subsystems of the exemplary embodiments of FIGS. 1-16 can include, for example, any suitable servers, workstations, PCs, laptop computers, PDAs, Internet appliances, handheld devices, cellular telephones, wireless devices, other electronic devices, and the like, capable of performing the processes of the exemplary embodiments of FIGS. 1-16 .
- the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can communicate with each other using any suitable protocol and can be implemented using one or more programmed computer systems or devices.
- One or more interface mechanisms can be used with the exemplary embodiments of FIGS. 1-16 , including, for example, Internet access, telecommunications in any suitable form (e.g., voice, modem, and the like), wireless communications media, and the like.
- employed communications networks or links can include one or more wireless communications networks, cellular communications networks, cable communications networks, satellite communications networks, G3 communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, WiMax Networks, a combination thereof, and the like.
- PSTNs Public Switched Telephone Network
- PDNs Packet Data Networks
- the Internet intranets, WiMax Networks, a combination thereof, and the like.
- the devices and subsystems of the exemplary embodiments of FIGS. 1-16 are for exemplary purposes, as many variations of the specific hardware and/or software used to implement the exemplary embodiments are possible, as will be appreciated by those skilled in the relevant art(s).
- the functionality of one or more of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can be implemented via one or more programmed computer systems or devices.
- a single computer system can be programmed to perform the special purpose functions of one or more of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 .
- two or more programmed computer systems or devices can be substituted for any one of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 .
- principles and advantages of distributed processing such as redundancy, replication, and the like, also can be implemented, as desired, to increase the robustness and performance the devices and subsystems of the exemplary embodiments of FIGS. 1-16 .
- the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can store information relating to various processes described herein. This information can be stored in one or more memories, such as a hard disk, optical disk, magneto-optical disk, RAM, and the like, of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 .
- One or more databases of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can store the information used to implement the exemplary embodiments of the present invention.
- the databases can be organized using data structures (e.g., records, tables, arrays, fields, graphs, trees, lists, and the like) included in one or more memories or storage devices listed herein.
- the processes described with respect to the exemplary embodiments of FIGS. 1-16 can include appropriate data structures for storing data collected and/or generated by the processes of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 in one or more databases thereof.
- All or a portion of the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, micro-controllers, and the like, programmed according to the teachings of the exemplary embodiments of the present invention, as will be appreciated by those skilled in the computer and software arts.
- Appropriate software can be readily prepared by programmers of ordinary skill based on the teachings of the exemplary embodiments, as will be appreciated by those skilled in the software art.
- the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be appreciated by those skilled in the electrical art(s).
- the exemplary embodiments are not limited to any specific combination of hardware circuitry and/or software.
- the exemplary embodiments of the present invention can include software for controlling the devices and subsystems of the exemplary embodiments of FIGS. 1-16 , for driving the devices and subsystems of the exemplary embodiments of FIGS. 1-16 , for enabling the devices and subsystems of the exemplary embodiments of FIGS. 1-16 to interact with a human user, and the like.
- Such software can include, but is not limited to, device drivers, firmware, operating systems, development tools, applications software, and the like.
- Such computer readable media further can include the computer program product of an embodiment of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the exemplary embodiments of FIGS. 1-16 .
- Computer code devices of the exemplary embodiments of the present invention can include any suitable interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes and applets, complete executable programs, Common Object Request Broker Architecture (CORBA) objects, and the like. Moreover, parts of the processing of the exemplary embodiments of the present invention can be distributed for better performance, reliability, cost, and the like.
- interpretable programs including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes and applets, complete executable programs, Common Object Request Broker Architecture (CORBA) objects, and the like.
- CORBA Common Object Request Broker Architecture
- the devices and subsystems of the exemplary embodiments of FIGS. 1-16 can include computer readable medium or memories for holding instructions programmed according to the teachings of the present invention and for holding data structures, tables, records, and/or other data described herein.
- Computer readable medium can include any suitable medium that participates in providing instructions to a processor for execution. Such a medium can take many forms, including but not limited to, non-volatile media, volatile media, transmission media, and the like.
- Non-volatile media can include, for example, optical or magnetic disks, magneto-optical disks, and the like.
- Volatile media can include dynamic memories, and the like.
- Transmission media can include coaxial cables, copper wire, fiber optics, and the like.
- Transmission media also can take the form of acoustic, optical, electromagnetic waves, and the like, such as those generated during radio frequency (RF) communications, infrared (IR) data communications, and the like.
- RF radio frequency
- IR infrared
- Common forms of computer-readable media can include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitable optical medium, punch cards, paper tape, optical mark sheets, any other suitable physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other suitable memory chip or cartridge, a carrier wave, or any other suitable medium from which a computer can read.
Abstract
Description
- 1. Field of the Invention
- The present invention generally relates to generation of tactical routes, and more particularly to a method and system for generating geographic terrain routes that balance speed and exposure to potential threats.
- 2. Discussion of the Background
- Soldiers planning tactical routes must ensure that each route allows them to remain concealed from enemy observers yet move quickly at the same time. Creating these routes is a challenging process that requires great effort with no guarantee of desired results.
- First, soldiers must gather intelligence on the terrain to be traversed. Often, this comes in the form of topographic maps, aerial photos, incident reports, previous mission plans, and firsthand knowledge. Soldiers operating in areas with more attention and traffic may receive accurate, up to date maps; others, like Special Forces soldiers operating in remote terrain, may receive local maps that are often highly outdated. Soldiers have helpful acronyms to help them remember what factors to consider when analyzing terrain and gathering intelligence for route planning, such as OCOKA (observation, concealment and cover, obstacles, key terrain, and avenues of approach). Soldiers also analyze the contour lines in topographic maps in an attempt to visualize the lay of the land. Reading contour maps and visualizing terrain is a skill that takes years of training and practice to refine and use properly. Satellites and spy planes flying overhead provide aerial photographs that reveal critical details about the battlefield terrain, such as vegetation, structures, and enemy force composition.
- Next, soldiers use the intelligence gathered to plan a route. Choosing a starting location first, often a forward operating base, combat outpost, or objective rally point, soldiers then plan routes one waypoint at a time. Many soldiers use digital mapping software, either on personal computers or global positioning system (GPS) devices, to place waypoints. Software then connects each subsequent waypoint placed by the soldier with a straight line. In complex terrain, soldiers are forced to look closely at the map, placing waypoints close together so that the connecting lines do not intersect buildings and other obstructions. Often, soldiers spend hours placing hundreds of waypoints in this manner, refining route legs and tweaking waypoints, until the route reaches the destination. At this point, a primary route has been planned, but that is not good enough; on top of that, soldiers will generate at least one more, and typically three more routes to account for contingent and emergency situations. These routes must still be fast and safe to travel but sufficiently different from each other to be expedient in the field.
- Finally, soldiers traverse the route. Sometimes, route traversal will be preceded by a route reconnaissance where one or more scouts observe the avenues of approach used by the route for enemy action or other interesting intelligence. When soldiers finally embark on the route, there is usually no guarantee that the intelligence used to plan the route has not since changed drastically. Knowing this, each soldier ensures that he knows his current position at all times so that he can react quickly if the plan changes. Evidence that the plan can (and often does) change can be found in accounts of the Battle of Mogadishu, Battle for Baghdad, and countless others.
- From the above description of tactical route planning, it is easy to see that planning tactical routes correctly is extremely difficult. Imagine how a soldier's workflow would look if assisted by a computer software tool for planning tactical routes. First, the amount of time and effort spent analyzing intelligence is decreased because the tool analyzes every single terrain cell. Second, the amount of time and effort spent meticulously dropping hundreds of waypoints for multiple routes is greatly reduced because the tool automatically generates routes. A soldier using that kind of tactical route planning tool would be able to spend less time on detailed planning and more time on other important tasks, such as route reconnaissance or mission execution.
- However, soldiers have not had access to such a tactical route planning tool in the past. While many civilians benefit daily from analogous route planning tools (MapQuest, Google Maps, and Microsoft Streets and Trips) that help them plan fast and short routes along highway networks, soldiers have simply not had access to that kind of tool for military purposes.
- The state of the art in tactical route generation suffers from the following important disadvantages:
- Fails to suggest intelligent ground maneuvers. Although the state of the art for path planning and terrain awareness in the field of aviation is well-developed, the state of the art in providing similar tools for ground-based maneuvers is lacking. Few tools currently exists that suggest intelligent schemes of maneuver on the ground that utilize terrain information such as land cover maps and digital elevation models.
- Fails to blend speed and concealment. During tactical movement, soldiers need to move quickly while remaining concealed, taking advantage of fast terrain that also provides sufficient concealment and cover. However, the state of the art commonly generates routes that aim to maximize concealment or speed with no thought as to how these factors could be blended to provide a more usable route. As a result, tactical routes created using state of the art methods often suffer from being too exposed when maximizing speed or too slow when maximizing concealment.
- Therefore, there is a need for a method and system that addresses the above and other problems. The above and other problems are addressed by the exemplary embodiments of the present invention, which generates geographic routes that facilitate tactical movement through surrounding terrain.
- Accordingly, in exemplary aspects of the present invention there is provided a computer-implemented system and method for generating tactically-feasible routes in battlefield terrain including an Intervisibility Analyzer for analyzing propagation of optical lines of sight in a geographic terrain, a Speed Analyzer for analyzing speed of travelers in the geographic terrain, and a Route Generator for generating routes that facilitate tactical movement.
- The Intervisibility Analyzer utilizes a digital elevation model of terrain to compute a populate a database of viewsheds for each point in the model, where each viewshed is a set of other points having optical line of sight to the point.
- The Speed Analyzer determines how fast a traveler may move across varying types of terrain.
- The Route Generator searches the nodes and edges in a graph representing the cost grid to generate the best path between a start and end point.
- Advantageously, the exemplary embodiments include various features that are of particular utility, for example, including suggesting intelligent ground maneuvers. The exemplary embodiments provide to ground soldiers what aviators have had for quite some time: intelligent routing tools that suggest the correct path of travel based on environmental factors like terrain types and visibility.
- In addition, the exemplary embodiments blend speed and concealment during route generation, helping to ensure that soldiers can reach the destination quickly and unobserved.
- In addition, The exemplary embodiments mimic the way soldiers actually plan concealed tactical routes. During tactical movement, soldiers accept exposure to the surrounding area, but with every step, try to minimize the amount of new terrain to which they are exposed. This explains why rounding corners, entering rooms, and coming up over ridges are all dangerous movements; they expose the soldier to large amounts of previously hidden terrain all at once. The exemplary embodiments create routes that minimize the amount of new terrain to which route travelers are exposed during travel and do so by minimizing the sums of the sizes of the unions of the sets of points visible to each route waypoint. This key technique is subtly different and yet vastly superior to any existing technique which tries to minimize the sums of the sizes of the sets of points visible to each route waypoint because it mimics the way soldiers actually plan tactical routes.
- In addition, the exemplary embodiments maximize any advantages in weapons range. Soldiers in tactical environments may sometimes desire to move in open areas where terrain allows them to move quickly and their weapons capabilities are maximized for the areas visible during travel. Soldiers moving in this fashion leverage routes through open areas to stay outside the range of enemy weaponry but inside the range of their own weaponry and visibility. The exemplary embodiments generate routes that allow soldiers to maximize the advantages in range afforded by their weapons and have the capability to generate routes that utilize both highly visible and fast terrain, thereby allowing a soldier to more fully leverage any potential advantages in weapons (e.g., 50 caliber guns) or surveillance (e.g., night vision).
- In addition, the exemplary embodiments create routes that facilitate efficient searching between waypoints. Soldiers in tactical environments may sometimes desire to travel between two waypoints while maximizing the amount of visible terrain per unit of distance travelled. Generating a route like this by hand would be extremely difficult for a human. The exemplary embodiments generate routes that maximize visibility per unit distance travelled and do so by exposing travelers to the largest collective area of terrain while minimizing the distance travelled.
- Still other aspects, features, and advantages are readily apparent from the following detailed description, by illustrating a number of exemplary embodiments and implementations. The present invention is also capable of other and different embodiments, and its several details can be modified in various respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and descriptions are to be regarded as illustrative in nature, and not as restrictive.
- The embodiments of the present invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
-
FIG. 1 illustrates an Overall System for Tactical Routing; -
FIG. 2 illustrates a Cost Generator; -
FIG. 3 illustrates Cost Generator Example; -
FIG. 4 illustrates a Speed Analyzer; -
FIG. 5 illustrates a Speed Analyzer Example -
FIG. 6 illustrates an Intervisibility Analyzer; -
FIG. 7 illustrates an Intervisibility Analyzer Example; -
FIG. 8 illustrates a Minimum Edge Cost Finder; -
FIG. 9 illustrates a Minimum Edge Cost Finder Example; -
FIG. 10 illustrates a Route Generator; -
FIG. 11 illustrates a Route Generator Example; -
FIG. 12 illustrates a Cost Evaluator; -
FIG. 13 illustrates a Cost Evaluator Example; -
FIG. 14 illustrates a second Cost Evaluator Example; -
FIG. 15 illustrates a second Route Generator Example; and -
FIG. 16 illustrates a second Cost Generator. - An exemplary embodiment for generating tactical routes is one that minimizes the path's intervisibility union while meeting speed constraints by avoiding slow terrain. By minimizing the path's intervisibility union, travelers are exposed to a minimal amount of previously-unexposed terrain after beginning travel, thereby reducing the risk of encountering enemies in unexposed terrain. By avoiding slow terrain below an arbitrary threshold, travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- Referring now to the drawings,
FIG. 1 illustrates the system's main components of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. TheCost Generator 100 uses speed and visibility information to create a blended cost grid for generating tactical routes. The MinimumEdge Cost Finder 102 searches the edges of a graph to find the minimum cost edge which is used in computing heuristics while generating tactical routes. TheRoute Generator 104 generates tactical routes. Each of the components has access to a collection of databases. TheMap Database 110 contains geographic information including land cover maps, cost surfaces, and graphs. TheMap Database 110 is a standard Geographic Information System (GIS) such as MapInfo by ESRI, Inc. of Redlands, Calif. TheIntervisibility Database 108 contains viewsheds, where each viewshed is a set of terrain locations having optical line of sight to an observing location. Algorithms for computing viewsheds use digital elevation models (DEMs) of varying resolution and complexity, and these algorithms are well-known to those skilled in the art of terrain analysis. An example of one such algorithm for computing viewsheds is the ESRI Visibility algorithm in the ISurfaceOp package. As such, theIntervisibility Database 108 is populated with pre-computed viewsheds, and the computation of these viewsheds for example, can be performed using ESRI's “Visibility” function, available on the World Wide Web at webhelp.esri.com/arcgisdesktop/9.1 /body.cfm?tocVisable=0&ID=3189&TopicName=visibility, and incorporated by reference herein. Also, storing viewsheds for DEMs in an easily-accessible format is non-trivial due to memory complexity; however, methods for doing so are also known to those skilled in the art of terrain analysis. As such, storage of the viewsheds and the architecture and format of theIntervisibility Database 108 can be performed, for example, using “Analysis and Visualization of Visibility Surfaces”, at www.geocomputation.org/2003/Papers/Caldwell_Paper.pdf, and incorporated by reference herein. TheIntervisibility Database 108 is rectified to match the coordinates used in theMap Database 110. TheCapabilities Database 106 contains a traversal matrix for mapping land cover types to traversal speeds and a visibility matrix for mapping visibility parameters to varying observer capabilities. - The following sections describe in detail the components of the exemplary embodiments.
-
FIG. 2 illustrates theCost Generator 100 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. TheCost Generator 100 begins atstep 200 by retrieving the threshold traversal speed from theCapabilities Database 106. Atstep 202, theCost Generator 100 retrieves the cost grid from theMap Database 110. Atstep 204, theCost Generator 100 retrieves the graph from theMap Database 110. Atstep 206, theCost Generator 100 obtains the list of nodes from the graph. Atstep 208, theCost Generator 100 determines if there are more nodes to evaluate. If not, atstep 222, theCost Generator 100 stores the now-populated cost grid back to theMap Database 110 and terminates. If so, atstep 210, theCost Generator 100 gets the current node and proceeds to step 212. Atstep 212, theCost Generator 100 obtains the node's speed by passing the node to theSpeed Analyzer 212. Atstep 214, theCost Generator 100 determines whether the node's speed is below the threshold traversal speed. If so, atstep 220, theCost Generator 100 sets the node's corresponding cell in the cost grid to a cost of infinity to indicate the node is impassable and proceeds to step 208. If not, atstep 216, theCost Generator 100 obtains the node's visibility by passing the node to theIntervisibility Analyzer 216 and proceeds to step 218. Atstep 218, theCost Generator 100 sets the node's corresponding cell in the cost grid to the visibility and continues evaluating nodes by proceeding to step 208. Atstep 222, theCost Generator 100 stores the cost grid. Upon termination afterstep 222, theCost Generator 100 will have set the cost of each node's corresponding cell in the cost grid in theMap Database 110. TheCost Generator 100 constructs the cost grid to facilitate theRoute Generator 104 avoiding nodes having too slow a traversal speed (i.e., traversal speeds below a threshold value). - To better understand the
Cost Generator 100 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 3 . TheCost Generator 100 first retrieves thethreshold traversal speed 300 from theCapabilities Database 106. Next, theCost Generator 100 retrieves thecost grid 302 from theMap Database 110. Next, theCost Generator 100 retrieves thegraph 304 from theMap Database 110. Next, theCost Generator 100 obtains thenode list 306 from thegraph 304. Next, theCost Generator 100 examines each node in thenode list 306. In this example 300, theCost Generator 100 selectsnode 308 withlabel 3 at position (0,2). Next, theCost Generator 100 passes thenode 308 to theSpeed Analyzer 212. TheSpeed Analyzer 212 returns a speed of 20 kph. Next, theCost Generator 100 determines that the speed of thenode threshold traversal speed 300 of 5 kph. Next, theCost Generator 100 passes thenode 308 to theIntervisibility Analyzer 216. TheIntervisibility Analyzer 216 returns a visibility of 4 cells. Next, theCost Generator 100 sets thecorresponding cell 310 withlabel 3 at position (0,2) in thecost grid 302 to 4 and continues evaluating nodes until termination. In another example, theCost Generator 100 selectsnode 312 withlabel 10 at position (2,1). Next, theCost Generator 100 passes thenode 312 to theSpeed Analyzer 212. TheSpeed Analyzer 212 returns a speed of 0 kph. Next, theCost Generator 100 determines that the speed of thenode threshold traversal speed 300 of 5 kph. Next, theCost Generator 100 sets thecorresponding cell 314 withlabel 10 at position (2,1) in thecost grid 302 to infinity (∞) and continues evaluating nodes until termination. After evaluating each node in thenode list 306, theCost Generator 100 will have set the costs of each corresponding cell in thecost grid 302. TheCost Generator 100 then terminates. -
FIG. 4 illustrates theSpeed Analyzer 212 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. TheSpeed Analyzer 212 begins atstep 400 by retrieving the node passed in from theCost Generator 100. Atstep 402, theSpeed Analyzer 212 retrieves the land cover map from theMap Database 110. Atstep 404, theSpeed Analyzer 212 retrieves the traversal matrix from theCapabilities Database 106. Atstep 406, theSpeed Analyzer 212 queries the land cover map for the node's terrain type using the node's position. Atstep 408, theSpeed Analyzer 212 returns the speed of the terrain type found in the traversal matrix and terminates. Upon termination, theSpeed Analyzer 212 has found the speed for the node. Speeds represent how fast a traveler can travel across the terrain represented by the node. - To better understand the
Speed Analyzer 212 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 5 . TheSpeed Analyzer 212 retrieves thenode 500 withlabel 3 at position (0,2) from theCost Generator 100. Next, theSpeed Analyzer 212 retrieves theland cover map 502 from theMap Database 110. Next, theSpeed Analyzer 212 retrieves thetraversal matrix 504 from theCapabilities Database 106. Next, theSpeed Analyzer 212 queries theland cover map 502 for the terrain type of thenode 500 withlabel 3 at position (0,2). Theland cover map 502 indicates that the terrain type of thenode 500 withlabel 3 at position (0,2) is field. Next, theSpeed Analyzer 212 queries thetraversal matrix 504 for the speed of the field terrain type. Thetraversal matrix 504 indicates that the speed of the field terrain type is 20 kph. TheSpeed Analyzer 212 then terminates by returning a speed of 20 kph. In another example, theSpeed Analyzer 212 retrieves thenode 506 withlabel 10 at position (2,1) from theCost Generator 100. Later, theSpeed Analyzer 212 queries theland cover map 502 for the terrain type of thenode 506 withlabel 10 at position (2,1). Theland cover map 502 indicates that the terrain type of thenode 506 withlabel 10 at position (2,1) is water. Next, theSpeed Analyzer 212 queries thetraversal matrix 504 for the speed of the water terrain type. Thetraversal matrix 504 indicates that the speed of the water terrain type is 0 kph. TheSpeed Analyzer 212 then terminates by returning a speed of 0 kph. -
FIG. 6 illustrates theIntervisibility Analyzer 216 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. TheIntervisibility Analyzer 216 begins atstep 600 by retrieving the node passed in from theCost Generator 100. Atstep 602, theIntervisibility Analyzer 216 queries theIntervisibility Database 108 for the node's viewshed V using the node's position. The viewshed V is a set whose elements comprise the nodes having optical line of sight to the node, and theIntervisibility Database 108 is the record of all such sets. Atstep 604, theIntervisibility Analyzer 216 counts the number of elements in V to determine the V's cardinality (size), |V|. Atstep 606, theIntervisibility Analyzer 216 terminates by returning |V| as the visibility. Upon termination, theIntervisibility Analyzer 216 has found the visibility for the node. Visibility quantifies the extent to which a traveler is exposed when traveling across the terrain represented by the node. - To better understand the
Intervisibility Analyzer 216 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 7 . TheIntervisibility Analyzer 216 retrieves thenode 700 withlabel 7 at position (1,2) from theCost Generator 100. Next, theIntervisibility Analyzer 216 queries theIntervisibility Database 108 for theviewshed 702 of thenode 700 withlabel 7 at position (1,2). TheIntervisibility Database 108 indicates that theviewshed 702 of thenode 700 withlabel 7 at position (1,2) is {(2,3), (1,2), (2,2), (1,1)}. Next, theIntervisibility Analyzer 216 counts the number of elements in the viewshed 702 to determine the cardinality (size) ofviewshed 702. TheIntervisibility Analyzer 216 determines that the visibility is 4. Next, theIntervisibility Analyzer 216 terminates by returning 4. -
FIG. 8 illustrates the MinimumEdge Cost Finder 102 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. The MinimumEdge Cost Finder 102 begins atstep 800 by retrieving the graph as input. Atstep 802, the MinimumEdge Cost Finder 102 retrieves the visibility matrix from theIntervisibility Database 108. Atstep 804, the MinimumEdge Cost Finder 102 sets the current minimum edge cost C to the maximum viewshed cardinality indicated by the visibility matrix. Atstep 806, the MinimumEdge Cost Finder 102 obtains the list of edges from the graph. Atstep 808, the MinimumEdge Cost Finder 102 determines if there are more edges to evaluate. If not, atstep 828, the MinimumEdge Cost Finder 102 returns C. If so, atstep 810, the MinimumEdge Cost Finder 102 obtains the current edge from the graph. Atstep 812, the MinimumEdge Cost Finder 102 queries theIntervisibility Database 108 for the viewsheds V1 and V2 of the Edge's nodes N1 and N2 using the nodes' positions. The viewsheds V1 and V2 are sets whose elements comprise the nodes having optical line of sight to nodes N1 and N2 respectively. Atstep 814, the MinimumEdge Cost Finder 102 calculates a first difference D1 by subtracting V2 from V1 using set subtraction, as indicated by the following formula: -
D1=V1−V2 - D1 represents the set of elements in V1 and not in V2. At
step 816, the MinimumEdge Cost Finder 102 counts the number of elements in D1 to determine the D1's cardinality, |D1|. Atstep 818, the MinimumEdge Cost Finder 102 calculates a second difference D2 by subtracting V1 from V2 using set subtraction, as indicated by the following formula: -
D2=V2−V1 - D2 represents the set of elements in V2 and not in V1. It is noteworthy that D1 may or may not be equal to D2. At
step 820, the MinimumEdge Cost Finder 102 counts the number of elements in D2 to determine the D2's cardinality, |D2|. Atstep 822, the MinimumEdge Cost Finder 102 tests if |D1| or |D2| equals 0 (is minimal). If so, the MinimumEdge Cost Finder 102 sets C to 0 atstep 824 and returns C atstep 828. If not, atstep 826, the MinimumEdge Cost Finder 102 updates C to the smaller of |D1|, |D2|, and C, as indicated by the following formula: -
C=Minimum(|D1|, |D2|, C) - At
step 808, the MinimumEdge Cost Finder 102 continues evaluating edges. Upon termination afterstep 828, the MinimumEdge Cost Finder 102 will have found C, the smallest possible incremental cost of moving from one node to any adjacent node in any direction. - To better understand the Minimum
Edge Cost Finder 102 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 9 . First, the MinimumEdge Cost Finder 102 retrieves thegraph 900 as input. Next, the MinimumEdge Cost Finder 102 retrieves thevisibility matrix 902 from theIntervisibility Database 108. Next, the MinimumEdge Cost Finder 102 sets the current minimum edge cost C to the maximum viewshed cardinality indicated by thevisibility matrix 904. In this example, the observer type is human, so the MinimumEdge Cost Finder 102 sets C to 9. Next, the MinimumEdge Cost Finder 102 obtains theedge list 904 from thegraph 900. Next, in this example, the MinimumEdge Cost Finder 102 selects theedge 900 withlabel 1 for evaluation. Next, the MinimumEdge Cost Finder 102 queries theIntervisibility Database 108 for theviewshed V1 908 of the first node of theedge 906. Next, the MinimumEdge Cost Finder 102 queries theIntervisibility Database 108 for theviewshed V2 910 of the second node of theedge 906. Next, the MinimumEdge Cost Finder 102 calculates a first difference D1 by subtracting V2 from V1 using set subtraction as follows: -
D1=V1−V2={(0,1), (0,0), (1,0)}−{(0,2), (0,1), (0,0), (1,0)}=Ø - D1 represents the set of elements in V1 and not in V2; in this example, V1 has no elements not in V2, so D1 is the empty set (Ø). Next, the Minimum
Edge Cost Finder 102 counts the number of elements in D1 to determine D1's cardinality, |D1|. In this case, |D1|=0. Next, the MinimumEdge Cost Finder 102 calculates a second difference D2 by subtracting V1 from V2 using set subtraction as follows: -
D2=V2−V1={(0,2), (0,1), (0,0), (1,0)}−{(0,1), (0,0), (1,0)}={(0,2)} - D2 represents the set of elements in V2 not in V1; in this example, V2 has some elements not in V1. Next, the Minimum
Edge Cost Finder 102 counts the number of elements in D2 to determine the D2's cardinality, |D2|. In this case, |D2|=1. Next, the MinimumEdge Cost Finder 102 tests if |D1| or |D2| equals 0 (is minimal). In this example, |D1|=0, so the MinimumEdge Cost Finder 102 sets C to 0 and terminates by returning C. -
FIG. 10 illustrates theRoute Generator 104 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. TheRoute Generator 104 begins atstep 1000 by retrieving the graph as input. Atstep 1002, theRoute Generator 104 retrieves the cost grid from theMap Database 110. TheRoute Generator 104 then executes the A*algorithm 1004, which finds an optimal path from a start node to an end node. TheRoute Generator 104 assumes the nodes of thegraph 1000 are pre-initialized for use in the A*algorithm 1004. The A*algorithm 1004 is well known to those skilled in the art, and can be performed, for example, using “Artificial Intelligence, Third Edition” by Patrick Henry Winston, published by Addison-Wesley, which is incorporated by reference herein. Initialization of a graph's nodes for use in the A*algorithm 1004 is also well-known to those skilled in the art and can be performed, for example, usingchapter 5 of the book “Artificial Intelligence, Third Edition” by Patrick Henry Winston, published by Addison-Wesley. - The
Route Generator 104 necessitates inclusion of a union field in each node that stores a union of one or more viewsheds. TheRoute Generator 104 computes and maintains each node's union field in the same manner as each node's key field is normally computed and maintained. Throughout, a node's union field represents the set union of the viewsheds of the nodes in the path leading up to the node, and a node's key field represents the cardinality of the node's union (i.e., the number of nodes in the union). It follows that initialization of the union field for use in the A*algorithm 1004 requires setting the start node's union field to the start node's viewshed from theIntervisibility Database 108, the start node's key field to the cardinality of the start node's union field, and the union and key fields for all other nodes to null and zero respectively. It also follows that in the step where the A*algorithm 1004 relaxes a node, both the node's key and union fields are relaxed as well. In the step where the A*algorithm 1004 considers adjacent nodes, theRoute Generator 104 will ignore adjacent nodes having infinite cost as indicated by the cost grid contained in theMap Database 110. The effect of this modification is that theRoute Generator 104 does not include nodes with infinite cost in the optimal path, thereby ensuring that the traversal speeds of each node in the optimal path meets or exceeds a threshold value. It is realized that this modification may cause theRoute Generator 104 to report that no route exists. However, alternate exemplary embodiments of theRoute Generator 104 may allow nodes having infinite cost into the minimum priority queue, facilitating route generation at the expense of breaking below the speed threshold if no other route exists. Atstep 1006, the A*algorithm 1004 calculates the cost from the current node in consideration to the adjacent node in consideration, but substitutes use of theCost Evaluator 1006 to obtain the cost. TheCost Evaluator 1006 computes the key and union fields for adjacent nodes as well as an estimate used for ordering nodes in the minimum priority queue. Atstep 1008, theRoute Generator 104 returns the tactical route. - To better understand the
Route Generator 104 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 11 . First, theRoute Generator 104 begins by retrieving thegraph 1100 as input, which specifies astart node 1106 and anend node 1108. TheRoute Generator 104 will generate the optimal path from thestart node 1106 withlabel 7 at position (1,2) to theend node 1108 withlabel 13 at position (3,0). Next, theRoute Generator 104 retrieves thecost grid 1102 from theMap Database 110. Next, theRoute Generator 104 executes the A*algorithm 1004. In this step, the A*algorithm 1004 configures a node table 1104 and initializes the fields of each node in the table 1104. Next 1110, the A*algorithm 1004 begins by examining thestart node 1106 withlabel 7. Next 1112, the cost of moving fromnode 7 to each ofnode 7's adjacent nodes is computed using theCost Evaluator 1006. Since each ofnode 7's adjacent nodes are unvisited, all are added to the minimum priority queue, exceptnode 10 which is ignored because it has infinite cost. - Next 1114,
node 7 is retired andnode 11 is extracted from the minimum priority queue. Next 1116, the cost of moving fromnode 11 to each ofnode 11's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and some ofnode 11's adjacent nodes are added to the minimum priority queue. - Next 1118,
node 11 is retired andnode 6 is extracted from the minimum priority queue. Next 1120, the cost of moving fromnode 6 to each ofnode 6's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and some ofnode 6's adjacent nodes are added to the minimum priority queue. - Next 1122,
node 6 is retired andnode 16 is extracted from the minimum priority queue. Next 1124, the cost of moving fromnode 16 to each ofnode 16's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 16's adjacent nodes are added to the minimum priority queue. - Next 1126,
node 16 is retired andnode 14 is extracted from the minimum priority queue. Next 1128, the cost of moving fromnode 14 to each ofnode 14's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 14's adjacent nodes are added to the minimum priority queue, includingnode 13, the end node. At this point, a path from thestart node 1106 to theend node 1108 has been found:node 7 to 11 to 14 to 13, and the cost of this path is 9. However, since this may not be the optimal path, the algorithm continues searching. - Next 1130,
node 14 is retired andnode 4 is extracted from the minimum priority queue. Next 1132, the cost of moving fromnode 4 to each ofnode 4's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 4's adjacent nodes are added to the minimum priority queue. - Next 1134,
node 4 is retired andnode 8 is extracted from the minimum priority queue. Next 1136, the cost of moving fromnode 8 to each ofnode 8's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 8's adjacent nodes are added to the minimum priority queue. - Next 1138,
node 8 is retired andnode 12 is extracted from the minimum priority queue. Next 1140, the cost of moving fromnode 12 to each ofnode 12's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 12's adjacent nodes are added to the minimum priority queue. - Next 1142,
node 12 is retired andnode 15 is extracted from the minimum priority queue. Next 1144, the cost of moving fromnode 15 to each ofnode 15's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 15's adjacent nodes are added to the minimum priority queue. - Next 1146,
node 15 is retired andnode 9 is extracted from the minimum priority queue. Next 1148, the cost of moving fromnode 9 to each ofnode 9's adjacent nodes is computed using theCost Evaluator 1006.Node 13 is relaxed from a cost of 9 to a cost of 7, and none ofnode 9's adjacent nodes are added to the minimum priority queue. - Next 1150,
node 9 is retired andnode 13 is extracted from the minimum priority queue. Sincenode 13 was extracted from the queue, the optimal path from start to end has been found and node evaluation terminates. Next, theoptimal path 1154 is constructed by following parent pointers starting atnode 13. Theoptimal path 1154 is found to benode 7 to 6 to 9 to 13 with a cost of 7. The optimal path also meets the speed constraint by avoiding use ofnode 10, the only node with infinite cost in the graph. TheRoute Generator 104 then terminates by returning the optimal path. -
FIG. 12 illustrates theCost Evaluator 1006 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain. TheCost Evaluator 1006 begins atstep 1200 by retrieving the current node as input. Atstep 1202, theCost Evaluator 1006 retrieves the adjacent node as input. Atstep 1204, theCost Evaluator 1006 queries theIntervisibility Database 108 for the viewshed V of the adjacent node using the adjacent node's coordinates. Atstep 1206, theCost Evaluator 1006 obtains the current union Ucurrent stored in the current node's union field. Atstep 1208, theCost Evaluator 1006 calculates the adjacent union Uadjacent as the union of V and Ucurrent as follows: -
Uadjacent=V∪Ucurrent - At
step 1210, theCost Evaluator 1006 retrieves the minimum edge cost as input. Atstep 1212, theCost Evaluator 1006 calls theUnderestimate Generator 1212 to determine an estimate E of the cardinality of the union of the best path from the adjacent node to the end node. TheUnderestimate Generator 1212 uses the diagonal distance heuristic, which measures distance accumulated by traveling along both axial and diagonal edges in a graph. The diagonal distance heuristic can be computed using, for example, “An optimal pathfinder for vehicles in real-world digital terrain maps”, at www.student.nada.kth.se/˜f93-maj/pathfinder/4.html# 1, and incorporated by reference herein. TheUnderestimate Generator 1212 then multiplies the result of the optimal distance heuristic by the minimum edge cost to obtain the estimate E as follows: -
E=minimum edge cost 1308*Distance estimate - Those skilled in the art are familiar with the methods used for generating underestimates, namely finding the minimum edge cost in the graph and multiplying it by an underestimate of the distance from the adjacent node to the end node. As such, the
Underestimate Generator 1212 will not be described any further herein. Instead, please refer to U.S. Pat. No. 6,963,800 to Milbert, which is incorporated herein by reference. Atstep 1214, theCost Evaluator 1006 sets the estimated route cost Restimated of the adjacent node by summing the result of theUnderestimate Generator 1212 and the cardinality of Uadjacent, |Uadjacent|, as follows: -
Restimated=E+|Uadjacent| - At
step 1216, theCost Evaluator 1006 sets the adjacent route cost Radjacent of the adjacent node to Uadjacent's cardinality as follows: -
Radjacent=|Uadjacent| - After
step 1216, theCost Evaluator 1006 terminates. - To better understand the
Cost Evaluator 1006 of the exemplary embodiment for generating routes that minimize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 13 . TheCost Evaluator 1006 retrieves thecurrent node 1300 withlabel 7 at position (1,2) from theRoute Generator 104. Next, theCost Evaluator 1006 retrieves theadjacent node 1302 withlabel 3 at position (0,2). Next, theCost Evaluator 1006 queries theIntervisibility Database 108 for the viewshed 1304 V of theadjacent node 1302 withlabel 3 at position (0,2). TheIntervisibility Database 108 indicates that theviewshed 1304 of theadjacent node 1302 withlabel 3 at position (0,2) is {(0,3), (1,3), (0,2), (0,1)}. Next, theCost Evaluator 1006 obtains theunion 1306 Ucurrent of thecurrent node 1300. In this example, Ucurrent={(2,3), (1,2), (2,2), (1,1)}. Next, theCost Evaluator 1006 computes the adjacent union Uadjacent as follows: -
- Next, the
Cost Evaluator 1006 retrieves theminimum edge cost 1308 as input. In this example, theminimum edge cost 1308 is 0. Next, theCost Evaluator 1006 calls the Underestimate Generator to determine an estimate E. In this example, the Underestimate Generator computes E as follows: -
E=minimum edge cost 1308*Distance estimate=0*Distance estimate=0 - Next, the
Cost Evaluator 1006 computes the estimated route cost Restimated using E and the cardinality of Uadjacent as follows: -
Restimated=E+|Uadjacent|=0+8=8 - Finally, the
Cost Evaluator 1006 computes the adjacent route cost Radjacent as follows: -
Radjacent=|Uadjacent|=8 - Another exemplary embodiment for generating tactical routes is one that maximizes the path's intervisibility union while meeting speed constraints by avoiding slow terrain. By maximizing the path's intervisibility union, travelers are exposed to a maximal amount of previously-unexposed terrain after beginning travel, thereby allowing travelers to exert a surveillance or weapons capability advantage (e.g., range) over enemies in unexposed terrain. By avoiding slow terrain below an arbitrary threshold, travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- This exemplary embodiment for generating routes that maximize the path's intervisibility union while meeting speed constraints by avoiding slow terrain defines explicitly-different behavior for only the
Cost Evaluator 1006 component, and implicitly-different behavior for theRoute Generator 104 component. Also, this exemplary embodiment relies on using inverses of cost values representing union cardinality. A variation on this exemplary embodiment may, instead of taking inverse cost values representing union cardinality, utilize a maximum priority queue for selecting nodes in the A*algorithm 1004. Such an exemplary embodiment would likely have to abandon using infinite costs to represent slow terrain. Yet another variation on this exemplary embodiment may cease node evaluation after each node adjacent to the end node has been retired. Although such an exemplary embodiment may be unobvious because it is not widely employed in the art, it may reduce the running time of theRoute Generator 104 because wasted computation would be avoided. - To illustrate the behavior of the
Cost Evaluator 1006 of the exemplary embodiment for generating routes that maximize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, refer toFIG. 12 . Atstep 1214, theCost Evaluator 1006 sets the estimated route cost Restimated of the adjacent node by taking the inverse of the sum of the result of theUnderestimate Generator 1212 and the cardinality of Uadjacent, |Uadjacent|, as follows: -
Restimated=1/(E+|Uadjacent|) - At
step 1216, theCost Evaluator 1006 sets the adjacent route cost Radjacent of the adjacent node to the inverse of Uadjacent's cardinality as follows: -
Radjacent=1/|Uadjacent| - To better understand the
Cost Evaluator 1006 of the exemplary embodiment for generating routes that maximize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, consider the example inFIG. 14 . TheCost Evaluator 1006 retrieves thecurrent node 1400 withlabel 7 at position (1,2) from theRoute Generator 104. Next, theCost Evaluator 1006 retrieves theadjacent node 1402 withlabel 3 at position (0,2). Next, theCost Evaluator 1006 queries theIntervisibility Database 108 for the viewshed 1404 V of theadjacent node 1402 withlabel 3 at position (0,2). TheIntervisibility Database 108 indicates that theviewshed 1404 of theadjacent node 1402 withlabel 3 at position (0,2) is {(0,3), (1,3), (0,2), (0,1)}. Next, theCost Evaluator 1006 obtains theunion 1406 Ucurrent of thecurrent node 1400. In this example, Ucurrent={(2,3), (1,2), (2,2), (1,1)}. Next, theCost Evaluator 1006 computes the adjacent union Uadjacent as follows: -
- Next, the
Cost Evaluator 1006 retrieves theminimum edge cost 1408 as input. In this example, theminimum edge cost 1408 is 0. Next, theCost Evaluator 1006 calls the Underestimate Generator to determine an estimate E. In this example, the Underestimate Generator computes E as follows: -
E=minimum edge cost 1408*Distance estimate=0*Distance estimate=0 - Next, the
Cost Evaluator 1006 computes the estimated route cost Restimated using E and the cardinality of Uadjacent as follows: -
Restimated=1/(E+|Uadjacent|)=1/(0+8)=1/8=0.125 - Finally, the
Cost Evaluator 1006 computes the adjacent route cost Radjacent as follows: -
Radjacent=1/|Uadjacent|=1/8=0.125 - To better understand how the changes to the
Cost Evaluator 1006 of the exemplary embodiment for generating routes that maximize the path's intervisibility union while meeting speed constraints by avoiding slow terrain affect the behavior of theRoute Generator 104 of the same exemplary embodiment, consider the example inFIG. 15 . First, theRoute Generator 104 begins by retrieving thegraph 1500 as input, which specifies astart node 1506 and anend node 1508. TheRoute Generator 104 will generate the optimal path from thestart node 1506 withlabel 7 at position (1,2) to theend node 1508 withlabel 13 at position (3,0). Next, theRoute Generator 104 retrieves thecost grid 1502 from theMap Database 110. Next, theRoute Generator 104 executes the A*algorithm 1004. In this step, the A*algorithm 1004 configures a node table 1504 and initializes the fields of each node in the table 1504. Next 1510, the A*algorithm 1004 begins by examining thestart node 1506 withlabel 7. Next 1512, the cost of moving fromnode 7 to each ofnode 7's adjacent nodes is computed using theCost Evaluator 1006. Since each ofnode 7's adjacent nodes are unvisited, all are added to the minimum priority queue, exceptnode 10 which is ignored because it has infinite cost. - Next 1514,
node 7 is retired andnode 3 is extracted from the minimum priority queue. Next 1516, the cost of moving fromnode 3 to each ofnode 3's adjacent nodes is computed using theCost Evaluator 1006.Nodes node 3's adjacent nodes are added to the minimum priority queue. - Next 1518,
node 3 is retired andnode 6 is extracted from the minimum priority queue. Next 1520, the cost of moving fromnode 6 to each ofnode 6's adjacent nodes is computed using theCost Evaluator 1006.Nodes node 6's adjacent nodes are added to the minimum priority queue. - Next 1522,
node 6 is retired andnode 2 is extracted from the minimum priority queue. Next 1524, the cost of moving fromnode 2 to each ofnode 2's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 2's adjacent nodes are added to the minimum priority queue. - Next 1526,
node 2 is retired andnode 5 is extracted from the minimum priority queue. Next 1528, the cost of moving fromnode 5 to each ofnode 5's adjacent nodes is computed using theCost Evaluator 1006.Node 9 is relaxed, and none ofnode 5's adjacent nodes are added to the minimum priority queue. - Next 1530,
node 5 is retired andnode 9 is extracted from the minimum priority queue. Next 1532, the cost of moving fromnode 9 to each ofnode 9's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 9's adjacent nodes are added to the minimum priority queue. - Next 1534,
node 9 is retired andnode 14 is extracted from the minimum priority queue. Next 1536, the cost of moving fromnode 14 to each ofnode 14's adjacent nodes is computed using theCost Evaluator 1006.Nodes node 14's adjacent nodes are added to the minimum priority queue. - Next 1538,
node 14 is retired andnode 15 is extracted from the minimum priority queue. Next 1540, the cost of moving fromnode 15 to each ofnode 15's adjacent nodes is computed using theCost Evaluator 1006.Nodes node 15's adjacent nodes are added to the minimum priority queue. - Next 1542,
node 15 is retired andnode 12 is extracted from the minimum priority queue. Next 1544, the cost of moving fromnode 12 to each ofnode 12's adjacent nodes is computed using theCost Evaluator 1006.Node 8 is relaxed, and none ofnode 12's adjacent nodes are added to the minimum priority queue. - Next 1546,
node 12 is retired andnode 8 is extracted from the minimum priority queue. Next 1548, the cost of moving fromnode 8 to each ofnode 8's adjacent nodes is computed using theCost Evaluator 1006.Node 4 is relaxed, and none ofnode 8's adjacent nodes are added to the minimum priority queue. - Next 1550,
node 8 is retired andnode 4 is extracted from the minimum priority queue. Next 1552, the cost of moving fromnode 4 to each ofnode 4's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 4's adjacent nodes are added to the minimum priority queue. - Next 1554,
node 4 is retired andnode 11 is extracted from the minimum priority queue. Next 1556, the cost of moving fromnode 11 to each ofnode 11's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 11's adjacent nodes are added to the minimum priority queue. - Next 1558,
node 11 is retired andnode 16 is extracted from the minimum priority queue. Next 1560, the cost of moving fromnode 16 to each ofnode 16's adjacent nodes is computed using theCost Evaluator 1006. No nodes are relaxed, and none ofnode 16's adjacent nodes are added to the minimum priority queue. - Next 1562,
node 16 is retired andnode 13 is extracted from the minimum priority queue. Sincenode 13 was extracted from the queue, the optimal path from start to end has been found and node evaluation terminates. Next, theoptimal path 1566 is constructed by following parent pointers starting atnode 13. Theoptimal path 1566 is found to benode 7 to 3 to 6 to 2 to 5 to 9 to 14 to 13 with a cost of 0.067 (approximating 1/15). The optimal path also meets the speed constraint by avoiding use ofnode 10, the only node with infinite cost in the graph. TheRoute Generator 104 then terminates by returning the optimal path. In the exemplary embodiment for generating routes that maximize the path's intervisibility union while meeting speed constraints by avoiding slow terrain, theRoute Generator 104 produces the path having the maximum visibility union per distance travelled. In other words, the ratio of the cardinality of the path's union to the number of edges in the route is the maximum for any possible route. In this particular example, theRoute Generator 104 produced a route with a visibility union size of 15 grid cells using only 7 edges, yielding a ratio of union size to distance traveled of 15/7=2.143, the highest such ratio for any possible route in this example. - Another exemplary embodiment for generating tactical routes is one that minimizes the path's intervisibility sum while meeting speed constraints by avoiding slow terrain. By minimizing the path's intervisibility sum, travelers are exposed to a minimal amount of terrain after beginning travel, thereby reducing the risk of encountering enemies in unexposed terrain. By avoiding slow terrain below an arbitrary threshold, travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat. This exemplary embodiment omits use of the Minimum
Edge Cost Finder 102 and theCost Evaluator 1006 and modifies the behavior of theCost Generator 100 of the exemplary embodiment for generating routes that maximize the path's intervisibility union. -
FIG. 16 illustrates theCost Generator 100 of the exemplary embodiment for generating routes that minimize the path's intervisibility sum while meeting speed constraints by avoiding slow terrain. TheCost Generator 100 begins atstep 1600 by retrieving the threshold traversal speed from theCapabilities Database 106. Atstep 1602, theCost Generator 100 retrieves the cost grid from theMap Database 110. Atstep 1604, theCost Generator 100 retrieves the graph from theMap Database 110. Atstep 1606, theCost Generator 100 retrieves the visibility matrix from theIntervisibility Database 108. Atstep 1608, theCost Generator 100 sets the current minimum edge cost C to the maximum viewshed cardinality indicated by the visibility matrix. Atstep 1610, theCost Generator 100 obtains the list of nodes from the graph. Atstep 1612, theCost Generator 100 determines if there are more nodes to evaluate. If not, atstep 1628, theCost Generator 100 stores the now-populated cost grid back to theMap Database 110. If so, atstep 1614, theCost Generator 100 gets the current node and proceeds to step 1616. - At
step 1616, theCost Generator 100 obtains the node's speed by passing the node to theSpeed Analyzer 212. Atstep 1618, theCost Generator 100 determines whether the node's speed is below the threshold traversal speed. If so, atstep 1620, theCost Generator 100 sets the current node cost N in the corresponding cell in the cost grid to infinity to indicate the node is impassable and proceeds to step 1622. If not, atstep 1624, theCost Generator 100 obtains the current node's viewshed V by passing the node to theIntervisibility Analyzer 216 and proceeds to step 1626. Atstep 1626, theCost Generator 100 sets the current node cost N in the corresponding cell in the cost grid to the cardinality of V, |V|. Atstep 1622, theCost Generator 100 updates C to the smaller of C and the current node cost N, as indicated by the following formula: -
C=Minimum(N, C) - After
step 1626, theCost Generator 100 continues evaluating nodes by proceeding to step 1612. Atstep 1628, theCost Generator 100 stores the cost grid. Atstep 1630, theCost Generator 100 logs the current minimum cost C. Upon termination afterstep 1630, theCost Generator 100 will have set the cost of each node's corresponding cell in the cost grid in theMap Database 110. - Another exemplary embodiment for generating tactical routes is one that maximizes the path's intervisibility sum while meeting speed constraints by avoiding slow terrain. By maximizing the path's intervisibility sum, travelers are exposed to a maximal amount of previously-unexposed terrain after beginning travel, thereby allowing travelers to exert a surveillance or weapons capability advantage (e.g., range) over enemies in unexposed terrain. By avoiding slow terrain below an arbitrary threshold, travelers can travel at or above the speed threshold at every node on the path, rendering it difficult for enemies to engage the traveler in combat.
- The
Cost Generator 100 of this exemplary embodiment that maximizes the path's intervisibility sum differs from that of the exemplary embodiment that minimizes the path's intervisibility sum in two steps; first, atstep 1608, theCost Generator 100 sets the current minimum edge cost C to 1. Second, atstep 1626, theCost Generator 100 sets the current node cost N in the corresponding cell in the cost grid to the inverse of the cardinality of V, |V|, using the following formula: -
N=1/|V| - Other steps of the
Cost Generator 100 of this exemplary embodiment that maximizes the path's intervisibility sum remain the same as those described in the exemplary embodiment that minimizes the path's intervisibility sum. - The above-described devices and subsystems of the exemplary embodiments of
FIGS. 1-16 can include, for example, any suitable servers, workstations, PCs, laptop computers, PDAs, Internet appliances, handheld devices, cellular telephones, wireless devices, other electronic devices, and the like, capable of performing the processes of the exemplary embodiments ofFIGS. 1-16 . The devices and subsystems of the exemplary embodiments ofFIGS. 1-16 can communicate with each other using any suitable protocol and can be implemented using one or more programmed computer systems or devices. - One or more interface mechanisms can be used with the exemplary embodiments of
FIGS. 1-16 , including, for example, Internet access, telecommunications in any suitable form (e.g., voice, modem, and the like), wireless communications media, and the like. For example, employed communications networks or links can include one or more wireless communications networks, cellular communications networks, cable communications networks, satellite communications networks, G3 communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, WiMax Networks, a combination thereof, and the like. - It is to be understood that the devices and subsystems of the exemplary embodiments of
FIGS. 1-16 are for exemplary purposes, as many variations of the specific hardware and/or software used to implement the exemplary embodiments are possible, as will be appreciated by those skilled in the relevant art(s). For example, the functionality of one or more of the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 can be implemented via one or more programmed computer systems or devices. - To implement such variations as well as other variations, a single computer system can be programmed to perform the special purpose functions of one or more of the devices and subsystems of the exemplary embodiments of
FIGS. 1-16 . On the other hand, two or more programmed computer systems or devices can be substituted for any one of the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 . Accordingly, principles and advantages of distributed processing, such as redundancy, replication, and the like, also can be implemented, as desired, to increase the robustness and performance the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 . - The devices and subsystems of the exemplary embodiments of
FIGS. 1-16 can store information relating to various processes described herein. This information can be stored in one or more memories, such as a hard disk, optical disk, magneto-optical disk, RAM, and the like, of the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 . One or more databases of the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 can store the information used to implement the exemplary embodiments of the present invention. The databases can be organized using data structures (e.g., records, tables, arrays, fields, graphs, trees, lists, and the like) included in one or more memories or storage devices listed herein. The processes described with respect to the exemplary embodiments ofFIGS. 1-16 can include appropriate data structures for storing data collected and/or generated by the processes of the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 in one or more databases thereof. - All or a portion of the devices and subsystems of the exemplary embodiments of
FIGS. 1-16 can be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, micro-controllers, and the like, programmed according to the teachings of the exemplary embodiments of the present invention, as will be appreciated by those skilled in the computer and software arts. Appropriate software can be readily prepared by programmers of ordinary skill based on the teachings of the exemplary embodiments, as will be appreciated by those skilled in the software art. In addition, the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 can be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be appreciated by those skilled in the electrical art(s). Thus, the exemplary embodiments are not limited to any specific combination of hardware circuitry and/or software. - Stored on any one or on a combination of computer readable media, the exemplary embodiments of the present invention can include software for controlling the devices and subsystems of the exemplary embodiments of
FIGS. 1-16 , for driving the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 , for enabling the devices and subsystems of the exemplary embodiments ofFIGS. 1-16 to interact with a human user, and the like. Such software can include, but is not limited to, device drivers, firmware, operating systems, development tools, applications software, and the like. Such computer readable media further can include the computer program product of an embodiment of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the exemplary embodiments ofFIGS. 1-16 . Computer code devices of the exemplary embodiments of the present invention can include any suitable interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes and applets, complete executable programs, Common Object Request Broker Architecture (CORBA) objects, and the like. Moreover, parts of the processing of the exemplary embodiments of the present invention can be distributed for better performance, reliability, cost, and the like. - As stated above, the devices and subsystems of the exemplary embodiments of
FIGS. 1-16 can include computer readable medium or memories for holding instructions programmed according to the teachings of the present invention and for holding data structures, tables, records, and/or other data described herein. Computer readable medium can include any suitable medium that participates in providing instructions to a processor for execution. Such a medium can take many forms, including but not limited to, non-volatile media, volatile media, transmission media, and the like. Non-volatile media can include, for example, optical or magnetic disks, magneto-optical disks, and the like. Volatile media can include dynamic memories, and the like. Transmission media can include coaxial cables, copper wire, fiber optics, and the like. Transmission media also can take the form of acoustic, optical, electromagnetic waves, and the like, such as those generated during radio frequency (RF) communications, infrared (IR) data communications, and the like. Common forms of computer-readable media can include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitable optical medium, punch cards, paper tape, optical mark sheets, any other suitable physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other suitable memory chip or cartridge, a carrier wave, or any other suitable medium from which a computer can read. - Although the exemplary embodiments are described in terms of military applications, the teachings of the exemplary embodiments can be used with any suitable non-military applications, as will be appreciated by those skilled in the relevant art(s).
- While the present invention have been described in connection with a number of exemplary embodiments and implementations, the present invention is not so limited, but rather covers various modifications and equivalent arrangements, which fall within the purview of the appended claims.
Claims (21)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/069314 WO2010005424A1 (en) | 2008-07-07 | 2008-07-07 | System and method for generating tactical routes |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2008/069314 A-371-Of-International WO2010005424A1 (en) | 2008-07-07 | 2008-07-07 | System and method for generating tactical routes |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/626,617 Continuation US10520327B2 (en) | 2008-07-07 | 2015-02-19 | System and method for generating tactical routes |
Publications (1)
Publication Number | Publication Date |
---|---|
US20110098914A1 true US20110098914A1 (en) | 2011-04-28 |
Family
ID=41507322
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/920,580 Abandoned US20110098914A1 (en) | 2008-07-07 | 2008-07-07 | System and method for generating tactical routes |
US14/626,617 Active 2030-05-06 US10520327B2 (en) | 2008-07-07 | 2015-02-19 | System and method for generating tactical routes |
US16/723,531 Active 2028-09-12 US11105643B2 (en) | 2008-07-07 | 2019-12-20 | System and method for generating tactical routes |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/626,617 Active 2030-05-06 US10520327B2 (en) | 2008-07-07 | 2015-02-19 | System and method for generating tactical routes |
US16/723,531 Active 2028-09-12 US11105643B2 (en) | 2008-07-07 | 2019-12-20 | System and method for generating tactical routes |
Country Status (4)
Country | Link |
---|---|
US (3) | US20110098914A1 (en) |
CA (1) | CA2718788C (en) |
GB (1) | GB2473552B (en) |
WO (1) | WO2010005424A1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120029804A1 (en) * | 2010-07-30 | 2012-02-02 | Primordial Inc. | System and Method for Multi-Resolution Routing |
US8566027B2 (en) | 2012-03-14 | 2013-10-22 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US20140180584A1 (en) * | 2012-12-21 | 2014-06-26 | Navionics Spa | Apparatus and methods for routing |
EP2776859A4 (en) * | 2011-11-08 | 2015-09-23 | Saab Ab | Method for determining the location of a firer, method and system for route planning for avoiding a threat |
EP2776787A4 (en) * | 2011-11-08 | 2015-09-23 | Saab Ab | Route planning system and method for minimizing exposure to threats |
US9405445B2 (en) | 2012-12-21 | 2016-08-02 | Navionics Spa | Apparatus and methods for routing |
US20160294622A1 (en) * | 2014-06-11 | 2016-10-06 | Amplisine Labs, LLC | Ad hoc wireless mesh network |
US10274331B2 (en) | 2016-09-16 | 2019-04-30 | Polaris Industries Inc. | Device and method for improving route planning computing devices |
US10296862B1 (en) * | 2016-05-12 | 2019-05-21 | Northrop Grumman Systems Corporation | Time interval assessment of mission plan quality dynamic asset allocation |
US10520327B2 (en) | 2008-07-07 | 2019-12-31 | Polaris Industries Inc. | System and method for generating tactical routes |
WO2022212901A1 (en) * | 2021-04-01 | 2022-10-06 | Education Logistics, Inc. | Mass transportation ridership data import |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL255512B (en) | 2017-11-07 | 2019-06-30 | Elbit Systems Ltd | Transmission detection using line of sight |
CN111083728B (en) * | 2019-12-25 | 2021-01-26 | 电子科技大学 | Scenic spot real-time load monitoring method and system based on space-time big data |
US11933619B2 (en) * | 2020-12-07 | 2024-03-19 | International Business Machines Corporation | Safe zones and routes planning |
DE102021103747A1 (en) | 2021-02-17 | 2022-08-18 | Krauss-Maffei Wegmann Gmbh & Co. Kg | Position-dependent routing of a military vehicle |
WO2024011210A1 (en) | 2022-07-08 | 2024-01-11 | Polaris Industries Inc. | Autonomous-ready vehicle |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2399426A (en) * | 1940-10-07 | 1946-04-30 | James A Bradley | Remote detection and control system |
US4947350A (en) * | 1985-04-01 | 1990-08-07 | British Aerospace Public Limited Company | Tactical routing system and method |
US4954958A (en) * | 1988-08-19 | 1990-09-04 | Hacowie Corporation | Directional information system |
US5187667A (en) * | 1991-06-12 | 1993-02-16 | Hughes Simulation Systems, Inc. | Tactical route planning method for use in simulated tactical engagements |
US5326265A (en) * | 1993-02-04 | 1994-07-05 | Prevou J Michael | Battlefield reference marking systen signal device |
US5612882A (en) * | 1995-02-01 | 1997-03-18 | Lefebvre; Rebecca K. | Method and apparatus for providing navigation guidance |
US5787233A (en) * | 1995-03-28 | 1998-07-28 | Mitsubishi Denki Kabushiki Kaisha | Route generating device |
US5838262A (en) * | 1996-12-19 | 1998-11-17 | Sikorsky Aircraft Corporation | Aircraft virtual image display system and method for providing a real-time perspective threat coverage display |
US5850617A (en) * | 1996-12-30 | 1998-12-15 | Lockheed Martin Corporation | System and method for route planning under multiple constraints |
US6144318A (en) * | 1995-10-30 | 2000-11-07 | Aisin Aw Co., Ltd. | Navigation system |
US6182007B1 (en) * | 1999-03-11 | 2001-01-30 | Lockheed Martin Corp. | Incorporating aspect angle into route planners |
US6298302B2 (en) * | 1997-07-01 | 2001-10-02 | Mannesman Vdo | Navigation system for providing an optimal route from traffic messages |
US6317684B1 (en) * | 1999-12-22 | 2001-11-13 | At&T Wireless Services Inc. | Method and apparatus for navigation using a portable communication device |
US6401038B2 (en) * | 1999-06-28 | 2002-06-04 | Min-Chung Gia | Path planning, terrain avoidance and situation awareness system for general aviation |
US6498982B2 (en) * | 1993-05-28 | 2002-12-24 | Mapquest. Com, Inc. | Methods and apparatus for displaying a travel route and/or generating a list of places of interest located near the travel route |
US6963800B1 (en) * | 2002-05-10 | 2005-11-08 | Solider Vision | Routing soldiers around enemy attacks and battlefield obstructions |
US20060031004A1 (en) * | 2003-10-13 | 2006-02-09 | Kristian Lundberg | Method and device for planning a trajectory |
US7280897B2 (en) * | 2004-05-28 | 2007-10-09 | Lockheed Martin Corporation | Intervisibility determination |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6836725B2 (en) | 2001-09-27 | 2004-12-28 | Magellan Dis, Inc. | Vehicle navigation system with off-road navigation |
US7818116B1 (en) | 2002-12-30 | 2010-10-19 | Mapquest, Inc. | Presenting a travel route in a ground-based vehicle |
US7474960B1 (en) | 2002-12-30 | 2009-01-06 | Mapquest, Inc. | Presenting a travel route |
US7756635B2 (en) | 2003-04-09 | 2010-07-13 | Primordial, Inc. | Method and system for generating and presenting off-road travel routes |
EP1477770B1 (en) | 2003-05-12 | 2015-04-15 | Harman Becker Automotive Systems GmbH | Method to assist off-road navigation and corresponding navigation system |
US7856315B2 (en) | 2004-10-01 | 2010-12-21 | Telecommunication Systems, Inc. | Method and system for enabling an off board navigation solution |
US20060095171A1 (en) | 2004-11-02 | 2006-05-04 | Whittaker William L | Methods, devices and systems for high-speed autonomous vehicle and high-speed autonomous vehicle |
JP2006188980A (en) | 2005-01-06 | 2006-07-20 | Yamaha Motor Co Ltd | Engine type generator |
US20070288156A1 (en) | 2006-05-17 | 2007-12-13 | The Boeing Company | Route search planner |
EP1867952B1 (en) | 2006-06-13 | 2009-12-09 | Harman/Becker Automotive Systems GmbH | Optimum route determination employing an estimation function |
GB2452458B (en) | 2006-07-05 | 2011-12-28 | Primordial Inc | Method and system for providing off-road guidance |
GB2446167B (en) | 2007-02-02 | 2011-08-17 | Satmap Systems Ltd | Mapping system |
US20090125229A1 (en) | 2007-11-14 | 2009-05-14 | Telmap, Ltd. | Corridor mapping with alternative routes |
JP4513073B2 (en) | 2007-12-25 | 2010-07-28 | アイシン・エィ・ダブリュ株式会社 | Navigation device and program |
CA2718788C (en) | 2008-07-07 | 2016-04-19 | Primordial, Inc. | System and method for generating tactical routes |
US20100094496A1 (en) | 2008-09-19 | 2010-04-15 | Barak Hershkovitz | System and Method for Operating an Electric Vehicle |
JP5057246B2 (en) | 2008-10-16 | 2012-10-24 | アイシン・エィ・ダブリュ株式会社 | Navigation device and program |
KR101633889B1 (en) | 2009-02-18 | 2016-06-28 | 삼성전자주식회사 | Apparatus and method for generating route using grid map |
US8175801B2 (en) | 2009-02-28 | 2012-05-08 | Alpine Electronics, Inc. | Link promotion method and apparatus for improving route search performance for navigation system |
US8150620B2 (en) | 2009-04-14 | 2012-04-03 | Alpine Electronics, Inc. | Route search method and apparatus for navigation system utilizing map data of XML format |
JP5590950B2 (en) | 2010-04-12 | 2014-09-17 | アルパイン株式会社 | Navigation device and guided route search method |
US8374792B2 (en) | 2010-07-30 | 2013-02-12 | Primordial Inc. | System and method for multi-resolution routing |
US10345108B2 (en) | 2012-05-16 | 2019-07-09 | Polaris Industries Inc. | System and method for multi-plane routing |
-
2008
- 2008-07-07 CA CA2718788A patent/CA2718788C/en active Active
- 2008-07-07 WO PCT/US2008/069314 patent/WO2010005424A1/en active Application Filing
- 2008-07-07 US US12/920,580 patent/US20110098914A1/en not_active Abandoned
- 2008-07-07 GB GB1015683.4A patent/GB2473552B/en active Active
-
2015
- 2015-02-19 US US14/626,617 patent/US10520327B2/en active Active
-
2019
- 2019-12-20 US US16/723,531 patent/US11105643B2/en active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2399426A (en) * | 1940-10-07 | 1946-04-30 | James A Bradley | Remote detection and control system |
US4947350A (en) * | 1985-04-01 | 1990-08-07 | British Aerospace Public Limited Company | Tactical routing system and method |
US4954958A (en) * | 1988-08-19 | 1990-09-04 | Hacowie Corporation | Directional information system |
US5187667A (en) * | 1991-06-12 | 1993-02-16 | Hughes Simulation Systems, Inc. | Tactical route planning method for use in simulated tactical engagements |
US5326265A (en) * | 1993-02-04 | 1994-07-05 | Prevou J Michael | Battlefield reference marking systen signal device |
US6498982B2 (en) * | 1993-05-28 | 2002-12-24 | Mapquest. Com, Inc. | Methods and apparatus for displaying a travel route and/or generating a list of places of interest located near the travel route |
US5612882A (en) * | 1995-02-01 | 1997-03-18 | Lefebvre; Rebecca K. | Method and apparatus for providing navigation guidance |
US5787233A (en) * | 1995-03-28 | 1998-07-28 | Mitsubishi Denki Kabushiki Kaisha | Route generating device |
US6144318A (en) * | 1995-10-30 | 2000-11-07 | Aisin Aw Co., Ltd. | Navigation system |
US5838262A (en) * | 1996-12-19 | 1998-11-17 | Sikorsky Aircraft Corporation | Aircraft virtual image display system and method for providing a real-time perspective threat coverage display |
US5850617A (en) * | 1996-12-30 | 1998-12-15 | Lockheed Martin Corporation | System and method for route planning under multiple constraints |
US6298302B2 (en) * | 1997-07-01 | 2001-10-02 | Mannesman Vdo | Navigation system for providing an optimal route from traffic messages |
US6182007B1 (en) * | 1999-03-11 | 2001-01-30 | Lockheed Martin Corp. | Incorporating aspect angle into route planners |
US6401038B2 (en) * | 1999-06-28 | 2002-06-04 | Min-Chung Gia | Path planning, terrain avoidance and situation awareness system for general aviation |
US6317684B1 (en) * | 1999-12-22 | 2001-11-13 | At&T Wireless Services Inc. | Method and apparatus for navigation using a portable communication device |
US6963800B1 (en) * | 2002-05-10 | 2005-11-08 | Solider Vision | Routing soldiers around enemy attacks and battlefield obstructions |
US20060031004A1 (en) * | 2003-10-13 | 2006-02-09 | Kristian Lundberg | Method and device for planning a trajectory |
US7280897B2 (en) * | 2004-05-28 | 2007-10-09 | Lockheed Martin Corporation | Intervisibility determination |
Non-Patent Citations (3)
Title |
---|
Caldwell et al., "Analysis and Visualization of Visibility Surfaces" (2003) * |
De Floriani, Leila et al.; Intervisibility on Terrains; 1999; John Wiley & Sons; Geographic Information Systems: Principles, Techniques, Management and Applications; pp. 543-556. * |
Lee, Jay et al.; On applying viewshed analysis for determining least-cost paths on Digital Elevation Models; 1998; Int. J. of Geographical Information Science vol. 12, no. 8; pp. 891-905. * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10520327B2 (en) | 2008-07-07 | 2019-12-31 | Polaris Industries Inc. | System and method for generating tactical routes |
US11105643B2 (en) | 2008-07-07 | 2021-08-31 | Polaris Industries Inc. | System and method for generating tactical routes |
US8374792B2 (en) * | 2010-07-30 | 2013-02-12 | Primordial Inc. | System and method for multi-resolution routing |
US20120029804A1 (en) * | 2010-07-30 | 2012-02-02 | Primordial Inc. | System and Method for Multi-Resolution Routing |
US9255808B2 (en) | 2011-11-08 | 2016-02-09 | Saab Ab | Route planning system and method for minimizing exposure to threats |
EP2776787A4 (en) * | 2011-11-08 | 2015-09-23 | Saab Ab | Route planning system and method for minimizing exposure to threats |
US9163949B2 (en) | 2011-11-08 | 2015-10-20 | Saab Ab | Dynamic route planning |
EP2776859A4 (en) * | 2011-11-08 | 2015-09-23 | Saab Ab | Method for determining the location of a firer, method and system for route planning for avoiding a threat |
US10288438B2 (en) | 2011-11-08 | 2019-05-14 | Saab Ab | Route planning system and method for minimizing exposure to threats |
US9037401B2 (en) | 2012-03-14 | 2015-05-19 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US8812229B2 (en) | 2012-03-14 | 2014-08-19 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US9791283B1 (en) | 2012-03-14 | 2017-10-17 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US9285221B2 (en) | 2012-03-14 | 2016-03-15 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US8566027B2 (en) | 2012-03-14 | 2013-10-22 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US9500488B2 (en) | 2012-03-14 | 2016-11-22 | Lockheed Martin Corporation | Route re-planning using enemy force lethality projection |
US9405445B2 (en) | 2012-12-21 | 2016-08-02 | Navionics Spa | Apparatus and methods for routing |
US9945673B2 (en) | 2012-12-21 | 2018-04-17 | Navionics S.R.L. | Apparatus and methods for routing |
US10179633B2 (en) | 2012-12-21 | 2019-01-15 | Navionics S.R.L. | Apparatus and methods for routing |
US9086278B2 (en) * | 2012-12-21 | 2015-07-21 | Navionics Spa | Apparatus and methods for routing |
US20140180584A1 (en) * | 2012-12-21 | 2014-06-26 | Navionics Spa | Apparatus and methods for routing |
US10116503B2 (en) * | 2014-06-11 | 2018-10-30 | Amplisine Labs, LLC | Ad hoc wireless mesh network |
US20160294622A1 (en) * | 2014-06-11 | 2016-10-06 | Amplisine Labs, LLC | Ad hoc wireless mesh network |
US10296862B1 (en) * | 2016-05-12 | 2019-05-21 | Northrop Grumman Systems Corporation | Time interval assessment of mission plan quality dynamic asset allocation |
US10274331B2 (en) | 2016-09-16 | 2019-04-30 | Polaris Industries Inc. | Device and method for improving route planning computing devices |
US11268820B2 (en) | 2016-09-16 | 2022-03-08 | Polaris Industries Inc. | Device and method for improving route planning computing devices |
US11892309B2 (en) | 2016-09-16 | 2024-02-06 | Polaris Industries Inc. | Device and method for improving route planning computing devices |
WO2022212901A1 (en) * | 2021-04-01 | 2022-10-06 | Education Logistics, Inc. | Mass transportation ridership data import |
Also Published As
Publication number | Publication date |
---|---|
US10520327B2 (en) | 2019-12-31 |
US11105643B2 (en) | 2021-08-31 |
CA2718788A1 (en) | 2010-01-14 |
CA2718788C (en) | 2016-04-19 |
WO2010005424A1 (en) | 2010-01-14 |
US20150253145A1 (en) | 2015-09-10 |
GB2473552A (en) | 2011-03-16 |
GB201015683D0 (en) | 2010-10-27 |
US20200200554A1 (en) | 2020-06-25 |
GB2473552B (en) | 2012-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11105643B2 (en) | System and method for generating tactical routes | |
US20040007121A1 (en) | System and method for reuse of command and control software components | |
KR930001115A (en) | Terrain Evaluation and Navigation Methods | |
Kiefer et al. | Towards location-aware mobile eye tracking | |
Bulut et al. | A real-time dynamic route control approach on google maps using integer programming methods | |
Whitaker et al. | Human exploration and perception in off-road navigation | |
Hošková-Mayerová et al. | Decision-making process with respect to the reliability of geo-database | |
Johnson | Evaluating the utility of a geographic information systems-based mobility model in search and rescue operations | |
Kristalova et al. | Modelling and simulation of microrelief impact on ground path extension | |
Goerger | Spatial knowledge acquisition and transfer from virtual to natural environments for dismounted land navigation | |
Wear et al. | Aerial photographic techniques for estimating damage by insects in western forests | |
Hicks et al. | Eyekeon: distributed augmented reality for soldier teams | |
Pokonieczny et al. | Methodology of using pathfinding methods in military passability maps | |
Visone | Battlespace terrain reasoning and awareness | |
Corps | Geospatial Information and Intelligence | |
Stanzione | Using ArcGIS to create semantic information for modeling and simulation | |
Mominov et al. | ASSESSING THE ACCURACY OF GOOGLE MAPS IN RURAL AREAS | |
Powell et al. | Analysis of vegetation as terrain: the “how” and “why” of US Army doctrine | |
Menthe et al. | A RAND Analysis Tool for Intelligence, Surveillance, and Reconnaissance: The Collections Operations Model | |
Arenga et al. | Cloud-Based Flora Repository System with Geo-Location Mapping for Mt. Hamiguitan Sanctuary Exploration | |
Larsson | Deployment planning for artillery hunting radar systems using high-resolution geospatial data | |
Chamberlayne | A GIS model for minefield area prediction: The minefield likelihood procedure | |
Lemmens et al. | Mobile GIS and Location-Based Services | |
Cvijanović et al. | Implementation of geographic information system in military terrain assessment | |
Krum | Challenges in Building a Whole Earth 3D Information Space |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: PRIMORDIAL INC., MINNESOTA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MILBERT, RANDY L.;FREED, ERIK STEPHEN;ESTES, KYLE KENNETH;REEL/FRAME:022032/0225 Effective date: 20081210 |
|
AS | Assignment |
Owner name: ANCHOR BANK, N. A., MINNESOTA Free format text: SECURITY AGREEMENT;ASSIGNOR:PRIMORDIAL, INC.;REEL/FRAME:024611/0647 Effective date: 20100630 |
|
AS | Assignment |
Owner name: PRIMORDIAL INC., MINNESOTA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MILBERT, RANDY L.;FREED, ERIK S.;ESTES, KYLE K.;REEL/FRAME:024926/0347 Effective date: 20081210 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |