Hi,
On Mon, Dec 22, 2014 at 12:00:09PM +0200, Jori Mantysalo wrote:
> Should we made *something* for questions like this? As an another
> example, there is no known easy way to compute Frattini sublattice,
> i.e. intersection of all proper sublattices of a given lattice.
>
> Should we just make a function with note "This is direct computation
> with no optimization at all."? Being able to compute some examples
> it might be easier to try other algorithms, find some corner cases
> etc.
I think it is a good idea to have such straightforward algorithms for
which no better algorithm is known (after some bibliography checking):
- it provides a comparison point for further computational research.
- it is easier for someone not involved in Sage development to say "i
know a better way than your dumb code" than "this functionality does
not exist, it is perhaps useful to someone else, i know some way, but
i am not sure it is the most efficient, let me still propose it so that
perhaps someone will find a better way".
- it is also technically useful since it puts the structure within Sage's
source code (the right method within the right class with doctest
structure and so on), making easier for some researcher to implement
her own algoritmh, without to think about Sage stuff, it suffices to
add one possibility for the 'algorithm=...' keyword and drop the new code
under the existing one.
Beyond MILP generic way of solving things, a possibility could be to have
a CSP solver (which is more expressive than MILP) such as
http://numberjack.ucc.ie/ (whose interface is written in Python, throught
somme better tools may exist) within Sage, so that it is easy to implement
methods for problems that do not have specific algorithms in the
litterature.
Ciao,
Thierry