Title: Representing Relations
1Representing Relations
- Rosen, section 7.3
- CS/APMA 202
- Aaron Bloomfield
2In this slide set
- Matrix review
- Two ways to represent relations
- Via matrices
- Via directed graphs
3Matrix review
- This is from Rosen, page 201 and 202
- We will only be dealing with zero-one matrices
- Each element in the matrix is either a 0 or a 1
- These matrices will be used for Boolean
operations - 1 is true, 0 is false
4Matrix transposition
- Given a matrix M, the transposition of M, denoted
Mt, is the matrix obtained by switching the
columns and rows of M - In a square matrix, the main diagonal stays
unchanged
5Matrix join
- A join of two matrices performs a Boolean OR on
each relative entry of the matrices - Matrices must be the same size
- Denoted by the or symbol ?
6Matrix meet
- A meet of two matrices performs a Boolean AND on
each relative entry of the matrices - Matrices must be the same size
- Denoted by the or symbol ?
7Matrix Boolean product
- A Boolean product of two matrices is similar to
matrix multiplication - Instead of the sum of the products, its the
conjunction (and) of the disjunctions (ors) - Denoted by the or symbol ?
8Relations using matrices
- List the elements of sets A and B in a particular
order - Order doesnt matter, but well generally use
ascending order - Create a matrix
9Relations using matrices
- Consider the relation of who is enrolled in which
class - Let A Alice, Bob, Claire, Dan
- Let B CS101, CS201, CS202
- R (a,b) person a is enrolled in course b
CS101 CS201 CS202
Alice X
Bob X X
Claire
Dan X X
10Relations using matrices
- What is it good for?
- It is how computers view relations
- A 2-dimensional array
- Very easy to view relationship properties
- We will generally consider relations on a single
set - In other words, the domain and co-domain are the
same set - And the matrix is square
11Reflexivity
- Consider a reflexive relation
- One which every element is related to itself
- Let A 1, 2, 3, 4, 5
If the center (main) diagonal is all 1s, a
relation is reflexive
12Irreflexivity
- Consider a reflexive relation lt
- One which every element is not related to itself
- Let A 1, 2, 3, 4, 5
If the center (main) diagonal is all 0s, a
relation is irreflexive
13Symmetry
- Consider an symmetric relation R
- One which if a is related to b then b is related
to a for all (a,b) - Let A 1, 2, 3, 4, 5
- If, for every value, it is the equal to the value
in its transposed position, then the relation is
symmetric
14Asymmetry
- Consider an asymmetric relation lt
- One which if a is related to b then b is not
related to a for all (a,b) - Let A 1, 2, 3, 4, 5
- If, for every value and the value in its
transposed position, if they are not both 1, then
the relation is asymmetric - An asymmetric relation must also be irreflexive
- Thus, the main diagonal must be all 0s
15Antisymmetry
- Consider an antisymmetric relation
- One which if a is related to b then b is not
related to a unless ab for all (a,b) - Let A 1, 2, 3, 4, 5
- If, for every value and the value in its
transposed position, if they are not both 1, then
the relation is antisymmetric - The center diagonal can have both 1s and 0s
16Transitivity
- Consider an transitive relation
- One which if a is related to b and b is related
to c then a is related to c for all (a,b), (b,c)
and (a,c) - Let A 1, 2, 3, 4, 5
- If, for every spot (a,b) and (b,c) that each have
a 1, there is a 1 at (a,c), then the relation is
transitive - Matrices dont show this property easily
172004 IOCCC winners
- 2004 winners
- 2004 anonymous Rendering of a stroked font
- 2004 arachnid Curses maze displayer/navigator
with only line-of-sight visibility - 2004 burley A Poker game
- 2004 gavare A ray tracer
- 2004 gavin Mini-OS
- 2004 hibachi A CGI capable HTTP server
- 2004 hoyle Curses based polynomial graphing with
auto-scale - 2004 jdalbec Conway's look'n'say sequence
split into elements - 2004 kopczynski OCR of 8, 9, 10 and 11
- 2004 newbern Renders arbitary bitmapped fonts
- 2004 omoikane A CRC inserter
- 2004 schnitzi Editor animation
- 2004 sds Space/tab/linefeed steganography
- 2004 vik1 X Windows car racing game
- 2004 vik2 Calculates prime numbers using
only CPP - At http//www1.us.ioccc.org/years.html2004
18End of lecture on 21 April 2005
19Combining relations via Boolean operators
- Example 4 from Rosen, section 7.3
- Let
- Join
- Meet
20Combining relations via relation composition
- Example 4 from Rosen, section 7.3
- Let
- But why is this the case?
d e f
g h i
a b c
d e f
g h i
a b c
21Representing relations using directed graphs
- A directed graph consists of
- A set V of vertices (or nodes)
- A set E of edges (or arcs)
- If (a, b) is in the relation, then there is an
arrow from a to b - Will generally use relations on a single set
- Consider our relation R (a,b) a divides b
- Old way
22Reflexivity
- Consider a reflexive relation
- One which every element is related to itself
- Let A 1, 2, 3, 4, 5
If every node has a loop, a relation is reflexive
23Irreflexivity
- Consider a reflexive relation lt
- One which every element is not related to itself
- Let A 1, 2, 3, 4, 5
If every node does not have a loop, a relation is
irreflexive
24Symmetry
- Consider an symmetric relation R
- One which if a is related to b then b is related
to a for all (a,b) - Let A 1, 2, 3, 4, 5
- If, for every edge, there is an edge in the other
direction, then the relation is symmetric - Loops are allowed, and do not need edges in the
other direction
Called anti- parallel pairs
Note that this relation is neither reflexive nor
irreflexive!
25Asymmetry
- Consider an asymmetric relation lt
- One which if a is related to b then b is not
related to a for all (a,b) - Let A 1, 2, 3, 4, 5
- A digraph is asymmetric if
- If, for every edge, there is not an edge in the
other direction, then the relation is asymmetric - Loops are not allowed in an asymmetric digraph
(recall it must be irreflexive)
26Antisymmetry
- Consider an antisymmetric relation
- One which if a is related to b then b is not
related to a unless ab for all (a,b) - Let A 1, 2, 3, 4, 5
- If, for every edge, there is not an edge in the
other direction, then the relation is
antisymmetric - Loops are allowed in the digraph
27Transitivity
- Consider an transitive relation
- One which if a is related to b and b is related
to c then a is related to c for all (a,b), (b,c)
and (a,c) - Let A 1, 2, 3, 4, 5
- A digraph is transitive if, for there is a edge
from a to c when there is a edge from a to b and
from b to c
28Applications of digraphs MapQuest
- Not reflexive
- Is irreflexive
- Not symmetric
- Not asymmetric
- Not antisymmetric
- Not transitive
- Not reflexive
- Is irreflexive
- Is symmetric
- Not asymmetric
- Not antisymmetric
- Not transitive
29Rosen, questions 31 32, section 7.3
Which of the graphs are reflexive, irreflexive,
symmetric, asymmetric, antisymmetric, or
transitive
23 24 25 26 27 28
Reflexive Y Y Y
Irreflexive Y Y
Symmetric Y Y
Asymmetric Y
Anti-symmetric Y Y
Transitive Y
30Rosen, section 7.1 (sic) question 45 (a)
- How many symmetric relations are there on a set
with n elements? - Solution guide explanation is pretty poorly
worded - So instead well use matrices
31Rosen, section 7.1 (sic) question 45 (a)
- Consider the matrix representing symmetric
relation R on a set with n elements - The center diagonal can have any values
- Once the upper triangle is determined, the
lower triangle must be the transposed version
of the upper one - How many ways are there to fill in the center
diagonal and the upper triangle? - There are n2 elements in the matrix
- There are n elements in the center diagonal
- Thus, there are 2n ways to fill in 0s and 1s in
the diagonal - Thus, there are (n2-n)/2 elements in each
triangle - Thus, there are ways to fill
in 0s and 1s in the triangle - Answer there are
possible symmetric relations on a set
with n elements
32Quick survey
- I felt I understood the material in this slide
set - Very well
- With some review, Ill be good
- Not really
- Not at all
33Quick survey
- The pace of the lecture for this slide set was
- Fast
- About right
- A little slow
- Too slow
34Quick survey
- How interesting was the material in this slide
set? Be honest! - Wow! That was SOOOOOO cool!
- Somewhat interesting
- Rather borting
- Zzzzzzzzzzz
35Biggest software errors
- Ariane 5 rocket explosion (1996)
- Due to loss of precision converting 64-bit double
to 16-bit int - Pentium division error (1994)
- Due to incomplete look-up table (like an array)
- Patriot-Scud missile error (1991)
- Rounding error on the time
- The missile did not intercept an incoming Scud
missile, leaving 28 dead and 98 wounded - Mars Climate Orbiter (1999)
- Onboard used metric units ground computer used
English units - ATT long distance (1990)
- Wrong break statement in C code
- Therac-25, X-ray (1975-1987)
- Badly designed software led to radiation overdose
in chemotherapy patients - NE US power blackout (2003)
- Flaw in GE software contributed to it
- References http//www5.in.tum.de/huckle/bugse.ht
ml, http//en.wikipedia.org/wiki/Computer_bug,
http//www.cs.tau.ac.il/nachumd/verify/horror.htm
l