A Faster Alternative to Traditional A* Search: Dynamically Weighted BDBOP

Size: px
Start display at page:

Download "A Faster Alternative to Traditional A* Search: Dynamically Weighted BDBOP"

Transcription

1 Int'l Conf. Artificial Intelligence ICAI'16 3 A Faster Alternative to Traditional A* Search: Dynamically Weighted BDBOP John P. Baggs, Matthew Renner and Eman El-Sheikh Department of Computer Science, University of West Florida, Pensacola, FL, USA Abstract Video games are becoming more computationally complex. This requires video game designers to carefully allocate resources in order to achieve desired performance. This paper describes the development of a new alternative to traditional A* that decreases the time to find a path in threedimensional environments. We developed a system using Unity 5.1 that allowed us to run multiple search algorithms on different environments. These tests allowed us to find the strengths and weaknesses of the variations of traditional A*. After analyzing these strengths, we defined a new alternative algorithm named Dynamically Weighted BDBOP that performed faster than A* search in our experiments. Using this search, video game developers can focus the limited resources on more complex tasks. Keywords: A*, Navigation Mesh, Path-finding, Dynamically Weighted BDBOP, Video Games 1 Introduction Path-finding algorithms are used in many Computer Science application areas, including robotics and video games. One of the most popular path-finding algorithms used is the A* search. A* is an improvement on Dijkstra s shortest path algorithm. The improvement significantly cuts down the number of nodes that need to be visited during the search. A decrease in the number of nodes correlates directly with a decrease in the space and time complexities of the search. A* s improvement upon Dijkstra s algorithm comes from the use of a heuristic method to reduce the search space [1]. Today, video games require an enormous amount of computational resources. A majority of these resources are dedicated to graphics rendering and calculations in the physics engine [2]. Given these limited resources, all computational components of video games must be optimized for speed and memory management. Path-finding, a component of non-player character (NPC) intelligence, is a computationally intensive task; therefore it is essential to improve the path-finding computational efficiency. Because of it s search speed, A* is one of the most widely used pathfinding algorithms in the video game industry. This research addresses improving the efficiency of path-finding algorithms. A path-finding algorithm requires the following: a start point, an end point, and a representation of the environment in which the search is to take place. Today, the two main methods environments are represented in video games are with square grids and navigation meshes. Square grids take a specific section of space in the environment and map the space to a matrix location. The matrix has to be large enough to contain the number of squares needed to represent the environment. Navigation meshes were developed in the 1980s for robotic path-finding and most games after the 2000s have adopted these navigation meshes. In [3], a navigation mesh is defined as a set of convex polygons that describe the walkable surface of a 3-dimensional environment. There are several efficiency related issues with square grid environments. The smaller the squares in the grid, the more detailed the description of the environment becomes. However, at the same time, the number of squares increases the search space for the path-finding algorithm. As the search space increases, the time complexity increases. Another issue with square grids is that the squares are laid on top of nonmovable or static obstacles. Because the obstacles are represented in the grid, collision detection is required during path-finding. Navigation meshes directly address these two challenges. A navigation mesh represents the environment with polygons that are completely free of obstacles. This condition, and the condition that all polygons are convex, removes the need for collision detection anywhere inside a polygon [4]. There is no restriction on the size that a polygon can be as long as the rules of being convex and obstacle free are maintained. A navigation mesh search space consists of significantly fewer nodes than the square grid search space for the same environment. For these reasons, our research focuses on developing and implementing a navigation mesh for experimentation with path-finding algorithms. This paper summarizes two main contributions: 1. Results and conclusions from an experiment comparing different path-finding algorithms on a set of threedimensional environments developed using Unity 5.1. We implemented A* and popular variations of A*. These variants include Bi-Directional A*, Fringe search, optimized versions of traditional A*, Beam search, Dynamically Weighted A*, and Bi-Directional A*. During the experiment, each search was run on each environment 1000 times, collecting data for a comparison of each search algorithm s performance on a given environment.

2 4 Int'l Conf. Artificial Intelligence ICAI'16 2. A proposal for a new variant on A*. The proposed algorithm outperforms A* in both time and space complexity. The new algorithm sacrifices A* s guaranteed optimal solution in order to attain these performance gains. The solutions found by the new algorithm were optimal in some cases, but not all. Later in the paper we argue that the differences between solutions found by our algorithm and the optimal solution are not concerns to a video game developer. 2 Related Work Common practice in the video game industry for representing 3 dimensional environments, up until the early 2000s, was to use waypoints. Waypoints are a set of manually generated points in the environment that form a path that the agent can walk upon. The time it takes for developers to manually place these waypoints is not feasible for larger maps. Another drawback is that waypoints do a poor job of representing the environment because they only represent single points and the line connecting those points. The restrictive nature of Waypointer led to the use of the more flexible navigation meshes and square grids for representing environments. Xiao Qui discusses the limitation of square grids representing environments [1]. Square grids often require a large number of cells to adequately describe an environment. A well designed navigation mesh that is used to describe the same environment as a square grid will result in far fewer total nodes needed than the square grid will. One reason for this is that the nodes in a square grid cover the entire environment including the non-walkable areas, while a navigation mesh represents the walkable areas in the environment. Another reason for this is that the way a navigation mesh is designed is to create convex polygons as nodes that represent as much of the environment as they can in a given space and that do not include static obstacles. This allows the navigation mesh to use fewer nodes than a square grid to represent the same environment, effectively reducing the search space for a pathfinding algorithm, which serves to reduce the search time for the algorithm to find a path. Various path-finding algorithms can be used across both square grids and navigation meshes to find a valid path between two points. Fringe search is one such algorithm the use of which on square grids was researched in an attempt to determine if it could outperform A*. The Fringe search algorithm is a take on Iterative Deepening A* (IDA*) which uses recursive depth-first search of the environment until either the goal is found or a node that exceeds the threshold is found. If the threshold is exceeded it is increased and the search starts over [5, 6]. Fringe search iterates over the frontier of the search tree like IDA* but uses a data structure to help the search. The data structure used by Fringe Search can be thought of as two lists: one for the current iteration (now) and one for the next iteration (later) [5]. The paper concluded that Fringe search was faster in its calculations even though Fringe search expanded and visited more nodes than A*. Our results using an implementation of Fringe search differ from this and are discussed in the Results section. A valuable resource during our research into different pathfinding algorithms was a blog written by Amit Patel [7]. Patel describes multiple variations on the A* search in his blog. We implemented several search algorithms based on these brief descriptions, including Dynamically Weighted A*, Beam Search and Bi-Directional A*. The concise and clear descriptions of the algorithms made the implementations relatively straightforward. 3 Algorithm Design Dynamically Weighted Bi-Directional Beam OPtimized (BDBOP) search is a variation on A* that we created which uses features of Dynamically Weighted, Bi-Directional, Beam and Optimized A* searches. During our research into variations and methods of optimizing A* we noticed that there are different benefits gained from using each algorithm. After narrowing down our focus to algorithms that specialized in reducing the number of nodes visited in the search we formulated our algorithm design. Additionally, we optimized these searches with respect to the speed at which they navigate their data structures, strictly in terms of their Big O complexities. Dynamically Weighted BDBOP visits far less nodes than traditional A*. This allows Dynamically Weighted BDBOP to outperform A* even without the efficiency optimizations to the data structures. The defining characteristic of Bi-Directional search is that it conducts two A* searches in parallel or two A* searches in alternating successions. One search starts from the start node and searches for the goal node, while the opposite search begins at the goal node and searches for the start node. The search is complete when the frontiers of the searches meet or one of the two searches finds their destination node. Bi- Directional search visited fewer nodes when used to navigate our environments than A* did. The next search we evaluated was Dynamically Weighted A*. Dynamically Weighted A* places a high priority on getting the search moving quickly in the general direction of the goal in the beginning and then as the search gets closer to the goal precision becomes more important. This was accomplished by adding a weight to the heuristic. The weight decreases as the search gets closer to the goal. This results in fewer nodes visited than traditional A* but does not guarantee an optimal path. The Beam Search algorithm improves upon the space complexity of traditional A* by placing a limit on the size of the open list used in A*. One must be very careful when deciding the limit to impose on the open list, because too severe of a limit may lead to an incomplete search.

3 Int'l Conf. Artificial Intelligence ICAI'16 5 agenttogoal is the search starting from the agent and going to the goal goaltoagent is the search starting from the goal and going to the agent ρ is a constant that will divide the number of polygons to get the number of times each search will iterate α is the number of iteration (# of Polygons / ρ) 0.while (pathfound = false) 1. if (α <= 1) 2. returnvalue := agenttogoal s dosearch (# of Polygons *2) 3. if(returnvalue = 1) // goal was found 4. pathfound := true 5. else 6. no path can be found 7. else 8. returnvalue := agenttogoal s dosearch(α) 9. if (returnvalue = 1) // goal was found 10. pathfound := true 11. else if (returnvalue = 2) // a frontier connection was found 12. pathfound := true 13. else if (returnvalue = -1) // openlist is empty no path is found 14. no path can be found 15. else 16. returnvalue := goaltoagent s dosearch(α) 17. if (returnvalue = 1) // agent was found 18. pathfound := true 19. else if (returnvalue = 2) // a frontier connection was found 20. pathfound := true 21. else if (returnvalue = -1) // openlist is empty no path is found 22. no path can be found Figure 1. Pseudocode for the coordinator of Dynamically Weighted BDBOP The main improvement made to the data structures used for A* was to use a min-heap for retrieving the node in the open list with the lowest cost value. Inserting into the open list goes from an O(n) operation to an O(log(n)) operation [8]. The open list was ordered so that a removal would be O(1), but in the min-heap we must maintain the heap order each time we remove the lowest node. This requires an O(log(n)) operation. Another improvement we made was to use a lookup table for searching the closed list. Each node in the navigation mesh is given an id that corresponds to an index in the lookup table. The A* algorithm also requires a search of the open list to see if a node is on it, so we created a lookup table for the open list as well. The lookup tables will take up some space since you need two arrays, each of which has a length that is equal to the number of nodes in the search space. A single byte can represent each node in the lookup table since all that is required is a true or false value, which will help with space requirements. Our considerations for optimizations were dealing with time complexity, and thus could accommodate an extra data structure for the open list. 3.1 Dynamically Weighted BDBOP The algorithm requires four mechanisms: nodes to represent the environment, the two searches that are needed for the bidirectional functionality, and a coordinator to run the two searches The Coordinator The coordinator is in charge of creating the two searches, running them, and receiving information from them. For openlist is the heap that holds the nodes that can be expanded closedlist is a table that holds expanded nodes currentnode holds the node the search is currently expanding goal is the desination of the search 0.nodesExpanded := 0 1.while (openlist <> Empty AND nodesexpanded < α) 2. currentnode := openlist s popnode() 3. nodesexpanded := nodesexpanded closelist s addnode(currentnode) 5. if (hasgoal(currentnode, goal) = true) 6. finalsolutionstart := currentnode 7. return 1 // currentnode has the goal in it 8. if (doescontainnode(otheragentclosedlist) = true) 9. finalsolutionstart := currentnode 10. return 2 // frontiers meet at currentnode 11. for all k N where N is the set of neighbors for currentnode 12. if (doescontainnode(closedlist, k) = false) 13. g : getcenter(currentnode) getcenter(k) + gfromstart 14. if (doescontainnode(openlist, k) = false) 15. openlist s addnode(k, currentnode, gcost) 16. else 17. lastg := getg(openlist, k) 18. if (g < lastg) 19. openlist s updatenode(k, g) 20. if (openlist = Empty) 21. return -1 // no path is found Figure 2. Pseudocode for each search s dosearch() function reasons we discuss further in the System Design section, we were unable to conduct our two searches in parallel. Therefore, the coordinator runs the searches in alternating successions. If a designer also elects to use alternating successions for the bi-directional aspect of the search, they must choose how many iterations, which we refer to as α, each search completes before switching to the opposite search. Our implementation uses an α defined by the number of polygons in the navigation mesh divided by some constant, ρ. Deciding what value to use for ρ may require some experimentation before finding the appropriate value of α for your particular system. We used a trial and error process, during which we noticed that the statistic affected most by changing the value was nodes visited. We used the value of ρ that kept the average number of nodes visited across all of our environments the lowest. Figure 1 lists pseudocode for the Dynamically Weighted BDBOP algorithm s coordinator The Searches Each of the searches needs an open list, a closed list, a current node, a goal location, and the closed list of the opposite search. The open list is implemented as a min-heap with all of the typical heap operations, with one alteration being that a limit is imposed on the size of the heap. If the size of the heap exceeds the limit after a node is added, the node with the greatest f cost value is removed. Figure 3 demonstrates how the limit can be applied to the open list when adding a new node. This limit lowers the space complexity of the search. One must be careful when choosing the limit because a limit too low can lead to an incomplete search. The open list also uses a lookup table to see if a specific node is in the list and a table to see at what index in the list a node is located. The closed list was implemented as an array of nodes whose indices correspond to the id of each node in the search space.

4 6 Int'l Conf. Artificial Intelligence ICAI'16 n is the max number of nodes the developer wants the list to hold startingh is the distance from the starting node to the goal heap a min-heap that represents the openlist nodesheld is the number of nodes held by the currently heap E is the number of Nodes Expanded to reach the current Node 0. addnode (polygon, parentnode, g) 1. if ( nodesheld = 0) 2. newnode := createanode (polygon,parentnode,g, goal, startingh, 1) 3. else 4. nodesexpanded := getexpandednodesto (parentnode) newnode := createanode (polygon, parentnode, g, goal, startingh, E) 6. if (nodesheld > n) 7. deletemaxnode () 8. heap [nodesheld] := newnode 9. shiftup (nodesheld) Figure 3. Pseudocode for addnode() function on the openlist of a search This allows all searches of the closed list to become O(1) operations. When the coordinator tells a search to execute it gives the search α and the closed list of the opposite search. A search ends when the goal is found, the current node is in the closed list of the opposite search, or the open list is empty. Figure 2 shows the pseudocode for the dosearch() function for each search in Dynamically Weighted BDBOP algorithm. If the iterations complete before any of these conditions are met the search pauses and tells the coordinator that it has not found the goal yet. The coordinator then starts the opposite search, either for the first time or where it previously left off. This continues until one of the searches satisfies an end condition The Node A node holds information about a polygon from the navigation mesh, a reference to its parent node, and the f, g and h costs for the polygon s location in the navigation mesh. The node also calculates the dynamic weight, ω, used on the heuristic. Figure 4 shows pseudocode for calculating the dynamic weight in a node for the Dynamically Weighted BDBOP algorithm. 4 System Design 4.1 Using the Unity 5.1 Game Engine Unity 5.1 [9] provided us a platform for creating 3 dimensional environments and a means to run our experiment on them. All the rendered objects in an environment in Unity are made up of triangles. The navigation mesh was constructed by merging the triangles Unity generated that represent walkable surface area and then subdividing this area into convex polygons until every polygon no longer held a static obstacle. It is worth mentioning that our navigation mesh is a polygonal navigation mesh not strictly a triangular mesh. Once the navigation mesh is completed the polygons node holds the polygon in the navigation mesh that the new node will hold parentnode is the node that this node follows in the solution path g is the cost to get to this node from the start of the search h is the heuristic cost that is used for each node f is the total cost to expand this node E is the number of nodes that were expanded to reach this node ncost is the startingh divided by the smallest polygon length startingh is distance from the starting node to the goal ε is used for the dynamic weight ω is the dynamic weight that is added to the totalcost 0.createANode(polygon, parentnodetoadd, gtoadd, goal,startingh, E) 1. node := polygon 2. g := gcosttoadd 3. parentnode := parentnodetoadd 4. ncost := startingh / getsmallestpolygonlength () 5. if (E <= ncost) 6. ω := 1 (E / ncost) 7. else 8. ω := 0 9. h := getheuristiccosttogoal (node) 10. f := g + ( 1 + (ε * ω)) * h Figure 4. Pseudocode for creating a node with a dynamically weighed heuristic are given to a search to represent the search space. One impact of using Unity to conduct our searches was that Unity discourages the use of user threads. For this reason, we decided to use alternating successions instead of running searches in parallel for the searches that had a bi-directional nature. 4.2 Environments The 11 environments used in our experiment were 3 dimensional environments. These environments encapsulated an agent (the starting point), a goal (the end point) and static obstacles. These obstacles were later cut out of the navigation mesh. The size of the environments and the number of obstacles in the environments varied. Most environments were square, with the exception of two special cases we constructed. One was a horseshoe with the goal and starting point each on opposite ends of the horseshoe. The other was a very long narrow rectangle. Both of these environments yielded interesting results when the searches were tested on them. The number of polygons in the navigation meshes ranged from 32 to 8,173. In general, the more obstacles there are in an environment, the larger the number of polygons in the navigation mesh. 4.3 Data Collection Each search algorithm was run 1000 times on each environment. The following data was collected from each search algorithm for each run: Search time (seconds) Number of nodes expanded

5 Int'l Conf. Artificial Intelligence ICAI'16 7 Max number of nodes in Open List Path length (# of polygons) Path cost (meters) The following data was collected for each environment: Number of initial polygons (before building out of the eleven environments we tested on, losing only by a small margin on the other three environments. The Dynamic Weighting and Bi-Directional components of Dynamically Weighted BDBOP appear to have done their job in reducing the total number of nodes visited by the search. Figure 5 shows the average search time for each algorithm on each of Figure 5. Average search time of each algorithm on each test environment Figure 6. Number of Nodes visited by the 6 search algorithms on 6 test environments navigation mesh) Number of static obstacles Number of final polygons (after navigation mesh is built) 5 Results After comparing the data from the different search algorithms against each other we found that Dynamically Weighted BDBOP was the fastest and visited the fewest nodes in eight Figure 7. Max Open List Size for the 6 search algorithms on 6 test environments the eleven environments. Figure 6 shows the number of nodes visited by each search on six of the different environments. Each environment used relatively equal amounts of space with the exception of Fringe search, which performed poorly in terms of space used. Figure 7 shows the maximum number of nodes in the open list for each search algorithm on six of the eleven environments. The limit imposed on the size of the open list of Dynamically Weighted BDBOP was only reached once during testing. This occurred on the environment with the largest number of final polygons (8,173).

6 8 Int'l Conf. Artificial Intelligence ICAI'16 Figure 8. Xanadu map used for testing DWBDBOP A* Bi-Directional Dynamic Fringe Beam Weighted Polygon Map Size Path Cost (m) Path Cost Path Cost (m) Path Cost (m) Path Cost(m) Path Cost Count (m 2 ) (m) (m) , , , , , , ,760, , Figure 9. Path costs for each search on 10 test environments Fringe search performed consistently worse than the other searches except on environments that consisted of long narrow corridors. Our testing included two such environments. One is a straight and narrow path 120 meters wide and 23 kilometers long, the other resembles a horseshoe (Xanadu, shown in Figure 8) and is about 2.8 kilometers in total length. Even though Fringe Search did not perform the best among all the algorithms on these two environments, Fringe search s performance disparity between different types of environments demonstrated that certain searches are better suited for certain environments than for others. Naturally, a game developer will want to pick the appropriate search for any given environment. On an environment such as Xanadu the heuristic is telling the search to go in a direction that it cannot for nearly half the search leading to inefficiency. An intermediary goal in the middle of the horseshoe would help the performance of A* by improving the accuracy of the heuristic in deciding which node to expand next. The next step in our testing would be to increase the number and diversity of environments we run the search algorithms on in order to get a better idea of the strengths and weaknesses of each search. We hope to discover another unique situation that we can learn from, such as the one we encountered with Fringe Search. The knowledge gained from analyzing such performance anomalies may lead to further methods for improving the searches. 6 Discussion Dynamically Weighted BDBOP is the fastest of the searches we tested, but does not always give an optimal path. The need for an optimal path in video games is not always the number one concern. Quite often a developer will prefer a faster search with a near optimal path to a slower search with an optimal path. Figure 9 shows the path costs for all the search algorithms on several of the environments along with the environment size and polygon count. Dynamically Weighted BDBOP s path cost is very close to optimal in nearly all cases and even achieves an optimal solution in four of the environments. There was one environment where Dynamically Weighted BDBOP s path cost had a 36 percent difference from the optimal path cost. This was on the map with highest polygon count (8,173), encompassing 500,000 square meters. The regular Dynamically Weighted search also performed poorly on this map in terms of path cost. Environments with such high polygon counts are very

7 Int'l Conf. Artificial Intelligence ICAI'16 9 uncommon in video games. For example, Unity 5.1 has a limit of 228 polygons for navigations meshes built with Unity s nav mesh baker [9], and games like Jak and Daxter have a maximum polygon count of 256, with meshes rarely exceeding 64 polygons [10]. Further testing on a larger set of environments that are similar to those used in video games today will provide a better understanding of Dynamically Weighted BDBOP s viability as a path-finding algorithm in video games. The speed increase Dynamically Weighted BDBOP has over traditional A* can help video game developers with the CPU constraints. With video games becoming more complex for systems to run, the constraints they put on CPUs are becoming a bigger problem. These constraints leave limited resources for other video game requirements such as artificial intelligence. With Dynamically Weighted BDBOP the developer has more resources available after a path is found to handle more complex tasks like decision making for NPCs. This is due to how fast Dynamically Weighted BDBOP can complete a search and give a path back to an agent. A* took on average over a tenth of a second on larger environments and then over two seconds to complete the path on the environment with the largest polygon count (8,173). This would put a major lag in the game. Dynamically Weighted BDBOP on the other hand never took longer than two hundredths of a second to complete a search. 7 Conclusion and Future Work As video games continue to advance, they are becoming more and more computationally complex, requiring faster hardware and more efficient algorithms to achieve desired performance. Our research focused on improving the efficiency of a typical path-finding method used in video games. Representation of the environment was the first consideration. The use of a navigation mesh instead of a square grid allowed us to reduce the search space. Next we examined the performance of several search algorithms and proposed a variation to A*, which we termed Dynamically Weighted BDBOP. The top performer among the searches we tested was Dynamically Weighted BDBOP, which had the lowest average search time. The various alterations we made to the search algorithms and data structures demonstrated what mechanisms lowered the total search time, which mechanisms increased search time and possible areas for further improvement. Our future work will be to continue testing and modifying the search algorithms to enhance efficiency. One path involves comparing Bi-Directional search run in parallel against Bi-Directional Search run in alternating successions. We would also like to see how the performance of Bi- Directional Search is affected when the search goal is updated to the opposite search s current node every time that current node changes. Also, we would like to explore if Dynamically Weighted BDBOP would place a lag in the system during path-finding for multiple NPCs at the same time. For testing we would like to use a much larger set of environments, and would prefer to use environments that are typical of those used in the latest video games. Our hope is that further testing and experimentation with the search algorithms will lead to improvements in efficiency that can be beneficial to the video game industry and, more generally, other path-finding applications. 8 References [1] Xiao Cui and Hao Shi, Direction Oriented Pathfinding in Video Games, IJAIA, Vol. 2, No. 4, October [2] Xiao Cui and Hao Shi, An Overview of Pathfinding in Navigation Mesh, IJCSNS, Vol. 12, No. 12, December, [3] P. Tozour, Building a Near-Optimal Navigation Mesh, in AI Game Programming Wisdom, vol. 1. Rockland, MA: Charles River Media, 2002, ch. 2, sec. 3, pp [4] G. Snook, Simplified 3d Movement and Pathfinding Using Navigation Meshes, in Game Programming Gems, vol. 1. Boston, Ma: Cengage Learning, 2000, ch. 3, sec. 6, pp [5] Y. Bjornsson, M. Enzenberger, R. C. Holte and J. Schaeffer, "Fringe search: Beating A* at Pathfinding on Game Maps", IEEE CIG'05, 2005, pp [6] Andru Putra Twinanda, Fringe search vs A* for NPC movement, School of Electrical dan Informatics Engineering Institut Teknologi Bandung, Bandung, Indonesia, [7] Amit Patel, Amit s A* Pages [Online], Available: accessed April 9, [8] S. Rabin, A* Speed Optimizations, in Game Programming Gems, vol. 1. Boston, Ma: Cengage Learning, 2000, ch. 3, sec. 5, pp [9] Unity Online Manual [Online], Available: accessed April 9, [10] S. White and C. Christensen, A Fast Approach to Navigation Meshes, in Game Programming Gems, vol. 3. Boston, Ma: Cengage Learning, 2002, ch. 3, sec. 6, pp

Chapter 5.4 Artificial Intelligence: Pathfinding

Chapter 5.4 Artificial Intelligence: Pathfinding Chapter 5.4 Artificial Intelligence: Pathfinding Introduction Almost every game requires pathfinding Agents must be able to find their way around the game world Pathfinding is not a trivial problem The

More information

Notes. Video Game AI: Lecture 5 Planning for Pathfinding. Lecture Overview. Knowledge vs Search. Jonathan Schaeffer this Friday

Notes. Video Game AI: Lecture 5 Planning for Pathfinding. Lecture Overview. Knowledge vs Search. Jonathan Schaeffer this Friday Notes Video Game AI: Lecture 5 Planning for Pathfinding Nathan Sturtevant COMP 3705 Jonathan Schaeffer this Friday Planning vs localization We cover planning today Localization is just mapping a real-valued

More information

A System for Bidirectional Robotic Pathfinding

A System for Bidirectional Robotic Pathfinding A System for Bidirectional Robotic Pathfinding Tesca K. Fitzgerald Department of Computer Science, Portland State University PO Box 751 Portland, OR 97207 USA tesca@cs.pdx.edu TR 12-02 November 2012 Abstract

More information

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams Disclaimer: I use these notes as a guide rather than a comprehensive coverage of the topic. They are neither a substitute for attending the lectures nor for reading the assigned material. I may not have

More information

Choosing a Search Space Representation

Choosing a Search Space Representation 18 Choosing a Search Space Representation Nathan R. Sturtevant 18.1 Introduction 18.2 Tasks 18.3 Grids 18.4 Waypoint Graphs 18.5 Navigation Meshes 18.6 Conclusion 18.1 Introduction The choice of a path

More information

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences : A rule of thumb, simplification, or educated guess that reduces

More information

Search and Games. Adi Botea. ANU Summer Schools in Logic and Learning February, 2009

Search and Games. Adi Botea. ANU Summer Schools in Logic and Learning February, 2009 Search and Games Adi Botea ANU Summer Schools in Logic and Learning February, 2009 Outline 1 Introduction 2 Problem Representation 3 Uninformed Search 4 Informed Search 5 Hierarchical Abstraction Outline

More information

Pathfinding. Pathfinding Planned Movement

Pathfinding. Pathfinding Planned Movement 345 Ludic Computing Lecture 10 Pathfinding Simon Colton & Alison Pease Computational Creativity Group Department of Computing Imperial College London www.doc.ic.ac.uk/ccg 1 Pathfinding Planned Movement

More information

Advanced A* Improvements

Advanced A* Improvements Advanced A* Improvements 1 Iterative Deepening A* (IDA*) Idea: Reduce memory requirement of A* by applying cutoff on values of f Consistent heuristic function h Algorithm IDA*: 1. Initialize cutoff to

More information

Automated Route Finding on Digital Terrains

Automated Route Finding on Digital Terrains Automated Route Finding on Digital Terrains D. R. Wichmann and B. C. Wünsche Graphics Group, Dept. of Computer Science, University of Auckland, Private Bag 92019, Auckland, New Zealand. daniel.wichmann@gmail.com,

More information

Moving On. 10. Single-agent Search. Applications. Why Alpha-Beta First?

Moving On. 10. Single-agent Search. Applications. Why Alpha-Beta First? Moving On 10. Single-agent Search Jonathan Schaeffer jonathan@cs.ualberta.ca www.cs.ualberta.ca/~jonathan Two-player adversary search is nice, but not all interesting problems can be mapped to games Large

More information

Time-sliced pathfinding on arbitrary polygon surfaces

Time-sliced pathfinding on arbitrary polygon surfaces Time-sliced pathfinding on arbitrary polygon surfaces Arvid Norberg supervisor: Michael Minock Abstract Real-time games need to maintain a smooth frame rate and cannot

More information

Improving the Efficiency of Depth-First Search by Cycle Elimination

Improving the Efficiency of Depth-First Search by Cycle Elimination Improving the Efficiency of Depth-First Search by Cycle Elimination John F. Dillenburg and Peter C. Nelson * Department of Electrical Engineering and Computer Science (M/C 154) University of Illinois Chicago,

More information

Map Abstraction with Adjustable Time Bounds

Map Abstraction with Adjustable Time Bounds Map Abstraction with Adjustable Time Bounds Sourodeep Bhattacharjee and Scott D. Goodwin School of Computer Science, University of Windsor Windsor, N9B 3P4, Canada sourodeepbhattacharjee@gmail.com, sgoodwin@uwindsor.ca

More information

Pathfinding Algorithms and Implementations on Grid Map

Pathfinding Algorithms and Implementations on Grid Map Pathfinding Algorithms and Implementations on Grid Map Steven Andrew / 13509061 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

More information

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2. Problem Solving Agents. Problem Solving Agents: Assumptions

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2. Problem Solving Agents. Problem Solving Agents: Assumptions Class Overview COMP 3501 / COMP 4704-4 Lecture 2 Prof. JGH 318 Problem Solving Agents Problem Solving Agents: Assumptions Requires a goal Assume world is: Requires actions Observable What actions? Discrete

More information

Heuristic (Informed) Search

Heuristic (Informed) Search Heuristic (Informed) Search (Where we try to choose smartly) R&N: Chap., Sect..1 3 1 Search Algorithm #2 SEARCH#2 1. INSERT(initial-node,Open-List) 2. Repeat: a. If empty(open-list) then return failure

More information

CMPUT 396 Sliding Tile Puzzle

CMPUT 396 Sliding Tile Puzzle CMPUT 396 Sliding Tile Puzzle Sliding Tile Puzzle 2x2 Sliding Tile States Exactly half of the states are solvable, the other half are not. In the case of 2x2 puzzles, I can solve it if I start with a configuration

More information

REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION

REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION ABSTRACT Mark A. Mueller Georgia Institute of Technology, Computer Science, Atlanta, GA USA The problem of autonomous vehicle navigation between

More information

Hierarchical Dynamic Pathfinding for Large Voxel Worlds

Hierarchical Dynamic Pathfinding for Large Voxel Worlds Hierarchical Dynamic Pathfinding for Large Voxel Worlds Benoit Alain Lead Programmer & CTO, Sauropod Studio Hierarchical Dynamic Pathfinding for Large Voxel Worlds Hierarchical Dynamic Pathfinding for

More information

C SCI 335 Software Analysis & Design III Lecture Notes Prof. Stewart Weiss Chapter 4: B Trees

C SCI 335 Software Analysis & Design III Lecture Notes Prof. Stewart Weiss Chapter 4: B Trees B-Trees AVL trees and other binary search trees are suitable for organizing data that is entirely contained within computer memory. When the amount of data is too large to fit entirely in memory, i.e.,

More information

Hybrid Vector Field Pathfinding

Hybrid Vector Field Pathfinding Hybrid Vector Field Pathfinding Johannes Moersch Howard Hamilton University of Regina 1. Introduction Pathfinding is an important aspect of almost all of today s interactive entertainment. Whether it is

More information

Common Misconceptions Concerning Heuristic Search

Common Misconceptions Concerning Heuristic Search Common Misconceptions Concerning Heuristic Search Robert C. Holte Computing Science Department, University of Alberta Edmonton, Canada T6G 2E8 (holte@cs.ualberta.ca Abstract This paper examines the following

More information

CS248. Game Mechanics

CS248. Game Mechanics CS248 Game Mechanics INTRODUCTION TOM WANG 2007 BS/MS CS KEY GAME MECHANICS * * * * * WORLD BUILDING CONTROLS CAMERA AI PERFORMANCE WORLD BUILDING WORLD BUILDING Set the atmosphere and tone of the game.

More information

Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty

Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty Michael Comstock December 6, 2012 1 Introduction This paper presents a comparison of two different machine learning systems

More information

Search Algorithms for Discrete Optimization Problems

Search Algorithms for Discrete Optimization Problems Search Algorithms for Discrete Optimization Problems Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar To accompany the text ``Introduction to Parallel Computing'', Addison Wesley, 2003. Topic

More information

6.141: Robotics systems and science Lecture 10: Implementing Motion Planning

6.141: Robotics systems and science Lecture 10: Implementing Motion Planning 6.141: Robotics systems and science Lecture 10: Implementing Motion Planning Lecture Notes Prepared by N. Roy and D. Rus EECS/MIT Spring 2011 Reading: Chapter 3, and Craig: Robotics http://courses.csail.mit.edu/6.141/!

More information

Informed search. Soleymani. CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2016

Informed search. Soleymani. CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2016 Informed search CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2016 Soleymani Artificial Intelligence: A Modern Approach, Chapter 3 Outline Best-first search Greedy

More information

Heuristic Search and Advanced Methods

Heuristic Search and Advanced Methods Heuristic Search and Advanced Methods Computer Science cpsc322, Lecture 3 (Textbook Chpt 3.6 3.7) May, 15, 2012 CPSC 322, Lecture 3 Slide 1 Course Announcements Posted on WebCT Assignment1 (due on Thurs!)

More information

Sung-Eui Yoon ( 윤성의 )

Sung-Eui Yoon ( 윤성의 ) Path Planning for Point Robots Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/mpa Class Objectives Motion planning framework Classic motion planning approaches 2 3 Configuration Space:

More information

Introduction to Information Science and Technology (IST) Part IV: Intelligent Machines and Robotics Planning

Introduction to Information Science and Technology (IST) Part IV: Intelligent Machines and Robotics Planning Introduction to Information Science and Technology (IST) Part IV: Intelligent Machines and Robotics Planning Sören Schwertfeger / 师泽仁 ShanghaiTech University ShanghaiTech University - SIST - 10.05.2017

More information

Informed State Space Search B4B36ZUI, LS 2018

Informed State Space Search B4B36ZUI, LS 2018 Informed State Space Search B4B36ZUI, LS 2018 Branislav Bošanský, Martin Schaefer, David Fiedler, Jaromír Janisch {name.surname}@agents.fel.cvut.cz Artificial Intelligence Center, Czech Technical University

More information

Formations in flow fields

Formations in flow fields Formations in flow fields Rick van Meer June 11, 2015 1 Introduction Pathfinding and formations (i.e. an arrangement of agents) are both a part of artificial intelligence and can be used in games. However,

More information

ME/CS 132: Advanced Robotics: Navigation and Vision

ME/CS 132: Advanced Robotics: Navigation and Vision ME/CS 132: Advanced Robotics: Navigation and Vision Lecture #5: Search Algorithm 1 Yoshiaki Kuwata 4/12/2011 Lecture Overview Introduction Label Correcting Algorithm Core idea Depth-first search Breadth-first

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence Informed Search and Exploration Chapter 4 (4.1 4.2) A General Search algorithm: Chapter 3: Search Strategies Task : Find a sequence of actions leading from the initial state to

More information

Real-Time Rendering of a Scene With Many Pedestrians

Real-Time Rendering of a Scene With Many Pedestrians 2015 http://excel.fit.vutbr.cz Real-Time Rendering of a Scene With Many Pedestrians Va clav Pfudl Abstract The aim of this text was to describe implementation of software that would be able to simulate

More information

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 23 January, 2018

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 23 January, 2018 DIT411/TIN175, Artificial Intelligence Chapters 3 4: More search algorithms CHAPTERS 3 4: MORE SEARCH ALGORITHMS DIT411/TIN175, Artificial Intelligence Peter Ljunglöf 23 January, 2018 1 TABLE OF CONTENTS

More information

3 SOLVING PROBLEMS BY SEARCHING

3 SOLVING PROBLEMS BY SEARCHING 48 3 SOLVING PROBLEMS BY SEARCHING A goal-based agent aims at solving problems by performing actions that lead to desirable states Let us first consider the uninformed situation in which the agent is not

More information

Implementation of Parallel Path Finding in a Shared Memory Architecture

Implementation of Parallel Path Finding in a Shared Memory Architecture Implementation of Parallel Path Finding in a Shared Memory Architecture David Cohen and Matthew Dallas Department of Computer Science Rensselaer Polytechnic Institute Troy, NY 12180 Email: {cohend4, dallam}

More information

Informed Search Algorithms

Informed Search Algorithms Informed Search Algorithms CITS3001 Algorithms, Agents and Artificial Intelligence Tim French School of Computer Science and Software Engineering The University of Western Australia 2017, Semester 2 Introduction

More information

Path Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano tel:

Path Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano   tel: Marcello Restelli Dipartimento di Elettronica e Informazione Politecnico di Milano email: restelli@elet.polimi.it tel: 02 2399 3470 Path Planning Robotica for Computer Engineering students A.A. 2006/2007

More information

Strict Theta*: Shorter Motion Path Planning Using Taut Paths

Strict Theta*: Shorter Motion Path Planning Using Taut Paths Proceedings of the Twenty-Sixth International Conference on Automated Planning and Scheduling (ICAPS 2016) Strict Theta*: Shorter Motion Path Planning Using Taut Paths Shunhao Oh and Hon Wai Leong Department

More information

A Real Time GIS Approximation Approach for Multiphase Spatial Query Processing Using Hierarchical-Partitioned-Indexing Technique

A Real Time GIS Approximation Approach for Multiphase Spatial Query Processing Using Hierarchical-Partitioned-Indexing Technique International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2017 IJSRCSEIT Volume 2 Issue 6 ISSN : 2456-3307 A Real Time GIS Approximation Approach for Multiphase

More information

the gamedesigninitiative at cornell university Lecture 20 Pathfinding

the gamedesigninitiative at cornell university Lecture 20 Pathfinding Lecture 20 Take way for Today What are primary goals for pathfinding? Identify advantages/disadvantages of * In what situations does * fail (or look bad)? What can we do to fix se problems? Why combine

More information

Pathfinding. Artificial Intelligence for gaming

Pathfinding. Artificial Intelligence for gaming Pathfinding Artificial Intelligence for gaming Pathfinding Group AI Execution Management Strategy World Inter face Character AI Decision Making Movement Pathfinding Animation Physics Pathfinding Graphs

More information

9/17/2015 7:56 AM. CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective

9/17/2015 7:56 AM. CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective CSCE 625 Programing Assignment #1 due: Tues, Sep 22 (by start of class) Objective The goal of this assignment is to implement and compare the performance of Breadth-first search (BFS), Depth-First Search

More information

APHID: Asynchronous Parallel Game-Tree Search

APHID: Asynchronous Parallel Game-Tree Search APHID: Asynchronous Parallel Game-Tree Search Mark G. Brockington and Jonathan Schaeffer Department of Computing Science University of Alberta Edmonton, Alberta T6G 2H1 Canada February 12, 1999 1 Running

More information

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams Disclaimer: I use these notes as a guide rather than a comprehensive coverage of the topic. They are neither a substitute for attending the lectures nor for reading the assigned material. I may not have

More information

Efficient Crowd Simulation for Mobile Games

Efficient Crowd Simulation for Mobile Games 24 Efficient Crowd Simulation for Mobile Games Graham Pentheny 24.1 Introduction 24.2 Grid 24.3 Flow Field 24.4 Generating the Flow Field 24.5 Units 24.6 Adjusting Unit Movement Values 24.7 Mobile Limitations

More information

Automatically-generated Convex Region Decomposition for Real-time Spatial Agent Navigation in Virtual Worlds

Automatically-generated Convex Region Decomposition for Real-time Spatial Agent Navigation in Virtual Worlds Proceedings of the Fourth Artificial Intelligence and Interactive Digital Entertainment Conference Automatically-generated Convex Region Decomposition for Real-time Spatial Agent Navigation in Virtual

More information

Route planning / Search Movement Group behavior Decision making

Route planning / Search Movement Group behavior Decision making Game AI Where is the AI Route planning / Search Movement Group behavior Decision making General Search Algorithm Design Keep a pair of set of states: One, the set of states to explore, called the open

More information

Research Article Path Planning Using a Hybrid Evolutionary Algorithm Based on Tree Structure Encoding

Research Article Path Planning Using a Hybrid Evolutionary Algorithm Based on Tree Structure Encoding e Scientific World Journal, Article ID 746260, 8 pages http://dx.doi.org/10.1155/2014/746260 Research Article Path Planning Using a Hybrid Evolutionary Algorithm Based on Tree Structure Encoding Ming-Yi

More information

Lecture 5 Heuristics. Last Time: A* Search

Lecture 5 Heuristics. Last Time: A* Search CSE 473 Lecture 5 Heuristics CSE AI Faculty Last Time: A* Search Use an evaluation function f(n) for node n. f(n) = estimated total cost of path thru n to goal f(n) = g(n) + h(n) g(n) = cost so far to

More information

Chapter 11 Search Algorithms for Discrete Optimization Problems

Chapter 11 Search Algorithms for Discrete Optimization Problems Chapter Search Algorithms for Discrete Optimization Problems (Selected slides) A. Grama, A. Gupta, G. Karypis, and V. Kumar To accompany the text Introduction to Parallel Computing, Addison Wesley, 2003.

More information

Solving the Sokoban Problem (Artificial Intelligence 11)

Solving the Sokoban Problem (Artificial Intelligence 11) Solving the Sokoban Problem (Artificial Intelligence 11) M. Dorst, M. Gerontini, A. Marzinotto, R. Pana October 14, 2011 Matthijs Dorst 1985-02-05 dorst@kth.se Maria Gerontini 1988-01-26 mger@kth.se Radu-Mihai

More information

PARTICLE Swarm Optimization (PSO), an algorithm by

PARTICLE Swarm Optimization (PSO), an algorithm by , March 12-14, 2014, Hong Kong Cluster-based Particle Swarm Algorithm for Solving the Mastermind Problem Dan Partynski Abstract In this paper we present a metaheuristic algorithm that is inspired by Particle

More information

Informed search methods

Informed search methods Informed search methods Tuomas Sandholm Computer Science Department Carnegie Mellon University Read Section 3.5-3.7 of Russell and Norvig Informed Search Methods Heuristic = to find, to discover Heuristic

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

Can work in a group of at most 3 students.! Can work individually! If you work in a group of 2 or 3 students,!

Can work in a group of at most 3 students.! Can work individually! If you work in a group of 2 or 3 students,! Assignment 1 is out! Due: 26 Aug 23:59! Submit in turnitin! Code + report! Can work in a group of at most 3 students.! Can work individually! If you work in a group of 2 or 3 students,! Each member must

More information

Intelligent Path Finding for Avatars in Massively Multiplayer Online Games

Intelligent Path Finding for Avatars in Massively Multiplayer Online Games Intelligent Path Finding for Avatars in Massively Multiplayer Online Games Dewan Tanvir Ahmed, Shervin Shirmohammadi Distributed and Collaborative Virtual Environments Research Laboratory School of Information

More information

Basic Search Algorithms

Basic Search Algorithms Basic Search Algorithms Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Abstract The complexities of various search algorithms are considered in terms of time, space, and cost

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology A* Heuristics Fall 2018 A* Search f(n): The current best estimate for the best path through a node: f(n)=g(n)+h(n) g(n): current known best cost for getting to a node

More information

Solving Problems by Searching

Solving Problems by Searching Solving Problems by Searching Berlin Chen 2004 Reference: 1. S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach. Chapter 3 1 Introduction Problem-Solving Agents vs. Reflex Agents Problem-solving

More information

CAP 4630 Artificial Intelligence

CAP 4630 Artificial Intelligence CAP 4630 Artificial Intelligence Instructor: Sam Ganzfried sganzfri@cis.fiu.edu 1 http://www.ultimateaiclass.com/ https://moodle.cis.fiu.edu/ 2 Solving problems by search 3 8-puzzle 4 8-queens 5 Search

More information

A* Algorithm BY WARREN RUSSELL

A* Algorithm BY WARREN RUSSELL A* Algorithm BY WARREN RUSSELL Dijkstra s Algorithm In real time, finding a path can be time consuming. Especially with all the extra cells visited. Is this practical? Could we do better? A* (A Star) This

More information

Abstraction. Today s Lecture. Problem Formalization Issues. Lecture 3: Search 2

Abstraction. Today s Lecture. Problem Formalization Issues. Lecture 3: Search 2 Lecture 3: Search 2 Victor R. Lesser CMPSCI 683 Fall 2010 Today s Lecture Finish off Introductory Material on Search Brief Review of Blind Search How to use heuristics (domain knowledge) in order to accelerate

More information

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the

More information

Module 2: Classical Algorithm Design Techniques

Module 2: Classical Algorithm Design Techniques Module 2: Classical Algorithm Design Techniques Dr. Natarajan Meghanathan Associate Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Module

More information

Beyond A*: Speeding up pathfinding through hierarchical abstraction. Daniel Harabor NICTA & The Australian National University

Beyond A*: Speeding up pathfinding through hierarchical abstraction. Daniel Harabor NICTA & The Australian National University Beyond A*: Speeding up pathfinding through hierarchical abstraction Daniel Harabor NICTA & The Australian National University Motivation Myth: Pathfinding is a solved problem. Motivation Myth: Pathfinding

More information

THE SHORTEST PATH FROM SHORTEST DISTANCE ON A POLYGON MESH

THE SHORTEST PATH FROM SHORTEST DISTANCE ON A POLYGON MESH THE HORTET PATH FROM HORTET DITANCE ON A POLYGON MEH JINHYUNG CHOI, BO ZHANG, KYOUNGU OH oongsil University, 369 angdo-ro, Dongjak-gu eoul, Department of Media, outh Korea E-mail: jinham2049@gmail.com,

More information

Course Outline. Video Game AI: Lecture 7 Heuristics & Smoothing. Finding the best location out of several. Variable size units / special movement?

Course Outline. Video Game AI: Lecture 7 Heuristics & Smoothing. Finding the best location out of several. Variable size units / special movement? Course Outline Video Game AI: Lecture 7 Heuristics & Smoothing Nathan Sturtevant COMP 3705 http://aigamedev.com/ now has free interviews! Miscellaneous details Heuristics How better heuristics can be built

More information

Graph and A* Analysis

Graph and A* Analysis Graph and A* Analysis Kyle Ray Entertainment Arts and Engineering University of Utah Salt Lake City, Ut 84102 kray@eng.utah.edu Abstract: Pathfinding in video games is an essential tool to have for both

More information

CONSTRUCTION OF THE VORONOI DIAGRAM BY A TEAM OF COOPERATIVE ROBOTS

CONSTRUCTION OF THE VORONOI DIAGRAM BY A TEAM OF COOPERATIVE ROBOTS CONSTRUCTION OF THE VORONOI DIAGRAM BY A TEAM OF COOPERATIVE ROBOTS Flavio S. Mendes, Júlio S. Aude, Paulo C. V. Pinto IM and NCE, Federal University of Rio de Janeiro P.O.Box 2324 - Rio de Janeiro - RJ

More information

Chapter 3: Search. c D. Poole, A. Mackworth 2010, W. Menzel 2015 Artificial Intelligence, Chapter 3, Page 1

Chapter 3: Search. c D. Poole, A. Mackworth 2010, W. Menzel 2015 Artificial Intelligence, Chapter 3, Page 1 Chapter 3: Search c D. Poole, A. Mackworth 2010, W. Menzel 2015 Artificial Intelligence, Chapter 3, Page 1 Searching Often we are not given an algorithm to solve a problem, but only a specification of

More information

AN IMPLEMENTATION OF PATH PLANNING ALGORITHMS FOR MOBILE ROBOTS ON A GRID BASED MAP

AN IMPLEMENTATION OF PATH PLANNING ALGORITHMS FOR MOBILE ROBOTS ON A GRID BASED MAP AN IMPLEMENTATION OF PATH PLANNING ALGORITHMS FOR MOBILE ROBOTS ON A GRID BASED MAP Tolga YÜKSEL Abdullah SEZGİN e-mail : tyuksel@omu.edu.tr e-mail : asezgin@omu.edu.tr Ondokuz Mayıs University, Electrical

More information

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE Department of Electrical and Computer Engineering ECGR 4161/5196 Introduction to Robotics Experiment No. 5 A* Path Planning Overview: The purpose of this experiment

More information

Does Fast Beat Thorough? Comparing RTAA* and LSS-LRTA*

Does Fast Beat Thorough? Comparing RTAA* and LSS-LRTA* Does Fast Beat Thorough? Comparing and Shane Kochvi and Wheeler Ruml Department of Computer Science University of New Hampshire Durham, NH 3824 USA shl29 at wildcats.unh.edu and ruml at cs.unh.edu Abstract

More information

CHAPTER SIX. the RRM creates small covering roadmaps for all tested environments.

CHAPTER SIX. the RRM creates small covering roadmaps for all tested environments. CHAPTER SIX CREATING SMALL ROADMAPS Many algorithms have been proposed that create a roadmap from which a path for a moving object can be extracted. These algorithms generally do not give guarantees on

More information

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 19 January, 2018

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 19 January, 2018 DIT411/TIN175, Artificial Intelligence Chapter 3: Classical search algorithms CHAPTER 3: CLASSICAL SEARCH ALGORITHMS DIT411/TIN175, Artificial Intelligence Peter Ljunglöf 19 January, 2018 1 DEADLINE FOR

More information

TIE Graph algorithms

TIE Graph algorithms TIE-20106 1 1 Graph algorithms This chapter discusses the data structure that is a collection of points (called nodes or vertices) and connections between them (called edges or arcs) a graph. The common

More information

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2: Search. Problem Solving Agents

Class Overview. Introduction to Artificial Intelligence COMP 3501 / COMP Lecture 2: Search. Problem Solving Agents Class Overview COMP 3501 / COMP 4704-4 Lecture 2: Search Prof. 1 2 Problem Solving Agents Problem Solving Agents: Assumptions Requires a goal Assume world is: Requires actions Observable What actions?

More information

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 The data of the problem is of 2GB and the hard disk is of 1GB capacity, to solve this problem we should Use better data structures

More information

Face Detection on Similar Color Photographs

Face Detection on Similar Color Photographs Face Detection on Similar Color Photographs Scott Leahy EE368: Digital Image Processing Professor: Bernd Girod Stanford University Spring 2003 Final Project: Face Detection Leahy, 2/2 Table of Contents

More information

Efficient Path Finding Method Based Evaluation Function in Large Scene Online Games and Its Application

Efficient Path Finding Method Based Evaluation Function in Large Scene Online Games and Its Application Journal of Information Hiding and Multimedia Signal Processing c 2017 ISSN 2073-4212 Ubiquitous International Volume 8, Number 3, May 2017 Efficient Path Finding Method Based Evaluation Function in Large

More information

Chapter 3: Solving Problems by Searching

Chapter 3: Solving Problems by Searching Chapter 3: Solving Problems by Searching Prepared by: Dr. Ziad Kobti 1 Problem-Solving Agent Reflex agent -> base its actions on a direct mapping from states to actions. Cannot operate well in large environments

More information

2. Sorting. 2.1 Introduction

2. Sorting. 2.1 Introduction 2. Sorting 2.1 Introduction Given a set of n objects, it is often necessary to sort them based on some characteristic, be it size, importance, spelling, etc. It is trivial for a human to do this with a

More information

Double Patterning-Aware Detailed Routing with Mask Usage Balancing

Double Patterning-Aware Detailed Routing with Mask Usage Balancing Double Patterning-Aware Detailed Routing with Mask Usage Balancing Seong-I Lei Department of Computer Science National Tsing Hua University HsinChu, Taiwan Email: d9762804@oz.nthu.edu.tw Chris Chu Department

More information

Artificial Intelligence Prof. Deepak Khemani Department of Computer Science and Engineering Indian Institute of Technology, Madras

Artificial Intelligence Prof. Deepak Khemani Department of Computer Science and Engineering Indian Institute of Technology, Madras Artificial Intelligence Prof. Deepak Khemani Department of Computer Science and Engineering Indian Institute of Technology, Madras (Refer Slide Time: 00:17) Lecture No - 10 Hill Climbing So, we were looking

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence Information Systems and Machine Learning Lab (ISMLL) Tomáš Horváth 10 rd November, 2010 Informed Search and Exploration Example (again) Informed strategy we use a problem-specific

More information

Algorithms and Path Planning

Algorithms and Path Planning Algorithms and Path Planning Topics Simple Search Depth First Search Breadth First Search Dijkstra s Search Greedy Search A* Search Classes of interest ECE400: Computer Systems Programming CS4700: Foundations

More information

Lecturers: Sanjam Garg and Prasad Raghavendra March 20, Midterm 2 Solutions

Lecturers: Sanjam Garg and Prasad Raghavendra March 20, Midterm 2 Solutions U.C. Berkeley CS70 : Algorithms Midterm 2 Solutions Lecturers: Sanjam Garg and Prasad aghavra March 20, 207 Midterm 2 Solutions. (0 points) True/False Clearly put your answers in the answer box in front

More information

Report of Linear Solver Implementation on GPU

Report of Linear Solver Implementation on GPU Report of Linear Solver Implementation on GPU XIANG LI Abstract As the development of technology and the linear equation solver is used in many aspects such as smart grid, aviation and chemical engineering,

More information

Discrete Motion Planning

Discrete Motion Planning RBE MOTION PLANNING Discrete Motion Planning Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Announcement Homework 1 is out Due Date - Feb 1 Updated

More information

6.141: Robotics systems and science Lecture 10: Motion Planning III

6.141: Robotics systems and science Lecture 10: Motion Planning III 6.141: Robotics systems and science Lecture 10: Motion Planning III Lecture Notes Prepared by N. Roy and D. Rus EECS/MIT Spring 2012 Reading: Chapter 3, and Craig: Robotics http://courses.csail.mit.edu/6.141/!

More information

CSE373 Fall 2013, Final Examination December 10, 2013 Please do not turn the page until the bell rings.

CSE373 Fall 2013, Final Examination December 10, 2013 Please do not turn the page until the bell rings. CSE373 Fall 2013, Final Examination December 10, 2013 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed calculator, closed electronics. Please stop promptly

More information

Pathfinding. Advaith Siddharthan

Pathfinding. Advaith Siddharthan Pathfinding Advaith Siddharthan Context What is Intelligence? Rational? Search Optimisation Reasoning Impulsive? Quicker response Less predictable Personality/Emotions: Angry/Bored/Curious Overview The

More information

ARTIFICIAL INTELLIGENCE (CSC9YE ) LECTURES 2 AND 3: PROBLEM SOLVING

ARTIFICIAL INTELLIGENCE (CSC9YE ) LECTURES 2 AND 3: PROBLEM SOLVING ARTIFICIAL INTELLIGENCE (CSC9YE ) LECTURES 2 AND 3: PROBLEM SOLVING BY SEARCH Gabriela Ochoa http://www.cs.stir.ac.uk/~goc/ OUTLINE Problem solving by searching Problem formulation Example problems Search

More information

Solving Problems by Searching. Artificial Intelligence Santa Clara University 2016

Solving Problems by Searching. Artificial Intelligence Santa Clara University 2016 Solving Problems by Searching Artificial Intelligence Santa Clara University 2016 Problem Solving Agents Problem Solving Agents Use atomic representation of states Planning agents Use factored or structured

More information

A Comparison of Data Structures for Dijkstra's Single Source Shortest Path Algorithm. Shane Saunders

A Comparison of Data Structures for Dijkstra's Single Source Shortest Path Algorithm. Shane Saunders A Comparison of Data Structures for Dijkstra's Single Source Shortest Path Algorithm Shane Saunders November 5, 1999 Abstract Dijkstra's algorithm computes the shortest paths between a starting vertex

More information

Computer Game Programming Basic Path Finding

Computer Game Programming Basic Path Finding 15-466 Computer Game Programming Basic Path Finding Robotics Institute Path Planning Sven Path Planning needs to be very fast (especially for games with many characters) needs to generate believable paths

More information