NP-Completeness Columns
David S. Johnson
Last Updated: 8 Auguest 2005
My NP-completeness column began in 1982 in the Journal of Algorithms,
initially appearing in every issue and then appearing more-and-more sporadically
until it went on hiatus in 1992, with 23 editions having appeared.
The column is being revived for the new ACM Transactions on Algorithms
and is expected to appear semi-annually.
The first of the new columns is now available.
This page provides access to draft .pdf versions of all the columns.
These are not exact replicas of
the original columns, and the titles listed here
for Columns 1-16 and 24 are descriptive
summaries not present in the original text.
The .pdf files available here for Columns 1-23
were for the most part recompiled from the original
troff source files using the current versions of troff,
eqn, and tbl. The figures in Columns 5 and 16, which were
originally produced using the no-longer-supported programs ideal
and tped, were recreated using pic.
The pagination in these .pdf files is typically not the same
as in the definitive versions that appeared in J. Algorithms, and
some of the equation formatting is subpar due to changes in the underlying
typesetting software.
Typos and other mistakes have not
been corrected except for one in Column 22, which provides a useful
summary of the contents of the first 22 columns.
Exact electronic replicas of these original 23 columns (scanned .pdf files)
are available for downloading from
Science Direct for a fee.
The .pdf files available here for Column 24 and subsequent editions
represent my drafts, and again the pagination
and typesetting differs from the published version, this time because
of differences in the latex macro packages used. The published versions
are typically shorter and better-looking, and are available
from the ACM Digital Library.
- The Twelve Open Problems From [G&J]: Updates,
J. Algorithms,
2:4 (1981),
393-405.
- Embedding Problems,
J. Algorithms,
3:1 (1982),
89-99.
- Partitioning, Covering, and Packing Problems,
J. Algorithms,
3:2 (1982),
182-195.
- Oracles, Bin Packing, and and Ordering Problems,
J. Algorithms,
3:3 (1982),
288-300.
- Routing Problems,
J. Algorithms,
3:4 (1982),
381-395.
- Knapsacks, Linear Programs, and a Gamut of Problems,
J. Algorithms,
4:1 (1983),
87-100.
- Parallel Processing,
J. Algorithms,
4:2 (1983),
pp. 189-203.
- Concurrent Processing,
J. Algorithms,
4:3 (1983),
pp. 286-300.
- Fun and Games,
J. Algorithms,
4:4 (1983),
pp. 397-411.
- Updates, Updates, Updates,
J. Algorithms,
5:1 (1984),
pp. 147-160.
- Solving NP-Hard Problems Quickly (On Average),
J. Algorithms,
5:2 (1984),
pp. 284-299.
- Randomized Algorithms and Complexity Classes,
J. Algorithms,
5:3 (1984),
pp. 433-447.
- Communicating Processes,
J. Algorithms,
5:4 (1984),
pp. 595-609.
- Network Design,
J. Algorithms,
6:1 (1985),
pp. 145-159.
- Uniqueness,
J. Algorithms,
6:2 (1985),
pp. 291-305.
- Graph Restrictions and Their Effect,
J. Algorithms,
6:3 (1985),
pp. 434-451.
- Computing with One Hand Tied behind Your Back,
J. Algorithms,
7:2 (1986),
pp. 289-305.
- Computing in the Math Department, Part I,
J. Algorithms,
7:4 (1986),
pp. 584-601.
- The Many Faces of Polynomial Time,
J. Algorithms,
8:2 (1987),
pp. 285-303.
- Announcements, Updates, and Greatest Hits,
J. Algorithms,
8:3 (1987),
pp. 438-448.
- Interactive Proof Systems for Fun and Profit,
J. Algorithms,
9:3 (1988),
pp. 426-444.
- The Story So Far,
J. Algorithms,
11:1 (1990),
pp. 144-151.
- The Tale of the Second Prover,
J. Algorithms,
13:3 (1992),
pp. 502-524.
- Open Problems Revisited,
ACM Trans. Algorithms,
1:1 (2005),
pp. 160-176.