This software was made for a course project. We were given the task to develop a program which interactively visualizes Dijkstra’s algorithm for beginners. We were not supposed to focus on rigorous teaching of the algorithm. First of all, the program should be appealing to people without prior knowledge of computer science. It should keep their attention and convey the message that computers actually make our daily live easier (at least in some regards) by putting Dijkstra’s algorithm into context.
Some of the technical requirements were to provide a graph editor with additional random graph generation and the possibility to save and load graphs. The user should have the possibility to step through the algorithm (forward and backward). Each step the progress made by the algorithm should be reflected by coloring the graph and presenting detail information (on demand).
Subscribe

Thanks a bunch for this. It is a really useful program!
Thank you! That was a great illustration..! Very nice indeed!
I couldn’t find a good explanation of this algorithm, but with your program, I was able to make sense of Wikipedia’s. Thanks.
thx
Amazing, perfect work! Thanks!
Nice work. One quick comment … in the “where is it used” section it mentions that Dijkstra’s algorithm isn’t used in this form for Google Maps. A bit more information would be helpful then because it begs the question of what algorithm is being used in Google Maps and similar. It kind of seems like the “where is it used” question gets left unanswered but we get a bit of an idea of how it could be used …
I get your point, this could have been explained more clearly.
I don’t know the details about the algorithm(s) used in Google Maps. But you can get more information by reading this informative Google blog post and their publications on the subject.
Another real-world application of Dijkstra’s algorithm is the Open Shortest Path First-protocol used for routing in IP-networks.
Uwe
Hello,
…and many thanks for the nice program:), but,
please, make New York map ‘visible’, so anyone can understand how to edit the XML file (which one? I’m still experimenting with all 4’s I have) just changing the background attribute(?) or the CSS file(?)…
Have nice days and, if you wish, thanks in advance for you reply.
Nanni Manca
Hi Nanni,
I assume you want to change the graph background of a saved graph. You don’t need to edit any of the XML files in order to do that; and there are no CSS files involved whatsoever.
From the included documentation.pdf, section 3.5: “Adding a graph background is as simple as unzipping with a standard archive program, adding a PNG background image and zipping all files again.”
Let’s have a look at the New York example graph:
$ unzip -l nyc.zip Archive: nyc.zip Length Date Time Name -------- ---- ---- ---- 27173 03-30-08 23:08 NodesAndConnections.xml 26949 03-30-08 23:08 NodeLocations.xml 4162 03-30-08 23:08 IntermediateNodes.xml 13 03-30-08 23:08 StartNode.xml 1094 03-30-08 23:08 NodeNames.xml 255607 03-30-08 23:08 GraphBackground.png -------- ------- 314998 6 filesYou just need to add a PNG image file to the archive, the image’s name doesn’t matter.
Uwe
Hey, this app is pretty good!
actually helped me alot to understand this algorithm!
good work!
Thanks!! a trillion, developers.
Its a great job. its very useful to me…
Very very useful
Really, really helpful and efficient way to learn the algorithm.
HI your program is great!!
I was wondering how you organised all the data about the nodes and edges i.e the position of the nodes and weight of the edges.
How did you structure your database.
Please your reply is very important.
Hi Akshay,
if you haven’t done so please read the included documentation to get a high level overview of the code.
The interfaces for the graph, nodes and edges are in package org.uweschmidt.dijkstravis.graph, with implementations in package org.uweschmidt.dijkstravis.graph.jung.
The positions of the nodes are managed by the JUNG2 graph library (see JavaDoc). The edge weights are automatically set to the euclidean distance (see org.uweschmidt.dijkstravis.gui.jung.transformer.MyEdgeLabelTransformer).
I hope that helps and sorry for the late reply,
Uwe
Vielen Dank.
Hi,
Download broken. Du bist bei Wikipedia verlinkt, da kommt das nicht so gut
.
Radi
Thanks for letting me know, it’s fixed now.
Uwe
Thank you so much, helped me a lot for my studies. Max, Dortmund, Germany
Amazing job!
My question is that how can I change the background with a map (.png) ?
I tried it with changing the png file in New york example , but an error appeared .
(I tried putting it with the same name as the original file , but it didn’t work).
THANKS A LOT !
Hi Mani,
what kind of error does appear? Please have a look at this previous comment where I explained how to change the background.
Sorry for the late reply.
Thanks Uwe , for replying
I followed the instruction :
1-I saved a png file in “ny” file (tried with same name as the original one)
2-I zipped it again and opened it from dijkstraVis
And same error every time .
but all the times this error appears : “Error loading file”
Hi Mani, please send me the files and I’ll have a look at it.
hi
i want me to alghoritm dijkstra routing in to network on chip
what should work to alghoritm dijkstra in to routing?
Sehr schönes Tool, dass die komplexen Schritte des Djikstra-Algorithmus visualisiert. Das sollte mir für die Klausur nächste Woche helfen!
بسیار عالی بود. ممنون
your program helped me many to understand dikestra algorithm
i know that you have very thought arrounding of this program and very tried
EXCUSE ME , i am iranian and my english language is weak
so
really i don’t know how thank you only i can say that you are an expert man;
i enjoyed; you have creatted this program and my god means “ALLAH” creatted all of us and world and brain and men & women and creatted thinking power in human also; any time don’t forget god because all of time “ALLAH” help’s us ….
Realy nice man. Thanks