Intelligent Systems: 20132014
Lecturer 

Degrees 
Schedule B2 — Computer Science 
Term 
Hilary Term 2014 (16 lectures) 
Overview
MSc students will be assessed by invigilated exam lasting approximately 3 hours in week 0 of TT.This is an introductory course into the field of artificial intelligence (AI), with particular focus on search as the fundamental technique for solving AI problems.
The problem of navigating a road map with a known layout is a typical example of a problem studied in this course. Problems such as this one can be solved by enumerating all possible sequences of moves until a solution is found. Such a naive idea, however, is rarely applicable in practice because the size of the search space is typically vast. This course will introduce basic AI search techniques, such as depth‐first, breadth‐first, and iterative deepening search, and it will discuss heuristic techniques such as A* search that improve efficiency by pruning the search space.
This course also deals with optimization problems. For example, the optimization version of the n‐queens problem is to arrange n queens on an n x n chessboard while minimizing the number of pairs of queens that are under attack. Such problems can be effectively solved by search techniques introduced in the course such as hill climbing, simulated annealing, and genetic algorithms. Planning is a special kind of optimization problem. A typical planning problem is finding a sequence of actions for delivering ten packages to ten different destinations. This course will introduce a standardized language called STRIPS for modelling planning problems, and it will discuss how to solve planning problems using search techniques such as forward chaining, backward chaining, and partial order planning. This course will also show how to apply these techniques to the problem of planning a robot’s path through an environment while taking into account the geometry of the environment and the robot.
Constraint satisfaction problems (CSPs) constitute another important class of AI problems, a typical example of which is the map colouring problem: colour each country on a map with red, green, or blue, but in a way so that no two adjacent countries have the same colour. This course will introduce search techniques such as backtracking and constraint propagation that can efficiently solve many CSP problems in practice.
Developing programs for playing board games such as chess has played a central role in AI since the very inception of the field. Game playing can be conceived as yet another kind of search problem, in which the objective is to find a winning strategy. This course will introduce the basic game‐playing techniques such as minimax search and alpha‐beta pruning.
Dealing with unknown or incompletely specified environments is a form of intelligent behaviour that is critical in many intelligent systems. For example, consider a robot in maze that has no prior knowledge about the maze layout. To solve the problem, the robot needs to represent and update its knowledge about the maze as it moves through the maze. This course will show how to solve such problems via search in the belief space – the space of all possible beliefs the robot may have about the maze layout.
Learning outcomes
By attending the course the students should acquire a firm grasp of various search techniques and should be able to select an appropriate search technique and apply it in practice. Since search is such a fundamental technique in computer science, the material taught in the course is relevant in contexts other than artificial intelligence.Prerequisites
This course assumes that the students are familiar with the basics of propositional logic. Undergraduate students are expected to acquire the relevant expertise in the Logic and Proof course. MSc students are expected to have completed an equivalent course during their undergraduate education.
Students are expected to use Java in practicals. This course does not cover any aspects of Java programming: the students are expected to have learned Java elsewhere. No knowledge of Java or any other programming language is required in order to pass the exam: all programming (in Java or any other language) is limited to practicals.
Synopsis
1  Introduction to Artificial Intelligence: definition of AI; Turing test; brief history of AI. 
2  3  Problem solving and search: problem formulation; search space; states vs. nodes; tree search: breadthfirst, uniform cost, depthfirst, depthlimited, iterative deepening; graph search. 
4  Informed search: greedy search; A* search; heuristic function; admissibility and consistency; deriving heuristics via problem relaxation. 
5  Local search: hillclimbing; simulated annealing; genetic algorithms; local search in continuous spaces. 
6  7  Planning: the STRIPS language; forward planning; backward planning; planning heuristics; partialorder planning; planning using propositional logic; planning vs. scheduling. 
8  9  Dealing with geometry of physical agents: basic issues in robotics; degrees of freedom; Dijkstra’s shortest path algorithm; configuration spaces; Voronoi diagrams; skeletonization; potential field planning. 
10  Constraint satisfaction problems (CSPs): basic definitions; finite vs. infinite vs. continuous domains; constraint graphs; relationship with propositional satisfiability, conjunctive queries, linear integer programming, and Diophantine equations; NPcompleteness of CSP; extension to quantified constraint satisfaction (QCSP). 
11  12  Solving CSPs: constraint satisfaction as a search problem; backtracking search; variable and value ordering heuristic; degree heuristic; leastconstraining value heuristic; forward checking; constraint propagation; dependencydirected backtracking; independent subproblems; treelike CSPs; acyclic CSPs; CSPs of bounded treewidth. 
13  14  Playing games: game tree; utility function; optimal strategies; minimax algorithm; alphabeta pruning; games with an element of chance. 
15  16  Beyond classical search: searching with nondeterministic actions; searching with partial observations; online search agents; dealing with unknown environments. 
Syllabus
Problem solving via search. Uninformed, informed, and local search. Planning. Dealing with geometry of physical agents. Constraint satisfaction. Adversarial search. Searching with nondeterministic actions and partial observations.