1

Say I have a list that may be out of order.

For instance, the list [1,3,2,4] has 2 and 3 out of place.

This would correspond to a conjugacy class of (2), meaning only one set of 2 elements is out of order (there are six ways to have a conjugacy class of (2)).

My "operation" is selecting three elements randomly, and scrambling them randomly (3! possibilities after selection).

Is there a systematic way to determine how many ways there are to go from a given conjugacy class to all other valid conjugacy classes based on my operation, besides enumerating them all brute-force?

e.g. given the operation, there are X ways to go from conjugacy class Y to conjugacy class Z, etc

A previous question, Linear algebra to find EV of sort algorithm, provides some background on this one.

  • I am sorry to tell you that, you need to read upon the groups, and understand the terms you're using. For answerers, you'll find this and this useful. The OP does not understand what groups are, in an axiomatic fashion. I don't see any reasonable way, one can write an answer. –  Mar 11 '12 at 05:28
  • Can you explain what you write in the third patch of your question? What does conjugacy class of $(2)$ mean? –  Mar 11 '12 at 05:28
  • As I reread the question, conjugacy class is used in an entirely different sense, and the last question can be answered in a similar fashion joriki answered one of your previous questions. –  Mar 11 '12 at 05:54
  • I explained what I meant in the OP by (2). It's also the same sort of thing explained in http://en.wikipedia.org/wiki/Conjugacy_class#Examples (2) just means a scenario where a swapping of 2 is sufficient to sort the list. Something like (3) would mean 3 are out of place. (2)(2) means two sets could be switched (e.g. [2,1,4,3]). – John Smith Mar 11 '12 at 06:13
  • Oh, well, I am not sure if that is standard, but for the love of god, please take a book on group theory and go through the details of what group actions are, what is conjugacy? And, then, you'll see a connection via the action of $S_3$ on the set of its own conjugacy classes. –  Mar 11 '12 at 06:21
  • It seems to me the cycle type notation WP uses is unconventional at best and completely made-up at worst. (Maybe someone should edit the article?) Otherwise this question makes sense to me; indeed it seems to be a word metric problem where the generating set is created from those $\sigma$ that only permute 3 items at a time. – anon Mar 11 '12 at 06:33
  • I think the question is easy enough to understand even if my use of words may be iffy/unconventional (I am going off my understanding of joriki's usage of "conjugacy classes" where you had a notation representing possible swap options that would result in a sorted list). I am pretty sure I don't need to read a bunch of books to understand this problem. – John Smith Mar 11 '12 at 06:49
  • I want to be sure that I understand your terminology. Does the permutation $1457362$ belong to the class that you’d denote by $(2)(3)$, since it’s obtained from $1234567$ by interchanging $3$ and $5$ and cyclically permuting $2,4$ and $7$? – Brian M. Scott Mar 11 '12 at 07:22
  • @Brian: I've added a link to the original question to provide some background; I think you can gather the intended meaning from that and the comments under my answer there. – joriki Mar 11 '12 at 08:15
  • @John: In this other question, someone had already made you aware of the utility of providing links to related questions, and had provided one for you. It seems a bit uncooperative to then start out this question without even mentioning the related questions, especially when you're using such unorthodox terminology and notation that it's hard to understand what you mean without context. – joriki Mar 11 '12 at 08:16
  • Thanks, @Joriki. I’d apparently missed both of the other questions. – Brian M. Scott Mar 11 '12 at 08:37
  • @John, I agree with the content, if not with the tone, of Kannappan's comments; it would certainly be useful both for your own understanding of this problem and for your ability to formulate questions about it that others will readily understand to familiarize yourself with some basic group theory, especially the theory of the symmetric group. Given that you seem to be coming from a computer science background, would it help if I posted some Java code that performs the computation you need? – joriki Mar 11 '12 at 08:43
  • In your first question, you'd specified that two different elements are selected randomly. I suspect that in this case, you meant also that three different elements are selected randomly? If so, you should clarify that in the question. – joriki Mar 11 '12 at 09:31
  • joriki: Yes, in terms of the transposition. The (2) would represent a possible current state, and the 3-select 3-shuffle would be the transposition that leads you to another possible "conjugacy state" (trying to keep in line with how you explained it previously), if that makes sense. And yes that would be quite helpful. – John Smith Mar 11 '12 at 11:50
  • I've posted an answer with some code. Note that I don't get notified of your response if you don't precede the username with an @. By the way, your last comment above seems to imply that the $3$-shuffle necessarily leads you to a different "conjugacy state" -- the way I'd understood the shuffling prescription, you select one of the six possible arrangements of the three elements randomly with uniform distribution over all six arrangements, that is, including the one that doesn't change the permutation (and hence its conjugacy class)? The code is written on that assumption. – joriki Mar 11 '12 at 15:20
  • @joriki That's correct -- 1/6 of the time, there will be no change. Only 5/6 possible outcomes lead to a new conjugacy state. – John Smith Mar 11 '12 at 15:41
  • You've been posting comments to my answer and then deleting them without further comment. That doesn't exactly motivate me to interact with your comments. If you have further questions, please post a comment and let it stand until I can reply to it. – joriki Mar 12 '12 at 07:35
  • @joriki Sorry -- your answer is fantastic but I ultimately think it is a bit revealing. You have really helped me understand but the code is too tempting and I feel bad that you have done such heavy lifting – John Smith Mar 12 '12 at 12:21
  • I don't understand -- what do you mean by "revealing" and "tempting"? – joriki Mar 12 '12 at 12:32
  • Again it is a problem I am trying to solve but when a program is written explicitly it takes away from effort on my part – John Smith Mar 12 '12 at 12:49
  • I wrote "would it help if I posted some Java code that performs the computation you need", and you replied "yes that would be quite helpful". – joriki Mar 12 '12 at 12:51
  • @joriki I meant in terms of something simple for learning, not necessarily two separately complete implementations for doing the entire task. I'd feel more comfortable having the link removed, cause it's way too tempting to simply look at how it's done – John Smith Mar 12 '12 at 13:00
  • Sorry, this site is for everyone; I didn't put all that work into the code in order to take it away from the community now in order to help you regulate your impulses :-) I'm sorry we talked past each other about the code being helpful. By the way, this also has to do with making question self-contained -- I didn't have all of what you wrote in the other question about spoilers in mind in dealing with this one -- it would probably have been a good idea to repeat that here. – joriki Mar 12 '12 at 13:17
  • No worries, the help is still very much appreciated and I now have a much better idea for how to go about tackling this problem. Thank you for all your help – John Smith Mar 12 '12 at 13:25

1 Answers1

3

Depending on what you consider brute force, I don't think you can do a whole lot better than brute force.

I've posted two different Java programs that perform this computation here. One of them simply takes a permutation from each conjugacy class, composes it with all possible scramblings of three elements, and counts the conjugacy classes of the resulting permutations. The other program also performs a lot of computation (in fact it's longer) but does so at a slightly higher level. To understand what it does, think of the cycle structure of a permutation as a set of necklaces. Composing the permutation with a transposition opens two of the necklaces and recombines the ends. If the transposition affects two elements in different cycles, these cycles are combined into one, whereas if it affects two elements in the same cycle, that cycle is split in two. Similarly, composing the permutation with a $3$-cycle opens three of the necklaces and recombines their ends. If the $3$-cycle affects three elements in different cycles, these cycles are combined into one; if it affects two elements in one cycle and a third element in another, part of the first cycle is spliced into the second cycle; and if it affects three elements in the same cycle, that cycle is either just rearranged (if the elements occur in the same order in the cycle and the $3$-cycle) or split in three (if they occur in opposite order). If this seems confusing, try some examples and follow how the cycles are affected by composition with transpositions and $3$-cycles.

The code has a good chance of being correct, as both versions produce the same results.

joriki
  • 238,052