13.07.2015 Views

computing the quartet distance between general trees

computing the quartet distance between general trees

computing the quartet distance between general trees

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 8Results and discussionThe experiments with each of <strong>the</strong> three algorithms have been commented separately inChap. 4, 6 and 7. The <strong>general</strong> impression has been positive: <strong>the</strong> quartic and cubic algorithmswere indeed performing within – and also ra<strong>the</strong>r close to – <strong>the</strong> expected timebounds, however, <strong>the</strong> quartic algorithm was more sensitive to <strong>the</strong> variations in inputdata. The implementation of <strong>the</strong> sub-cubic algorithm has not been precisely following<strong>the</strong> <strong>the</strong>oretic guidelines and as a consequence some compromises have been introduced.More precisely, experimental verification made it clear that padding <strong>the</strong> matricesto square matrices did not give an advantage over <strong>the</strong> normal multiplication. Never<strong>the</strong>less,<strong>the</strong> final implementation has been thoroughly tested with different input – in anattempt of finding <strong>the</strong> worst possible input – and <strong>the</strong> result is an algorithm that behavessub-cubicly in every situation. However, while <strong>the</strong> algorithm shows a sub-cubic performancefor all types of <strong>trees</strong> presented, both <strong>the</strong> actual running time and <strong>the</strong> developmentin time-usage is clearly varying <strong>between</strong> <strong>trees</strong>. Hence, <strong>the</strong> star tree has an interesting role.For <strong>the</strong> size of <strong>trees</strong> used in this <strong>the</strong>sis (≤ 800 leaves), <strong>the</strong> star tree is both <strong>the</strong> fastest todeal with and <strong>the</strong> tree that makes <strong>the</strong> algorithm show <strong>the</strong> worst development in timeusage.As a consequence, I find it natural to assume that running time of <strong>the</strong> sub-cubicalgorithm on <strong>the</strong> star tree, and to some extent also <strong>the</strong> wc tree, will continue growingfaster than on <strong>the</strong> o<strong>the</strong>r inputs and eventually, on much larger <strong>trees</strong>, <strong>the</strong> star <strong>trees</strong> will be<strong>the</strong> most time consuming inputs to deal with.The final result of <strong>the</strong> experiments was briefly revealed and commented ra<strong>the</strong>r cursoryin Chap. 1 but shown again in Fig. 8.1 and Fig. 8.2. The two figures compare <strong>the</strong>experimental results of <strong>the</strong> three algorithms implemented in Python and C++ respectively.These plots are clear evidence that <strong>the</strong> sub-cubic algorithm does not only meet<strong>the</strong> <strong>the</strong>oretic expectations but it is faster in practice as well. The C++ implementation isfaster for <strong>trees</strong> with 80 leaves and more while <strong>the</strong> Python implementation is not clearly59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!