Ralf Hemmecke
2007-02-27 15:41:58 UTC
Hello to all who care...
I would like to take up the diskussion started at
http://thread.gmane.org/gmane.comp.mathematics.aldor-combinat.devel/537
In particular I'd like to discuss the design of the generation of
structures and isomorphism types.
Actually, Martin made me aware of the fact that there are not only
labelled and unlabelled structures but also things inbetween. So
structures: MultiSet L -> Generator %
would be a good candidate for a new design.
If all elements have multiplicity 1, then it would be like
structures: SetSpecies L -> Generator %
And if there is only one element with multiplicity n, then it would be like
isomorphismTypes: SetSpecies -> Generator %.
In fact, I believe that for a cleaner interface both of the functions
involving "SetSpecies" should not be exported but rather only used
internally.
Currently, I see a MultiSet(L) as something like a polynomial domain
(that has no multiplication, and all elements are of "degree" 1) where
the "variables" are from L and the (non-negative integer) coefficients
denote the multiplicity of the "variable".
Now, since there is a domain "SparseAdditiveArray" in AC that basically
is such a "polynomial domain of degree 1", it costs not much to
implement MultiSet.
What bothers me a bit is whether L should be ordered or not.
There are pros and cons.
con 1) A multiset is by nature unordered.
con 2) We deal with species that work over sets.
con 3) I don't yet have an idea whether ordering the "variables" would
cost a lot in the generation of species.
pro 1) SparseAdditiveArray works only with ordered "variables".
pro 2) I believe that introducing some order on the input is necessary
for (un)ranking anyway.
pro 3) Since species are endofunctors of the finite sets category,
ordering (of a finite set) is not a big deal.
I think the code that Martin has in branches/iso-experiments could serve
as a start for the idea of having only
structures: MultiSet L -> Generator %
Does somebody see any problem in that design?
Ralf
-------------------------------------------------------------------------
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
I would like to take up the diskussion started at
http://thread.gmane.org/gmane.comp.mathematics.aldor-combinat.devel/537
In particular I'd like to discuss the design of the generation of
structures and isomorphism types.
Actually, Martin made me aware of the fact that there are not only
labelled and unlabelled structures but also things inbetween. So
structures: MultiSet L -> Generator %
would be a good candidate for a new design.
If all elements have multiplicity 1, then it would be like
structures: SetSpecies L -> Generator %
And if there is only one element with multiplicity n, then it would be like
isomorphismTypes: SetSpecies -> Generator %.
In fact, I believe that for a cleaner interface both of the functions
involving "SetSpecies" should not be exported but rather only used
internally.
Currently, I see a MultiSet(L) as something like a polynomial domain
(that has no multiplication, and all elements are of "degree" 1) where
the "variables" are from L and the (non-negative integer) coefficients
denote the multiplicity of the "variable".
Now, since there is a domain "SparseAdditiveArray" in AC that basically
is such a "polynomial domain of degree 1", it costs not much to
implement MultiSet.
What bothers me a bit is whether L should be ordered or not.
There are pros and cons.
con 1) A multiset is by nature unordered.
con 2) We deal with species that work over sets.
con 3) I don't yet have an idea whether ordering the "variables" would
cost a lot in the generation of species.
pro 1) SparseAdditiveArray works only with ordered "variables".
pro 2) I believe that introducing some order on the input is necessary
for (un)ranking anyway.
pro 3) Since species are endofunctors of the finite sets category,
ordering (of a finite set) is not a big deal.
I think the code that Martin has in branches/iso-experiments could serve
as a start for the idea of having only
structures: MultiSet L -> Generator %
Does somebody see any problem in that design?
Ralf
-------------------------------------------------------------------------
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