Hi David,
I just stumbled over this thread (basically when working on my mail
server ;-) )
And although I didn't have the opportunity to look into all of this
(hey, could you consider writing a blog post about it?) one though
struck my mind. No idea whether it's worthwile but perhaps it gives you
some inspiration.
Am 27.09.2017 um 04:59 schrieb David Nalesnik:
One possible flaw is the way that I generate possible realizations.
Basically, I look for all possible rule-obeying two-chord pairings
between chords 1 and 2, then find all possible connections between
chords 2 and 3 which dovetail with the found connections between 1 and
2, and so forth. It's easy to see that this could lead to an overflow
with a long progression or if there aren't plenty of rules to weed out
as many branches of the tree as possible before they have the chance
to propagate,
This very much reminds me of the - seemingly unrelated - experience I
had with going through an "algorithms" course. Essentially what you are
describing seems very similar to shortest-path graph algorithms, where
the choice and implementation of an algorithm may (with large datasets)
make the difference between getting a result in a few seconds or never
in the current century.
I don't know whether there's any path towards a viable solution, but
maybe it's worth looking at the problem through the lens of things like
Dijkstra's algorithm and all of its improvements from the navigation
software category?
Best
Urs
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user