Modeling and Simulation by Hans-Joachim Bungartz Stefan Zimmer Martin Buchholz & Dirk Pflüger
Author:Hans-Joachim Bungartz, Stefan Zimmer, Martin Buchholz & Dirk Pflüger
Language: eng
Format: epub
Publisher: Springer Berlin Heidelberg, Berlin, Heidelberg
Route Planning
The selection of the route can occur statically or ad hoc. To statically compute a route before departure and only update the route for unforeseen events such as big traffic jams or road blocks is a typical procedure that is simpler than making a new ad-hoc decision at every intersection. The goal for most traffic participants is to use the fastest route or, increasingly the case, the shortest route in order to minimize gas costs. Algorithms used to calculate the route are easily extended to include additional criteria, typically concerns such as the avoidance of toll roads.
Most likely the best known algorithm to search for a shortest path from a start vertex s to an end vertex z using edge-weighted graphs is the Dijkstra algorithm (after Edsger Dijkstra, 1930–2002). The prerequisites requiring a connected graph with nonnegative edge weights are satisfied for the traffic graph (lengths of roads should never be negtive!). The algorithm is based on the idea that starting at vertex s, proceed next to the vertex who has the smallest total weight and continue repeatedly until we reach the end vertex z. The weight g(a) of a vertex a is, for example, the length of the shortest known path from s to a in the traffic graph.
Somewhat more formally, we define three vertex sets: The set of vertices B that have already been visited, the set of boundary vertices R which contains all vertices that can be reached from the visited vertices within one step (via an edge), and the remaining set of the unknown vertices U (all others). For every vertex a considered, we store in pred(a) the information describing the vertex that was used to reach a and the total length of the shortest known route from the beginning vertex, i.e., g(a).
Algorithm 8.3 (Dijkstra).
To initialize, we set B = ∅, R = { s}, U = V ∖ R and g(s) = 0. Logically, the start vertex has no predecessor. Repeat: 1.Remove vertex a (active vertex) from set R having smallest total weight. If it is the end vertex z, then we are done. Otherwise, add it to set B.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8309)
Test-Driven Development with Java by Alan Mellor(6776)
Data Augmentation with Python by Duc Haba(6691)
Principles of Data Fabric by Sonia Mezzetta(6437)
Learn Blender Simulations the Right Way by Stephen Pearson(6337)
Microservices with Spring Boot 3 and Spring Cloud by Magnus Larsson(6211)
Hadoop in Practice by Alex Holmes(5965)
Jquery UI in Action : Master the concepts Of Jquery UI: A Step By Step Approach by ANMOL GOYAL(5813)
RPA Solution Architect's Handbook by Sachin Sahgal(5608)
Big Data Analysis with Python by Ivan Marin(5388)
The Infinite Retina by Robert Scoble Irena Cronin(5300)
Life 3.0: Being Human in the Age of Artificial Intelligence by Tegmark Max(5155)
Pretrain Vision and Large Language Models in Python by Emily Webber(4353)
Infrastructure as Code for Beginners by Russ McKendrick(4117)
Functional Programming in JavaScript by Mantyla Dan(4042)
The Age of Surveillance Capitalism by Shoshana Zuboff(3961)
WordPress Plugin Development Cookbook by Yannick Lefebvre(3833)
Embracing Microservices Design by Ovais Mehboob Ahmed Khan Nabil Siddiqui and Timothy Oleson(3633)
Applied Machine Learning for Healthcare and Life Sciences Using AWS by Ujjwal Ratan(3606)
