A Java Library of Graph Algorithms and Optimization (Discrete Mathematics and Its Applications)

INTRODUCTION RANDOM GRAPH GENERATION Random Permutation of n Objects Random Graph Random Bipartite Graph Random Regular Graph Random Spanning Tree Random Labeled Tree Random Unlabeled Rooted Tree Random Connected Graph Random Hamilton Graph Random Maximum Flow Network Random Isomorphic Graphs Random Isomorphic Regular Graphs CONNECTIVITY Maximum Connectivity Depth-First Search Breadth-First Search Connected Graph Testing Connected Components Cut Nodes Strongly Connected Components Minimal Equivalent Graph Edge Connectivity Minimum Spanning Tree All Cliques PATHS AND CYCLES Fundamental Set of Cycles Shortest Cycle Length One-Pair Shortest Path All Shortest Path Length Shortest Path Tree All Pairs Shortest Paths k Shortest Paths k Shortest Paths without Repeated Nodes Euler Circuit Hamilton Cycle Chinese Postman Tour Traveling Salesman Problem PLANARITY TESTING GRAPH ISOMORPHISM TESTING COLORING Node Coloring Chromatic Polynomial GRAPH MATCHING Maximum Cardinality Matching Minimum Sum Perfect Matching NETWORK FLOW Maximum Network Flow Minimum Cost Network Flow PACKING AND COVERING Assignment Problem Bottleneck Assignment Problem Quadratic Assignment Problem Multiple Knapsack Problem Set Covering Problem Set Partitioning Problem LINEAR PROGRAMMING Revised Simplex Method Dual Simplex Method INTEGER PROGRAMMING Zero-One Integer Programming All Integer Programming Mixed Integer Programming QUADRATIC PROGRAMMING APPENDIX A: REFERENCES APPENDIX B: GRAPH-THEORETIC TERMS INDEX OF PROCEDURES

[1]  R. Prim Shortest connection networks and some generalizations , 1957 .

[2]  A. Land,et al.  An Automatic Method for Solving Discrete Programming Problems , 1960, 50 Years of Integer Programming.

[3]  Keith Paton,et al.  An algorithm for the blocks and cutnodes of a graph , 1971, Commun. ACM.

[4]  Douglas R. Shier,et al.  Iterative methods for determining the k shortest paths in a network , 1976, Networks.

[5]  R. V. Helgason,et al.  Algorithms for network programming , 1980 .

[6]  Rufus Walker,et al.  An enumerative technique for a class of combinatorial problems , 1960 .

[7]  A. V. Karzanov,et al.  Determining the maximal flow in a network by the method of preflows , 1974 .

[8]  J. Mize Optimization Techniques With Fortran , 1973 .

[9]  P. Wolfe THE SIMPLEX METHOD FOR QUADRATIC PROGRAMMING , 1959 .

[10]  J. Y. Yen,et al.  Finding the K Shortest Loopless Paths in a Network , 2007 .

[11]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[12]  H. Kuhn The Hungarian method for the assignment problem , 1955 .

[13]  T. A. J. Nicholson,et al.  Finding the Shortest Route between Two Points in a Network , 1966, Comput. J..

[14]  Martin W. P. Savelsbergh,et al.  Preprocessing and Probing Techniques for Mixed Integer Programming Problems , 1994, INFORMS J. Comput..

[15]  Paolo Toth,et al.  Algorithm 632: A program for the 0–1 multiple knapsack problem , 1985, TOMS.

[16]  Keith Paton,et al.  An algorithm for finding a fundamental set of cycles of a graph , 1969, CACM.

[17]  Albert Nijenhuis,et al.  Combinatorial Algorithms for Computers and Calculators , 1978 .

[18]  Silvano Martello An algorithm for finding a minimal equivalent graph of a strongly connected digraph , 2005, Computing.

[19]  Narsingh Deo,et al.  Discrete Optimization Algorithms: with Pascal Programs , 2006 .

[20]  J. Kruskal On the shortest spanning subtree of a graph and the traveling salesman problem , 1956 .

[21]  C. E. Lemke,et al.  The dual method of solving the linear programming problem , 1954 .