Book Image

Practical Discrete Mathematics

By : Ryan T. White, Archana Tikayat Ray
Book Image

Practical Discrete Mathematics

By: Ryan T. White, Archana Tikayat Ray

Overview of this book

Discrete mathematics deals with studying countable, distinct elements, and its principles are widely used in building algorithms for computer science and data science. The knowledge of discrete math concepts will help you understand the algorithms, binary, and general mathematics that sit at the core of data-driven tasks. Practical Discrete Mathematics is a comprehensive introduction for those who are new to the mathematics of countable objects. This book will help you get up to speed with using discrete math principles to take your computer science skills to a more advanced level. As you learn the language of discrete mathematics, you’ll also cover methods crucial to studying and describing computer science and machine learning objects and algorithms. The chapters that follow will guide you through how memory and CPUs work. In addition to this, you’ll understand how to analyze data for useful patterns, before finally exploring how to apply math concepts in network routing, web searching, and data science. By the end of this book, you’ll have a deeper understanding of discrete math and its applications in computer science, and be ready to work on real-world algorithm development and machine learning.
Table of Contents (17 chapters)
1
Part I – Basic Concepts of Discrete Math
7
Part II – Implementing Discrete Mathematics in Data and Computer Science
12
Part III – Real-World Applications of Discrete Mathematics

Applying the Algorithm to Real Data

Let's use our Python implementation of the PageRank algorithm to some larger-scale data. We will use a dataset shared by J. Kleinberg at Cornell by crawling the web to find web pages containing the word California. It is a text file in the following form:

Type Source Destination
n 0 http://www.berkeley.edu/
n 1 http://www.caltech.edu/
…
n 9663 http://www.cs.ucl.ac.uk/external/P.Dourish/hotlist.html
e 0 449
e 0 450
…
e 9663 7907

The first part contains 9,663 web pages that have the word California, and the rest is an adjacency list for the graph representing the "internet" of these 9,663 web pages. For example, take the following line:

e 0 499

This means web page 0 has a link to web page 499. In order to implement PageRank on this dataset, we need to create an adjacency matrix.

Let's use some Python code to read this data file into a pandas DataFrame and display it:

# import the pandas library
import...