Mathematicsfor Comter I Course Info Objectives: To introduce students to the concepts and applications of discrete mathematical structures. To introduce various techniques for designing and analyzing algorithms. To learn how to apply the techniques in designing and analyzing some fundamental algorithms, such as sorting and graph algorithms.
Mathematicsfor Comter I Course Info Syllabus: Foundations: logic, sets, functions. Combinatorics: counting, permutations, combinations. Recurrence relations. Graph theory: tree, graph, connectivity, graph traversal. Design and analysis of algorithms (Intro.) Computability and complexity (Intro.).
Mathematicsfor Comter I Course Info Textbooks: H. Rosen. Discrete Mathematics and Its Applications, 5/E, McGraw-Hill, 2003.
Mathematicsfor Comter I Course Info References: R. P. Grimaldi, Discrete and Combinatorial Mathematics (an Applied Introduction), Addison-Wesley, T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, 2nd Edition, MIT Press, Cambridge, MA, J.A. Dossey, A.D. Otto, L.E. Spence, C. Vanden Eynden, Discrete Mathematics, 4/E, Addison Wesley, S. Baase, A. Van Gelder, Computer Algorithms: Introduction to Design and Analysis, 3/E, Addison Wesley, 2000 M.T. Goodrich, R. Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, Wiley, 2002.
Mathematicsfor Comter I Course Info Assessment Method (tentative): 10 Assignments (15%): 3 In-class Midterm Exams ( %) Final Exam (25%)
Mathematicsfor Comter I Lecture 1 Introduction Introduction to Discrete Mathematics Definitions Applications
Mathematicsfor Comter I 1.1. Introduction to Discrete Math. Other mathematics courses: Calculus: Operations: integration, differentiation, … Dealing with: continuous real and complex numbers Scalar: single variable Vector: multiple variables
Mathematicsfor Comter I 1.1. Introduction to Discrete Math. Other mathematics courses: Algebra: Operations: addition, subtraction, multiplication, division … Dealing with: continuous real and complex numbers Scalar: single variable Vector: multiple variables Matrix
Mathematicsfor Comter I 1.1. Introduction to Discrete Math. What is discrete mathematics? Part of mathematics devoted to the study of discrete objects. Discrete means consisting of distinct or unconnected elements. Operations: Combinatorics: counting discrete objects Logical operators, relations: specifying relationship between discrete objects Dealing with: Discrete objects – sets, propositions.
Mathematicsfor Comter I 1.1. A formal definition - Wikipedia Discrete mathematics, sometimes called finite mathematics, is the study of mathematical structures that are fundamentally discrete, in the sense of not supporting or requiring the notion of continuity. Most, if not all, of the objects studied in finite mathematics are countable sets, such as the integers.discretecontinuitycountable setsintegers Discrete mathematics has become popular in recent decades because of its applications to computer science. Concepts and notations from discrete mathematics are useful to study or express objects or problems in computer algorithms and programming languages. In some mathematics curricula, finite mathematics courses cover discrete mathematical concepts for business, while discrete mathematics courses emphasize concepts for computer science majors.computer sciencealgorithms programming languagesfinite mathematics For contrast, see continuum, topology, and mathematical analysis.continuumtopologymathematical analysis Discrete mathematics usually includes : logic - a study of reasoning logic set theory - a study of collections of elements set theory number theory combinatorics - a study of counting combinatorics graph theory algorithmics - a study of methods of calculation algorithmics information theory the theory of computability and complexity - a study on theoretical limitations on algorithms …computabilitycomplexity
Mathematicsfor Comter I 1.1. Introduction to Discrete Math. Applications of discrete mathematics: Formal Languages (computer languages) Machine translation Compiler Design Artificial Intelligence Relational Database Theory Network Routing Algorithm Design Computer Game many more (almost all areas of computer science)… A building block of computer science ! (Why ?)
Mathematicsfor Comter I 1.1. Introduction to Discrete Math. Topics in discrete mathematics I: Foundations: logic, sets, functions. Combinatorics: counting, permutations, combinations. Recurrence relations. Graph theory: tree, graph, connectivity, graph traversal. Design and analysis of algorithms (Intro.) Computability and complexity (Intro.).
Mathematicsfor Comter I 1.2. Application: Formal Language Formal language: Language generated by grammars Grammars: Generate the words of a language Determine whether a word is in a language Words: Can be combined in various ways Grammars tell whether a combination of words is a valid sentence Applications: Design of Programming Languages and Compilers
Mathematicsfor Comter I 1.2. Application: Formal Language Example 1: Natural language: English Is the hungry rabbits eats quickly in English language? Derivation tree of the sentence: sentence verb phrasenoun phrase articleadjectivenoun thehungryrabbit verbadverb eatsquickly
Mathematicsfor Comter I 1.2. Application: Formal Language Example 2: Typical problem in the construction of compilers. Determine whether the word cbab belongs to the language generated by the grammar G = (V, T, S, P), where: V = a, b, c, A, B, C, S T = a, b, c S is the starting symbol P are the productions: S AB A Ca B Ba B Cb B b C cb C b
Mathematicsfor Comter I 1.2. Application: Formal Language Example 2 (continued): Solution: Begin with S and try to derive cbab using a series of productions. Since only one production with S, we must start with S AB Use the only production for A to obtain: S AB CaB Use the production of C cb since cbab begins with the symbol cb: S AB CaB cbaB Finish by using the production of B b: S AB CaB cbaB cbab
Mathematicsfor Comter I 1.3. Application: Graph Theory Example 3 In Europe: Konigsberg 7-bridge problem Konigsberg, originally in Prussia, now in Russia Four sections, two rivers, seven bridges Euler solved this problem in 1736; the origin of graph theory
Mathematicsfor Comter I 1.3. Application: Graph Theory Problem: Draw a path (or circuit) with a pencil in such a way that you trace over each bridge once and only once and you complete the 'plan' with one continuous pencil stroke
Mathematicsfor Comter I 1.4. Application: Set Theory Are there more integers than positive integers ? Are there more integers than real numbers ?
Mathematicsfor Comter I 1.5. Application: Complexity Theory Example 5: The Traveling Salesman Problem Important in circuit design network routing many other CS problems Given: n cities c 1, c 2,..., c n distance between city i and j, d ij Find the shortest tour.
Mathematicsfor Comter I 1.5. Application: Complexity Theory Example 5 (continued): How many different tours? Choose the first city n ways, the second city n-1 ways, the third city n-2 ways, etc. # tours = n (n-1) (n-2)....(2) (1) = n! (Combinations) A tour requires n-1 additions. Total number of additions = (n-1) n! (Rule of Product)
Mathematicsfor Comter I 1.5. Application: Complexity Theory Example 5 (continued): Assume a very fast PC: 1 GHz = 1,000,000,000 ops/sec 1 flop = 1 nanosecond = sec. If n=8, T(n) = 78! = 282,240 flops << 1 second. HOWEVER If n=50, T(n) = 4950! = = seconds = years.... a long time. Youll be an old person before its finished. There are some problems for which we do not know if efficient algorithms exist to solve them!
Mathematicsfor Comter I 1.5. Application: Complexity Theory Example 5 (continued): What can we do ? Do not waste time unless you are a genius to save the world Less ambitious goals With 90% possible, find the best tour Find a tour that is no more 1.1 times the best
Mathematicsfor Comter I Next lecture: LOGIC Foundation of formal language, complexity theory and others.