“This is a great algorithm,” says Eric Demain, a computer scientist at the Massachusetts Institute of Technology. “It’s very fast, simple, and easy to implement.”
To implement this step, you need to decide on a system (or data structure, in computer science jargon) for organizing your notes. It may sound like a trivial technical detail, but the time spent searching through notes every time an entry needs to be edited or deleted has a significant impact on the overall execution time of the algorithm. Possibly.
Dijkstra’s paper used a simple data structure that left room for improvement. Over the next few decades, researchers developed something better, affectionately known as the “heap,” where certain items were easier to find than others. These take advantage of the fact that Dijkstra’s algorithm only needs to remove the entries for the closest remaining vertices. “A heap is basically a data structure that allows you to do this very quickly,” said Vaclav Rojos, a researcher at the Institute of Computer Science, Artificial Intelligence and Technology (INSAIT) in Sofia, Bulgaria. .
In 1984, two computer scientists developed a clever heap design that allowed Dijkstra’s algorithm to reach a theoretical limit, or “lower bound,” on the time required to solve the single-source shortest path problem. did. In one particular sense, this version of Dijkstra’s algorithm is the best possible. This was the last word on the standard version of the issue for nearly 40 years. Things only changed when a few researchers took a closer look at what “best” meant.
best action
Researchers typically compare algorithms by studying how they perform in worst-case scenarios. Imagine the world’s most complex road network and add in some particularly complex traffic patterns. If you want to find the fastest route in such extreme situations, the 1984 version of Dijkstra’s algorithm has proven to be unbeatable.
But hopefully your city doesn’t have the worst street network in the world. So you might ask, “Is there an algorithm that is unbeatable on all road networks?” The first step to answering this question is to make the conservative assumption that each network has a worst-case traffic pattern. Next, we need to assume the worst possible weights so that the algorithm can find the fastest path through all possible graph layouts. Researchers call this condition “universal optimality.” A universally optimal algorithm for the simple problem of moving from one point to another on a graph could help overcome rush-hour traffic jams in every city in the world. there is.
(translate tag)quanta magazine