Post on 11-Jun-2020
Artificial Intelligence
Lecture 3 Karim Bouzoubaa
Problem Resolution
Karim Bouzoubaa Artificial Intelligence 2
¢ A problem is most often posed in the form of an informal statement, in the natural language form. Before solving it, it is necessary then, at least for a resolution by the machine, to carry out a first step of specifying the problem
¢ To solve pbs, AI proposes a different approach from the classical
approach proposed by computer science
¢ Classically: the computer manipulates digital information executes statements
¢ pb à alg (statements) à solution Human being machine
analyzes executes (fast and accurate)
Introduction
Karim Bouzoubaa Artificial Intelligence 3
¢ In an AI vision: l The computer manipulates symbolic information (K) l Reasons on K (resolves ; builds the sol)
¢ Pb statement + reasoning possibility à sol
K elts resolution strategy computer solves ¢ Summary:
l No statements: say what (declarative reasoning) and not how l Bug of K
Introduction
Karim Bouzoubaa Artificial Intelligence 4
Space and Memory Problem
¢ Chess game ¢ Formal description of the pb:
l Initial config.: matrix 8 x 8 positions, each position indicates a symbol l Goal: king fails l Legal movements: set of rules à l 10120 rules: space and memory pb
Karim Bouzoubaa Artificial Intelligence 5
Example: cans
Its representation l Possible states (V4, V3) such that
• V4= 0, 1, 2, 3 or 4 • V3 = 0, 1, 2 or 3
l initial state (0,0)
l final state (2,n)
problem Two cans: can4 and can3, of respective capacity of 4 and 3 l i t e r s . N o n e o f t h e m i s graduated. A pump is available to fill the cans. How can you get exactly 2 liters in can4?
4 L 3 L 2 L
Karim Bouzoubaa Artificial Intelligence 6
Example: cans – operators K elements
Condition explanation operator N°
12
11
10
9
8
7
6
5
4
3
2
1
Empty 2 water liters from can4 in can3 (V4,V3)→(0,V3)
Empty 2 water liters from can3 in can4 (V4,V3)→(2,0)
If V4+V3≤3 and V4 > 0 Empty all the water of can3 in can4 (V4,V3)→(0,V4+V3)
If V4+V3≤4 and V3 > 0 Empty all the water of can4 in can3 (V4,V3)→(V4+V3,0)
If V4+V3 ≥ 3 and V4 > 0 Empty water from can3 in can4 till can3 is full (V4,V3)→(V4-(3-V3), 3)
If V4+V3 ≥ 4 and V3 > 0 Empty water from can4 in can3 till can3 is full (V4,V3)→(4,V3-(4-V4) )
If V3 > 0 Empty can3 (V4,V3)→(V4,0)
If V4 > 0 Empty can4 (V4,V3)→(0,V3)
If V3 > 0 Withdraw quantity q from can3 (V4,V3)→(V4,V3-q)
If V4 > 0 Withdraw quantity q from can4 (V4,V3)→(V4-q,V3)
If V3 < 3 Fill can3 (V4,V3)→(V4,3)
If V4 < 4 Fill can4 (V4,V3)→(4,V3)
Karim Bouzoubaa Artificial Intelligence 7
Example: cans – One solution
Final state
Initial state
Remark
(V4,V3)→(2,0)
(V4,V3)→(0,V3)
(V4,V3)→(4,V3-(4-V4) )
(V4,V3)→(V4,3)
(V4,V3)→(V4+V3,0)
(V4,V3)→(V4,3)
Rule
0 2
11 2 0
5 2 4
7 3 3
2 0 3
9 3 0
2 0 0
N° Rule L can3 L can4
K elements are enough à implement a implémenter a resolution strategy
Karim Bouzoubaa Artificial Intelligence 8
Problem resolution
¢ Algorithmic Approach l Execution system of the solution l Deterministic machine with finite states l At every time during execution, the next
statement to execute is known ¢ Production system approach (PS)
l Resolution system of problems l Search space (state space, goals ..) l Search strategy ; space exploration
Karim Bouzoubaa Artificial Intelligence 9
Production system components
¢ A search space l Space of possible states l Representation of every state (couple, plan, matrix, etc.)
¢ A set of production rules state1 → state2 l A rule is a behaviour unit l It allows to transform the state of the space to advance in the
searching process
¢ A control mechanism that selects the rule to trigger among the applicable rules l A rule is applicable if its head unifies with the current state l Many rules may be applicable at a given time l The control mechanism corresponds to the search strategy
Karim Bouzoubaa Artificial Intelligence 10
Example: cans
(0,0)
(4,3) (4,3)
(4,0)
(0,0) (0,0) (1,3) (0,0) (4-q,0)
(0,3)
(0,3-q) (3,0)
1 2
2 3 5 8 12 1 4 6 9
(2,X)
12
11
10
9
8
7
6
5
4
3
2
1
(V4,V3)→(0,V3)
(V4,V3)→(2,0)
If V4+V3≤3 et V4 > 0 (V4,V3)→(0,V4+V3)
If V4+V3≤4 et V3 > 0 (V4,V3)→(V4+V3,0)
If V4+V3 ≥ 3 et V4 > 0 (V4,V3)→(V4-(3-V3), 3)
If V4+V3 ≥ 4 et V3 > 0 (V4,V3)→(4,V3-(4-V4) )
If V3 > 0 (V4,V3)→(V4,0)
If V4 > 0 (V4,V3)→(0,V3)
If V3 > 0 (V4,V3)→(V4,V3-q)
If V4 > 0 (V4,V3)→(V4-q,V3)
If V3 < 3 (V4,V3)→(V4,3)
If V4 < 4 (V4,V3)→(4,V3)
Karim Bouzoubaa Artificial Intelligence 11
Prolog Program
¢ A space search l Every state: cans(V4, V3) l Possible states: cans(V4, V3) such that V4= 0, 1, 2, 3 or 4 and V3 = 0, 1, 2 or 3
¢ Initial state : cans(0,0) ¢ Final state : cans(2,n)
¢ A set of production rules state1 à state2 update(_state1, _Mvt, _state2)
update(cans(_V4,_V3), empty(can4), cans(0,_V3)).
update(cans(_V4,_V3), fill(can3), cans(_V4,_C3)) :-
capacity(can3,_C3).
¢ A control mechanism selects a rule to trigger among the appliable rules
Karim Bouzoubaa Artificial Intelligence 12
Control Mechanism
inDepth_resolution(_State, _History, [_Mvt | _Mvts]) :-
apply_operator(_State,_Mvt),
update(_State, _Mvt, _State1),
legal_state(_State1),
not(member(_State1,_History)),
inDepth_resolution(_State1, [_State1|_History], _Mvts).
Karim Bouzoubaa Artificial Intelligence 13
apply_operator(cans(_V4,_V3), fill(can4)) :-
less(_V4, 4, true). //_V4 < 4.
apply_operator(cans(_V4,_V3), fill(can3)) :-
less(_V3,3, true). //_V3 < 3.
apply_operator(cans(_V4,_V3), empty(can4)) :- greater(_V4,0,true). //_V4 > 0.
apply_operator(cans(_V4,_V3), empty(can3)) :- greater(_V3,0,true). //_V3 > 0.
apply_operator(cans(_V4,_V3), transfill(can3,can4)) :-
greater(_V3, 0, true), //_V3 > 0,
_V5 is _V4 + _V3,
greater_equal(_V5, 4, true). //_V4 + _V3 >= 4.
apply_operator(cans(_V4,_V3), transfill(can4,can3)) :-
greater(_V4, 0, true), //_V4 > 0,
_V5 is _V4 + _V3,
greater_equal(_V5, 3, true). //_V4 + _V3 >= 3.
apply_operator(cans(_V4,_V3), transfill_all(can3,can4)) :-
greater(_V3, 0, true), //_V3 > 0,
_V5 is _V4 + _V3,
less_equal(_V5, 4, true). //_V4 + _V3 <= 4.
apply_operator(cans(_V4,_V3), transfill_all(can4,can3)) :-
greater(_V4, 0, true), //_V4 > 0,
_V5 is _V4 + _V3,
less_equal(_V5, 3, true). //_V4 + _V3 <= 3.
12
11
10
9
8
7
6
5
4
3
2
1
(V4,V3)→(0,V3)
(V4,V3)→(2,0)
Si V4+V3≤3 et V4 > 0 (V4,V3)→(0,V4+V3)
Si V4+V3≤4 et V3 > 0 (V4,V3)→(V4+V3,0)
Si V4+V3 ≥ 3 et V4 > 0 (V4,V3)→(V4-(3-V3), 3)
Si V4+V3 ≥ 4 et V3 > 0 (V4,V3)→(4,V3-(4-V4) )
Si V3 > 0 (V4,V3)→(V4,0)
Si V4 > 0 (V4,V3)→(0,V3)
Si V3 > 0 (V4,V3)→(V4,V3-q)
Si V4 > 0 (V4,V3)→(V4-q,V3)
Si V3 < 3 (V4,V3)→(V4,3)
Si V4 < 4 (V4,V3)→(4,V3)
Production rules
Karim Bouzoubaa Artificial Intelligence 14
12
11
10
9
8
7
6
5
4
3
2
1
(V4,V3)→(0,V3)
(V4,V3)→(2,0)
Si V4+V3≤3 et V4 > 0 (V4,V3)→(0,V4+V3)
Si V4+V3≤4 et V3 > 0 (V4,V3)→(V4+V3,0)
Si V4+V3 ≥ 3 et V4 > 0 (V4,V3)→(V4-(3-V3), 3)
Si V4+V3 ≥ 4 et V3 > 0 (V4,V3)→(4,V3-(4-V4) )
Si V3 > 0 (V4,V3)→(V4,0)
Si V4 > 0 (V4,V3)→(0,V3)
Si V3 > 0 (V4,V3)→(V4,V3-q)
Si V4 > 0 (V4,V3)→(V4-q,V3)
Si V3 < 3 (V4,V3)→(V4,3)
Si V4 < 4 (V4,V3)→(4,V3)
Production rules
update(cans(_V4,_V3), empty(can4), cans(0,_V3)). update(cans(_V4,_V3), empty(can3), cans(_V4,0)).
update(cans(_V4,_V3), fill(can4), cans(_C4,_V3)) :-
capacity(can4,_C4). update(cans(_V4,_V3), fill(can3),
cans(_V4,_C3)) :- capacity(can3,_C3).
update(cans(_V4,_V3), transfill_all(can3,can4), cans(_W4,_W3)) :- capacity(can4,_C4),
_Liquid_quantity is _V4 + _V3,
_Extra_Liquid is _Liquid_quantity - _C4, adjust(_Liquid_Quantity, _Extra_Liquid, _W4, _W3).
update(cans(_V4,_V3), transfill(can3,can4), cans(_W4,_W3)) :- capacity(can4, _C4),
_Liquid_quantity is _V4 + _V3,
_Extra_Liquid is _Liquid_quantity - _C4,
adjust(_Liquid_Quantity, _Extra_Liquid, _W4, _W3).
update(cans(_V4,_V3), transfill(can4,can3), cans(_W4,_W3)) :- capacity(can3,_C3),
_Liquid_quantity is _V4 + _V3, _Extra_Liquid is _Liquid_quantity - _C3,
adjust(_Liquid_Quantity, _Extra_Liquid, _W3, _W4).
Karim Bouzoubaa Artificial Intelligence 15
Solution
Karim Bouzoubaa Artificial Intelligence 16
3 5 8 1 • 6 2 4 7
3 5 8 • 1 6 2 4 7
3 5 8 1 6 • 2 4 7
3 • 8 1 5 6 2 4 7
3 5 8 1 4 6 2 • 7
• 3 8 1 5 6 2 4 7
3 8 • 1 5 6 2 4 7
1 2 3 8 • 4 7 6 5
Another example: The tease
Karim Bouzoubaa Artificial Intelligence 17
Basic Algorithm
¢ Initialization (current state = initial state)
¢ While (current state ≠ final state) l Step 1: Find a rule R that can be applied to a current state
l Step 2: new current state = application of R to current state
¢ Search strategy (Step 1): l Search a rule among the possible ones l Keep track of sequences of rules already tried
Karim Bouzoubaa Artificial Intelligence 18
Search Strategies
¢ Systematic Non-informed search: Find a path, when exploring space, that leads from the initial state to the final state. l In-depth and breadthwise
¢ Search with information about node l Hill-Climbing, Best-First and Beam
¢ Search with information about nodes and edges
l A*
Karim Bouzoubaa Artificial Intelligence 19
Depth Systematic Search (depth-first strategy)
E1
E2 E3 E4
E5 E6
E7 E8 E9 Memory is managed as a stack
Karim Bouzoubaa Artificial Intelligence 20
Depth search avoiding cycles
¢ Add a mechanism to detect cycles
à A node already present in the path from initial to current node cannot be considered a second time
E1
E2 E3 E4
E5 E6
E7 E8 E9
E5 E10
Karim Bouzoubaa Artificial Intelligence 21
Limited depth search
¢ Pb : The program can be lost in an infinite depth search à infinite state space
¢ Solution : To avoid infinite and non-cyclical branches, we limit the depth of the search: l depthfirst2(Node, Solution, Maxdepth).
à The search can not go beyond the depth limit = Decrease Maxdepth during each recursive call
Karim Bouzoubaa Artificial Intelligence 22
Breadth Systematic Search (breath-first strategy)
E1
E2 E3 E4
E5 E6
E7 E8 E9 Memory is managed as a list
Karim Bouzoubaa Artificial Intelligence 23
¢ Complexity ¢ B : average number of branches en moyenne per node ¢ n : the depth of the tree
Time Space
Depth O(Bn) O(B*n)
Breath O(Bn) O(Bn)
Comparison of the two systematic methods
¢ Problems ¢ Depth-first: pay attention to endless depth ¢ Breath-first: pay attention to space
Karim Bouzoubaa Artificial Intelligence 24
Heuristic method
¢ Systematic search l Explore all paths l Eventually find a solution l Eventually may take a long time
¢ Heuristic search l Use of heuristics: choose paths to explore in priority l Heuristic criterion: associate with each state a certain estimated value (its
approximation of the goal) • Ex: h(n) = the distance between city n and destination city
l For each problem, different estimate l Heuristic search: first explore the successor state representing the lowest
cost l Efficiency of heuristic research depends on how the knowledge of the field is
exploited
Karim Bouzoubaa Artificial Intelligence 25
Hill climbing
¢ Hill climbing Alg 1. Departure state = current state 2. If current state = final state, stop 3. Generate children of current state 4. Evaluate children and select the best one 5. If the best is better than current state, advance
to that child that becomes the current state, go to step 2
6. Else stop
Karim Bouzoubaa Artificial Intelligence 26
Hill Climbing
2 8 3 1 6 4 7 • 5
2 8 3 1 6 4 • 7 5
2 8 3 1 • 4 7 6 5
2 8 3 1 6 4 7 5 •
1 2 3 8 • 4 7 6 5
6
6 3 6
0
Karim Bouzoubaa Artificial Intelligence 27
Hill Climbing Variants
¢ Problem with simple Hill climbing l The algorithm considers only one path
à when the successors are not better than this state, the algorithm stops
¢ Hill climbing v2 l Choose the state produced by the best move as next state l Alg
1. Departure State de départ = current State
2. If current State = final State, stop
3. Generate children of current State
4. Evaluate childre and select the best
5. Move to that child which becomes the current State, goto step 2
6. else, stop
Karim Bouzoubaa Artificial Intelligence 28
Hill Climbing v2 applied on the puzzle
¢ Discussion : l Depth first
l Breadth first
l Hill climbing
l Hill climbing steep
Karim Bouzoubaa Artificial Intelligence 29
Hill Climbing summary: Principle of a local search
¢ A local search just keeps some states visited in memory:
l The simplest case is hill-climbing which just keeps a state (the current state) and iteratively improves it until converging to a solution
¢ In general, there is an objective function to optimize (maximize or minimize)
l In the case of hill-climbing, it determines the successor state
¢ In general, a local search does not guarantee an optimal solution. Its attractiveness is above all its ability to find an acceptable solution quickly.
Karim Bouzoubaa Artificial Intelligence 30
Hill Climbing summary
¢ Hill Climbing Problem l Local Maximum l The alg can end without finding a goal state but finding a
state from which one can not generate a better state
¢ Hill Climbing l Local technique, i.e. considers only the immediate
consequences of a state l No possibility to consider other paths (illustrate on
previous image)
¢ Use of the Best First method
Karim Bouzoubaa Artificial Intelligence 31
Best First
¢ Best First l Combination of depth and breath search l Follow one path at a time but change it as soon as a more
promising path appears
¢ Method l select the most promising node of all generated nodes l Perform the expansion of the node using the applicable rules l Among the successors, if one of them is a solution, stop l Otherwise, all new nodes are added to all the nodes already
generated l Again the most promising node becomes the current node
Karim Bouzoubaa Artificial Intelligence 32
Best First Algorithm
¢ Open contains nodes not yet processed, ie at the boundary of the part of the graph explored so far.
¢ Closed contains the nodes already processed, ie inside the boundary delimited by open.
open = initial state while open != null do
1. Pick the best node on open 2. Create open's successors 3. For each successor do:
a. If it has not been generated before: evaluate it, add it to OPEN, and record its parent
b. Otherwise: change the parent if this new path is better than previous one.
done
Karim Bouzoubaa Artificial Intelligence 33
A
C B D
E F (4) (6)
(3) (5) A
C B D (1) (3) (5)
A
A
C B D
E F G H
I J (2) (1)
(6) (5) (6)
(5) A
C B D
E F G H (4) (6) (5) (6)
(5)
Example Best First
Karim Bouzoubaa Artificial Intelligence 34
Beam search
¢ Beam search l Is an optimization of best-first search l Reduces memory load l In the beam search method, only a certain
number of solutions are kept as candidates
Karim Bouzoubaa Artificial Intelligence 35
Generic definition of f
¢ In practice we do not know the distance to the goal! That's what we're looking for
¢ On the other hand, we know the optimal distance in the explored part between the root and a node already explored
¢ It is convenient to separate f(n) into two parts:
l g(n): the real cost of the optimal path from the root to n in the part already explored
l h(n): estimated cost of the rest of the path from n to the goal. h(n) is called the heuristic function.
Karim Bouzoubaa Artificial Intelligence 36
Generic definition of f
¢ Depending on the weight we want to give to either party, we define f as follows:
f(n) = (1-w).g(n) + w.h(n)
where w is a real number greater than or equal to 0 and less than or equal to 1.
¢ Depending on the values given to w, one obtains classical search algorithms:
l Dijkstra : w = 0 (f(n) = g(n) )
l Best-first search : w = 1 (f(n) = h(n) )
l A* : w = 0.5 (f(n) = g(n) + h(n) ) à Information about nodes and edges
Karim Bouzoubaa Artificial Intelligence 37
Example : A*
v0
v3 v2 v1
v4
v6
v5
9
2
3 2
2 5
0
2 3
1
1 7 2
4 4
4
h(n0)
c(n0,n3)
Distance between cities: v0: departure v6: destination h: distance C: actual distance
1. (v0, 9, void)
Content of closed at the end:
(v4,6), (v3,7), (v2,5), (v1,5), (v0,9)
Exploration:
2. (v1,5,v0) (v2,6,v0), (v3,7,v0) 3. (v2,6,v0) (v3,7,v0), (v5,12,v1) 4. (v3,7,v0),(v4,9,v2),(v5,12,v1) 5. (v2,5,v3),(v4,6,v3),(v5,12,v1) 6. (v4,6,v3),(v5,12,v1) 7. (v6,7,v4), (v5,12,v1) 8. Solution: v0,v3,v4,v6
Karim Bouzoubaa Artificial Intelligence 38
A* Algorithm : Example
¢ Illustrer the example
l f(a) = 1.5 + 4
l f(d) = 2 + 4.5
l …
Karim Bouzoubaa Artificial Intelligence 39
Farmer Problem
Karim Bouzoubaa Artificial Intelligence 40
Farmer Problem
Karim Bouzoubaa Artificial Intelligence 41
Example: Towers of Hanoi
Karim Bouzoubaa Artificial Intelligence 42
Demo about searching methods
file:///Users/karimbouzoubaa/Data/Courses/AI/demos%20for%20AI/demos/search/search.html http://bgrins.github.io/javascript-astar/demo/ https://qiao.github.io/PathFinding.js/visual/ Solution with netbeans (Hipster library)
Hipster : Java Library u Java open source library
v for problem resolu3on
v Hipster-‐core: implemen3ng many search algorithms
v Hipster examples: illustra3ng the exploita3on of Hipster-‐core such as: SimpleEightPuzzle, Directedgraphsearch, MazeShortestPath, EightQueensProblem, etc.
Hipster core Non informed search
Depth First Search
Breadth First Search
Bellman-‐Ford
Djikstra
informed search A* Itera3ve deeping A* Any3me Dynamic A*
Local search Hill-‐Climbing Enforced Hill-‐Climbing
Hipster-core within NetBeans
Production rules private static List<Integer> applyActionToState(Action action, List<Integer> board) { List<Integer> successor = new ArrayList<Integer>(board); switch (action){
// fill can4 case RULE1: successor.set(0, 4); break; … } return successor; }
Production rules Control machanism Step 1: enumerate ac3ons enum Action { RULE1, RULE2, RULE3, RULE4, RULE5, RULE6, RULE7, RULE8, RULE9, RULE10 }
Step 2: instanciate a new problem builder: SearchProblem p = ProblemBuilder.create()
Step 3: configure ini3al state .initialState(Arrays.asList(0,0))
Step 4: declare ac3ons .defineProblemWithExplicitActions()
Step 5: implement the interface Ac3onFunc3on with two types
.useActionFunction(new ActionFunction<Action, List<Integer>>() { public List<Action> actionsFor(List<Integer> state) {
return validMovementsFor(state); } })
Step 6: to generate new states from current one
.useTransitionFunction(new ActionStateTransitionFunction<Action, List<Integer>>() { public List<Integer> apply(Action action, List<Integer> state) {
return applyActionToState(action, state); } })
Production rules Control machanism
Step 7: to find the shortest path .useCostFunction(new CostFunction<Action, List<Integer>, Double>() { public Double evaluate(Transition<Action, List<Integer>> transition) {
return 1d; }
.build();
})
Final step: launch the algorithm to find the final state System.out.println(
Hipster.createDepthFirstSearch(p).search(
Arrays.asList(2,0)));
Production rules Control machanism
Execution
Karim Bouzoubaa Artificial Intelligence 51
Two players games
¢ Approaches for building programs that play two-person games l tic-tac-toe, chess, etc.
¢ Much of the work in this area has been motivated by playing chess l Claude Shannon, the father of information
theory, originated many of the ideas in a 1949 paper
l … l Deep Blue 1997
Karim Bouzoubaa Artificial Intelligence 52
Two players games
¢ Some board posi t ion represents the initial state
¢ We generate the children of this position by making all of the legal moves available to us.
¢ Then, we consider the moves that our opponent can make to generate the descendants of each of these positions, etc.
¢ Note that these trees are enormous and cannot be explicitly represented in their entirety for any complex game.
Karim Bouzoubaa Artificial Intelligence 53
Partial game tree for Tic-Tac-Toe
Karim Bouzoubaa Artificial Intelligence 54
Scoring function
¢ This function assigns a numerical value to a board position
¢ We can think of this value as capturing the likelihood of winning from that position.
¢ Since in these games one person's win is another's person loss, we will use the same scoring function for both players, simply negating the values to represent the opponent's scores.
Karim Bouzoubaa Artificial Intelligence 55
MINiMAX Strategy
¢ Key idea: limited look-ahead + Min-Max algorithm ¢ Example:
l depth of 2 l values at the leaves: "static evaluations“ l What we want: compute a value for each of the nodes above this one in the
tree by "backing up" these static evaluations in the tree.
¢ The player who is building the tree : maximize the score ¢ The opponent is trying to minimize the score à Each layer of the tree can be classified into either a maximizing layer or
a minimizing layer: MIN-MAX algorithm.
Karim Bouzoubaa Artificial Intelligence 56
Example
Karim Bouzoubaa Artificial Intelligence 57
Example
Karim Bouzoubaa Artificial Intelligence 58
MINIMAX code
Karim Bouzoubaa Artificial Intelligence 59
A simple Tron bot The University of Waterloo Computer Science Club runs an interesting AI challenge sponsored by Google. The aim of the challenge is to write a computer program that plays Tron.
Karim Bouzoubaa Artificial Intelligence 60
Importance of look-ahead
¢ The more look-ahead is (the deeper in the tree) the better our evaluation of a position will be
¢ Deep Blue l 256 specialized chess processors l 32 node supercomputer l 30 billion moves per minute l Search depth [13, 30]
Karim Bouzoubaa Artificial Intelligence 61
ALPHA-BETA strategy
¢ With MINIMAX, comprehensive exploration of the space, ... According to the needed depth
¢ The technique is called alpha-beta: It is an optimization of Min-Max search
¢ Some values are not worth exploring given the values we already know
Karim Bouzoubaa Artificial Intelligence 62
http://www.cs.ualberta.ca/~chinook/
The Chinook project began in 1989 with the goal of developing a program capable of defeating the human World Checkers Champion. In 1990, Chinook became the first program in any game to win the right to play for a human World Championship. The program lost the Championship match in 1992, but became Champion in 1994. By 1996, it became clear that the program was much stronger than any human, and Chinook was retired.
Karim Bouzoubaa Artificial Intelligence 63
http://homepage.ufp.pt/jtorres/ensino/ia/alfabeta.html
Demo