# MITOCW R19. Dynamic Programming: Crazy Eights, Shortest Path

Size: px
Start display at page:

Transcription

2 And we start out with a deck of cards, randomly shuffled. And then some of the cards are pulled out. Did everyone see playing cards? Poker cards? Does everyone know what they are or do I have to define them? Does anyone need me to define poker cards? Let's put it that way. OK. Cool. So, suppose we have a bunch of these. I don't know what Crazy Eights is. We'll get to that. OK. It's an 8. I know what an 8 is, but I don't know how the game works. OK. We'll get to it. So, let's see. 4 of spades. OK, so this is a bunch of cards that were pulled out of the deck. And we want the longest crazy subsequence. And the crazy subsequence is a subsequence where two cards are like each other. The way we define like is that either they have the same number. Or they have the same suit. Or one of them is an 8. So an 8 is like anything else. OK. So 4 and 8. Are they like each other? Yes. 8 and 5. Are they like each other? Yep. OK. this 5, 5 of hearts and 9 of diamonds. Are they like each other? No. 5 of hearts and 7 of hearts. Are they like each other? Yes. 5 of spades and 7 of hearts, like each other? No. OK. So we have some cards that are like each other. We want the longest possible subsequence. What about 5 and 5? Those are like each other. 2

3 They're like each other, yep. They are more cards that are like each other than the ones I drew here. For example, this guy is like everything else. Oh, we already drew that one. OK. So how do we model this problem using graphs? So, stuff that we knew before the last lecture. Those could all be nodes. OK. All the cards are nodes. That's good. And, I want the longest path between what and what? One node to another? OK. The longest path in the graph. Yeah. The longest path in the graph. One trick to reduce it to a known problem is to add the fake source. So this is a fake source. And it's going to connect to everything. And this way, I want the longest path, starting from the source. And the other source? Nope. The longest path, starting from the source, ending anywhere in the graph. Such that it doesn't go touch another card again? Yeah. So, if I want a longer subsequence, that's a good question. How would the edges look? Directed. Yep. Directed. And which direction? Arbitrary [INAUDIBLE]. 3

4 So, if I choose this one and this one, can I go back afterwards? You just can't go back to the 4. So, in the longest common subsequence, all the cards have to be in increasing order. So I can say I'm going to choose this one, this one, and this one. And they have to match in this order. So I can only go forward. So I can't reorder the cards. My answer has to be, say, 4 of diamonds, 8 of diamonds. And then, what else would match that? 9 of diamonds. You can put the 8 anywhere, though, right? No. I can't move them. So the cards have to be in the initial order. I don't have to choose all the cards, but the cards that I choose have to respect the initial ordering. So everything points right. Everything points right. Forward. Yep. And, I need one more edge from here to here. Oh, so you're saying in the game you get an initial order. And you can't reorder it. Yeah. But otherwise I can, if I have all the cards, I'm just going to order them. Well, that's the point right? I was picturing more like you get a set of cards and you try to figure out-- No. So, that's a different game. That might be harder to solve, so let's stick with this. Yes? Why is 8 in there, with 7? 8 is similar to anything. Just for the heck of it. These are the rules. OK, so we have a graph and we want to compute the longest path. We do not have an algorithm to compute the longest path. We only have algorithms to compute shortest paths. So how do I deal with that? We had that in problem set 4

5 six. Make all weights negative because there's no cycle [INAUDIBLE]. OK. We know it's negative. And, I guess these ones don't matter. But all these are going to be, instead of being 1, they're all going to be -1. Very good. And there are no cycles in this graph, so we know that the answer will be well defined. OK. Everyone with me so far? Happy nods? Yes. So, what algorithm do I know that solves this problem? Bellman-Ford. Bellman-Ford. Good. What is the running time of Bellman-Ford? [INAUDIBLE]. Cool. Suppose I have N cards. How many vertices do I have? [INAUDIBLE] Plus the source. It's ordering. So you're right. How many edges do I have? Worst case. N squared. Yep. [INAUDIBLE] you mean, like, the directed [INAUDIBLE]? No, I mean Bellman-Ford. Then, we're going to go to that algorithm and get the better running time. Cause isn't Bellman-Ford e times e? Oh. What? Yeah. 5

6 Yeah, that's what I-- Did someone say, v plus e? Or did I write v plus e? Yep. You did. Thank you. So it's v times e. So the total running time is. audience: N squared. audience: N cubed. Or, n cubed. Yeah, it's multiplying [INAUDIBLE], too. You guys are mean today. OK, so n cubed applying Bellman-Ford. There is a better way of solving this problem, right? The Directed Acyclic Graph Bellman-Ford. So let's look at the Directed Acyclic Graph, not the one to be generated by this because that might be a bit messy. And let's try to compute shortest path. s, a, b, c. OK, so let's see how we'd compute the shortest path in this graph. It's Acyclic, right? All the the edges are pointing downwards. So let's try to compute them directly. I'm not going to write pseudocode first. I'm going to write the formulas, and that will get the intuition for it. Then, maybe right psuedocode. So what is the distance from the source to itself? [INAUDIBLE]. Good. The first ones are easy, so I'm going to do them myself. sa is 1. sb is 2. sc is 3. And, of course, you guys get to do the hard ones. So the distance from s to d is what? How would I compute it? There's two paths to get to [INAUDIBLE]. OK. So, I would want the shortest path from those, right? OK. So it's 4. And the formula for it is the minimum of two paths, right? [INAUDIBLE] S to b, and then b to b. So, one path is-- [INAUDIBLE] and s [? and b?]. 6

7 [INAUDIBLE]. Wait. sa. So, first there's a path from s to a. And the edge a to d. And then, there's a path from s to b. And the 8 from b to d, right? And I already know the values for sa and sb, so this is well defined. We can compute it right away. No recursion. No metrics. I mean, there's recursion, but there's no infinite recursion. Does this make sense? So, in order to get to d, there are two edges pointing into d. One of them coming from a. One of them coming from b. So I can either get to a and take this edge. Or get to b and take this edge. This is what the formulas are saying. How about se?s What's the formula? [INAUDIBLE] OK. What are they? s3. Yeah, sa, sb, sc. [INAUDIBLE]. Aed's. And the number? [INAUDIBLE] 3? I think. e to e. OK. f. Someone that hasn't spoken today. So that I can see that everyone gets it. Please. dsb-- OK. --plus wef. 7

8 OK. And dsc plus wcf. Awesome. And that is-- 4. I'll take your word for it. OK, so now the last one. Distance from std. 5. Wait. No. So, let's write a formula. Oh, g, not a. That's OK, so let's write a formula to make sure that you guys are computing it in the fastest possible way for me. So-- sd plus sd to g. OK. Does anyone else? Is this the only path? No. There's more. OK. Plus e as to f. Plus e as f. And n. c to f. I mean, c to g. Or, No. no. s to c. 8

9 OK. See, there's a trick. OK. Cool. And then, what are the weights? w e to g. e to g. Very good. fg. fg. cg. cg. Why are you adding in c? Because there's the extra c. Oh, I didn't see that. So, the point of this guy's, is that if you do bfs, you'll get tricked. Because bfs would put g on the same level as these. And might compute the value for g before it has the values for these. OK, so what order do I need to compute these numbers in, for this to work? That way you computed them? So, that is a, that is a, something of the graph. Yeah. Oh, topological. Yeah. Stole your answer. Topological sort. So, any of the topological sorts works. The one we used this time is sabcdefg. Why am I using a topological sort? Because there's dependency. Yep. So, this depends on this and this, right? As c depends on sa, as b as c. So basically, every edge here indicates a dependency. In order to compute the shortest distance from the source to here, I need to know the shortest distance from the 9

10 source to these two. And then I can look at the edges. So, the nice thing about a topological sort is, after I write the vertices this way, all the edges point forward. Right? s to a. s to b. s to c. a to d. a to e. b to d. b to e. b to f. I can keep going. But the point is, there's no such thing as a backward edge. So if I compute the numbers in this order, when I get to se, I know that I computed the distance from s to abcd. And if I have any edge coming into e, I know that I've already computed the shortest distance to the node that it is coming from. yes? Did I lose you guys? Was this too-- So basically, like, at a, you relaxed all the edges going out of it. You can look at it that way. But what we're doing here is I'm looking at a node and I'm relaxing all the edges coming into a node. OK. So this matches this order. OK. What you said doesn't match this order. But it's exactly the same thing. Oh. It'll give you the same result. You'd get the first value at g when you reach c. But, like, end up with the same answer. Yep. We're still going backwards then, instead of-- As long as you're processing the nodes in the topological sort order, all the 10

11 algorithms will work because you're just computing these terms in a different order. But as long as the dependencies are satisfied, you're still going to get the right thing. OK, so what's the running time of this? How many people know the running time without having to write pseudocode for this? I know the answer beforehand, so I cheated, obviously. OK. Is it a? [INAUDIBLE] edges. Almost. Very close. [INTERPOSING VOICES] So, it's the topological. So, running time plus the running time for evaluating this. The running time for evaluating this is v plus e because you have every h shows up exactly once in here. So you have e terms. And you have v vertices, even if you don't have any edge, you have to initialize the verdicts. So that's why it's v plus e. It's also topological sort. So, this is the order in which we process this. So everything is v plus e. If we use this algorithm to solve this problem, what will the running time be? n. n squared. It's an no. So, it's v prime plus u prime, which is n squared plus [INAUDIBLE] squared, which is n squared. So, by observing that this graph is acyclic, we have a better running time than Bellman-Ford. Even though we used exactly the same intuition that we used up until now. Model the problem as a graph. Figure out what the edges are. Run a shortest path algorithm. We have a better shortest path algorithm, which works for Directed Acyclic Graphs, so we get a better running time. OK, questions for what we did so 11

12 far? It's [INAUDIBLE] on this graph here, then you would do the same thing. Take each node and then relax the incoming edges. Yeah. So what is the topological sort of this? [INAUDIBLE] It's exactly the cards in the order that they're on the board, right? So, in dynamic programming, the topological sort order is obvious. So the hard part is representing the state and figuring out what the dependencies are. So what the edges are. And after that, the topological sort usually comes, it's fairly straightforward. OK, so what we can do now, we have a few directions in which we can go. We can write the pseudocode for this. I mean, it's basically, it's just, we're going to write abstract things instead of this. So we're going to write one piece of pseudocode that evaluates these. So it's just generalizing this thing. Something else we can do is we can look at how would these things get computed using memoization? We can look at how we would compute shortest path in graphs with cycles. So this assumes we have a DAG. What if we have cycles? How do we deal with them? Or we can do another DP problem, and see how we'd model that. So, votes? What do people want to see? I think we might have time for two things, out of these four. So, everyone votes for one. And we'll start with that. Sorry? DP problem. OK, so one vote for DP problem. Yeah. OK. Cyclic. 12

13 Wait, you got two or one votes? One vote. OK. I'll DP. I'll stick with [INAUDIBLE]. DP. I think we're done here. All right. So, new DP problem. So, suppose you have something like Manhattan's map, which is basically a lattice. Fancy math term for a grid. And suppose it we can only go forward and down. So, all the streets are one way because they liked how people drive in San Francisco, and decided they're going to do the same craziness. So, we want to go from s to t. And there are different cost on all these edges. This is an n by m matrix. And I want to get from s to t in the shortest possible way. So, let's model the problem. And then let's do recursion formulas and make it look like a DP instead of like a graph problem because-- it might be too easy of a graph problem in hindsight. OK, so what's the graph problem? It's not equivalent. Topological sort. And then bfs. OK. Topological sort. And then, and then that. Well, let's write this as, let's say that each node is so let's say that the nodes have numbers, right? So this is 1,1 and this is 5,4. And I want to write this using math, so 2,1. 3,1. 4,1. 5,1. And then, 1,2. 1,3. 1,4. OK, so this is the graph. The shortest path from here to here is obvious. By the way, this is a real problem for people who don't see the connection between dynamic programming and graphs. I This problem has tripped up people on exams before. So it's not a toy problem. OK. 13

14 So, on an examine, would you have the option of just using a straight up graph algorithm-- Well, we're going to ask you to solve this using DP. So let's try to solve this using dynamic programming by writing recursion formulas. So, what's the shortest distance to 1,1. 0. OK, then. If I have a general distance, if I have some random node here, dij, how do I compute this? It's a minimum distance between the distance of law plus weights. Or the distance of j. i minus one. Yeah. So, i minus 1 j. Yeah. We get it. Plus the weight of the, yeah. Going from one to the other. OK, so the weight from i minus 1 j to ij. OK. And? j minus 1i. For i, j minus 1. ij minus 1. Plus weight of that ij. ij minus j1 to ij. ij [INAUDIBLE] OK. So these are the recursions. Now, how would I write the full set of code for this? So what's a valid topological sort for these guys? 1,1. 2,1. 3,1. Dials. 1,2. 14

15 The right dials. That's going to be hard to code. That's going to be easy to code. So I'm going to take your answer. OK. What? I'm not going to take your answer because your answer is correct, but it's hard to code. But isn't that the same thing [INAUDIBLE]? She says, go like this. Oh. Oh. So, here's how I'm going to code them. 4i in 1,2n. 4j in 1 to m. So, I guess, first off, if i is 1 and j is 1, then d of ij is 0, right? This is the base case. Otherwise, d of ij equals big bad formula that we have up there. OK. Do we need anything else? DP. This is DP. We're done. Is it? Almost work. Yeah, this is-- Over [INAUDIBLE]-- I thought this was just programming. --it's a dictionary, though. Yeah. It's programming. So this is the DP solution to the program because, instead of building the graph, you're writing the recursion. And you're writing using this implicit representation of the graph. 15

17 Wait. As you're going through-- Is there a dictionary? Sure. This is an array. Or dictionary. So, say this is ij. If it's an array, or if it's a dictionary, it would be d of the tuple ij. So, I can write this in Python, right? This is almost Python. What am I missing? [INAUDIBLE], or it fits inside. Yes. So, I have some boundary conditions, right? Because this guy would depend on this guy, which is inside. And left to depend on this guy. Which doesn't exist. Oh. I wasn't-- OK. Sure. So, we need a few more ifs here, for boundary conditions. I mean, in theory, though, you could just run through the new dfs and create a topological of the source. Right? And just run through that. Yeah. But that's so much code to write. Look at this. This is five lines. Well, yeah. For this particular problem, it's five lines. Well, for dynamic programming, the solutions are 5 to 10 lines in general. And the only hard thing in dynamic programming is figuring out what is the state going to be. So, after you get used to them, after you solve 10 or 20, when people come out of programming contests, and someone says, my solution's dynamic programming. Really? Wait, you can solve it that way. And he says, yeah. This is the state. And then everything else is obvious. Like, it's pretty easy to figure out everything else. The hard part is the state. So, it's enough to say my solution is dynamic programming. This is my state. You guys are probably going to have to say a bit more than that on the exam. But this is the hard part. 17

18 DP. No, you can't just say DP. You'll definitely need at least a state. OK. So. You're also missing a state for deciding stuff in the dictionary, though, right? Before deciding if my key is already in the dictionary? Well, so, aside from the boundary conditions here, if I compute this here, it depends on theses two, right? Are they going to be in the dictionary? Not yet. Why? If I'm running this way, so if I'm computing all my values in this order. So the first line one. Then line two. Then line three. They're already going to be in the dictionary. So this is because I'm doing topological sort. You don't need memoization if you're not using the topological sort of the graph. You only need memoization if you don't. So, why are we doing boundaries commissions if-- Because-- [INAUDIBLE]. So, I'm doing a boundary condition because if I paste this in if I paste this thing in, then when I am here, this is going to refer to this guy. Which is fine. But it's also going to refer to 2,0. Which doesn't exist. So the code might be a bit obfuscated by the boundary conditions. But it's 10 lines of code. It's pretty nice and straightforward. OK, now what is dynamic programming? I like that question. So, a key property, I don't think it was mentioned in lecture. Guys, correct me if I'm wrong. It's called optimal substructure. Does that ring a bell? Probably going to hear about it next time, so. Optimal substructure. So, the point of optimal substructure is, suppose I have a shortest path from s to g. 18

19 Right? so, suppose I have shortest path from s to g. And that path is called p. Now, suppose this path goes through d. So, path from s to g is actually s making a path through d. And then there's another path going from d to g. This path over here, p1. p1 is guaranteed to be the shortest path, or a shortest path, from s to d. So this is the big solution. It's optimal because we say it's the solution to the problem. This is a part of the solution. This part of the solution is optimal for this part of the problem. So the part of the problem is getting from s to d. The part of the big optimal solution is optimal-- so the small part of the big solution is optimal with respect to the small problem. So p1 has to be a shortest path from s to d. Do you guys want to see a proof by contradiction? Or do take my word for it? Does anyone want to? So, intuitively, the idea is that if you had the better path here, say that path would be s3, then I could replace this, sorry. p3. I could replace this with p3. And I would have a better path overall. And that would contradict the fact that this is the best path. So this part of the path has to be a shortest path to get from s to d. So I've broken up my problem to get from s to g, into saying, I want to get from s to d, from s to e. Or, from s to f and then cross one edge. And then the ways I get from s to d from s to e, or from s to f, have to be optimal. I've already encoded that here. And nobody asked me, yo, is this true? Can I take a longer path here? And have a better solution? The answer is no. In some problems, the answer is yes. Those are not problems that you can solve with dynamic programming. if, in your problems, that's the case, you probably forgot to account for some part of the state. What kind of problems would it be where that wouldn't be true? Well, remember the quiz problem with the gas stations? If you don't account for the gas, if you do Dijkstra, then, well. Guess what? Shortest path in the graph, if that doesn't account for gas stops, if you start accounting for the cost of refilling, this path might be longer than a path that goes like this. 19

20 So, it's longer in terms of road stalls. But has fewer, or has cheaper, gas stations on the way. So then, there's no optimal substructure. And that's because you didn't account for the fuel states. OK. Probably not the best example. Sorry for bringing up painful memories. But the point is, usually when you have this with our problems, you didn't account for the state. All the problems that are solved with dynamic programming have this thing called optimal substructure. And this is sort of how it works. OK. I have no idea how much time I have because my phone crashed. So can anyone help me? Five minutes. 10 minutes. Sorry. Seven minutes. OK. What else do you guys want to see? Cycles. [INAUDIBLE]. OK. Is everyone happy with cycles? OK. Almost everyone, so that's good enough. OK. Let's do cycles. We have seven minutes. So, suppose I have this graph. Source going a going to be going to c. And then the costs are 1 minus Can I solve it using that method? Probably not. Let's try to write the recursions to see what we get for the formulas. So, dsa is minimum. Yeah, it's 1. But it's the minimum of dss plus weight sa. ds-- well, almost. Actually, it's not 1. Likely. You're confusing me again. There's one more edges that they have to account for. Oh. 20

21 dsc plus weight. I'm going to fail today. I'm tired. ca. OK. So we accounted for both edges coming in now. dsb is minimum of dsa plus weight ab. dsc is minimum of dsb plus weight bc. Right? And dss is 0 because we promised that's how we start. OK. Now what if I try evaluate these? Is there a sane order in which I can evaluate them? Nope. Let's see why. If I try to evaluate sa, this depends on sc. Which we don't have yet. sc is here. sc depends on sb. sb is here. And it depends on sa. Which was. So we have this infinite recursion, right? They all depend on each other. There's a loop here. There's a negative cycle. Can't use this algorithm. That's a shame. What can we do instead? Show a negative node. A negative weight. half. Sorry? Can we just get rid of the negative weight half? No. That's the best edge. That's probably going to be part of the solution, right? Can we add 1 to all the edges? That's still going to have a cycle. I still won't be able to run this. Oh, yeah. Bellman-Ford. Bellman-ford. That's not dynamic. OK. Well, one way to do it is Bellman-Ford, right? Another way, which we went 21

22 through last time, is to break the cycle. And the way we break the cycle is we add the path length into the equation. So, I'm going to look at the distance from a source to some node, so the distance from a source to some node, as the distance from the source to some other node plus the edge weight. This is what I had before, right? Nothing new here. So dsv is the minimum over all the edges of dsu plus weight uv, Right? Minimum over all uv. That's our edges. Right? This is the old stuff. Now, we're going to say this instead. The distance from s to v, using a path of length k, is the minimum over all the edges of the distance from s to u, using a path of what length? If this path is length k. So k edges. How many edges do I have here? k equals 1. So this is distance su using k minus 1 plus the weight of uv. So what's the difference between the two? So, this will always decrease. So I guarantee that they will not have an infinite recursion. This is the magic that makes it work. Now, an equivalent way of looking at this, is building a graph. That's what we've been doing so far. So let's build an equivalent graph to this. [INAUDIBLE] It's going to get to 0 eventually, right? So when k is 0, the distance from the source to itself is 0. But the distance from the source to any other nodes is infinity. Because from the source, we can't get to anywhere else in 0 edges. We can't teleport. So let's build a graph to get the intuition for this. This looks mathy. This looks too mathy. So, at the first layer, you only have the source. You can only get from the source to itself by not crossing any edges. At level one, you potentially have all the nodes. If the source is connected to 22

23 everything, you might have all the nodes. So, s1, a1, b1, c1. Where can you get from the source? To a. To a. What's the cost of the edge? 1. OK. Now, let's build a second layer. s2, a2, b2, c2. So someone tell me the edges. So, assuming I can get to this node using one edge, how can I get to this other node using two edges? A to b. OK. a to b. a1 to b2. 2. OK. Cost? 1 [INAUDIBLE]. A1 to c-- That's negative 1. a1 to b2. Thank you. OK. [INAUDIBLE]. Sorry? Are we doing anything else? I think so. So, if I'm at b using one edge, I can get to c using two edges. Cost? 1. OK. If I'm at c using one edge-- 23

24 a. --using two edges. Cost? 1. OK. And if I'm at s using one edge? a. [INAUDIBLE] Can you? There's now edge. There's no edge. I thought it was just like an assumed edge. Nope. Nope. Not an edge. As to a, cost? OK. Let's build a third level. s3, a3, b3, c3. Someone dictate the edges please. S2 to a3. With 1. I mean, it's going to be the exact same. Yep. a2 to b3 minus 1. b2 to c3 1. And c2 to a3 1. So these are exactly the same edges, right? Because they're the original edges in the graph. Every edge in the graph can connect to levels here. So, all edges. All edges. All edges from s. How many layers do I need? e. OK. Pretty close. Let's try something smaller. a. 24

25 Oh. That makes no sense. So, what's the longest path in a graph? Graph of v vertices. What is the longest path? The number [INAUDIBLE]. The longest shortest path. v minus 1. v minus 1. That's how Bellman-Ford has v minus 1 runs, right? Oh. So, a shortest path can't have a cycle. If it has a cycle, then it means it's an infinite cycle. So there's no solution. Shortest paths have no cycles therefore, even if they go through the entire graph, they're going to have v minus 1 edges. So I'm going to have v minus 1 layers. Here, I drew three layers, so I'm done. That's why I stopped at three. So let's see how many nodes and how many edges we're going to have if we do this transformation. v prime is-- so, how many times am I going to copy the graph? Two or thee times. Three times. OK. And in general terms? v minus 1. v minus 1 times. OK. So I'm going to copy the graph v minus 1 times. And then I'm going to add that one source, right? Doesn't really matter because it's order of b squared. How many edges? 25

26 [INAUDIBLE] Order of v times e. We can do the math that's whatever. Let's say it's something like this. So the running time-- this graph is acyclic, right? All the nodes are going forward. The new graph that I have here. Yeah. So, I can use the DAG algorithm. So the running time, if I use the DAG algorithm, is v prime plus e prime. Which is? v. Thank you. Or is it ve? So, it's v squared plus ve, which is ve, for most purposes. And this is? Bellman-Ford. Bellman-Ford. So this is Bellman-Ford. This is what Bellman-Ford does. Except when you're coding it up, it relaxes the edges in a different way. But this is the intuition behind Bellman-Ford. And this is an easy way to see why Bellman-Ford works. So, practically, we really wouldn't want to do dynamic programming. We just want to run Bellman-Ford because that's less code, right? So, this is the dynamic programming view of Bellman-Ford. Write Bellman-Ford. There's a reason why we taught you to write it that way. It's going to be shorter. This just gives you more intuition. And it shows you how the DAG algorithm relates to Bellman-Ford. And this is how we handle cycles, which are removed. So, that means I have fulfilled my promise of covering two of the issues that I had on the board. 26

27 Yes. So any questions about this? So, we didn't do the pseudocode for the shortest path using DAGs. The code that we gave you in the code handout matches the pseudocode that you'd write. Yes? So, if all edges were negative 1 here, except for the top edge, looking at this graph over here, how would the search go through, such that it would find, lik,e negative two weight half? So these edges are minus 1? Yeah. Well, do you have a solution in this case? It's no. No. But you could have this, right? And expect the whole thing to work. No, that's still not, that's not making sense. Is it? It's negative 1 cycle. Oh, yeah. That's unfortunate. OK. Never mind. Do like this? OK. So, also, looking at the graph, there's only one natural path that you can take. Yep. So, if I go from s to c, like this, sabc, this is going to be s0, a1, b2, c3. So, all the paths go ahead. So, what if I wanted to find the shortest path to s to b? Like, in terms of actually writing an algorithm, would it be s0, a1, b2, or s1? a2, b3. OK. So, if you actually want to read the shortest path, then the shortest path could have length 1, length 2, or length 3, right? I don't know. So I would have to look at all these. 27

28 Oh. OK. So you just run it from s0 to any b, basically. So, the algorithm that we have there computes the path from one source to everything else. So I run it. It runs. Computes all the shortest paths. And then I have to read these ones. And get the smallest one. That's a question. Thank you. Yeah, that is a detail that I left out. Thank you. So, no more cycles. OK. Any other questions? Yes? I'm still, like, on the initial problem and stuff. A bit of a disconnect. When you were underlining stuff, like the sa, it seemed to me that, like, in that case, when you're going forward, you're never going to stop because you're doing recursion. So you never have a beginning point, almost. Effectively, if you, like-- So, do you mean here? Well, yeah. So, in that case, this is the beginning point. Right. If I go through the nodes in the topological sort order, then all I need is one beginning point. Because everything else will refer back to that. There has to be a topological sort order. And the first node in that order is my source. And, if we have cycles, then the beginning conditions are here. So that's why I'm only drawing this vertex. Because these other vertices wouldn't be useful. OK. So then, that being said, don't forget your quizzes and happy Thanksgiving. 28

### MITOCW R22. Dynamic Programming: Dance Dance Revolution

MITOCW R22. Dynamic Programming: Dance Dance Revolution The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational

### MITOCW R3. Document Distance, Insertion and Merge Sort

MITOCW R3. Document Distance, Insertion and Merge Sort The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational

### MITOCW R18. Quiz 2 Review

MITOCW R18. Quiz 2 Review The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW R7. Comparison Sort, Counting and Radix Sort

MITOCW R7. Comparison Sort, Counting and Radix Sort The following content is provided under a Creative Commons license. B support will help MIT OpenCourseWare continue to offer high quality educational

### MITOCW R9. Rolling Hashes, Amortized Analysis

MITOCW R9. Rolling Hashes, Amortized Analysis The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources

### MITOCW R13. Breadth-First Search (BFS)

MITOCW R13. Breadth-First Search (BFS) The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources

### MITOCW R11. Principles of Algorithm Design

MITOCW R11. Principles of Algorithm Design The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources

### MITOCW 15. Single-Source Shortest Paths Problem

MITOCW 15. Single-Source Shortest Paths Problem The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational

### MITOCW watch?v=fp7usgx_cvm

MITOCW watch?v=fp7usgx_cvm Let's get started. So today, we're going to look at one of my favorite puzzles. I'll say right at the beginning, that the coding associated with the puzzle is fairly straightforward.

### MITOCW watch?v=-qcpo_dwjk4

MITOCW watch?v=-qcpo_dwjk4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW watch?v=krzi60lkpek

MITOCW watch?v=krzi60lkpek The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW 7. Counting Sort, Radix Sort, Lower Bounds for Sorting

MITOCW 7. Counting Sort, Radix Sort, Lower Bounds for Sorting The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality

### MITOCW Mega-R4. Neural Nets

MITOCW Mega-R4. Neural Nets The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free.

### MITOCW watch?v=guny29zpu7g

MITOCW watch?v=guny29zpu7g The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW 22. DP IV: Guitar Fingering, Tetris, Super Mario Bros.

MITOCW 22. DP IV: Guitar Fingering, Tetris, Super Mario Bros. The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality

### MITOCW 23. Computational Complexity

MITOCW 23. Computational Complexity The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for

### MITOCW watch?v=6fyk-3vt4fe

MITOCW watch?v=6fyk-3vt4fe Good morning, everyone. So we come to the end-- one last lecture and puzzle. Today, we're going to look at a little coin row game and talk about, obviously, an algorithm to solve

### MITOCW ocw f08-lec36_300k

MITOCW ocw-18-085-f08-lec36_300k The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free.

### MITOCW 6. AVL Trees, AVL Sort

MITOCW 6. AVL Trees, AVL Sort The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free.

### MITOCW 8. Hashing with Chaining

MITOCW 8. Hashing with Chaining The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free.

### MITOCW Recitation 9b: DNA Sequence Matching

MITOCW Recitation 9b: DNA Sequence Matching The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources

### MITOCW ocw lec11

MITOCW ocw-6.046-lec11 Here 2. Good morning. Today we're going to talk about augmenting data structures. That one is 23 and that is 23. And I look here. For this one, And this is a -- Normally, rather

### MITOCW mit_jpal_ses06_en_300k_512kb-mp4

MITOCW mit_jpal_ses06_en_300k_512kb-mp4 FEMALE SPEAKER: The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational

### MITOCW MITCMS_608S14_ses03_2

MITOCW MITCMS_608S14_ses03_2 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free.

### MITOCW watch?v=fll99h5ja6c

MITOCW watch?v=fll99h5ja6c The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW Lec 25 MIT 6.042J Mathematics for Computer Science, Fall 2010

MITOCW Lec 25 MIT 6.042J Mathematics for Computer Science, Fall 2010 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality

### MITOCW watch?v=uk5yvoxnksk

MITOCW watch?v=uk5yvoxnksk The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW mit-6-00-f08-lec06_300k

MITOCW mit-6-00-f08-lec06_300k ANNOUNCER: Open content is provided under a creative commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free.

### The following content is provided under a Creative Commons license. Your support will help

MITOCW Lecture 4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make a donation

### MITOCW watch?v=dyuqsaqxhwu

MITOCW watch?v=dyuqsaqxhwu The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW watch?v=vyzglgzr_as

MITOCW watch?v=vyzglgzr_as The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### Proven Performance Inventory

Proven Performance Inventory Module 4: How to Create a Listing from Scratch 00:00 Speaker 1: Alright guys. Welcome to the next module. How to create your first listing from scratch. Really important thing

### MITOCW watch?v=1qwm-vl90j0

MITOCW watch?v=1qwm-vl90j0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW watch?v=2g9osrkjuzm

MITOCW watch?v=2g9osrkjuzm The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW Project: Backgammon tutor MIT Multicore Programming Primer, IAP 2007

MITOCW Project: Backgammon tutor MIT 6.189 Multicore Programming Primer, IAP 2007 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue

### SOAR Study Skills Lauri Oliver Interview - Full Page 1 of 8

Page 1 of 8 Lauri Oliver Full Interview This is Lauri Oliver with Wynonna Senior High School or Wynonna area public schools I guess. And how long have you actually been teaching? This is my 16th year.

### Common Phrases (2) Generic Responses Phrases

Common Phrases (2) Generic Requests Phrases Accept my decision Are you coming? Are you excited? As careful as you can Be very very careful Can I do this? Can I get a new one Can I try one? Can I use it?

### MITOCW 11. Integer Arithmetic, Karatsuba Multiplication

MITOCW 11. Integer Arithmetic, Karatsuba Multiplication The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational

### I'm going to set the timer just so Teacher doesn't lose track.

11: 4th_Math_Triangles_Main Okay, see what we're going to talk about today. Let's look over at out math target. It says, I'm able to classify triangles by sides or angles and determine whether they are

### Multimedia and Arts Integration in ELA

Multimedia and Arts Integration in ELA TEACHER: There are two questions. I put the poem that we looked at on Thursday over here on the side just so you can see the actual text again as you're answering

### Transcriber(s): Yankelewitz, Dina Verifier(s): Yedman, Madeline Date Transcribed: Spring 2009 Page: 1 of 22

Page: 1 of 22 Line Time Speaker Transcript 11.0.1 3:24 T/R 1: Well, good morning! I surprised you, I came back! Yeah! I just couldn't stay away. I heard such really wonderful things happened on Friday

### Transcriber(s): Yankelewitz, Dina Verifier(s): Yedman, Madeline Date Transcribed: Spring 2009 Page: 1 of 27

Page: 1 of 27 Line Time Speaker Transcript 16.1.1 00:07 T/R 1: Now, I know Beth wasn't here, she s, she s, I I understand that umm she knows about the activities some people have shared, uhhh but uh, let

### MITOCW watch?v=tw1k46ywn6e

MITOCW watch?v=tw1k46ywn6e The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### Autodesk University More Practical Dynamo; Practical Uses for Dynamo Within Revit

Autodesk University More Practical Dynamo; Practical Uses for Dynamo Within Revit Hello, everyone. How's everyone doing? All right! Everyone excited to learn about Dynamo? Yeah! Welcome, everyone, to the

### Elizabeth Jachens: So, sort of like a, from a projection, from here on out even though it does say this course ends at 8:30 I'm shooting for around

Student Learning Center GRE Math Prep Workshop Part 2 Elizabeth Jachens: So, sort of like a, from a projection, from here on out even though it does say this course ends at 8:30 I'm shooting for around

MITOCW watch?v=cnb2ladk3_s The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### 10 Copy And Paste Templates. By James Canzanella

10 Copy And Paste Email Templates By James Canzanella 1 James Canzanella All Rights Reserved This information is for your eyes only. This ebook is for your own personal use and is not to be given away,

### MITOCW Advanced 2. Semantic Localization

MITOCW Advanced 2. Semantic Localization The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources

### The following content is provided under a Creative Commons license. Your support

MITOCW Recitation 7 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To make

### How to Close a Class

Teresa Harding's How to Close a Class This can often be one of the scariest things for people. People don't know what to say at the end of the class or when they're talking with someone about the oils.

### The following content is provided under a Creative Commons license. Your support

MITOCW Lecture 12 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make a

### MITOCW MIT6_172_F10_lec13_300k-mp4

MITOCW MIT6_172_F10_lec13_300k-mp4 The following content is provided under a Creative Commons license. Your support help MIT OpenCourseWare continue to offer high quality educational resources for free.

### Authors: Uptegrove, Elizabeth B. Verified: Poprik, Brad Date Transcribed: 2003 Page: 1 of 8

Page: 1 of 8 1. 00:01 Jeff: Yeah but say, all right, say we're doing five choose two, right, with this. Then we go five factorial. Which is what? 2. Michael: That'll give you all the they can put everybody

### Using Google Analytics to Make Better Decisions

Using Google Analytics to Make Better Decisions This transcript was lightly edited for clarity. Hello everybody, I'm back at ACPLS 20 17, and now I'm talking with Jon Meck from LunaMetrics. Jon, welcome

### MITOCW watch?v=k79p8qaffb0

MITOCW watch?v=k79p8qaffb0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW watch?v=zkcj6jrhgy8

MITOCW watch?v=zkcj6jrhgy8 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### Welcome to our first of webinars that we will. be hosting this Fall semester of Our first one

0 Cost of Attendance Welcome to our first of --- webinars that we will be hosting this Fall semester of. Our first one is called Cost of Attendance. And it will be a 0- minute webinar because I am keeping

### CS103 Handout 25 Spring 2017 May 5, 2017 Problem Set 5

CS103 Handout 25 Spring 2017 May 5, 2017 Problem Set 5 This problem set the last one purely on discrete mathematics is designed as a cumulative review of the topics we ve covered so far and a proving ground

### 2015 Mark Whitten DEJ Enterprises, LLC 1

All right, I'm going to move on real quick. Now, you're at the house, you get it under contract for 10,000 dollars. Let's say the next day you put up some signs, and I'm going to tell you how to find a

### Instructor (Mehran Sahami):

Programming Methodology-Lecture21 Instructor (Mehran Sahami): So welcome back to the beginning of week eight. We're getting down to the end. Well, we've got a few more weeks to go. It feels like we're

### PATRICK WINSTON: It's too bad, in a way, that we can't paint everything black, because this map coloring

MITOCW Lec-08 PROF. PATRICK WINSTON: It's too bad, in a way, that we can't paint everything black, because this map coloring problem sure would be a lot easier. So I don't know what we're going to do about

### MITOCW ocw f07-lec25_300k

MITOCW ocw-18-01-f07-lec25_300k The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free.

### How to Help People with Different Personality Types Get Along

Podcast Episode 275 Unedited Transcript Listen here How to Help People with Different Personality Types Get Along Hi and welcome to In the Loop with Andy Andrews. I'm your host, as always, David Loy. With

### The Open University xto5w_59duu

The Open University xto5w_59duu [MUSIC PLAYING] Hello, and welcome back. OK. In this session we're talking about student consultation. You're all students, and we want to hear what you think. So we have

### On Nanotechnology. Nanotechnology 101 An Interview with Dr. Christopher Lobb Professor, UM Physics. Research Spotlight - Issue 3 - April 2000

On Nanotechnology Nanotechnology 101 An Interview with Dr. Christopher Lobb Professor, UM Physics Dr. Christopher Lobb (left) answers questions on nanotechnology posed by Photon editor Hannah Wong (right).

### 6.00 Introduction to Computer Science and Programming, Fall 2008

MIT OpenCourseWare http://ocw.mit.edu 6.00 Introduction to Computer Science and Programming, Fall 2008 Please use the following citation format: Eric Grimson and John Guttag, 6.00 Introduction to Computer

### MITOCW watch?v=ir6fuycni5a

MITOCW watch?v=ir6fuycni5a The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW Project: Battery simulation MIT Multicore Programming Primer, IAP 2007

MITOCW Project: Battery simulation MIT 6.189 Multicore Programming Primer, IAP 2007 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue

### SDS PODCAST EPISODE 198 FIVE MINUTE FRIDAY: TWO MILLIMETER SHIFTS

SDS PODCAST EPISODE 198 FIVE MINUTE FRIDAY: TWO MILLIMETER SHIFTS This is FiveMinuteFriday episode 198. This is five minute Friday, episode number 198, Two Millimeter Shifts. Welcome back to the Super

### MITOCW watch?v=sozv_kkax3e

MITOCW watch?v=sozv_kkax3e The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MATH 16 A-LECTURE. OCTOBER 9, PROFESSOR: WELCOME BACK. HELLO, HELLO, TESTING, TESTING. SO

1 MATH 16 A-LECTURE. OCTOBER 9, 2008. PROFESSOR: WELCOME BACK. HELLO, HELLO, TESTING, TESTING. SO WE'RE IN THE MIDDLE OF TALKING ABOUT HOW TO USE CALCULUS TO SOLVE OPTIMIZATION PROBLEMS. MINDING THE MAXIMA

### >> Counselor: Hi Robert. Thanks for coming today. What brings you in?

>> Counselor: Hi Robert. Thanks for coming today. What brings you in? >> Robert: Well first you can call me Bobby and I guess I'm pretty much here because my wife wants me to come here, get some help with

### MITOCW watch?v=x05j49pc6de

MITOCW watch?v=x05j49pc6de The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### Buying and Holding Houses: Creating Long Term Wealth

Buying and Holding Houses: Creating Long Term Wealth The topic: buying and holding a house for monthly rental income and how to structure the deal. Here's how you buy a house and you rent it out and you

### MITOCW watch?v=2ddjhvh8d2k

MITOCW watch?v=2ddjhvh8d2k The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### Authors: Uptegrove, Elizabeth B. Verified: Poprik, Brad Date Transcribed: 2003 Page: 1 of 7

Page: 1 of 7 1. 00:00 R1: I remember. 2. Michael: You remember. 3. R1: I remember this. But now I don t want to think of the numbers in that triangle, I want to think of those as chooses. So for example,

### 0:00:00.919,0:00: this is. 0:00:05.630,0:00: common core state standards support video for mathematics

0:00:00.919,0:00:05.630 this is 0:00:05.630,0:00:09.259 common core state standards support video for mathematics 0:00:09.259,0:00:11.019 standard five n f 0:00:11.019,0:00:13.349 four a this standard

### Interviewing Techniques Part Two Program Transcript

Interviewing Techniques Part Two Program Transcript We have now observed one interview. Let's see how the next interview compares with the first. LINDA: Oh, hi, Laura, glad to meet you. I'm Linda. (Pleased

### MITOCW watch?v=3v5von-onug

MITOCW watch?v=3v5von-onug The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### Whereupon Seymour Pavitt wrote a rebuttal to Dreyfus' famous paper, which had a subject heading, "Dreyfus

MITOCW Lec-06 SPEAKER 1: It was about 1963 when a noted philosopher here at MIT, named Hubert Dreyfus-- Hubert Dreyfus wrote a paper in about 1963 in which he had a heading titled, "Computers Can't Play

### Autodesk University Texting Gone Wild; Advanced Annotation Tips and Tricks for Fabrication CADmep

Autodesk University Texting Gone Wild; Advanced Annotation Tips and Tricks for Fabrication CADmep I want to start out with just a little introduction, obviously. Because see a lot of familiar faces in

### OKAY. TODAY WE WANT TO START OFF AND TALK A LITTLE BIT ABOUT THIS MODEL THAT WE TALKED ABOUT BEFORE, BUT NOW WE'LL GIVE IT A

ECO 155 750 LECTURE FIVE 1 OKAY. TODAY WE WANT TO START OFF AND TALK A LITTLE BIT ABOUT THIS MODEL THAT WE TALKED ABOUT BEFORE, BUT NOW WE'LL GIVE IT A LITTLE BIT MORE THOROUGH TREATMENT. BUT THE PRODUCTION

### Dialog on Jargon. Say, Prof, can we bother you for a few minutes to talk about thermo?

1 Dialog on Jargon Say, Prof, can we bother you for a few minutes to talk about thermo? Sure. I can always make time to talk about thermo. What's the problem? I'm not sure we have a specific problem it's

### COLD CALLING SCRIPTS

COLD CALLING SCRIPTS Portlandrocks Hello and welcome to this portion of the WSO where we look at a few cold calling scripts to use. If you want to learn more about the entire process of cold calling then

### MITOCW watch?v=c6ewvbncxsc

MITOCW watch?v=c6ewvbncxsc The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

### ECO LECTURE 36 1 WELL, SO WHAT WE WANT TO DO TODAY, WE WANT TO PICK UP WHERE WE STOPPED LAST TIME. IF YOU'LL REMEMBER, WE WERE TALKING ABOUT

ECO 155 750 LECTURE 36 1 WELL, SO WHAT WE WANT TO DO TODAY, WE WANT TO PICK UP WHERE WE STOPPED LAST TIME. IF YOU'LL REMEMBER, WE WERE TALKING ABOUT THE MODERN QUANTITY THEORY OF MONEY. IF YOU'LL REMEMBER,

### Lesson 01 Notes. Machine Learning. Difference between Classification and Regression

Machine Learning Lesson 01 Notes Difference between Classification and Regression C: Today we are going to talk about supervised learning. But, in particular what we're going to talk about are two kinds

### MITOCW MITCMS_608S14_ses05

MITOCW MITCMS_608S14_ses05 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

### MITOCW watch?v=tssndp5i6za

MITOCW watch?v=tssndp5i6za NARRATOR: The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for

### 2015 Mark Whitten DEJ Enterprises, LLC 1

Now what we going to do is we going to talk about setting up a business, all right? As you see on the screen, it's says, "Setting Up Your LLCs". What's an LLC? An LLC is a limited liability company. Why

### The following content is provided under a Creative Commons license. Your support will help

MITOCW Lecture 20 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make a

### First Tutorial Orange Group

First Tutorial Orange Group The first video is of students working together on a mechanics tutorial. Boxed below are the questions they re discussing: discuss these with your partners group before we watch

### Autodesk University Advanced Topics Using the Sheet Set Manager in AutoCAD

Autodesk University Advanced Topics Using the Sheet Set Manager in AutoCAD You guys, some of you I already know, and some of you have seen me before, and you've seen my giant head on the banner out there.

### MITOCW watch?v=ku8i8ljnqge

MITOCW watch?v=ku8i8ljnqge The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

### Module 1: From Chaos to Clarity: Traders Let s Get Ready for 2015!

Module 1: From Chaos to Clarity: Traders Let s Get Ready for 2015! Hi, this is Kim Krompass and this is Module 1: From Chaos to Clarity: Trader's Let's Get Ready for 2015! In this module, I want to do

### Results of 1,000 Phone Calls!

Results of 1,000 Phone Calls! by Robert Blackman Scared to death to pick up the phone? Have you got the phone blues? Don t worry so did I, until I got on the phone like a bull-dog and decided to make 1,000

### Well, it's just that I really wanted to see the chocolate market for myself after seeing how enthusiastic you were about it last year

Woah~ It's crazy crowded Waahh~ The Valentine chocolate market is finally here~! Wow You can eat any kind of chocolate you can think of there! Chocolates with chewy centers, chocolate drinks, and even

### Autodesk University I Feel the Need, the Need for Speed AutoCAD Electrical Automation

Autodesk University I Feel the Need, the Need for Speed AutoCAD Electrical Automation Good afternoon, everyone. Welcome to I Feel the Need, the Need for Speed, AutoCAD Electrical Automation. Let me go