Helloooooooooooooooooooooo !!! > Well, unfortunately I don't know under which Seine bridge mathematicians > are most > welcome :-)
Ahahahah. I felt so shocked when I first learnt that Paris did not have the only one O_O > Mind you, when this part of GAP was developed, you were in primary > school;-), And I had more important things to do, like looking for sweets. I will not be held responsible. > computers were slow and weak, everything needed to be coded > in C or Fortran (or one would need to use Lisp, which wasn't very > popular in that part of computational algebra --- unfortunately); > naturally, some features remain hugely underdeveloped due to this. IMHO > a part of the GAP framework of actions which deals with tuples, subsets, > etc. > is at present more of a burden than of an advantage. (Whereas actions > say on cosets of a subgroup which GAP has are hugely important and hard to > beat) Hmmm... But then, should we patch Sage to add features or patch GAP and use it in Sage ? :-P > Coding more generic orbit algorithms for permutation groups > in a language like Python is, moreover, quite easy. > (By more generic---than tuples, tuples of tuples, etc--- > I mean the action on trees with leafs labeled by > elements of the group domain, and with some (fixed) non-terminal node > might > carry out the structure of a set, i.e. have unordered rathen than > ordered neighbourhoods. E.g. you can get an action on gadgets like > (1,{2,3},((4,5),2,{1,6,7})); here the domain elements are numbers, but > this need not be a restriction.) > Just get yourself a queue, put there the starting element, and add the > new images to the other end of the queue, while computing the images of > the 1st in order element in the queue. > One is done when everything in the queue is processed Yep yep. In my world that's called a depth-first-search. But we are shy guys, especially when surrounded by real mathematicians. > All the orbit algorithm needs to know, apart from the group generators, > is how to compute the image is the tree "shape", i.e. no labels on the > nodes. > E.g. for the example above the shape is encoded by > (,{,},((,),,{,,})). > > And this can be made modular etc, as there are more actions around than > these which fit this pattern; so how to compute the action can be > specified by a function passed as a parameter. (Not sure if one also > needs a function to compare orbit elements for equality.) Oh. You'd give "(,{,},((,),,{,,}))" as a string parameter, parse it and use it to define the tree ? Ahahaha. Funny and efficient ! A bit .... "home-made", but I like that :-P Actually, what would have prevented me from dirtying beautiful groups with my out-of-place graph approach (i.e. the DFS above) is that I would have thought the group guys were too smart to use such things. Is that how GAP computes orbits ? Just a BFS ? A "set" object, hash functions for the group's elements, and that's all we need for a "state of the art" orbit method ? > I wrote above how I'd see this done. > I think it's better to encode the "usual" types of action by such a > pattern like above (e.g. (,{,},((,),,{,,}))). > Such a pattern can either be guessed/computed by Volker's rules, or > specified as a parameter. (And a user function to compute the action > can also be a parameter). > They could be translated into GAP actions and GAP calls, for which such > actions exist. Ok good point. But now I have a more pratical question : can we get #14291 after just replacing this "action" parameter with your funny string, and return a "notimplementederror" when the value of action cannot be forwarded to GAP ? As it is, it is already a nice feature for humble graph theoreticians to compute the orbit of a pair of elements :-) Nathann -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.