Combinatorica

Combinatorica


Combinatorica is a collection of over 230 algorithms for discrete mathematics and graph theory written in Mathematica. These routines have been designed to work together, enabling one to experiment with discrete structures and build prototype applications. Combinatorica has been widely used for both research and education.

Although (in my totally unbiased opinion) Combinatorica is more comprehensive and better integrated than other libraries of combinatorial algorithms, it is also the slowest such system available. Credit for all of these properties is largely due to Mathematica, which provides a very high-level, functional, interpreted, and thus inefficient programming language. Combinatorica is best for finding quick solutions to small problems, and (if you can read Mathematica code) as a terse exposition of algorithms for translation into other languages.

Combinatorica is best described in my book:

Steven S. Skiena, Implementing Discrete Mathematics: Combinatorics and Graph Theory in Mathematica , Advanced Book Division, Addison-Wesley, Redwood City CA, June 1990. ISBN number 0-201-50943-1. Japanese translation published by Toppan, Tokyo, July 1992.

Combinatorica is included with the standard Mathematica distribution in the directory Packages/DiscreteMath/Combinatorica.m . It can also be obtained by anonymous ftp from ftp.cs.sunysb.edu in the directory pub/Combinatorica. For this FTP site with the latest version of Combinatorica, databases of interesting graphs, and related programs, click here


  • Link to Combinatorica distribution
  • Implementing Discrete Mathematics
  • Download Files (local site)

    Problem Links

  • Generating Graphs (8)
  • Generating Partitions (7)
  • Generating Permutations (7)
  • Generating Subsets (7)
  • Drawing Graphs Nicely (6)
  • Drawing Trees (6)
  • Graph Data Structures (6)
  • Determinants and Permanents (4)
  • Edge Coloring (4)
  • Edge and Vertex Connectivity (4)
  • Transitive Closure and Reduction (4)
  • Vertex Cover (4)
  • Connected Components (3)
  • Eulerian Cycle / Chinese Postman (3)
  • Graph Isomorphism (3)
  • Hamiltonian Cycle (3)
  • Matching (3)
  • Minimum Spanning Tree (3)
  • Network Flow (3)
  • Shortest Path (3)
  • Topological Sorting (3)
  • Traveling Salesman Problem (3)
  • Vertex Coloring (3)
  • Longest Common Substring (2)
  • Planarity Detection and Embedding (2)
  • Sorting (2)
  • Clique (1)


    About the Book
    Send us Mail
    Go to Main Page

    This page last modified on Dec 20, 1996.