#15078: new module: finite state machines, automata, transducers
-------------------------------------+-------------------------------------
Reporter: dkrenn | Owner:
Type: enhancement | Status: closed
Priority: major | Milestone: sage-5.13
Component: combinatorics | Resolution: fixed
Keywords: finite state | Merged in: sage-5.13.beta5
machines, automaton, transducer | Reviewers: Volker Braun,
Authors: Clemens | Frédéric Chapoton, Vincent
Heuberger, Daniel Krenn, Sara | Delecroix, Darij Grinberg,
Kropf | Sébastien Labbé
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by slabbe):
Hi,
I would like to share some comments on the code on finite state machine
that was merged into Sage.
New modules sometimes takes forever (see for example #10519, #12996) to go
into Sage because reviewers are never happy and authors gets tired. So,
for the actual ticket #15078, I wanted things to go differently. As a
reviewer, I listed a bunch of improvements. Authors made the improvements.
I gave positive review. And now it is in Sage. Good!
But finally, after using the code a little bit since its inclusion into
Sage, I realized that I should have asked for more improvements... Anyway,
I prefer an active developpment rather than dying code on trac. So I don't
regret, considering the above examples, if I gave a too quick positive
review.
So, here are my comments since the inclusion into Sage:
- The basics operations (union, concatenation, intersection, Kleene star)
on automaton are not implemented. This might be bad because maybe the
chosen representation is not suitable to answer to those basic operations
in an efficient way. Or maybe the representation is suitable... Nobody
knows.
- I think for efficiency reasons there should not have a class for states
and a class for transitions.
- I think the class FSMProcessIterator could be changed into a method of
the class automaton or finite state machine using yield statement.
- An easy one: for now `__mul__` is chosen for intersection. It should be
`__and__`. Also `__add__` is chosen for union. It should be `__or__`.
Unfortunately, I do not have time to work on these things myself. So, I
let others on the short term create ticket if they agree with one of the
above.
Cheers,
Sébastien
--
Ticket URL: <http://trac.sagemath.org/ticket/15078#comment:32>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.