Web Page for the Book:
Discrete Structures with Contemporary Applications    
by Alexander Stanoyevitch
Chapman & Hall/CRC Press (January 2011)

Brief Table of Contents

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

Index of Theorems, Propositions, Lemmas, and Corollaries
Index of Algorithms

To see a more detailed version of the contents click on this link: Detailed TOC 
To see the book's preface and dependency chart click on this link: Preface 

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.

Data Sets for Benchmark Traveling Salesman Problems for Section 10.1

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.

Programs and Codes

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.

Chapter 1: : See Program Input/Output Demos for some demos of MATLAB's built-in set functions.

Chapter 3:

Chapter 4:

Chapter 6:

Chapter 7:

Chapter 8:

Chapter 9:

Chapter 10: