Dear all,

I've posted on trac the current version of my posets code.
There is still much to be done, some algorithms need
to be improved and others need to be implemented. (There
are no NotImplementedErrors.)

  http://trac.sagemath.org/sage_trac/ticket/2519

But before I continue working, I'd like some feedback. I've
made some decisions, and I don't know if they are the
best decisions. So please offer suggestions.

I've defined a HasseDiagram class that inherits from
DiGraph. A Hasse diagram are transitively-reduced, directed,
acyclic graph without loops or multiple edges. NOTE: We
assume that range(n) is a linear extension of the Hasse
diagram. This decision was taken in the hopes that it
increases the efficiency of algorithms.

There is a FinitePoset class that stores the list of
elements of the poset (_elements), the HasseDiagram
(_hasse_diagram, or hasse_diagram()), and maps
_element_to_vertex and _vertex_to_element. So FinitePoset is
just a vertex labelling of the HasseDiagram.

There is a constructor called Poset that takes various forms
of data describing a finite poset and returns a FinitePoset
object.

There are also Lattice, MeetSemilattice, JoinSemilattice...,
and PosetElement, LatticeElement, .... So one create poset
elements and compare them with <, >, etc. And lattice
elements can by multiplied and added (for meet and join).

There are a few toy posets included (eventually there
should be a poset database): BooleanLattice, Chain,
Antichain, Pentagon, Diamond, PosetOfIntegerCompositions,
RandomPoset, SymmetricGroupBruhatOrder,
SymmetricGroupWeakOrder.

So what do you think?

Franco

--

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to