You certainly refer to the outline I have given in ToDo33(rhx22). And your
documentation for isomorphismTypes of Compose is the following?
-------------------
It is very unlikely that there is a good algorithm to unrank a composition of
two species in general. See the email of Nicolas Thiery,
\url{http://www.mail-archive.com/aldor-combinat-devel%40lists.sourceforge.net/msg00133.html}.
\begin{itemize}
\item generate a multiset partition $\pi$ of the input set $U$, written as
a multiset.
eg, for the example given in the doc, U={1^9}, pi={1, 2, 3^2}
\item for each block $p$ with multiplicity $n_p$ of $\pi$, generate a multiset
$M_p$ of cardinality $n_p$ of isomorphismtypes of $G[p]$.
eg, M_1 = o, M_2 = o M_3 = { o , o }
/ \ / \ / \
o o
/ \ / \
or N_1 = o, N_2 = o N_3 = { o , o }
/ \ / \ / \
o o
/ \ / \
Note that $G$-isomorphismtypes corresponding to different blocks are
necessarily different.
\begin{ToDo}
\begin{mrx}
18-Mar-2007: is this really true? Is the wording correct? How about the
cardinality species?
\end{mrx}
\end{ToDo}
For this step it would be useful to be able to generate isomorphismtypes
given a generator only.
\item generate an isomorphismtype of $F[M_1,M_2,\dots]$
eg. N1, N3.1, N3.2, N2
N1, N3.1, M2, N3.2
-- note that isotypes of Cycles will get as argument { N1, N2, (N3.1)^2 }
or M1, M3.1, N2, M3.2
M1, M3.2, N2, M3.1
-- note that isotypes of Cycles will get as argument { M1, M2, M3.1, M3.2 }
(I probably should delete the last line of the example given in the doc.)
\end{itemize}
-------------------
Yes. But if you look closer, you'll see that I also added transport condition,
an example, etc.
To be honest, I do not really understand why this is an algorithm to generate
the isomorphism types of Compose. If you want to convince me, you have to be
more precise.
Haeh? In what sense do you want me to be more precise? Does the example above
help? By the way, I do not understand
25-Mar-2007: My idea would rather be to replace the line
\begin{adsnippet}
isomorphismTypes(pi::SetSpecies(SetSpecies L))$F(SetSpecies L)
\end{adsnippet}%$
below by
\begin{adsnippet}
isomorphismTypes(pi)$F(L)
\end{adsnippet}%$
By that we basically consider the representative \adcode$pi$ as a
true partition structure and then let $F$ decide in how many
different ways \adcode$pi$ can contribute non-isomorphic
structures. Since the results are again representatives, we simply
ask for all the isomorphism types of $G$ in a similar was as we do
for structures.
at all... It is tempting to believe that what I understand is easily understood
by everybody, but it is not true. Similarly, docs that I find iluminating may
be completely mysterious to somebody else...
Anyway, we seem to be in total disagreement with respect to the
representation of isomorphism types.
No, we are not in total disagreement. Disagreement is only partial.
------------------
Introduce a new type that represents the isomorphism types. Make all labels
indistinguishable.
----------------
Consider isomorphism types of F as elements of F[n]/~ where ~ is the
equivalence w.r.t the isomorphisms S[n]. Those elements are actually sets and
one (canonical) representative is chosen.
How often do I have to repeat that I do agree with your approach, as a "working
hypothesis". I did say that I do not like it, but I also said that I do not
like my stuff either.
Post by Martin RubeyPost by Ralf HemmeckeFrom a mathematical perspective, Partition L and MultiSet L are close
relatives, as you have noticed. However, I do not want to see
isomorphismTypes: Partition L -> Generator %
in trunk.
Well, that is very constructive. :-(
Did you read the two words: "in trunk"?
I don't claim that I have the best signature. Partition L just was what came
to my mind and should work quite well. Multiset would probably be a better
name and perhaps even fit better, but that would be Multisets in the sense of
BLL. I don't want to remove the labels. So translating 'Partition L' to a
multisort environment, I would (approximately) want to have
isomorphismTypes: Multiset(SetSpecies L) -> Generator %
for some (unisort) species F. So just replace 'Partition L' in the above
signature. But all that is not well enough thought of.
exactly. That's why I said: open a new branch.
As it seems that my ideas of Multisort species maybe generic enough, but they
also seem to introduce overhead for situations like Compose of unisort
species.
So you have an algorithm for Compose without using multisets, multisort species
or something equivalent? I doubt that.
Sorry, that I have not opened up a multisort branch, but it is currently a
total mess. Maybe I should send you the file privately.
Why are you so afraid of having a branch which does not work? It does not
matter at all that it is a mess!
Post by Martin RubeyIf you like, we can duplicate (with svn cp) iso-experiment, and do
that there -- I think that would be very easy, in fact.
Again, your documentation is not sufficiently understandable. So I wouldn't
even know if your implementation is correct.
So please tell me more precisely what parts you do not understand. Then I can
update the docs. I hope you do not believe that I can understand all of your
docs either. If I'd have to, I could quit combinatorics immediately, because I
would end up only reading documentation.
Post by Martin RubeyMuch more sensible I think would be to express the same functionality with
MultiSort species. Do not forget: we won't be able to generate Isotypes of
FunctorialComposition, thus, to take them as an argument for the representing
isotypes by representatives :-) is unfortunate.
What? "we won't be able to generate Isotypes of FunctorialComposition"
yes.
If you take that as an argument to deviate from the clear mathematical
analogue we have in AC now, then I simply don't agree. Just suppose next week
comes some brilliant guy and tells you how to generate such iso types.
I tried to express that it is unfortunate to take FunctorialCompose as the
*only* argument for representatives. But if we do multisort species, and
thereby get a second argument for representatives, everything's fine again.
Should I split species.as.nw?
No, you should put your messy stuff on multisort species into a branch called
multisort-experiment.
I'm going to take a walk now, and after that I'm going to look at your
multisort stuff.
Martin
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV