0xDE
02 March 2013 @ 03:07 pm
Let's say that a permutation on the numbers from 1 to n is k-universal if its subsequences of k items have all of the k! possible different patterns that they could have. For instance, 25314 is 3-universal: the six possible patterns 123, 132, 213, 231, 312, and 321 appear in it as 234, 253, 314, 231, 514, and 531 respectively. How short can a k-universal pattern be?

It's not hard to find upper and lower bounds within a constant factor of each other. In one direction, the sequence k, 2k, 3k, ... k−1, 2k−1, 3k−1, ..., k−2, 2k−2, 3k−2, ... etc of length k2 is universal. (This is the same tilted grid pattern that gives the lower bound in the Erdős–Szekeres theorem.) In the other direction, the length n of the universal permutation must be at least some constant times k2, in order for it to have at least k! different subsets of size k. But what is the constant?

A computer search found that there is no 4-universal permutation on 8 items (the best is 51862473 which has 23 out of the 24 possible patterns), but the 9-item permutation 162975384 is universal. So the sequence of lengths of the shortest k-universal patterns begins 1, 3, 5, 9, ... But although there are simple quadratically-growing sequences like ceiling((k^2+1)/2) that begin like this, it's not really long enough to identify this in OEIS and see whether it matches anything known.
 
 
0xDE
25 February 2013 @ 06:02 pm
I have a new preprint out, "Antimatroids and Balanced Pairs", arXiv:1302.5967.

A partially ordered set (or almost equivalently a directed acyclic graph) can often be used as a concise representation of a much larger set of linear orderings on a set of elements (the linear extensions of the partial order or the topological orderings of the DAG). But my feeling is that, in many cases where this has been done, it is worthwhile to consider generalizing partial orders to antimatroids, and generalizing the linear extensions of the partial order to the basic words of an antimatroid. In this way, you get to represent sets of orderings that would not be possible to represent by partial orders, while still retaining enough structure to be able to prove interesting things about these sets. (My older preprint "Learning Sequences" is related, but sort of the opposite, as it is instead about using sets of linear orderings to represent antimatroids.)

This paper is part of this program of replacing partial orders by antimatroids. It considers the 1/2–2/3 conjecture, an unsolved problem about partial orders according to which, if you choose a linear extension at random, then there should be a pair of elements that are nearly equally likely to be in either possible order relative to each other. Of course, it's not any easier to prove this for antimatroids than it is for partial orders, but as far as I can tell it's also true when generalized in this way. The paper provides proofs that several types of antimatroids obey the conjecture, along the way simplifying the proofs of some of the results on partial orders that it generalizes, and it reports on a computer search (using the algorithms I described here) by which I verified that all antimatroids on six or fewer elements obey the conjecture.
 
 
0xDE
17 February 2013 @ 08:55 pm
Back when he was an algorithms researcher, Jeff Westbrook was a co-author on one of my earliest papers, on dynamic planar graph algorithms. Now he's won his third WGA Award for his television writing. Congratulations, Jeff!
 
 
0xDE
06 February 2013 @ 06:12 pm
Here's a geometric graph puzzle for you. Start with the graph of the truncated icosahedron, with 60 vertices and 90 edges. Delete a matching (a set of edges that do not touch each other) consisting only of edges that belong to pentagons in the truncated icosahedron, in order to maximize the number of connected components of the remaining graph. How many components can you make?
 
 
0xDE
04 February 2013 @ 08:09 am
I've had a couple of past papers in the International Symposium on Voronoi Diagrams; this year I'm on the program committee. It will be in St. Petersburg, Russia, in July, during their White Nights festival, so a great time to visit there. Proceedings published by IEEE. Submission deadline March 20.
 
 
0xDE
03 February 2013 @ 08:45 pm
In editing a new Wikipedia article on Rota's basis conjecture, I came across a connection to a different problem in discrete geometry that seems closely related.

When applied to the Euclidean plane (a case for which it is known to be true), Rota's conjecture states the following: suppose you have nine points colored with three colors in such a way that each color forms a non-degenerate triangle. Then the points can be regrouped into three non-degenerate rainbow triangles (triangles with all three colors as vertices). Like so:



A different conjecture of Bárány and Larman can also be applied to points in the plane (where again it is known to be true; the harder part is in higher dimensions). For nine points colored in the same way, it states that the points can be regrouped into three rainbow triangles (this time allowed to be degenerate) whose intersection is nonempty.

So it occurred to me to wonder: suppose you have three non-degenerate triangles of three colors, the same as in Rota's conjecture. Do there always exist three rainbow triangles that are both non-degenerate and intersecting? Or maybe stronger, three rainbow triangles whose intersection is full-dimensional, as it is in the figure? And what about higher dimensions (where in general neither conjecture has been proven)?

ETA Feb. 5: There do not always exist three rainbow triangles with full-dimensional intersection; the figure below is a counterexample. At most two of the triangles can cover any point away from the origin, so if three triangles intersect they can only do so at the origin.

 
 
0xDE
31 January 2013 @ 09:31 am
Some brief links:

Andre Schulz has a new blog, on graphs: a blog on geometric graphs and other things

From his first post, I learn that the list of acceptances for EuroCG is available. No abstracts yet; hopefully they're coming soon.

For those of you using git to manage your papers, Jukka Suomela has a nice utility making color-highlighted word-level diffs work better: https://github.com/suomela/gitwdiff There are also some interesting tips for git+latex workflow on stackoverflow; I don't necessarily agree with all of them (the use of branches seems overly finicky to me) but some of them look like good ideas.

And (via MF) a cute modern just-so story.
 
 
0xDE
I started wondering about the title question after seeing a talk by Kitty Meeks at FUN last summer that used this property, and found it again today in my notes from then. One answer is given by a simple and easy to count parameter of any graph, that is closely related to graph minors, maximum degree, bandwidth, and the number of connected subgraphs. Because I don't know what it might have been called before, I'll make up a name for it: the branch count.

Read more...Collapse )
 
 
 
0xDE
12 January 2013 @ 04:02 pm
I recently covered strong connectivity analysis in my graph algorithms class, so I've been playing today with applying it to the link structure of (small subsets of) Wikipedia.

For instance, here's one of the strong components among the articles linked from Hans Freudenthal (a mathematician of widely varied interests): Algebraic topology, Freudenthal suspension theorem, George W. Whitehead, Heinz Hopf, Homotopy group, Homotopy groups of spheres, Humboldt University of Berlin, Luitzen Egbertus Jan Brouwer, Stable homotopy theory, Suspension (topology), University of Amsterdam, Utrecht University. Mostly this makes sense, but I'm not quite sure how the three universities got in there. Maybe from their famous faculty members?

It's limited to relatively small graphs by the time it takes to grab the data from the Wikipedia servers, but the code is surprisingly easy. Given a set of articles, here's all it takes to build the graph:
def blueLinksFrom(article):
    """Which Wikipedia articles are linked from the given article?"""
    api = "http://en.wikipedia.org/w/api.php?action=parse&page=" + \
          urllib.quote(article.encode('utf-8')) +\
          "&format=json&prop=links"
    linkdata = json.loads(urllib2.urlopen(api).read())
    linkarray = linkdata['parse']['links']
    return {L['*'] for L in linkarray if 'exists' in L and ':' not in L['*']}

graph = {v:blueLinksFrom(v)&articles for v in articles}
Vaguely relatedly (well, it's about graphs and Wikipedia, if nothing else) I discovered two things about Halin graphs today: (1) Like many things in mathematics, they're named after the wrong person. Halin graphs (or at least, 3-regular Halin graphs) actually go back to the work of Thomas Kirkman, over 100 years before Halin. (2) For about the past 3 1/2 years, Wikipedia may have been using the wrong Halin reference, copied from MathWorld. I can't tell for sure because I don't read German, but the 1964 paper it was citing (and that MathWorld still cites) seems to be about other topics. More reliable publications in this area instead cite a different paper by Halin, published in 1971.
 
 
0xDE
08 January 2013 @ 12:00 am


This time I had the good camera handy, because I was using it earlier to capture the whiteboard from my lecture.
 
 
0xDE
06 January 2013 @ 05:13 pm
 
 
0xDE
01 January 2013 @ 10:19 pm

Happy new year! As in previous years the growth of the cs.DS section of arXiv.org continues: there were 935 data structures and algorithms preprints this year, compared with 798 in 2011. We're not quite to the point of having 100 papers per month but July came close with 98.

Read more...Collapse )
 
 
0xDE
26 December 2012 @ 04:00 pm
While visiting relatives for Christmas, I heard a pretty damning account from one of my cousins (who works for a company that develops spam filtering software) about the uselessness of recent Ph.D.s in this area. If I understand the issue correctly, there is a pretty big mismatch between typical machine learning / information retrieval models of the spam filtering problem (a relatively static corpus of spam and ham messages, from which one must learn to filter the spam with the best possible combination of precision and recall) and the actual behavior of spammers (who are actively engaged in seeking out holes in spam filtering software, blasting as much spam as possible through any hole they find until it is patched or the system learns to filter it, and then moving on to the next hole).

In connection with this I found a paper by Tom Fawcett that made very similar points, nearly a decade ago. But it's easy to find recent and highly-cited works that don't take Fawcett's lessons to heart.
Tags:
 
 
0xDE
23 December 2012 @ 09:08 pm
Merry Christmas to all, or whatever else your preferred holiday greeting is.

Different people have different holiday traditions, but for me (even though the carols and decorations have been up in the stores and cafes for weeks) it just doesn't start feeling like Christmastime until I go see the Newport Beach Parade of Lights. So here is this year's batch of photos from the boat parade. As in previous years, many of them are intentionally motion-blurred, because I like what that does to the colored lights on the water.



Also, here's a cellphone shot of my daughter, home from Boston for the holidays. She's been active on instagram, and took this shot of her brother at the same meal.

 
 
0xDE
20 December 2012 @ 12:37 am
Any string of properly nested parentheses represents a tree, with a node for each matching pair of parents and the parent of a node being the next outer pair of parens. So by Kruskal's tree theorem, parenthesis strings are well-quasi-ordered by a partial order in which s ≤ t whenever s can be reached from t by the removal of matched parens. But this sort of parenthesis removal is a very nonlocal operation: the match of a paren can be very far in the string from it.

Here's another pair of operations for modifying parenthesis strings that are somewhat more local. Remove a pair of matched parentheses only if there is nothing between them. Or, if it would preserve the proper nesting of the parens, replace a consecutive pair "()" by its swap ")(". So for instance we could turn "((()))" into "(()())" by swapping the innermost pair of parens. The reachability relation for these operations also turns out to be a well-quasi-order!

Read more...Collapse )
 
 
0xDE
16 December 2012 @ 07:41 pm
During my recent visit to UIUC, Tasos Sidiropoulos asked me a question about grid graphs that turns out to have a surprisingly clean answer. In rough terms, the question is: if an n × n square grid graph is damaged by the deletion of some number m of its vertices, how big a square grid must be left?

Read more...Collapse )
 
 
0xDE
15 December 2012 @ 07:49 pm
I just came back from Urbana, where I was visiting for Kyle Fox's thesis proposal. While there, I also took a few photos of the local architecture.



These two photos of Sariel Har-Peled and Jeff Erickson are also by me; I took them while playing with Sariel's new camera, which has interchangeable lenses and a big back screen but no mirror or viewfinder. It seems to have a lot of the advantages of a DSLR (for instance, being able to attach really wide angle lenses) in a much more compact format, as long as you don't mind holding it zombie-style.
 
 
0xDE
12 December 2012 @ 10:56 pm
If G is a bipartite permutation graph, then the following conditions are equivalent: (1) G is planar, (2) G contains no K3,3 subgraph, and (3) in the notation from my previous post for G, the pairs of "><" characters are never nested more than two levels deep.

Here's an example, for the graph denoted by the string ">>\\/\//\</\><//\>\\</<".



Read more...Collapse )
 
 
0xDE
08 December 2012 @ 07:18 pm

A permutation can be represented geometrically by placing it above the trivial (sorted) permutation, and drawing a line segment between the two copies of each permuted element. The intersection graph of these line segments is called a permutation graph; it has an edge for every pair of elements whose order is swapped by the permutation.

The permutation graph is bipartite (as it is in this example) exactly when the permutation that it comes from has no three elements whose ordering is reversed; that is, when it avoids the pattern 321. In this case, we can describe the permutation more succinctly with a convenient textual representation. For a permutation of n elements, look at the tops and bottoms of the line segments in each of the n positions in left to right order, and write down one of the five symbols ">", "/", "\", "<", or "|" to match the orientations of the two segment endpoints in each position. In this example, for instance, in the first position (with a 3 on top and a 1 on the bottom) both endpoints are of segments that extend rightward, matching the orientation of the top and bottom points in the symbol ">", so we would write a ">" in this position. The notation for the permutation 312479568 given in the example would be ">/<|>></<". You can recover the line segments that this string describes (and therefore also the permutation that we started with) by drawing segments that connect the top and bottom points of each vertical bar, the ith rightward-pointing endpoint on the top to the ith leftward-pointing endpoint on the bottom, and the ith leftward-pointing endpoint on the top to the ith rightward-pointing endpoint on the bottom.

Read more...Collapse )