[comp.theory] Summary: Tarjan, et. al./Data Structures

aliao@eagle.wesleyan.edu (09/28/90)

My thanks to all those who responded to my query.  Below are the
responses that attempted to address my question. It appears that
most of the reponses centered around the splay trees though
FHeaps, skew and pairing heaps were briefly mentioned. I thought
I'd post these now since I am going on holiday for two weeks.
Once again, my thanks.				-drew liao
***	***	***	***	***	***	***	***	***

From: dietz@cs.rochester.edu

Talk to Dave Johnson at Bell Labs.  He and coworkers (Lyle McGeoch,
for one) have been programming heuristics for planar traveling salesman
for very large N (10^6 and more).  Splay trees are useful for
representing tours, since they let you efficiently implement
"flip a segment of the tour" and "does b fall between a and c on the tour"
operations.

There was a paper at the last ICALP; I don't remember if it went
into detail about the data structures.

	Paul F. Dietz
	dietz@cs.rochester.edu

From: Ira Baxter <baxter@zola.ICS.UCI.EDU>

I used splay trees in a best-first search application; seemed to work
nicely.   Most of the application I have seen discussed is
simulation; there's an article by Doug? Jones in CACM, middle to late
80's on such applications.

I like them.  But I'm not really a theoretician.
-- 
Ira Baxter

From: moret@cmell.cs.unm.edu

Henry Shapiro and I have run large-scale comparisons of minimum
spanning tree algorithms, using a variety of implementations.
One of them is the lazy leftist heap of Tarjan, used in the
Cheriton-Tarjan algorithm; others include Fibonacci heaps.
d-heaps, etc.  Lazy leftist trees appear quite effective,
although they are very wasteful of memory; our conclusion is that
Fibonacci heaps and lazy leftist heaps are too slow for sizes
below 10-50,000 nodes. (Results of the experiments appear in
Chapter 5 of our soon-to-appear text---Nov. 90---on algorithms,
``Algorithms from P to NP, Vol. I: Design and Efficiency,'' at
Benjamin-Cummings.) In separate experiments, we compared pairing
heaps, skew heaps, leftist and lazy leftist heaps, binomial
queues, and Fibonacci heaps (we wanted to include relaxed
heaps---Driscoll, Tarjan, et al.---but quickly realized that the
overhead makes them completely useless), as well as splay trees,
"standard heaps", and various balanced trees (AVL, red-black,
2-3).  If melding is not important, then standard heaps win hands
down, even when DecreaseKey is included; otherwise, splay trees
seem as fast as anything else and more flexible. (We'd appreciate
a copy of any other/different results you hear of or obtain.)

     Bernard M.E. Moret                     Department of Computer Science
     (505) 277-31{31,12}   University of New Mexico, Albuquerque, NM 87131
     moret@unmvax.unm.edu   (ID number of unmvax.unm.edu is 129.24.12.128)

From: "Douglas W. Jones" <jones@pyrite.cs.uiowa.edu>

Splay trees are widely used, as a result of the inclusion of a
(slightly buggy) implementation of splay trees in the Gnu C++
distribution from the Free Software Foundation.  The bug is that
you can't delete the last item in the tree; this bug results from
an error in transliteration from my Pascal code to C by Dave
Brower at Sun Microsystems, he fixed the bug a long time ago, but
for some reason the people at Gnu seem to have taken their time
passing on the fix to C++ users.

I've been using pairing heaps in my digital logic simulator since
June 1985, not because they are best, but merely because they are
about as good as any of the other good algorithms, and it seemed
that someone ought to use them in a production application.

I've distributed copies of the code for the queue implementations
described in my CACM paper to about 30 different investigators,
most of whom were simply looking for fast code, although a few
used them for instructional purposes or for comparison with the
results of their own algorithm research.

Also, the splay-tree based data compression code I developed has
been very widely distributed.  I don't know who uses it in
production, but for a while, when people were talking about
patent problems with LZW compression, it became a candidate
alternative to the UNIX compress command.

					Doug Jones
					jones@herky.cs.uiowa.edu