Games and Adversarial Search II Alpha-Beta Pruning (AIMA 5.3)

Similar documents
Constraint Satisfaction Problems. A Quick Overview (based on AIMA book slides)

Constraint Satisfaction Problems

CS W4701 Artificial Intelligence

CS 343: Artificial Intelligence

What is Search For? CS 188: Artificial Intelligence. Constraint Satisfaction Problems

10/11/2017. Constraint Satisfaction Problems II. Review: CSP Representations. Heuristic 1: Most constrained variable

CSE 473: Artificial Intelligence

Constraint Satisfaction Problems (CSPs)

Constraint Satisfaction Problems

CS 188: Artificial Intelligence Fall 2011

Announcements. Homework 4. Project 3. Due tonight at 11:59pm. Due 3/8 at 4:00pm

CS 188: Artificial Intelligence. What is Search For? Constraint Satisfaction Problems. Constraint Satisfaction Problems

Announcements. Homework 1: Search. Project 1: Search. Midterm date and time has been set:

Announcements. CS 188: Artificial Intelligence Fall 2010

CS 4100 // artificial intelligence

CS 188: Artificial Intelligence Fall 2008

Announcements. CS 188: Artificial Intelligence Fall Large Scale: Problems with A* What is Search For? Example: N-Queens

Chapter 6 Constraint Satisfaction Problems

Constraint Satisfaction Problems

What is Search For? CSE 473: Artificial Intelligence. Example: N-Queens. Example: N-Queens. Example: Map-Coloring 4/7/17

Australia Western Australia Western Territory Northern Territory Northern Australia South Australia South Tasmania Queensland Tasmania Victoria

Constraint Satisfaction

Constraint Satisfaction Problems

Constraint Satisfaction Problems

Lecture 6: Constraint Satisfaction Problems (CSPs)

Constraint Satisfaction Problems

Constraint Satisfaction Problems. Chapter 6

Space of Search Strategies. CSE 573: Artificial Intelligence. Constraint Satisfaction. Recap: Search Problem. Example: Map-Coloring 11/30/2012

Constraint satisfaction problems. CS171, Winter 2018 Introduction to Artificial Intelligence Prof. Richard Lathrop

Announcements. CS 188: Artificial Intelligence Spring Today. Example: Map-Coloring. Example: Cryptarithmetic.

Artificial Intelligence Constraint Satisfaction Problems

CS 188: Artificial Intelligence. Recap: Search

Announcements. CS 188: Artificial Intelligence Spring Today. A* Review. Consistency. A* Graph Search Gone Wrong

CS 771 Artificial Intelligence. Constraint Satisfaction Problem

Constraint Satisfaction Problems (CSPs) Introduction and Backtracking Search

Constraint Satisfaction Problems

Review Adversarial (Game) Search ( ) Review Constraint Satisfaction ( ) Please review your quizzes and old CS-271 tests

Constraint Satisfaction Problems

Reading: Chapter 6 (3 rd ed.); Chapter 5 (2 nd ed.) For next week: Thursday: Chapter 8

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 30 January, 2018

Constraint Satisfaction Problems

Constraint Satisfaction Problems

Constraint Satisfaction. AI Slides (5e) c Lin

Spezielle Themen der Künstlichen Intelligenz

Example: Map-Coloring. Constraint Satisfaction Problems Western Australia. Example: Map-Coloring contd. Outline. Constraint graph

Week 8: Constraint Satisfaction Problems

CS 188: Artificial Intelligence Spring Announcements

CS 188: Artificial Intelligence Spring Announcements

Outline. Best-first search

What is Search For? CS 188: Ar)ficial Intelligence. Constraint Sa)sfac)on Problems Sep 14, 2015

Constraint Satisfaction Problems Part 2

Recap: Search Problem. CSE 473: Artificial Intelligence. Space of Search Strategies. Constraint Satisfaction. Example: N-Queens 4/9/2012

Introduction. 2D1380 Constraint Satisfaction Problems. Outline. Outline. Earlier lectures have considered search The goal is a final state

Constraint Satisfaction Problems. slides from: Padhraic Smyth, Bryan Low, S. Russell and P. Norvig, Jean-Claude Latombe

Lecture 18. Questions? Monday, February 20 CS 430 Artificial Intelligence - Lecture 18 1

Constraint Satisfaction Problems

What is Search For? CS 188: Artificial Intelligence. Example: Map Coloring. Example: N-Queens. Example: N-Queens. Constraint Satisfaction Problems

More Realistic Adversarial Settings. Virginia Tech CS5804 Introduction to Artificial Intelligence Spring 2015

Artificial Intelligence

Constraint Satisfaction Problems. Chapter 6

ARTIFICIAL INTELLIGENCE (CS 370D)

Foundations of Artificial Intelligence

Constraint Satisfaction Problems

Artificial Intelligence

Artificial Intelligence

Lars Schmidt-Thieme, Information Systems and Machine Learning Lab (ISMLL), University of Hildesheim, Germany, Course on Artificial Intelligence,

Iterative improvement algorithms. Today. Example: Travelling Salesperson Problem. Example: n-queens

CS 188: Artificial Intelligence Fall 2011

CS 188: Artificial Intelligence. Recap Search I

Constraint Satisfaction. CS 486/686: Introduction to Artificial Intelligence

DIT411/TIN175, Artificial Intelligence. Peter Ljunglöf. 6 February, 2018

CS 4100/5100: Foundations of AI

Review Agents ( ) Review State Space Search

General Methods and Search Algorithms

Constraint Satisfaction Problems

CONSTRAINT SATISFACTION

6.034 Quiz 1, Spring 2004 Solutions

Example: Map coloring

CS 188: Artificial Intelligence

CS 188: Artificial Intelligence

Outline. Best-first search

Discussion Section Week 1

Mathematical Programming Formulations, Constraint Programming

Material. Thought Question. Outline For Today. Example: Map-Coloring EE562 ARTIFICIAL INTELLIGENCE FOR ENGINEERS

Moving to a different formalism... SEND + MORE MONEY

Admin. Quick search recap. Constraint Satisfaction Problems (CSPs)! Intro Example: 8-Queens. Where should I put the queens in columns 3 and 4?

Comments about assign 1. Quick search recap. Constraint Satisfaction Problems (CSPs) Search uninformed BFS, DFS, IDS. Adversarial search

1 Tree Search (12 points)

Map Colouring. Constraint Satisfaction. Map Colouring. Constraint Satisfaction

4 Search Problem formulation (23 points)

Constraints. CSC 411: AI Fall NC State University 1 / 53. Constraints

Parallel Programming. Parallel algorithms Combinatorial Search

Downloaded from ioenotes.edu.np

(Due to rounding, values below may be only approximate estimates.) We will supply these numbers as they become available.

Announcements. Reminder: CSPs. Today. Example: N-Queens. Example: Map-Coloring. Introduction to Artificial Intelligence

CS-171, Intro to A.I. Mid-term Exam Winter Quarter, 2016

Constraint Satisfaction Problems

Announcements. CS 188: Artificial Intelligence Fall Reminder: CSPs. Today. Example: 3-SAT. Example: Boolean Satisfiability.

CS 188: Artificial Intelligence Fall 2008

CSE 573: Artificial Intelligence

Transcription:

Games and Adversarial Search II Alpha-Beta Pruning (AIMA 5.) Some slides adapted from Richard Lathrop, USC/ISI, CS 7 Review: The Minimax Rule Idea: Make the best move for MAX assuming that MIN always replies with the best move for MIN. Start with the current position as a MAX node.. Expand the game tree a fixed number of ply.. Apply the evaluation function to all leaf positions.. Calculate back-up values bottom-up: For a MAX node, return the maximum of the values of its children (i.e. the best for MAX) For a MIN node, return the minimum of the values of its children (i.e. the best for MIN 5. Pick the move assigned to MAX at the root 6. Wait for MIN to respond and REPEAT FROM CIS /5 - Intro to AI -ply Example: Backing up values 7 8 Evaluation function value This is the move selected by minimax New point: Actually calculated by DFS! 7 8 7 8 CIS /5 - Intro to AI MAX MIN 7 8 Minimax Algorithm function MINIMAX-DECISION(state) returns an action inputs: state, current state in game vmax-value(state) return an action in SUCCESSORS(state) with value v function MAX-VALUE(state) returns a utility value if TERMINAL-TEST(state) then return UTILITY(state) v - for a,s in SUCCESSORS(state) do v MAX(v, MIN-VALUE(s ) return v function MIN-VALUE(state) returns a utility value if TERMINAL-TEST(state) then return UTILITY(state) v for a,s in SUCCESSORS(state) do v MIN(v, MAX-VALUE(s ) return v CIS /5 - Intro to AI 5 Alpha-Beta Pruning A way to improve the performance of the Minimax Procedure Basic idea: If you have an idea which is surely bad, don t take the time to see how truly awful it is ~ Pat Winston Assuming left-to-right tree >= traversal: = 7 <=? We don t need to compute the value at this node! No matter what it is it can t effect the value of the root node. CIS /5 - Intro to AI 6

Alpha-Beta Pruning II During Minimax, keep track of two additional values: : current lower bound on MAX s outcome : current upper bound on MIN s outcome MAX will never choose a move that could lead to a worse score (for MAX) than MIN will never choose a move that could lead to a better score (for MAX) than Therefore, stop evaluating a branch whenever: When evaluating a MAX node: a value v is backed-up MIN will never select that MAX node When evaluating a MIN node: a value v is found MAX will never select that MIN node CIS /5 - Intro to AI 7 Alpha-Beta Pruning IIIa Based on observation that for all viable paths utility value f(n) will be <= f(n) <= Initially, = -infinity, =infinity As the search tree is traversed, the possible utility value window shrinks as increases, decreases CIS /5 - Intro to AI 8 Alpha-Beta Pruning IIIb Whenever the current ranges of alpha and beta no longer overlap ( ), it is clear that the current node is a dead end, so it can be pruned CIS /5 - Intro to AI 9 Alpha-beta Algorithm: In detail Depth first search (usually bounded, with static evaluation) only considers nodes along a single path from root at any time = current lower bound on MAX s outcome (initially, = infinity) = current upper bound on MIN s outcome (initially, = +infinity) Pass current values of and down to child nodes during search. Update values of and during search: MAX updates at MAX nodes MIN updates at MIN nodes Prune remaining branches at a node whenever CIS /5 - Intro to AI 0 When to Prune Prune whenever. Prune below a Max node when its value becomes the value of its ancestors. Max nodes update based on children s returned values. Idea: Player MIN at node above won t pick that value anyway, since MIN can force a worse value. Prune below a Min node when its value becomes the value of its ancestors. Min nodes update based on children s returned values. Idea: Player MAX at node above won t pick that value anyway; she can do better. CIS /5 - Intro to AI Pseudocode for Alpha-Beta Algorithm function ALPHA-BETA-SEARCH(state) returns an action inputs: state, current state in game vmax-value(state, -, + ) return an action in ACTIONS(state) with value v CIS /5 - Intro to AI

Pseudocode for Alpha-Beta Algorithm function ALPHA-BETA-SEARCH(state) returns an action inputs: state, current state in game vmax-value(state, -, + ) return an action in ACTIONS(state) with value v function MAX-VALUE(state,, ) returns a utility value if TERMINAL-TEST(state) then return UTILITY(state) v - for a in ACTIONS(state) do v MAX(v,MIN-VALUE(Result(s,a),, )) if v then return v MAX(,v) return v Alpha-Beta Algorithm II function MIN-VALUE(state,, ) returns a utility value if TERMINAL-TEST(state) then return UTILITY(state) v + for a,s in SUCCESSORS(state) do v MIN(v,MAX-VALUE(s,, )) if v then return v MIN(,v) return v CIS /5 - Intro to AI CIS /5 - Intro to AI An Alpha-Beta Example Do DF-search until first leaf,, initial values = =+ = =+,, passed to kids = =+ = = MIN updates, based on kids CIS /5 - Intro to AI 5 CIS /5 - Intro to AI 6 = =+ MAX updates, based on kids. = =+ MIN updates, based on kids. No change. = = is returned as node value. CIS /5 - Intro to AI 7 CIS /5 - Intro to AI 8

= =+,, passed to kids = =+ = =+ MIN updates, based on kids. = = CIS /5 - Intro to AI 9 CIS /5 - Intro to AI 0 = =+ = =, so prune. MAX updates, based on kids. No change. = =+ is returned as node value. CIS /5 - Intro to AI CIS /5 - Intro to AI = =+,,, passed to kids = =+ = =+, MIN updates, based on kids. = = CIS /5 - Intro to AI CIS /5 - Intro to AI

= =+, MIN updates, based on kids. = =5 = =+ is returned as node value. CIS /5 - Intro to AI 5 CIS /5 - Intro to AI 6 Max now makes it s best move, as computed by Alpha-Beta Effectiveness of Alpha-Beta Pruning Guaranteed to compute same root value as Minimax Worst case: no pruning, same as Minimax (O(b d )) Best case: when each player s best move is the first option examined, examines only O(b d/ ) nodes, allowing to search twice as deep! CIS /5 - Intro to AI 7 CIS /5 - Intro to AI 8 When best move is the first examined, examines only O(b d/ ) nodes. So: run Iterative Deepening search, sort by value returned on last iteration. So: expand captures first, then threats, then forward moves, etc. O(b (d/) ) is the same as having a branching factor of sqrt(b), Since (sqrt(b)) d = b (d/) e.g., in chess go from b ~ 5 to b ~ 6 For Deep Blue, alpha-beta pruning reduced the average branching factor from 5-0 to 6, as expected, doubling search depth CIS /5 - Intro to AI 9 Chinook and Deep Blue Chinook the World Man-Made Checkers Champion, developed at the University of Alberta. Competed in human tournaments, earning the right to play for the human world championship, and defeated the best players in the world. Deep Blue Defeated world champion Gary Kasparov.5-.5 in 997 after losing - in 996. Uses a parallel array of 56 special chess-specific processors Evaluates 00 billion moves every minutes; -ply search depth Expert knowledge from an international grandmaster. 8000 factor evaluation function tuned from hundreds of thousands of grandmaster games Tends to play for tiny positional advantages. CIS /5 - Intro to AI 5

Example -which nodes can be pruned? FOR STUDY. 7 8 5 6 CIS /5 - Intro to AI Answer to Example Max -which nodes can be pruned? Second Example (the exact mirror image of the first example) -which nodes can be pruned? Min Max 7 8 5 6 Answer: NONE! Because the most favorable nodes for both are explored last (i.e., in the diagram, are on the right-hand side). 6 5 8 7 CIS /5 - Intro to AI CIS /5 - Intro to AI 5 Answer to Second Example (the exact mirror image of the first example) Max -which nodes can be pruned? Min Constraint Satisfaction Problems Max AIMA: Chapter 6 6 5 8 7 Answer: LOTS! Because the most favorable nodes for both are explored first (i.e., in the diagram, are on the left-hand side). CIS /5 - Intro to AI 6 CIS /5 - Intro to AI 7 6

Big idea Represent the constraints that solutions must satisfy in a uniform declarative language Find solutions by GENERAL PURPOSE search algorithms with no changes from problem to problem No hand built transition functions No hand built heuristics Just specify the problem in a formal declarative language, and a general purpose algorithm does everything else! Constraint Satisfaction Problems A CSP consists of: Finite set of variables X, X,, X n Nonempty domain of possible values for each variable D, D, D n where D i = {v,, v k } Finite set of constraints C, C,, C m Each constraint C i limits the values that variables can take, e.g., X X A state is defined as an assignment of values to some or all variables. A consistent assignment does not violate the constraints. Example problem: Sudoku CIS /5 - Intro to AI 8 CIS /5 - Intro to AI 9 Constraint satisfaction problems An assignment is complete when every variable is assigned a value. A solution to a CSP is a complete, consistent assignment. Solutions to CSPs can be found by a completely general purpose algorithm, given only the formal specification of the CSP. Applications Map coloring Line Drawing Interpretation Scheduling problems Job shop scheduling Scheduling the Hubble Space Telescope Floor planning for VLSI Beyond our scope: CSPs that require a solution that maximizes an objective function. CIS /5 - Intro to AI 0 CIS /5 - Intro to AI Example: Map-coloring Example: Map-coloring Variables: WA, NT, Q, NSW, V, SA, T Domains: D i = {red,green,blue} Constraints: adjacent regions must have different colors e.g., WA NT So (WA,NT) must be in {(red,green),(red,blue),(green,red), } Solutions: complete and consistent assignments e.g., WA = red, NT = green,q = red, NSW = green, V = red, SA = blue, T = green CIS /5 - Intro to AI CIS /5 - Intro to AI 7

Example: Cryptarithmetic Benefits of CSP X X X Clean specification of many problems, generic goal, successor function & heuristics Just represent problem as a CSP & solve with general package Variables: F T U W R O, X X X Domain: {0,,,,,5,6,7,8,9} Constraints: Alldiff (F,T,U,W,R,O) O + O = R + 0 X X + W + W = U + 0 X X + T + T = O + 0 X X = F, T 0, F 0 CIS /5 - Intro to AI CSP knows which variables violate a constraint And hence where to focus the search CSPs: Automatically prune off all branches that violate constraints (State space search could do this only by hand-building constraints into the successor function) CIS /5 - Intro to AI 5 CSP Representations Constraint graph: nodes are variables arcs are (binary) constraints Standard representation pattern: variables with values Constraint graph simplifies search. e.g. Tasmania is an independent subproblem. This problem: A binary CSP: each constraint relates two variables Varieties of CSPs Discrete variables finite domains: n variables, domain size d O(d n ) complete assignments e.g., Boolean CSPs, includes Boolean satisfiability (NP-complete) infinite domains: integers, strings, etc. e.g., job scheduling, variables are start/end days for each job need a constraint language, e.g., StartJob + 5 StartJob Continuous variables e.g., start/end times for Hubble Space Telescope observations linear constraints solvable in polynomial time by linear programming CIS /5 - Intro to AI 6 CIS /5 - Intro to AI 7 Varieties of constraints Unary constraints involve a single variable, e.g., SA green Binary constraints involve pairs of variables, e.g., SA WA Higher-order constraints involve or more variables e.g., crypt-arithmetic column constraints Preference (soft constraints) e.g. red is better than green can be represented by a cost for each variable assignment Constrained optimization problems. Idea : CSP as a search problem A CSP can easily be expressed as a search problem Initial State: the empty assignment {}. Successor function: Assign value to any unassigned variable provided that there is not a constraint conflict. Goal test: the current assignment is complete. Path cost: a constant cost for every step. Solution is always found at depth n, for n variables Hence Depth First Search can be used CIS /5 - Intro to AI 8 CIS /5 - Intro to AI 9 8

Backtracking search Note that variable assignments are commutative Eg [ step : WA = red; step : NT = green ] equivalent to [ step : NT = green; step : WA = red ] Therefore, a tree search, not a graph search Backtracking example Only need to consider assignments to a single variable at each node b = d and there are d n leaves (n variables, domain size d ) Depth-first search for CSPs with single-variable assignments is called backtracking search Backtracking search is the basic uninformed algorithm for CSPs Can solve n-queens for n 5 CIS /5 - Intro to AI 50 CIS /5 - Intro to AI 5 Backtracking example Idea : Improving backtracking efficiency General-purpose methods & general-purpose heuristics can give huge gains in speed, on average Heuristics: Q: Which variable should be assigned next?. Most constrained variable. (if ties:) Most constraining variable Q: In what order should that variable s values be tried?. Least constraining value And so on. Q: Can we detect inevitable failure early?. Forward checking CIS /5 - Intro to AI 5 CIS /5 - Intro to AI 5 Heuristic : Most constrained variable Choose a variable with the fewest legal values a.k.a. minimum remaining values (MRV) heuristic Heuristic : Most constraining variable Tie-breaker among most constrained variables Choose the variable with the most constraints on remaining variables These two heuristics together lead to immediate solution of our example problem CIS /5 - Intro to AI 5 CIS /5 - Intro to AI 55 9

Heuristic : Least constraining value Given a variable, choose the least constraining value: the one that rules out the fewest values in the remaining variables Heuristic : Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any unassigned variable has no remaining legal values Note: demonstrated here independent of the other heuristics New data structure (A first step towards Arc Consistency & AC-) CIS /5 - Intro to AI 56 CIS /5 - Intro to AI 57 Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any unassigned variable has no remaining legal values Forward checking Idea: Keep track of remaining legal values for unassigned variables Terminate search when any unassigned variable has no remaining legal values CIS /5 - Intro to AI 58 CIS /5 - Intro to AI 59 Forward checking Example: -Queens Problem Idea: Keep track of remaining legal values for unassigned variables Terminate search when any unassigned variable has no remaining legal values X X X X {,,,} X {,,,} Terminate! No possible value for SA X {,,,} {,,,} (From Bonnie Dorr, U of Md, CMSC ) CIS /5 - Intro to AI 60 CIS /5 - Intro to AI 6 0

Example: -Queens Problem Example: -Queens Problem X {,,,} X {,,,} X {,,,} X {,,,} X {,,,} {,,,} X {,,,} {,,, } Assign value to unassigned variable CIS /5 - Intro to AI 6 Forward check! CIS /5 - Intro to AI 6 Example: -Queens Problem Example: -Queens Problem X {,,,} X {,,,} X {,,,} X {,,,} X {,,,} {,,, } X {,,, } Backtrack!!! {,,, } Assign value to unassigned variable CIS /5 - Intro to AI 6 Forward check! CIS /5 - Intro to AI 65 Example: -Queens Problem Example: -Queens Problem Picking up a little later after two steps of backtracking. X {,,,} X {,,,} X {,,,} X {,,,} X {,,,} {,,,} X {,,, } {,,,} Assign value to unassigned variable CIS /5 - Intro to AI 66 Forward check! CIS /5 - Intro to AI 67

Example: -Queens Problem Example: -Queens Problem X {,,,} X {,,,} X {,,,} X {,,,} X {,,, } {,,,} X {,,, } {,,, } Assign value to unassigned variable CIS /5 - Intro to AI 68 Forward check! CIS /5 - Intro to AI 69 Example: -Queens Problem Example: -Queens Problem X {,,,} X {,,,} X {,,,} X {,,,} X {,,, } {,,, } X {,,, } {,,, } Assign value to unassigned variable CIS /5 - Intro to AI 70 Forward check! CIS /5 - Intro to AI 7 Example: -Queens Problem X {,,,} X {,,, } Assign value to unassigned variable CIS /5 - Intro to AI 7 X {,,,} {,,, } Towards Constraint propagation Forward checking propagates information from assigned to unassigned variables, but doesn't provide early detection for all failures: NT and SA cannot both be blue! Constraint propagation goes beyond forward checking & repeatedly enforces constraints locally CIS /5 - Intro to AI 7