17760 >>: So there are two good news. One is as David mentioned we have launch of Windows 7, which is okay. And we have bigger good news, that Mohammad-Taghi Hajiaghayi is presenting a talk today. He has been a frequent visitor to Microsoft before he joined another company, AT&T. And many of you may not know, he's like one of the most prolific authors of our time. He already has like I think more than 100 plus publications within a few years of his graduation. So here Mohammad. >> Mohammad-Taghi Hajiaghayi: Thanks a lot for that introduction. So, okay, so today we are talking about improved approximation algorithm for Steiner tree problem. Now this is a problem one of the useful problems that is useful in practice. And maybe saved like billions of dollars for AT&T. So this is joint work with Aaron Archer, Mohammad Bateni and Howard Karloff, our AT&T labs and Mohammad was an intern in our lab. He's from Princeton. Okay. So we are defining the problem and, say, previously about the previous work, then we are mentioning all contribution which involves an algorithm that's theoretically simple and its analysis. So what is the Steiner tree problem? So you are given a graph like this. And on the edges, we are given a set of terminals, in this case the red vertices and a set of nodes or terminals for the rest. We just want to buy a set of edges such that the terminal nodes are connected. For example, in this case you try and get price of 10, like the total cost of 10. But the price collected of Steiner tree, in addition to the Steiner tree problem, we are given some penalty function I on all vertices. And here that's essentially different. Okay. For some nodes, maybe just a bit expensive to connect them to the rest of the graph. Maybe what we are allowed to pay some penalty and just ignore them. So, for example, in this case, if you want to connect this terminal, you need to pay at least 10. But say it has a penalty of three. So then you just pay the penalty and then you have a better cost. This is the price collecting Steiner tree problem that we want the sum of the edges, here are some of the yellow edges plus some of the penalties. And it is trivially the case that all penalties are zero mean for Steiner nodes and infinity for the rest of the graph, then this is the Steiner tree problem. So this is like more general than a Steiner tree problem. >>: [indiscernible] AT&T. >> Mohammad-Taghi Hajiaghayi: What? Why? I will mention it. This is one application at AT&T. We can get more applications. The phone that you are using is using this technology. You should know what is behind the phone technology. Yeah. So let me mention -- so there are two things here. There are rooted versions unrooted versions also. The rooted version is essentially the one that we say one particular vertex is the root, always should be on a node tree. The unrooted is you just consider one big connected component essentially considered the most beneficial connected component and you just focus on that. For the rest you pay the penalties. We are mainly discussing about the rooted here. So just ignore unrooted form. Okay. So the Steiner tree is like a very famous classic problem, a lot of application like design, network routing, wireless communication, mission biology for everything. The process of collecting Steiner tree is also very classic nowadays. So it has been used in like network design. As I mentioned, one of like the few theory problems that had real impact. So maybe saved like billions of dollars. So you can see in this paper essentially some results about them. But what is essentially the main idea, why there is some practical things there. So the main application that we had it in AT&T was something like this. That you want to put like fiber underground. Now, say you want to connect a city. Then it makes sense that you put -- that's like very costly to put fibers underground because you need to dig into the ground and put it in. It's very costly. For a city, it makes sense that you just dig in and put the fibers there. Especially if you connect the people in your city. But there's one person, on top of the mountain and asked AT&T for Internet. Now the question is: What do we want to do? Of course, one option is to just say we don't have service there. But maybe you want to be more gentle. AT&T is like a big networking, Internet company. So you don't want to disappoint the guy. You say I will provide the thing for you, but the issue is you don't provide the thing for that for you. You ask the company Verizon, can you give him, for example, the Internet service or some satellite company or something like this. They can provide the things for him and so then he will pay maybe some discounted amount to Verizon without going to the burden of putting essentially this fiber underground. So that's essentially one of the main applications that we had. And there are some other applications. So from the practical side, from purist side [phonetic], this is like the Lagrangean relaxation of k-MST. And there's tons of work for k-MST that you have a budget for K vertices, you want to connect to K vertices, that's what it is in theory. A lot of work there. For a Steiner tree, we do the true approximation algorithm via MST as you see in this example. So what does it mean? For each two vertices, for each terminal you compute the shortest path and you are constructing graph on this terminal. With the age weight equal to shortest path between any two vertices. Of course, then you're finding the minimum spanning tree. Minimum spanning tree on the setup terminal, and that's a true approximation and it cannot be much better than two because it's not much better than this example. If you compute for these three terminals the shortest path would be -- this 2 minus epsilon. If you find MST here would be 4 minus 2 epsilon. Now if you want real defined Steiner tree here, then you will get 3. So the ratio would be 4, essentially 4 over 3. If the number of vertices on this will go to infinity, you can be arbitrarily close to 2. So you cannot get anything better than 2. So there's like LP forces the problem, still for the LP the gap is 2. You don't go through that. Don't need that much. There might be -- there might be some better LP. We don't know. There are some by directed LP which is suggested, but we don't know if it is better than 2 or not. But for sure we can get better approximation, better than 2 for a Steiner tree problem, at least L over 6 approximation by Zelikovsky from '93 and now it is actually 1.5 approximation by Robins and Zelikovsky, because we need this algorithm. We call it RV algorithm. 1.5 approximation. And essentially the main idea of all of them is that if you have this vertex, a Steiner tree, maybe if this vertex, this vertex was not in the original set of terminals, but it really can help to reduce the cost of like the minimum Steiner tree, add it and then compute the minimum Steiner tree. That's essentially it. But for collecting Steiner tree, it has been introduced by Balas in 1989 and by -essentially already mentioned by Bienstock in '93. There's a tree approximation in this paper for prize collecting a Steiner tree and using a randomized version we had in 2006 you can get it 2.54. We had it for more general case of the generalized standard Steiner tree or also known as price collecting standard forest, generalization of that. But, anyway, so there was a true approximation since 1992. No improvement before. So this is the Goemans Williamson extent [inaudible] algorithm and essentially two approximations. This 1 over N goes to almost zero and goes to infinity. And we are calling this algorithm Goemans Williamson and we are discussing a bit more about it because we need it more inside of it. Anyway, here we are giving the approximation the ratio of two minus epsilon for epsilon for this problem for the first time. The interesting thing, as I mentioned even for this Steiner tree the integrality gap is just 2. So here we're going beyond the integrality gap. That's essentially the main contribution that we are doing here. And here epsilon essentially we get like 1.992 approximation. Better than 2, of course. But that's like the first one you can get better than 2. No other better than 2 on this thing. >>: [indiscernible]. >> Mohammad-Taghi Hajiaghayi: No, I think it went for prize collecting even for Steiner tree we don't know anything better than maybe 1.1. 1.001 hardness. So even for Steiner tree we may go get much better things. And that's the thing that we are proving. Okay. So let's say the algorithm essentially get some idea about the algorithm. So the algorithm, the algorithm is relatively simple. We are running essentially two algorithms. The first one, that's Goemans Williamson, as I mentioned, they give true approximation. We run it with some penalties with essentially a set of disconnect penalty, by disconnect penalty means alpha times the penalties, alpha is less than one and greater than one half. So the penalty would be a bit smaller than 1. So the good thing here is that when you're multiplying the penalties, you are essentially giving more incentives to pay the penalty instead of connecting them. Because the penalties are cheaper now. Okay. So as a result, this Goemans Williamson, when you give this alpha times penalties connect a set S of terminals and say for the rest we are just paying the penalty. Now, here actually we assume that for each vertex there is a penalty, if it is not like in our terminal, set of terminals we can't just put it as price, it's penalty 0, has the same thing. So each vertex has a penalty. And when we are talking about S-like those that we connected V minus F means those that we don't connect it and we pay the penalty. So S bar. Just to make it. Okay. So that's essentially good here. This algorithm is good in two cases. If optimum or solution pay large penalty. By large penalty it means that if the penalty is OPT based or solution paced. It's some constant fraction of the actual optimal solution. At least like some epsilon for fraction of the optimal solution. If it is the case, then this is a very good algorithm. But, of course, it may not be the case. Means that the penalties are 0, essentially we don't pay any penalty. We should connect everything. So in this case we cannot -- this is not a good thing and we mentioned an example that that is not the case. In this case, we consider S the set of terminals. And we are removing some of like bad guys from this set of terminals. Okay. This is the set S that we decide to connect. We don't connect all of them. We remove some of these things that we will decide and we select the penalty of this guys is, the penalty of this guy is not too much. Remove them. For the rest we are using a better algorithm than we have for Steiner tree. For a Steiner tree as I mentioned we have better than two approximations. We have 1.55. Just the fact that it's better than two it helps us essentially. So for the rest of the vertices we are using this. And here we are using Goemans Williamson and Robins Zelikovsky black box in this algorithm. But for the analysis we need actually internal of Goemans Williamson and more general than Goemans Williamson. We need to essentially do more than them. And that we need it. And here we are mentioning some natural coloring scheme that is actually useful and we could use it for another improvement as I will mention at the end. Okay. So let's start with like the get more details of the algorithm. So this is a natural LP for the problem. So this is V belongs to V things and S is this, R is the root. We consider the root of the case and S is always a subset of the V minus R. And what does it say. This one says X of E is equal to 1 if we buy the edge and 0 otherwise. Z of P means that we pay the penalty for one vertex. And 0 otherwise. Do we have a question? Okay. So and so what this is saying, okay, the cost of the edges that you bought, fill out the penalty that you want to pay that you want to minimize, and what this one says is that each vertex, for each vertex, as I mentioned all vertices are terminals here. Maybe they're pi is 0 it means that we don't care about them. But they are terminal. And so here you say that for each vertex even we should pay the penalty or we should -- or if it gets a cut from this vertex and the root at least one edge should be 1. So that's like the natural LP forces problem. We are writing the dual of this LP. That's the useful thing here. So we have the variable YSV. This one says essentially the money is spent on cut S by vertex or terminal V. That's YS of V. It's the total budget of essentially the penalty that we have for V. These two are like two simple things like the dual we are writing it. And these are two simple things. This one says that the total money that vertex V is spanning over all cuts should be at most budget, which is its penalty. Otherwise we can just pay the penalty and there is no incentive to pay more than penalty. The other things is that for each edge over all cuts that goes through this edge, the sum of the money that is spent on that should be at most a cost of edge. So we are essentially discussing, we are considering more this case the rest of the algorithm but not only. Okay. So get some sense of it. We don't really need that much of them. Okay. So let's go on and describe a little bit Goemans Williamson algorithm. So the Goemans Williamson algorithm they connect a set S of vertices using a 3 T and pay the penalty for the rest. The bond that they have is this. They have a true approximation. So the cost of the tree, the total penalty that we may is at most 2 times up. Actually, they don't mention it, but they prove something stronger. Even if you pay 2 times penalty, still this is less than 2 times optimum. Still, it's not better than true approximation, because this part is 0. So this doesn't give anything better than true approximation. But gives us something that we needed actually, when we use it. This property that we can for penalties we can put the same approximation factor of actual approximation algorithm is called like Lagrangean preserving algorithm. Okay. And what is the algorithm? There's actually a nice and simple and very natural that we are essentially using the natural corresponding things here, something. So they're using the most glowing or ball glowing clustering [phonetic] so at each time we have a laminar formula vertexes, laminar formula sets, and by laminar it means that each two sets that intersect, one should be like subset of that. Okay. So each set has a potential. It's potential -- that's essentially the thing that's a bit -- we want to go more beyond Goemans Williamson. So each set has the potential. This potential is the amount that this set can grow. And initially the potential -- so initial things -- only initial things for say we only have three terminals here. And each of them have the penalty. Initially each of these sets that we have, we have a set A that has only -- this is a vertex A essentially. The penalty of that is 1. So we have a set of single tones. Each of them has just one vertices and its penalty -- potential is equal to the penalty. So at the beginning we have these tree sets. Each of them has this potential. Now, active sets -- so all of them -- every set that has some potential non-0 potential is active set. Active sets are growing and lose potential at unit rate. So, for example, in this case you see this thing at time run we spend one unit of each of these things. So if a set become of zero potential then it becomes deactivate. It's a total potential have been gone, it's deactive. Now, we are continuing this process. Here these two -- these two can still grow, do we grow them? They lose their potential. And at this time six marriage, age constraints becomes type. For example, here this age constraint becomes tight. So these two become marriage. These two sets. And then next time that we want to grow we are growing like around them. So what does it mean? So at this time this becomes also deactivated. But this set has a potential one, potential of a set is essentially the remaining potential of our set that has been marriaged so far for this. So that's essentially the part that we use it more. So here now we can grow more these sets. So I use the same color here, that's important. So here you see this vertex has some color. So here that's the coloring that I want to talk in the next slide. We assume that each terminal have one color. One unique color. And then we are growing. We are using potential from some vertex and we are coloring the graph with that color. For example, here I mean we are starting with each of these vertexes and they are using color these edges using their color. Now, when we are marriaging these two, this vertex has, this terminal essentially does not have any more potential. So we can only use the potential of this vertex. And the potential of this vertex is, I mean so far we use it like two, we have still one more. So when we go on top of that, then we are using the potential of this vertex to go around this. I haven't mentioned why we are using this property. So say a bit more about the coloring scheme that I'm talking about. So it's like very intuitive things. >>: Would much have larger potential? >> Mohammad-Taghi Hajiaghayi: Then you can do it arbitrarily. So any -- any small thing that you will go, you can charge it to anyone, or you can divide it. And you just use that color. That's the important thing. We don't care that they're complicative or not. You may use a little bit green and then a little bit red and then a little bit green. There's no problem. But the issue we are using is that essentially we are using this potential around these things. And if one vertex, that's essentially the main property. If there's one -- if this terminal someone connects it outside of this ball of its color, then we know that this three or anything that connects this one to the outside have intersected with the color of this guy at least the penalty of this guy. And these are the disjoint things. So if there was another set there, then we have the same thing for that. I will mention it in more detail in later slide. So this is the coloring scheme essentially that I mentioned. So we're starting from UV. We consider essentially by coloring of the graph I mean coloring of the edges. We don't consider the vertexes. Vertices are just some points on the edges. So each edge you can continue to have the character it's like topological things but gives very good intuition. So you are starting from this UV, for example, for this one you are -- this is the color of, say, this terminal. This is S 1 and S 2. Now, at this time so S 1 and S 6 say become deactivated. Go a little bit more, maybe S 1 -- I mean like join with another set becomes S 2 and then S 2, 2 here I mean by terminal 2. That has some potential. That potential will come and color the rest of this edge. Similarly, for S 7. So we are doing it more than S 3 again. We ran out of the S 2 and S 3 is coming. And do this coloring. So this coloring is essentially the one that -- at this time we're consuming the whole edge. So that's the coloring scheme that we are using. Okay. And the main properties that we don't already use the edge length. So the total amount that has been spent, this is at most the length of the edge. So that's trivial. And this is the property that color SV is actually a cut between S and S bar. And all edges of this color, all edges of this cut get this color. So when you go a bit more, you will color all of them. And each of them has a bit like YSV. So when you go a little bit there and span from some the budget of some or potential of some terminal, you will -- this amount that you will color, this bits, would be the amount that you will color that and that the bits of this color. So you may have epsilon color yellow and then you have epsilon color green and so on and so forth. Okay. So let's come back to the algorithm and say some intuition. Okay. So we have essentially this algorithm. This is a run Goemans Williamson with alpha times penalties. And alpha is between one half and one. There are two cases we consider. Case one or penalty is large, as I mentioned, like epsilon times OPT. Or the case 2 is that OPT penalty is large. If it is a case, then we show that the cancellation that we obtain is a good solution. But if it is not the case, then we need the case 3 as I mentioned. So here, for example, what is the case 3? The case 3 is this. So here what does it mean that first case that all penalty is not large. It means that all of these part, penalty of this is very large, this part. But what about the case that OPT penalty is not large. So you said this is OPT. The SSR is OPT. The OPT connect and so it means that this, the penalty of this place is also very small. Essentially you can't say all places here. Everything except this part has very small penalty. Okay. So then maybe we are in good shape. But why we might be in a bad shape is the problem comes from existing. If we knew what is this set, then we are in good shape. Why? We don't know it because we don't know SS star. So we don't know what is the intersection of SS star and S. We know everything here has very small penalty. So we are allowed to pay that penalty. But in our solution that we are finding S, we are finding S and we are trying to construct essentially a 3 fold F. Many are trying to construct a 3 fold F. Maybe there are some nodes here that their penalty, as I mentioned we know that their penalties are small. Of course, we don't know which vertexes. We know some vertices that might be -- their penalty is very small, but we are wrongly connecting them and we are paying a lot to connect them. Maybe there are these vertexes here and we need to connect them and we need to pay a lot. We need to essentially find these vertices and remove them. These are the vertices that we call guilty nodes. So these are the set of vertices here, a set D here of vertices. As I mentioned we don't know. The ideal cases that we can't find this S intersection SS star. But we cannot -- we don't know SS star. So we cannot find it. And instead we are finding some approximation of this set that we want to remove. We call it D. Maybe it has some intersection actually here. But what is the property this. The property of this is first, is D. The total penalty D is small, because as I mentioned we know if D is completely here than it is small. But it intersects some things here but we still know that the penalty is small. That's the first thing that we are using. The second thing that we are using is that for the all other vertices like the bright blue color that you will see, okay. We show that if you want to connect this vertices to here, the total cost that you will pay is not much more than their penalties. Okay. So in some sense you are allowed to connect these guys to the rest of vertices. And you have this option that you pay the penalty or connect them. But they are in the same order. And, of course, because we can't just remove D and then connect the rest. That's the only thing that we know because we don't know anything about SSR. But these things I mentioned it is good. And why do we need actually this guilty node. Why can we not go without guilty node? Note that when we are doing, when we are removing this set D, on the rest of the vertices then we know that for sure we want to connect it. No, we don't use true approximation, we're using the 1.55 approximation of Robins and Zelikovsky, we do 1.5. But on set essentially S minus DVR we are running that. And why do we need to remove this set D? Because of this example. Seeing this example we have, these are the terminals. Infinity, since our terminals and rest are standard points 0. So if you run Goemans Williamson on these things, at time 1, essentially we have like a ball around here, a ball here, a ball here and a ball here. And everything becomes tight. It means that at time 1 everything gets connected. How? So this terminal four terminals that we have, they have been connected. [indiscernible] Steiner nodes. And what's the total cost we have? In this case it is 7. But the issue in fact the optimum solution here is only 4 plus 4 epsilon because you can't consider these Steiner nodes and connect all these things. And the main problem here is that you see we are -- what is a set S in this case? The set S is essentially all of these nodes here that we have here. All of these nodes -- so one idea is that if we don't find D, what is D in this case? D is this set of terminals. This one, this one and this one. These are the ones that you will delete. If you don't delete it and just run Robins Zelikovsky on that then we are in bad shape. Why? Because if you see these vertices actually the best Steiner tree for them is 7. So if you don't delete these vertices, if you cannot find the guilty node, then don't remove it, then you cannot gain anything, because if you run -- I mean, I don't say even Robins Zelikovsky, I am saying this is the normal Steiner tree. That is the main novelty of algorithm at this point that we're talking, you need to find some vertices and remove them before going further. And we need to distinguish these nodes. Okay. So let's just mention briefly about two easy cases and then go through the second case like the third case. So two easy case. The case -- so we are using this Lagrangean relaxation property. This is the thing we get from Goemans Williamson. And we have actually, because we are multiplying alpha times the penalty, we have this relation. Optimum alpha means when the penalty is timesed by alpha. And note know that alpha is less than OPT because it's reducing the penalties. Okay. So there are two cases that we consider. We just mentioned briefly about them. So the case that we have a large penalty in Goemans Williamson solution, it means that pi of S bar in our case is at least epsilon times OPT for some sense epsilon which will be determined later. If that is the case then what do we get? We just get the solution that we have. That solution, the cost of C of E is less than 2 OPT of minus this part. And now because of this relation that we have between OPT and as I mentioned OPT of alpha is less than OPT. So we have essentially the construction, the blank costs in terms of OPT and the penalty cost. And because OPT is the relation of the penalty cost, we can essentially express everything in terms of OPT because this penalty part you can just interpolate it with this OPT. So this part will be essentially determined by the penalty cost. And the penalty that we will pay also this one also is in terms of like penalty. And then you will get this simple formula. That's like a simple calculation. The case that we have a large penalty in OPT, where do we use that? So here it means that what's the meaning of large penalty. SSR with a set of nodes that OPT will connect. So pi of SS star bar means that the penalty will be paid for the rest and it is at least epsilon OPT. In this case, we are using this fact. So note that -- so just consider the same solution. This solution that we are considering it. So we are paying the C of E because the C of E is the same in both of these solutions. The only difference is pi of E. So in our solution we are paying pi of V for different vertices, but the issue that -I mean here we have like two times alpha times pi of V is less than 2 of alpha. Now because 2 times alpha, alpha is greater than one half. It means that 2 times alpha is greater than 1. That means if triangle or penalty will be 2 times less than alpha. And essentially want to say that the solution that we are obtaining, if you consider original penalties, it is at most 2 times alpha and here in this case we just use the fact that because the penalty that we pay for the OPT is large, if we discount the penalty. OPT of alpha and OPT should be related by this factor. So essentially OPT of alpha should be essentially smaller than OPT. So the actual OPT. And we know that the solution that we are obtaining is less than 2 times less of alpha. It means the solution should be essentially much less than OPT. So that essentially it's like simple calculation. You can't get it from this. Okay. Now let's go to actually the hard case. This case. So as I mentioned this is S. This is the rest of it. This is S infection, SS star. And we know that because of -- because we are not in the case one and two, the rest of these nodes has very small penalty. We know this part has a small penalty. But because we don't know SS star we don't know this part. So we are finding a set D such that the total penalty of D is small. And connecting this bright loop, bright blue part to the blue part is small. What is the set D that we are considering it? The set D is a nodes whose ball to D comes for deletion because we delete from S and also come from deactivated. Here D is a set of balls, set of nodes that once during algorithm become deactivated. So each node will be in some ball. If this ball at some point becomes like inactive, then this set contains this vertex will be B and D. But here we are doing this when the penalties are B times the actual penalties. I would mention this more. So we have two simple lemma and we are done. The first one is that pi of D -- as I mentioned if D was completely here then we knew that its penalties are small. But D has some intersection with this here. But still we cannot say that pi of D is at most 2 times -- essentially pi of D is small. And the other things that we are proving is that there's a forest F of very small cuff such that it connects exactly this blue like bright blue part to the rest with very small cost. So if we have these two things then we are done, because we know that -- so this part is OPT. This part essentially we pay the cost of OPT because this is the intersection of S and SS star. The cost of this part to connect to this part is small, then we know that if you use Robins Zelikovsky you get 1.55. Okay. So let's prove these two lemmas and then we are done. So the first lemma. Actually, here we are using this coloring scheme that I have mentioned. So D was the set of balls that even once got deactivated in Goemans Williamson, D times penalties. You can't just ignore B for now. B equals to 1 for penalties. You're running essentially Goemans Williamson which makes times penalty or just penalty. And these are the vertices that have been like once in deactivated bar. Okay. So I want to say that the penalties of this guy should be small comparing to OPT. Okay. And so how do we prove that? We consider each node and its last deactivation. So each node maybe becomes like penalty, we ran out of the penalty, becomes deactive. Maybe someone comes and joins to this one. Maybe next time again the whole thing becomes deactive and so on and so forth. Consider the last time that each node becomes deactive. And all balls that are corresponding to this deactivation. The first thing that you can prove here is that these balls are disjoint. Because if they are not disjoint, essentially it means if they have intersection, it means that Y this is the last time that is inactive. So that's easy essentially like observation to see that these are disjoint. So we have this disjointness here. And these are the things that are activated in the last. Okay. So that's the thing that I was going to say. So if you have any tree that connects these guys, these vertices that are here, it should pay at least the sum of the penalties of this guy. That's the key observation that we are making here. Why? Because of exactly this coloring scheme that we have. Consider this vertex, for example. If this is a tree that connects this vertex, actually, we know that there is also one vertex at least which is outside of all of these balls. We are using that. So if you have a tree that connects this ball to some vertex which is outside of all these balls, and why there is such a vertex because of exactly the definition of the deactivation, if there is no such vertex, none of them should be deactive. So anyway there is such a vertex. And now consider any tree that connects the centers of these balls, these terminal to the outside. It is easy to see that the sum of these things should be -- the length of this tree should be at least sum of the penalties. Consider this vertex, for example. This tree should go from inside of this ball to the outside. So the things that here you pay is at least penalty and this is disjoint from any other part of the tree. So consider for this vertex, for example, this vertex has its own ball here. But this tree went essentially from inside of this ball to outside. So you should have paid the penalty here. And this part of disjoint from every other part. Consider this vertex. This vertex also is going from -- going outside. Maybe you could actually do anything. Go any complicated thing. But you will see that anyway that you will do that, when you go from inside to the outside, because of this coloring, you should pay the penalty. You can obtain this constant essentially from the duality. That's also easy to see. But from coloring scheme you can get it maybe more intuitive. Anyway, so we know that. Okay. So that's the thing. So forget about this better. Better say is 1. I want to say that like pi of D is at most 2 times OPT. Here I mention that any tree that connects all of them should be larger than pi of D. Now, why 2 OPT? I will say consider the original tree that we constructed for set S in our solution. We know that because of the Goemans Williamson that tree S is at most 2 times OPT. That was just the observation that we had. So instead of that tree we are putting 2 OPT. Because that tree was at most 2 times OPT. So that particular tree is a tree that we are considering, because you know that's the important thing here is that this tree is part of F. So the original tree that you found for S should connect all vertexes in D. But that was by definition. So here that tree and the size of that tree by the Goemans Williamson algorithm was two times OPT. So then we have these things. 2 times OPT here. And then we are in good shape. So that's the thing that we showed that the pi of D is small. At the same time, we want to see the second thing. That for the rest of essentially for S minus D minus S intersection, SS star, it means that for this light blue, connecting them to this part is small. That's another thing. Now consider this same running of that, you remember this better times penalty that we ran to get this deactivated D. At the same run, we are also doing a Goemans Williamson algorithm essentially for this blue -- for this light blue part. And we show in the same run because this guys do not become inactive in any of the solution, exactly because of this reason it means that their connection to these things should be small, to the rest. This part is like a mathematical and not constructive because we don't know SS star. So we want to connect these guys to these guys but we don't know these guys. This is just some mathematical proof and some existential proof. It's like the first use of Goemans Williamson as far as we know. That we are using it to prove something but it is not algorithmic. It's just existential result because we don't know this part. Here essentially we are doing this. We are running this Goemans Williamson and the pruning step is the different things here that we are using. So we are only keep the ages which are relevant. By relevant it means if we are connecting two vertices like one vertex here and one vertex here we don't use this edge, we just ignore it. So we can show essentially connecting this guy to this guy is proportional to the penalty of this guy. And we know the penalty of this guy is very small because we're not in case 1 or 2. So we are done essentially. Why? So there are some technicalities that I don't want to go through it now. So we are done here. Because from the first case we get the approximation factor of this, that's just the computation that we get. We knew that in the case 3, case 1, and 2 we have this thing we revert. In this case we have Goemans Williamson lambda that and some delta this. So here we get so from the first case we get this ratio. From the second case we get this ratio. From the third case we get this ratio. Why? This is the part that the penalty that we pay for D. This is the part that we pay for S bar and this is the part that we pay to connect S minus D. Why? Because this one is because of S intersection. SS star. And these two better things was because of that light blue part that we want to connect. So we get 1.55 times this plus this, plus this. And now it is just a matter of putting the conditions here. You get, if you put alpha beta and gamma in this then you will see the max of them would be strictly less than 2. We can't get a better thing and you can actually get 1.992 here. And 994 is not correct. 992. You can get it 992 so you can get this approximation. Okay. So that's essentially the things that I wanted to say here. Now, there is also, there's some other problem we can use. Price collecting TSP. The same problem that you have like a TSP for some vertices you are allowed to just pay the penalty and don't connect it. So that was actually one of the open problems that Goemans mentioned in 1998. He presented a talk in I think like ISMP and he mentioned this two-problem, two main open problem relating to TSP. One was price collecting TSP getting better than 2. And the other one was ATSP getting better than log N. And both of them incidentally happened in this year. Now for the ATSP we have log N over log log N and we have better than two forces. So the algorithm, this is essentially a byproduct of the previous algorithm. Exactly same algorithm. We have this guarantee Lagrangean relaxation property. We're just finding this set of D there. And we are just using, instead of the Robins Zelikovsky, we're using Christophedy [phonetic] algorithm, which is 1.5. So you can get 1.98 approximation algorithm here for the TSP. And so the algorithm is very similar, so you can just see it in the paper. But so there's a difference here. So price collecting Steiner tree I consider it a bit more serious because we can go below the integrality gap. Here we didn't go below the integrality gap. It's 1.5. Upper bound. But here we get 1.98 so we see a large gap that we might be able to go to at least 1.5. So there's a conjecture we should be able to find for price collecting TSP 1.5 maybe. And toward this conjecture actually after Gorman worked on these things and based on our algorithm he could improve it now for price collecting TSP to 1.91. But that's the thing. And that's it, essentially. So we mentioned for two minor Steiner tree price collecting, price collecting, historically, that you have a set of sets and you want to just connect them on a path instead of a tree. But you can get -- that's also a non-problem. So we formalized some coloring scheme. We used Goemans Williamson analysis, type of analysis. Not exactly that more complicated than. For an existential proof. Future work is improving these ratios and applying to more price collecting problem. I would say like one of the main open problem other than this is getting better than 2 for Steiner tree forest. So this is -- for Steiner tree there is much better like 1.55 but we don't know anything better than 2 for Steiner forest. And that's one of the big things. Towards these things, we use this coloring scheme and these types of things to get the P task for planar graphs for price collecting, for Steiner forest just standard [inaudible]. We can get P task on Steiner tree forest on planar graph. We are using this technique to get P task. That's the nice thing, you use the combination. But we don't know for general graphing [phonetic]. Okay. Thanks. [applause] >>: Did you collect a prize for this? [laughter]. >>: It's not there yet. >>: A best paper, no? Notion of best paper. >> Mohammad-Taghi Hajiaghayi: That was in -- that's coming in the coming facts. I don't know. I didn't collect it. If you got some prize for themselves, but nothing for us, for the earlier version of this prize collected. >>: The 088 implemented ->> Mohammad-Taghi Hajiaghayi: The Steiner -- I don't know exactly. I mean, they're using -- at this point I mean I don't think there's anything. But, you know. They use the prize collecting they use it. Now I mention, digging like improving the algorithm such that you don't dig into the ground a little bit, save you a lot. That's like a huge cost. Any improvement you can get a huge cost saving. >>: Okay. Let's thank the speaker.