You know what I like about the MIT lectures? They tell you the application/use case of what you're being taught. That makes a huge difference for beginners who have no way of visualizing these abstract concepts. Many people who get discouraged with stuff like this aren't able to relate with the content and feel like it's something crazy out there. It's the simple things.
@manavarora76444 жыл бұрын
I could not agree more with this. The biggest difference that I spotted along the lecture
@dominic81473 жыл бұрын
That's not the case for junior or senior level MIT OCW courses. The same professor teaches an advanced data structures course on KZbin and those are so academic and abtruse that he doesn't write code and only sometimes gives applications. Like his succinct binary trees data structure video. He gives one use (the Oxford English dictionary), but besides that he just explains its math.
@R14-m4z3 жыл бұрын
The secret is that some of the professors actually don't KNOW why they are teaching what they are teaching. Professors aren't always allowed to just "profess" what they know these days. This is the grand illusion of academia, many who know what's going on, don't teach. Many who teach would simply prefer to waste their time in a laboratory doing research work.
@shohanur_rifat2 жыл бұрын
Right you are my friend.
@missriri-if9yl Жыл бұрын
u so real
@thepeopleofblore8 жыл бұрын
20:57: Representation of graphs 31:10: BFS
@cheemtu23758 жыл бұрын
thanks man
@balkan9178 жыл бұрын
why would you wanna skip? this guys chit chat is excellent, I can listen to it all day :)
@eric39707 жыл бұрын
it helps me save up some time thx
@devinjackson64377 жыл бұрын
thanks so much
@sunelkora95036 жыл бұрын
BF
@sergeykholkhunov18883 жыл бұрын
00:40 graph search 02:00 recall graph 05:20 applications of graph search 10:30 pocket cube 2x2x2 example 20:25 graph representations 20:40 adjacency lists 26:00 implicit representation of graph 29:05 space complexity for adj list 31:05 breadth-first search 34:05 BFS pseudo-code 36:58 BFS example 43:27 shortest path 48:35 running time of BFS
@solwex Жыл бұрын
Hey there! There are some other videos in this course playlist that explain the terms used in this one. - represent graph in Python: kzbin.info/www/bejne/a3vbhJt6j8SsotE - adjacency list in Python: kzbin.info/www/bejne/eWa2gaaPbJeSea8 - examples of theta, O, omega: kzbin.info/www/bejne/hmjJo5Z4lJKaatk - what is hashing: kzbin.info/www/bejne/Zn7CnHynndyVfNE - python implementation of iterator: kzbin.info/www/bejne/Y3XaeKWAba-resU
@tanweermahdihasan41193 жыл бұрын
Can we just take a moment to appreciate how brilliantly the camera work accompanied this already perfect lecture!
@chanpol3218 жыл бұрын
Breadth-first search (BFS) is an algorithm for traversing or searching tree or graph data structures. It starts at the tree root (or some arbitrary node of a graph, sometimes referred to as a 'search key'[1]) and explores the neighbor nodes first, before moving to the next level neighbors. BFS was invented in the late 1950s by E. F. Moore, who used it to find the shortest path out of a maze,[2] and discovered independently by C. Y. Lee as a wire routing algorithm (published 1961).[3][4]
@jessielucky55306 жыл бұрын
Super genus guy! From Wikipedia Demaine was born in Halifax, Nova Scotia, to artist sculptor Martin L. Demaine and Judy Anderson. From the age of 7, he was identified as a child prodigy and spent time traveling across North America with his father.[1] He was home-schooled during that time span until entering university at the age of 12.[2][3] Demaine completed his bachelor's degree at 14 years old at Dalhousie University in Canada, and completed his PhD at the University of Waterloo by the time he was 20 years old.[4][5]
@tianna3082 жыл бұрын
omg can't believe I graduated from the same university as him.
@farhan7875 жыл бұрын
"There are more configurations in a 7*7*7 cube than the number of particles in the known universe" 27:35 - Erik Demaine (2011)
@wetbadger21743 жыл бұрын
So how does anyone solve it?
@sukhmandersingh43063 жыл бұрын
@@wetbadger2174 by not trying all possible combinations/permutations but trying only the ones that make sense.
@rikampalkar2 жыл бұрын
One of THE best explanation of BFS, I’ve came across. It’s something about the way he explains. Brilliant.
@NewtonCazzaro8 жыл бұрын
This is amazing, I am a student of Algorithms at the University of Nevada, Las Vegas. I really appreciate this class, thank you so much for the KZbin videos MIT!!!!
@awful9999 ай бұрын
damn that’s crazy i’m studying cs there right now, im taking algorithms at the moment
@seansmith16858 жыл бұрын
I think Erik's lectures are very good
@RobinLinus10 жыл бұрын
Totally appreciate you mentioning the diameter O(n^2/log n) of n x n x n rubic's cube!!!
@99DaNtEmAN2310 жыл бұрын
This guy's lectures really puts the Computer Science lectures at UofT to shame. But then again he is a prodigy, still doesn't justify why we get grad-students as "profs" though. Just my 2 cents
@lolpe10007 жыл бұрын
Well in the UoC, our prof doesn't even go into much depth... The guy in this video is amazing.
@bharasiva967 жыл бұрын
They go "Breadth-First" I suppose.
@raymondlion3145 жыл бұрын
At UIUC, we were taught such stuff in C++ :(
@sahilvelhal14355 жыл бұрын
MIT teachers make student love the subject they teach :)
@jirokaze63804 жыл бұрын
His friendly tone makes the revising process so much easier!
@siddhantjain95967 жыл бұрын
My god! His t-shirt also has a graph!! Brilliant!
@amanarora4766 жыл бұрын
Yup, and that too a complete graph.
@satyakighosh42266 жыл бұрын
bros before hoes
@7th_CAV_Trooper3 жыл бұрын
When I was a kid I used a screw driver to pry the Rubics cube apart and put it back together solved. That's when my parents knew I would be an engineer and not a mathematician.
@2864325312 жыл бұрын
Much better than the newer version. Glad I come back and watch this.
@IamFilter948 жыл бұрын
Scissors cuts Paper Paper covers Rock Rock crushes Lizard Lizard poisons Spock Spock smashes Scissors Scissors decapitates Lizard Lizard eats Paper Paper disproves Spock Spock vaporizes Rock (and as it always has) Rock crushes Scissors
@bobbob36306 жыл бұрын
no
@intellagent76226 жыл бұрын
LMFAO
@nandkishorenangre82446 жыл бұрын
BBT ha
@wip7275 жыл бұрын
I am sorry, can you repeat that?
@shalindeval87464 жыл бұрын
His T-Shirt lol
@andreportaro4 жыл бұрын
42:40 Just want to applaud at an amazing explanation and demo 👏
@sujivson10 жыл бұрын
May be the camera person should consider finding a balance between landscape and portrait shooting, instead of taking the actions in portrait always. It gets difficult to see the contents in the board with the staff, since the focus is set to one "focussed" part of the black board. This is just my thought. btw MIT rocks!
@MaicahRu9 жыл бұрын
Sujivson Titus True, a little frustrating when he's pointing at something but it's off the screen, or you're reading through something but part of it is cut off
@chanpol3218 жыл бұрын
Time and space complexity[edit] The time complexity can be expressed as O ( | V | + | E | ) {\displaystyle O(|V|+|E|)} ,[5] since every vertex and every edge will be explored in the worst case. | V | {\displaystyle |V|} is the number of vertices and | E | {\displaystyle |E|} is the number of edges in the graph. Note that O ( | E | ) {\displaystyle O(|E|)} may vary between O ( 1 ) {\displaystyle O(1)} and O ( | V | 2 ) {\displaystyle O(|V|^{2})} , depending on how sparse the input graph is. When the number of vertices in the graph is known ahead of time, and additional data structures are used to determine which vertices have already been added to the queue, the space complexity can be expressed as O ( | V | ) {\displaystyle O(|V|)} , where | V | {\displaystyle |V|} is the cardinality of the set of vertices (as said before). If the graph is represented by an adjacency list it occupies Θ ( | V | + | E | ) {\displaystyle \Theta (|V|+|E|)} [6] space in memory, while an adjacency matrix representation occupies Θ ( | V
@devyashsanghai5858 жыл бұрын
Love the way he is wearing a t-shirt with 5 vertices and and 5 directed edges. Whcih would require a space complexity of O(10) to be stored.
@m.yousafjaved60397 жыл бұрын
undirected ?
@naviseven56977 жыл бұрын
It's a reference from a rock paper scissors game from the big bang theory, so it is directed.
@le0nz3 жыл бұрын
So 0(1)
@janmadle42438 жыл бұрын
This lecture was really "Breadth"-takíng :-D ty Erik
@danielday31628 жыл бұрын
oh my.
@janmadle42438 жыл бұрын
oh you
@umashnkaryadav47196 жыл бұрын
SD ex cc
@aravindvarier18655 жыл бұрын
You are breadth-taking.
@zoltannemeth88645 жыл бұрын
Personally, I prefer a less “edgy” pun, with greater “depth”. (Haha!, graph humor!)
@seansmith16858 жыл бұрын
"There are more configurations in this cube than there are particles in the known universe. Yeah. I just calculated that in my head, haha" - Erik
@48_subhambanerjee227 ай бұрын
Ayo.... ☠️ MIT FOR A REASON... Such in depth lecture 😁
@vivekmittal2294 жыл бұрын
I really like the sound of the chalk.
@kordaler Жыл бұрын
Here are points in other videos in this course's playlist that explain terms used in this video: - represent graph in Python: watch?v=5JxShDZ_ylo&t=1709s - adjacency list in Python: watch?v=C5SPsY72_CM&t=189s - examples of theta, O, omega: watch?v=P7frcB_-g4w&t=130 - what is hashing: watch?v=0M_kIqhwbFo&t=22 - python implementation of iterator: watch?v=-DwGrJ8JxDc&t=978 I found this useful. Hope some of you find it useful as well. If you find more terms for which I can add pointers, let me know. If a few people think that this is useful, I can add this information for a few more videos. If you are looking for this info in any specific videos, let me know. If I have made these notes for those videos, I will add. Cheers!
@solwex Жыл бұрын
Very useful. Would be more convenient if the link was properly given.
@rohitsurana92818 жыл бұрын
Thanks MIT and Eric.Best teaching that too for free.
@shreyakjain96925 жыл бұрын
Thank you MIT for providing these lectures. These are very helpful.
@vedient5 жыл бұрын
Lectures like this make me feel how lucky MIT students are !!!
@hortsss4 жыл бұрын
@@SimonWoodburyForget but I think the point is to just give students an introduction of the subject so they can work on real problems
@theendurance4 жыл бұрын
@Simon WoodburyForget Because you are forgetting that Computer Science is a...science. CS is not programming. Programming is monkey work. Algorithms are at the heart of CS. You don't need code because this isn't meant for practical uses. CS is just math for computers.
@robertalaverdyan31505 жыл бұрын
Wonderful. I wake up watching these lectures and sleep watching them.
@Uber_handle4 жыл бұрын
The grind!
@panagiotistzakis6799 Жыл бұрын
Amazing lecture sir and of course your are from MIT because your level of knowledge is very high!!Thanks for your time..
@ordinarycoder80909 жыл бұрын
Best lecture on BFS.. Erik Demaine rockss....
@alexandrugheorghe56104 жыл бұрын
Don't understand why people complain about the chalk. As he writes down so am I doing in my notebook and I find this to be working very smoothly [especially as I can pause the video and also think for myself and try to prove what he said] - I'm getting most of what he says - less so to get a proof on the spot for n x n x n - but hey, he published a paper with et al. on this subject so :) that's accessible for later.
@peeyush74343 жыл бұрын
46:17 How do you find the shortest path from "f" to "c"? Though they are connected through an edge but according to this algorithm, parent of "f" is "d" and parent of "d" is "x" and parent of "x" is "s". You cannot reach to "c" from "f".
@himanshusaini93933 жыл бұрын
the path you are talking about is where 's' is the starting point, so it will give the shortest path from 's' to any node in the graph. To compute the shortest path between 'f' and 'c' , you need to set 'f' or 'c' as the starting point...
@mearaftadewos85082 жыл бұрын
if f and c are connected some way then, you can get the path from f to c buy back tacking from parnet[c], assuming the verices have some sort of pointer. If they are class type of Node/vertex with parent pointer, it a lot easier to trace.
@ΓΕΩΡΓΙΟΣ-ΔΑΥΙΔΜΠΟΥΛΑΣ6 жыл бұрын
At 34:13, if anyone cares to change the subtitles from (INAUDIBLE), what he says sounds like "pseudocode".
@mitocw6 жыл бұрын
Changed! Thanks for the feedback. :)
@sam.kendrick7 жыл бұрын
Thank you! Love Erik's lectures!
@josh545 жыл бұрын
Wish my professor wasn't lazy and wrote all the notes on the board like this instructor. I can't keep up with half-assed powerpoints that my professor rushes through
@HanifCarroll4 жыл бұрын
I don't know if he gave you guys the powerpoint slides, but if he did, then you wouldn't have to spend time copying them down because you'd know you would get them. That way, you can spend time writing down the things that will be more helpful for you.
@David-kx3xf3 жыл бұрын
Mine used wolphram mathematica live, and it was an absolute mess 🤦🏻♂️
@날아뚱3 жыл бұрын
30:40 BFS 14:44 bookmark
@sarpersar80108 жыл бұрын
Thanks to Erik Demaine
@soonshin-sam-kwon2 жыл бұрын
Very clear and intuitive 💎 Thanks for sharing this invaluable resouces! Big shout out to MIT 🔥🎓
@gnulinux20003 жыл бұрын
Absolutely must watch, adding where they are used and application gives good perception which otherwise made graph dry subject for me.
@rollercoasterer5 жыл бұрын
Erik is the best teacher who explains data structure and algorithms so clearly and in a simple way.
@rafiaqutab81749 жыл бұрын
You are such an amazing teacher! I wish I had you in college
@ru29792 жыл бұрын
I wish I had u 🥺👉👈
@hnupadhyaya4 жыл бұрын
Dear all, In this lockdown stage in home, please provide game equipments to your children/students to play. If not help them to watch "Math Art Studio" in you tube. They will play with their names and learn different concepts in mathematics.Those who have seen it they have learnt maths and enjoyed its beauty every day.
@leonchen46094 жыл бұрын
I think in the python psudo code of 36:05 he means frontier += next ( instead of frontier = next), the data structure needs to be a queue to ensure every node been traversed, what he wrote on the black board produce a unstable state of frontier
@adamvoliva4 жыл бұрын
Also would result in an infinite loop because frontier will always be true, because next is set to an empty list at the beginning of each loop. Should be while len(frontier)
@volleysmackz5960Ай бұрын
Not sure if Erik consciously changed his teaching style from Lec1. He used to explain an example of how things move and build an algorithm on top of it. But this lecture is different, puts down algorithm first and then explains an example on how we move from it.
@TheFootballPlaya3 жыл бұрын
this guy is the man. his lectures are awesome.
@mathewkizhakkadathu30644 жыл бұрын
What is U in relation to V at 22:07?
@devmahad Жыл бұрын
[FOR MY REFERENCE] 1) Graph Applications 2) Graph BFS Algo. 3) Time Complexity
@gaganb4 жыл бұрын
I can smell the chalk dust through the video. Takes me back, great stuff.
@yl44414 жыл бұрын
Thank you so much for posting this video!!! Its too hard to find videos explain algorithms clearly and easy to understand.
@ReaRalte10 жыл бұрын
Better than my College's class, thumbs up.
@Buutyful10 ай бұрын
school is so outdated, 50 mins of chalk work for a 7\10 mins of content
@kirdnehrenned87464 жыл бұрын
This is a great lecture. i really appreciate the level of teaching from MIT. This is what makes a good university: its professors. even though this video is 7 years old, i cant believe they're using chalk boards at MIT. White boards are so much cleaner and easier to read / write on.
@ILikeItPicasso2 жыл бұрын
Thank YOUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU, it took me 3 days to understand how to track the path in bfs
@SaiVineet10 жыл бұрын
This guy is so cool!
@RICHUNCLEPENNYBAGS7711 жыл бұрын
Clear. I read the chapter corresponding to this in the Algorithm Design Manual but I wasn't feeling like it really all came together but this did it for me.
@csvegso3 жыл бұрын
he is a great teacher
@wetbadger21743 жыл бұрын
How do you feed a graph into this method? I hate when people don't show the whole code. Is the adjacency list supposed to be a dictionary/hashtable?
@benaya65 жыл бұрын
amazing lecturer. Mr. cameraman, please dring cofee or something and keep up
@MrTacoToy5 жыл бұрын
Cameraman did a good job of knowing when we'd rather look at the board than him walking.
@lifanzhong9782 Жыл бұрын
Thanks for the wonderful lectures Erik!
@solwex Жыл бұрын
Simply evergreen content!!
@dpydys2 жыл бұрын
Thank you for a very clear explanation.
@lockersrandom61614 жыл бұрын
Thank You MIT.
@lancepereira93378 жыл бұрын
Is that the guy from the Nova Origami special that proved you can make and 3 dimensional shape by folding a flat sheet of something?
@mitocw8 жыл бұрын
Yes, Erik Demaine was in that Nova program on Origami. :)
@David-kx3xf3 жыл бұрын
There are two ways to study algorithms: the MIT way, or the hard way
@Zero-bl6ym8 жыл бұрын
Eric is great!
@KaisarAnvar2 жыл бұрын
His T-Shirt: Scissors cuts paper, paper covers rock, rock crushes lizard, lizard poisons Spock, Spock smashes scissors, scissors decapitates lizard, lizard eats paper, paper disproves Spock, Spock vaporizes rock, and as it always has, rock crushes scissors.
@Jbdoster5 жыл бұрын
I had a great laugh around 19:00, thank you
@lcsjr705 жыл бұрын
Maybe someone can help me: I'm from Brazil and I study CS. I noticed that in Introduction to Algorithms ppl there already knows algorithm analysis, study graphs and this kind of stuff. Here we just learn the basics (we start with C, since the basics of the language till structs and we see a bit of divide and conquer, sorting (qsort, merge, and the n^2 algorithms) and we work with matrix and files (bin and text). Then in the second year we study design and analysis of algorithms, which is when we learn algorithms analysis and paradigms like dynamic programming, divide and conquer (deeply), greedy algorithms and so on. Now I'm in the third year and I'm studying graphs. Id like to know if the students dont get confused by studying these kind of stuff early (and if they actually study it early cuz I don really know if this assignment is a 1st year assignment)
@AMoore-qx6vv5 жыл бұрын
Luciano My CS courses are very intense, we start with Intro to Programming (2D,3D arrays, OOP,, Big Oh, Merge Sort, a ton of other fundamentals), Data Structures and Algs include Topological Graphs, Greedy Algs, Heaps, etc. this is done in our first year. We tend to go super fast and learn C for Comp Arc and Systems Ops (the next semester of classes that is usually coupled with Discrete Structures, Multi Calc, and Linear Algebra).They teach us Java in our reg CS classes so they make Comp Arc and Systems Ops very rigorous since we’re beginning C (to appreciate and completely understand memory allocation). So basically if you take 3 cs classes a semester, we’ll take Artificial Intelligence in our second year, that way we can go onto learning machine learning, advanced data structures, and top level engineering classes. Most of us are coupling our CS degree with Math so most likely we do Calc 5, and pure maths by our second year or third year. Anyways, I hope this gave you an insight. It’s hard to measure difficulty with others since this is the pace that I’ve adapted to.
@alfonsocanady75642 жыл бұрын
In case someone else sees this and wants to know, according to MITs website on this course MIT 6.006, there are 2 prerequisite classes that must be taken before this one. Introduction to EECS I (6.01) and Mathematics for Computer Science (6.042) this is likely a 2nd year course, tho I’m sure a 1st year could take it their 2nd semester as long as they took or tested out of the prerequisites.
@TheYmBProduction3 жыл бұрын
40:35 minutes the example of the implementation
@allene_4 жыл бұрын
yay MIT lecture in my room
@jakefischer82813 жыл бұрын
I like the way he writes.
@bhaveshgupta384611 жыл бұрын
what if i want to know all the shortest paths to a node in the example that is there in this lecture! for example there might my exponentially many ways to get to node f from s. and there might be many shortest paths.But BFS gives us only one! i want to know the no. of all the shortest paths between two nodes s and f. How can I achieve this?
@ruchirmumbarkar87584 жыл бұрын
Thank you! His t-shirt also has graph on it!
@rashedsami19597 жыл бұрын
Erik Demaine
@onurduygu32814 жыл бұрын
Thank you Eric! Eric choupo moting
@musfiqniazrahman11 жыл бұрын
it's, in fact, from 34:14
@niharpatil40468 жыл бұрын
How are there 24 possible symmetries?
@DavidFreeseLee6 жыл бұрын
I really thought the example at 42:30 was just a setup for a final frontier joke. I left disappointed, but educated. Alas.
@LiSek96113 жыл бұрын
great lectures, thank you for uploading this
@sudhanshudey7583 жыл бұрын
Why is it n^2 cubies and not n^3? Since 2×2×2 has 8 cubies I think and 3×3×3 has 27
@MuhammadHassan-lu4ox5 жыл бұрын
That hip movements at @5:02
@Ivankarongrafema10 жыл бұрын
I think it could be possible to implement multiple graphs even using object-oriented programming. Instead of v.neighbours, this property can be an array, so v.neighbours[0] would be the 1st graph, v.neighbours[1] the second, and so on.. Am i wrong?
@alfag407410 жыл бұрын
No you're not wrong. But it is not practical. You will have to remember for each vertex the number of graphs it belongs to. So, if you need to analyse say vertex v and u, you need to make sure that v.neighbours[0] & u.neighbours[0] are refering to the same graph (you need to allign - 'synchronize'- the array indices - which can be a headacke )
@adamvoliva4 жыл бұрын
In that code frontier will never be False resulting in an infinite loop. It should be while len(frontier):
@MarzukiSondoss11 жыл бұрын
Das is fantastisch! vilen dank
@erics.41133 жыл бұрын
This makes me think about the extraordinary gap in intellect between human beings.
@TransformationDiares8 жыл бұрын
Can any one tell me how he came to conclusion about the total number of moves required to solve a cube of n*n*n ? Thanks
@3090id8 жыл бұрын
+deepthi g In the video, the professor mentioned a paper where its research was publicated, this is the paper : erikdemaine.org/papers/Rubik_ESA2011/paper.pdf
@pjuliano90003 жыл бұрын
MIT is amazing for postgrad and PhD work. But really you don’t have to go tho MIT to learn this info. Maybe the junior and senior years are probably where it is differentiated from other universities.
@fjb18545 жыл бұрын
50:40 He could mention what the data structures are for those of us not privileged enough to know python.
@fjb18545 жыл бұрын
34:15
@sasikaroledenez75158 жыл бұрын
what is the reference book align to this course ?
@mitocw8 жыл бұрын
The required textbook for this course is: Cormen, Thomas, Charles Leiserson, Ronald Rivest, and Clifford Stein. Introduction to Algorithms. 3rd ed. MIT Press, 2009. ISBN: 9780262033848. (www.amazon.com/exec/obidos/ASIN/0262033844/ref=nosim/mitopencourse-20) See the course on MIT OpenCourseWare for more information and materials at: ocw.mit.edu/6-006F11
@carlosseda56193 жыл бұрын
Amazing explanation, thank you!
@aishsagar10 жыл бұрын
for n x n x n rubic cube, looks like the solution would be 2^(n+1)+n+1. based on 2x2x2 and 3x3x3 values. is it right?
@cl33756 жыл бұрын
You deserve a white board set up like that #neverSettle
@princebansal75002 жыл бұрын
The lectures are awesome but the camera work is bad, its much better in the recent MIT Algorithm series, however, I was missing Prof. Domaine for not teaching graphs
@abhijitbub66723 жыл бұрын
2*2*2 cube has 8!*3^7 vertices not 8!*3^8
@VivekTiwari032 жыл бұрын
Man I feel smarter just by sitting here even though I have no clue what happened in those 50 minutes.