CSE115/ENGR160 Discrete Mathematics 02/28/12 - PowerPoint PPT Presentation

About This Presentation
Title:

CSE115/ENGR160 Discrete Mathematics 02/28/12

Description:

CSE115/ENGR160 Discrete ... we will show there are unsolvable problems The problem is the halting problem * The halting problem It asks whether there is a ... – PowerPoint PPT presentation

Number of Views:115
Avg rating:3.0/5.0
Slides: 21
Provided by: Cinda2
Category:

less

Transcript and Presenter's Notes

Title: CSE115/ENGR160 Discrete Mathematics 02/28/12


1
CSE115/ENGR160 Discrete Mathematics02/28/12
  • Ming-Hsuan Yang
  • UC Merced

2
Insertion sort
  • Start with 2nd term
  • Larger than 1st term, insert after 1st term
  • Smaller than 1st term, insert before 1st term
  • At this moment, first 2 terms in the list are in
    correct positions
  • For 3rd term
  • Compare with all the elements in the list
  • Find the first element in the list that is not
    less than this element
  • For j-th term
  • Compare with the elements in the list
  • Find the first element in the list that is not
    less than this element

3
Example
  • Apply insertion sort to 3, 2, 4, 1, 5
  • First compare 3 and 2 ? 2, 3, 4, 1, 5
  • Next, insert 3rd item, 4gt2, 4gt3 ? 2, 3, 4, 1, 5
  • Next, insert 4th item, 1lt2 ? 1, 2, 3, 4, 5
  • Next, insert 5th item, 5gt1, 5gt2, 5gt3, 5gt4?1, 2,
    3, 4, 5

4
Insertion sort
  • procedure insertion sort(a1, a2, , an real
    numbers with n2)
  • i1 (left endpoint of search interval)
  • j1 (right end point of search interval)
  • for j2 to n
  • begin
  • i1
  • while ajgtai
  • ii1
  • maj
  • for k0 to j-i-1
  • aj-k aj-k-1
  • ai m
  • end
  • a1 , a2, , an are sorted

5
Greedy algorithm
  • Many algorithms are designed to solve
    optimization problems
  • Greedy algorithm
  • Simple and naïve
  • Select the best choice at each step, instead of
    considering all sequences of steps
  • Once find a feasible solution
  • Either prove the solution is optimal or show a
    counterexample that the solution is non-optimal

6
Example
  • Given n cents change with quarters, dimes,
    nickels and pennies, and use the least total
    number of coins
  • Say, 67 cents
  • Greedy algorithm
  • First select a quarter (leaving 42 cents)
  • Second select a quarter (leaving 17 cents)
  • Select a dime (leaving 7 cents)
  • Select a nickel (leaving 2cnts)
  • Select a penny (leaving 1 cent)
  • Select a penny

7
Greedy change-making algorithm
  • procedure change(c1, c2, , cn values of
    denominations of coins, where c1gtc2gtgtcn n
    positive integer)
  • for i1 to r
  • while nci then
  • add a coin with value ci to the change
  • nn- ci
  • end

8
Example
  • Change of 30 cents
  • If we use only quarters, dimes, and pennies (no
    nickels)
  • Using greedy algorithm
  • 6 coins 1 quarter, 5 pennies
  • Could use only 3 coins (3 dimes)

9
Lemma 1
  • If n is a positive integer, then n cents in
    change using quarters, dimes, nickels, and
    pennies using the fewest coins possible has at
    most two dimes, at most one nickel, at most 4
    pennies, and cannot have two dimes and a nickel
  • The amount of change in dimes, nickels, and
    pennies cannot exceed 24 cents

10
Proof (Lemma)
  • Proof by contradiction
  • Show that if we had more than the specified
    number of coins of each type, we could replace
    them using fewer coins that have the same value
  • If we had 3 dimes, could replace with 1 quarter
    and 1 nickel
  • If we had 2 nickels, could replace them with 1
    dime
  • If we had 5 pennies, could replace them with 1
    nickel
  • If we had 5 pennies, could replace them with 1
    nickel
  • If we had 2 dimes and 1 nickel, could replace
    them with 1 quarter
  • Because we could have at most 2 dimes, 1 nickel,
    and 4 pennies, but we cannot have two dimes and a
    nickel, it follows 24 cents is the most we can
    have

11
Theorem
  • Theorem The greedy change-making algorithm
    produces change using the fewest coins possible
  • Proof by contradiction
  • Suppose that there is a positive integer n such
    that there is a way to make change for n cents
    using fewer coins (q) than that of the greedy
    algorithm
  • Let the number of quarters be q, and the number
    of quarters used in the greedy algorithm be q

12
Proof
  • First note q must be the same as q
  • Note the greedy algorithm uses the most quarters
    possible, so qq
  • However, q ? q
  • If q lt q, we would need to make up 25 cents from
    dimes, nickels, and pennies in the optimal way to
    make change
  • But this is impossible from Lemma 1

13
Proof
  • As there must be the same number of quarters in
    the two algorithms
  • The value of the dimes, nickels and pennies in
    these two algorithms must be the same, and their
    value is no more than 24 cents
  • Likewise, there must be the same number of dimes,
  • as the greedy algorithm used the most dimes
    possible
  • and by Lemma 1, when change is made using the
    fewest coins possible, at most 1 nickel and a
    most 4 pennies are used, so that the most dimes
    possible are also used in the optimal way to make
    change
  • Likewise, we have the same number of nickels, and
    finally the same number of pennies

14
The halting problem
  • One of the most famous theorems in computer
    science
  • There is a problem that cannot be solved using
    any procedure
  • That is, we will show there are unsolvable
    problems
  • The problem is the halting problem

15
The halting problem
  • It asks whether there is a procedure that does
    this
  • It takes input as a computer program and input to
    the program, and
  • determines whether the program will eventually
    stop when run with the input
  • Useful to test certain things such as whether a
    program entered into an infinite loop

16
The halting problem
  • First note that we cannot simply run a program
    and observe what it does to determine whether it
    terminates when run with the given input
  • If the program halts, we have our answer
  • But if it is still running after any fixed length
    of time has elapsed, we do not know whether it
    will never halt or we just did not wait long
    enough for it to terminate

17
Turings proof
  • Halting problem is unsolvable
  • Proof by contradiction
  • The proof presented here is not completely
    rigorous
  • Proof Assume there is a solution to this halting
    problem called H(P,I) where P is a program and I
    is input
  • H(P,I) outputs the string halt as output if H
    determines P stops when given I
  • Otherwise, H(P,I) generates the string loops
    forever as output

18
Turings proof
  • When a procedure is coded, it is expressed as a
    string of characters and can be interpreted as a
    sequence of bits
  • A program can be used as data, and thus a program
    can be thought of as input to another program, or
    even itself
  • H can take a program P as both of its inputs,
    which are a program and input to this program
  • H should be able to determine if P will halt when
    it is given a copy of itself as input

19
Turings proof
  • Construct a simple procedure K(P) that makes use
    of the output H(P,P) but does the opposite of H
  • If the output of H(P,P) is loops forever, then
    K(P) halts
  • IF the output of H(P,P) is halt, then K(P)
    loops forever

20
Turings proof
  • Suppose we provide K as input to K
  • We note that if the output of H(K,K) is loops
    forever, then by the definition of K, we see
    K(K) halts
  • Otherwise, if the output of H(K,K) is halt,
    then by the definition of K we see that K(K)
    loops, in violation of what H tells us
  • In both cases, we have contradiction
  • Thus H cannot always give the correct answers
  • No procedure solves the halting problem
Write a Comment
User Comments (0)
About PowerShow.com