It also gives the right pace to the lecture. Teachers who blast through the content like it is the weather forecast abuse of their students, in my opinion.
>Why not use powerpoint presentations? The point of University is to teach students on how to think and learn new things by unfolding ideas from minimum information/requirements to complete and correct theorem. The best way to achieve this is to show the thought process behind theorems. If you will show students static pictures there will not be much innovation in the future because the art of deduction would be lost. But they will learn what is already known faster, in this regard you are correct.
The statement that naive bi-directional Dijkstra finds the path with the smallest number of edges is incorrect. In his example, if w(s,w) and w(w,t) were both 10 instead of 5, the algorithm would have found the correct path. One can also construct an example where it would find a path that is neither the shortest path in weights nor has the smallest number of edges.
+Michael Pevzner - Agreed. Also , another aspect he did not highlight about the termination condition - What if the upper path had a lot more than 4 nodes ( but it was the optimal path , maybe you could modify the weights to sum up < 10 ) ? How long would you need to wait for the front and the backward frontier to meet ?
+Michael Pevzner You are correct. If there is a path from s to t directly in one edge but with extremely high weight and the rest of the edges have low weights, the naive bi-directional Dijkstra will not return that path with only one edge. +malharjajoo It was not really examined in the lecture, but I think you can prove the correctness of the termination condition plus frontier check using proof by contradiction. (Assume that you have terminated and there exists a shortest path that cannot be found using the existing frontier, then show that it contradicts the premise that you have terminated.)
The bi-drectional djikstra was not clear. What if the upper path had more than 4 nodes ( but it was the optimal path , maybe you could modify the weights to sum up < 10 ) ? How long would you need to wait for the front and the backward frontier to meet ?
Thinking the same here. I think this is a problem. Maybe we should relax only one vertex for each alternation and every time we relax the first vertex in the min priority queue for the forward/backward direction?
If this is the case, then it is likely that two of the vertices in the upper path would be selected from either of the queues before the bottom vertex is selected. Actually I think it will be guaranteed. Remember, Djikstra is a shortest path algorithm, so it will not leave such a "gap" by selecting the bottom vertex.
Single source, single target; termination failure example is not mentioned when source are target somehow become split into two different sets of nodes: effectively a loss of adjacency, which beaks the path,, thus then when no nodes exists to be pulled for the forward and backward search.. real world problem.
43:54 Prof. asks to find an x which has minimum value of Df[x] + Db[x]. My question is how do we know that there is AN x which has some finite value for both Df[x] and Db[x]? For a u in forward frontier (which has a finite Df[u] ), how do we know that Db[u] is not infinity?
it could be except that it will be overkill, as one vertex will be enough to match in both queues, considering it will be the minimum as we are going greedy.
Man muss sich da weniger nodes betrachten. Stell dir vor, die Knoten sind Kreise auf der Erde, und benachbarte Knoten sind immer ein Meter entfernt. Du rammst einen Pfahl in den Startknoten, und machst einen Seil darum. Jedes Mal wenn du Dijkstra ausführst, ist das so wie als ob du den Seil um 1 Meter verlängerst. Da die Knoten die ein Meter entfernt sind, mehrere Knoten haben können, die 1 Meter entfernt sind, betrachtest du dir jedes Mal exponentiell mehr Knoten. Du hörst auf wenn das Seil den Endknoten berührt. Damit du nicht so viele Knoten anschauen musst, machst du das selbe auch beim Endknoten, wobei du bei jedem Schritt von Dijkstra alle Knoten betrachtest die zum Endknoten führen. Du hörst auf wenn die Seile sich berühren können. Gegen Ende ist die verwendete Seillänge bei beidem ungefähr gleich, aber die beiden Kreise sind zusammen kleiner als der eine große Kreis den du gemacht hättest wenn du nur beim Startknoten geblieben wärst. Translation: Question: Why is bidirectional search faster? Because you can do them in parallel? Answer: Imagine the start and ending points are the inner point of a circle, and with each application of Dijkstra you increase the radius by 1. With bidirectional search, though the overall length of the radius is probably even longer than had you done one directional search, the area covered is less than had you done one directional search. The area represents the amount of nodes visited that are "nearby". I used some kind of analogy (of ramming stuff into the ground and drawing a circle then) to make it more anecdotal but can't really be bothered for this small recap.
th-cam.com/play/PLtcAJ_IPSDBafyyyVo_DuNiNSn-KPfS7R.html jupp. Vielleicht verdeutlicht die Gegenüberstellung den Vorteil der jeweiligen bidirektionalen Ansätze. Man kann erkennen, dass der zu expandierende Raum kleiner ist, die Lösung somit schneller gefunden wird. Translation: I hope this comparison of various uni- and bidirectional algorithms shows the advantage of bidirectional. The searchspace is smaller, therefore the performance is better
Why not use powerpoint presentations? He can reuse the lecture notes in the next sessions. It's quite a time waster chalking on the board as well. It may significantly reduce the lecture time as well.
You shouldn't teach STEM from powerpoint, professors tend to go through the material faster than students can absorb the information. Taking the time to write helps slow the professor's rate of going through the info to a rate that someone who does not know it already can learn it.
04:27 Dijkstra single-source optimization
07:18 bi-directional search
12:25 bi-directional search: termination condition
15:50 bi-directional search: shortest-path (incorrect)
17:03 mistake fixed in 20:08
28:22 bi-directional search: shortest-path example (incorrect)
41:55 bi-directional search: shortest-path correction
46:14 goal-directed search
51:08 landmarks
Prof. Srini Devadas is awesome teacher ..
I think a lot of MIT professors like to write on the board because it's stimulating and helps them come up with new ideas...
It also gives the right pace to the lecture. Teachers who blast through the content like it is the weather forecast abuse of their students, in my opinion.
I dream of a day when I will answer a question and this professor will say "Exactly right."
Has it happened yet?
@@bro...5849 it happened to me multiple times and i seriously get goosebumps
@@neuron8186 Got multiple cushions? xD
maybe a question like what's your name?
I really appreciate his step by step approach to explaining the algorithm.
I can't believe I met this teacher in Cebu Philippines in a student conference organized by Accenture. Wish I had a selfie
I really like this teacher. It's very pleasant to listen to it.
flipping chalk! expert ;) 15:00
18:16 awesome robot dance
xDDDDD
LMAO
😂🤣🤣
It seems that bi-directional search is very useful in a very large graph and u can employ multiprocessing
28:25 example of bi-directional search termination condition with correctly constructing shortest path
>Why not use powerpoint presentations?
The point of University is to teach students on how to think and learn new things by unfolding ideas from minimum information/requirements to complete and correct theorem. The best way to achieve this is to show the thought process behind theorems. If you will show students static pictures there will not be much innovation in the future because the art of deduction would be lost. But they will learn what is already known faster, in this regard you are correct.
+Nikita Kovalyov I think it would be better if they used powerpoint to demonstrate obvious or trivial things and wrote what is necessary or inspiring.
Please don't come to MIT.
When watching someone writes on blackboard in 2017 I feel like watching a caveman writes on a stone wall. This is very outdated and boring.
If you get entertained by powerpoint animations then don't worry about it, you're not going to MIT anyways
Do I need to go to MIT to find a dude writing on blackboard in 2017 boring? MIT coming to me how bout that?
44:40 the professor corrected what he wrote. Actually there was no need for that correction
The statement that naive bi-directional Dijkstra finds the path with the smallest number of edges is incorrect. In his example, if w(s,w) and w(w,t) were both 10 instead of 5, the algorithm would have found the correct path. One can also construct an example where it would find a path that is neither the shortest path in weights nor has the smallest number of edges.
+Michael Pevzner - Agreed. Also , another aspect he did not highlight about the termination condition -
What if the upper path had a lot more than 4 nodes ( but it was the optimal
path , maybe you could modify the weights to sum up < 10 ) ?
How long would you need to wait for the front and the backward frontier
to meet ?
+Michael Pevzner You are correct. If there is a path from s to t directly in one edge but with extremely high weight and the rest of the edges have low weights, the naive bi-directional Dijkstra will not return that path with only one edge.
+malharjajoo It was not really examined in the lecture, but I think you can prove the correctness of the termination condition plus frontier check using proof by contradiction. (Assume that you have terminated and there exists a shortest path that cannot be found using the existing frontier, then show that it contradicts the premise that you have terminated.)
My personal goal in life is to go to MIT to get hit in the head with a cushion.
Every mathematician should use a chalkboard. No better medium for brain-storming.
Great lecturer! Clear expositions, witty style.
The bi-drectional djikstra was not clear.
What if the upper path had more than 4 nodes ( but it was the optimal path , maybe you could modify the weights to sum up < 10 ) ?
How long would you need to wait for the front and the backward frontier to meet ?
Thinking the same here. I think this is a problem. Maybe we should relax only one vertex for each alternation and every time we relax the first vertex in the min priority queue for the forward/backward direction?
If this is the case, then it is likely that two of the vertices in the upper path would be selected from either of the queues before the bottom vertex is selected. Actually I think it will be guaranteed. Remember, Djikstra is a shortest path algorithm, so it will not leave such a "gap" by selecting the bottom vertex.
Seems that the idea of frontiers meeting at the shortest edges path is incorrect though. If the top edge was off weight 1, they wouldn’t meet on w
21:54 Pib[V2] = t
38:16 df[s] = 10 should be db[s] = 10
Single source, single target; termination failure example is not mentioned when source are target somehow become split into two different sets of nodes: effectively a loss of adjacency, which beaks the path,, thus then when no nodes exists to be pulled for the forward and backward search.. real world problem.
Is Fibonacci heap included in this Lecture ??
There was a small part in the dijkstra lecture but it was only regarding complexity
He talks in statements.
What thing they give to students for correct answers?
Cushions
thanks this is so clear and patient ..
43:54
Prof. asks to find an x which has minimum value of Df[x] + Db[x].
My question is how do we know that there is AN x which has some finite value for both Df[x] and Db[x]?
For a u in forward frontier (which has a finite Df[u] ), how do we know that Db[u] is not infinity?
If it was infinity the the path won't be detected by the algorithm, so won't be considered
@@khd1451 Thanks
termination condition can be if the priority ques have same frontier
it could be except that it will be overkill, as one vertex will be enough to match in both queues, considering it will be the minimum as we are going greedy.
Was soll jetzt an bidirektionaler Suche schneller sein? Etwa weil man mit 2 Task arbeiten kann?
Man muss sich da weniger nodes betrachten. Stell dir vor, die Knoten sind Kreise auf der Erde, und benachbarte Knoten sind immer ein Meter entfernt. Du rammst einen Pfahl in den Startknoten, und machst einen Seil darum. Jedes Mal wenn du Dijkstra ausführst, ist das so wie als ob du den Seil um 1 Meter verlängerst. Da die Knoten die ein Meter entfernt sind, mehrere Knoten haben können, die 1 Meter entfernt sind, betrachtest du dir jedes Mal exponentiell mehr Knoten. Du hörst auf wenn das Seil den Endknoten berührt.
Damit du nicht so viele Knoten anschauen musst, machst du das selbe auch beim Endknoten, wobei du bei jedem Schritt von Dijkstra alle Knoten betrachtest die zum Endknoten führen.
Du hörst auf wenn die Seile sich berühren können. Gegen Ende ist die verwendete Seillänge bei beidem ungefähr gleich, aber die beiden Kreise sind zusammen kleiner als der eine große Kreis den du gemacht hättest wenn du nur beim Startknoten geblieben wärst.
Translation:
Question: Why is bidirectional search faster? Because you can do them in parallel?
Answer: Imagine the start and ending points are the inner point of a circle, and with each application of Dijkstra you increase the radius by 1. With bidirectional search, though the overall length of the radius is probably even longer than had you done one directional search, the area covered is less than had you done one directional search. The area represents the amount of nodes visited that are "nearby". I used some kind of analogy (of ramming stuff into the ground and drawing a circle then) to make it more anecdotal but can't really be bothered for this small recap.
@@zeronothinghere9334 sehr einleuchtende Erklärung!
th-cam.com/play/PLtcAJ_IPSDBafyyyVo_DuNiNSn-KPfS7R.html
jupp. Vielleicht verdeutlicht die Gegenüberstellung den Vorteil der jeweiligen bidirektionalen Ansätze. Man kann erkennen, dass der zu expandierende Raum kleiner ist, die Lösung somit schneller gefunden wird.
Translation: I hope this comparison of various uni- and bidirectional algorithms shows the advantage of bidirectional. The searchspace is smaller, therefore the performance is better
Thankyou.
maybe start with an example dose better.
That's my ass over here
😂🤣
Is there anyone ? 🤓 3:38
28:50 lol
lol
lol
24:2
Why not use powerpoint presentations? He can reuse the lecture notes in the next sessions. It's quite a time waster chalking on the board as well. It may significantly reduce the lecture time as well.
You shouldn't teach STEM from powerpoint, professors tend to go through the material faster than students can absorb the information. Taking the time to write helps slow the professor's rate of going through the info to a rate that someone who does not know it already can learn it.