Lecture 19: Dynamic Programming I: Fibonacci, Shortest Paths
MIT 6.006 Introduction to Algorithms, Fall 2011
View the complete course: ocw.mit.edu/6-006F11
Instructor: Erik Demaine
License: Creative Commons BY-NC-SA
More information at ocw.mit.edu/terms
More courses at ocw.mit.edu
Пікірлер: 1 300
The instructor, Erik Demaine, is the youngest professor of all time at MIT and a child prodigy. He has published several articles in scientifical journals, and and now has helped several students publish their own articles. He is one of the modern day geniuses of our time. We are extremely lucky to have a free video of his lecturing.
@lukeTHEDUUKE
2 жыл бұрын
he's no genius
@alesc3252
2 жыл бұрын
@@lukeTHEDUUKE he was a child prodigy when he was 7, he finished college at 14 and got his phd when he was 20. He has won plenty of awards and is the youngest teacher at mit for a reason. Most people think that if someone speaks a lot and you dont undestand him then he must be smart, but actually intelligent people, like mr. Erik demaine, can take complicated concepts and explain them in a way that a lot of people like ourselves can undestand them
@sammyholdem2492
2 жыл бұрын
So this guy is like dumb smart? A 🐐 of numbers? I'm a dummy and have no clue what is going on in this video but guys and girls that know this stuff it blows my mind. All I'm wondering is does this really figure things out or is this just made up by some super smart people that make these things up for fun
@lx4302
2 жыл бұрын
@sammy holdem it's not about being smart, people who have been doing one thing all their life can be extremely good at it.
@manmeetworld
2 жыл бұрын
@@sammyholdem2492pretty sure it's for faster run times i.e., you're in the program and it outputs your results faster. Or in some cases you may never get the result, like the work on the processor to store all the bits gets used up to the point of failure or low mem. Because I think, what's not explained real well right off the bat is that this program is constantly looping to get to the next fib.
Watching this 6 years after graduation. The irony of skipping class...
@ShubhamSinghYoutube
2 жыл бұрын
Never too late to start.
@Stl71
2 жыл бұрын
I was lucky enough to find out that there are a lot of videos in yt that could help me during my CS programm...And they really did help me.
@yanfranca8382
Күн бұрын
how about 11 years? kkk
stop scrolling down listen to this guy
@utkarshsrivastava
5 жыл бұрын
Why not both??
@dartme18
5 жыл бұрын
/me scrolls back up
@calvinsylveste8474
5 жыл бұрын
I can hear him while scrolling down because i hear with my ears and not my eyes.
@adott55
5 жыл бұрын
Ok
@isoccerpluse
5 жыл бұрын
Why?
I just googled him to know that he finished his bachelor's degree at 14 years of age at Dalhousie University in Canada. damnn!!!!
@osmedia7239
4 жыл бұрын
geez. Smart guy.
@danielalemu3029
4 жыл бұрын
When you have professors father at young age who inspires you and teach you, that helps a lot. His father is also professor at MIT.
@osmedia7239
4 жыл бұрын
@@danielalemu3029 true
@winrx
4 жыл бұрын
Daniel Alemu Having the right genes may also help I think......
@ikrakkentm9588
4 жыл бұрын
@@winrx no a lot of people are actually as intelligent and perhaps even more than him. Thing is not everyone had the spark by their enviroment from a young age to get interested in specialising in a specific area. Also in other countries there is no alternative to finish high school earlier and apply to university. Also SAT is easy i can imagine back then it was way easier. Im not saying he isnt smart. Hes definetely above average for sure.
He is really putting an effort for students....these kind of teachers r very rare to find
@markpurslow7446
4 жыл бұрын
I agree totally
@singhishandeep
4 жыл бұрын
rare
@ScapeGoat2099
Жыл бұрын
true
"This is kind of obvious" Me: Leaving the lecture hall with my head down.
Absolutely fascinating lecture. This guy received his master of science in mathematics at the age of 16.
@NicolasPare
3 жыл бұрын
Really? That's impressive.
@NazriB
2 жыл бұрын
Lies again? DMP DUO
@brucesbanner5057
2 жыл бұрын
Another post on this video says 14 yrs of age which one is it 🤔
@Sarajboos12
2 жыл бұрын
@@brucesbanner5057 he was bachelor
@rschmidtschmidt6810
Жыл бұрын
@@brucesbanner5057 his Bachelors at 14 and masters at 16. It matches up.
So apparent why MIT students are industry leaders.... their teachers are amazing. My data structures and algorithms professor was trash at my university, and it is a well respected school.
@cmubill
2 жыл бұрын
Which university you went to?
@M4D4F4K4.
Жыл бұрын
@@cmubill prolly outside 100th rank unis
Introduction to Dynamic Programming: 00:21 Fibonacci Numbers: 6:01 Fibonacci Numbers with Memoisation: 11:11 Fibonacci Numbers using bottom-up approach: min 23:25 Shortest paths: 31:05
@aashudwivedi
7 жыл бұрын
This is so helpful. Thanks a Ton :)
@pikiwiki
6 жыл бұрын
thank you
@dcmarvel3031
6 жыл бұрын
The world needs you
@dscheme4427
6 жыл бұрын
Nice breakdown -- much appreciated
@CodersField
5 жыл бұрын
life sever
I love this guy. I can tell he enjoys teaching.. best trait a lecturer can have :)
@penips
8 жыл бұрын
+Jason Kang nice
@fruitjam6529
8 жыл бұрын
+Jason Kang Indeed.
@mriegger
8 жыл бұрын
+Jason Kang I know, I was struggling with Dynamic Programming until I saw this series. He's awesome.
@TheMasonX23
7 жыл бұрын
Agreed! Erik is an amazing teacher, I love watching his lectures. He manages to make very difficult subjects relatively easy to understand and is very thorough and precise when defining things. And as you pointed out, his obvious love of teaching and the subject matter inspires an eagerness to learn.
@adityakulai6419
6 жыл бұрын
Yes true!
Not only is he knowledgeable but he’s also one of those teachers that makes you really get interested in the lesson
I am 55 years old and whenever I watch a lecture from MIT or Stanford, I so wish I could study there! I feel so mesmerized.
@thinhnguyenvan7003
2 жыл бұрын
Me too, and i am 29. Just graduated at 27 as a Mechatronic Engineerer and now do IT job
00:58 dynamic programming (DP) 05:06 Fibonacci numbers 11:04 memoized DP algorithm 23:14 bottom-up DP algorithm 31:00 shortest paths 41:14 example
@fastacelzapacescu5445
2 жыл бұрын
Thank you!
@jose000
2 жыл бұрын
Hh
@sohambasu6375
Жыл бұрын
thanks brada
I'm from Perú and following a Software Engineering, although we sometimes may get an overall view of these kind of topics, we tend to stay in the easy zone and never go any further from that. Having access to these many MIT real lectures just makes me so happy because, even if you don't enjoy the best education, you stil have the opportunity to learn more from reliable sources. And for me, that's what the MIT, give opportunities and hope. Thank you so much!
@axelmori9284
3 жыл бұрын
Another Peruvian here!
@chayannesamaaa7867
2 жыл бұрын
Now we are three. :)
@patrickmcpartland1398
2 жыл бұрын
Even at MIT this is a graduate level course, you're not taking this in a regular undergrad haha
@kartiksangwan3302
2 жыл бұрын
@@patrickmcpartland1398 What's the difference? 🤔
@justinliburd8996
2 жыл бұрын
@@kartiksangwan3302 How much debt your willing to go into.
I watched this guys couple of old lectures quite sometime back and he made me fall in love with dynamic programming. Love this guy.
Thank you for caring about the subtitles quality, they made it possible to follow up the whole class.
I just want to thank you for this video and other related videos from this channel. While working fulltime and schooling at night it is hard sometimes to follow through my classes. However, I managed to earn a MS Computer Science concentration on Network and Security with a big thanks to these videos. Thank you!!
I've always thought of Dynamic Programming as this big, scary, complicated concept that would take forever to understand. Erik helped me understand it easily.
@mearaftadewos8508
2 жыл бұрын
Teachers tend to make the same impressions they had about a course on us when its their turn.
Professor Demaine, I really enjoy your confident lectures.
I love how much passion and energy the Prof got
Thank you guys. I am doing my masters though I couldn't get in MIT, you give me exposure to top class teaching materials.
My favorite DP lecture yet!
Mannn, Sir Erik is so passionate professor I have ever seen. I just love the way he explains🙏🙏🙏
I love how Erik is so humble and approachable. It's so great that MIT recognized him so early as a faculty member. This is so important for students and progress in education and research. MIT is really showing the way for other universities how the modern education is meant to be. Erik stay cool and keep improving this wonderful series of lectures. All the best!
Best Algorithm lecture ever seen...Thank You MIT for this Lecture and Eric is one the best lecturer with great teaching skills.
If this guy was my professor I might have not dropped out! We need ppl like him thank you for sharing this
@cluckhead1913
Жыл бұрын
Turn on, tune in, and drop out! There is so much more to life than sitting in a room listening to someone drone on about nothing. Be your own man!
@coronaweeks4577
Жыл бұрын
@@cluckhead1913 maybe so but his passion is infectious…I wish I had a real passion for something instead of slogging through life
What a guy he is!!! Just to say been through a lot of mit stuff but he really is matching the skills of all other professors in that place
Eriks lectures are awesome... pretty decent walkthrough of dynamic programming.
Really a great video 🙌 Have fallen in love with recursion and DP with this video , Great work Erik Sir 👏
My goal: binge watch mit course playlist for the whole day :)
Great lecture! Thank you for making this topic accessible - in all senses of the word
Amazing lecture from Erik Demaine. It's impressive how easy he explains a topic like dynamic programming and how he can have the attention of the students in the hall. Thank you very much to Erik for his lecture and to MIT for sharing this excellent course!!! I can't wait to see the next DP classes!!!
the best algorithm lecture i have ever seen! I prefer this "old-style" lecture using blackboard and chalks so much without any bullshit slides and whiteboards
@veden310
5 жыл бұрын
I hate white boards too )
@sitalsitoula6536
4 жыл бұрын
I love them...Easy to use
@ashokbudha4777
4 жыл бұрын
i hate slides
@mdyousufali3793
4 жыл бұрын
Slides hide the incompetency of a teacher.
@nguyenhoanglong420
3 жыл бұрын
yeah ! OLD-STYLE BLACK BOARD AND CHALKS BRING ALOT OF MEMORY TOO !
i love love love Erik's teaching style. usually, i feel pretty dumb when i don't get a concept when my professor or other youtube videos explain but Erik makes it very.....accessible, and relatable.
this guy is awesome . very clear explaination..
After following 2-3 lectures of him, He became my favorite prof
Great teaching! I had an algorithmic challenge this year, the solution was dynamic programming.
26:10 "So is this clear what this is doing? I think so." [Then corrects the 2nd, 3rd, 4th and 5th typos that prevented comprehension. :) ]
I've been watching many video professor teaching in KZread....Professor Erik Demaine definitely the best one that I've ever saw...His teaching style really on top.
This man is absolutely brilliant. Perhaps too brilliant for anyone in the lecture hall to understand, and certainly for me.
@26:36: "Man, so many typos" - How I feel whenever I'm coding up on the board.
that's genius, Erik has got some great teaching skillz, man
@TheMasonX23
7 жыл бұрын
artem alagizov He's amazing! He's the youngest professor in MIT history, and earned his PhD when he only 20...
@jn3750
6 жыл бұрын
Former child prodigy!
Best tutorial on Dynamic programming I have ever seen :)
Best lecture on the subject i've seen on youtube
Very great lecture, super helpful. Thank you MIT.
@arsh99119
Жыл бұрын
thearshblog.blogspot.com/2022/09/beating-youtube-algorithm.html how to beat KZread Algorithm 👆
# for def fibonacci(n): r = [1, 0] for i in range(1, n+1): a = r[0] b = r[1] c = a + b r[0] = b r[1] = c return r[1] if __name__=="__main__": for n in range(1, 101): print(n, ": ", fibonacci(n))
Absolutely love this guy, what a great lecturer
I absolutely love that chalk... Kind of gets you interested in the topic...
Thank you sooooo much! A lot easier than learning from the economic side.
Dynamic programming the my favrourite thing in the world... in algorithms.
at 47:06 Eric mentions, we need to make the graph acyclic, we don't need to make the graph acyclic, we can mark the vertex which is being computed (which is in the call stack) as present in an infinite distance and use it's TAB[v]
I gotta say, this video series helps me to understand how to solve DP problem easily. For people trying to learn how to solve DP , what I recommend to do is to just watch all the series to understand the pattern (observe) then try to solve some other problems on internet (practise).
I really love how they teach, everything becomes interesting..., i wish i could study full time there :D
@MahdiZouch
7 жыл бұрын
ha ha same here
@TheMasonX23
7 жыл бұрын
Mahdi Zouch A large part of what makes them the best institution (in my opinion, at least one of the best though) is the quality of their instructors. And yes, I too would love to attend MIT if/when I make enough money, but at least until then they've got a lot of their courses available :)
@deepakmeena3874
6 жыл бұрын
yeah IIT bombay has great quality of students but quality of teaching method is very poor that's why they are so low in rankings
@saipanda893
6 жыл бұрын
Deepak Meena yeah bro.
Love the giant eraser. Must be quite satisfiying using it.
I am amazed just at his writing on the board at the very beginning .
geniously simply explained! thank you! helped me a lot!
way better than my current algorithms professor...thanks!
@adityasinghaswal4923
7 жыл бұрын
Unsurprised
I wish my prof taught my algo class was this excited about any of the algos, instead of sitting there hating life
Amazing lecture, Erik can really explain. Thanks!
the camera work is really good on this
I wish I could have Professor like him in my bachelor's and master's .
This instructor ROCKS!
That is the most computer-dude looking guy ive ever seen, very apt.
I felt like this was a great way to explain dynamic programming. My course work on it in college was fine enough for me to understand it but this is a much easier better way to explain it to learn from.
When I came to know about the name story of DP, I was also very excited. If anyone has done the course algorithmic toolbox, you might also be knowing this story!
@muzamilzaman7463
Жыл бұрын
Algorithm toolbox ❤
Algorithms Professor wearing a Bob Dylan T-shirt! Awesome!
Great class ! Thanks for uploading that.
Lovely course! Awesome Profs.. I came here looking for help in trying to solve DP problems.. got glued to this video and the other videos in the course.. heard of the Double Rainbow for the first time and googled for it.. came to know about the Double Rainbow guy.. and read that he became one with the rainbow ... in the times of this pandemic.. strange how times fly by! ...and how time flies by!
I love those boards and chalk!
23:22, hey... even I like the recursion based top-down approach over bottom up. Btw, very good teacher.
What an excellent explanation and professor. Very well done!
I love how he much he could do with his mind. I'm a theoretical physics major and computer science
You kept on scrolling anyway, didn't you? ;)
@drayc290
4 жыл бұрын
Bruh moment
@Webexplr
4 жыл бұрын
Bruh
@JesusGomez-uo5ei
4 жыл бұрын
yes :(
@ceragoguztuzun8528
4 жыл бұрын
Duuude
@Chris_Lan
4 жыл бұрын
rekt lmao
Dynamic Programming AKA "Careful Brute Force" XDD I lost it. Sooo accurate
If we assume that the fibonacci calculator function will be called many times for different numbers in essentially random order, the 'top-down' memoized version has an advantage: When called repeatedly with the same n, it takes linear time the first time, but constant time afterwards (if the dictionary persists between calls). In the bottom-up version, changes are required to achieve the same: if n
Just leaving this here for someone to remind me in a couple of years, I regretted majoring in information systems instead of CS, and I cannot change my degree, but I will work hard and learn most of the needed stuff online in order to be able to learn more cs stuff on top of finishing my degree and getting a nice job that i enjoy in the future, through hard work and determination!
Extra credit for the Bob Dylan T-shirt! :D
@scemat
4 жыл бұрын
Warmed my heart when I noticed it!
shortest paths 31:00
I am amazed there are actually ppl who understand and can make sense of this.
Don't know much about Dynamic Programming but do note the professor's unique and rather attractive chalkboard writing! And being a dapper hand myself at it, I salute you Prof!
34:49 The moment you stumble upon life-advice in part 19 of the programming lecture you've been watching.
This guy is a fantastic teacher with great humor.
this professor is amazing
This refers to Python dictionaries which are amortized O(1) lookup time. As are most programming languages implementation of a key value store ie. Map, Hashtable, Associative Arrays, etc.
Great lecture!
This video makes me wanna apply for MIT
@darogajee3286
7 жыл бұрын
just collect enough millions..
@DarkLordAli95
7 жыл бұрын
and very exceptional grades.
@BrajeshKumar-ez8zs
7 жыл бұрын
Jack Le you can... But you will be kicked out
@mlst3rg
7 жыл бұрын
just write #blacklivesmatter on your application
@lambda494
6 жыл бұрын
I went there (Course 8, 2012). Trust me, getting in is the easy part. All the top students at their high schools become more or less average there. You learn a ton but it will wring the life out of you too if you aren't careful. You may spare yourself and just enjoy OCW!
What a great person. He is making a very complicated topic at least a bit understandable for me :)
recursive functions alone is a concept which takes some adjusting too. In over 14 years of writing code in manufacturing i've yet to find a place for them. I get its for a situation where you'd want the end result without printing the path to the result on screen (ie a loop) but ive never really needed it in my line. I can imagine it with 3d graphics though
Is it weird that I have absolutely no idea what this class teaches, nor can I understand what it is trying to teach, yet I can't stop watching the lectures?
@JuiceGuy07
3 жыл бұрын
@Aarni lol, you could be wasting time on worse things I suppose. Hit your teacher with the old "I wanted to write my essay last night, but I just got way too caught up learning advanced algorithms. Time just got away from me."
@anjanvyas5820
3 жыл бұрын
hahahah im doing the same thing. Started with a video where Jelani Nelson was teaching Linear Data Structures I have no idea how it works and how it helps but it's oddly satisfying xD
@AimForMyHead81
2 жыл бұрын
@@anjanvyas5820 For me, it's Asmr
The last remark that the algorithm can be modified to compute weights of shortest paths in graphs (possibly with cycles) was rushed a little bit. Can someone explain it in better terms? Thanks :)
27:00 Bottom up can be optimized further by hard coding the first two results manually the itterate without a conditional and saving the result right away. When done looping, return the last result.
@weignerg
2 жыл бұрын
int n = 100; Map fib = new HashMap(); int i; for(i= -1; i
@weignerg
2 жыл бұрын
30:00 import java.math.BigInteger; public class FibonacciExample{ public static void main(String args[]){ int fibSequenceNum = 107; int n = fibSequenceNum/2; BigInteger[] fib = {BigInteger.valueOf(0),BigInteger.valueOf(1)}; for(int i = 0; i fib[0] = fib[0].add(fib[1]); fib[1] = fib[0].add(fib[1]); } System.out.println(fib[fibSequenceNum%2]); }}
@eddychoo7820
Жыл бұрын
@@weignerg 8ulk777uuu6
This teacher is amazing!! I loved it!
I love that he writes all of his code in python
@adityamhatre4684
3 жыл бұрын
Because Python Code is Closest to Pseudo Codes
Good talk. My sharpest criticism: I’ll bet he goes though a lot of chalk pressing as hard as he does.
best thing to do during corona, thanks erik
Love this guy's handwriting.
I'm looking at this now,same as I was looking at math class when I was a kid
This dude got his PHD in 20.. How awesome is that.. O.O
@RetroGenetic
10 жыл бұрын
And the way he presents everything is just amazing, there's many gaps in my knowledge on these topics but the way he explains helps me to either fill the gaps or at least know where to look for answers.
@tyrisnolam
10 жыл бұрын
I'm 26 and didn't even finish my undergrad course yet. And I don't give a fuck. Not every universities and colleges are as awesome as the MIT or Caltech (etc). I'm from Hungary. I feel no drive to finish it. What you see here, this lecture, is quite the opposite of the way they teach us in Hungary. There are a very few good teachers here (but they, the good ones are really just great and I respect them), the majority just make us hate what we supposed to be enthusiastic about. Who cares, I just open my laptop and BOOM, I'm an MIT student, I can learn valuable stuff and I enjoy this difficult work with algorithms (or whatever) again. Maybe I'll finish my UG course, maybe I'll just quit and start making something amazing. Having a degree is good but if you can't do it, don't push it. There are many ways to be successful in what you like to do. If you can't finish, then college was just a bad guess and you should try another path to V (see what I did here?)
@jeanpaulnavier6726
9 жыл бұрын
ranalynamic come on man, i understand the fact that some prof aren't the greatest ones(here in italy too,same faculty) but i think it's a student problem too, isn't it?!
@kdub1242
9 жыл бұрын
ranalynamic I always thought Hungary was the land of geniuses. You've had John von Neumann, Eugene Wigner, Leo Szilard, Theodore von Karman, and on and on. These guys are my scientific heroes.
@tyrisnolam
9 жыл бұрын
Keith Wald It used to be better, I guess... These days it's a shame. I feel embarrassed. Or maybe it wasn't that different at all. Today, a talented student who is actually lucky enough to get the hell out of here, probably will still do a great job pretty much anywhere where she/he is going. But not here. Yes, many of them are of Hungarian origins (and by the way, Jewish also). On the other hand, if you read their whole story, almost none of them achieved anything here. This is what Hungary is really good at: putting talents in an impossible situation and make them go the fuck away :) Anyway. I'm glad you know about these people. :)
Awesome! Thanks Eric & MIT for the great content
Good job camera person. You're following the material and zooming in when relevant!