Friday, 29 June 2012

Discrete Mathematics Applications and Importance in Computer Science

Discrete mathematics is the branch of mathematics dealing with objects that can assume only distinct, separated values. The term "Discrete Mathematics" is therefore used in contrast with "Continuous Mathematics," which is the branch of mathematics dealing with objects that can vary smoothly (and which includes, for example, calculus). Whereas discrete objects can often be characterized by integers, continuous objects require real numbers.

The study of how discrete objects combine with one another and the probabilities of various outcomes is known as combinatorics. Other fields of mathematics that are considered to be part of discrete mathematics include graph theory and the theory of computation. Topics in number theory such as congruence’s and recurrence relations are also considered part of discrete mathematics.

The study of topics in discrete mathematics usually includes the study of algorithms, their implementations, and efficiencies. Discrete mathematics is the mathematical language of computer science, and as such, its importance has increased dramatically in recent decades.

The set of objects studied in discrete mathematics can be finite or infinite. The term finite mathematics is sometimes applied to parts of the field of discrete mathematics that deals with finite sets, particularly those areas relevant to business.

Research in discrete mathematics increased in the latter half of the twentieth century partly due to the development of digital computers which operate in discrete steps and store data in discrete bits. Concepts and notations from discrete mathematics are useful in studying and describing objects and problems in branches of computer science, such as computer algorithms, programming languages, cryptography, automated theorem proving, and software development. Conversely, computer implementations are significant in applying ideas from discrete mathematics to real-world problems, such as in operations research.

IMPORTANCE OF DISCRETE MATHEMATICS IN COMPUTER SCIENCE

Achieving working knowledge of many principles of computer science requires mastery of certain relevant mathematical concepts and skills. For example, A grasp of Boolean algebra including DeMorgans Law is useful for understanding Boolean expressions and the basics of combinational circuits concepts surrounding the growth of functions and summations are useful for analysis of loop control structures exposure to solving recurrence relations is de rigeur for the analysis of recursive algorithms and an introduction to proof methods facilitates consideration of program correctness and thinking rigorously in general.

Students are introduced to proof techniques before they begin to consider the idea of proving programs correct. They learn about propositional logic and Boolean algebra before they study some very elementary circuits and learn decision control structures and Boolean variables. They are introduced to predicate logic near the time they are beginning programming and learning about variables. They learn about growth of functions big-O notation and summations before they analyze loops and nested loops and they have the tools to begin algorithm analysis from the time they first begin to learn about iterative constructs. In conjunction with an introduction to number theory they do laboratory and programming exercises involving an assortment of integer algorithms.

Students learn about recursive definitions recurrence relations, analyzing recursive algorithms and writing recursive algorithms and programs together in the same course. They study matrices and matrix manipulations in conjunction with the array data structure. They learn about permutations and combinations, relations, graphs, and trees at the same time that their programming knowledge and sophistication are improving and they can do increasingly interesting programming exercises involving these concepts.

Discrete Mathematics

  • Propositional and predicate logic
  • Boolean algebra
  • Functions growth of functions big-O notation
  • Sequences and summations
  • Integers elementary number theory
  • Proof techniques direct indirect contradiction induction
  • Matrices
  • Counting
  • Pigeon hole principle
  • Permutations and combinations
  • Discrete probability
  • Recursive definitions recurrence relations
  • Relations : properties applications representation closures equivalence
  • Graphs : terminology representation isomorphism connectivity paths

Computer Science Topics

  • Computers and Computation
  • Computer System Organization
  • Abstraction problem solving algorithms
  • Logic gates and elementary circuits
  • Algorithm design analysis of simple loops
  • Representation (ASCII binary two’s complement floating point instructions
  • Algorithm correctness loop invariants pre-and post-conditions
  • Machine cycle
  • More algorithm correctness
  • Analysis of nested loops
  • Analysis of recursive algorithms
  • Run time organization run time stack
  • Searching and sorting
  • Trees binary search trees traversals

Programming Constructs and Concepts

  • Pascal program structure
  • Modularity and hierarchical design
  • Variables
  • Real char Boolean integer sub range and enumerated types
  • Input/output
  • Procedures functions parameter passing scope
  • Iterative control structures
  • Decision control structures
  • Text files
  • One dimensional arrays
  • Two dimensional arrays
  • Nested loops
  • Records
  • Pointers and linked lists
  • Recursion
  • Abstract data types stacks and queues

APPLICATIONS OF DISCRETE MATHEMATICS

Theoretical Computer Science

Theoretical computer science includes areas of discrete mathematics relevant to computing. It draws heavily on graph theory and logic. Included within theoretical computer science is the study of algorithms for computing mathematical results. Computability studies what can be computed in principle, and has close ties to logic, while complexity studies the time taken by computations. Automata theory and formal language theory are closely related to computability. Petri nets and process algebras are used to model computer systems, and methods from discrete mathematics are used in analyzing VLSI electronic circuits. Computational geometry applies algorithms to geometrical problems, while computer image analysis applies them to representations of images. Theoretical computer science also includes the study of various continuous computational topics.

Information Theory

Information theory involves the quantification of information. Closely related is coding theory which is used to design efficient and reliable data transmission and storage methods. Information theory also includes continuous topics such as analog signals, analog coding, analog encryption and Mathematical logic.

Information Life Cycle

Mathematical logic

Logic is the study of the principles of valid reasoning and inference, as well as of consistency, soundness, and completeness. For example, in most systems of logic (but not in intuitionistic logic) Peirce's law (((P→Q)→P)→P) is a theorem. For classical logic, it can be easily verified with a truth table. The study of mathematical proof is particularly important in logic, and has applications to automated theorem proving and formal verification of software.

Logical formulas are discrete structures, as are proofs, which form finite trees or, more generally, directed acyclic graph structures (with each inference step combining one or more premise branches to give a single conclusion). The truth values of logical formulas usually form a finite set, generally restricted to two values: true and false, but logic can also be continuous-valued, e.g., fuzzy logic. Concepts such as infinite proof trees or infinite derivation trees have also been studied e.g. infinitely logic.

Set theory

Set theory is the branch of mathematics that studies sets, which are collections of objects, such as {blue, white, and red} or the (infinite) set of all prime numbers. Partially ordered sets and sets with other relations have applications in several areas.

Set theory intersection of two sets

In discrete mathematics, countable sets (including finite sets) are the main focus. The beginning of set theory as a branch of mathematics is usually marked by Georg Cantor's work distinguishing between different kinds of infinite set, motivated by the study of trigonometric series, and further development of the theory of infinite sets is outside the scope of discrete mathematics. Indeed, contemporary work in descriptive set theory makes extensive use of traditional continuous mathematics.

Combinatorics

Combinatorics studies the way in which discrete structures can be combined or arranged. Enumerative combinatorics concentrates on counting the number of certain combinatorial objects - e.g. the twelvefold way provides a unified framework for counting permutations, combinations and partitions. Analytic combinatorics concerns the enumeration (i.e., determining the number) of combinatorial structures using tools from complex analysis and probability theory. In contrast with enumerative combinatorics which uses explicit combinatorial formula and generating functions to describe the results, analytic combinatorics aims at obtaining asymptotic formula. Design theory is a study of combinatorial designs, which are collections of subsets with certain intersection properties. Partition theory studies various enumeration and asymptotic problems related to integer partitions, and is closely related to q-series, special functions and orthogonal polynomials. Originally a part of number theory and analysis, partition theory is now considered a part of combinatorics or an independent field. Order theory is the study of partially ordered sets, both finite and infinite.

Discrete geometry and computational geometry

Graph theory

Graph theory, the study of graphs and networks, is often considered part of combinatorics, but has grown large enough and distinct enough, with its own kind of problems, to be regarded as a subject in its own right. Graphs are one of the prime objects of study in discrete mathematics. They are among the most ubiquitous models of both natural and human-made structures. They can model many types of relations and process dynamics in physical, biological and social systems. In computer science, they can represent networks of communication, data organization, computational devices, the flow of computation, etc. In mathematics, they are useful in geometry and certain parts of topology, e.g. knot theory. Algebraic graph theory has close links with group theory. There are also continuous graphs, however for the most part research in graph theory falls within the domain of discrete mathematics.

Graphs and Networks

Discrete probability theory

Discrete probability theory deals with events that occur in countable sample spaces. For example, count observations such as the numbers of birds in flocks comprise only natural number values {0, 1, 2,}. On the other hand, continuous observations such as the weights of birds comprise real number values and would typically be modeled by a continuous probability distribution such as the normal. Discrete probability distributions can be used to approximate continuous ones and vice versa. For highly constrained situations such as throwing dice or experiments with decks of cards, calculating the probability of events is basically enumerative.

Discrete probability theory dice

Number theory

Number theory is concerned with the properties of numbers in general, particularly integers. It has applications to cryptography, cryptanalysis, and cryptology, particularly with regard to modular arithmetic, Diophantine equations, linear and quadratic congruence’s, prime numbers and primarily testing. Other discrete aspects of number theory include geometry of numbers. In analytic number theory, techniques from continuous mathematics are also used. Topics that go beyond discrete objects include transcendental numbers, Diophantine approximation, and analysis and function fields.

Number Theory

Algebraic structures occur as both discrete examples and continuous examples. Discrete algebras include: Boolean algebra used in logic gates and programming; relational algebra used in databases; discrete and finite versions of groups, rings and fields are important in algebraic coding theory; discrete semi groups and monodies appear in the theory of formal languages.

Discrete geometry and computational geometry

Discrete geometry and combinatorial geometry are about combinatorial properties of discrete collections of geometrical objects. A long-standing topic in discrete geometry is tiling of the plane. Computational geometry applies algorithms to geometrical problems.

Trees

Trees are used to represent data that has some hierarchical relationship among the data elements.

Discrete Structure Tree

Topology

Although topology is the field of mathematics that formalizes and generalizes the intuitive notion of "continuous deformation" of objects, it gives rise to many discrete topics; this can be attributed in part to the focus on topological invariants, which themselves usually take discrete values. See combinatorial topology, topological graph theory, topological combinatorics, computational topology, discrete topological space, finite topological space, topology (chemistry).

Mesh Network Topology

CONCLUSIONS

We emphasize the essential role that mathematics plays in the development of computer science both for the particular knowledge and for the reasoning skills associated with mathematical maturity. We stress the importance of certain mathematical concepts for computer science. We present a comprehensive table of mathematics topics and their computer science applications.