Lecture 11 CSE 331 Sep 20, 2013
HW 2 due today I will not accept HWs after 1:15pm Place Q1, Q2 and Q3 in separate piles I will not accept HWs after 1:15pm
Other HW related stuff HW 3 has been posted online: see piazza Solutions to HW 2 at the END of the lecture Graded HW 1 available from Monday onwards
My New Monday OH 3:00-3:50pm in Davis 319
Gale-Shapley Algorithm At most n2 iterations Intially all men and women are free While there exists a free woman who can propose Let w be such a woman and m be the best man she has not proposed to w proposes to m O(1) time implementation If m is free (m,w) get engaged Else (m,w’) are engaged If m prefers w’ to w w remains free Else (m,w) get engaged and w’ is free Output the engaged pairs as the final output
Gale-Shapley Algorithm Linked list of free women Intially all men and women are free Array Next[w] While there exists a free woman who can propose Let w be such a woman and m be the best man she has not proposed to w proposes to m Array Current[m] If m is free (m,w) get engaged Else (m,w’) are engaged Today If m prefers w’ to w w remains free ManPref[m,j] WomanPref[w,j] Else (m,w) get engaged and w’ is free Output the engaged pairs as the final output
Yes, Firefly again but with numbers 1 1 2 2 3 3
The data structures so far 1 2 3 Man-Pref 1 1 1 2 3 2 2 1 2 3 3 3 1 3 Linked list of free women 2 1 2 3 first 1 Next Current
Implementation Steps (1) How to represent the input? (2) How do we find a free woman w? Init: O(n), Query/Update: O(1) (3) How would w pick her best unproposed man m? Init: O(n), Query/Update: O(1) (4) How do we know who m is engaged to? Init: O(n), Query/Update: O(1) (5) How do we decide if m prefers w’ to w?
Overall running time n2 X ( O(1) + O(1) + O(1)+ Query/Update(5) ) O(n) + O(n) + O(n)+ Init(5) n2 X ( O(1) + O(1) + O(1)+ Query/Update(5) )
HW 2 due today I will not accept HWs after 1:15pm Place Q1, Q2 and Q3 in separate piles I will not accept HWs after 1:15pm
Questions?
Puzzle Prove that any algorithm for the SMP takes Ω(n2) time
Main Steps in Algorithm Design Problem Statement Problem Definition n! Algorithm “Implementation” Analysis Correctness Analysis
Reading Assignments Sec 1.1 and Chap. 2 in [KT]
A generic tool to abstract out problems Up Next…. Problem Statement A generic tool to abstract out problems Problem Definition Algorithm “Implementation” Analysis
Relationship: Mention in other’s program Graphs Representation of relationships between pairs of entities/elements Edge Entities: News hosts Relationship: Mention in other’s program Vertex/Node
Graphs are omnipresent Airline Route maps
What does this graph represent? Internet
And this one? Math articles on Wikipedia
And this one?
Rest of today’s agenda Basic Graph definitions
Paths , , Sequence of vertices connected by edges Connected Path length 3 ,
Connectivity u and w are connected iff there is a path between them A graph is connected iff all pairs of vertices are connected
Connected Graphs Every pair of vertices has a path between them
Cycles Sequence of k vertices connected by edges, first k-1 are distinct ,
Formally define everything http://imgs.xkcd.com/comics/geeks_and_nerds.png
Tree Connected undirected graph with no cycles
Rooted Tree
How many rooted trees can an n vertex tree have? A rooted tree How many rooted trees can an n vertex tree have? AC’s child=SG Pick any vertex as root SG’s parent=AC Let the rest of the tree hang under “gravity”
Rest of Today’s agenda Prove n vertex tree has n-1 edges Algorithms for checking connectivity