You are on page 1of 2

A report of your research on search algorithms supported with intext citations/references (Maximum of 500 words)

By William Read
During our investigation into Search Algorithms we looked at three different types
these being: Breadth First Search, Dijkstras and the A* Search algorithm, all with
the main concept of finding the shortest path between two different nodes within a
graph (such as a Binary Tree or a Grid).
Initially, the Breadth-First Algorithm is designed to allow the user to search through
a graph or binary tree structure to find the desired location and path that is needed
to reach that location, it does this through using neighbour nodes before you move
onto the next item\location in the grid. The advantages of this include the ability to
determine the shortest path even if there are multiple answers so would find the
less number of steps, and will always find a solution if the value is within the graph /
tree. (Breadth-First Search, World of Computing) Whilst the disadvantages of this search includes the
fact that it will take longer to search for larger trees and graphs in order to get a
result and it also requires a lot of memory in order to store each item that is within
the graph / tree (Breadth-First Search, World of Computing) and it is very difficult to update once the
set of data has been created.
Next, we took a look into Dijkstras algorithm, it searches a grid by looking at all the
neighbour nodes and then moving onto the Node that is the shortest distance away.
There are many advantages with this algorithm as it finds the path using the
notation of O (a + b log(b)) (Dijkstras Advantages and Disadvantages, Quora) and is true when using a
queue to process the multiple operations. (Dijkstras Algorithm, Wikipedia) However, its only flaw
is that it doesnt work with negative edges (Dijkstras Advantages and Disadvantages, Quora) meaning
that we are unable to make exceptions to the desired route after it has been
calculated.
Finally, we looked at the A* Algorithm is an extended form of best first algorithm in
finding the best possible path to get from one location to another within a grid
format storing the locations of nodes that the algorithm will search through. The
only drawback to using the A* Algorithm is its memory requirements in order to
function successfully, though it is very quick becomes slow over larger amounts of
nodes resulting in it becoming very impractical. Since our game is a static size of
nodes this issue isnt a bother. On top of this it doesnt have the same problem as
Dijkstras in the fact is unable to fail in cases where the edge is a negative value.
Overall, by comparison of the different types we came across through research A*
appeared to be the best one to meet our games requirements as we discussed from
previous sessions. This is due to how quick the search can find the correct path and
allows for updates easily to be incorporated into the algorithm and adjusts the path
accordingly.
References:
1. A* Algorithm, Wikipedia, 08/03/2016 https://en.wikipedia.org/wiki/A*_search_algorithm

2. Dijkstras Algorithm, Wikipedia, 08/03/2016 https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm


3. Introduction to A*, Red Blob Games, 08/03/2016 http://www.redblobgames.com/pathfinding/a-star/introduction.html
4. Breadth-First Search, Wikipedia, 08/03/2016 https://en.wikipedia.org/wiki/Breadth-first_search
5. Breadth-First Search, World of Computing, 08/03/2016 http://intelligence.worldofcomputing.net/ai-search/breadth-firstsearch.html#.Vt7mapyLSUk
6. Dijkstras Advantages and Disadvantages, Quora, 08/03/2016 https://www.quora.com/What-are-advantages-and-disadvantages-of-Dijkstrasalgorithm-in-data-structures
7. A* Advantages and Disadvantages, World of Computing, 08/03/2016 http://intelligence.worldofcomputing.net/ai-search/a-staralgorithm.html#.Vt8B-pyLSUk

You might also like