Also, this approach is not particularly fast, or efficient.For instance if I
try to find conjucagy classes of s7 (symmetric group order 7) the computation
is pretty vast. 5040 x 5040 calculations, then nubbing duplicates.
But for now, I don't know another way to do this.
> From: [email protected]
> To: [email protected]
> Date: Thu, 10 Jul 2014 15:38:28 +0100
> Subject: Re: [Jprogramming] Comaring Arrays
>
> This is my intention:
> Generate permutation groups:
> NB. symmetric group order y
>
>
> Sym =: (i. @: !) A. i.
>
>
>
> NB. alternating group from symmetric
>
>
> Alt =: (I. @: (0.5&*) @: >: @: (C.!.2)) { ]
>
>
>
> NB. cyclic group order y
>
>
> Cyc =: i. |."(0 1) i.
>
>
>
>
>
> conjugate =: ([: /:"1 [) C."(1 1) (C."(1 1)~)
>
>
>
> conj_class =: ~. @: conjugate
>
>
>
> conjugate_list =. conj_class"(_ 1)/~
>
>
> NB. create conjugacy classes, nub out duplicates from conjugate_list
>
>
>
>
> conjugacy_classes =: ~.@: (/:~"2) @: conjugate_list
>
>
> e.g.
>
>
>
>
> s4 =. Sym 4
> a4 =. Alt s4
> a40 1 2 30 2 3 10 3 1 21 0 3 21 2 0 31 3 2 02 0 1 32 1 3 02 3 0 13 0 2 13
> 1 0 2
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 3 2 1 0
>
> NB. a4 is the group of all even permutations on 4 elements.
> NB. view conjugacy classes. (should be 4)
>
>
> conjugacy_classes a4
>
>
>
> 0 0 0 0
>
> 0 0 0 0
>
> 0 0 0 0
>
> 0 1 2 3
>
>
>
>
> 0 2 3 1
>
> 1 3 2 0
>
> 2 0 1 3
>
> 3 1 0 2
>
>
>
>
> 0 3 1 2
>
> 1 2 0 3
>
> 2 1 3 0
>
> 3 0 2 1
>
>
>
>
> 0 0 0 0
>
> 1 0 3 2
>
> 2 3 0 1
>
> 3 2 1 0
>
> > From: [email protected]
> > To: [email protected]
> > Date: Thu, 10 Jul 2014 13:20:37 +0000
> > Subject: Re: [Jprogramming] Comaring Arrays
> >
> > In that case Dan's solution is probably optimal - no sorting required.
> > ________________________________________
> > From: [email protected]
> > [[email protected]] on behalf of Jon Hough
> > [[email protected]]
> > Sent: Thursday, July 10, 2014 14:55
> > To: [email protected]
> > Subject: Re: [Jprogramming] Comaring Arrays
> >
> > Duplicate rows, other than 0 0 0 0 sjould never occur. If they did, there
> > would be a big problem.
> > 0 0 0 0 occur when J needs filler to pad out arrays.
> >
> > --- Original Message ---
> >
> > From: "Ben Gorte - CITG" <[email protected]>
> > Sent: July 10, 2014 9:51 PM
> > To: [email protected]
> > Subject: Re: [Jprogramming] Comaring Arrays
> >
> > Hi Jon,
> >
> > Dan and I were wondering:
> >
> > 1. whether your matrices would be allowed to have duplicate rows
> > 2. and if they are, whether such duplicate rows should occur in both
> > matrices equally often, for them to be equivalent
> >
> > Ben
> > ________________________________________
> > From: [email protected]
> > [[email protected]] on behalf of Jon Hough
> > [[email protected]]
> > Sent: Thursday, July 10, 2014 14:16
> > To: [email protected]
> > Subject: Re: [Jprogramming] Comaring Arrays
> >
> > I away from my computer at the moment. When I get back I will show you my
> > code.
> > The gist is I am making a simple permutation group theory script(i am not
> > talking about simple groups, i mean a simple script).
> > Anyway, what I have so far is trying to conjugate a group with itself, so i
> > can nub out the resulting duplicates and get all the conjugacy classes of
> > the group.
> >
> > --- Original Message ---
> >
> > From: "Dan Bron" <[email protected]>
> > Sent: July 10, 2014 8:38 PM
> > To: [email protected]
> > Subject: Re: [Jprogramming] Comaring Arrays
> >
> > Good point. We could fix this up by asking an additional question: are the
> > items of A unique? There's a million ways to ask that, but maybe we're in a
> > cutesy mood today:
> >
> > e. *./@:*. ~:@:]
> >
> > Though with the ~:, I'm not sure this would have any performance advantage
> > over sorting. Maybe we should go back to i. :
> >
> > #@:] (e. < *./@:~:@:]) i.
> >
> > That is, look up A in B and tell me whether all elements are unique and
> > that there are no missing elements ((#A) e. A i. B).
> >
> > -Dan
> >
> > Please excuse typos; sent from a phone.
> >
> > > On Jul 10, 2014, at 6:48 AM, Ben Gorte - CITG <[email protected]>
> > > wrote:
> > >
> > > Now we should ask Jon what he wants in this case:
> > >
> > > ]A=.3 2$1 1 1 2 1 1
> > > 1 1
> > > 1 2
> > > 1 1
> > > ]B=.3 2$1 2 1 2 1 1
> > > 1 2
> > > 1 2
> > > 1 1
> > >
> > > Should the result be:
> > > A *./@:e. B
> > > 1
> > > or does he prefer:
> > > (/:~A)-:/:~B
> > > 0
> > > ?
> > >
> > > (I agree the first looks quicker)
> > >
> > > Ben
> > >
> > > _
> > > _______________________________________
> > > From: [email protected]
> > > [[email protected]] on behalf of Dan Bron
> > > [[email protected]]
> > > Sent: Thursday, July 10, 2014 12:33
> > > To: [email protected]
> > > Subject: Re: [Jprogramming] Comaring Arrays
> > >
> > > Sorting might be overkill (and/or a little expensive) for this situation.
> > >
> > > If A and B are the same shape (and they'd better be, or A is definitely
> > > not a permutation of B), then you really only need to know if all the
> > > items (rows) of A are also items (rows) of B.
> > >
> > > So let's just ask that:
> > >
> > > A e. B
> > > 1 1 1 1
> > > A *./@:e. B
> > > 1
> > >
> > > Now, if we needed slightly more information (and we're willing to pay for
> > > it), in particular, exactly how A is permuted from B, we could use i.
> > > instead of e. :
> > >
> > >
> > > A i. B
> > > 2 0 1 3
> > >
> > > And from here, we can figure out exactly how far Jon would have had to go
> > > in his quest to check every possible permutation:
> > >
> > > A A.@:i. B
> > > 12
> > > A C.@:i. B
> > > +-----+-+
> > > |2 1 0|3|
> > > +-----+-+
> > >
> > > Looks like about halfway ( (!#A)%2 ) . Not surprising.
> > >
> > > -Dan
> > >
> > > Please excuse typos; sent from a phone.
> > >
> > >> On Jul 10, 2014, at 4:17 AM, Ben Gorte - CITG <[email protected]>
> > >> wrote:
> > >>
> > >> B=:4 4$2 3 0 1 3 2 1 0 1 0 3 2 0 0 0 0
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm