Week 12 Tutorial
A3 review session
First, open session on any questions regarding A3.
See if you can answer the following:
- What is the maximum length of a chain of words that could be returned by a solution to A3?
 - What is the document retrieval function supposed to do?
 - How is relevance measured given what the function is doing? Is this reasonable?
 - Could there be issues with the way relevance is measured in the question above?
 - Are there other ways we could improve this function to get better results?
 
Complexity problems
Some practice for the final exam:
- 
    
What is the maximum number of edges you can have in a directed graph with no loops?
 - 
    
What is the complexity of INSERTING a new node into a graph that is stored as an adjacency matrix?
 - 
    
What is the complexity of REMOVING a node from a graph stored in an adjacency list?
 - Which of the following will have a lower complexity on AVERAGE?
    
- counting the edges in a graph stored as an adjacency matrix
 - counting the edges in a graph stored as an adjacency list
 
 - 
    
In the question above, does it matter whether the graph is directed or undirected?
 - What does it mean to say ‘on average’ for graphs? What are we averaging over?
 
Additional Exercises
- 
    
What is the complexity for BFS and DFS? (Look at W11 for review).
 - 
    
What is the complexity of finding two nodes with the largest distance in the graph? (Look at W11 for definition of distance)
 - 
    
BFS always gives you the shortest path, while DFS may give you a much longer one. Do you think DFS is even necessary? If so, what are some advantages of DFS over BFS?
 - 
    
Is it possible to perform DFS iteratively, as opposed to recursively? If you think so, how would you do this? (Hint: Look at BFS closely!)