Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | victor-cole |
View: | 216 times |
Download: | 2 times |
2
Today’s topics Review of Induction and Recursion Administrivia Basics of Counting Prolog Tutorial Python Tutorial
3
Induction Based on the Rule of Inference (or Well-Ordering) It has two steps: basis step and inductive step If P(1) and k(P(k) P(k+1)) are true for positive
integers then P(n) is true Can be used to prove tremendous variety of results Strong induction is more flexible proof technique. It
shows [P(1)P(2) … P(k)] P(k+1) is true in the inductive step instead of just showing only P(k) P(k+1) as in mathematical induction
4
ExampleProve this theorem: “All horse are the same color”Proof: Basis Step: no horse vacuously true!Inductive Step: assume k horse have the same color (inductive hypothesis) is true.Then we have to show that k+1 horse also have the same color.
First set of k horse having the same color
Second set of k horse having the same color
k+1 horse having the same color
5
Example
“For any 2n x 2n board, we can chase Bill to the corner.”Proof:Basis Step: no board (n=0), no need to need to chase Bill with an L-shape tile.Inductive Step: assume we can get Bill to the corner for 2n x 2n board. We need to show it is true for 2n+1 x 2n+1
We are done!
6
Recursion Another way to define function based on
induction Specifies some initial terms and define
rules for finding subsequent values from values already known – Recursive Definition
Use induction to prove recursive definition Algorithms can also be recursively designed
8
Program Verification A method to verify that a designed procedure or program
always produce the correct answer The verification is based on rules of inference Initial assertion and Final assertion
properties that the input must have The properties that output should have
Partial correctness vs. Total correctness The correct answer is obtained if program terminates The program always terminated
9
Example
Prove that this program is correct.
procedure multiply (m, n: integers)if n < 0 then a := -nelse a := nk := 0x := 0
while k < abegin x := x + m k := k + 1end
if n < 0 then product := -xelse product := x
S1
S2
S3
S4
Let p: “m and n are integers” and q: p (a=|n|). Then we can prove that p{S1}q is true.
Let r: q (k=0) (x=0). Then it can be proved that q{S2}r is true.
S4 can be proved in the same way as S1. Now, we have to show S3 is correct.
First, we find “loop invariant” in S3 which is s: “x=mk k a” or “x=ma a=|n|”. If r is true, we know that s is true before entering the loop. Moreover, this loop terminates when k = a and x = ma. That is partial correctness is held. It follows that r{S3}s is true.
Now that we prove S1, S2, S3, and S4 are true so, by composition rule we could show that[p{S1}q q{S2}r r{S3}s t{S4}u] p{S1;S2;S3;S4}u is true. p{S}u is correct.
10
Administrivia Midterm Exam is in next 3 weeks. Please be
prepared! All assignments MUST be submitted before
Midterm.
12
The Importance of Counting To count the number of solutions to solve
the problem Determine the Complexity of Algorithms To Use Passwords for Computer Security
13
Combinatorics Count the number of ways to put things
together into various combinations e.g., If a password is 6-8 letters and/or digits,
how many passwords can there be? Two main rules
Sum Product
14
Sum Rule Let us consider two tasks:
m is the number of ways to do task 1 n is the number of ways to do task 2 Tasks are independent of each other, i.e.,
Performing task 1 does not accomplish task 2 and vice versa.
Sum rule: the number of ways that “either task 1 or task 2 can be done, but not both”, is m + n.
Generalizes to multiple tasks ...
15
Example A student can choose a computer project from one of
three lists. The three lists contain 23, 15, and 19 possible projects respectively. How many possible projects are there to choose from?
16
Set Theoretic Version If A is the set of ways to do task 1, and B
the set of ways to do task 2, and if A and B are disjoint, then:
“the ways to do either task 1 or 2 are AB, and |AB|=|A|+|B|”
17
Product Rule Let us consider two tasks:
m is the number of ways to do task 1 n is the number of ways to do task 2 Tasks are independent of each other, i.e.,
Performing task 1does not accomplish task 2 and vice versa.
Product rule: the number of ways that “both tasks 1 and 2 can be done” in mn.
Generalizes to multiple tasks ...
18
Example The chairs of an auditorium are to be labeled with a letter
and a positive integer not to exceed 100. What is the largest number of chairs that can be labeled differently?
19
Set Theoretic Version If A is the set of ways to do task 1, and B
the set of ways to do task 2, and if A and B are disjoint, then:
The ways to do both task 1 and 2 can be represented as AB, and |AB|=|A|·|B|
20
More Examples How many different bit strings are there of
length seven? Suppose that either a member of the CS
faculty or a student who is a CS major can be on a university committee. How many different choices are there if there are 37 CS faculty and 83 CS majors ?
21
More Examples How many different license plates are
available if each plate contains a sequence of three letters followed by three digits?
What is the number of different subsets of a finite set S ?
22
Example Using Both Rules Each user on a computer system has a password, which is
six to eight characters long where each character is an uppercase letter or a digit. Each password must contain at least one digit. How many possible passwords are there?
23
IP Address Example(Internet Protocol vers. 4)
Main computer addresses are in one of 3 types: Class A: address contains a 7-bit “netid” ≠ 17, and a 24-bit “hostid” Class B: address has a 14-bit netid and a 16-bit hostid. Class C: address has 21-bit netid and an 8-bit hostid.
Hostids that are all 0s or all 1s are not allowed.
How many valid computer addresses are there?
24
Example Using Both Rules:IP address solution (# addrs)
= (# class A) + (# class B) + (# class C)(by sum rule)
# class A = (# valid netids)·(# valid hostids)(by product rule)
(# valid class A netids) = 27 − 1 = 127. (# valid class A hostids) = 224 − 2 = 16,777,214. Continuing in this fashion we find the answer is:
3,737,091,842 (3.7 billion IP addresses)
25
Inclusion-Exclusion Principle(relates to the “sum rule”)
Suppose that km of the ways of doing task 1 also simultaneously accomplishes task 2. (And thus are also ways of doing task 2.)
Then the number of ways to accomplish “Do either task 1 or task 2” is mnk.
Set theory: If A and B are not disjoint, then |AB|=|A||B||AB|.
26
Example How many strings of length eight either
start with a 1 bit or end with the two bit string 00?
27
More Examples Hypothetical rules for passwords:
Passwords must be 2 characters long. Each password must be a letter a-z, a digit 0-9,
or one of the 10 punctuation characters !@#$%^&*().
Each password must contain at least 1 digit or punctuation character.
28
Sol. Cont’d A legal password has a digit or puctuation
character in position 1 or position 2. These cases overlap, so the principle applies.
(# of passwords w. OK symbol in position #1) = (10+10)·(10+10+26)
(# w. OK sym. in pos. #2): also 20·46 (# w. OK sym both places): 20·20 Answer: 920+920−400 = 1,440
30
Pigeonhole Principle If k+1 objects are assigned to k places, then
at least 1 place must be assigned ≥2 objects.
In terms of the assignment function: If f:A→B and |A|≥|B|+1, then some element of B
has ≥2 pre-images under f. i.e., f is not one-to-one.
31
Example How many students must be in class to guarantee that at
least two students receive the same score on the final exam, if the exam is graded on a scale from 0 to 100 points?
32
Generalized Pigeonhole Principle If N≥k+1 objects are assigned to k places,
then at least one place must be assigned at least N/k objects.
e.g., there are N=280 students in this class. There are k=52 weeks in the year. Therefore, there must be at least 1 week
during which at least 280/52= 5.38=6 students in the class have a birthday.
33
Proof of G.P.P. By contradiction. Suppose every place has
< N/k objects, thus ≤ N/k−1. Then the total number of objects is at most
So, there are less than N objects, which contradicts our assumption of N objects! □
Nk
Nk
k
Nk
k
Nk
111
34
G.P.P. Example Given: There are 280 students in the class.
Without knowing anybody’s birthday, what is the largest value of n for which we can prove that at least n students must have been born in the same month?
Answer:
280/12 = 23.3 = 24
35
More Examples What is the minimum number of students required in a
discrete math class to be sure that at least six will receive the same grade, if there are five possible grades, A, B, C, D, and F?
36
Binomial Coefficients The number of r-combinations from a set with n
elements is denoted by also called binomial coefficient.
This number is the expansion of powers of binomial expressions such as (a + b)n
r
n
37
Binomial CoefficientsTHEOREM 1: The Binomial Theorem
Let x,y,n be positive integer
THEOREM 2: PASCAL’S IDENTITYLet n and k be positive integer with n > k then
THEOREM 3: Let n be positive integer, then
More details in Section 5.4
38
Examples (x + y)4 = ?
What is the coefficent of x12y13 in the expansion of (x + y)25?
432234
432234
44
0
464
44444
4
yyxyxyxx
yj
yxj
yxj
yxj
xj
yxj
jj
j
300,200,5!13!12
!25
13
25
39
Permutations A permutation of a set S of objects is an ordered
arrangement of the elements of S where each element appears only once:
e.g., 1 2 3, 2 1 3, 3 1 2 An ordered arrangement of r distinct elements of
S is called an r-permutation. The number of r-permutations of a set S with n=|
S| elements is P(n,r) = n(n−1)…(n−r+1) = n!/(n−r)!
40
Example How many ways are there to select a third-
prize winner from 100 different people who have entered a contest?
41
More Examples A terrorist has planted an armed nuclear bomb in
your city, and it is your job to disable it by cutting wires to the trigger device.
There are 10 wires to the device. If you cut exactly the right three wires, in exactly
the right order, you will disable the bomb, otherwise it will explode!
If the wires all look the same, what are your chances of survival?
43
Combinations The number of ways of choosing r elements
from S (order does not matter). S={1,2,3} e.g., 1 2 , 1 3, 2 3 The number of r-combinations C(n,r) of a set
with n=|S| elements is
!( , )
!( )!
n nC n r
r r n r
44
Combinations vs Permutations Essentially unordered permutations …
Note that C(n,r) = C(n, n−r)
)!(!
!
!
)!/(!
),(
),(),(
rnr
n
r
rnn
rrP
rnP
r
nrnC
( , ) ( , ) ( , )P n r C n r P r r
45
Combination Example How many distinct 7-card hands can be
drawn from a standard 52-card deck? The order of cards in a hand doesn’t matter.
Answer C(52,7) = P(52,7)/P(7,7)= 52·51·50·49·48·47·46 / 7·6·5·4·3·2·1
710 8
2
17
52·17·10·7·47·46 = 133,784,560
46
More Examples How many ways are there to select a committee to
develop a discrete mathematics course if the committee is to consist of 3 faculty members from the Math department and 4 from the CS department, if there are 9 faculty members from Math and 11 from CS?
47
Generalized Permutations and Combinations
How to solve counting problems where elements may be used more than once?
How to solve counting problems in which some elements are not distinguishable?
How to solve problems involving counting the ways we to place distinguishable elements in distinguishable boxes?
48
Permutations with Repetition The number of r-permutations of a set of n objects
with repetition allowed is Example: How many strings of length n can be
formed from the English alphabet?
rn
49
Combinations with Repetition The number of r-combinations from a set with n
elements when repetition of elements is allowed are C(n+r-1,r)
50
Combinations with RepetitionExample: How many ways are there to select 5 bills from a cash box
containing $1 bills, $2 bills, $5 bills, $10 bills, $20 bills, $50 bills, and $100 bills? Assume that the order in which bills are chosen does not matter and there are at least 5 bills of each type.
51
Combinations with RepetitionApproach: Place five markers in the compartments i.e., # ways to arrange five stars and six bars ...Solution: Select the positions of the 5 stars from 11 possible positions !
n=7r=5
compartmentsand dividers markers
C(n+r-1,5)= C(7+5-1,5)=C(11,5)
52
Combinations with Repetition Example: How many ways are there to place 10
non-distinguishable balls into 8 distinguishable bins?
54
Permutations with non-distinguishable objects
The number of different permutations of n objects, where there are non-distinguishable objects of type 1, non-distinguishable objects of type 2, …, and non-distinguishable objects of type k, is
i.e., C(n, )C(n - , )…C(n - - -…- , )
1 2
!! !... !kn
n n n
1n
2nkn
1n 1n 2n 1n 2n 1kn kn
1 2 ... kn n n n
55
Permutations with non-distinguishable objects
Example: How many different strings can be made by reordering the letters of the word
SUCCESS
56
Distributing DistinguishableObjects into Distinguishable Boxes
The number of ways to distribute n distinguishable objects into k distinguishable boxes so that objects are placed into box i, i=1,2,…,k, equals
in
1 2
!! !... !kn
n n n
57
Distributing DistinguishableObjects into Distinguishable Boxes
Example: How many ways are there to distribute hands of 5 cards to each of 4 players from the standard deck of 52 cards?
58
Generating Permutations and Combinations
Often, we have to generate permutations or combinations to determine the solution A salesman must visit 6 different cities. In
which order should these cities be visited to minimize total travel time?
generate 6! = 720 possibilities Find a subset of 6 integers that has their sum
equals 100 possible subset is 26 = 64 subsets
59
Generating Permutations
Any set with n elements can be place in one-to-one correspondence with the set {1, 2, 3, …, n} Generate permutation of the n smallest
positive integers Replace these integers with corresponding
elements
60
Exampleprocedure next permutation(a1a2…an: permutation of {1,2,…,n} not equal to n n-1 …2 1)
j := n -1while aj > aj+1
j := j - 1 {j is the largest subscript with aj < aj+1}
k:= nwhile aj > ak
k := k - 1 {ak is the smallest integer greater than aj to the right of aj}
interchange aj and ak
r := ns := j + 1while r > sbegininterchange ar and as
r := r – 1s := s + 1end {this puts the tail end of the permutation after the jth position in increasing order}
61
Generating Combinations
How to generate all combinations of the elements of a finite set Combination is a subset Use the correspondence between subsets of
{a1, a2, …, an}
62
Examples
procedure next bit string(bn-1bn-2…b1: bit string not eqal to 11…11)
i := 0while bi = 1
begin bi := 0
i := i +1endbi := 1
procedure next r-combination(a1, a2, … , ar: proper subset of {1, 2, … ,n} not equal to
{n – r + 1, … , n} with a1 < a2 < … < ar)
i := rwhile ai = n – r + i
i := i - 1ai := ai + 1
for j := i + 1 to r aj := ai + j - i
See Section 5.6 for more details
63
Prolog Tutorial
From “Learn Prolog Now”http://www.coli.uni-saarland.de/~kris/learn-
prolog-now/lpnpage.php?pageid=online
64
Prolog Basics Fact, Rules, and Queries
3 basic constructs in Prolog A collection of facts and rules is called a knowledge base (or a
database). Prolog programming is all about writing knowledge bases. Prolog programs work by asking questions or querying about
the information stored in the knowledge base. It makes sense for some applications such as Computational
Linguistic and AI.
65
Prolog Basics Fact, Rules, and Queries
3 basic constructs in Prolog A collection of facts and rules is called a knowledge base (or a dat
abase). Prolog programming is all about writing knowledge bases. Prolog programs work by asking questions or querying about the
information stored in the knowledge base. It makes sense for some applications such as Computational
Linguistic and AI. The best way of learning Prolog is by learning Knowledge Base (KB)
66
Prolog Basics KB1: facts
Each statement in Prolog ends with ‘.’ Prior to infer or conclude anything, we have to consult KB first. To ‘consult’ KB is to load it to Prolog workspace.
woman(mia).woman(jody).woman(yolanda).playsAirGuitar(jody).
67
Prolog Basics KB2: rules
There are no fact about “mia plays air guitar” in the KB But there is a rule about “mia plays air guitar” Prolog use Modus Ponens to infer that “mia plays air guitar” is
true head :- bodyhead :- body read as if the bodybody is true, then the headhead is true
rules
listensToMusic(mia).happy(yolanda).playsAirGuitar(mia) :- listensToMusic(mia).playsAirGuitar(yolanda) :- listensToMusic(yolanda).listensToMusic(yolanda):- happy(yolanda).
68
Prolog Basics KB3: more rules
5 clauses: 3 rules and 2 facts 3 predicates: happy, listenToMusic,
and playsAirGuitar In a KB, there is no fact saying
“vincent listens to music” Hence, the query playsAirGuitar(vincent) is false head :- body1, body2 (body1 body2) head
happy(vincent).listensToMusic(butch).playsAirGuitar(vincent):- listensToMusic(vincent), happy(vincent).playsAirGuitar(butch):- happy(butch).playsAirGuitar(butch):- listensToMusic(butch).
69
Prolog Basics KB4: variables
A variable is in CAPITAL Uses a variable to ask
whose property it is. ‘;’ means ‘or’ ‘,’ means ‘and’ loves(marcellus,X), woman(X)
should read “whom is a woman Marcellus love?” ( “whom does Marcellus love and is woman?”)
woman(mia).woman(jody).woman(yolanda). loves(vincent,mia).loves(marcellus,mia).loves(pumpkin,honey_bunny).loves(honey_bunny,pumpkin).
70
Prolog Basics KB5: more variables
Now, we use variable in rules. Predicate jealous(X,Y) means that an
individual X will be jealous of an individual Y if there is some individual Z that X loves, and Y loves that same individual Z too.
This is more general than previous KB. jealous(marcellus,W) asks: can you find
an individual W such that Marcellus is jealous of W? Furthermore, suppose we wanted Prolog to tell us
about all the jealous people: what query would we pose?
loves(vincent,mia).loves(marcellus,mia).loves(pumpkin,honey_bunny).loves(honey_bunny,pumpkin). jealous(X,Y) :- loves(X,Z),loves(Y,Z).
71
Prolog Basics Terms
All facts, rules, and queries are made of terms. There are 4 kinds of term in Prolog: atomsatoms, numbersnumbers, varivari
ablesables, and complex termscomplex terms (or structuresstructures). AtomsAtoms and numbersnumbers are lumped together under the
heading constantsconstants, and constantsconstants and variablesvariables together make up the simple termssimple terms of Prolog.
Please consultconsult websites, books or other resources for further details.
73
Python Basics Properties
dynamically, implicitly typed (i.e., do not have to declare the type )
case sensitive object-oriented Use interpreter
To get help in Python, type help([object])help([object]) at the prompt.
Type dir(dir([object][object])) to ask Python how to use that method
75
Python Basics Syntax
No mandatory statement terminate character Block is specified as indentation Statement that expects indentation ends in colon (:) Comments start with pound (#) and are single line Use multi-line strings for multi-line comments Values are assigned with the equal sign (=) “==” is used for equality testing “+=” and “-=” are used for increment and decrement,
respectively
77
Python Basics Data types
Lists: one-dimensional array Tuples: immutable one-dimensional array Dictionaries: associative array (hash table) Index starts from 0, negative number counts from the
end toward the beginning of list, -1 is the last item Variables can point to function Can access array ranges using colon (:)
79
Python Basics String
Use either single quote or double quote marks (‘ or “) to create string
Multi-line strings are enclosed with triple double or single quote
To fill a string with values, use %s and a tuple
80
Python Basics
Flow Control Statements They are whilewhile, ifif, and forfor. No selectselect. Use forfor to enumerate through a list Use range([number])range([number]) to obtain a list of
numbers
82
Python Basics Function
Declares with defdef keyword Optional arguments are set in the function declaration after mandatory
arguments by being assigned a default value. For named arguments, the name of the argument is assigned a value. Functions can return a tuple. Lambda functions are ad hoc functions that are comprised of a single state
ment. Parameters are passed by reference, but immutable types (tuples, ints, str
ings, etc) cannot be changed. This is because only the memory location of the item is passed, and binding another object to a variable discards the old one, so immutable types are replaced.
84
Python Basics
Importing Use import [libname]import [libname] keyword to
import external library Or use from [libname] use [funcname]from [libname] use [funcname]
to import specified function from external library
85
Python Basics Miscellaneous
Conditions can be chained. 1 < a < 3 checks that a is both less than 3 and more than 1.
You can use deldel to delete variables or items in arrays. List comprehensions provide a powerful way to create and manipulate lists
. They consist of an expression followed by a for clause followed by zero or more if or for clauses.
Global variables are declared outside of functions and can be read without any special declarations, but if you want to write to them you must declare them at the beginning of the function with the "global" keyword, otherwise Python will bind that object to a new local variable (be careful of that, it's a small catch that can get you if you don't know it).
86
Python Basics
See these links for further tutorialshttp://docs.python.org/tutorial/http://www.sthurlow.com/python/