Transcript Document

Discrete Structure
รศ.ดร. สาธิต อินทจักร์
Goals of a Discrete Mathematics
• Mathematical Reasoning: to read, comprehend,
and construct math. arg.
– Logic, methods of proof
• Combinatorial Analysis:
– Counting problems
• Discrete Structures: to represent discrete objects
and relationships between objects
– Sets, permutations, relations, graphs, trees, and finitestate machines
• Algorithmic Thinking:
– Both English and pseudocode
Introduction to Discrete mathematics
• Discrete Mathematics (DM) เป็ นทฤษฎีพ้นื ฐานทาง
เทคโนโลยีที่มีประโยชน์อย่างมากในปัจจุบนั
• ในการศึกษาเพื่อให้เข้าใจคอมพิวเตอร์ท้ งั ส่ วนของฮาร์ดแวร์และ
ซอฟต์แวร์ ระบบการสื่ อสาร การประมวลผลสัญญาณ ทฤษฎี
สารสนเทศ ฯลฯ จาเป็ นจะต้องเรี ยนรู ้ DM
• นอกจากนี้ DM ยังเป็ น Prerequisite(PR) ของ
คณิ ตศาสตร์และทฤษฎีในศาสตร์ทางคอมพิวเตอร์ ดังนั้นถ้าต้องการ
ที่จะรู ้ศาสตร์ทางคอมพิวเตอร์อย่างแท้จริ งจึงจาเป็ นจะต้องศึกษา
DM ให้เข้าใจอย่างถ่องแท้
What exactly is DM?
• DM is mathematics that uses only
arithmetic and algebra, and does not involve
calculus.
• DM จะแตกต่างจากแคลคูลสั ที่ DM ใช้อธิบายการเปลี่ยนแปลง
ของกระบวนการอย่างต่อเนื่อง เป็ นแนวคิดพื้นฐานทางวิทยาศาสตร์
และเทคโนโลยีในเชิงการปฏิวตั ิทางด้านอุตสาหกรรม ส่ วนแนวคิด
ของ DM ก็มีแนวคิดพื้นฐานของวิทยาศาสตร์และเทคโนโลยี
เช่นกัน แต่จะมุงไปทางด้านคอมพิวเตอร์
For The Student
• PR ของวิชานี้คือพีชคณิ ตของมัธยมปลาย
• For the students, the best way to study is to try to
do the homework problems before reading the
texts, and to read the texts only when you get
stuck.
• เอกสารประกอบการเรี ยน
– แนวคิดหลักมูลทางคณิ ตศาสตร์(MA 201), คณิ ตศาสตร์ทางด้านวิธีการจัดหมู่
(CO 233) มหาวิทยาลัยรามคาแหง
– Mathematical Structures for Computer Science, Judith
L. Gersting [QA39.2G435m]
– Discrete Mathematics and Its Applications, 5e, Rosen, McGrawHill, 2003,
[QA39.3 R67]
ตรรกะ(Logic)
เมื่อเรี ยนจบเรื่ องตรรกะแล้ว:
• มีความรู้ในการนาสัญลักษณ์ทางตรรกะไปใช้งานใน
ประพจน์และพรี ดิเคตลอจิก
• สามารถหาค่าความจริ งของนิพจน์ในประพจน์ได้
• หาค่าความจริ งในการแปลความหมายของนิพจน์ในพรี ดิเค
ตลอจิกได้
• สามารถพิสูจน์ประพจน์และพรี ดิเคตลอจิกเพื่อกาหนด
Validity ได้
ประพจน์ (Propositions)
• ประโยคที่สามารถกาหนดค่าความจริ ง (Truth Values) ได้
ในตรรกคณิ ตศาสตร์จะเรี ยกประโยคประเภทนี้วา่ “ข้อความ
(statement)” หรื ออาจจะเรี ยกว่า “ประพจน์
(Proposition)”
• ประโยคที่ไม่มีค่าความจริ งจะไม่เป็ นประพจน์ เช่นประโยคคาถาม
ประโยคขอร้อง ประโยคคาสัง่
• ประโยคต่อไปนี้ขอ้ ใดเป็ นประพจน์
– จงตั้งใจเรี ยน
– โลกกลม
– 2+2 = 5
Propositional Logic
• Propositional Logic เป็ นตรรกของข้อความหลายๆ
ข้อความที่เกี่ยวเนื่องกัน (compound statements) โดยจะ
เรี ยกตรรกนี้วา่ Boolean connectives.
Some applications in computer science
• Design of digital electronic circuits.
George Boole
• Expressing conditions in programs. (1815-1864)
• Queries to databases & search engines.
นิยามของประพจน์
นิยาม: ประพจน์ใดๆ (มักจะแทนด้วย p, q, r, …) ก็คือ:
• ข้ อความ (ส่ วนใหญ่ แล้ วจะอยู่ในรู ปของประโยค) ที่มีความหมาย
บางอย่างและความหมายจะต้องมีความชัดเจน
• ประพจน์จะต้องมีค่าความจริ ง (Truth value) โดยค่าความจริ ง
นี้จะมีค่าเป็ นจริง (true: T) หรื อไม่กเ็ ท็จ (false: F)
ค่าความจริ งจะต้องมีค่าเพียงค่าใดค่าหนึ่ ง คือไม่จริ งก็เท็จโดยไม่มีค่าระหว่าง
จริ งกับเท็จ ซึ่ งค่าความจริ งของข้อความ มักจะขึ้นอยูก่ บั สถานะการณ์หรื อ
บริ บท
และเมื่อเราได้ศึกษาทฤษฎีความน่าจะเป็ น จะมีการกาหนดระดับของค่าความ
จริ งที่อยูร่ ะหว่าง T กับ F แต่ ณ ตอนนีใ้ นจาไว้ ว่าค่ าความจริงของ
ประพจน์ มีเพียงจริงกับเท็จเท่ านั้น
ตัวเชื่อมต่ อข้ อความ (Logical Connectives)
• An operator or connective combines
one or more operand expressions into a
larger expression. (E.g., “+” in numeric
exprs.)
– Unary operators take 1 operand (e.g., −3);
– binary operators take 2 operands (eg 3  4).
• Propositional or Boolean operators
operate on propositions (or their truth
values) instead of on numbers.
ตัวดาเนินการบูลนี โดยทัว่ ไป
Formal Name
Nickname
Operand
Symbol
Negation operator
NOT
Unary
¬,~
Conjunction operator
AND
Binary

Disjunction operator
OR
Binary

Exclusive-OR operator
XOR
Binary

Implication operator
IMPLIES
Binary

Biconditional operator
IFF
Binary
↔
ตัวดาเนินการปฏิเสธ (Negation Operator)
The unary negation operator “¬” (NOT)
transforms a prop. into its logical
negation.
E.g. If p = “I have brown hair.” then ¬p
= “I do not have brown hair.”
p p
The truth table for NOT:
T :≡ True; F :≡ False
“:≡” means “is defined as”
T
F
F
T
ข้ อความร่ วม (Conjunctive Statements)
The binary conjunction operator “” (AND)
combines two propositions to form their
logical conjunction.
E.g. If
ND
p=“I will have salad for lunch.” and
q=“I will have steak for dinner.”, then
pq=“I will have salad for lunch and
I will have steak for dinner.”
Remember: “” points up like an “A”, and it means “ND”
ตารางค่ าความจริงของ AND
• Note that: a
conjunction
p1  p2  …  pn
of n propositions
will have 2n rows
in its truth table.
Operand columns
p
F
F
T
T
q
F
T
F
T
pq
F
F
F
T
• Remark. ¬ and  operations together are
sufficient to express any Boolean truth
table!
ตัวเชื่อมการเลือก (Disjunctive Operator)
The binary disjunction operator “” (OR)
combines two propositions to form their
logical disjunction.

p=“My car has a bad engine.”
q=“My car has a bad carburetor.”
pq=“Either my car has a bad engine, or
my car has a bad carburetor.” After the downwardMeaning is like “and/or” in English.
pointing “axe” of “”
splits the wood, you
can take 1 piece OR the
other, or both.
ตารางค่ าความจริงของ OR
Note that pq means
p q pq
that p is true, or q is
F F F
Note
true, or both are true!
F T T difference
So, this operation is
T F T from AND
also called inclusive or, T T T
because it includes the
possibility that both p and q are true.
Remark.“¬” and “” together are also
universal.
ข้ อความมีเงื่อนไข
Use parentheses to group sub-expressions:
“I just saw my old friend, and either he’s
grown or I’ve shrunk.” = f  (g  s)
(f  g)  s would mean something different
f  g  s would be ambiguous
By convention, “¬” takes precedence over
both “” and “”.
¬s  f means (¬s)  f , not ¬ (s  f)
A Simple Exercise
• Let
p=“It rained last night”,
q=“The sprinklers came on last night,”
r=“The lawn was wet this morning.”
• Translate each of the following into English:
• ¬p
= “It didn’t rain last night.”
• r  ¬p
=
• ¬rpq=
“The lawn was wet this morning, and
it didn’t rain last night.”
“Either the lawn wasn’t wet this
morning, or it rained last night, or
the sprinklers came on last night.”
The Exclusive Or Operator
The binary exclusive-or operator “” (XOR)
combines two propositions to form their
logical “exclusive or” (exjunction?).
p = “I will earn an A in this course,”
q = “I will drop this course,”
p  q = “I will either earn an A in this course, or
I will drop it (but not both!)”
ตารางค่ าความจริงของ Exclusive-Or
Note that pq means
that p is true, or q is
true, but not both!
p
F
F
T
T
q pq
F F
T T
F T
T F
This operation is
Note
called exclusive or,
difference
from OR.
because it excludes the
possibility that both p and q are true.
Remark. “¬” and “” together are not universal.
ความคลุมเครือในตรรกะของภาษาพูด
Note that English “or” can be ambiguous regarding
the “both” case!
p q p "or"
“Pat is a singer or

F
F
F
Pat is a writer.” F T
T
“Pat is a man or

T F
T
Pat is a woman.” -
T T
Need context to disambiguate the meaning!
For this class, assume “or” means inclusive.
?
q
ข้ อความมีเงื่อนไข
antecedent
consequent
The implication p  q states that p implies q.
i.e., If p is true, then q is true; but if p is not
true, then q could be either true or false.
E.g., let p = “You study hard.”
q = “You will get a good grade.”
p  q = “If you study hard, then you will
get a good grade.” (else, it could go either way)
ตารางค่ าความจริงของข้ อความมีเงื่อนไข
p  q is false only when
p is true but q is not true.
p  q does not say
that p causes q!
p  q does not require
that p or q are ever true!
p
F
F
T
T
E.g. “(1=0)  ox can fly” is TRUE!
q pq
F
T
T T The
F
F only
False
T T case!
ตัวอย่ างของข้ อความมีเงื่อนไข
• “If this lecture ever ends, then the sun will rise
tomorrow.” True or False?
• “If Tuesday is a day of the week, then I am a
penguin.” True or False?
• “If 1+1=6, then I will get A.”
True or False?
• “If the moon is made of green cheese, then I am
richer than Bill Gates.” True or False?
ข้ อความมีเงื่อนไขสองทาง
(Bicondition)
The biconditional p  q states that p is true if
and only if (IFF) q is true.
p = “x+3=7”
q = “x=4”
p  q = “x+3=7 ก็ต่อเมื่อ x=4”
ตารางค่ าความจริงของ Biconditional
p  q means that p and q
have the same truth value.
Remark. This truth table is the
exact opposite of ’s!
Thus, p  q means ¬(p  q)
p
F
F
T
T
q pq
F T
T F
F F
T T
p  q does not imply
that p and q are true, or that either of them
causes the other, or that they have a
common cause.
สรุปตัวดาเนินการแบบบูล
We have seen
1 unary operator and
5 binary operators.
Their truth tables are below.
p
F
F
T
T
q
F
T
F
T
p pq pq pq pq pq
T F
F
F
T
T
T F
T
T
T
F
F F
T
T
F
F
F T
T
F
T
T
ตรรกสมมูล(Logical Equivalence)
• Compound proposition p is logically
equivalent to compound proposition q,
written pq, IFF the compound
proposition pq is a tautology.
• Compound propositions p and q are
logically equivalent to each other IFF p and
q contain the same truth values as each
other in all rows of their truth tables.
การพิสูจน์ ความสมมูลกันโดยใช้ ตารางค่ าความจริง
Ex. Prove that pq  (p  q).
p
F
F
T
T
q
F
T
F
T
pq
F
T
T
T
p
T
T
F
F
q p  q (p  q)
T
T
F
F
F
T
T
F
T
F
F
T
สั จนิรันดร์ (Tautology) ความขัดแย้ ง(Contradiction)
A tautology is a compound proposition that
is true no matter what the truth values of
its atomic propositions are!
Ex. p  p [What is its truth table?]
A contradiction is a compound proposition
that is false no matter what! Ex. p  p
[Truth table?]
Other compound props. are contingencies.
กฎของความสมมูล
These are similar to the arithmetic
identities you may have learned in
algebra, but for propositional
equivalences instead.
They provide a pattern or template that
can be used to match all or part of a
much more complicated proposition
and to find an equivalence for it.
ตัวอย่ างของกฎความสมมูล
•
•
•
•
•
•
Identity:
pT  p pF  p
Domination:
pT  T pF  F
Idempotent:
pp  p
pp  p
Double negation:
p  p
Commutative: pq  qp pq  qp
Associative:
(pq)r  p(qr)
(pq)r  p(qr)
กฎอืน่ ๆ ของความสมมูล
p(qr)  (pq)(pr)
p(qr)  (pq)(pr)
• De Morgan’s:
(pq)  p  q
(pq)  p  q
Augustus
De Morgan
• Trivial tautology/contradiction:
(1806-1871)
p  p  T
p  p  F
• Distributive:
การนิยามตัวดาเนินการต่ างๆ ด้ วยความสมมูล
Using equivalences, we can define operators
in terms of other operators.
Exclusive or: pq  (pq)(pq)
pq  (pq)(qp)
Implies:
pq  p  q
Biconditional: pq  (pq)  (qp)
pq  (pq)
ตัวอย่ างของความสมมูล
Check using a symbolic derivation whether
(p  q)  (p  r)  p  q  r.
(p  q)  (p  r)
 (p  q)  (p  r) [Expand definition of ]
 (p  q)  ((p  r)  (p  r)) [Expand defn. of ]
(p  q)  ((p  r)  (p  r)) [DeMorgan’s Law]
 (p  q)  ((p  r)  (p  r))
 (q  p)  ((p  r)  (p  r)) [ commutes]
cont.
 q  (p  ((p  r)  (p  r))) [ associative]
 q  (((p  (p  r))  (p  (p  r))) [distrib.  over ]
 q  (((p  p)  r)  (p  (p  r))) [assoc.]
 q  ((T  r)  (p  (p  r))) [trivail taut.]
 q  (T  (p  (p  r))) [domination]
 q  (p  (p  r)) [identity]
 q  (p  (p  r))
 q  (p  (p  r)) [DeMorgan’s]
 q  ((p  p)  r) [Assoc.]
 q  (p  r) [Idempotent]
 (q  p)  r [Assoc.]
 p  q  r [Commut.] Q.E.D.
Remark. Q.E.D. (quod erat demonstrandum)
ทบทวนตรรกประพจน์
Atomic propositions: p, q, r, …
Boolean operators:      
Compound propositions: s : (p  q)  r
Equivalences: pq  (p  q)
Proving equivalences using:
Truth tables.
Symbolic derivations. p  q  r …
Predicate Logic
• Predicate logic is an extension of
propositional logic that permits concisely
reasoning about whole classes of entities.
• Propositional logic (recall) treats simple
propositions (sentences) as atomic entities.
• In contrast, predicate logic distinguishes the
subject of a sentence from its predicate.
– Remember these English grammar terms?
Applications of Predicate Logic
• It is the formal notation for writing perfectly
clear, concise, and unambiguous
mathematical definitions, axioms, and
theorems (more on these in module 2) for
any branch of mathematics.
• Predicate logic with function symbols, the “=” operator,
and a few proof-building rules is sufficient for defining
any conceivable mathematical system, and for proving
anything that can be proved within that system!
Other Applications
• Predicate logic is the foundation of the
field of mathematical logic, which
culminated in Gödel’s incompleteness
theorem, which revealed the ultimate
limits of mathematical thought:
Kurt Gödel
1906-1978
– Given any finitely describable, consistent
proof procedure, there will always remain some
true statements that will never be proven
by that procedure.
• i.e., we can’t discover all mathematical
truths, unless we sometimes resort to
making guesses.
Practical Applications
of Predicate Logic
• It is the basis for clearly expressed formal
specifications for any complex system.
• It is basis for automatic theorem proverbs and
many other Artificial Intelligence systems.
– E.g. automatic program verification
systems.
• Predicate-logic like statements are supported
by some of the more sophisticated database
query engines and container class libraries
– these are types of programming tools.
Subjects and Predicates
• In the sentence “The dog is sleeping”:
– The phrase “the dog” denotes the subject the object or entity that the sentence is
about.
– The phrase “is sleeping” denotes the
predicate- a property that is true of the
subject.
• In predicate logic, a predicate is modeled as a
function P(·) from objects to propositions.
– P(x) = “x is sleeping” (where x is any
object).
More About Predicates
• Convention. Lowercase variables x, y, z... denote
objects/entities; uppercase variables P, Q, R…
denote propositional functions (predicates).
• Remark. Keep in mind that the result of applying a
predicate P to an object x is the proposition P(x).
But the predicate P itself (e.g. P=“is sleeping”) is
not a proposition (not a complete sentence).
– E.g. if P(x) = “x is a prime number”,
P(3) is the proposition “3 is a prime number.”
Propositional Functions
• Predicate logic generalizes the grammatical
notion of a predicate to also include
propositional functions of any number of
arguments, each of which may take any
grammatical role that a noun can take.
– E.g. let P(x,y,z) = “x gave y the grade z”, then:
if
x=“Mike”, y=“Mary”, z=“A”, then P(x,y,z) =
“Mike gave Mary the grade A.”
Universes of Discourse (U.D.s)
• The power of distinguishing objects from
predicates is that it lets you state things
about many objects at once.
E.g., let P(x)=“x+1>x”. We can then say,
“For any number x, P(x) is true” instead of
(0+1>0)  (1+1>1)  (2+1>2)  ...
• The collection of values that a variable x
can take is called x’s universe of discourse.
Quantifier Expressions
• Quantifiers provide a notation that allows
us to quantify (count) how many objects in
the univ. of disc. satisfy a given predicate.
• “” is the FORLL or universal quantifier.
x P(x) means for all x in the u.d., P holds.
• “” is the XISTS or existential quantifier.
x P(x) means there exists an x in the u.d.
(that is, 1 or more) such that P(x) is true.
The Universal Quantifier 
Example:
Let the u.d. of x be parking spaces at the
university.
Let P(x) be the predicate “x is full.”
Then the universal quantification of P(x),
x P(x), is the proposition:
– “All parking spaces at UF are full.”
– i.e., “Every parking space at UF is full.”
– i.e., “For each parking space at UF, that space is full.”
The Existential Quantifier 
Example:
Let the u.d. of x be parking spaces at the
university.
Let P(x) be the predicate “x is full.”
Then the existential quantification of P(x),
x P(x), is the proposition:
– “Some parking space at UF is full.”
– “There is a parking space at UF that is full.”
– “At least one parking space at UF is full.”
Free and Bound Variables
• An expression like P(x) is said to have a
free variable x (meaning, x is undefined).
• A quantifier (either  or ) operates on an
expression having one or more free
variables, and binds one or more of those
variables, to produce an expression having
one or more bound variables.
Example of Binding
P(x,y) has 2 free variables, x and y.
x P(x,y) has 1 free variable, and one bound
variable. [Which is which?]
“P(x), where x=3” is another way to bind x.
An expression with zero free variables is a
bona-fide (actual) proposition.
An expression with one or more free variables
is still only a predicate: e.g. let Q(y) = x
P(x,y)
Nesting of Quantifiers
Example: Let the u.d. of x & y be people.
Let L(x,y)=“x likes y” (a predicate w. 2 f.v.’s)
Then y L(x,y) = “There is someone whom x
likes.” (A predicate w. 1 free variable, x)
Then x (y L(x,y)) =
“Everyone has someone whom they like.”
(A __________ with ___ free variables.)
Review: Predicate Logic
• Objects x, y, z, …
• Predicates P, Q, R, … are functions
mapping objects x to propositions P(x).
• Multi-argument predicates P(x, y).
• Quantifiers: [x P(x)] :≡ “For all x’s, P(x).”
[x P(x)] :≡ “There is an x such that P(x).”
• Universes of discourse, bound & free vars.
Quantifier Exercise
กาหนดให้ R(x,y)=“x รัก y,” ให้เขียนประพจน์เปิ ดต่อไปนี้เป็ น
ประโยค:
• x(y R(x,y))=
• y(x R(x,y))=
• x(y R(x,y))=
• y(x R(x,y))=
• x(y R(x,y))=
ทุกๆคนรักบางคน
มีบางคนที่ถูกทุกๆคนรัก
มีบางคนรักทุกๆคน
ทุกคนถูกรักโดยบางคน
แต่ละคน(ทุกๆคน)รักทุกคน
Quantifier Exercise(Cont.)