On midterm #1:
What to expect: Here are the sorts of questions I tend to ask:
- Define terms in your own words.
- Sketch the execution of an algorithm. For example, show the queue for
A* on a particular problem.
- Give pseudocode describing an algorithm.
- Give the setup for a problem. for example, what would the state,
successor function, etc look like for the map-coloring problem?
- Compare different algorithms and their strengths/weaknesses.
- Explain why an algorithm has the characteristics it does. for
example, what's the point of the temperature parameter in simulated
annealing? (note: I'm not asking 'what's the formulae involved with
simulated annealing?' I'm asking for a high-level description of how
the algorithm works.)
Here are the sorts of questions I will not ask.
- Write syntactically correct Python code. (I may ask you to write
pseudoode, but I'll be interested in program correctness, not whether
every bracket and colon is in the right place)
- Multiple choice questions.
- "Trick" questions - the point of this exam is to test your
knowledge of the topics we've covered. I may ask you hard questions,
but I won't ask things that are deliberately misleading or deceptive.
Potential exam topics:
- Agents:
- Parts of an agent: Percepts, sensors, actuators, actions.
(be able to define these concepts and identify them in a
particular application)
- Definitions
- Autonomy
- The "intentional stance"
- Rationality
- types of agent programs
- table-driven agents
- reflex agents
- Model-based agents
- goal-driven agents
- utility-based agents
- learning agents
- Environments:
- Observability
- Deterministic/stochastic
- Episodic vs sequential
- Static vs Dynamic
- Discrete vs continuous
- Single-agent vs multi-agent
- (you should be able to explain these terms and use them to
characterize a particular environment.)
Uninformed Search:
- Basic algorithms: BFS, Uniform cost search, DFS, DLS, IDS
- Be able to:
- describe the algorithm in pseudocode
- trace their execution.
- Characterize their time and space requirements.
- Describe whether they are complete and/or optimal (and
define those terms)
- Problem setup: be able to take a description of a problem and set it
up accordingly. Describe what the state will be, what the initial
state is, what the goal test is, and how the successor function works
with enough precision that someone could write code to implement this.
- Definitions:
- Complete
- Optimal
- State space
- Path cost, step cost
- Weak method
Heuristic Search:
- Basic Algorithms: Best-first search, Greedy Search, A*.
Be able to:
- describe the algorithm in pseudocode
- trace their execution.
- Describe whether they are complete and/or optimal (and
define those terms)
- Definitions:
- Admissibility
- Monotonicity
- Optimally efficient
- Be able to:
- propose heuristics for a problem
- show that a heuristic is or is not admissible.
Constraint Satisfaction
- Be able to:
- Explain how a CSP can be modeled using a graph.
- Talk about different backtracking approaches (chronological vs
intelligent) and their strengths and weaknesses.
- Characterize what makes something appropriate for solving as a
CSP. (i.e. there are a number of 'satisfactory' solutions)
- Definitions
- Consistent solution
- Most constraining variable
- Least constraining value
Local Search:
- Basic Algorithms: Hill-climbing, Random restart hill-climbing,
simulated annealing, genetic algorithms
- Be able to:
- describe the algorithm in pseudocode
- trace their execution.
- Describe whether they are complete and/or optimal (and
define those terms)
- Explain the difference between local search and BFS/DFS/A*-style methods.
- Explain their strengths and weaknesses
- Definitions:
- Local optima
- Search landscape
- GA terms:
- crossover
- fitness
- mutation
- schema
- Selection (tournament and roulette)
- Elitism