>> Host: Okay, good morning. Welcome to Graph Drawing 2012. It’s a great honor for me to open this conference, especially this year that the Graph Drawing Symposium celebrates its 25th anniversary. First of all [inaudible] and I wish to thank all people who work had for this event. So many thanks to Lev Nachmansen and the other members of the organizing committee and thanks’ to Microsoft to housing this conference. We are also grateful to all the sponsors that gave to the budget from the mentor contribution. Let me thank also the [inaudible] members who did a wonderful job with this election of papers and posters for this conference. And special thanks go to the auditors who decided to submit to the GD, because their submissions that are presented needed the heart of the conference. And I also want to thank the [inaudible], so professor [inaudible] and professor [inaudible] for accepting our invitation. We are honored by their presence. As you know, this year the Graph Drawing Symposium experimented for the first time in its history the double [inaudible] for paper submissions. And we are very happy to report to you that these settings work very well. And we have received many, many submissions during the business meeting. We will try to give you some statistics about submission numbers, acceptance rates and comparisons with previous graph drawing additions. In the program, as you can practical talks. And this dynamic and lively program label that will inform you see, each session mixes both theoretical and has been done in order to have a more indeed. Near to each talk you can find the about the corresponding track. But for these 20 years of GD we also prepared some special initiatives. First concerning the graft drawing contest, the usual graft drawing contest, we have this year games besides the classical competition. And we need to evaluate these games. So we invite you, we warmly invite you, to play with these games and to score them based on their fun factor. You will have the chance to play during coffee breaks and also during the session devoted to GD which will take place this afternoon, from 5:30 to 7:00 pm. Let me thank the committee of the GD contest for this very nice initiative. And the winners of this competition will be announced during the social dinner of tomorrow night. As I say on [inaudible] there are two best papers, words, and one for each track. We already signed these press papers and they have been announced at the website of the conference, which is also indicated in the program, but again the winners will receive some money and certificates during the social dinner. And as a third initiative following the suggestion of [inaudible] last year, we established a new award category which we call the best fundamental paper award. We assign this award to a single paper, either a journal or conference paper which represents a fundamental contribution in the field of graph drawing. And hopefully this kind of award will enter in the tradition of [inaudible] we continue next year. So, in order to assign this award we needed a small committee whose members are listed in the graph drawing website. And I warmly thank all these people for all their support and their work on this specific task. Again, the winning paper will be announced tomorrow during the social dinner and it will receive a special mentioning on the website of the conference for its merits in the field. I think it’s so, let me recall you that coffee breaks and lunch will take place beyond that door. There is a room there. And I wish to thank you again for attending this event. Thanks’ for the attention and [inaudible], me and [inaudible], who is not in the picture, he is actually there, [inaudible]. Thank you very much [inaudible]. [clapping]. So probably Alex wants to open the next session. >> Alexander Wolff: Okay, it’s my pleasure to start the first session. My name is Alexander Wolff, but I am just called Sasha and I welcome you here too. And the first talk is by Micha Sharir and, what’s your first name? >> Adam Sheffer: Adam Sheffer. >> Alexander Wolff: Adam Sheffer on counting plane graphs, cross-graph charging schemes. Please, Adam. >> Adam Sheffer: Hi, so as said I am Adam and I am going to be talking about this work called counting plane graphs: cross-graph charging schemes. It’s a joint work with my PhD advisor Micha Sharir. Now we have all sorts of results in this work, but the thing that I am excited the most about is the technique itself which we call crossgraph charging schemes. And I will want to try to convince you that it’s an interesting technique, but before I can do that I need to present some definitions and some problems so we will have motivation for the technique. Were the you have and they that are examples language straight edge crossing free graphs, more specifically a set of points in the plane, we are not allowed to move them, are fixed. And we are interested in straight line segments known crossing. We call these plane graphs. You have some here. Now notice the distinction from plane graphs. These two graphs are actually planar in the sense that if I can move the points I can fix the problems, but in our context they are not plane graphs. Given a set of points, for example this set, we can embed many different such plane grafts on the set, which leads to a bigger problem. What is the maximum number of plane graphs that can be embedded over a set of land points? We call it pg of N, so we want to say that if you give me a set of end points, any set of end points, I can tell you that there are at most pg of N plane graphs that can be embedded over this set. We want to find out what this pg of N is. So just to make it clear let’s do an example. Let’s find pg of 4, the maximum number of plane graphs that can be embedded over any set of 4 points. So I need to go over all sets of 4 points in the plane. But actually there are only 2 cases. A quadrilateral convex and a triangular one, because if we slightly perturb the points it will not change the number of plane graph that can be embedded over the set. So you can very easily in one minute calculate that this is what we get in both cases. And pg of 4 is 2 to the 6th, every set of 4 points to the plane that you give me. [inaudible] 2 to the 6th plane graphs that can be embedded over it. Now a specific type of plane graph is a triangulation. I am sure you all know it. One definition is that it’s a maximal plane graph in the sense that I cannot add any more straight edges without crossing existing ones. And I can ask exactly the same question for triangulations. I can ask what --. I tr of N is the maximum number of triangulation that can be embedded over any set of end points in the plane. So in a previous work we showed it as any set of end points in a plane has strictly less than 30 to the N triangulations that can be embedded over it. And the best known lower bond is 8.65 to the N. There is a point set with this number of triangulations. So you see there is still some gap here. And there are many other variants. I can ask how many plane spanning trees can be embedded over a point set, or perfect matching, or spanning cycles and if you look at the literature there are works on many, many variants. There really are a lot of variants that people have studied. Just in case you are curious here are some of the best know bounds for some of these variants. So you can see that for some problems we have, there is still a large gap. For some problems there is a slightly smaller gap, but we are still far from knowing these values. There is still a lot of work to be done here, even though there are works on these problems for over 30 years now. Okay. So we have some problems and now we can start talking about the technique. It’s called cross-graph charging schemes. So first let’s just recall what the charging scheme is. I am sure most of you know what it is, but still just let’s do a quick reminder. It’s basically an analyzing method, a bounding method. And we are putting charge on vertices or edges or whatever and move it. Probably the most famous use of it is the proof of the four color theorem which heavily relies on a charging scheme. Now I know you probably know what it is, but I am going to spend on minute just to remind you how it works because I am going to need it later. So let’s do a very trivial example. Let’s prove this completely trivial property. A graph with n vertices and maximum degree of D has an independent set of this size. For example here I have maximum degree 3 [inaudible] so the claim says that there is an independent set of side 2, not very interesting. You can also find an independent set of side 3. So, charging scheme is basically double counting method. We put the charge in bounded, we move the charge in bounded again and we have a double counting. So let’s just do this very fast. Here I can put a charger [inaudible] on every vertex. So let’s say that the charge is C and the total charge is N, right. And vertex is 1 charge on 8, so this is one bound over the charge. And I want to move the charge and bound it again. So each time I am going to choose a vertex, say I choose this one, put it in my independent set and give it the entire charge of its neighbors. So, for example it will get all of charge of these three vertices here and then the graph will look like this. Now I choose another vertex, I do the same and I am done. No more vertices we charge. So let’s use this to bound it again. Now the entire charge is on vertex of the independent set. Only on vertex of independent set S. And each set vertex has a charge of at most D plus 1, because well it started with one and got a charge of it mostly from its neighbors. So I know that the charge is at most the number of vertex of independent S times D plus 1. So it got two bounds on the charge which equals then this. Combining them immediately gave me the claim I want. Sorry for boring you with this. I just wanted to remind everyone how it works. Okay. So you probably know some other charging schemes. What we do differently, what we are talking about that’s different is that we are going to move a charge across different graphs. That is, a vertex in one graph might give charge to a vertex in a specifically, in a completely different graph. As far as I know the first instance of such a use, an idea, was by Sharir and Welzl in ‘06 where they proved that the maximum number of triangulations for any set of end points is 43 to the N. Then it wasn’t really a technique, it was an analysis for a specific problem, very specific to their problem. But very soon they found out that we can use it to do other things. Here are some examples. We show the converse, that every set of end points in the plane has at least some number of triangulations, or we showed some properties of [inaudible] triangulation. I am going to explain what this means soon. We improved the 43 to the N down to 30 to the N and there was even an algorithm. Razen and Welzl show an algorithm that gets a point set S and counts pg of S, the number of plane graphs that can be embedded over it in a time that is exponentially faster than pg of S. That is exponentially faster than the time it will take it to numerate all these graphs. Okay. But all of these works are actually about triangulation, even this one, although it doesn’t seem like it, it’s about triangulation. And the charging scheme was between vertices of different triangulations. Specifically it relied heavily on flipping of edges in triangulation; probably you know what it means. If not I saw that we are going to listen to an invite talk about this tomorrow. What we did in this work is that we showed the technique is actually much more general. It can be applied to many types of different graphs, stuff that’s not related to triangulations at all. And even we found it a bit surprising; it can even be applied to some graphs that do have crossings, a non-plane. So, I am going to show you how this works, but first let me just show you some stuff we can do with this technique to convince you that it’s interesting, that it’s can use it to get some upper bound of pg of N of other problems, but useful and then sort of how it works. First we improved bounds. For example we improved the and we get slightly better bounds for all sorts I don’t have time to talk about them. Okay. We can study random plane graphs. What’s a random plane graph? So we say that if we have a point set, a random plane graph of this set is taken, is one uniformly chosen from the set of all plane graphs of this plane set. For example if I have this set of 3 points there are 8 possible plane graphs. It shows that each one is chosen in a probability of 1 over 8. These graphs are hard to study. You can’t use the standard technique, the probabilistic method, or the [inaudible], etc, because you can’t just take very edge with some fixed probability. You might get crossings. We are not allowed to have such crossings. So the common methods fail. And we can use cross-graph charging schemes to get properties of such graphs. Here is an example. We get all sorts of properties and this is just one example. Let’s say that V top I is the expected number of vertices of degree I in a random plane graph. For example if we have these three points again, it will go over the possibilities. You will see that an expectation, the number of vertices of degree 0. Isolated the vertices is going to be 3 quarters. So we show that we can get all sorts of bounds on the expected degrees. For example we can show that v top 2 plus v top 3 is always at least N over 24 [inaudible]. Any point set that you take you expect that there will be a lot of vertices of the degree 2 or 3; one of each 24 vertices in a randomly chosen graph. At least one of each 24 vertices will have a degree of 2 or 3. That’s just one example. We can show all sorts of properties. And finally I said that we can show stuff about graphs that do contain crossings, graphs which are not planar. So we studied k-quasi-plane graphs. A k-quasi-plane graph can contain crossings, but it’s not allowed to have a set of k pairwise crossing edges. For example 2-quasi-plane graph is not allowed to have a pair of crossing edges. So it’s just a plane graph. 3-quasi-plane, this is for example a 3-quasi-plane. It has crossing, it’s not even planar, but it doesn’t have a set of 3 pairwise crossing edges. There are all sorts of forks on such graphs. I think that mostly trying to bound the maximum number of edges that they can have, but I am not familiar with any previous counting results. And we show that you can upper bound the number of graphs, our technique in upper bounding the number of such graphs for 3-quasi-plane graphs and 4-quasi-plane graphs. Now you can see that these are very large bounds. This is the number of 4-quasi-plane graphs is astronomical. However, we think it’s nice because it’s the first time that we know that the number of such graphs is exponential. Before that it might, we didn’t know if there might be a point set with a super exponential number of 3 or 4-quasi-plane graphs. Now we know that it cannot happen. We suspect that this is the case for every fixed K, but I am not going to get into this. Okay. So, I am going to show you how this works now, but I just want to say first we started with a very specific --. This technique started with a very specific analysis for a specific problem. Then it got generalized to a set of problems all related to triangulations. Now we show that it’s even more general. It can be applied to all sorts of plane and plane related graph types and you can do more stuff with it. And I am excited about this because I wonder what else we can do, maybe we can generalize it even further, solve more problems with it. So though this direction is just to apply to more graphs, I bet we can find some more types of plane related graphs that we can use it for. But I think it’s more interesting to ask what we can do beyond. For example this technique is useful because it allows us to study random plane graphs which are hard to study. Maybe there are different families of graphs that are hard to study in random model and then we can somehow use this technique to study them, or maybe we can use it for something completely different. Why are we stuck on a specific point set? Maybe we can use it to count something like sub-set, subgraphs of a different family of a given graph, or I don’t know what. So if you have an idea on what you might think of something this might be applied to I would be very happy to talk to you. I won’t mind if you come to me at some point in the conference. Now with the time I have left let me just show you how this works, briefly. I am going to show you how to bound pg of N. I am not going to get the new and improved bounds, some worse bounds, just to see how this works. First I am going to use this lemma. Okay. First the lemma says that if I have some positive constant delta, such that this holds, we will see what this means in a minute. V top 0 is always at least delta N. Then I get an upper bound of pg of N. Now let’s do it slower and try to understand what this means. Say for example the delta is 1/100. So this says that if I can show that for any set of end points that I take, if I take a random graph I expect to see at least N over 100 isolated vertices, vertices of degree 0, then I get a bound of 100/N for the number of plane graphs. That is, if I get a lower bound on the expected number of isolated vertices in a plane graph I get an upper bound of pg of N. I am not going to prove it because I don’t have time, but it’s really not complicated to show this. I am going to show you how to get this lower bound. And this is where the cross-graph charging schemes comes. Now we are going to move charge between vertices of different graphs so we need a new notation. We call it a ving. A ving is an instance of a vertex in a graph. For example here is the point set. Here is some vertex v, here is a graph over this point set g, and a ving is an instance of v in g. It’s specifically, you can think of it as a pair of a vertex in a graph. And if the vertex has the degree of I in the graph we call it an iving. For example this is a 4-ving because v is as a degree of 4. Okay. So let’s use the charging scheme. We want to put charge and bound the charge and then move the charge and bound it again. Double counting just as we did before. So we are going to put a charge of 7 minus I for everything in every graph. For example here is a 5-ving that got a charge of 2, 1-ving got the charge of 6. A graph with a ving with a very large degree will have a very negative charge. This is very similar to what happens in the proof of the four colors here in order to give every vertex a charge of 6 minus I. And we use also a very similar analysis that shows you that on average, oh sorry, not on average, the total charge is larger than the total number of vings. Okay. It’s not hard to show, it’s very much like what’s happening on the proof of the four color theorem. That’s one bound of the charge on the charge. The charge is larger than the number of vings. Now we want to move the charge and bound it in a different way. So we are going to move the entire charge to 0 vings. Just like before we moved the charge to vertices of the independent set, now we are going to move it to 0 vings. Let’s take this 3-ving which has a charge of 4, it’s in the graph g. Now we want to throw away all the edges that are adjacent to it, all these three edges. We get a different graph g prime. In this graph our vertex is a 0-ving, because there are no edges into it. So this 3ving is going to give all of its charge to its 0-ving, and that’s going to happen for all of the vings. Every ving is going to give its charge to the 0-ving by throwing all of the edges adjacent to it. If you do this you can show that every 0-ving is charged at most 2 to the 12. This may seem counter intuitive because what if some 0-ving is charged by 1 million 1-vings. Each 1-ving has a charge of 6, so this is a charge of 6 million, it’s much larger, but the intuition is that if there are a lot of vings with a positive charge that charges 0-vings there will be a lot of vings with a negative charge to charge it. For example if you have 1 million 1-vings that charge it you are going to expect to find more than 1 million 100-vings that charge it. And each one of them has a charge of minus 93. So if there are a lot of vings that charge it, it is going to have a very negative charge. This bound 2 to the 12 is tight and is obtained when there are, I think there 12 1-vings to charge it. Okay. So let me just wrap it up. So we counted the charge in two ways. First we said that the total charge is larger to the total number of vings. Then we moved the entire charge and said that the total charge is at most the number of 0-vings times 2 to the 12, because all the charge is now in 0-vings. Combining these two gives us exactly what we want; the lower bound and the expected number of 0-vings in a graph. So this will give us a rather bad bound. It will give us a bound of 2 to the 12th N. But using some more tricks you get the new and improved bound that I mentioned before. And that’s it, thank you very much. [clapping]. >>: Any questions for Adam? >>: A very clear presentation. >> Adam Sheffer: Thank you. [clapping]. >>: Nice talk. >> The next speaker is Joe Fowler who will talk about planar preprocessing for spring embedders [inaudible]. >> Joe Fowler: So, my name is Joe Fowler. I am from the University of Arizona. This work is in conjunction with Stephen Kobourov. And I will be talking about planar preprocessing for spring embedders. So spring embedders are nice drawing algorithms that can draw any graph. Not necessarily just planar graphs of course. And the work by, well there is different classes, there like Fruchterman and Reingold which are four stroke algorithms. It’s also like multi-dimensional scaling ones like mine [inaudible]. But the idea with the FR1 is that those that are adjacent are pulled toward each other and those that are not adjacent are pushed from each other. They iterate so many times that they tend to give fairly decent graphic studies. Like in terms of node separation, edge length ratios, trying to avoid small edges verses big edges, angular resolution, trying to avoid having the really sharp angles, but they don’t consider edge crossing, straight line [inaudible]. >>: [inaudible] >> Joe Fowler: Do I need to repeat myself or did they get that? continuing. Okay, So with plannar drawing algorithms of course you get rid of all the crossings and they run much faster. They run in linear time compared to spring embedders that can take quite a bit longer. Like quadratic time per-iteration or more. But one of the drawbacks of straight line planar algorithms like for say Pach and Pollack, Schnyder and Kant, is that they tend to have areas where they will really compact all the nodes into a small place, which will lead to small edges compared to long edges. And they don’t do the best job with angular resolution either. So, the question that we are asking here is that, well spring embedders are influenced by the initial layout you start off with. So typically they start off with a random layout and they iterate from there. Now you would think that if you give it a planar layout where it starts off with planar it would do better crossing lines than with the random one that tends to have a lot of crossings? But that isn’t necessarily obvious because these algorithms by the very nature of how they work they tend to do these really big initial moves, in the beginning, and they totally destroy the planarity. So it would be nice, because crossings to do tend to interfere with the readability of the graph, if we could do something to help reduce the crossings generated by these spring embedders because they do well otherwise. Now in terms of previous work there has been some like Harel and Sardas used like simulated annealing and there are very classic algorithm using, but they improved upon a planar layout. Bertault actually devised one that took edges and vertices into account, but then had to consider all the edge and vertex pairs. In comparing like multidimensional scaling to force-directed layouts Brandes and Pich showed that they are indeed better at giving your ideal edge lengths. So one application for when you might want to layout a planar graph using a force directed method is by vanHam and Wattenberg. Now what they did is they had a real world graph, it was a nice one where it was a lot of clusters, but had a small diameter. So it had some edges that were common to many shortest paths. And so when you use your typical force directed algorithm to lay this thing out it just looked like a hairball. So their idea was to extract a planar subgraph with the lowest betweenness which is betweenness based off the number of shortest paths and edges in. And they got about 80% of the edges were in this planar subgraph and they used force-directed to lay it out. And then added in the high bid edges later and that was a much more readable graph. So this is an explicit example where you might want to use forcedirected on planar subgraphs. One thing that is sort of related to what we did is Didimo, Liotta and Romeo used poly-line layouts where you have an orthogonal way out or one from planarization and they iterate on that. And they had their own force-directed layout that didn’t introduce [inaudible], but it did have curves or bends in the edges, which is different than what we are talking about. I am talking about straight line drawings. Now in our experiments we had six different libraries that we examined. Two of them were trees, the proof from one is uniformly sampled labeled Trees where then we discard the label. That’s not the same thing as un-labeled. And random trees which is the standard one where you just randomly attach edges. So those are trees, two different types. Fusy graphs are uniformly sampled unlabeled planar graphs, not plane, but planar graphs and expansion graphs are random triconnected graphs formed by starting off with a k4 and randomly un-contracting a vertex into two vertices and then distributing the adjacencies to keep it try connected. We also looked at two real world graph sets, ROME graphs and AT&T graphs and picked the ones that were planar from that. So out of the ROME library there was over 11,000 and 3200 were still planar. Now for the generated sets, the first four ones, we went from N equals 10 to, n is the number over vertices, to 100 and we had 10 each. And you will see that with trees of course the 50 is the median you have, you know; your average degree is about 2. And when you go for like the truly random ones Fusy goes from 2.2 to 4.79 or range, but still its generally twice as many edges as a tree. And expansion graphs are a little bit more. But these real world graphs, which is interesting, their median values in terms of the average degree is fairly close to trees. So there are not that many more edges than trees. So it shows that people typically tend to layout these sparse graphs and often times they can be planar. So in terms of our experiment what we did was that first we have our initial random layout that most of them start off with and then we looked at three different planar drawing algorithms. We used OGDF for everything which is Open Graph Drawing Framework, which used to be AGD. And FPP is the classic one for say Pach and Pollack on the 2n minus 4 by n minus 2 grid using canonical ordering. Schnyder uses a different method with the SCHNYDER realizer. It’s a more compact on n minus 2 by n minus 2 graph actually half of that. So it’s the most compact. Kant is more like FPP, but has a better choice for outer face and what not so it tends to not compact things quite as much. Now for the Spring Embedders we will mainly look at the Fruchterman and Reingold verses Kamada and Kawai. We also, this was another simple one we just threw in, but it’s meant mostly as a preprocessing step itself. Now there are two different versions of this FR algorithm in OGDF. There is the standard one which is actually a grid varying approximation. Then they have one that also does exact computation that takes longer to run of course. And we are mainly trying to compare the FR variance to KK the Kamada and Kawai multi-dimensional scaling. Now we looked at four different aesthetics, the number of crossing just a simple number. These other ones are a little bit more involved. So minimum angle metric, this is taken from Helen [inaudible] article about different metrics for graphs. And here you are taking the ideal angel. So if you have four edges incident to angle, the ideal angle that you can put it in where everything is nicely distributed is 90 degrees. And if you have 100, or 180, it would just be 1 degree. So you are not going to penalize a sharp degree just because it’s a high degree vertex. And you are taking the average deviation of this, subtracting one from --. Subtracting it from 1, so 0 is bad, one is good. So 1 is when you have particular angular resolution and 0 is when everything is just on top of each other. And these other ones work in a similar way with edge lengths. This is fairly straightforward, doing a similar thing with edge lengths. The only difference is doing this little bit here so it always keeps it between 0 and 1, either subtracting or dividing it by the average or the maximum minus average. Now node separation is sort of the least standard out of all these. Here we use the concept of separating rectangles. So the idea is that I have a node and I try to find the largest rectangle that contains the node inside the bounding box that contains all the nodes. That doesn’t contain any other node. So rather than just looking at the node that’s nearest to it you are looking at this bounding rectangle because two nodes might be next to each other, but may have a lot of other space to other side. So this tries to take it into account for that. Now here are some sample layouts that we get for all this. This is for a graph with 55 nodes, 121 edges from the expansion library. Now the first column is just the different initial placements. Random, as you can see, is quite bad with almost 1600 crossings. But of course you get no crossings here, but the other metrics are, especially edge and node separation, are worse than they are with a random one. As you can see like here, there are really compacted areas where a lot of the graph is drawn. Now with the Fruchterman and Reingold the first one is the approximation. The next one is the exact and you see they are a somewhat similar structure, but not quite the same. But generally you have fewer crossings with the exact one. Kamada and Kawai are just different layouts and what we have found in general, this is not really effected by the initial layout. And we have a sort of similar thing going on with stress majorization. Now in terms of the aesthetics of just the placers all by themselves, without doing anything else, we see that of course the random one is the dark line where you get a quadratic number of crossings based off the number of nodes. And you have far more crossings than you do with the planar layouts which are 0. Now with minimum angle, the minimum angle’s actually worse with the random one than it is with the planar ones, so it’s not quite as bad. But the planar ones are worse than just a pure really random layout, which doesn’t look all that great for both edged lengths and node separation. And we see the same thing with the other set of the three graphs in the library. Now when we look at the base embedder aesthetics, this is using the random placement, this is what’s typically done. We see several things. Okay. So, the dark green line here is the FR with the approximate. The dashed that’s also green is the exact one. This purple one here that’s sometimes dashed, but sometimes looked solid is stress majorization. And the orange one is KK. Now in general, like especially with trees, Kamada and Kawai gets virtually all the crossings. And it does fewer crossings with the denser graphs and also with the real world graphs. And with the other aesthetics it also has, and it’s is generally always the best, except for this one case where the approximate version of FR is a little bit better with the node separation with your purely random planar graph. And the other three are similar. Now, so for our results this is a somewhat different layout. See before, this one is with the absolute values and this one is with percent improvement, okay. So here we are talking about how, what is the percentage of improvement or worsening? So for the first column we see a lot of improvement in terms of crossings. So for both the FR ones we are getting rid of a lot of crossings with the trees. And in some cases for the between like the 20 to 40 virtually eliminating all the crossings. Then getting rid of most of them otherwise. We get about a 20 to 40 percent improvement otherwise; also even stress majorization gets rid of quite a bit even though it doesn’t look all that great. This is final result. But KK is not really effective. It’s for the most part what ever variation sees, mostly noise. Now the good thing that we see is that our other aesthetics are not really adversely impacted. For the most part they stay the same. They are not really worsening and sometimes in some cases were actually improving the minimum angel a bit, which is interesting. But for the edge lengths and the node separation, for the most part, they remain the same with some noise. So, FPP which is, so KANT is an improvement of FPP. FPP doesn’t do quite as good as KANT. And so we see that even depending on what planar drawing that you put in you get --. That can affect the layout. So it’s even sensitive between these two because if you look, so this is proffer here, you get a lot of crossing elimination initially with KANT immediately. Whereas here not so much. And it doesn’t get up to 100 with FPP and Schnyder has similar results to these so that’s interesting. So in terms of what found was, well when we are actually just comparing raw aesthetics, so KK isn’t really affected, but Kamada and Kawai and is an expensive algorithm. It takes a while to run. And in our case if we are doing the exact version of FRE plus this very cheap preprocessing step it often times will run 20 times faster for larger graphs in our set. And so the question then becomes, “Well how do these two just compare in this raw comparison”? And you see that in terms of crossings they do very, very similar. Now this first graph might looks worse than it really is, but it’s just going up to 4 so I mean its getting rid of most of the crossings entries. So it’s very comparable in terms of crossings for these graphs where KANT and FRE have a slight advantage over KK for the denser graphs. It’s only worse with the trees. The minimum angle for the most part is just slightly better with trees and for the most part the same for the other two. Now for edge lengths and node separation, then better, it’s better across the board. So it’s the other ones go down to .6. But still, this algorithm to run KK and this is a much cheaper get similar results with this preprocessing as more expensive ones. in this case KK is consistently at .8 where is a more expensive algorithm to run. So we you do with these other So in terms of our conclusions we have several. We see that we can do this linear preprocessing step that doesn’t really add much to the time and it does have an effect upon the crossings; at least for the [inaudible]. So for sparse graphs it does quite a bit better. But even for denser graphs we see an improvement, which is the key. And the most important thing is that the other aesthetics for the most part are no adversely affected. So you are not doing this tradeoff that you are doing initially with spring embedders where you are trading [inaudible] for readability as much. So we also notice that the multi-dimensional scaling is relatively unaffected by planar preprocessing which makes sense given how it works by throwing everything up into a high dimensional space and then projecting it down. And we saw, as I was showing, that KANT and FRE is competitive with KK, which gives some motivation for doing this. Now in terms of future work, we have several things that we can do. So one of the things of course is see, when we did this ODGF we just used it out of the box. We did not do any messing around with parameters or anything. So we could try to adjust the ideal edge length with what you actually get as the average length, which might help some. And an important thing with FR is, as I said, it can do this big initial moves. And if we can adjust the cooling schedule so that it tries to avoid these big moves, to an extent that’s going to introduce a lot of crossings. That would be good. We also really only went up to 100 nodes. These are still relatively small graphs. And it would be interesting to see, you know, do these results continue for very large N, you know if you go to 1,000 or 10,000. Do you continue to see this kind of improvement or is it just initially? And, but I think even a more interesting thing to do is that, well planar graphs are sometimes, but as in the case for ROME they are only like 1/3 of the time for those. So we would like to be able to process non-planar graphs. So we could extract a planar subgraph and draw that first and see if that helps. Now if we are drawing the planar subgraph’s and just drawing that then you throw in the other edges. That can adversely affect those other aesthetics. And also we just looked at these other aesthetics in terms of edge length, node separation and angular resolution, but there is other ones like asymmetry and, um, um, there are many other’s they are just escaping me at this moment. So, and I think one last other thing of future work and that will be the end of my talk, is that we can maybe try to work with getting a smarter force directed algorithm, kind of using the technique used with [inaudible] and them. And try to get it so that we get one that doesn’t introduce crossings as much and see how that works as well. Okay, so thank you. [clapping]. >>: Are there any questions for Joe? >>: So when you apply a [inaudible]. >> Joe Fowler: Planar bedding? >>: Which one? >> Joe Fowler: Um. >>: Especially for the [inaudible]. >> Joe Fowler: Yeah, we use the default one with OGF where it augments it to a bi-connected graph and then picks a random one from that. >>: [inaudible]. >> Joe Fowler: Yeah, yeah, we, we, just used and in each case we just used the default. So we did not look at trying to pick better and better embeddings and also to make one note in terms of our experiments. We ran each one, each graph 10 times with 10 different random embeddings. So we didn’t just pick one, we tried 10 different ones. But we didn’t do anything special about picking those 10. >> Okay, I have a similar question. This FPP [inaudible]. >> Joe Fowler: Yes, yes. >>: So you have to extend your graph. >> Joe Fowler: Oh, yeah, yeah, yeah, exactly. >>: And you can do it in different ways. And we --. Did you try that? >> Joe Fowler: No, no, we, we did --. >>: [inaudible]. >> Joe Fowler: Yeah, yeah, exactly, so that’s one reason why --. >>: [inaudible]. >> Joe Fowler: Well I would think that with KANT it does a better job of augmenting the graph initially. >>: Yeah, because it’s not trying, it doesn’t, it’s not fully triangular. >> Joe Fowler: Yeah, yeah. And so that’s, but yeah, just to the point of getting it to the point where you can even use KANT there is a lot of different choices you can make there. So certainly augmenting the graph would definitely help. >>: Okay. One more question. >>: [inaudible] force directed methods. Is there any theorem to prove? [laughter] >> Joe Fowler: Um, not at this point. can’t --. >>: [inaudible]. Not off the top of my head. I >> Joe Fowler: What? >>: [inaudible]. >> Joe Fowler: Well, I am trying; I mean basically the idea is that spring embedders are effective. The input is [inaudible] by our processes. Yeah, so not, we are empirically trying to show that. >>: [inaudible]. >> Joe Fowler: Possibly, if you really understood how --. You have to really restrict the [inaudible], but yeah, possibly. It’s a good idea. >>: Okay, thanks again Joe. [clapping]. >>: And our next talk is by Thomas Blasiuss called Disconnectivity and Relative Positions in Simultaneous Embeddings. And this is joint work with Ignaz Rutter. >> Thomas Blasius: Okay, thank you. As mentioned this is joint work with Ignaz and it’s about simultaneous embedding with fixed edges where the graph is not necessarily connected. Okay. I want to start with the definition of the problem. We have two graphs as input, having a common subgraph. And we want to find planar drawings of each of the graphs, such that they induce the same drawing on the common graph. So in this example we have this red graph and the green graph. And both are planar. And here on the right we have a simultaneous embedding with fixed edges where in particular, for example, this edge here which is a common edge is drawn the same in both drawings. And each of the drawings is planar, but we are allowed to have crossings between red and green edges. Okay. There is a nice theorem by Junger Schultz stating that we do not need to care about the real drawing, but can deal with the embedding only. Or more precisely these two graphs you want into two have a simultaneous embedding with fixed edges; if and only if, they admit planar embeddings that induce the same planar embedding on the common graph. Now what does it mean to induce the same planar embedding? There we have to look at what embedding really means. And embedding consists of two parts. First we need a consistent order of edges around vertices and around the positions of connected components to each other that need to be also consistent. So previous results mostly ignore the right pod with the relative positions completely and only deal with the ordering of edges around vertices by either assuming that the common graph is connected, or that it’s a forest. There is one result that’s somehow in between, at least a little bit. And namely in the case where the common graph has one cycle and then you have to also decide whether to put other connected components into the cycle or outside of the cycle. And we do the opposite to these approaches by ignoring the order of edges around vertices and only looking at relative positions of connected components to each other. And this is done by assuming the common graph consists of disjoint cycles. And we will see that this can be solved in linear time. Okay. I am going to start with an overview. First of all we need some kind of representation of the planar embeddings, of the set of cycles. And we just orient the cycles arbitrarily. And then use pairwise relative positions to describe the embedding. So in this example we have the blue and the right graph cycle on the same side, namely on the left side of the green cycle. So here these two relative positions are left. Another example the right cycle is on the right of the blue cycle so the relative position off the red cycle with respect to the blue cycle is right. If you have an assignment of left and right values to these relative positions then we call this semi-embedding of the cycles. And of course not every semi-embedding is also and embedding of the cycles because we can, for example, not just put the right cycle to the right, inside of the green cycle without changing any other relative positions. Okay. What we then do is we do not consider two graphs having the set of cycles as common graphs. But we look at a single graph, a single connected graph, containing the set of cycles. And then we show that there is a data structure that we call the constrained cycle tree to CC-tree for short, which represents all the semi-embedded of the set of cycles that can be induced by an embedding of the graph G. We further show the intersection of 2 CC-trees is again a CC-tree. And this essentially solves simultaneous embedding with fixed edges for this case because we just take the CC-tree of the first graph representing the embeddings of the cycles with respect to the first graph; and the second CC-tree representing the embeddings of the cycles which can be induced by the second graph. And then we check whether the intersection is empty or not. Okay. So let’s start with the graph which is connected and contains a set of these joint cycles. Now what are the embedding choices? For example we can re-order parallel subgraphs. So in this case we change the order of the green path with this larger component. And this changes the relative position of these two cycles with respect to the green cycle. And the nice thing is that this is the only possibility to change these relative positions. So we get that this equation up there always holds namely that the red cycle and blue cycle are always on the same side of the green cycle. Another way to change the embedding is flipping tri-connected components. So in this case this component was flipped. And this of course changes the orientation of the blue and the red cycles of all cycles in this tri-connected component. And thus it also changes the relative positions of all other cycles with respect to these cycles. And again this is the only way to change these relative positions. So we get these constraints there, mainly that if you look at the blue cycle then the orange and the green one are on the same side and the red is on the opposite side. And similar for the red cycle all other cycles are on the same side no matter which embedding we choose for the graph sheet. And then we can also change the embedding around cutvertex and this may also yield some additional constraints which are similar to that. And what we can show is that these constraints are not only sufficient, but also necessary which means the following. So the necessary means that if we choose an embedding of the graph G and look at the embedding of the cycles, the resulting embedding of the cycles, then this semiembedding satisfies these conditions. And the other way around, if you take a semi-embedding and set aside these conditions then you also find an embedding of the graph G that chooses this embedding on the cycles. Okay. This essentially yields already a solution of the simultaneously embedding fixed edges problem because we have bijection between an instance of 2-Sat and all embeddings of the cycles that can be induced by a connected graph. So this instance of 2-Sat is just because we have a set of equations and inequalities between binary variables that can take the values left or right. The problem is that we have a quadratic number of variables because we consider pairwise relative positions as variables. And the solution to that is the CC-tree, the constraint cycle tree which I want to introduce now. Here again are the constraints we need to satisfy. And to construct the constraint cycle tree we start with the original graph and take a minimal connected subgraph containing all the cycles. So in this case we just remove these gray edges here. Then we replace paths with single edges. So this path of length 2 is replaced by this edge. And now we essentially have a tree structure. We have this orange cycle connected to the green cycle, which is connected to the blue cycle, and this is connected to the right cycle. And if you contract the cycles to single nodes then we get in this case a path, or in general a tree. We will then use this tree or each half edge in this tree to represent one decision. So I am just making an example, if you consider this half edge here, or this edge connected to the green cycle, then this represents the decision of putting the adjacent vertex either to the left or to the right of the cycle. And in addition we will say that the tree structure enforces that the whole subtree that is connected over this edge is also put on the same side of the cycle. Another example would be the decision made here. There we decided to put the blue cycle either to the left or to the right of the red cycle and all other cycles have to follow because of the tree structure; because this whole subtree is connected over this edge. And what we do then is we take the constraints we have up there, constraints, and apply them to these decisions we can make in the tree. So for example the first constraint up there states that the relative position we choose here is the same as the relative position of C3 with respect to C1, but there is not edge. So we just throw away this constraint. And the nice thing is that, at least in this case, the tree structure automatically enforces that this and this cycle are on the same side of C1. Similar we don’t have an edge between C4 and C2 so we throw away this first equation, but for this inequality we have, the decision we make here and the decision we make here needs to be the opposite. And what we can show is that the resulting tree and the set of embeddings that are represented by this resulting tree are exactly the embeddings of the cycles that can be induced by an embedding of the graph. This means in particular that we didn’t throw away too many of the constraints that we have and that the tree structure did not enforce too many constraints that are not necessary. Okay. So let’s state this theorem once again. And we get another theorem namely that we can compute this constraint cycle tree in linear time. Moreover the intersection as mentioned before of two constraint cycle trees is again a constraint cycle tree and it can be computed in linear time. And this directly yields that if you have two connected graphs that you want into two with intersection graph is the set of these joint cycles then we can test in linear time whether G1 and G2 have a simultaneous embedding with fixed edges by just taking the constraint cycle tree with respect to G1 and the constraint cycle tree with respect to C2, G2, and intersect those. So, just one word to this thing here; you can probably imagine if the underlying tree structure of these two constraint cycle trees we have is the same then this is pretty simple, we just take the union of all constraints we have on this tree. But if we have two different tree structures then we need to do something more. We need to transform some of the tree structure from one tree to the other tree. But this is possible in every case. Okay. So now we have this restriction there that the graph G1 and G2 are connected and we want to deal with disconnectivity. So we need to deal with that somehow. And the bad news is that the CC-trees don’t work for this case, but we get a more general result. Namely if you have an instance of SEFE then we can always construct an equivalent instance in linear time, such that both graphs are connected. And this does not only apply for the case where the common graph is a set of [inaudible], but for instances of SEFE. Now of course the CC-trees can also be used to solve the problem for more than two graphs if they all intersect in the same common graph consisting of a set of pairwise distance cycles, because we can just intersect an arbitrary number of CC-trees. And we can extend the result to the case where the common graph consists of a set of connected components, each with a fixed planar embedding. In this case we have the problem that the decisions we make, the relative positions, are not on binary choices because we don’t have just left and right, but we have phases we have to decide where to put the other components in. And in this case we need [inaudible] time. Okay. So I want to conclude with a slide I had before and with an open question which is in our opinion one of the main open questions for simultaneous embedding with fixed edges. Namely can we deal with both of the parts consisting that are contained in the choice of an embedding at the same time? So can we at the same time enforce consistency of relative positions and ordering of edges around vertices? Okay. Thank you. [clapping]. >> Alexander Wolff: Questions for Thomas? Okay. Thanks again. The next talk is given by Quan Nguyen. I am sorry about the translation. The title is StreamEB: Stream Edge Bundling. And it’s joint work with Peter Eades and Seok-Hee Hong. >> Quan Nguyen: Good morning everyone and thank you Alex for introducing me. My name is Quan. So before the talk I want to mention about a big data, recently big data is something new. And big data analytic is something real [inaudible] that people need in the industry. And the four challenges with big data are that we have lost volume, the velocity and the variety and also diversity. Today I am going to talk --. My talk is focused on the first three, the volume, velocity and the variety. For the diversity or the truthfulness or reliability, later we are going to talk [inaudible]. So this is the outline of my talk. So basically the streamEB graph is everywhere. And graph streaming is becoming popular. So now before that talk we need to distinguish between dynamic graph visualization and stream graph visualization. So for dynamic graph visualization in system matters we focus on a quite limited number of static graphs and [inaudible]. You can see G1, G2 and G3. Each of them can be aggregated data from a yearly report, monthly report. And for stream graph visualization we focus more on like the data is very long dimension, it can be the size this big. But for this work we only focus on the time dimension as very long. And the big data that would do in financial activities and fly monitoring activities. It can be millions of records and it can be stored in gigabytes. So the real motivation for our work is that one. And the challenge is for stream graph visualization is we want to be able to see the trends and challenges over a time. And also we want to see and make a [inaudible] of mental map. So that the user can see what went on. And a recent survey by [inaudible] the control between readability and stability, but for this work we focused more on the visual clutter. For [inaudible], no matter what [inaudible] we are going to use we have to solve the visual clutter problems. So this is the motivation of our work. And [inaudible] it is one of the reasons it’s a popular topic in the information visualization community and graph drawing community. And there are a few represented works. Before going to details of our research I want to show you a movie. So here I am going to show you to two types of animation, events by animations. One is with the static layout that and the other one with a dynamic layout. This is the simulation of the hijacking activities 11 years ago. And for it [inaudible] represents a city and the edges representing the fly connecting between the airports. And the color represents whether the fly is, red meaning [inaudible] and green means [inaudible]. So the hijacking activities happened around 8:00 AM to 9:00 AM. Then you can see after the first attack the number of flies significantly dropped. And you can also see the distribution around the US. This is after the second attack. Okay, so here we are at the end. So about 9:20 it’s almost shut down, no more flying. And it happened for more than half a day and then it resumed around midnight. And then the next day they no flied, I think one single fly. And for the second animation I want to show you how the [inaudible] framework can work for dynamic layout. And for this one I used a circular layout. It’s a stop weight. And [inaudible] is a trader and the connection and the trades between them. And you can see the animation over time from the market stock. So when a trade happens the active trader comes to the center and the bundling based on our [inaudible] compatibility that I am going to introduce to you later. So I will come back to --. So you already have some idea about what I am doing. So now I am going to talk in detail about what is stream edge bundling. We introduce it as StreamEB framework and also we introduce two types of new compatibilities for stream edges. And also we have introduced two types of stream bundling matters. And the motivation is that we want to analyze big data, massive relational time series in financial activities and flight monitoring activities. So first of all I want to introduce the bundling pipeline. And StreamEB is the cord of pipeline. And the important point I want to make is how pipeline can handle dynamic [inaudible] from the dynamic results. We can have the mapping again, that has not been previously studied before. Now so what is stream actually? In our model we study the stream as the continuous flow of stream wraps, stream elements, and when we are assessing one of the popular techniques in data mining, for mining graph streams. In our study we studied two ways for window-processing as sequence-based and time-based. And for each element the most general [inaudible] is a node connected to a node at a given timestamp with duration. Duration is important for some applications, but maybe not. So for the other applications for symbols like for flight monitoring system duration is something important. We need to know when it departs and the landing so that we can [inaudible], but for some other applications like trades. A trade is a trade and normally we don’t to reverse the trades that have already happened, unless in case you made some illegal trade and you have to cancel. But it is very rare. In general our model can handle those. We introduce you to the compatibility metrics. The first one is temporal compatibility. The basic idea is that for stream edge we have the timestamp and the end time happening some duration there. And we define several metrics to build the compatibility between them. It can be based on a timestamp, the duration, the end time or the timeoverlapping. The idea is that we want to relate the stream edges together so that we can do some analysis on that. For neighborhood compatibility we also want to study some causal relation between the edges. And that our neighborhood compatibility -. It’s kind of like we had the multi one dimensional data and we want similar edges together based on the multi dimensional vectors. For aggregate the final compatibility we aggregated the four compatibilities, the temporal compatibilities, and the temporal compatibility neighborhood, data-driven and spatial compatibility together. And we can start building our bundling methods by this list of aggregate compatibility. We introduce two methods, force-directed and tree-based stream bundling. The first one is force-directed stream bundling with dynamic layout. The model extends the classic spring algorithm. We introduce a new type of force; the bundle aware force. Previously we only had the spring force, the repulsion force and some external force. Now we introduce a bundle-aware force. And the idea is that the bundle results can help us to make the layout nicer in terms of the bundles. And the simple version simply extends the FDEB methods. And the idea is that we integrate the new aggregated compatibility measures into this. We also introduce some optimization in case we want to bundle data, but the nodes had a fixed location. And we want to serve a lot of computations. And we introduce something like a 2 step process, the offline and the online. For the offline step we do some re-computation of the compatibility and the compatible edges. And then on the online step we just reused the information that we already computed and then we set the running times. The fourth method is tree-based stream bundling. We introduce doubleinterpolation process. You can read our paper on it and see. For implementation we implemented on GEOMI framework and also I do it with Neo4j graph database. The [inaudible] we want to analyze big graphs. And here are some results that you can see. So we can compare from 8:00 AM, 8:30 AM, 9:00 AM and 9:20 AM, and the affects of the hijacking activities on the flights in the US on that date. And you can see that from 8:00 AM to 8:30 AM there is a significant dropped number of flights and [inaudible]. And before a certain time it dropped even more. And we see how the results look like using S-FStream EB bundling. It’s nice, but somehow it may introduce some artifacts. These two sort of like re-routing like near the trees [inaudible]. And we see how our framework can produce results for trading activities. The node represents traders and the edges represent the connecting between them. And this is using force-directed F bundling. The same layout and the layout using multi-one-dimensional scaling based on the trading, the frequency of the stock trades between the traders. And this is circular, how it looks using tree-based. And this is circular using FF directed, with F-F directed layout as well, that you can see the animation. For performance, from what we studied it seems that S-FStream EB is the farthest one because it saves a lot of [inaudible] without much iteration. And also for our optimization method it also can reduce that computation cost. But in general we need to do it more to make it really [inaudible]. For limitations and future work, I am at [inaudible] currently where it provides the flexibility, but also it requires the use of [inaudible] to adjust the bundling parameters. And currently the number of parameters is not small. And how to make the adjustment is based on the experience to play with the tools and also they really need to see --. As far as future work we plan to interact with some semantic zooms and so on. So we want to adopt some faster and more scalable methods so that we can adapt to make analyzed big graphs and also we want to analyze hierarchical data. For example [inaudible] data. Okay, yeah, that’s the end of my talk. [clapping]. >> Alexander Wolff: Thank you. Thanks again. Are there any questions? No questions.