0% found this document useful (0 votes)
21 views5 pages

Combinatorica

The document is a comprehensive textbook on Computational Discrete Mathematics, focusing on Combinatorics and Graph Theory using Mathematica. It includes detailed chapters on various topics such as permutations, combinations, graph representation, and algorithmic graph theory, along with exercises for practical application. The book aims to provide both theoretical insights and practical tools for exploring combinatorial structures and graph algorithms.

Uploaded by

josefina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views5 pages

Combinatorica

The document is a comprehensive textbook on Computational Discrete Mathematics, focusing on Combinatorics and Graph Theory using Mathematica. It includes detailed chapters on various topics such as permutations, combinations, graph representation, and algorithmic graph theory, along with exercises for practical application. The book aims to provide both theoretical insights and practical tools for exploring combinatorial structures and graph algorithms.

Uploaded by

josefina
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Computational Discrete Mathematics

Combinatorics and Graph Theory with


Mathematica

SRIRAM PEMMARAJU STEVEN SKIENA


The University of Iowa SUNY at Stony Brook

CAMBRIDGE
UNIVERSITY PRESS
Table of Contents
Preface ix
• About Combinatorica • What's Between the Covers • Why Mathematica? • Acknowledgments • Caveat • Dedication

Chapter 1. Combinatorica: An Explorer's Guide


1.1 Combinatorial Objects: Permutations, Subsets, Partitions 3
• Permutations and Subsets • Partitions, Compositions, and Young Tableaux

1.2 Graph Theory and Algorithms 10


• Representing Graphs • Drawing Graphs • Generating Graphs • Properties of Graphs • Algorithmic Graph Theory

1.3 Combinatorica Conversion Guide 32


• The Main Differences • Functions Whose Usage Has Changed

1.4 An Overview of Mathematica 41


• The Structure of Functions • Mathematical Operations • List Manipulation • Iteration • Ten Little n-Sums • Conditionals
• Compiling Mathematica Code

Chapter 2. Permutations and Combinations


2.1 Generating Permutations 55
• Lexicographically Ordered Permutations • Ranking and Unranking Permutations • Random Permutations • Minimum
Change Permutations
2.2 Inversions and Inversion Vectors 69
• Inversion Vectors • Counting Inversions • The Index of a Permutation • Runs and Eulerian Numbers
2.3 Combinations 76
• Subsets via Binary Representation • Gray Codes • Lexicographically Ordered Subsets • Generatingfc-Subsets• Strings

2.4 Exercises 89
• Thought Exercises • Programming Exercises • Experimental Exercises

Chapter 3. Algebraic Combinatorics


3.1 The Cycle Structure of Permutations 93
• Odd and Even Permutations • Types of Permutations • Hiding Cycles • Counting Cycles

3.2 Special Classes of Permutations 104


• Involutions • Derangements
3.3 Polya Theory 109
• Permutation Groups • Group Action • Equivalence Classes and Orbits • Cycle Index of Permutation Groups
• Applying P61ya's Theorem

3.4 Exercises 131


• Thought Exercises • Programming Exercises • Experimental Exercises
vi Computational Discrete Mathematics: Combinatorics and Graph Theory in Mathematica

Chapter 4. Partitions, Compositions, and Young Tableaux


4.1 Integer Partitions 135
• Generating Partitions • Generating Functions and Partitions • Ferrers Diagrams • Random Partitions

4.2 Compositions 146


• Random Compositions • Generating Compositions

4.3 Set Partitions 149


• Generating Set Partitions • Stirling and Bell Numbers • Ranking, Unranking, and Random Set Partitions • Set
Partitions and Restricted Growth Functions
4.4 Young Tableaux 162
• Insertion and Deletion • Permutations and Pairs of Tableaux • Generating Young Tableaux • Counting Tableaux by
Shape • Random Tableaux • Longest Increasing Subsequences

4.5 Exercises 173


• Thought Exercises • Programming Exercises • Experimental Exercises

Chapter 5. Graph Representation


5.1 Data Structures for Graphs 179
• The Internal Representation • Edge Lists • Adjacency Lists • Adjacency Matrices • Incidence Matrices

5.2 Modifying Graphs 192


• Additions, Deletions, and Changes • Setting Graph Options

5.3 Classifying Graphs 198

5.4 Displaying Graphs 200


• The Vertex and Edge Options • Inherited Options • A Hierarchy of Options • Highlighting and Animation
5.5 Basic Graph Embeddings 213
• Circular Embeddings • Ranked Embeddings • Radial Embeddings • Rooted Embeddings

5.6 Improving Embeddings 219


• Translating, Dilating, and Rotating Graphs • Shaking Graphs • Spring Embeddings

5.7 Storing and Editing Graphs 224

5.8 Exercises 226


• Thought Exercises • Programming Exercises • Experimental Exercises
Chapter 6. Generating Graphs
6.1 Building Graphs from Other Graphs 231
• Contracting Vertices • Inducing and Permuting Subgraphs • Unions and Intersections • Sums and Differences • Joins
of Graphs • Products of Graphs • Line Graphs
6.2 Regular Structures 244
• Complete Graphs • Circulant Graphs • Complete fc-Partite Graphs • Cycles, Stars, and Wheels • Grid Graphs
• Interconnection Networks
Table of Contents vii

6.3 Trees 258


• Labeled Trees • Complete Trees

6.4 Random Graphs 262


• Constructing Random Graphs • Realizing Degree Sequences

6.5 Relations and Functional Graphs 269


• Graphs from Relations • Functional Graphs
6.6 Exercises 273
• Thought Exercises • Programming Exercises • Experimental Exercises

Chapter 7. Properties of Graphs


7.1 Graph Traversals 277
• Breadth-First Search • Depth-First Search

7.2 Connectivity 283


• Connected Components • Strong and Weak Connectivity • Orienting Graphs • Biconnected Components • k-
Connectivity • Harary Graphs
7.3 Cycles in Graphs 294
• Acyclic Graphs • Girth • Eulerian Cycles • Hamiltonian Cycles and Paths • Traveling Salesman Tours

7.4 Graph Coloring 306


• Bipartite Graphs • Chromatic Polynomials • Finding a Vertex Coloring • Edge Colorings

7.5 Cliques, Vertex Covers, and Independent Sets 316


• Maximum Clique • Minimum Vertex Cover • Maximum Independent Set

7.6 Exercises 319


• Thought Exercises • Programming Exercises • Experimental Exercises

Chapter 8. Algorithmic Graph Theory


8.1 Shortest Paths 323
• Single-Source Shortest Paths • All-Pairs Shortest Paths • Applications of All-Pairs Shortest Paths • Number of Paths

8.2 Minimum Spanning Trees 335


• Union-Find • Kruskal's Algorithm • Counting Spanning Trees
8.3 Network Flow 340
8.4 Matching 343
• Maximal Matching • Bipartite Matching • Weighted Bipartite Matching and Vertex Cover • Stable Marriages
8.5 Partial Orders 352
• Topological Sorting • Transitive Closure and Reduction • Hasse Diagrams • Dilworth's Theorem

8.6 Graph Isomorphism 363


• Finding Isomorphisms • Tree Isomorphism • Self-Complementary Graphs
vffi Computational Discrete Mathematics: Combinatorics and Graph Theory in Mathematica

8.7 Planar Graphs 370


• Testing Planarity

8.8 Exercises 372


• Thought Exercises • Programming Exercises • Experimental Exercises
Appendix 375
Reference Guide 376
Bibliography 447
Index 459

You might also like