Elf Help: Improving Search Time

How can I make it go faster?

Even for short touches, half-lead spliced composition can be very slow, simply because there are so many billions of possible ways of putting methods together. In fact, spliced composition of any sort is absolutely the worst job you can give to a computer! However, Elf has a few tricks up its sleeve which can turn days into hours and hours into minutes. First though, it's important to understand the factors that affect the speed of a search.

Things that make it go slower

Pruning

The best way of making a search faster is to ignore parts of the search tree which don't contain good compositions. This is a technique known as "pruning". Elf gives you various composing options which you can play with to alter the pruning parameters. For example, by specifying "Maximum Changes of Method" you can force Elf to consider only those compositions in which the method changes every time. These pruning options can have a huge impact on the search time - so if your search is taking too long, try turning some of them on.

One important thing to bear in mind is that Elf employs an underlying heuristic pruning algorithm which is not affected by the composing options described above. This works by monitoring the output compositions for score, music, changes of method and method balance. As better and better compositions are found, the search is pruned to ignore any touches which do not score as well. This means that the search usually gets faster and faster as it finds the first few compositions, so it is well worth leaving a search to run for several minutes before you start to worry about the "estimated time left" figure. (However, if no results at all are being produced you probably do need to worry - it may be worth examining your search parameters to make sure the search is feasible.)

The efficiency of the heuristic pruning system can be affected by things you set - in particular, custom music definitions, and the number of compositions to keep in the "top N" list. Peversely, adding music definitions can actually have a beneficial effect on composition speed. This is because the more range there is in the music scores produced by different compositions, the more opportunity there is for Elf to prune poorly-scoring parts of the search tree.

Unfortunately, as explained above, increasing the number of compositions in the "top N" list has the opposite effect - the pruning algorithm has to make sure it can always find compositions at least as good as those at the bottom of the list, and so if you make the list bigger, the search will have to work much harder. It's always best to stick to the default 10 "top" compositions until you're sure of your search; you can always run it again with a bigger list, or, perhaps better, change your music scoring criteria to get the compositions you are looking for higher up the list.

Some Rules of Thumb

In general, searches for touches of up to 10 leads are feasible, depending on methods and pruning options. The number of parts doesn't have much bearing on the search time, so this is easily enough for quarter-peals of 4 parts or more. However, you may have to be prepared to wait many hours to get the full set of results - and it really is important to wait, because the best compositions are often found deep into the search! Fortunately, once the Elf web page is loaded, the searches run off-line, so you can disconnect your computer from the internet and even leave Elf running for days at a time if you want. The "pause" button can also be useful if you need to use your computer for other tasks whilst running a long search.

Unfortunately Elf isn't suitable for peal lengths, because there are just too many leads in the part. Remember that for every single extra lead you add to the composition, the search time increases by a factor of n2, where n is the number of methods you are splicing. So for peals, it's back to pen and paper!