Understand how to formulate and define problems as search problems.
Describe and implement various search algorithms.
Understand how search algorithms run on a given problem.
Analyze the time and space complexity of a variety of search algorithms.
Give example search applications where one search algorithm would outperform others, e.g. a situation where DFS would outperform BFS.
Verify or create admissible/consistent heuristics for a given search problem
Describe the trade-offs between computationally cheap, inaccurate heuristics and computationally expensive heuristics
Understand both the algorithmic differences and the distinct use cases for tree search vs graph search.
Define a game, zero-sum game, standard form, and a game search tree
Trace and implement Minimax, Expectimax, and Expectiminimax given a start state, player list, and actions.
Describe the bounded lookahead algorithm
Define and create evaluation functions
Analyze a minimax tree using alpha-beta pruning to determine pruned nodes
Describe definition of CSP problems and its connection with general search problems
Formulate a real-world problem as a CSP
Describe and implement backtracking algorithm
Define arc consistency
Describe and implement forward checking and AC-3
Explain the differences between MRV and LCV heuristics
Identify variables and values chosen by MRV and LCV heuristics
Describe and implement the following local search algorithms:
Iterative improvement algorithm with min-conflict heuristic for CSPs
Hill Climbing (Greedy Local Search)
Random Walk
Simulated Annealing
Identify optimality of local search algorithms
Compare different local search algorithms as well as contrast with classical search algorithms
Select appropriate local search algorithms for real-world problems
Formulate a problem as a Linear Program (LP)
Convert a LP into a required form, e.g., inequality form
Plot the graphical representation of a linear optimization problem with two variables and find the optimal solution
Understand the relationship between optimal solution of an LP and the intersections of constraints
Describe and implement a LP solver based on vertex enumeration
Describe the high-level idea of Simplex algorithm
Formulate a problem as a Integer (Linear) Program (IP or ILP)
Write down the Linear Program (LP) relaxation of an IP
Plot the graphical representation of an IP and find the optimal solution
Understand the relationship between optimal solution of an IP and the optimal solution of the relaxed LP
Describe and implement branch-and-bound algorithm
Please find practice midterms and solutions attached below. We have included some recordings of TAs walking through solutions to some select problems. If you have any questions, please feel free to post on Piazza or ask during Office Hours.
Practice Midterm 1A: blank/sol
Practice Midterm 1B (ignore logic question): blank/sol