Web Page for the Book: Discrete Structures with Contemporary Applications by Alexander Stanoyevitch Chapman & Hall/CRC Press (January 2011) |
Preface About the Author Dependency Chart Chapter 1: Logic and Sets Section 1.1: Logical Operators Section 1.2: Logical Quantifiers Section 1.3: Sets Chapter 2: Relations and Functions, Boolean Algebra, and Circuit Design Section 2.1: Relations and Functions Section 2.2: Equivalence Relations and Partial Orderings Section 2.3: Boolean Algebra and Circuit Design Chapter 3: The Integers, Induction, and Recursion Section 3.1: Mathematical Induction Section 3.2: Recursion Appendix: Recursive Definitions and Structural Induction Section 3.3: Some Topics in Elementary Number Theory Appendix: Probabilistic Primality Tests Chapter 4: Number Systems Section 4.1: Representations of Integers in Different Bases Section 4.2: Modular Arithmetic and Congruences Section 4.3: Matrices Section 4.4: Floating Point Arithmetic Section 4.5: Public Key Cryptography Chapter 5: Counting Techniques, Combinatorics, and Generating Functions Section 5.1: Fundamental Principles of Counting Section 5.2: Permutations, Combinations, and the Binomial Theorem Section 5.3: Generating Functions Appendix: Application to Weighted Democracies |
Chapter 6: Discrete Probability and Simulation Section 6.1: Introduction to Discrete Probability Section 6.2: Random Numbers, Random Variables, and Basic Simulations Chapter 7: Complexity of Algorithms Section 7.1: Some Algorithms for Searching and Sorting Section 7.2: Growth Rates of Functions and the Complexity of Algorithms Chapter 8: Graphs, Trees, and Associated Algorithms Section 8.1: Graph Concepts and Properties Section 8.2: Paths Connectedness, and Distances in Graphs Section 8.3: Trees Appendix: Application of Rooted Trees to Data Compression and Coding; Huffman Codes Chapter 9: Graph Traversal and Optimization Problems Section 9.1: Graph Traversal Problems Section 9.2: Tree Growing and Graph Optimization Algorithms Section 9.3: Network Flows Chapter 10: Randomized Search and Optimization Algorithms Section 10.1: Randomized Search and Optimization: An Overview Section 10.2: Genetic Algorithms Appendix A: Pseudo Code Dictionary Appendix B: Solutions to all Exercises for the Reader Appendix C: Answers/Brief Solutions to Odd Numbered Exercises References Index of Theorems, Propositions, Lemmas, and Corollaries Index of Algorithms Index |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Downloading instructions: For each of the links below, left click your mouse to view the file in your internet
browser window. To download the file in its original format, right click on the link and select a "save" or "save target" option.
Each of the links below will lead to a MS Excel file that contains the distance matrix, an optimum tour, and the optimum tour
distance for the corresponding traveling salesman problem under its name. These benchmark problems and data were obtained
using the data from the Web page TSPLIB Web Page.
The traveling salesman problem, which is introduced in Chapter 9, is one of the most difficult problems in combinatorial
optimization. It is often used as a testing ground for algorithms and programs. The TSBLIB webpage contains a substantial
collections of traveling salesman problems and optimal solutions.
Ullysses 16 City Problem
Ullysses 22 City Problem
Berlin 52 City Problem
Technical Comment: The above mentioned TSPLIB Web page did not provide the distance matrices that are included in the above Excel files.
These distance matrices were computed according to the algorithms given on the TSPLIB Web Pages. In particular, the first two are computed
using certain great circle distance algorithm from the x- and y- coordinates that were given. The third distance matrix was computed using
the usual two-dimensional distance formula. All of these distance matrices had their entries rounded to the nearest integer.
Below are links to download individual programs for an assortment of algorithms and computer exercises from the book.
The programs are written in MATLAB, which is a very user-friendly language, and many comments are included.
(NOTE: In MATLAB, comments appear after "%" symbols since anything appearing in a line after this symbol
is ignored by MATLAB.) More information on how these programs operate and how corresponding programs can be written
in any computing platform can be learned by looking at the computer implementation material appearing at the end of
each chapter.
Some programs below give reference to the computer exercise to which it corresponds.
Except for Chapters 3, 4, and 6, the M-files and code snippets have been tested to work for MATLAB only.
Any program that has a single link "MATLAB/Octave/FreeMat" can be used
with either platform (and this is the case for most of the programs).
In a few cases some small changes were needed to make the MATLAB program run on FreeMat,
and for such programs there are separate links "MATLAB" and "FreeMat" for the corresponding programs.
When using FreeMat, a few programs require
some auxilliary programs to run; there are only five of these, and a zipped folder containing
them all can by downloaded using this link:
Auxilliary Programs for FreeMat
The programs can either be individually downloaded from the inventory list below, or more simply, the following link will allow you to download
a zip file of the entire suite of MATLAB programs
Download Entire MATLAB Discrete Structures Program Suite
To view individual files below, left click your mouse to view the file in your internet browser window.
To download the file in its original format, right click on the link and select a "save"
or "save target" option.
Even if you have never used MATLAB/Octave/FreeMat before; these programs are easy to use.
For information on how to obtain MATLAB or FreeMat and
how to set up these programs for use, refer to the following
MATLAB/Octave/FreeMat information page
The following link will allow you to download a text file that contains sample uses of all of the programs.
Program Input/Output Demos
This document can serve as a brief users manual.