32
October 3, 2012 Introduction to Artificial Intelligence Lecture 9: Two-Player 1 Iterative Deepening A* Algorithm A* has memory demands that increase exponentially with the depth of the goal node (unless our estimations are perfect). You remember that we improved the space efficiency of the breadth-first search algorithm by applying iterative deepening. Can we do a similar thing for the Algorithm A* ? Sure!

Iterative Deepening A*

Embed Size (px)

DESCRIPTION

Iterative Deepening A*. Algorithm A* has memory demands that increase exponentially with the depth of the goal node (unless our estimations are perfect). You remember that we improved the space efficiency of the breadth-first search algorithm by applying iterative deepening . - PowerPoint PPT Presentation

Citation preview

Page 1: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

1October 3, 2012

Iterative Deepening A*

Algorithm A* has memory demands that increase exponentially with the depth of the goal node (unless our estimations are perfect).

You remember that we improved the space efficiency of the breadth-first search algorithm by applying iterative deepening.

Can we do a similar thing for the Algorithm A* ?

Sure!

Page 2: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

2October 3, 2012

Iterative Deepening A*• In the first iteration, we determine a “cost cut-off”

f’(n0) = g’(n0) + h’(n0) = h’(n0), where n0 is the start node.

• We expand nodes using the depth-first algorithm and backtrack whenever f’(n) for an expanded node n exceeds the cut-off value.

• If this search does not succeed, determine the lowest f’-value among the nodes that were visited but not expanded.

• Use this f’-value as the new cut-off value and do another depth-first search.

• Repeat this procedure until a goal node is found.

Page 3: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

3October 3, 2012

Let us now investigate…

Two-Player Games

Page 4: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

4October 3, 2012

Two-Player Games with Complete TreesWe can use search algorithms to write “intelligent” programs that play games against a human opponent.

Just consider this extremely simple (and not very exciting) game:

• At the beginning of the game, there are seven coins

on a table.

• Player 1 makes the first move, then player 2, then player 1 again, and so on.

• One move consists of removing 1, 2, or 3 coins.

• The player who removes all remaining coins wins.

Page 5: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

5October 3, 2012

Two-Player Games with Complete Trees

Let us assume that the computer has the first move. Then, the game can be described as a series of decisions, where the first decision is made by the computer, the second one by the human, the third one by the computer, and so on, until all coins are gone.

The computer wants to make decisions that guarantee its victory (in this simple game).

The underlying assumption is that the human always finds the optimal move.

Page 6: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

6October 3, 2012

Two-Player Games with Complete Trees7

6

5

4

3 2 1

1 2 3

2 1

C C

1

4

2

C

3

3

5

2

C

H

C

H

C

1

3 2 1

1 2 3

2 1

H HH

3

1

1

4

3 2 1

1 2 3

2 1

H HH

3

4

3 2 1

1 2 3

2 1

C CC

3

H

Page 7: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

7October 3, 2012

Two-Player Games with Complete TreesSo the computer will start the game by taking three coins and is guaranteed to win the game.

The most practical way of implementing such an algorithm is the Minimax procedure:• Call the two players MIN and MAX.• Mark each leaf of the search tree with 0, if it shows a victory of MIN, and with 1, if it shows a victory of MAX.• Propagate these values up the tree using the rules:

– If the parent state is a MAX node, give it the maximum value among its children.

– If the parent state is a MIN node, give it the minimum value among its children.

Page 8: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

8October 3, 2012

Two-Player Games with Complete Trees7

6

5

4

3 2 1

C C

4

C

5

C

H

C

H

C

3 2 1

H HH

4

3 2 1

H HH

4

3 2 1

C CC

(min)

(min)

(min)

(max)

(max)

H (max) 0 0 0

0 0 0

1 1 1 1 1 10 0 0

0 1 1 1 1 1 1

0 1 1 0 0 0

1 1 0

0

Page 9: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

9October 3, 2012

Two-Player Games with Complete TreesThe previous example shows how we can use the Minimax procedure to determine the computer’s best move.

It also shows how we can apply depth-first search and a variant of backtracking to prune the search tree.

Before we formalize the idea for pruning, let us move on to more interesting games.

For such games, it is impossible to check every possible sequence of moves. The computer player then only looks ahead a certain number of moves and estimates the chance of winning after each possible sequence.

Page 10: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

10October 3, 2012

Two-Player Games

Therefore, we need to define a static evaluation function e(p) that tells the computer how favorable the current game position p is from its perspective.

In other words, e(p) will assume large values if a position is likely to result in a win for the computer, and low values if it predicts its defeat.

In any given situation, the computer will make a move that guarantees a maximum value for e(p) after a certain number of moves.

For this purpose, we can use the Minimax procedure with a specific maximum search depth (ply-depth k for k moves of each player).

Page 11: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

11October 3, 2012

Two-Player Games

For example, let us consider Tic-Tac-Toe (although it would still be possible to search the complete game tree for this game).

What would be a suitable evaluation function for this game?

We could use the number of lines that are still open for the computer (X) minus the ones that are still open for its opponent (O).

Page 12: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

12October 3, 2012

Two-Player Games

e(p) = 8 – 8 = 0

X

O X

e(p) = 6 – 2 = 4

O O X

X O

X

e(p) = 2 – 2 = 0

shows the weak-ness of this e(p)

How about these?

O O X

X

X

e(p) =

X X

O O O

X

e(p) = -

Page 13: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

13October 3, 2012

Two-Player Games

Page 14: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

14October 3, 2012

The Alpha-Beta Procedure

Now let us specify how to prune the Minimax tree in the case of a static evaluation function.

• Use two variables alpha (associated with MAX nodes) and beta (associated with MIN nodes).

• These variables contain the best (highest or lowest,

resp.) e(p) value at a node p that has been found so

far.

• Notice that alpha can never decrease, and beta can

never increase.

Page 15: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

15October 3, 2012

The Alpha-Beta Procedure

There are two rules for terminating search:• Search can be stopped below any MIN node having

a beta value less than or equal to the alpha value of

any of its MAX ancestors.• Search can be stopped below any MAX node having an alpha value greater than or equal to the beta value of any of its MIN ancestors.

Alpha-beta pruning thus expresses a relation between nodes at level n and level n+2 under which entire subtrees rooted at level n+1 can be eliminated from consideration.

Page 16: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

16October 3, 2012

The Alpha-Beta Procedure

Example: max

min

max

min

Page 17: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

17October 3, 2012

The Alpha-Beta Procedure

4

Example: max

min

max

min = 4

Page 18: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

18October 3, 2012

The Alpha-Beta Procedure

4 5

Example: max

min

max

min = 4

Page 19: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

19October 3, 2012

The Alpha-Beta Procedure

4 5 3

Example: max

min

max

min = 3

= 3

Page 20: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

20October 3, 2012

The Alpha-Beta Procedure

4 5 3 1

Example: max

min

max

min = 3

= 3

= 1

Page 21: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

21October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8

Example: max

min

max

min = 3

= 3

= 1

= 3

= 8

Page 22: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

22October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

Page 23: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

23October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

Page 24: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

24October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

Page 25: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

25October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

= 2

= 3

Propagated from grandparent – no values below 3 can influence MAX’s decision any more.

Page 26: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

26October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

= 2

= 3

= 5

Page 27: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

27October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5 4

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

= 2

= 3

= 4

Page 28: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

28October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5 4 4

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

= 2

= 4

= 4

= 4

Page 29: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

29October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5 4 4 6

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

= 2

= 4

= 4

= 4

= 6

Page 30: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

30October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5 4 4 6 7

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 3

= 2

= 4

= 4

= 4

= 6

Page 31: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

31October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5 4 4 6 7 7

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 4

= 2

= 4

= 4

= 4

= 6

= 6

Page 32: Iterative Deepening A*

Introduction to Artificial Intelligence Lecture 9: Two-Player Games

32October 3, 2012

The Alpha-Beta Procedure

4 5 3 1 8 6 7 2 5 4 4 6 7 7

Example: max

min

max

min = 3

= 3

= 1

= 3

= 6

= 6

= 4

= 2

= 4

= 4

= 4

= 6

= 6

Done!