Artificial Intelligence
Download
Report
Transcript Artificial Intelligence
Artificial Intelligence
Search: 1
Ian Gent
[email protected]
Artificial Intelligence
Search: 1
Part I :
Part II:
Part III:
What is Search?
Presenting search abstractly
Basic search algorithms
What is AI?
Very hard to define Artificial Intelligence
not attempt at building machine to pass Turing Test
Perhaps, exploiting power of machines to do tasks
normally considered intelligence?
Practical day to day answer is:
AI is what we don’t know how to do yet
Once we know how to do something, it’s not AI
e.g. optical character recognition, speech recognition
Many AI problems involve combinatorial search
3
Example Search Problem: SAT
We need to define problems and solutions
Propositional Satisfiability (SAT)
really a logical problem -- I’ll present as a letters game
Problem is a list of words
contains upper and lower case letters (order unimportant)
e.g. ABC, ABc, AbC, Abc, aBC, abC, abc
Solution is choice of upper/lower case letter
one choice per letter
each word to contain at least one of our choices
e.g. AbC is unique solution to above problem.
4
Why is SAT a search problem?
There is no efficient algorithm known for SAT
all complete algorithms are exponential time
3-SAT is NP-Complete
3-SAT = each word contains exactly 3 letters
NP-Complete
we can recognise solutions in polynomial time
easy to check letter choice satisfies each word
all other NP problems can be solved by translation to SAT
Many AI problems fall into NP-Complete class
5
Example: Travelling Salesperson
Problem: graph with an cost for each edge
2
e.g.
4
4
3
2
1
2
4
5
Solution: tour visiting all nodes returning to base
meeting some cost limit (or reaching minimum cost)
e.g. minimum cost is 21 above
TSP is NP-Complete
easy to check that tour costs no more than limit
6
(finding optimal cost in technically different complexity class)
Example (Not): Sorting
Problem, a list of numbers
e.g. 5 6 3 2 4 8
Solution, list in ascending order
e.g. 2 3 4 5 6 8
In NP (easy to check that result in ascending order)
Not NP-complete
cannot solve SAT via sorting
can be solved in O(n log n) time
We know how to do it efficiently, so it’s not AI
7
Final Example: Games
Problem: a position in a Chess/Go/… game
Solution: a strategy to guarantee winning game
Harder than NP problems
it is not easy to check that a strategy wins
can solve SAT via games
Technically, games usually PSPACE-complete
All NP-complete problems in PSPACE
Games are valid AI application
AI usually attacks NP-complete or harder search
problems
8
Presenting Search Abstractly
Helps to understand the abstract nature of search
search states, search spaces, search trees…
know what particular search algorithms are trying to do
There are two kinds of search algorithm
Complete
guaranteed to find solution or prove there is none
Incomplete
may not find a solution even when it exists
often more efficient (or there would be no point)
e.g. Genetic Algorithms
For now concerned with complete algorithms
9
Search States
Search states summarises the state of search
A solution tells us everything we need to know
e.g. in SAT, whether each letter is UPPER or lower case
in TSP, route taken round nodes of graph
This is a (special) example of a search state
it contains complete information
it solves the problem
In general a search state may not do either of those
it may not specify everything about a possible solution
it may not solve the problem or extend to a solution
10
Search States
Search states summarise the state of search
E.g. in SAT
a search state might be represented by aB
E.g. in TSP
a search state might specify some of the order of visits
E.g. in Chess
a search state might be represented by the board position
(quiz for chessplayers: …and what else?)
11
Generalising Search
With search states we can generalise search
not just finding a solution to a problem
Generally, find a solution which extends search state
e.g. find solution to ABC, ABc, AbC, Abc, aBC, abC, abc
which extends aB
there is no such solution though whole problem solvable
Original search problem is to extend null state
Search in AI by structured exploration of search
states
12
Search Space and Search Trees
Search space is logical space composed of
nodes are search states
links are all legal connections between search states
e.g. in chess, no link between states where W castles
having previously moved K.
always just an abstraction
think of search algorithms trying to navigate this extremely
complex space
13
Search Trees
Search trees do not summarise
all possible searches
instead an abstraction of one
possible search
Root is null state
edges represent one choice
ABC, ABc, AbC, Abc, aBC, abC, abc
state = ()
Choose A
a
(a)
Choose B
A
(A)
Choose C
e.g. to set value of A first
child nodes represent extensions
children give all possible choices
leaf nodes are solutions/failures
Example in SAT
algorithm detects failure early
need not pick same variables
everywhere
B
(a B)
Impossible
b
(a b)
Impossible
C
(AC)
Choose B
B
(ABC)
Impossible
c
Ac
impossible
b
(AbC)
Solution
14
Why are search trees
abstract?
Search trees are very useful concept
but as an abstraction
Search algorithms do not store whole search trees
that would need exponential space
we can discard nodes in search tree already explored
Search algorithms store frontier of search
I.e. nodes in search tree with some unexplored children
Very many search algorithms understandable in
terms of search trees
and specifically how they explore the frontier
15
Some classic search algorithms
Depth-first search
I.e. explore all nodes in subtree of current node before any
other nodes
pick leftmost and deepest element of frontier
Breadth-first search
explore all nodes at one height in tree before any other
nodes
pick shallowest and leftmost element of frontier
Best-first search
pick whichever element of frontier seems most promising
16
More classic search algorithms
Depth-bounded depth first search
like depth first but set limit on depth of search in tree
Iterative Deepening search
use depth-bounded search but iteratively increase limit
17
Next week on Search in AI
Presentation of search algorithms in terms of lists
e.g. depth-first = stack, breadth-first = queue
Heuristics in search
how to pick which variable to set
18