Documente Academic
Documente Profesional
Documente Cultură
Todays Topics
What exactly is AI, anyway? AI = search+knowledge+learning AI application areas Course Outline Administration and grading PROJECT: Free-text Q/A Basic search methods (Most of this lecture)
What socially-inept superhackers do The opposite of natural stupidity Building useful idiot-savant programs Deep Blue (IBMs chess program) Robots with feelings (Spielberg)
computer the study of ill-formed problems "nothing more" than advanced algorithms research cool stuff! Machine learning, data mining, speech, language, vision, web agentsand you can actually get paid a lot for having fun! what other CS folks dont yet know how to do, and we AIers arent always too sure either
Codify human knowledge for specific tasks E.g.: Medical diagnosis, Machine Translation Central in 1970s & 80s just one lecture here How to encode and use knowledge to find answer E.g. HS, MEA, A*, Logic resolution Always at the very core of AI many lectures
Problem-Solving Methods
Learning as the hallmark of intelligencebut it is already practical in multiple applications E.g.: D-trees, rule-induction, reinforcement, NNets Discredited in 1960s Vibrant core 90s & 00s Applications: data & text mining, speech, robotics Most active research area in AI many lectures
AI Application Areas
Rule-Based Expert Systems
Medical Diagnosis: MYCIN, INTERNIST, PUFF CSP Scheduling: ISIS, Airline scheduling Financial: Fraud detection, credit scoring Sales: Customer preferences, inventory Science: NASA galaxy DB, genome analysis
Data Mining
Speech: dictation, HCI Language: Machine Translation ML & NLP: Fact Extraction ML & words: Information Retrieval Machine Vision Mobile Robots & agents Manipulation
Robotics
15-381 AMINISTRIVA Lectures on Web (& Occasional Recitations) Text: Artificial Intelligence: A Modern Approach by Russell
& Norvig, Prentice Hall, Second Edition
TAs:
Andy Yang ayang@andrew Maxim Likhachev likhachev@cs Jing Xiao xiaoj@cs Joao Pedro Suosa jpsousa@cs Eleanor Cambridge eleanorc@cs 4517 NSH x8-4788 Late Policy: 10% lower grade if up to a week late
Course Admin
Forward Search: BFS, DFS, HS, Backward Search: BFS-1, Backchaining, Bi-Directional Search: BFS2, Goal Reduction: Island-S, MEA Transformation: {S} {S} Abstraction: {S} {SA} + MEA ({SA}) Analogy: If Sim(P,P) then Sol(P) Sol(P)
Succ(si) = {sk | oj(si) = sk} Reachable(si) = {U{sk} | Succ *(si)} Succ-1(si) = {sk | oj(sk) = si) Reachable-1(si) = {U{sk} | (Succ-1)*(si)} s-Path(sa0, san) = (sa0, sa1,, san) such that for all sa1 exists oj(sai) = sai+1 o-Path(sa0, san) = (oj0, oj1,, ojn-1) such that for all sa1 exists oj(sai) = sai+1
Solution = o-Path(s0, sG) [or s-Path] Cost(Solution) = 7 cost(oj) often cost(oj) = 1 P is solvable if at least one o-Path(s0, sG) exists Solutions may be constructed forward, backward or any which way State spaces may be finite, infinite, implicit or explicit
Zero-Knowledge Search
Simple Depth-First Search
DFS(Scurr, Sgoal, S-queue) IF Scurr = Sgoal, SUCCESS ELSE Append(Succ(Scurr), S-queue) IF Null(S-queue), FAILURE ELSE DFS(First(S-queue), Sgoal, Trail(S-queue))
SG
DFS (cont.)
Problems with DFS
Deep (possibly infinite) rat holes depth-bounded DFS, D = max depth Loops: Succ(Succ(..Succ(S))) = S Keep s-Path and always check Scurr Non-Optimality: Other paths may be less costly No fix here for DFS Worst-case time complexity (O(bmax(D,d))
DFS (cont.)
When is DFS useful?
Very-high solution density Satisficing vs. optimizing Memory-limited search: O(d) space Solution at Known-depth (then D=d)
Breadth-First Search
1
5 12
10
11
SG
Loops: Succ(Succ(Succ(S)))=S Pseudo-loops: Revisiting old states off-path Keep full visited prefix tree Worst case time complexity O(bd) Worst case space complexity O(bd)
Guarantee shortest path Very sparse solution space (better if some solution is close to SI)
SG
Backward-BFS (cont.)
Problems with Backward-BFS
Bi-Directional Search
Algorithm:
1. 2. 3. 4. 5.
6.
7.
Initialize Fboundary:= {Sinit} Initialize Bboundary:= {Sgoal} Initialize treef:= Sinit Initialize treeb:= Sgoal For every Sf in Fboundary IF Succ(Sf) intersects Bboundary THEN return APPEND(Path(treef), Path-1(treeb)) ELSE Replace Sf by Succ(Sf) & UPDATE (treef) For every Sb in Bboundary IF Succ(Sb) intersects Fboundary THEN return APPEND(Path(treef), Path-1(treeb)) ELSE Replace Sb by Succ-1(Sb) & UPDATE (treeb) Go to 5. Note: wheres the bug?
Island-Driven BFS
Definition: An island is a state known a-priori to be on the solution path between Sinit and Sgoal.
Upper bound complexity: O(k*maxi=0:k[bdki,ki+1]) Complexity if islands are evenly spaced: O((k+1)*bd/(k+1))
Island-Driven Search
1
SI
SIsland
SG