The Mobility Models Are Used To Represent Computer Science Essay

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

The approaches addressing the indoor movement are Constrained Mobility Model (CM) [x7] and Tactical Indoor Mobility Model (TIMM) [x4]. In CM, the nodes move along edges of a graph representing valid paths inside the building and vertices represent the possible destinations. The movement is accompanied by transversing the edges which constitutes shortest path, resulting in movement through hallways and doors [X7]. The TIMM model uses graph based approach similar to CM. Representing building as a graph, where each room and door or passageway corresponds to a vertex. Edges are formed by connecting the vertices with a straight line [x4]. The 3-D mobility model proposed by Kim, assume boundary conditions and vertical motion through elevators for indoor mobility model [x8]. All these models does not fit to the indoor floor simulation, as it does not account for movements within a room or a hall and is constrained by the floor plan, passageway and doors.

In random based mobility models, the nodes moves around randomly, more specifically the destination, speed and direction are all chosen randomly [x3]. Models like Random-Waypoint-Mobility-Model and Gauss-Markov-Mobility-Model are mainly used for random mobility model [x4] but RWP model, because of its simplicity and ease of use is more frequently incorporated for simulations. In RWP model, each node randomly selects a waypoint, and moves towards that waypoint( Waypoint is a reference point in physical space [x5]) with a constant speed chosen randomly from (0; Vmaximum], where Vmaximum is the maximum allowable speed for the node. Once the mobile node reaches that waypoint, it becomes stationary for a predefined pause time. After the pause interval, it selects another random waypoint within the simulation region(predefined area) and moves towards it. The whole process continuously repeated until the end of the simulation [x6].

It have been studied by biologists, that animals including birds and sharks abandon Brownian motion, the random motion seen in swirling gas molecules [x9] for Levy flights in search of food. A flight is defined to be a longest straight line trip from one location to another that a particle makes without a directional change or pause [x10]. Such a mobility model have been called as Levy Walks. Injong (2011) [x11], showed that human walks at outdoor settings contain statistically similar features as Levy walks including heavy-tail flight and pause-time distributions. Still Levy walks cannot be used for the simulation, as our simulation scenario is confined to a 20x20 ft indoor empty room or an empty hall.

For the simulation of human walking on a floor of size 20x20 ft, we modify the Random-Waypoint-Mobility-Model to generate three different simulation models for our purpose. To the best of our knowledge, there is no existing realistic mobility model for human walking on an empty floor or a room.

2.3 Pathfinding Algorithms

Pathfinding refers to the plotting of the shortest route between two points, with the help of computer application. Generally the pathfinding algorithm is used with an intent of finding the shortest path or route. The route is generated by searching the graph from a node and exploring neighboring nodes until the destination node is reached. The primary purpose of using pathfinding is to find the a path between two nodes and also to generate optimal shortest path in a graph [x12]. Several Algorithms have been proposed and written to answer the problem of pathfinding. For example Depth First Search algorithm, Breadth First Search algorithm, Iterative Deepening algorithm, Best First Search Algorithm, Dijkstra’s Algorithm and A-Star(A*) Algorithm.

The Depth First Search(DFS) algorithm progresses the search tree by expanding the first child node and diving deeper and deeper until a destination node is found, or until no node remain to transverse. Thereafter it backtracks, returning to the most recent node which haven't been explored completely [x13]. Eventually the algorithm transverse the entire graph. Similar to DFS, the Breadth First Search algorithm is an exhaustive search algorithm. Breadth First Search algorithm iterates the graph in levels. starting at a given vertex, considered to be at level 0, the system visits all vertices at level 1. Once level 1 is searched, vertices of level 2 are iterated. The level 2 vertices are adjacent to level 1 vertex, and so on. The search terminates once all the vertices at all the levels are transverse. The BFS algorithm returns shortest path but at a poor time performance as it needs lot of memory for queue [x14]. Both DFS and BFS [12][14][15][16] can be used to determine a path between two nodes using exhaustive search, but might not be able to determine the shortest optimal path. The time complexity and space complexity for DFS is O(b+n) and O(b*n), similarly BFS time complexity and space complexity is O(b^d) and O(b^d).

Iterative Deepening algorithm(IDD) repeatedly runs the depth-limited search, increasing the depth limit with each iteration until the depth of the graph is reached. IDD is similar to breath first search algorithm, but with much less memory utilization making it more responsive [14]. IDD has time complexity and space complexity as O(b^n) and O(1) respectively.

Although Breadth First Search algorithm and Iterative Deepening algorithm finds the path, given enough time, other algorithms tends to generate a shortest optimal path with less processing time. In general, a person walks in the direction of the destination and deviate at a minimum only to avoid obstacles [12]. Hence, we avoid using the Breadth First Search and Depth First Search and Iterative Deepening algorithms for the simulation purpose to determine the shortest path.

Best first search algorithm uses heuristics to rank the nodes based on the estimated cost from that node to the goal. "Heuristic" can be defined as a useful guide for problem solving. It refers to a set of problem-solving rules that does not guarantee a solution. The algorithm maintains an OPEN list and CLOSED list, the OPEN list is used to maintain list of candidates nodes yet to be visited, and the CLOSED list is used to maintain list of visited candidate nodes. The OPEN list maintains all unvisited successor nodes for each visited node i.e. the algorithm is not restricted to only neighbors, but also select the best of unvisited nodes. It is this property which distinguished best first algorithm from depth first algorithm and breadth first algorithm [x19][x20]. The best first search may provide fast solutions but it may not be a optimized solution, because the heuristics functions might not be very accurate.

Dijkstra’s Algorithm and A-Star(A*) Algorithm are classical algorithms for path finding and many variations of each have been proposed [x17]. Dijkstra’s Algorithm, for a given (starting) vertex, can be used to find the shortest path from the starting vertex to all other vertices in the graph or from starting vertex to the destination vertex. The algorithm is similar to Breadth first search algorithm but consider weights to be assigned to the edges, where in BFS, each edge is assumed to have a standard weight of 1. The basic process of Dijkstra’s Algorithm is to assign each node(vertex) a distance value, initially the value is zero for initial node and infinity for rest of the nodes [x21].

In Dijkstra’s Algorithm, the current node neighbors are examined and their distance D from the starting node through current node is calculated i.e. distance D is equal to sum of distance of current node to the initial node and distance of current node to the neighbor node. The newly calculated distance value replaces previously calculated distance value for that node if the new distance D is less than the previously calculated distance value. Once all the neighbors of the current node are examined, the current node is marked as visited and will not be examined again. The neighbor node with the new lowest distance value is marked as the new current node and the process repeats until the target is marked as visited or all nodes are marked as visited without the target being found. Once the target is marked as visited, trace the path from the destination to the starting node [x21]. Dijkstra’s Algorithm has time complexity of O(b^d) space complexity of O(b^d) [x14].

A good variation of Dijkstra’s Algorithm is A-Star(A*) Algorithm. A* assigns a weight to each node which is equal to the sum of weight of the edge to current node and the approximate distance between current node and the target node. The approximate distance is establish by heuristic, and represents a minimum possible distance between current node and the target node. A* uses this heuristic value to improve on the behavior relative to Dijkstra's algorithm [x12].

For each node being examined A* Algorithm maintains three values: f(x), g(x), and h(x). f(x) is the sum of g(x) and h(x), where g(x) is the distance from the initial node to the node currently being examined through all previous nodes traversed to get to that point and h(x) is an heuristic distance from the current node to the target node. This heuristic can be calculated in several ways, and for the purpose of simulation we used Manhattan distance. Manhattan distance is simple to calculate and is described as the distance between the two points along the x-axis plus the distance between the two points along the y-axis. To calculate Manhattan distance, subtract the target node's x-value from current node's x-value and take its absolute value. Add this to the absolute value of the difference of target node's y-value and current node's y-value. Calculation of heuristic is based upon Manhattan distance, based upon the assumption that mostly, the distance from the current node to the target node deviate from a straight line, as it passes through more than one node, and therefore a horizontal displacement-plus-vertical displacement formula is likely to result in value closer to the actual distance that will be traveled than an estimate using plain Euclidean distance [x21].

A* Algorithm also maintains an OPEN LIST and an CLOSED LSIT, which is a list of all unvisited nodes, and list of all visited nodes respectively. As the start of search, all nodes are in the OPEN LIST, with starting node marked as current node. The values of g(x), h(x), and f(x) are calculated for each of its neighbors. If the latest f(x) value of a node being examined is less than the earlier f(x) value for that node, the new f-value is replace by the old f-value. Thereon, the current node is moved from the OPEN LIST to the CLOSED LSIT, the neighbor node with the lowest f(x) value is marked as the new current node. The search process repeats until the target is added to the CLOSED LSIT, or there are no more nodes on the OPEN LIST [x21].

As already mentioned, A* Algorithm is equivalent to Dijkstra's Algorithm if the heuristic for A* evaluates to zero. The heuristic value plays an important role in A* algorithm. As the heuristic approximation gets closer to the true distance, A* Algorithm examines fewer nodes, resulting in faster generated optimal paths. A* Algorithm examines the fewest nodes (hence fastest) when the heuristic approximation is exactly equal to the true distance, however, it is not practical to write a heuristic function that always computes the true distance [x12]. A-Star algorithm return pathway is not smooth which time complexity = O(b*d) and space complexity = O(b*d) [x14]. As the simulation graph is 20x20 matrix (for calculating the path using pathfinding), we rely on heuristic and calculate the path using A-star algorithm. To smooth the path returned by A*, gradient descent algorithm is applied over the path generated as explained in section xxxxx.



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now