Some papers may be in Postscript format (ending with the suffix
.ps) and other in PDF (ending with the suffix .pdf).
On a Unix system, you can simply send a Postscript file to the
printer; you can also view it on the screen with ghostview or
(better) gv, either one of which will also allow you to print
selected pages. A PDF file cannot be sent directly to the printer; it
must first be transformed into Postscript; on a Unix system, there are
three possible tools to do that: acroread, gv (if
recent enough), and xpdf; gv is probably best, but
acroread is OK, even if rather clumsy. On a Windows machine,
PDF files should be handled automatically (with acroread, in fact);
Postscript files are not recognized properly (native versions have the
suffix .prn, "printer" files), but will print fine if sent to
a printer and will be displayed properly on your screen with the
Windows version of ghostview (available free in a lot of
places - do a search on google for "ghostview windows").
This list of references comprises a lot of refereed research articles
in respected journals. You should take these as possible models,
but realize that the authors probably spent 1-2 years on the project,
not 5 weeks! You may get useful ideas or additional references from
them, a basis for comparison with your own results, etc.; but your
work is necessarily much less ambitious. You can also find on the web
a number of class papers written for classes not too different from ours;
they will vary from short projects like ours to semester-long senior projects.
In the latter class, a very nice paper on the effect of caching on index
structures can be found here and references
used in that class at
Just about any paper in the
ACM J. of Experimental Algorithmics.
Several focus on queues, priority queues, and trees, although generally
with added features. If you need the text of 2-3 of these papers, let me know.
Look at the web site for the
it has on-line proceedings, as do almost all of the other workshops
(WAE and ALEX/ALENEX) it links to. All of these are experimental papers;
any can be printed (all Postscript files). A number of these are on
pure data structures, as you can generally tell from the titles.
Ahuja, R.K., Magnanti, T.L., and Orlin, J.B. Network Flows.
Prentice Hall, NJ, 1993. This is an in-depth textbook on a topic
far beyond our class (network flows), but it has one 20-page chapter
(Chapter 18) devoted entirely to the experimental analysis of algorithms.
That chapter can be read almost in its entirety without knowing anything
about netflow algorithms and is quite useful.
Chekuri, C.S., Goldberg, A.V., Karger, D.R., Levine, M.S., and Stein, C.,
``Experimental study of minimum cut algorithms,''
Proc. 8th ACM/SIAM Symp. on Discrete Algs. (SODA 97), 324-333.
In the library, reasonably short. Min-cut is a tricky topic, but you can get
a feel for a good presentation from this short conference paper.
Cherkassky, B.V., Goldberg, A.V., and Radzik, T.,
``Shortest paths algorithms: theory and experimental evaluation,''
Math. Progr. 73 (1996), 129-174.
In contrast, this is a full-fledged journal version; notice the huge difference
in length in comparison with the 10-page conference paper. Don't push yourself
through this paper! but do look at presentation and organization:
how the data are graphed, how the paper is organized, etc.
Finkler, U., and Mehlhorn, K.,
``Runtime prediction of real programs on real machines,''
Proc. 8th ACM/SIAM Symp. on Discrete Algs. (SODA 97), 380-389.
A rather technical article on how to bridge theory and practice -- the
authors discuss how to produce a more realistic analysis that will
more closely match experimental results.
``An empirical comparison of priority queues and event-set implementations,''
Commun. ACM 29 (1986), 300-311.
A MUST READ for anyone choosing priority queues as a project; the first
serious experimental study. The codes should still be available at the
author's web site. Data presentation is suboptimal here.
The Stanford GraphBase: A Platform for Combinatorial Computing.
Addison-Wesley, Reading Mass., 1993.
From the Master himself! His full software suite is also available by ftp
and includes a lot of interesting data generators. He is mostly concerned
(obviously!) with graph algorithms, but he has time/space to talk about
general experimental approaches, to discuss data structure implementations,
and to present a lot of cute/interesting/challenging data sets.
LaMarca, A., and Ladner, R.,
``The influence of caches on the performance of heaps,''
ACM J. of Experimental Algorithmics 1, 4 (1996),
www.jea.acm.org/1996/LaMarcaInfluence. One of the seminal articles on the influence of caching.
If you want a copy, let me know -- I'll email you the file.
LaMarca, A., and Ladner, R.,
``The influence of caches on the performance of sorting,''
Proc. 8th ACM/SIAM Symp. on Discrete Algs. (SODA 97), 370-379.
The other seminal article by the same people; less relevant to this
project, since it is about sorting, but a good first look at caching.
``Analysis of algorithms by simulation: variance reduction techniques
and simulation speedups,''
ACM Comput. Surveys 24 (1992), 195-212.
Another MUST READ, for those who will collect a lot of data. The author
shows how to use statistical techniques to derive strong estimates of
confidence in the data.
McGeoch, C.C., and Moret, B.M.E., ``How to present a paper on
experimental work with algorithms,'' SIGACT News 30, 4 (1999), 85-90.
In the library and also available (under papers) from our own Bernard Moret's web page;
intended for conference presentations, but most of it applies directly
to a report as well. Some parts are for experimental studies of a
different nature (optimization, for instance) and should just be
Moret, B.M.E., ``Towards a discipline of experimental algorithmics,''
to appear in DIMACS Monographs, 2000. Postscript file
available from Bernard
Moret's web page, under papers. An overview of the whole business
of doing experimental work with algorithms and data structures with
tips on what is worth and what is not worth doing.
- Moret, B.M.E., and H.D. Shapiro. Algorithms from P to NP,
Volume~I: Design and Efficiency. Benjamin-Cummings Publishing
Co., Menlo Park, CA, 1991. Moret and Shapiro, from our own dept!,
pioneered the whole experimental approach to algorithms; their text
contains two experimental studies: on minimum spanning tree algorithms
(and, indirectly, on priority queues) and on sorting. Bernard has the
C code for the MST study and can send it to you. Also a good source
of information on various types of heaps and on splay trees.
- Moret, B.M.E., and Shapiro, H.D., ``An empirical assessment of
algorithms for constructing a minimal spanning tree,'' in
Computational Support for Discrete Mathematics, N. Dean and
G. Shannon, eds., DIMACS Series in Discrete Mathematics and
Theoretical Computer Science 15 (1994), 99-117. The final word
on the MST study, also available as a Postscript file from Bernard's web page, under
- Rönngren, R., and Ayani, R., ``A comparative study of
parallel and sequential priority queue algorithms,'' ACM
Trans. Modeling and Computer Simulation 7, 2 (1997), 157-209.
Although, in this class, we are not interested in parallel versions,
this is an easy-to-read report (a bit long, though!)
- Stasko, J.T., and Vitter, J.S., ``Pairing heaps: experiments and
analysis,'' Commun. ACM 30 (1987), 234-249. A very detailed
early study of variations on this one type of priority queue; nice