Generating Chess Moves using PVM

Size: px
Start display at page:

Download "Generating Chess Moves using PVM"

Transcription

1 Generating Chess Moves using PVM Areef Reza Department of Electrical and Computer Engineering University Of Waterloo Waterloo, Ontario, Canada, N2L 3G1 Abstract Game playing is one of the oldest areas of endeavors in artificial intelligence. A chess playing computer is an existence proof of a machine doing something thought to require intelligence. Chess programs have three major components: move generation, search and evaluation. The speed of a chess program depends on the quality of the mechanisms used to prune search of unprofitable continuations. The most reliable pruning method in popular use is the alpha-beta algorithm. This paper presents a parallel alpha-beta searching algorithm and examines the performance of its implementation. 1 Introduction The problem of playing chess can be defined as a problem of moving around in a state space where each state corresponds to a legal position of the board. The goal state is any board position in which the opponent does not have a legal move and his king is under attack. Chess has an average branching factor of about 35 and games often go to 5 moves by each player, so the search tree has about 35 1 nodes. Exploring each of the node in this huge search tree is not at all feasible. However it is possible to cut off some of the subtrees using a method called alpha-beta pruning. This paper develops a parallel alpha-beta search algorithm. Section 2 discusses the concepts of game playing. Section 3 develops the parallel alpha-beta searching algorithm. Section 4 focuses on the implementation of the parallel algorithm. Section 5 examines the performance of the parallel solution. Section 6 provides a summary and directions for further research. 2 Background Most of the search procedures are essentially generate-and-test procedures in which the testing is done after varying amounts of work by the generator. At one extreme, the generator generates the entire proposed solutions, which the tester then evaluates. At the other extreme, generator generates individual moves in the search space, each of which is then evaluated by the tester and the most promising one is chosen. To improve the effectiveness of a search based problem-solving program, the generate procedures should be improved so that only good moves (paths) are generated and also the test procedures should be improved so that the best moves(paths) will be recognized and explored first. In gameplaying programs, it is particularly important that both these things be done. So two important knowledge based components of a good game playing program are: a good move-generator and a good static evaluation function. They must both incorporate a great deal of knowledge about the particular game being played. But unless these functions are perfect, we also need a search procedure that makes it possible to look ahead as many moves as possible to see what may occur. Alpha-beta search algorithm is one such procedure. 2.1 Sequential Alpha-beta Search Alpha-beta search algorithm is just a variation of the minimax search procedure. The minimax search procedure is a depth first, depth-limited search procedure. The idea is to start at the current position and use the move generator to generate the set of possible successor positions. Now we can apply the static evaluation function to those positions and simply choose the best one. After doing so we can back up the value up to the starting position to represent our evaluation of it. The starting position is exactly as good for us as

2 the position generated by the best move we can make next. If we assume that that the static evaluation function returns large values to indicate good situations for us, our goal is to maximize the value of the static evaluation function of the next board position, whereas the opponent s goal is to minimize it. The alpha-beta search procedure requires the maintenance of two threshold values, one representing a lower bound on the value that a maximizing node may ultimately be assigned(alpha) and another representing an upper bound on the value that a minimizing node may be assigned(beta). At maximizing level we can rule out a move early if it becomes clear that its value will be less than the current threshold, while at minimizing levels, search will be terminated if values that are greater than the current threshold are discovered. Figure 1 shows the sequential alpha-beta algorithm. Algorithm AB(board, move, alpha, beta, depth) board: boardtype; move: movetype; alpha, beta, depth: integer; Var merit, j, value: integer; posn : ARRAY[1..MAXWIDTH] OF position; BEGIN applymove(board, move); IF depth = MAX_DEPTH THEN posn = Generate(p); IF empty(posn) THEN merit := -MAXINT; FOR j := 1 TO sizeof(posn) DO BEGIN value := -AB(posn[j], -beta, -max(alpha,merit), depth+1); IF (value > merit) THEN merit := value; IF (merit >= beta) THEN { cutoff? GOTO done; done: Return(merit); Figure 1: Sequential Alpha-beta Search 3 Parallel Alpha-beta Search Algorithm Implementation of parallel alpha-beta search suffers primarily from the synchronization and search overheads of parallelization. This section describes a parallel alpha-beta search algorithm that achieves high performance through the use of three different types of processes: Interface, Employer and Employees. Synchronization overhead is reduced by having all Employees apply the parallel algorithm on the subtree they search and having an Employer process re-assigning idle processes to help out busy ones. 3.1 Principal Variation Splitting Search One sequential alpha-beta algorithm, the Principal Variation Splitting(PVS) search has been shown to be effective on well ordered game trees. The essence of the PVS method is to assume that the leftmost path examined is the best, and to use the value of that path to form tight bounds on the search of the remaining subtrees in a quick attempt to prove their inferiority. This algorithm has been parallelized in this project. Figure 2 shows the PVS algorithm. Algorithm PVS(board, move, alpha, beta, depth) board: boardtype; move: movetype; alpha, beta, depth: integer; Var merit, j, value: integer; posn : ARRAY[1..MAXWIDTH] OF position; BEGIN applymove(board, move); IF depth = MAX_DEPTH THEN posn = Generate(p); IF empty(posn) THEN merit := -PVS(posn[1], -beta, -alpha, depth+1); FOR j := 2 TO sizeof(posn) DO BEGIN value := -PVS(posn[j], -beta, -max(alpha,merit), depth+1); IF (value > merit) THEN merit := value; IF (merit >= beta) THEN { cutoff? GOTO done; done: Return(merit); Figure 2: Principal Variation Search 3.2 Process Description Two special types of task, Employer and Employee have been defined for the parallel algorithm. The Employer assigns a subtree to each Employee. The Employee applies principal variation splitting algorithm on its subtree. Whenever an Employee becomes idle it reports to the Employer. A busy Employee can ask for more Employees from the Employer to assist it. Another task, Interface has been defined for the man machine interface. Consider the process diagram shown in Figure 3. The Interface sends a MOVE_SEND message along with a board description to the Employer. It waits for a MOVE_ACK message from the Employer accompanied by the best move. The Employer selects an Employee and sends it a MOVE_SEND message with the current board description. The Employer also sends it a DO_U_NEED_HELP

3 Interface MOVE_SEND MOVE_ACK TERMINATE EMP_SEND EMP_SEND_ACK Employer MOVE_SEND MOVE_ACK TERMINATE EMP_AVAILABLE DO_U_NEED_HELP TERMINATE message to all Employees and terminates itself. Employees also terminate after receiving this message. The parallel algorithms are shown in Figure 4 and Figure 5. MOVE_SEND Employee 1 Employee Employee n 2... MOVE_ACK STOP_COMPUTING Figure 3: Process Diagram message. The active Employee applies PVS algorithm on the given problem. Whenever it needs help (at the point of tree decomposition) it checks whether there is any DO_U_NEED_HELP message in the message queue. If the message is found it sends an EMP_SEND message to the Employer along with the number or required Employees. The Employer sends back the possible number of idle Employees with an EMP_SEND_ACK message. The Employee then sends MOVE_SEND message to each of the received Employees along with a node of the search tree. Whenever an Employee needs to cut off the search, it sends STOP_COMPUTING message to all other Employees that were assisting it. It then sends back the result to the requester. Interface initboard; while(game is not over) { send MOVE_SEND to employer; receive MOVE_ACK from employer; updateboard; get move from user; updateboard; send TERMINATE to employer; Employer while(1) { receive any msg; switch(type of msg){ case MOVE_SEND: hire an employee; case MOVE_ACK: send result; case EMP_SEND: send employees; update emp info; case TERMINATE: terminate all employees; exit; Employee while(1) { receive any msg; myparent = myparent(); switch(type of msg) { case MOVE_SEND: call PAB; if result is UNDEFINED send nothing; otherwise send result to myparent; case TERMINATE: exit; Figure 4: Interface, Employer and Employee If an Employee receives a STOP_COMPUTING message it stops computing and becomes idle. Whenever an Employee becomes idle it sends EMP_AVAILABLE message to the Employer. On receiving this message the Employer sends DO_U_NEED_HELP to all other active Employees. The Employer maintains the list of all active and idle Employees. On receiving TERMINATE message from the Interface, the Employer sends Algorithm PAB(board, move, usethresh, passthresh, depth) board : boardtype; move : movetype; passthresh, usethresh, depth : integer; 1. applymove(board, move) 2. IF depth = MAX_DEPTH return evaluate(board) 3. nextmoves = getnextmoves(board) IF empty(nextmoves) return evaluate(board) 4. merit = -PAB(board, nextmvoes[1], -passthresh, -usethresh, depth+1) 5. IF merit > passthresh passthresh = merit 6. index = 2 7. WHILE index <= sizeof(nextmoves) DO i) IF search tree has at least MIN_WORK_DEPTH IF nrecv(do_u_need_help,employer) asstnts = recv(emp_send, sizeof(nextmoves)-index+1, Employer) IF not empty(asstnts) FOR i=1 to sizeof(asstnts) send(move_send,board, nextmoves[i],asstnts[i]) index = index+sizeof(asstnts) ii) IF index > sizeof(nextmoves) goto 8 iii) merit=-ab(board,nextmoves[index], -passthresh,-usethresh,depth+1) iv) IF nrecv(stop_computing, myparent) send STOP_COMPUTING to all asstnts stop further computing return UNDEFINED v) IF merit > passthresh passthresh = merit vi) IF passthresh >= usethresh send STOP_COMPUTING to all asstnts return passthresh vii) FOR i=1 to sizeof(asstnts) IF nrecv(move_ack,result,asstnts[i]) delete ith member from asstnts IF result>passthresh passthresh = result IF passthresh >= usethresh send STOP_COMPUTING to all asstnts return passthresh viii) index = index FOR i = 1 to sizeof(asstnts) recv(move_ack,result,asstnts[i]) IF result > passthresh passthres = result IF passthresh >= usethresh send STOP_COMPUTING to all asstnts return passthresh 9. IF nrecv(stop_computing,myparent) return UNDEFINED otherwise return passthersh Figure 5: Parallel Alpha Beta Algorithm 3.3 Processor Tree Employer and Employees maintain a tree like structure. This tree structure changes dynamically as search progresses. As shown in figure 6, whenever an Employee becomes idle, it is used to help out another active Employee.

4 Employer Employer Employer e 1 e 1 e 1 e 2 e 3 e 4 e 2 e3 e 2 idle idle e4 e 3 e 4 e i = Employee i Figure 6: Processor Tree 4.4 Parallel alpha-beta search PVM routines were used to spawn tasks, send messages and receive messages. Both blocking receive (recv) and non blocking receive (nrecv) primitives were used to synchronize processes. Beyond a certain size or granularity of work it does not make sense to parallelize. The smallest unit of work that can be assigned to a processor was a 3 ply search. 4 Implementation 5 Results The implementation was done using PVM message passing library for a distributed computer system. A brief overview of PVM is discussed in this section with other implementation details. 4.1 Parallel Virtual Machine(PVM) This tool enables a collection of heterogeneous computer systems to be viewed as a single parallel virtual machine. The unit of parallelism in PVM is a task. Multiple tasks may execute on a single processor. The tasks communicate with each other through explicit message passing. 4.2 Move Generator A legal move generator was used in the implementation. It generates all possible moves generated by each piece. 4.3 Static Evaluation Function An evaluation function was used in the implementation considering the following points: Mobility: It is the summation of the square roots of the number of moves that the queen, rooks, bishops and knights can make. Piece Safety: For the rooks, bishops and knights 1 point is added if the piece is defended once, and 1.5 points are added if it is defended at least twice. Pawn Credit:.3 points are awarded for each pawn defended by one or more non-pawns. Material Value: Each piece is given a material value according to its importance. The material values are: pawn=1, knight=3, bishop=4, rook=5, queen=1 and king=1. Experiments were performed using a network of SparcStation 1s running SunOS Some test chess board were used for comparing performance of the sequential and parallel chess programs. This section discusses how effective the parallel algorithm searches game tree using the above described methods. Results for speedup, workload, search overhead and time overhead are presented. 5.1 Speedup Speedup is the ratio between the time needed for the most efficient sequential algorithm to perform a computation and the time needed to perform the same computation on a machine incorporating parallelism. Figure 7 shows the speedup obtained. The sublinear speedup observed can be attributed to search overhead and communication overhead Number of Processors Figure 7: Speedup 5.2 Time Overhead Speed up Ideal Speedup Time overhead is the percentage loss in speedup when using N processors compared to the ideal speedup. This can be expressed as: TO = Time using N CPUs * N Time using 1 CPU - 1

5 TO is a simple quantitative measure of the total overhead. An interpretation of it is that for every 1 seconds of useful computing(as defined by the sequential program), TO seconds are wasted because of parallelization. The major causes for this loss in performance are communication overhead(co), search overhead(so), and synchronization overhead(sy). These overheads are related by TO = CO + SO + SY Figure 8 shows the time overhead obtained for a 4 ply search. TO increases as the number of processor is increased Number of Processors Figure 8: Time Overhead 5.3 Search Overhead Time Overhead In the sequential environment, all information is readily available for making decisions. In a distributed environment, that information may be dispersed over several machines or not to be available at all. Making the available information accessible to everyone may dramatically increase communication. On the otherhand, not having enough information may result in parts of the tree being explored unnecessarily. This possible increase in the size of the search tree incurred by the parallelism is called information deficiency or search overhead. This loss can be approximated by using the observation that the size of the tree built is proportional to the time spent searching. SO can then be estimated by, SO = Nodes search for N CPUs Nodes searched for 1 CPU - 1 Figure 9 shows the search overhead obtained. The search overhead for this test case peaks at depth 3 as this is the smallest amount of work that can be assigned to a process Depth Figure 9: Search Overhead 5.4 Load Distribution Search Overhead Figure 1 shows the number of nodes generated by each Employee. This experiment was carried out with 5 Employees. This graph gives a rough idea of how well the load was distributed assuming the load is proportional to the number of nodes generated during search (x1 3 ) Depth (x1 3 ) (x1 4 ) (x1 5 ) Figure 1: Load Distribution 6 Conclusions Emp 1 Emp 2 Emp 3 Emp 4 Emp 5 A parallel alpha-beta algorithm has been developed. The sequential and parallel implementations were compared and a sublinear speedup was obtained. A very simple chess program was developed using the proposed algorithm which could play chess with some intelligence.

6 Alpha-beta search has a number of opportunities for parallel execution. One approach is to parallelize move generation and position evaluation. However the speedup that can be achieved with this approach is limited by the parallelism inherent in these activities. Further improvement is possible by adding speculative computing to the search, using several Scout processes to speculatively search for interesting features in the tree. Scouts are stripped down versions of Employees. They are designed to be as fast as possible scouting ahead in the tree looking for wins and losses of materials at a depth beyond what an alpha-beta program could usually search. References [1] A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam, PVM: Parallel Virtual Machine - A Users Guide and Tutorial for Networked Parallel Computing, The MIT Press, [2] D. Levy, All About Chess and Computer, Computer Science Press, [3] E. Rich and K. Knight, Artificial Intelligence, McGraw-Hill, Inc., [4] J. Schaeffer, Experiments In Distributed Game-Tree Searching, Technical Report TR87-2, January [5] M. J. Quinn, Parallel Computing, Theory and Practice, McGraw-Hill, Inc., [6] T. A. Marsland, Searching for Chess, Technical Report TR87-6, May 1987.

Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning

Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning CSCE 315 Programming Studio Fall 2017 Project 2, Lecture 2 Adapted from slides of Yoonsuck Choe, John Keyser Two-Person Perfect Information Deterministic

More information

Adversary Search. Ref: Chapter 5

Adversary Search. Ref: Chapter 5 Adversary Search Ref: Chapter 5 1 Games & A.I. Easy to measure success Easy to represent states Small number of operators Comparison against humans is possible. Many games can be modeled very easily, although

More information

ARTIFICIAL INTELLIGENCE (CS 370D)

ARTIFICIAL INTELLIGENCE (CS 370D) Princess Nora University Faculty of Computer & Information Systems ARTIFICIAL INTELLIGENCE (CS 370D) (CHAPTER-5) ADVERSARIAL SEARCH ADVERSARIAL SEARCH Optimal decisions Min algorithm α-β pruning Imperfect,

More information

Computer Science and Software Engineering University of Wisconsin - Platteville. 4. Game Play. CS 3030 Lecture Notes Yan Shi UW-Platteville

Computer Science and Software Engineering University of Wisconsin - Platteville. 4. Game Play. CS 3030 Lecture Notes Yan Shi UW-Platteville Computer Science and Software Engineering University of Wisconsin - Platteville 4. Game Play CS 3030 Lecture Notes Yan Shi UW-Platteville Read: Textbook Chapter 6 What kind of games? 2-player games Zero-sum

More information

Algorithms for Data Structures: Search for Games. Phillip Smith 27/11/13

Algorithms for Data Structures: Search for Games. Phillip Smith 27/11/13 Algorithms for Data Structures: Search for Games Phillip Smith 27/11/13 Search for Games Following this lecture you should be able to: Understand the search process in games How an AI decides on the best

More information

CPS331 Lecture: Search in Games last revised 2/16/10

CPS331 Lecture: Search in Games last revised 2/16/10 CPS331 Lecture: Search in Games last revised 2/16/10 Objectives: 1. To introduce mini-max search 2. To introduce the use of static evaluation functions 3. To introduce alpha-beta pruning Materials: 1.

More information

Lecture 14. Questions? Friday, February 10 CS 430 Artificial Intelligence - Lecture 14 1

Lecture 14. Questions? Friday, February 10 CS 430 Artificial Intelligence - Lecture 14 1 Lecture 14 Questions? Friday, February 10 CS 430 Artificial Intelligence - Lecture 14 1 Outline Chapter 5 - Adversarial Search Alpha-Beta Pruning Imperfect Real-Time Decisions Stochastic Games Friday,

More information

Prepared by Vaishnavi Moorthy Asst Prof- Dept of Cse

Prepared by Vaishnavi Moorthy Asst Prof- Dept of Cse UNIT II-REPRESENTATION OF KNOWLEDGE (9 hours) Game playing - Knowledge representation, Knowledge representation using Predicate logic, Introduction tounit-2 predicate calculus, Resolution, Use of predicate

More information

COMP219: COMP219: Artificial Intelligence Artificial Intelligence Dr. Annabel Latham Lecture 12: Game Playing Overview Games and Search

COMP219: COMP219: Artificial Intelligence Artificial Intelligence Dr. Annabel Latham Lecture 12: Game Playing Overview Games and Search COMP19: Artificial Intelligence COMP19: Artificial Intelligence Dr. Annabel Latham Room.05 Ashton Building Department of Computer Science University of Liverpool Lecture 1: Game Playing 1 Overview Last

More information

Foundations of Artificial Intelligence

Foundations of Artificial Intelligence Foundations of Artificial Intelligence 6. Board Games Search Strategies for Games, Games with Chance, State of the Art Joschka Boedecker and Wolfram Burgard and Bernhard Nebel Albert-Ludwigs-Universität

More information

CPS 570: Artificial Intelligence Two-player, zero-sum, perfect-information Games

CPS 570: Artificial Intelligence Two-player, zero-sum, perfect-information Games CPS 57: Artificial Intelligence Two-player, zero-sum, perfect-information Games Instructor: Vincent Conitzer Game playing Rich tradition of creating game-playing programs in AI Many similarities to search

More information

Adversarial Search Aka Games

Adversarial Search Aka Games Adversarial Search Aka Games Chapter 5 Some material adopted from notes by Charles R. Dyer, U of Wisconsin-Madison Overview Game playing State of the art and resources Framework Game trees Minimax Alpha-beta

More information

mywbut.com Two agent games : alpha beta pruning

mywbut.com Two agent games : alpha beta pruning Two agent games : alpha beta pruning 1 3.5 Alpha-Beta Pruning ALPHA-BETA pruning is a method that reduces the number of nodes explored in Minimax strategy. It reduces the time required for the search and

More information

Parallel Randomized Best-First Search

Parallel Randomized Best-First Search Parallel Randomized Best-First Search Yaron Shoham and Sivan Toledo School of Computer Science, Tel-Aviv Univsity http://www.tau.ac.il/ stoledo, http://www.tau.ac.il/ ysh Abstract. We describe a novel

More information

2 person perfect information

2 person perfect information Why Study Games? Games offer: Intellectual Engagement Abstraction Representability Performance Measure Not all games are suitable for AI research. We will restrict ourselves to 2 person perfect information

More information

Foundations of Artificial Intelligence

Foundations of Artificial Intelligence Foundations of Artificial Intelligence 42. Board Games: Alpha-Beta Search Malte Helmert University of Basel May 16, 2018 Board Games: Overview chapter overview: 40. Introduction and State of the Art 41.

More information

CS 2710 Foundations of AI. Lecture 9. Adversarial search. CS 2710 Foundations of AI. Game search

CS 2710 Foundations of AI. Lecture 9. Adversarial search. CS 2710 Foundations of AI. Game search CS 2710 Foundations of AI Lecture 9 Adversarial search Milos Hauskrecht milos@cs.pitt.edu 5329 Sennott Square CS 2710 Foundations of AI Game search Game-playing programs developed by AI researchers since

More information

Foundations of Artificial Intelligence

Foundations of Artificial Intelligence Foundations of Artificial Intelligence 6. Board Games Search Strategies for Games, Games with Chance, State of the Art Joschka Boedecker and Wolfram Burgard and Frank Hutter and Bernhard Nebel Albert-Ludwigs-Universität

More information

CS 1571 Introduction to AI Lecture 12. Adversarial search. CS 1571 Intro to AI. Announcements

CS 1571 Introduction to AI Lecture 12. Adversarial search. CS 1571 Intro to AI. Announcements CS 171 Introduction to AI Lecture 1 Adversarial search Milos Hauskrecht milos@cs.pitt.edu 39 Sennott Square Announcements Homework assignment is out Programming and experiments Simulated annealing + Genetic

More information

Game Engineering CS F-24 Board / Strategy Games

Game Engineering CS F-24 Board / Strategy Games Game Engineering CS420-2014F-24 Board / Strategy Games David Galles Department of Computer Science University of San Francisco 24-0: Overview Example games (board splitting, chess, Othello) /Max trees

More information

Artificial Intelligence Search III

Artificial Intelligence Search III Artificial Intelligence Search III Lecture 5 Content: Search III Quick Review on Lecture 4 Why Study Games? Game Playing as Search Special Characteristics of Game Playing Search Ingredients of 2-Person

More information

A Grid-Based Game Tree Evaluation System

A Grid-Based Game Tree Evaluation System A Grid-Based Game Tree Evaluation System Pangfeng Liu Shang-Kian Wang Jan-Jan Wu Yi-Min Zhung October 15, 200 Abstract Game tree search remains an interesting subject in artificial intelligence, and has

More information

Game Playing. Chapter 8

Game Playing. Chapter 8 Game Playing Chapter 8 Outline Overview Minimax search Adding alpha-beta cutoffs Additional refinements Iterative deepening 2 Overview Old beliefs Games provided a structured task in which it was very

More information

Data Structures and Algorithms

Data Structures and Algorithms Data Structures and Algorithms CS245-2015S-P4 Two Player Games David Galles Department of Computer Science University of San Francisco P4-0: Overview Example games (board splitting, chess, Network) /Max

More information

Today. Types of Game. Games and Search 1/18/2010. COMP210: Artificial Intelligence. Lecture 10. Game playing

Today. Types of Game. Games and Search 1/18/2010. COMP210: Artificial Intelligence. Lecture 10. Game playing COMP10: Artificial Intelligence Lecture 10. Game playing Trevor Bench-Capon Room 15, Ashton Building Today We will look at how search can be applied to playing games Types of Games Perfect play minimax

More information

Game Playing Beyond Minimax. Game Playing Summary So Far. Game Playing Improving Efficiency. Game Playing Minimax using DFS.

Game Playing Beyond Minimax. Game Playing Summary So Far. Game Playing Improving Efficiency. Game Playing Minimax using DFS. Game Playing Summary So Far Game tree describes the possible sequences of play is a graph if we merge together identical states Minimax: utility values assigned to the leaves Values backed up the tree

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence CS482, CS682, MW 1 2:15, SEM 201, MS 227 Prerequisites: 302, 365 Instructor: Sushil Louis, sushil@cse.unr.edu, http://www.cse.unr.edu/~sushil Games and game trees Multi-agent systems

More information

COMP219: Artificial Intelligence. Lecture 13: Game Playing

COMP219: Artificial Intelligence. Lecture 13: Game Playing CMP219: Artificial Intelligence Lecture 13: Game Playing 1 verview Last time Search with partial/no observations Belief states Incremental belief state search Determinism vs non-determinism Today We will

More information

Game-playing AIs: Games and Adversarial Search I AIMA

Game-playing AIs: Games and Adversarial Search I AIMA Game-playing AIs: Games and Adversarial Search I AIMA 5.1-5.2 Games: Outline of Unit Part I: Games as Search Motivation Game-playing AI successes Game Trees Evaluation Functions Part II: Adversarial Search

More information

Foundations of AI. 6. Adversarial Search. Search Strategies for Games, Games with Chance, State of the Art. Wolfram Burgard & Bernhard Nebel

Foundations of AI. 6. Adversarial Search. Search Strategies for Games, Games with Chance, State of the Art. Wolfram Burgard & Bernhard Nebel Foundations of AI 6. Adversarial Search Search Strategies for Games, Games with Chance, State of the Art Wolfram Burgard & Bernhard Nebel Contents Game Theory Board Games Minimax Search Alpha-Beta Search

More information

Games (adversarial search problems)

Games (adversarial search problems) Mustafa Jarrar: Lecture Notes on Games, Birzeit University, Palestine Fall Semester, 204 Artificial Intelligence Chapter 6 Games (adversarial search problems) Dr. Mustafa Jarrar Sina Institute, University

More information

Game-playing: DeepBlue and AlphaGo

Game-playing: DeepBlue and AlphaGo Game-playing: DeepBlue and AlphaGo Brief history of gameplaying frontiers 1990s: Othello world champions refuse to play computers 1994: Chinook defeats Checkers world champion 1997: DeepBlue defeats world

More information

Contents. Foundations of Artificial Intelligence. Problems. Why Board Games?

Contents. Foundations of Artificial Intelligence. Problems. Why Board Games? Contents Foundations of Artificial Intelligence 6. Board Games Search Strategies for Games, Games with Chance, State of the Art Wolfram Burgard, Bernhard Nebel, and Martin Riedmiller Albert-Ludwigs-Universität

More information

Foundations of AI. 5. Board Games. Search Strategies for Games, Games with Chance, State of the Art. Wolfram Burgard and Luc De Raedt SA-1

Foundations of AI. 5. Board Games. Search Strategies for Games, Games with Chance, State of the Art. Wolfram Burgard and Luc De Raedt SA-1 Foundations of AI 5. Board Games Search Strategies for Games, Games with Chance, State of the Art Wolfram Burgard and Luc De Raedt SA-1 Contents Board Games Minimax Search Alpha-Beta Search Games with

More information

Adversarial Search and Game- Playing C H A P T E R 6 C M P T : S P R I N G H A S S A N K H O S R A V I

Adversarial Search and Game- Playing C H A P T E R 6 C M P T : S P R I N G H A S S A N K H O S R A V I Adversarial Search and Game- Playing C H A P T E R 6 C M P T 3 1 0 : S P R I N G 2 0 1 1 H A S S A N K H O S R A V I Adversarial Search Examine the problems that arise when we try to plan ahead in a world

More information

Foundations of AI. 6. Board Games. Search Strategies for Games, Games with Chance, State of the Art

Foundations of AI. 6. Board Games. Search Strategies for Games, Games with Chance, State of the Art Foundations of AI 6. Board Games Search Strategies for Games, Games with Chance, State of the Art Wolfram Burgard, Andreas Karwath, Bernhard Nebel, and Martin Riedmiller SA-1 Contents Board Games Minimax

More information

5.4 Imperfect, Real-Time Decisions

5.4 Imperfect, Real-Time Decisions 5.4 Imperfect, Real-Time Decisions Searching through the whole (pruned) game tree is too inefficient for any realistic game Moves must be made in a reasonable amount of time One has to cut off the generation

More information

CS 771 Artificial Intelligence. Adversarial Search

CS 771 Artificial Intelligence. Adversarial Search CS 771 Artificial Intelligence Adversarial Search Typical assumptions Two agents whose actions alternate Utility values for each agent are the opposite of the other This creates the adversarial situation

More information

Module 3. Problem Solving using Search- (Two agent) Version 2 CSE IIT, Kharagpur

Module 3. Problem Solving using Search- (Two agent) Version 2 CSE IIT, Kharagpur Module 3 Problem Solving using Search- (Two agent) 3.1 Instructional Objective The students should understand the formulation of multi-agent search and in detail two-agent search. Students should b familiar

More information

CS 331: Artificial Intelligence Adversarial Search II. Outline

CS 331: Artificial Intelligence Adversarial Search II. Outline CS 331: Artificial Intelligence Adversarial Search II 1 Outline 1. Evaluation Functions 2. State-of-the-art game playing programs 3. 2 player zero-sum finite stochastic games of perfect information 2 1

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence CS482, CS682, MW 1 2:15, SEM 201, MS 227 Prerequisites: 302, 365 Instructor: Sushil Louis, sushil@cse.unr.edu, http://www.cse.unr.edu/~sushil Non-classical search - Path does not

More information

Ar#ficial)Intelligence!!

Ar#ficial)Intelligence!! Introduc*on! Ar#ficial)Intelligence!! Roman Barták Department of Theoretical Computer Science and Mathematical Logic So far we assumed a single-agent environment, but what if there are more agents and

More information

CS885 Reinforcement Learning Lecture 13c: June 13, Adversarial Search [RusNor] Sec

CS885 Reinforcement Learning Lecture 13c: June 13, Adversarial Search [RusNor] Sec CS885 Reinforcement Learning Lecture 13c: June 13, 2018 Adversarial Search [RusNor] Sec. 5.1-5.4 CS885 Spring 2018 Pascal Poupart 1 Outline Minimax search Evaluation functions Alpha-beta pruning CS885

More information

CS61B Lecture #22. Today: Backtracking searches, game trees (DSIJ, Section 6.5) Last modified: Mon Oct 17 20:55: CS61B: Lecture #22 1

CS61B Lecture #22. Today: Backtracking searches, game trees (DSIJ, Section 6.5) Last modified: Mon Oct 17 20:55: CS61B: Lecture #22 1 CS61B Lecture #22 Today: Backtracking searches, game trees (DSIJ, Section 6.5) Last modified: Mon Oct 17 20:55:07 2016 CS61B: Lecture #22 1 Searching by Generate and Test We vebeenconsideringtheproblemofsearchingasetofdatastored

More information

Last update: March 9, Game playing. CMSC 421, Chapter 6. CMSC 421, Chapter 6 1

Last update: March 9, Game playing. CMSC 421, Chapter 6. CMSC 421, Chapter 6 1 Last update: March 9, 2010 Game playing CMSC 421, Chapter 6 CMSC 421, Chapter 6 1 Finite perfect-information zero-sum games Finite: finitely many agents, actions, states Perfect information: every agent

More information

Adverserial Search Chapter 5 minmax algorithm alpha-beta pruning TDDC17. Problems. Why Board Games?

Adverserial Search Chapter 5 minmax algorithm alpha-beta pruning TDDC17. Problems. Why Board Games? TDDC17 Seminar 4 Adversarial Search Constraint Satisfaction Problems Adverserial Search Chapter 5 minmax algorithm alpha-beta pruning 1 Why Board Games? 2 Problems Board games are one of the oldest branches

More information

CS 4700: Foundations of Artificial Intelligence

CS 4700: Foundations of Artificial Intelligence CS 4700: Foundations of Artificial Intelligence selman@cs.cornell.edu Module: Adversarial Search R&N: Chapter 5 1 Outline Adversarial Search Optimal decisions Minimax α-β pruning Case study: Deep Blue

More information

Artificial Intelligence. Minimax and alpha-beta pruning

Artificial Intelligence. Minimax and alpha-beta pruning Artificial Intelligence Minimax and alpha-beta pruning In which we examine the problems that arise when we try to plan ahead to get the best result in a world that includes a hostile agent (other agent

More information

CSE 40171: Artificial Intelligence. Adversarial Search: Game Trees, Alpha-Beta Pruning; Imperfect Decisions

CSE 40171: Artificial Intelligence. Adversarial Search: Game Trees, Alpha-Beta Pruning; Imperfect Decisions CSE 40171: Artificial Intelligence Adversarial Search: Game Trees, Alpha-Beta Pruning; Imperfect Decisions 30 4-2 4 max min -1-2 4 9??? Image credit: Dan Klein and Pieter Abbeel, UC Berkeley CS 188 31

More information

Theory and Practice of Artificial Intelligence

Theory and Practice of Artificial Intelligence Theory and Practice of Artificial Intelligence Games Daniel Polani School of Computer Science University of Hertfordshire March 9, 2017 All rights reserved. Permission is granted to copy and distribute

More information

Artificial Intelligence. 4. Game Playing. Prof. Bojana Dalbelo Bašić Assoc. Prof. Jan Šnajder

Artificial Intelligence. 4. Game Playing. Prof. Bojana Dalbelo Bašić Assoc. Prof. Jan Šnajder Artificial Intelligence 4. Game Playing Prof. Bojana Dalbelo Bašić Assoc. Prof. Jan Šnajder University of Zagreb Faculty of Electrical Engineering and Computing Academic Year 2017/2018 Creative Commons

More information

Game Playing. Why do AI researchers study game playing? 1. It s a good reasoning problem, formal and nontrivial.

Game Playing. Why do AI researchers study game playing? 1. It s a good reasoning problem, formal and nontrivial. Game Playing Why do AI researchers study game playing? 1. It s a good reasoning problem, formal and nontrivial. 2. Direct comparison with humans and other computer programs is easy. 1 What Kinds of Games?

More information

Adversarial Search. CS 486/686: Introduction to Artificial Intelligence

Adversarial Search. CS 486/686: Introduction to Artificial Intelligence Adversarial Search CS 486/686: Introduction to Artificial Intelligence 1 Introduction So far we have only been concerned with a single agent Today, we introduce an adversary! 2 Outline Games Minimax search

More information

More Adversarial Search

More Adversarial Search More Adversarial Search CS151 David Kauchak Fall 2010 http://xkcd.com/761/ Some material borrowed from : Sara Owsley Sood and others Admin Written 2 posted Machine requirements for mancala Most of the

More information

Game Playing. Philipp Koehn. 29 September 2015

Game Playing. Philipp Koehn. 29 September 2015 Game Playing Philipp Koehn 29 September 2015 Outline 1 Games Perfect play minimax decisions α β pruning Resource limits and approximate evaluation Games of chance Games of imperfect information 2 games

More information

Adversarial Search (Game Playing)

Adversarial Search (Game Playing) Artificial Intelligence Adversarial Search (Game Playing) Chapter 5 Adapted from materials by Tim Finin, Marie desjardins, and Charles R. Dyer Outline Game playing State of the art and resources Framework

More information

Chess Puzzle Mate in N-Moves Solver with Branch and Bound Algorithm

Chess Puzzle Mate in N-Moves Solver with Branch and Bound Algorithm Chess Puzzle Mate in N-Moves Solver with Branch and Bound Algorithm Ryan Ignatius Hadiwijaya / 13511070 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

More information

2/5/17 ADVERSARIAL SEARCH. Today. Introduce adversarial games Minimax as an optimal strategy Alpha-beta pruning Real-time decision making

2/5/17 ADVERSARIAL SEARCH. Today. Introduce adversarial games Minimax as an optimal strategy Alpha-beta pruning Real-time decision making ADVERSARIAL SEARCH Today Introduce adversarial games Minimax as an optimal strategy Alpha-beta pruning Real-time decision making 1 Adversarial Games People like games! Games are fun, engaging, and hard-to-solve

More information

Learning to Play like an Othello Master CS 229 Project Report. Shir Aharon, Amanda Chang, Kent Koyanagi

Learning to Play like an Othello Master CS 229 Project Report. Shir Aharon, Amanda Chang, Kent Koyanagi Learning to Play like an Othello Master CS 229 Project Report December 13, 213 1 Abstract This project aims to train a machine to strategically play the game of Othello using machine learning. Prior to

More information

Adversarial Search. CMPSCI 383 September 29, 2011

Adversarial Search. CMPSCI 383 September 29, 2011 Adversarial Search CMPSCI 383 September 29, 2011 1 Why are games interesting to AI? Simple to represent and reason about Must consider the moves of an adversary Time constraints Russell & Norvig say: Games,

More information

If a pawn is still on its original square, it can move two squares or one square ahead. Pawn Movement

If a pawn is still on its original square, it can move two squares or one square ahead. Pawn Movement Chess Basics Pawn Review If a pawn is still on its original square, it can move two squares or one square ahead. Pawn Movement If any piece is in the square in front of the pawn, then it can t move forward

More information

game tree complete all possible moves

game tree complete all possible moves Game Trees Game Tree A game tree is a tree the nodes of which are positions in a game and edges are moves. The complete game tree for a game is the game tree starting at the initial position and containing

More information

Adversarial Search. Soleymani. Artificial Intelligence: A Modern Approach, 3 rd Edition, Chapter 5

Adversarial Search. Soleymani. Artificial Intelligence: A Modern Approach, 3 rd Edition, Chapter 5 Adversarial Search CE417: Introduction to Artificial Intelligence Sharif University of Technology Spring 2017 Soleymani Artificial Intelligence: A Modern Approach, 3 rd Edition, Chapter 5 Outline Game

More information

CSE 332: Data Structures and Parallelism Games, Minimax, and Alpha-Beta Pruning. Playing Games. X s Turn. O s Turn. X s Turn.

CSE 332: Data Structures and Parallelism Games, Minimax, and Alpha-Beta Pruning. Playing Games. X s Turn. O s Turn. X s Turn. CSE 332: ata Structures and Parallelism Games, Minimax, and Alpha-Beta Pruning This handout describes the most essential algorithms for game-playing computers. NOTE: These are only partial algorithms:

More information

AI Approaches to Ultimate Tic-Tac-Toe

AI Approaches to Ultimate Tic-Tac-Toe AI Approaches to Ultimate Tic-Tac-Toe Eytan Lifshitz CS Department Hebrew University of Jerusalem, Israel David Tsurel CS Department Hebrew University of Jerusalem, Israel I. INTRODUCTION This report is

More information

CS 297 Report Improving Chess Program Encoding Schemes. Supriya Basani

CS 297 Report Improving Chess Program Encoding Schemes. Supriya Basani CS 297 Report Improving Chess Program Encoding Schemes Supriya Basani (sbasani@yahoo.com) Advisor: Dr. Chris Pollett Department of Computer Science San Jose State University December 2006 Table of Contents:

More information

MITOCW Project: Backgammon tutor MIT Multicore Programming Primer, IAP 2007

MITOCW Project: Backgammon tutor MIT Multicore Programming Primer, IAP 2007 MITOCW Project: Backgammon tutor MIT 6.189 Multicore Programming Primer, IAP 2007 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue

More information

V. Adamchik Data Structures. Game Trees. Lecture 1. Apr. 05, Plan: 1. Introduction. 2. Game of NIM. 3. Minimax

V. Adamchik Data Structures. Game Trees. Lecture 1. Apr. 05, Plan: 1. Introduction. 2. Game of NIM. 3. Minimax Game Trees Lecture 1 Apr. 05, 2005 Plan: 1. Introduction 2. Game of NIM 3. Minimax V. Adamchik 2 ü Introduction The search problems we have studied so far assume that the situation is not going to change.

More information

! HW5 now available! ! May do in groups of two.! Review in recitation! No fancy data structures except trie!! Due Monday 11:59 pm

! HW5 now available! ! May do in groups of two.! Review in recitation! No fancy data structures except trie!! Due Monday 11:59 pm nnouncements acktracking and Game Trees 15-211: Fundamental Data Structures and lgorithms! HW5 now available!! May do in groups of two.! Review in recitation! No fancy data structures except trie!! Due

More information

Google DeepMind s AlphaGo vs. world Go champion Lee Sedol

Google DeepMind s AlphaGo vs. world Go champion Lee Sedol Google DeepMind s AlphaGo vs. world Go champion Lee Sedol Review of Nature paper: Mastering the game of Go with Deep Neural Networks & Tree Search Tapani Raiko Thanks to Antti Tarvainen for some slides

More information

Set 4: Game-Playing. ICS 271 Fall 2017 Kalev Kask

Set 4: Game-Playing. ICS 271 Fall 2017 Kalev Kask Set 4: Game-Playing ICS 271 Fall 2017 Kalev Kask Overview Computer programs that play 2-player games game-playing as search with the complication of an opponent General principles of game-playing and search

More information

Monday, February 2, Is assigned today. Answers due by noon on Monday, February 9, 2015.

Monday, February 2, Is assigned today. Answers due by noon on Monday, February 9, 2015. Monday, February 2, 2015 Topics for today Homework #1 Encoding checkers and chess positions Constructing variable-length codes Huffman codes Homework #1 Is assigned today. Answers due by noon on Monday,

More information

Adversarial Search. CS 486/686: Introduction to Artificial Intelligence

Adversarial Search. CS 486/686: Introduction to Artificial Intelligence Adversarial Search CS 486/686: Introduction to Artificial Intelligence 1 AccessAbility Services Volunteer Notetaker Required Interested? Complete an online application using your WATIAM: https://york.accessiblelearning.com/uwaterloo/

More information

Artificial Intelligence Adversarial Search

Artificial Intelligence Adversarial Search Artificial Intelligence Adversarial Search Adversarial Search Adversarial search problems games They occur in multiagent competitive environments There is an opponent we can t control planning again us!

More information

Artificial Intelligence 1: game playing

Artificial Intelligence 1: game playing Artificial Intelligence 1: game playing Lecturer: Tom Lenaerts Institut de Recherches Interdisciplinaires et de Développements en Intelligence Artificielle (IRIDIA) Université Libre de Bruxelles Outline

More information

CS 440 / ECE 448 Introduction to Artificial Intelligence Spring 2010 Lecture #5

CS 440 / ECE 448 Introduction to Artificial Intelligence Spring 2010 Lecture #5 CS 440 / ECE 448 Introduction to Artificial Intelligence Spring 2010 Lecture #5 Instructor: Eyal Amir Grad TAs: Wen Pu, Yonatan Bisk Undergrad TAs: Sam Johnson, Nikhil Johri Topics Game playing Game trees

More information

Lecture 20: Combinatorial Search (1997) Steven Skiena. skiena

Lecture 20: Combinatorial Search (1997) Steven Skiena.   skiena Lecture 20: Combinatorial Search (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Give an O(n lg k)-time algorithm

More information

Additional Key Words and Phrases: Alpha-beta search, computer chess, game playing, parallel search, tree decomposition

Additional Key Words and Phrases: Alpha-beta search, computer chess, game playing, parallel search, tree decomposition Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the

More information

Structured Programming Using Procedural Languages INSS Spring 2018

Structured Programming Using Procedural Languages INSS Spring 2018 Structured Programming Using Procedural Languages INSS 225.101 - Spring 2018 Project #3 (Individual) For your third project, you are going to write a program like what you did for Project 2. You are going

More information

CS510 \ Lecture Ariel Stolerman

CS510 \ Lecture Ariel Stolerman CS510 \ Lecture04 2012-10-15 1 Ariel Stolerman Administration Assignment 2: just a programming assignment. Midterm: posted by next week (5), will cover: o Lectures o Readings A midterm review sheet will

More information

Search the action space of 2 players Russell & Norvig Chapter 6 Bratko Chapter 24

Search the action space of 2 players Russell & Norvig Chapter 6 Bratko Chapter 24 Search the action space of 2 players Russell & Norvig Chapter 6 Bratko Chapter 24 1 Games contribute to AI like Formula 1 racing contributes to automobile design. Games, like the real world, require the

More information

: Principles of Automated Reasoning and Decision Making Midterm

: Principles of Automated Reasoning and Decision Making Midterm 16.410-13: Principles of Automated Reasoning and Decision Making Midterm October 20 th, 2003 Name E-mail Note: Budget your time wisely. Some parts of this quiz could take you much longer than others. Move

More information

5.4 Imperfect, Real-Time Decisions

5.4 Imperfect, Real-Time Decisions 116 5.4 Imperfect, Real-Time Decisions Searching through the whole (pruned) game tree is too inefficient for any realistic game Moves must be made in a reasonable amount of time One has to cut off the

More information

Adversarial Search. Rob Platt Northeastern University. Some images and slides are used from: AIMA CS188 UC Berkeley

Adversarial Search. Rob Platt Northeastern University. Some images and slides are used from: AIMA CS188 UC Berkeley Adversarial Search Rob Platt Northeastern University Some images and slides are used from: AIMA CS188 UC Berkeley What is adversarial search? Adversarial search: planning used to play a game such as chess

More information

A Quoridor-playing Agent

A Quoridor-playing Agent A Quoridor-playing Agent P.J.C. Mertens June 21, 2006 Abstract This paper deals with the construction of a Quoridor-playing software agent. Because Quoridor is a rather new game, research about the game

More information

Game-Playing & Adversarial Search

Game-Playing & Adversarial Search Game-Playing & Adversarial Search This lecture topic: Game-Playing & Adversarial Search (two lectures) Chapter 5.1-5.5 Next lecture topic: Constraint Satisfaction Problems (two lectures) Chapter 6.1-6.4,

More information

16.410/413 Principles of Autonomy and Decision Making

16.410/413 Principles of Autonomy and Decision Making 16.10/13 Principles of Autonomy and Decision Making Lecture 2: Sequential Games Emilio Frazzoli Aeronautics and Astronautics Massachusetts Institute of Technology December 6, 2010 E. Frazzoli (MIT) L2:

More information

Adversarial Search. Robert Platt Northeastern University. Some images and slides are used from: 1. CS188 UC Berkeley 2. RN, AIMA

Adversarial Search. Robert Platt Northeastern University. Some images and slides are used from: 1. CS188 UC Berkeley 2. RN, AIMA Adversarial Search Robert Platt Northeastern University Some images and slides are used from: 1. CS188 UC Berkeley 2. RN, AIMA What is adversarial search? Adversarial search: planning used to play a game

More information

Introduction to AI Techniques

Introduction to AI Techniques Introduction to AI Techniques Game Search, Minimax, and Alpha Beta Pruning June 8, 2009 Introduction One of the biggest areas of research in modern Artificial Intelligence is in making computer players

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence Jeff Clune Assistant Professor Evolving Artificial Intelligence Laboratory AI Challenge One 140 Challenge 1 grades 120 100 80 60 AI Challenge One Transform to graph Explore the

More information

Algorithms for solving sequential (zero-sum) games. Main case in these slides: chess. Slide pack by Tuomas Sandholm

Algorithms for solving sequential (zero-sum) games. Main case in these slides: chess. Slide pack by Tuomas Sandholm Algorithms for solving sequential (zero-sum) games Main case in these slides: chess Slide pack by Tuomas Sandholm Rich history of cumulative ideas Game-theoretic perspective Game of perfect information

More information

Real-time Grid Computing : Monte-Carlo Methods in Parallel Tree Searching

Real-time Grid Computing : Monte-Carlo Methods in Parallel Tree Searching 1 Real-time Grid Computing : Monte-Carlo Methods in Parallel Tree Searching Hermann Heßling 6. 2. 2012 2 Outline 1 Real-time Computing 2 GriScha: Chess in the Grid - by Throwing the Dice 3 Parallel Tree

More information

AI Module 23 Other Refinements

AI Module 23 Other Refinements odule 23 ther Refinements ntroduction We have seen how game playing domain is different than other domains and how one needs to change the method of search. We have also seen how i search algorithm is

More information

ADVERSARIAL SEARCH. Today. Reading. Goals. AIMA Chapter , 5.7,5.8

ADVERSARIAL SEARCH. Today. Reading. Goals. AIMA Chapter , 5.7,5.8 ADVERSARIAL SEARCH Today Reading AIMA Chapter 5.1-5.5, 5.7,5.8 Goals Introduce adversarial games Minimax as an optimal strategy Alpha-beta pruning (Real-time decisions) 1 Questions to ask Were there any

More information

Wednesday, February 1, 2017

Wednesday, February 1, 2017 Wednesday, February 1, 2017 Topics for today Encoding game positions Constructing variable-length codes Huffman codes Encoding Game positions Some programs that play two-player games (e.g., tic-tac-toe,

More information

Path Planning as Search

Path Planning as Search Path Planning as Search Paul Robertson 16.410 16.413 Session 7 Slides adapted from: Brian C. Williams 6.034 Tomas Lozano Perez, Winston, and Russell and Norvig AIMA 1 Assignment Remember: Online problem

More information

CS188 Spring 2010 Section 3: Game Trees

CS188 Spring 2010 Section 3: Game Trees CS188 Spring 2010 Section 3: Game Trees 1 Warm-Up: Column-Row You have a 3x3 matrix of values like the one below. In a somewhat boring game, player A first selects a row, and then player B selects a column.

More information

Problem 1. (15 points) Consider the so-called Cryptarithmetic problem shown below.

Problem 1. (15 points) Consider the so-called Cryptarithmetic problem shown below. ECS 170 - Intro to Artificial Intelligence Suggested Solutions Mid-term Examination (100 points) Open textbook and open notes only Show your work clearly Winter 2003 Problem 1. (15 points) Consider the

More information

Automated Suicide: An Antichess Engine

Automated Suicide: An Antichess Engine Automated Suicide: An Antichess Engine Jim Andress and Prasanna Ramakrishnan 1 Introduction Antichess (also known as Suicide Chess or Loser s Chess) is a popular variant of chess where the objective of

More information

COMP9414: Artificial Intelligence Adversarial Search

COMP9414: Artificial Intelligence Adversarial Search CMP9414, Wednesday 4 March, 004 CMP9414: Artificial Intelligence In many problems especially game playing you re are pitted against an opponent This means that certain operators are beyond your control

More information