View
216
Download
2
Embed Size (px)
Citation preview
Outline
• Introduction & Logistics
• Textbook: Russell and Norvig chapters 3, 4 and 5.
• Notion of a Problem Space
• Search Techniques
• Constraint Satisfaction Techniques
• Game Search; Video: Kasparov vs. Deep Blue
Logistics:• Q. Yang [email protected]• TA: Janet Hsiao [email protected]• Readings
– Required: Textbook by Russell & Norvig and Witten and Eibe
– Recommended: various papers
• Grading: – Problem Set 10%
– Exams 60%
– Final Project (Group) 30%
Defining Intelligence?
4
Artificial Intelligence• Planning (To get a good job I should get an MS/CSE…)
• Diagnosis (My car won’t start, but I know it has gas…)
• Design (Space Shuttle, Boeing 777, Pentium)
• Communicate (Language + Social reasoning)
• Theorem Proving (Fermat’s Last Theorem)
• Perceive/Act (Vision, Manipulation)
• Game Playing (Kasparov vs. Deep Blue)
• Create Art (MacBeth, Mona Lisa, Taj Mahal)• Learn to ...
AI as Science• Origin & Laws of the Physical Universe
• Origin & Laws of Biological Life
• Nature of Intelligent Thought
AI as Engineering• Softbots & Intelligent User Interfaces
• Mobile Robots … Immobots
• Machine Learning Algorithms; Data Mining
• Medical Expert Systems...
AI Theory
• For example, Machine Learning– Given tree structured instance space with n attributes,
you need• 4 log(2/) + 16n log(13/ examples
AI Practice
• Game Playing • Pattern Classification: Character Recognition, …• Machine Learning: Data Mining, Web Agents• Perception – Vision, Speech
Course Topics by Week• Search (1 and 2-person) & Constraint Satisfaction• KR&R 1: Logic representation & Theorem Proving• KR&R 2: Planning and Diagnosis• Machine Learning 1: Supervised Learning• Machine Learning 2: Unsupervised Learning• Natural Language Processing• Applications• Final Project Demo
• Sept 11, 2000
Search (one solution)• Brute force
– DFS, BFS, iterative deepening, iterative broadening
• Heuristic– Best first, beam, hill climbing, simulated annealing, limited discrepancy
• Optimizing– Branch & bound, A*, IDA*, SMA*
• Adversary Search– Minimax, alpha-beta, conspiracy search
• Constraint Satisfaction– As search, preprocessing, backjumping, forward checking, dynamic variable ordering
Search (Internet and Databases)
• Look for all solutions• Must be efficient• Often uses indexing• Also uses heuristics (e.g., Google )• More than search itself
– NLP can be important– Scale up to thousands of users– Caching is often used
Outline• Defining a Search Space• Types of Search
– Blind– Heuristic– Optimization– Adversary Search– Constraint Satisfaction
• Analysis– Completeness– Time & Space Complexity
11
Specifying a search problem?
• What are states (nodes in graph)?
• What are the operators (arcs between nodes)?
• Initial state?
• Goal test?
• [Cost?, Heuristics?, Constraints?]
E.g., Eight Puzzle
1 2 3
7 8
4 5 67 2 3
8 5
4 1 6
12
Towers of Hanoi
• What are states (nodes in graph)?
• What are the operators (arcs between nodes)?
• Initial state?
• Goal test?
a b c
Water Jug
You are given two jugs, a 4-gallon one and a 3-gallon one. Neither has nay measure markers on it. There is a pump that can be used to fill the jugs with water.
How can you get exactly 2 gallons of water into the 4-gallon jug?
14
Planning
• What is Search Space?– What are states?– What are arcs?
• What is Initial State?
• What is Goal?
• Path Cost?
• Heuristic?
ac
b
cba
PickUp(Block)PutDown(Block)
15
Missionaries and Cannibals
m m m
c c c
• .• What are states (nodes in graph)?• What are the operators (arcs between nodes)?• Initial state?• Goal test?• 2 Representations
16
Search Strategies
• Blind Search– Depth first search– Breadth first search– Iterative deepening search– Iterative broadening search
• Heuristic Search• Optimizing Search• Constraint Satisfaction
General-Search(problem, Queuing-FN) returns a solution, or failure
Page 73 of Russell and Norvig
• Nodes <- Make-Queue(Make-Node(Initial-State(problem)));
• Loop do– If nodes is empty then return failure;
– Node <- Remove-Front (nodes);
– If Goal-Test(problem) applied to State(node) succeeds then return node;
– Nodes = Queuing-Fn(nodes, Expand(node, Operators(problem)));
• End Loop
Heuristic Search
• A heuristic function is:– Function from a state to a real number
• Low number means state is close to goal• High number means state is far from the goal
– Every node has a function f(node)!
Designing a good heuristic is very important!
(And hard)
More on this in a bit...
Depth First Search
a
b
d e
c
f g h
• Maintain stack of nodes to visit ( f(node)=– Nodes = Queuing-Fn(nodes, Expand(node, Operators(problem)));
• Evaluation– Complete?
– Time Complexity?
– Space Complexity?Not for infinite spaces
O(b^d)
O(d)
Breadth First Search
a
b c
d e f g h
• Maintain queue of nodes to visit ( f(node)=– Nodes = Queuing-Fn(nodes, Expand(node, Operators(problem)));
• Evaluation– Complete?
– Time Complexity?
– Space Complexity?Yes
O(b^d)
O(b^d)
Iterative Deepening Search
• DFS with limit; incrementally grow limit (page79)
a
b c
Iterative Deepening Search
• DFS with limit; incrementally grow limit• Evaluation
– Complete?
– Time Complexity?
– Space Complexity?Yes
O(b^d)
O(d) b
d e
c
f g h
a
A* Search
• Idea– Best first search with admissible heuristic
• ( f(node)=– Plus keep checking until all possibilities look worse
• Evaluation– Finds optimal solution?
– Time Complexity?
– Space Complexity?
Yes
O(b^d)
O(b^d)
Underestimates cost ofany solution which can reached from node
Admissable Heuristics
• f(x) = g(x) + h(x)
• g: cost so far
• h: underestimate of remaining costs
a
b
c
d
e
f12
8
15
10
8
14 20
7 2 3
8 5
4 1 6
For transportation planning?
For eight puzzle?
A* Optimality
• If A* finds a node, then it is a optimal goal node
• Proof by contradiction…
Importance of Heuristics
D IDS A*(h1) A*(h2) 2 10 6 6 4 112 13 12 6 680 20 18 8 6384 39 2510 47127 93 3912 364404 227 7314 3473941 539 11318 3056 36324 39135 1641
• h1 = number of tiles in the wrong place
• h2 = sum of distances of tiles from correct loc
7 2 3
8 5
4 1 6
Constraint Satisfaction
• Chronological Backtracking (BT)
• Backjumping (BJ)
• Conflict-Directed Backjumping (CBJ)
• Forward checking (FC)
• Dynamic variable ordering heuristics
• Preprocessing Strategies
Chinese Constraint Network
Soup
Total Cost< $30
ChickenDish
Vegetable
RiceSeafood
Pork Dish
Appetizer
Must beHot&Sour
No Peanuts
No Peanuts
NotChow Mein
Not BothSpicy
CSPs in the real world
• Scheduling Space Shuttle Repair
• Transportation Planning
• Computer Configuration
• Diagnosis
Recognizing Trihedral Objects
• Trihedral objects: all vertices are intersections of three planes.• Labeling: with +, - and ->• Enumerating all labels:
• Using constraint satisfaction to find correct labels– NP hard in general– CSP gives good solutions
Binary Constraint Network• Set of n variables: x1 … xn
• Value domains for each variable: D1 … Dn
• Set of binary constraints (also known as relations)– Rij Di Dj
– Specifies which values of xi are consistent w/ those of xj
• Partial assignment of values with a tuple of pairs– {...(x,a)…} means variable x gets value a...– Consistent if all constraints satisfied on all vars in tuple– Tuple = full solution if consistent & all vars included
• Tuple {(xi, ai) … (xj, aj)} consistent w/ a set of vars {xm … xn} iff am … an such that this tuple is consistent: {(xi, ai) … (xj, aj), (xm, am) … (xn, an)} }
N Queens• Variables = board columns
• Domain values = rows
• Rij = {(ai, aj) : (ai aj) (|i-j| |ai-aj|)– e.g. R12 = {(1,3), (1,4), (2,4), (3,1), (4,1), (4,2)}
Q
Q
Q
• {(x1, 2), (x2, 4), (x3, 1)} consistent with (x4)• Shorthand: “{2, 4, 1} consistent with x4”
33
CSP as a search problem?
• What are states (nodes in graph)?
• What are the operators (arcs between nodes)?
• Initial state?
• Goal test?
Q
Q
Q
Chronological Backtracking (BT)(e.g., depth first search)
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
1
2
34
5
6
Consistency check performed in the order in which vars were instantiated
If c-check fails, try next value of current varIf no more values, backtrack to most recent var
Preprocessing Strategies
• Even FC-CBJ is O(b^d) time worst case• Sometimes useful to spend polynomial time preprocessing
to achieve local consistency before doing exponential search• Arc consistency
– Consider all pairs of vars
– Can any values be eliminated from a domain ala FC
– Propagate
– O(d^2) time where d= number of vars
Forward Checking (FC)
• Perform Consistency Check Forward
• Whenever assign var a value– Prune inconsistent values from – As-yet unvisited variables– Backtrack if domain of any var ever collapses
Q
Q
Q
Q
Q
FC only visits consistent nodes but not all such nodes skips (2, 5, 3, 4) which CBJ visitsBut FC can’t detect that (2, 5, 3) inconsistent with {x5, x6 }
Dynamic variable ordering
• In the N-queens examples we assumed– First x1 then x2 then ...
• But this order not required– Any order ok with respect to completeness– A good order leads to huge speedup
• A good heuristic:– Choose variable w/ minimum remaining values
• This is easy if one is doing FC
Hill Climbing (p112)
• Current <- Make-Node(Initial-State(problem));
• LoopNext successor of Current with highest f-value
If f(Next) < f(Current), then return Current;
Current Next;
End loop
Simulated Annealing
• Current Make-Node(Initial-State(problem));• For t =1 to infinity, do
– T schedule(t);
– If T=0 then return Current;
– Next random-selected successor of Current;
– E f(Next) - f(Current);
– If E>0 then Current Next
– Else• Current Next only with probability TEe /
Note: T decreases with time t; E is the energy functionNote: more random moves at beginning, fewer later…
Game Tree Search (java applet)
• Two person games: min (adversary) and max (me!)• Max wants to win by expanding all possible moves of min, and looks for
the ‘best’ branch • There is a utility function e(n) attached to each terminal node • Values of utility function propagates upward
– Max: chooses the max value of all children– Min: chooses the min value of all children
• Tic-Tac-Toe– MAX = “X”, MIN = “O”– e (leaf node) = Total-Open-Paths(MAX) – Total-Open-Paths(MIN)– e (leaf node) = +/- infinity for winning nodes– e (MAX node) = MAX {e(succ nodes)}; e(MIN node) = MIN {}
Search TreeStart node
-2
1
X X X X XO
O O OO
6-5=1 5-5=0 ?
MIN
X
XX
?
MAX
1 0 -1
-1
Tricks
• Alpha value: for MAX nodes, is a current lower bound on its evaluation function (it never goes down for MAX)
• Beta value: for MIN nodes, is a current upper bound on its evaluation function (it never goes up for MIN)
• Rule 1: – if MAX is parent, MIN is a child and– (alpha(MAX) > = beta(MIN),– then terminate search on MIN
• Rule 2: – if MIN is parent, MAX is a child, and – (alpha(MAX) > = beta(MIN),– Then terminate search on MAX
Watch Video