On Conditional Branches in Optimal Search Trees

11 years 5 months ago
On Conditional Branches in Optimal Search Trees
A commonly used type of search tree is the alphabetic binary tree, which uses (without loss of generality) "less than" versus "greater than or equal to" tests in order to determine the outcome event. The process of finding an optimal alphabetic binary tree for a known probability distribution on outcome events usually has the underlying assumption that the cost (time) per comparison is uniform and thus independent of the outcome of the comparison. This assumption, however, is incorrect in the case of software to be optimized for a given microprocessor, e.g., compiling switch statements or fine-tuning program bottlenecks. Branch prediction causes the cost for the more likely comparison outcome to be less -- often far less -- than for the less likely comparison outcome. Here we introduce a variety of novel dynamic programming algorithms to solve both such alphabetic binary tree problems and more general search tree problems, optimizing for the behavior of processors ...
Michael B. Baer
Added 11 Dec 2010
Updated 11 Dec 2010
Type Journal
Year 2006
Where CORR
Authors Michael B. Baer
Comments (0)