This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The approaches addressing the indoor movement are Constrained Mobility Model and Tactical Indoor Mobility Model. 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  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 . 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 . 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* Algorithm 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* Algorithm improves upon the behavior of Dijkstra's algorithm using the heuristic value [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* Algorithm 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, generally it is not possible to compute the true distance using a heuristic function [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* Algorithm, gradient descent algorithm is applied over the path generated as explained in section xxxxx.
2.3 Tracking-Prediction Algorithms
It is a common practice to model a practical system with mathematical equations. The system could either be linear or non-linear, depending upon the relationship between input and output. The linear system is the system for the relationship between input and output is linear [x25] i.e. if y1(t) is response for input x1(y) , and y2(t) is response for input x2(y), then scaled and summed input produces scaled and summed output i.e. ax1(y) + bx2(y) = ay1(t) + by2(t). A non-linear system is a system whose output is not directly proportional to the input i.e. the system that does not satisfy the superposition principle.
In the theory of stochastic processes [x22] ( stochastic process or random process is a concept of probability theory and refers to collection of random variables, where random variables are variable whose value changes with each experiment outcome), the filtering problem is a mathematical model for a number of filtering problems in the field of signal processing. The general idea of filtering is to form some sort of 'best estimate' for the accurate value of a system, given some observation and potential noise of that system [x23].
In general the filters can be described as time-invariant filters and adaptive filters. The time-invariant filters are filters for which the internal parameters and the structure of the filter are fixed. Time invariance [x25] means that output of the system is identical except for a time delay of the T seconds, given the input is same for each T seconds delay. For example, if y(t) is the system output due to x(t) input, then the output for the input x(t-T) will be y(t-T), where T is the delay in input. Hence, the output is independent of the particular time the input is applied. Adaptive filters are required when either the specifications cannot be satisfied by time-invariant filter or the fixed specifications are not known. In order to meet a performance requirement, the adaptive filters continually changing their parameters [x24].
Systems are often modeled as linear since it makes the design and analysis tasks mathematically tractable. If the system is either inherently linear or the degree of nonlinearity is negligible, the behavior of the system is as expected. Otherwise, there could be significant deviation from expected behavior and the performance of the system could degrade severely. In such cases, it is essential to apply nonlinear methods that properly characterize the system behavior. As the system being modeled for our purpose closely resemble a linear system, we will adapt a linear filter for mathematical solution for the practical system. For the non-linear systems, we will explore Particle filters.
As mentioned a filter is linear if the output is a linear function of the input. Filters are designed by optimizing the filter coefficients according to some criterion. Frequently used optimization criterion, minimum mean-squared error (MMSE) optimizes the filter to minimize the mean-square value of the error signal, which is defined as the difference between the desired filter output and the actual filter output. Other commonly used criteria are bounded error, minimum absolute error, etc. Wiener filter is the optimum linear MMSE solution to the stationary or time-invariant environment filtering. Weiner filter assumes the knowledge of certain statistical parameters. In reality these parameters could be unknown. To overcome the limitation of Weiner filter, an adaptive filter is used that recursively estimates the filter coefficients according to some chosen algorithm. Ideally, the algorithm, converges to the optimum solution after a sufficient number of iterations. The adaptive filter helps to track the statistics of the input data or the dynamics of a system in a non-stationary or time-varying environment. The most commonly and widely used linear adaptive filter for time-invariant systems are; Least-mean-square (LMS), recursive least-squares (RLS), adaptive IIR filters, Kalman filter (KF) and their numerous variants. These filtering techniques have been extensively applied to problems like target tracking, prediction and estimation of time-varying phenomena, noise suppression, echo cancellation, etc.