1 / 26

CpE602: Applied Discrete Mathematics

4/3/2012 2:59:09 AM. Algorithms. Definition: Algorithm is a finite set of precise instructions for performing a computation or for solving a problem.Example: Describe an algorithm for finding the maximum (largest) value in a finite sequence of integers.Algorithm: Finding Maximum Element.proce

bono
Download Presentation

CpE602: Applied Discrete Mathematics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. CpE602: Applied Discrete Mathematics The Fundamentals: Algorithms Growth of functions Complexity of algorithms Integers and division Primes and greatest common divisors

    2. 4/4/2012 1:05:35 AM Algorithms Definition: Algorithm is a finite set of precise instructions for performing a computation or for solving a problem. Example: Describe an algorithm for finding the maximum (largest) value in a finite sequence of integers. Algorithm: Finding Maximum Element. procedure max (a1, a2, ,an: integers) max := a1 for i := 2 to n if (max < ai) then max := ai { max is the largest value }

    3. 4/4/2012 1:05:35 AM Algorithms Properties that algorithms generally share Input. An algorithm has input values from a specified set. Output. The algorithms produce output values. Definiteness. The steps of the algorithm must be defined precisely. Correctness. The output values should be correct solutions. Finiteness. An algorithm should output a value after a finite number of steps. Effectiveness. It must be possible to perform each step of the algorithm exactly and in a finite amount of time. Generality. The procedure should be applicable for all problems of a given form. Example: Show that the algorithm for fining maximum value has the properties listed above.

    4. 4/4/2012 1:05:35 AM Algorithms Searching Problems: Locate an element x in a list of distinct elements a1, a2, , an or determine that it is not in the list. Algorithm: The Linear Search Algorithm. procedure linear search (x: integer, a1, a2, , an: distinct integers) i := 1 while (i = n and x ? ai) i := i + 1 if i = n then location := i else location := 0 {location is the subscript of the term that is equal to x, or is 0 if x is not found}

    5. 4/4/2012 1:05:35 AM Algorithms Algorithm: The Binary Search Algorithm. procedure binary search (x: integer, a1, a2, , an: increasing integers) i := 1 {i is the left endpoint of the search interval} j := n {j is the right endpoint of the search interval} while ( i < j ) begin m := [(i + j)/2] if x > am then i:= m + 1 else j := m end if x = ai then location := i else location := 0 {location is the subscript of the term equal to x, or 0 if x is not found} Example: Find 19 in 1,2,3,5,6,7,8,10,12,13,15,16,18,19,20,22.

    6. 4/4/2012 1:05:35 AM Algorithms Sorting. Suppose that we have a list of elements and a way to order the elements. Sorting is putting this elements into a list in which the elements are in increasing order. Algorithm: The Bubble Sort. procedure bubble sort (a1, a2, ,an: real numbers with n > 1) for i := 1 to n - 1 for j := 1 to n - i if (aj > aj+1) then interchange aj+1 and aj {a1, a2, ,an is in increasing order } Example: Use bubble sort to put 3, 2, 4, 1, 5 in increasing order.

    7. 4/4/2012 1:05:35 AM Algorithms Algorithm: The Insertion Sort. procedure insertion sort (a1, a2, ,an: real numbers with n > 1) for j := 2 to n begin i := 1 while ( aj > ai) i := i + 1 m := aj for k := 0 to j - i 1 aj-k := aj-k-1 ai := m end {a1, a2, ,an is in increasing order } Example: Use insertion sort to put 3, 2, 4, 1, 5 in increasing order.

    8. 4/4/2012 1:05:35 AM Algorithms Optimization problems. The goal is to find a solution that either maximizes or minimizes the value of some parameter. Greedy algorithms. Instead of considering all sequences of steps, the best choice is made at each step. Often lead to optimal solutions. Example: The problem is to make n cents change using quarters, dimes, nickels and pennies. The goal is to use least total number of coins. Greedy approach: At each step we choose the coin with the largest possible denomination.

    9. 4/4/2012 1:05:35 AM Algorithms Algorithm: Greedy Change-Making Algorithm. procedure change (c1, c2, ,cr: denominations in decreasing order, n: a positive integer) for j := 1 to r begin i := 1 while ( n = ci ) begin add a coin with value ci to the change n := n - ci end Lemma. In an optimal solution, there can be at most 2 dimes, at most 1 nickel, at most four pennies, and the amount of change in dimes nickels and pennies cannot exceed 24 cents. Theorem. The Greedy Change-Making Algorithm is optimal.

    10. 4/4/2012 1:05:35 AM The Growth of functions The Big-O Notation Definition. Let f and g be functions from the set of integers or the set of real numbers to the set of real numbers. We say f(x) is O(g(x)), denoted f(x) = O(g(x)), if there are constants C and k such that |f(x)| = C |g(x)| whenever x > k. C and k are the witnesses of the relationship. Example: Show that f(x) = x2+2x+1 is O(x2). Is x2 big-O of f(x)? Example: Show that 7x2 is O(x3). Example: Show that n2 is not O(n). Example: Is it also true that x3 is O(7x2)?

    11. 4/4/2012 1:05:35 AM The Growth of functions Some Important Big-O Results Theorem. Let f(x) = anxn + + a1x + a0, where a0, a1, , an are real numbers. Then f(x) is O(xn). Example: Use big-O notation to estimate 1 + 2 + + n. Example: Use big-O estimates of the factorial function and the logarithm of the factorial function. Example: Use the inequality n < 2n for all positive integers n to show that log n is O(n).

    12. 4/4/2012 1:05:35 AM The Growth of functions Growth of combinations of functions Theorem. Suppose the f1(x) = O(g1(x)) and f2(x) = O(g2(x)). Then, (f1+f2)(x) is O( max(|g1(x)|, |g2(x)|) ). Corollary. Suppose the f1(x) = O(g(x)) and f2(x) = O(g(x)). Then, (f1+f2)(x) is O(g(x)). Theorem. Suppose the f1(x) = O(g1(x)) and f2(x) = O(g2(x)). Then, (f1f2)(x) is O(g1(x)g2(x)). Example: Give big-O estimates of: 3nlog(n!) + (n2+3)log n (x + 1)log(x2+1) + 3x2

    13. 4/4/2012 1:05:35 AM The Growth of functions Big-Omega and Big-Theta Notation Definition. Let f and g be functions from the set of integers or the set of real numbers to the set of real numbers. We say f(x) is O(g(x)), denoted f(x) = O(g(x)), if there are constants C and k such that |f(x)| = C |g(x)| whenever x > k. Definition. Let f and g be functions from the set of integers or the set of real numbers to the set of real numbers. We say f(x) is T(g(x)), or f(x) is of order g(x), if f(x) is both O(g(x)) and O(g(x)).

    14. 4/4/2012 1:05:35 AM The Growth of functions Example: Show that f(x) = 8x3 +5x2 + 7 is O(g(x)) where g(x) = x3. Example: Show that f(n) = 1 + 2 + + n is T(n2). One can show that f(x) is T(g(x)) by finding constants C1, C2 and k s.t. C1|g(x)| = f(x) = C2|g(x)| for x > k. Example: Show that 3x2 + 8logx is T(x2). Theorem. Let f(x) = anxn + + a1x + a0, where a0, a1, , an are real numbers with an ? 0. Then f(x) is T(xn).

    15. 4/4/2012 1:05:35 AM Complexity of Algorithms Computational complexity Time complexity the time required to solve the problem Space complexity the memory required to solve the problem Example: What is the time complexity of the algorithm for finding maximum element? Example: What is the time complexity of the binary search algorithm? Example: What is the average-case complexity of the linear search algorithm assuming that the element x is in the list? Example: What is the worst-case complexity of the bubble sort in terms of the number of comparisons made?

    16. 4/4/2012 1:05:35 AM Complexity of Algorithms Complexity Classes - Constant complexity - Logarithmic complexity - Linear complexity - Polynomial complexity - Exponential complexity - Factorial complexity A problem that can be solved with a worst-case polynomial time algorithm is said to be tractable. Otherwise, it is intractable. Problems that cannot be solved by any algorithm are called unsolvable. Problems for which a solution can be checked in polynomial time are said to belong to the NP (nondeterministic polynomial) class. NP-complete problems are problems in NP with the property that if any of these problems can be solved in polynomial time, then all problems in NP can be solved in poly time.

    17. 4/4/2012 1:05:35 AM The Integers and Division Division Definition. If a and b are integers with a ? 0, we say a divides b, denoted a|b, if there is an integer c such that b = ac. When a divides b we say that a is a factor of b and that b is a multiple of a. Example: Determine whether 3|7 and whether 3|12. Example: Let n and d be positive integers. How many positive integers not exceeding n are divisible by d? Theorem. Let a, b and c be integers. Then (i) if a|b and a|c, then a|(b+c) (ii) if a|b, then a|bc for any integer c (iii) if a|b and b|c, then a|c

    18. 4/4/2012 1:05:35 AM The Integers and Division Corollary. If a, b and c are integers s.t. a|b and a|c, then a|(mb+nc) for any integers m and n. Theorem (The Division Algorithm). Let a be an integer and d a positive integer. Then there are unique integers q and r, with 0 = r < q, s.t. a = dq+r. Here, d is called the divisor, a is called the dividend, q is called the quotient and r is called the remainder. One can also use the following notation to express the quotient and remainder: q = a div d, r = a mod d. Example: What are the quotient and remainder when: (i) 101 is divided by 11, (ii) -11 is divided by 3.

    19. 4/4/2012 1:05:35 AM The Integers and Division Definition. Let a and b be integers and let m be a positive integer. We say that a is congruent to b modulo m, denoted a = b (mod m), if m divides (a-b). Theorem. Let a and b be integers and let m be a positive integer. Then a = b (mod m) if and only if a mod m = b mod m. Theorem. Let m be a positive integer. Then a = b (mod m) if and only if there is an integer k s.t. a = b + km. Theorem. Let m be a positive integer. If a = b (mod m) and c = d (mod m), then a+c = b+d (mod m) and ac = bd (mod m). Corollary. (a+b) mod m = ((a mod m) + (b mod m)) mod m (ab) mod m = ((a mod m)(b mod m)) mod m

    20. 4/4/2012 1:05:35 AM The Integers and Division Applications of Congruences Hashing The records in databases are identified using a key (e.g., the social security number of a person). Hash tables are data structures that are used to store and search for records. To store a record with a key k in a hash table consisting of m rows, one computes a hash h = h(k) of the key k and stores the record in the h-th row. One of the most common hash functions is the function h(k) = k mod m. Example: Where will the record with a key k = 111111375 be stored in a hash table with m = 111 memory locations?

    21. 4/4/2012 1:05:35 AM The Integers and Division Applications of Congruences Pseudorandom Numbers The linear congruential method. To generate a sequence {xn} of pseudorandom numbers, we select four integers: the modulus m, multiplier a, increment c and seed x0, with 1 < a < m, 0 = c < m and 0 = x0 < m. The numbers in the sequence are generated using the congruence: xn+1 = (axn + c) mod m. When c = 0, we say the generator is pure multiplicative generator. Example: Find the sequence when m = 9, a = 7, c = 4 and x0 = 3.

    22. 4/4/2012 1:05:35 AM The Integers and Division Applications of Congruences Cryptology Caesars cipher. Each letter is substituted with a letter that is three letters forward in the alphabet. Mathematically the encryption transformation of a single letter can be expressed as f(p) = (p + 3) mod 26. Example: What is the encryption of MEET ME IN THE PARK? Shift ciphers. A generalization of the Caesars cipher. The letter substitution transformation is f(p) = (p + k) mod 26. Example (More generalization): What letter is the substitute of K when the function f(p) = (7p + 3) mod 26 is used for encryption?

    23. 4/4/2012 1:05:35 AM Primes and Greatest Common Divisors Definition. A positive integer p greater than 1 is prime if the only positive factors of p are 1 and p. A positive integer that is greater than 1 and is not prime is called composite. Example: Are 7 and 9 primes? Theorem (The Fundamental Theorem of Arithmetic). Every positive integer greater than 1 can be written uniquely as a prime or a product of primes where the prime factors are listed in non-decreasing order. Example: Find the prime factorization of 100, 641, 999, 1024. Theorem. If n is a composite integer, then n has a prime divisor less than or equal to the square root of n. Example: Show that 101 is prime.

    24. 4/4/2012 1:05:35 AM Primes and Greatest Common Divisors Theorem. There are infinitely many primes. Mersenne primes. Mersenne primes are primes of the special form 2p-1 where p is a prime too. Examples: 22-1 = 3, 23-1 = 7 and 25 1 = 31. Distribution of primes Theorem (The Prime Number Theorem). The ratio of the number of primes less than or equal to n and n/lnn approaches 1 when n grows without bound.

    25. 4/4/2012 1:05:35 AM Primes and Greatest Common Divisors Conjectures and open problems. Example: It is nice to have a strictly increasing function f(n) such that f(n) is prime for every positive integer n. Is f(n) = n2 n + 41 such funtion? Goldbachs Conjecture. Every even integer n > 2 can be expressed as a sum of two primes. Example: There are many conjectures about primes of a special form. One such conjecture is that there are infinitely many primes of the form n2 + 1. The Twin Prime Conjecture. Twin primes are primes that differ by 2. The twin prime conjecture asserts that there are infinitely many twin primes.

    26. 4/4/2012 1:05:35 AM Primes and Greatest Common Divisors Greatest Common Divisor Definition. Let a and b be integers, not both zero. The greatest common divisor of a and b, denoted by gcd(a, b), is the largest integer d that divides both a and b. Example: What is the greatest common divisor of 24 and 36? Example: What is the greatest common divisor of 17 and 22? Definition. The integers a and b are relatively prime if their greatest common divisor is 1. Definition. The integers a1, a2, , an are pairwise relatively prime if gcd(ai, aj) = 1 for all 0 < i < j = n. Example: Are 10, 17 and 21 pairwise relatively prime? Example: One can use factorization to find gcd of two numbers. Find the gcd of 120 and 500.

    27. 4/4/2012 1:05:35 AM Primes and Greatest Common Divisors Least Common Multiple Definition. The least common multiple of the two positive integers a and b is the smallest positive integer that is divisible by both a and b. The least common multiple of a and b is denoted by lcm(a, b). Example: What is the least common multiple of 233572 and 2433? How can we use factorization to find lcm in general? Theorem. If a and b be positive integers, then ab = gcd(a, b) lcm(a, b).

More Related