Lec-19 Network Models

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
In this lecture, we will discuss network models. What is a network model? We have already seen the transportation problem and the assignment problem. Let us take the transportation problem, first. A simple transportation problem would mean we may have three supply points and four demand points or destination points. In a transportation problem, we say that the availabilities are a1, a2, a3 in these three supply points and b1, b2, b3, b4 in these four demand points. We also have a cost of transportation, which is given by Cij, which is the cost of unit transportation from i to j. The problem is: Given the a1, a2 and a3 which are the supplies which have to be transported to b1, b2, b3 and b4 how much do we send from i to j, which is Xij such that the total cost of transportation which is sigma CijXij summed over i and summed over j is minimized. This is the transportation problem and this is an example of a network problem because we have represented the problem on a network. In this transportation problem we assume that each of the supply points is actually connected to each of the requirement or destination point. This is the graph or the network that represents the transportation problem. In fact, we have already seen this earlier in the fundamentals course. We have also seen the similar representation of the assignment problem. What are the network models? Are there network problems other than the transportation and assignment problems? What are the problems we are going to see in this advanced operational research course? Since we have already seen the transportation and assignment problems we will not go deeper into them. We will look at some more network problems namely: one is a minimum spanning tree problem, we will see the shortest path problem; we will see the maximum flow problem; we will see the minimum cost float problem. We will look at all these four new problems under the network models and we will see more than one algorithm or more than one way of solving each of these problems. Before we begin the minimum spanning tree which is the first one that we consider? We also understand that for every network problem there is an underlying graph or a network. A graph from basic definitions is a collection of nodes and arcs. Each of these vertices is called a node. A node is also called the vertex or vertices. Arcs are the connectivities between the nodes and these are also called edges. This graph or a network is also characterizsed by two things: one is the direction that there is an arc from i to j, specific to the transportation problem, we do not have arcs from j to i but there could be other network problems where we could have an arc from i to j and another arc from j to Ii; another thing that characterizses this network is this weight which in the context of the transportation problem, represents the unit cost of transportation from i to j where there is an arc from i to j. This weight can be a cost, it can be time, it can be distance or it can be any other number that represents some form of relationship among these nodes and are represented as weights of the arcs. The network problems that we will be looking at will be based on graphs which have nodes and arcs. Most of the network problems will be directed network problems. Only one of them that we will see is the minimum spanning tree is not directed. There is a weight associated with every arc in the network. There are also some connectivity issues. For example, in the transportation problem you can always separate the transportation problem into two sets: set of supplies and set of destination. There are arcs only from a supply node to a destination node. You do not find an arc from a destination node to a supply node. You will not find arcs that connect the supply nodes. You will not find arcs that connect the destination nodes and so on. This is a special type of a graph which is called a bipartite. But the network problems that we are going to look at, in addition to transportation and assignment which we have already seen now, all four of them will have networks which are comprised of nodes and arcs. They will have weights, but for the minimum spanning tree; the rest of them will have directed arcs. The first network problem that we will look at is called the minimum spanning tree. We will look at the minimum spanning tree using a particular example. I will also try and describe what a minimum spanning tree is. Let us consider this network. This network has five nodes or vertices which are 1, 2, 3, 4 and 5 and it has several arcs that connect these nodes or vertices. For example, 1 to 2 is an arc. Each arc has a weight, for example: arc 1- 2 has weight equal to 5, arc 2-3 has weight equal to 7, and so on. This network is not directed. There is no specific direction saying that the arc is from 1 to 2. Now, this 5 would mean that 1 and 2 are connected, so it would represent both 1 to 2, as well as 2 to 1. What is a minimum spanning tree problem? Before we get into the definition of what is a minimum spanning tree, I will also have to define, what a tree is? What is a spanning tree and then what is a minimum spanning tree? Let us consider a few simple graphs and try to understand the concept of a tree. Let us look at this graph which I call as G. This graph has four vertices, three arcs and it is connected. Now, I have to define what connected graph is? If I take any i j, say 1- 2 or 1-3 or 3-4 and 3-4 there is a path, I can go from i to j. For example, if I look at 1-4, then there is a path 1to 2, 2 to 3, 3 to 4. For every i-j there is a path such a graph is called a connected graph. This has four vertices, three arcs or edges and is connected. For example, if I consider another graph like this, which I may call G dash, there are three vertices 1, 2 and 3. There is only one edge which connects 1 and 2. This is not connected because there is no path between 1 and 3. So, this is not connected. If I consider another graph like this, 1 to 2, 2 to 3, 3 to 4 and again 4 to 1. This graph has four vertices, four edges and is connected. It is possible to find a path from every i, j on this. This one is called tree and this one is not a tree. What characterises characterizes a tree? In a given graph, if it has one vertex, it has n minus 1 edges and it is connected, then it becomes a tree. Now, this is a tree, this is not a tree, even though for one vertex it is connected but it has more than n minus 1edges. It is also obvious that for a graph to be connected and for the graph if it has n vertices, then for it to be connected it should have greater than or equal to (n minus 1) edges and so on. Given these graphs we understand that this is a tree. We get into other questions. Can the graph itself be a tree or can I get a subset from a graph which is actually a tree? Let us go back to this particular graph. The earlier one we showed here, this is the graph G and this itself is a tree. If I take a graph like this, say, I call this as H. Then, I may get a subgraph from this; now, this is a tree. From a given graph, I may get a subgraph which is a tree. From this same graph, I may get a subgraph, now this is also a tree. The difference is, this subgraph is a tree; it has four vertices; it has three edges and it is connected. This is also a tree. This has three vertices, two edges and it is connected. Both these graphs are subgraphs out of this. This is an example where the given graph itself is a tree. So we can generalise generalize this by saying that if the given graph is a tree, then there is only one tree; whereas, if the given graph is connected and it is not a tree, it is possible to get subgraphs from the given graph, which are trees. From this there are four vertices. This is a tree with four vertices. This is a tree with three vertices. For example, this is a given graph, so this is also a tree with four vertices and three edges which is different from this tree. So, when the given graph is connected and it is not a tree, then it is possible to get trees more than one which has exactly the same number of vertices as the original graph. It is also possible to get trees more than one where, the set of nodes or vertices is a sub set of this. This is an example where this is a tree but, it does not contain all the vertices of the original graph. This is an example where it is a tree; it contains all the vertices of the original graph. Those trees which are taken from a given graph, which contain all the vertices are called spanning trees. We take this graph H, this is a spanning tree, this is not a spanning tree, though it is a tree which is pulled out from this graph H. So given graph H, if it is connected, may have more than one spanning tree. This is one spanning tree, this is one spanning tree, this is not a spanning tree so we are not interested in looking at this because the emphasis is to find out a spanning and then describe what a minimum spanning tree is. Given a graph like this, we are right now interested in spanning trees, either this or this. We are not interested in this tree because this tree is not a spanning tree. We can have more than one spanning tree from a given graph. Let us try and add some weights into this graph. Suppose I say, the weight here is 8, the weight here is 10, the weight here is 6 and the weight here is 4. If I look at this spanning tree and simply put the weights associated with this, this spanning tree has total weight equal to 10 plus 8 is equal to18 plus 4 is equal to 22. If I look at this spanning tree I get 8, 10 and 6. So, W is equal to 24, 10 plus 8 is equal to 18 plus 6 is equal to 24. If the graph is weighted and has weights, then every spanning tree that you can pull out, remember that we can pull out more than one spanning tree. So, every spanning tree that we can pull out now has an associated weight. This spanning tree has weight equal to 22. This has weight equal to 24. Between these 2 spanning tress, this has minimum weight. What is a spanning tree that I can pull out of this that has minimum total weight? So, given a weighted graph that is connected, now what is a spanning tree which has minimum total weight is called the minimum spanning tree problem or more popularly called as MST problem. MST would mean minimum spanning tree. For this one, we just picked up, evaluated two spanning tress and evaluated their weights, and said this was better than this. But, we do not know or we have not shown at the moment that this is perhaps the best. Do we have algorithms which can give us the minimum spanning tree is a next question? We now go back to this graph which has five nodes. The question is to get another subgraph or a tree or a spanning tree which has five nodes, which has four arcs and it is connected such that the sum total of the weights of the arcs is minimisedminimized. Such a spanning tree is called the minimum spanning tree. What we will do now is to look at two algorithms which are very popular, which are used to get minimum spanning trees out of a given network. These two algorithms are called the Prim's algorithm and the Kruskal's algorithm. First, we will describe the Prim's algorithm and then the Kruskal's algorithm. Before that we come back to the problem again. Given a graph which is connected, find out a spanning tree which has least weight? This graph has five nodes, so the spanning tree will have five nodes and four arcs. What is the set of four arcs which will span across the five nodes, retain the connectivity and make it a tree such that the total weight is minimized? That is a minimum spanning tree problem. This problem is important for more than one reason. The minimum spanning tree: In this course, we will find that this has a lot of use when we actually come and solve the Travelling Salesman Problem or the TSP. In practice, the minimum spanning tree also kind of represents the minimum length of wire that is needed to provide connectivity in this network. For example, if we go back to this as a network, if we want to connect points 1, 2, 3 and 4 and if we choose this configuration for connectivity, then we may require 24 units of length of the wire; whereas, if we look at this configuration, we may require 22 units of the length of the wire. We would obviously be interested in finding out the spanning tree with minimum weight such that minimum length of wire is used to connect these nodes. Minimum spanning tree finds applications in many connectivity problems. It also has applications and use, particularly when we solve the Travelling Salesman Problem and other related problems. With this we go back and first try to do the Prim's algorithm and then the Kruskal's algorithm to find out the minimum spanning tree. Let us explain the Prim's algorithm. The first thing that we do in the Prim's algorithm is to find out that arc which has minimum weight. Now, arc 1 - 2 has a minimum weight, so put 1 - 2 into the spanning tree with weight equal to 5. There are five nodes or vertices. We have already put 1 - 2 into the spanning tree with minimum weight. Having put 1 - 2 into the spanning tree, we now separate the nodes into two sets. Set S1, which is a set of nodes 1 and 2, which are into the spanning tree and set S2 which contain the rest of the nodes 3, 4 and 5, which have not yet come into the spanning tree. When we start the Prim's algorithm, we will always start with the cardinality of S1 will be 2 because we start by putting that arc which has minimum weight into the spanning tree. That arc will connect two nodes always, because in any network problem an arc connects two nodes. This arc 1 - 2 has connected nodes 1 and 2. The set S1 will have 1 and 2 and the set S2 will have 3, 4 and 5. Now, go back to the graph or go back to the data, try and find out the connectivity between this set and this set. If we look at 1, then we have to look at 1 to 3, 1 to 4 and 1 to 5. Now, 1 to 3 exists with weight equal to 6. 1 to 4 does not exist, 1 to 5 does not exist, so the minimum from 1 is 6. Similarly, look at 2: 2 to 3, 2 to 4, and 2 to 5. 2 to 3 exits with 7. 7 is bigger than 6, so keep 6. 2 to 4 is 8. 8 is bigger than 6, so keep 6 and 2 to 5 is 6, which is equal, so you could either take 2 to 5 or you could take 1 to 3. Both 1 to 3 and 2 to 5 have weight equal to 6. Choose that which has minimum weight. There is a tie between 1 to 3 and 2 to 6 so, we could take either of them. Let us take 1 to 3, so add 1 to 3 with value 6. The moment you add 3 into the spanning tree, S1 gets updated to 1, 2, 3 and S 2 is 4 and 5 vertices. Now vertices 1, 2 and 3 are into the spanning tree and vertices 4 and 5 are outside the spanning tree. Repeat the algorithm. Look at 1 and find out the connectivity between 4 and 5; 1 to 4 there is no connectivity; 1 to 5 there is no direct connectivity, so leave it. Look at 2. 2 to 4 is 8 which is the minimum; 2 to 5 is 6, so 8 gets updated to 6; 3 to 4 is again 8; 3 to 5 is 6. So, we could either pick 2 to 5 which is 6 or pick 3 to 5 which is 6. Let us pick 2 to 5, which is 6. Break the tie arbitrarily, so 2 to 5 is chosen, 5 gets into the network with 6, which means that 5 gets added here so you have 4, which is, left out, 4 has to come into the network. Again, repeat the algorithm 1 to 4, 2 to 4, 3 to 4 and 5 to 4. 1 to 4 does not exist; 2 to 4 the minimum is 8; 3 to 4 is also 8; 5 to 4 is also 8. We could either choose 3 to 4 which is 8 or 2 to 4 which is 8 or 5 to 4 which is 8. Let us say we choose 2 to 4 which is 8. We will do 2 to 4 which is 8. This means, this set becomes a null set and 4 comes in. All the nodes are in the spanning tree which is indicated by this, which is also indicated by the fact that this has become a null set, which means all the nodes have come into the spanning tree. So, the algorithm stops when all the nodes are into the spanning tree. We have got a spanning tree with weight W equal to 6 plus 5 is equal to 11 plus 6 is equal to 17 plus 8 is equal to 25. This spanning tree is the minimum spanning tree. It is a minimum spanning tree because we realised that as we proceeded with the algorithm, we found several places where there was a tie. For example, the last one we entered 2 to 4 was entered with 8. We also knew that 3 to 4 was 8 and 5 to 4 was also 8. If we had entered 3 to 4 instead of 2 to 4, we would have got another spanning tree but with the same weight 25. The Prim's algorithm guarantee a minimum spanning tree with minimum weight, W equals to 25. There are some proofs for the Prim's algorithm, but right now, we do not concentrate on the proofs. We concentrate more on the understanding and the learning the algorithm. I will also try and give you some results, whereby, we try and understand the proof of Prim's algorithm. We go to the next one which is called the Kruskal's algorithm. To do the Kruskal's algorithm, the first thing we need to do is to arrange these weights in the decreasing order. We have three arcs with weight equal to 8. We could start with any of them. Let us say, we start with 4 to 5 which is 8, 2 to 4 which is 8, 3 to 4 which is 8, then we do 2 to 3 which is 7, then we do 2 to 5 which is 6, 1 to 3 which is 6 and 3 to 5 which is 6 and then we do 1 to 2 which is 5. What we have to do here is we have to arrange them in increasing order. We start with 1 to 2 which is 5 and then we do 1 to 3 which is 6, 2 to 5 is also 6, 3 to 5 is also 6, 2 to 3 is 7, 3 to 5 is 8, 3 to 4 is 8, 4 to 5 is 8 and 2 to 4 is also 8. If we arrange them in increasing order then we start from the first and move down. If we arrange them in decreasing order then you start from the end. We arrange it in increasing order or non-decreasing order to be precise, such that these values are greater than or equal to the previous ones, respectively. Start the Kruskal's with the first one which is 1 to 2. We start with 1 to 2 with weight equal to 5. Go to the next one which is 1 to 3, so put 1 to 3 with value 6. Now, 2 to 5 is 6, so create 2 to 5 which is 6. Look at the next one which is 3 to 5. If I put this 3 to 5 equal to 6, then what happens is that I am completing a circuit. Therefore I cannot have a tree. A tree should not have a circuit. Adding 3 to 5 is going to create a circuit, so do not add 3 to 5. Ignore this. Go to the next one which is 2 to 3. Similarly, if I add 2 to 3, I create a circuit. Tree should not have a circuit therefore, avoid 2 to 3. Go to 3 to 4 which is fine, so you could have 4 somewhere, here. We can write 3 to 4, which is like this with value equal to 8, this is done. At this point, we have actually added four arcs into this and make sure that we do not create a closed circuit in the graph. When you do the Kruskal's, the moment we have added n minus 1 arcs, which is 4 arcs, in this case, the algorithm stops and this is a minimum spanning tree with weight equal to 6 plus 5 is equal to 11 plus 6 is equal to 17 plus 8 is equal to 25. We realise that the minimum spanning tree obtained by Prim's and by the Kruskal's algorithm both have the same minimum weight of 25. The difference, of course, is that the spanning tree is different here and the spanning tree is different here. Here we have taken 3 - 4 with weight equal to 8. Here we have taken 2 - 4 with weight equal to 8. To go back to Kruskal's again, sort the arcs or adjust in increasing or non-decreasing order as shown here. Pick them one after another and put it into the spanning tree with the condition that the property of a tree is maintained as we put it along. To redo this, we could start with 1 - 2, which retains the tree property and 1 - 3 which retains the tree property. There are three nodes and two arcs and so it is a tree. 2 - 5 retains the property. There are four nodes and 3 arcs and it is a tree. 3 - 5 is not added because by doing so I do not get a tree. I have four vertices and four edges, 2 to 3 is not done. Now, 3 to 4 is included. I have five vertices, four edges and it is a tree. At the end, when we do the Kruskal's the moment n minus 1, arcs or edges are added into the spanning tree, the algorithm terminates and gives us the minimum spanning tree. Both these methods are very useful. Both these methods are very important and used extensively in computation of the minimum spanning tree. Both of them are optimum but how do both of them work? Are there some underlining principles with which we can show that the Prim's algorithm and the Kruskal's algorithm are optimum? We can also try and explain two important results: One is called the cut optimality theorem and the other is called the path optimality theorem or condition. What is the cut optimality condition say? It says, for every tree arc i-j belongs to T star, which is this: Cij is less than or equal to Ckl, for every k,l in the cut obtained by deleting i-j from the tree. Let us apply this cut optimality condition into the spanning tree that we obtained here. For every i-j which belongs to T, which means, if I take this, this i-j, 2 - 4 belongs to T. What does the cut optimality condition say? If I remove this 2-4 and this 8, it means I have a cut which means the tree is cut into two portions or two pieces. One portion is this and the other is this. If I want to make a spanning tree from here, it simply means that, I have to either add 1 - 4 or 3 - 4 or 5 - 4 into it, because I have already removed 2 - 4. I might say even, I would like to add 3 - 4 as well. So, I can make a spanning tree from here by adding 2 - 4 or 5 - 4 or 3 - 4 or 1 - 4. The fact that I have added 2 - 4 is because C24 was less than or equal to any other thing that I could have added to make this. What are the other things I could have added? It is either 1 - 4 or 3 - 4 or 5 - 4. Let us go back. 1 - 4 does not exist. Therefore, C14 is infinity, so C24, 8 is less than or equal to infinity; 3 - 4 was 8, so 8 is less than or equal to 8; 5 - 4 or 4 - 5 is 8, so 8 is less than or equal to 8. We observe that this 8 that we added actually satisfies the cut optimality condition. For example, if we remove this, then you realise that the tree is not split into two trees. To make it a spanning tree, I have to add either 1 - 2 or 2 - 3 or 2 - 4; 2 - 4 is already there. So, we could either add 1 - 2 or 2 - 3 or 1 - 4 or 3 - 4 or 1-5 or 3 - 5. If you take this so 1 - 2 is 5, 3 - 2 is 7, which is more than 5, 1 - 4 does not exist, 1 - 5 does not exist, 3 - 4 is 8, 3 - 5 is 6 and all of them are more than this 5 or this 5 is less than or equal to all of them. We realise that the optimal or a minimum spanning tree would satisfy the cut optimality condition. For example, if we had taken a spanning tree like this 1, 2, 4, 5 and 3; and, with 5, 6 and 8, we realise that if we do that and then if we remove this 8, it is possible to add 2-5, which is 6, which is less. This spanning tree is not the minimum spanning tree; whereas, if we take this spanning tree we realise that this satisfy the cut optimality condition. Therefore, it is a minimum spanning tree. We look at another one which is called the path optimality condition. What does it say? It says, for every non-tree arc, k, l: Cij is less than or equal to Ckl, for every i-j belongs to T star. What does this mean? Let us try and explain the path optimality condition using either this or this. Let us go back to this and try and explain. Let us consider a non-tree arc which is, say, 2 to 3. So, 2 to 3 is a non-tree arc with 7. For every non tree arc kl, which is 7, every tree arc that lies in the path between 2 and 3 on the spanning tree which has 5 and 6, both of them are less than equal to 7. You take another non-tree arc, which is 3 and 5 that is 8, but you see the other path is 3 to 1, 1 to 2, 2 to 5, all of them are less than or equal to 8. The same thing can be shown with the Kruskal's algorithm as well. On the other hand, if we do this, there is a non tree arc which is 7. There is a path from 2 to 3 which has 8, 8 and 6; this 7 can replace one of these 8s. This does not satisfy the path optimality condition and therefore, it is not a minimum spanning tree. We realise realize that both the Prim's and the Kruskal's solutions satisfy the cut optimality conditions and the path optimality conditions and therefore are optimum. With a little bit of careful observation we may be able to show that the Prim's algorithm is actually a direct implementation of the cut optimality condition and the Kruskal's is a direct implementation of the path optimality condition. Thus, every time we added something it is like the same example that we said, when we added this 2 and 4, we pulled it out. If we pulled it out at some point we have to realize to put 2-4 or 1-4 or 3-4 or 5-4. This is what we did and we actually took the minimum which is 2-4. This is a direct application of the cut optimality condition. Similarly, in the Kruskal's whenever we did that, we did not add this 7 here, because we had already added 5 and 6, which are individually less than the 7. So, the basic idea of sorting it in the increasing order and then applying the Kruskal's algorithm is a direct application of the path optimality condition. Both these very familiar algorithms are actually direct applications of the cut optimality condition and path optimality condition, respectively. There are still a couple of observations about the minimum spanning tree before we move to the next problem. The observations are like this. Every time, we apply the Prim's, we always keep building trees. For example, you start with 1 and 2 and then we added 3. There was a tree and then we added 5, which is again a tree and then we added 4 which is again a tree. We keep adding arcs to existing trees such that the tree property is maintained throughout. Prim's algorithm is like a single linkage algorithm. At every stage, we add a link into the tree to make the tree slightly bigger. The Kruskal's, on the other hand, is a slightly different from a computational point of view. In the Kruskal's, we have to first sort it in the increasing order. Secondly, every time you consider an arc, for example, when we consider this arc we added. When we considered this arc, we did not add. So, we have to check that every arc that we consider does not result in a circuit or in a close loop. The other thing that happens in the Kruskal's is that we may get into a situation where half way through the algorithms it may be possible to have something like this. Not in our example though, in some other example it may be possible to have something like this. If we see this carefully, all the vertices are there but we have three arcs and then there are two trees which somewhere later will be again combining into a single spanning tree; half-way through, we may get a solution like this. This kind of a thing is called a spanning forest. All the nodes are here but you still have not got a spanning tree. You have fewer edges into a spanning tree and you have like a collection of trees. So, it is like a forest. This is useful particularly, when we solve the grouping problem or we solve a clustering problem. The Kruskal's way of doing the minimum spanning tree can lead us to a spanning forest which would actually give groups, if we are looking at minimum spanning tree as a way to solve a grouping. That brings us to the end of the discussion of the minimum spanning tree. We defined what a tree is and then we defined what a spanning tree is and then we started defining what the minimum spanning tree is. Minimum spanning tree is given a network to find out a spanning tree, which means, another network which has the same number of vertices but (n minus 1) edges is a tree and is connected, and called as a spanning tree. Then, to find out that spanning tree which has minimum total weight is called the minimum spanning tree. We also saw two methods, the Prim's algorithm and the Kruskal's algorithm, both to get the minimum spanning tree. We also observed that for the same problem, we could have 2 or 3 different minimum spanning trees, but all of them should have the same total weight with 25. We also saw the two important conditions which is the cut optimality condition or cut optimality theorem, and the path optimality theorem. We illustrated the theorem on both these solutions and also said that Prim's is a direct implementation of the cut optimality condition and Kruskal�s is a direct implementation of the path optimality condition. We get into the second network problem which is the shortest path problem. Let us describe the shortest path problem with an example. Let us consider this network. This network has seven nodes; It has several arcs and we are interested in finding the shortest path from 1to 7. Ordinarily, the nodes will be numbered such that 1is a starting node and the highest node number will be the destination one. Or, there can be situations where explicitly the starting and the destination nodes can be provided. For example, one might say that, I would like to find the shortest path from 1 to 5. In this case, we are interested in finding the shortest path from 1to 7. In a shortest path problem the network is given. The weights are given. These weights, as I said, can be cost of travel from i to j or time taken to travel from i to j or distance from i to j. Correspondingly, the problem will be the least cost path from 1 to 7 or the least distance path from 1 to 7 or the least time path from 1 to 7. Let us try and first solve this with an algorithm; then, try and explain the goodness or the optimality of the algorithm by starting with a formulation of that problem. First, let me describe the algorithm and then do the formulation later to show that, whatever algorithm we see here is actually optimum. A very simple algorithm would be to say that we start here at time equal to 0. From node 1, we can reach node 2 with time equal to 15 and from node 1, we can reach node 3 with time equal to 20, 20 being more than 15 or 15 being less than 20, we may choose to reach 2 first at time equal to 15. From 1, I can reach 3 at 20; from 2, I can reach 4 at 15 plus 10 is equal to 25 or I can reach 5, 15 plus 25 is equal to 40. Now, come back. From 1, 1 to 3, it is 20. From 2, 2 to 4, it is 25 and 2 to 5 is 40; 25 comes as 15 plus 10 and 40 comes as 15 plus 25. The smallest among these being 20, we say that we reached 3 at time equal to 20. Now, go back and check. From 2, I can do 2 to 4 at 25, 2 to 5 at 40; and, from 3, I can do 3 to 4 at 35, 3 to 6 at 40; 25 being the smallest, I decide at this point to come from 2 to 4 with reaching 4 at time equal to 25. Again, we can repeat this. Now, we say that this is 15 plus 25 is 40, 25 plus 20 is 45, 20 plus 20 is 40 and 25 plus 15 is equal to 40; 40 is the minimum number that we look at. So, we could do 25 plus 15 is equal to 40 or 20 plus 20 is equal to 40 or 15 plus 25 is equal to 40. Let us say, we do this first to get 40 here. Again we repeat, I can reach 6 as 20 plus 20 is equal to 40, 25 plus 15 isis equal to 40; I can reach 7 as 40 plus 10 is equal to 50, 25 plus 30 is equal to 55. Minimum being 40, I do 25 plus 15 is equal to 40 or 20 plus 20 is equal to 40. I have to reach 7 so 40 plus 10 is equal to 50, 25 plus 30 is equal to 55, 40 plus 20 is equal to 60. So minimum is 40 plus 10 is equal to 50. 50 is the shortest distance from 1 to 7 and we also observe that this 50 was reached by 1 to 2, 2 to 5 and 5 to 7. The shortest path is 1 to 2, 2 to 5, 5 to 7 with cost or distance equal to 50. This is a very rudimentary algorithm for the shortest path problem where the underlying principle is: you start a time equal to 0 and reach the next best destination in terms of minimum cost or minimum time. That is what we did. We moved from 1 to 2 and then we said we reached 3 from 1; then, we said, we reached 4 from 2; then reached 5 from this; then reached 6 and then reached 7 with cost equal to 50. Rudimentary algorithm is a very famous algorithm. It is called the Dijkstra�s algorithm and very popular and commonly used algorithm to solve the shortest path problem. There is an important assumption in the Dijkstra's algorithm which is necessary. The important assumption is that, all these weights that we have, all the Cijs' are greater than or equal 0. When all the Cijs are greater than or equal to 0, it is possible to use the Dijkstra's algorithm to get the solution to this problem. Let us also see how we implement the Dijkstra's algorithm in a tabular form, rather than in the form that we have actually described. Let us do the Dijkstra's algorithm in the tabular form now. We start with seven nodes. We start with 1, 1 to 2 is 15 and 1 to 3 is 20. The rest of them are not connected at all. Take the minimum of them and label it as 15. This is the labeled 1. So 2, from this 2, you could go to 4, 15 plus 10 is equal to 25 where 25 is less than infinity so put 25. 2 is labeled at 15, so you could reach 5; 15plus 25 is equal to 40 where 40 is less than infinity, so put this and the rest of them remain as dash and 1 to 3 remains as 20. If you go back and see that we could label this, as the one which has the unlabeled one with minimum weight so label 3 and get 20. Come back to this, we are at 3. This is the labeled one. From 3, 3 to 4 is 20 plus 15, 35, where 35 is more than 25 so retain at 25; 3 to 6 is 20 plus 20 is equal to 40 where 40 is less than infinity; 3 is not connected to 5, so the same 40 will remain and this goes. We realise that out of these unlabeled values the one with minimum is 4, which is 25, so label 4 here. Having reached 4, you could do 4 to 5, 25 plus 20 is equal to 45, where 45, is more than 40, so keep it as 40. 4 to 7 is 55 and 4 to 6 is 40. You could label 5, 6 or 7. Let us say we labeled 6 and then put 6 here. From 6, 40 plus 20 is equal to 60 which is more than 55. Retain 55 and retain this 40 because 6 to 5 is not connected. Again, label this 40. Go back to 5 and 5 to 7 is 40 plus 10 is equal to 50 which is less than 55, so update this and label 7. This terminates the tabular version of the Dijkstras algorithm which we shall see further in the next class.
Info
Channel: nptelhrd
Views: 260,882
Rating: undefined out of 5
Keywords: Network, Models
Id: Dmw3OsyT5yw
Channel Id: undefined
Length: 58min 15sec (3495 seconds)
Published: Wed Jan 27 2010
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.