******************************************************************* Jelani Wednesday's lecture forced me to do some algebra review (I haven't touched abstract algebra for about 3 years), but it was good for me. For instance, I had to rethink why every group is isomorphic to a subgroup of S_{|G|}. Speaking of which, algorithmically are there any results to find the least n such that G is isomorphic to a subgroup of S_n? The lecture I found coordinated and not too confusing. For a bit, I was confused about why the strong generating set we were finding was small (we only proved that a small one existed, but not that the one we were finding was small), but after a student asked this to you in class, your answer cleared up my confusion (the fact for every i,j pair, we only pick one element that fixes everything above j and swaps i to j). ******************************************************************* Elena I thought that the definition of SGSs is very non-intuitive. Namely, why would a group G contain a \tau that fixes that last set of elts (besides id)? Or, if G does not contain such a \tau what would a SGS be (by the definition)? Also, I was wondering about the relative sizes of a minimal generating set and a minimal SGS? In the construction of a minimal SGS from S, if S is not minimal do we still get a minimal SGS? I think that we might have gone a bit too fast over the proofs, but I don't think that we should go back and discuss them since the notes that you posted were clarifying enough. Instead, I might like to get a bit more intuition into why these SGSs are the 'core' of any permutation group. I was also wondering what other applications besides membership testing do the SGSs have? ******************************************************************* Michael M. my main comment about wed's lecture is that, whenever something is being defined, it would be nice to always get the precise definition and not just the idea through pictures or examples. the definition of \bar T, e.g., only became clear to me when you wrote it out in full. it would also be nice (and this is a more general comment) if you'd spend a little time, after presenting each major algorithm or method, summarizing how the technique was useful (if it was) in complexity, crypto, etc... ******************************************************************* Ben R. I had no trouble following Wednesday's lecture, perhaps because I have seen Sims? algorithm before. Last year I attempted to read the NC algorithm for group membership due to Babai, Luks and Seress, which uses some nontrivial permutation group theory (including the classification of finite simple groups). Strong generating sets are also important there, as they are in every other group-theoretic algorithm I've looked at. ******************************************************************* Brendan I thought Wednesday's lecture was extremely clear, especially compared to the previous lecture (where, I confess, I couldn't follow the sketch of the proof of Gauss' Lemma, etc. at all). I'm not sure what to attribute this to, but possibilities include: 1) my algebra was rusty coming in and I spend the weekend reviewing 2) the arguments were provided in significantly more detail 3) the content was more algorithmic 4) the use of pictures? I liked the content, but I don't feel any particular need for it to be reviewed in lecture again (i.e., since I feel like I "got it") and I'd be happy to move on to other topics on Monday and beyond. ******************************************************************* Kyo-Min The strong generating set was a nice middle structure that can be used to test the required test(in this case, group membership test) in polynomial time. The example of cubic game was helpful to understand the basic concept of strong generating set. I became curious about the general case, where the base group is not S_n but any group. If the given base group can be understood as an action group on a set A where |A|=poly(n) where n is a complexity parameter, then strong generating set argument is applied to obtain a poly time algorithm for the group membership test. But in other case, I think it cannot be applied. So it will be nice if we can know some results or reference about other case. I think the class was rather fast to understand the details of the proof in the class. ******************************************************************* Sophie The goal of this lecture was to develop an approach for determining whether a given member of a group in the permutation group is a member of a subgroup generated by a set of elements. The method used is that similar to the approach to solving a Rubik's cube, that is, we successively fix larger and larger parts of the group. In the context of a group, we introduce the notion of a strong generating set (SGS) of a group. An SGS for a group contains, for every element t of G that leaves all elements larger than k fixed, with t(j)=k, an element satisfying those properties. We proved that given any subgroup G of S_n, it has a SGS of size O(n^2). We used the idea of the closure of a set, or the set of greedy right-to-left products of elements of T to do this. We note that the closure of an SGS is the whole generating set S, so we start out with T as the empty set, and then grow T until its closure is the whole set. We pick the elements by which we "grow" T by taking elements of the set T union S whose product is not in T closure, and adding some relative of the product to T. Finally, we prove that when we have that for all pairs of elements of T, their product is in the closure, T is an SGS for S. As far as comments about the lecture go - I appreciated the diagrams illustrating how the different permutations leave certain elements fixed - it made it much easier to understand the process by which we grew the SGS. It would have been good to at the end tie the SGS back to the original problem of a membership algorithm, since you didn't actually give a membership algorithm, and it would be nice to see the motivation for the notion of an SGS put to use. It seems that we can use the much smaller SGS T of S to determine if a given permutation is in the subgroup of S_n generated by S, but it is not immediately clear how to do this. ******************************************************************* Eitan I really enjoyed Thursday's lecture about membership in permutation groups. The notion of a strong generating set was presented well using the rubik's cube as an analogy. The idea of the strong generating set elements corresponding to moves that preserve part of our permutation and switch one thing in a desired way was a natural way to approach the problem and made the proofs follow intuitively. One part that confused me a little was the distinction between the membership problem and the proof that the entire group is generated by the SGS. While this was clarified soon after because they are intimately related, it was the only part of the lecture that I found confusing. This was probably not anything wrong with the lecture and seems like it is just something that I needed to work out in my head for a minute. I don't think we need to go over any parts of this lecture on Monday unless a significant number of people are confused about it. I look forward to the factorization algorithms. ******************************************************************* Karola I liked the lecture, since the notion of the symmetric group is an exciting topic, extensively studied in mathematics, so I was glad to see a CS approach to it. I find that the goal of the lecture was clear at all times. Also, the idea that we are trying to obtain a suitable generating set for our subgroup of the permutation group was well motivated. I found the concept of a SGS certainly not obvious, but fully comprehensible. However, I feel that I do not have sufficient intuition for the definition of the closure of T (T-bar). Taking the definition of T-bar for granted, the lecture flowed naturally, though I would like to know a strict proof, for example for the last lemma stated. ******************************************************************* Krzyztof The presented algorithm was an interesting example of some more general technique that could be described by "find a good base and express whole space by it".That technique is used in Gauss elimination method, and in at least a few other. The algorithm was understandable, and it is not very complicated. Although the end of the lecture was presented in a rush, and we only skimmed through the proofs, I don't think it is worth coming back to it. ******************************************************************* David S. I'm primarily interested in the part of the course that "will focus on the interplay between complexity theory and algebra as highlighted by algebraic versions of the P vs. NP question", though I'm also looking forward to seeing some of the algorithms for primality testing. I'm not sure where you intend to go with Wednesday's lecture -- will this give us insight into how to describe complexity classes using algebra? Does the material have any real-world applicability? ******************************************************************* Jingbin In this lecture, we mainly talked about the way to specify a subgroup G of Sn by its Strong Generating Set. We showed the two reason why SGS is much more useful than the ordinary generation set in computation, that is SGS assures that not only the num- ber of its elements but also the length of the sequence to generate a element in G are both polynomial of n. And ¯nally, we constructed an algorithm to construct a SGS for certain G whose running time is also polynomial time. The lecture shows the power of SGS when specifying G. However, in math, we prefer to generating set which has the minimum number of elements, so that we could have a clear look of the structure of G. This contradicts to the real condition in computation. ******************************************************************* Jinwoo The contents of the lecture is the membership algorithm of S_n(the permutation group) using a strong generating set. At first, we can test the membership test in polynomial time of n. Secondly, we can find a strong generating set in polynomial time of n. The main idea is a strong generationg set, and it is a nice idea. But, although the definition of the strong generating set is somewhat confusing at my first time, I think it is a natural idea which someone can find intuitively. I think there can be a better algorithm. When we think the general group rather than S_n, it is hopeful because every finite group is a subgroup of S_n. But, I don't know how to find S_n from the general group. Also, I think S_n is possible to be extremely large as compared with the size of the general group. So it will be nice if we can know the results of the general case. It is a natural motive. ******************************************************************* Swastik I found the problem very natural and interesting. Given that we wish to solve the membership problem, the presentation of the group as a subgroup of a permutation group looks like the neatest way to formulate the problem. However, I'm not terribly fond of this algorithm, partly because it is isolated in that no other algorithm will use this (is there some standard problem that needs membership queries solved on groups presented as subgroups of permutation groups with generators?), nor does it build upon any useful computational/algebraic tools, and partly because there isn't really a clear paradigm to be taken away (is there? maybe if this could be explained it could illuminate the algorithm a bit more). So I'd like to go on to the next topic, and see some actual theory building happening. ******************************************************************* Victor Suppose G= is a subgroup of the permutation group S_n. The lecture showed an memership algorithm that efficiently determines if a given permutation pi is in G or not. Checking if pi can be written as a product of G's generator is not a good approach as some must have exponentially long sequences. To describe the algorithm, the notion of a strong generating set was introduced. Easy arguments show that every group G must have a SGS set T, such that T is small, and the "closure" of T is G itself. So if the algorithm has access to a SGS set T of a group G, then it can be shown that the membership question can be decided easily. This can be done recursively. Then we characterized the notion of a SGS T. Once this is shown, then we can design an algorithm that constructs T. Since T is minimal, the algorithm at each step adds an element that makes T closer to satisfying the conditions of being a SGS. Once this was done, the algorithm becomes complete. The lecture is self-contained and gives me enough intuition. Though I missed some steps in the reasoning in class, the prenotes was sufficiently clear and fills in the details that I missed. It would be nice if prenotes is available more often, especially when the material is not easy to find elsewhere. ******************************************************************* Paul At first glance thi problem discussed in lecture -- of finding a sequence of permutations that takes an element to an arbitrary other element -- seems to have the flavor of many well-known NP-complete problems. I mentioned the result to a friend and he immediately asked if something like that would solve his problem: find a sequence of deformations of a protein that would shape it so as to bind to a certain ligand. And the answer is that his problem, and anything like it, is probably NP-complete; the hard part is pinpointing what makes the permutation group special. Most algorithms in computer science are enormously flexible. Sorting, for example, is probably used in any industrial application in existence, but there is never any need for new sorting algorithms. Linear programming is now being widely used to approximate NP complete problems. In general, many algorithms can be used in contexts well outside those they were designed for. The algorithm we saw in class, however, doesn't seem to have this kind of flexibility, adaptability. Another problem that appears similar to the permutation group problem is the shortest vector in a lattice problem. A lattice is of course also a group structure, and the problem is that we may have been given the "wrong" generators -- i.e. not the shortest ones. This seems very similar to the issues we faced in the permutation group, finding the strongly generating set etc. However, apparently, our approach does not carry over to the other domain. I don't have much of an answer to the question of why our algorithm appears so inflexible, I just mean to pose the question. On a side note -- you asked if there were generators that required exponential interleaving. I think the generators we found during office hours on Thursday (?) work -- the pair a,b such that a,b have order 2 while ab has exponential order. ******************************************************************* Josh Overall I thought the lecture was quite good. The pictures in particular made it quite clear what was going on, even when no one can remember whether the order in which we mean to multiply permutations. Initially, your defn of closure was a bit unclear (at least to me), but after your formalized it a bit more it was fine. The notation k(\pi) initially bothered me, since you were using lowercase k all over the place, but I think it ended up being very natural, since you were often writing things such as k(\pi)=k and \pi(j)=k. In the lecture notes, the notation Sym(k) is probably not a good idea. Many authors who talk about permutation groups use Sym(k) to mean S_k, as they more generally use Sym(S) for some set S to mean the group of bijections from S to S. You even confused the two at one point: in Lemma 2 you say "Fix a group G \subset Sym(n)" rather than "fix G \subset S_n". Depending on the backgrounds of the students in the class, it might be interesting to point out the similarities between SGS for perm gps and Groebner bases for ideals. (Both are defined by a sort of "independence" property; both are defined by something that looks unrelated to generating the initial structure, and yet both do generate the initial structure; both allow for membership testing in a similar manner; etc) And yet, the complexity for finding a Groebner basis is unknown (last I checked). Getting into Groebner bases from scratch might take too long though :(. If H,K are subgps of G, and S,T are SGSs for H,K resp., is there an easy way to find an SGS for the intersection of H and K? (I ask b/c Groebner bases provide such an algorithm for intersection of ideals.)