week 11 wednesday n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CS322 PowerPoint Presentation
Download Presentation
CS322

Loading in 2 Seconds...

play fullscreen
1 / 38

CS322 - PowerPoint PPT Presentation


  • 49 Views
  • Uploaded on

Week 11 - Wednesday. CS322. Last time. What did we talk about last time? Graphs Euler paths and tours. Questions?. Logical warmup. One hundred ants are walking along a meter long stick Each ant is traveling either to the left or the right with a constant speed of 1 meter per minute

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CS322' - xandra-everett


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
last time
Last time
  • What did we talk about last time?
  • Graphs
  • Euler paths and tours
logical warmup
Logical warmup
  • One hundred ants are walking along a meter long stick
  • Each ant is traveling either to the left or the right with a constant speed of 1 meter per minute
  • When two ants meet, they bounce off each other and reverse direction
  • When an ant reaches an end of the stick, it falls off
  • Will all the ants fall off?
  • What is the longest amount of time that you would need to wait to guarantee that all ants have fallen off?
hamiltonian circuits
Hamiltonian circuits
  • An Euler circuit has to visit every edge of a graph exactly once
  • A Hamiltonian circuit must visit every vertex of a graph exactly once (except for the first and the last)
  • If a graph G has a Hamiltonian circuit, then G has a subgraphH with the following properties:
    • H contains every vertex of G
    • H is connected
    • H has the same number of edges as vertices
    • Every vertex of H has degree 2
  • In some cases, you can use these properties to show that a graph does not have a Hamiltonian circuit
  • In general, showing that a graph has or does not have a Hamiltonian circuit is NP-complete (widely believed to take exponential time)
  • Does the following graph have a Hamiltonian circuit?

a

c

b

e

d

matrices
Matrices
  • As you presumably know, a matrix is a rectangular array of elements
  • An m x n matrix has m rows and n columns
graph representations
Graph representations
  • There are many, many different ways to represent a graph
  • If you get tired of drawing pictures or listing ordered pairs, a matrix is not a bad way
  • To represent a graph as an adjacency matrix, make an n x n matrix, where n is the number of vertices
  • Let the nonnegative integer at aij give the number of edges from vertex i to vertex j
  • A simple graph will always have either 1 or 0 for every location
graph to matrix examples
Graph to matrix examples
  • What is the adjacency matrix for the following graph?
  • What about for this one?

v1

v3

v2

v1

v3

v2

matrix to graph example
Matrix to graph example
  • Draw a graph corresponding to this matrix
another graph to matrix
Another graph to matrix
  • What's the adjacency matrix of this graph?
  • Note that the matrix is symmetric
  • In a symmetric matrix, aij = aji for all 1 ≤ i ≤ n and 1 ≤ j ≤ n
  • All undirected graphs have a symmetric matrix representation

v1

v2

v4

v3

matrix multiplications
Matrix multiplications
  • To multiply matrices A and B, it must be the case that A is an m x k matrix and that B is a k x n matrix
  • Then, the ith row, jth column of the result is the dot product of the ith row of A with the jth column of B
  • In other words, we could compute element cij in the result matrix C as follows:
matrix multiplication practice
Matrix multiplication practice
  • Multiply matrices A and B
a few points about matrix multiplication
A few points about matrix multiplication
  • Matrix multiplication is associative
    • That is, A(BC) = (AB)C
  • Matrix multiplication is not commutative
    • AB is not always equal to BA (for one thing, BA might not even be legal if AB is)
  • There is an n x n identity matrix I such that, for any m x n matrix A, AI = A
    • I is all zeroes, except for the diagonal (where row = column) which is all ones
  • We can raise square matrices to powers using the following recursive definition
    • A0 = I, where I is the n x n identity matrix
    • Ak = AAk-1, for all integers k ≥ 1
finding powers of a matrix
Finding powers of a matrix
  • Is A symmetric?
  • Compute A0
  • Compute A1
  • Compute A2
  • Compute A3
matrix powers for graphs
Matrix powers for graphs
  • We can find the number of walks of length k that connect two vertices in a graph by raising the adjacency matrix of the graph to the kth power
  • Raising a matrix to the zeroth power means you can only get from a vertex to itself (identity matrix)
  • Raising a matrix to the first power means that the number of paths of length one from one vertex to another is exactly the number of edges between them
  • The result holds for all k, but we aren't going to prove it
isomorphism invariants
Isomorphism invariants
  • A property is called an isomorphism invariant if its truth or falsehood does not change when considering a different (but isomorphic) graph
  • 10 common isomorphism invariants:
    • Has n vertices
    • Has m edges
    • Has a vertex of degree k
    • Has m vertices of degree k
    • Has a circuit of length k
    • Has a simple circuit of length k
    • Has m simple circuits of length k
    • Is connected
    • Has an Euler circuit
    • Has a Hamiltonian circuit
using invariants to disprove isomorphism
Using invariants to disprove isomorphism
  • If any of the invariants have different values for two different graphs, those graphs are not isomorphic
  • Use the 10 invariants given to show that the following pair of graphs is not isomorphic
trees1
Trees
  • A tree is a graph that is circuit-free and connected
  • Examples:

A graph made up of disconnected

trees is called a forest

applications of trees
Applications of trees
  • Trees have almost unlimited applications
  • You should all be familiar with the concept of a decision tree from programming

> 10

Math 120

Score on Part II

> 10

Math 110

 10

Score on Part I

= 8, 9, 10

Score on Part II

> 6

Math 110

< 8

Math 100

 6

Math 100

parse trees
Parse trees
  • A grammar for a formal language (such as we will discuss next week or the week after) is made up of rules that allow non-terminals to be turned into other non-terminals or terminals
  • For example:
    • <sentence>  <noun phrase><verb phrase>
    • <noun phrase>  <article><noun> | <article><adjective><noun>
    • <verb phrase>  <verb><noun phrase>
    • <article>  a | an | the
    • <adjective>  funky
    • <noun>  DJ | beat
    • <verb>  plays | spins
  • Make a parse tree corresponding to the sentence, "The DJ plays a funky beat"
describing trees
Describing trees
  • Any tree with more than one vertex has at least one vertex of degree 1
  • If a vertex in a tree has degree 1 it is called a terminal vertex (or leaf)
  • All vertices of degree greater than 1 in a tree are called internal vertices (or branch vertices)
a property of trees
A property of trees
  • For any positive integer n, a tree with n vertices must have n – 1 edges
  • Prove this by mathematical induction
  • Hint: Any tree with 2 or more nodes has a vertex of degree 1. What happens when you remove that vertex?
rooted trees
Rooted trees
  • In a rooted tree, one vertex is distinguished and called the root
  • The level of a vertex is the number of edges along the unique path between it and the root
  • The height of a rooted tree is the maximum level of any vertex of the tree
  • The children of any vertex v in a rooted tree are all those nodes that are adjacent to v and one level further away from the root than v
  • Two distinct vertices that are children of the same parent are called siblings
  • If w is a child of v, then v is the parent of w
  • If v is on the unique path from w to the root, then v is an ancestor of w and w is a descendant of v
rooted tree example
Rooted tree example
  • Consider the following tree, rooted at 0
  • What is the level of 5?
  • What is the level of 0?
  • What is the height of this tree?
  • What are the children of 3?
  • What is the parent of 2?
  • What are the siblings of 8?
  • What are the descendants of 3?

0

3

4

1

2

5

6

7

9

8

binary trees
Binary trees
  • A binary tree is a rooted tree in which every parent has at most two children
  • Each child is designated either the left child or the right child
  • In a full binary tree, each parent has exactly two children
  • Given a parent v in a binary tree, the left subtree of v is the binary tree whose root is the left child of v
  • Ditto for right subtree
binary tree applications
Binary tree applications
  • As we all know from data structures, a binary tree can be used to make a data structure that is efficient for insertions, deletions, and searches
  • But, it doesn't stop there!
  • We can represent binary arithmetic with a binary tree
  • Make a binary tree for the expression ((a – b)∙c) + (d/e)
    • The root of each subtree is an operator
    • Each subtree is either a single operand or another expression
full binary tree theorem 1
Full Binary Tree Theorem 1
  • If k is a positive integer and T is a full binary tree with k internal vertices, then T has a total 2k + 1 vertices and has k + 1 terminal vertices
  • Prove it!
  • Hint: Induction isn't needed. We just need to relate the number of non-terminal nodes to the number of terminal nodes
full binary tree theorem 2
Full Binary Tree Theorem 2
  • If T is a full binary tree with height h, then it has 2h+1 – 1 vertices
  • Prove it using induction!
generalizing that result
Generalizing that result
  • If T is a binary tree with t terminal vertices and height h, then t 2h
  • Prove it using strong induction on the height of the tree
  • Hint: Consider cases where the root of the tree has 1 child and 2 children separately
next time
Next time…
  • Spanning trees
  • Graphing functions
reminders
Reminders
  • Keep reading Chapter 10
  • Start Chapter 11
  • Start work on Assignment 9
    • Due next Friday