Computing Science (CMPUT) 496

Size: px
Start display at page:

Download "Computing Science (CMPUT) 496"

Transcription

1 Computing Science (CMPUT) 496 Search, Knowledge, and Simulations Martin Müller Department of Computing Science University of Alberta Winter 2017

2 Part I Intro - Problem Solving for humans and computers

3 496 Today - Jan 12 Topics: Eyes and Life in Go Basic data structures and algorithms for Go Programs Tools for Go programming: GoGui, attaching Go programs, GTP text interface Why talk about Go in the Problem-solving topic? I am doing this early for two reasons: You need it for Assignment 1 For many of the (general purpose) algorithms throughout the course, we will use Go as example

4 About Python Code for Go and Assignment 1 I start using Python 3 code as example today So far, examples are only on slides Source code not released yet I want to do a final check for quality and consistency this weekend You will get the code for our Go1 program I will announce it when ready Plays random moves, but does not fill one point eyes This is also the code you will modify for Assignment 1 (Random NoGo Player)

5 What are Eyes and Why are they Useful? End of last class, we saw a problem with a true random player It keeps playing and playing, and even very strong stones keep dying Games would last VERY long, and result would have no meaning Solution: remove some of the most stupid moves, to make sure the game ends in reasonable time We remove so-called eye-filling moves

6 Eyes and Capturing An eye is a point that is surrounded by one color For the opponent: (illegal) suicide to play there... (A, B, C in top picture)...unless that point is the last liberty of the surrounding stones (bottom picture) - then it becomes a (legal) capture

7 Two Eyes are Safe Here, Black has one block surrounding two eyes A and B White cannot attack, both A and B are suicide Black is safe as long as Black leaves the eyes alone Remember you can always pass, no need to hurt your own stones Black should NEVER play A or B If Black fills second-last eye then White can capture

8 What is an Eye? Simple definition used here There are other kinds of eyes (later) 1 Single empty point 2 All neighbors occupied by stones of the same color 3 All these stones are connected Examples: eye in corner, edge of board, and center

9 Detecting Eyes Locally Most simple eyes can be detected locally Only look at neighbors and diagonals Corner, edge: need all (1 or 2) diagonals to connect Center: need at least 3 of 4 diagonals In principle, can connect along some longer path Pretty rare, ignore in program for now Example: A7 eye Stones A6 and B7 connected over a long path

10 Simple Eyes - Summary Random player keeps playing senselessly......unless we stop it from filling its eyes An eye is an empty point, surrounded by a connected block of stones A simple local definition of eye is good enough for now Very fast to check in program, only look at 8 neighbors and diagonals (at most) Having two (or more) eyes makes a block safe from capture Next topic: implementing Go board and rules

11 Implementing a Go Board and Go Rules Representing the board Updating the board after a move Recognize capture Checking for legal moves Recognize suicide and repetition (simple ko)

12 Why Bother with an Efficient Board Representation? Most game programs are based on search and simulation Billions of moves played and taken back during a game Playing strength strongly depends on amount of search So, make it as fast as possible Our first Python codes may be times slower than state of the art Mostly, that is due to algorithms and data structures, not Python...

13 Representing State of a Point Three possible states: empty, black or white We could use the new-ish Python 3 enumeration type https: //docs.python.org/3/library/enum.html class BoardColor(Enum): EMPTY = 0 BLACK = 1 WHITE = 2 In current program we just use integer codes for colors EMPTY = 0 BLACK = 1 WHITE = 2

14 Representing the Go Board - 2d Array MAXSIZE = 7 board = [[EMPTY for x in range(maxsize)] for y in range(maxsize)] print(board) board[3][4] = BLACK print(board) Most direct representation: 2-dimensional array Store a point on the board at coordinates [x][y] in array

15 Drawbacks of Two-dimensional Array Overhead from 2-d address calculation Need two variables (x, y) to represent a single point Often need two computations, for x, y separately Complex checking for boundary cases if x > 0 and y > 0 and x <= MAXSIZE and y <= MAXSIZE if statements introduce conditional branches and slow down execution

16 Go Board as One-dimensional Array Solution: use a simple 1-dimensional array From (x,y) to single index p = x + y * MAXSIZE Back from p to x, y by integer division and modulo operators x = p % MAXSIZE y = p // MAXSIZE Can also precompute the calculations Lookup tables, e.g. x = xcoord[p] Frequent operations use simple offset, constant time Go to neighbors and diagonals Check if on border, or has neighbor Many more..

17 Drawbacks of Simple One-dimensional Array Edges of board still needs special case treatment (lots of if statements) Index 6 and 7 are not neighbors... There is no neighbor upwards from 4... Similar for bottom edge

18 Solution: Add Padding Image source: gnugo/gnugo_15.html Solution: add extra padding Above board Below board Between rows For these points, store a new code "off the board" BORDER = 3 Many special edge cases can be avoided by only checking the content of the point

19 Summary and Comments for Board Representation Standard way for Go uses 1-d board with extra padding Other special purpose representations are possible: Bitsets, one set per color List of stones Cover board with small patterns, e.g. 3 3 squares Will use this as simple features later Optional - to learn more: see e.g. Board+Representation for detailed discussions for chess Next: Playing and Undoing moves

20 Playing and Undoing Moves play(p, color) Put stone of given color on point p Simplest case: just need board[p] = color Major complication: recognize captures and remove captured stones Closely related: check if move on p is legal, before playing it...

21 Capturing Stones How to find which opponent stones are captured? Black move A captures one stone Black move B does not capture anything... To decide whether B is a capture, we must look at the neighbors of the whole block We must find the liberty at C to decide it s no capture Update board: for stone in capturedby(p, color) board[stone] = EMPTY

22 Capturing Stones Algorithm How to find which opponent stones are captured? Look at all neighbors nb of p which are stones of opponent Check if nb is part of a block that loses its last liberty Algorithm is similar to floodfill in graphics Look at all stones connected to nb If any stone has a liberty (other than p), stop: no capture If no stone in the block has another liberty, then all are captured

23 Checking If Move is Legal islegal(p, color): 1 board[p] == EMPTY 2 not issuicide(p, color) 3 not repetition(p, color)

24 Checking Suicide Very similar to checking capture for the other color Main difference: the move can connect several blocks, and none of them may have another liberty See examples: Black A is suicide, Black B is not because liberty at C

25 Checking Repetition For now, only check for simple ko After capture of a single stone s: set kopoint = s After any other move: set kopoint = NULL When checking islegal(p, color): if p == kopoint and p would capture a single stone : p is illegal

26 Software Demo GoGui Attaching different Go programs Tools that come with GoGui GTP text commands

27 Summary and Outlook Discussed most of the basics of implementing Go Still to come: scoring at the end, taking back moves during search Discussed useful tools and GTP text interface

1010 Moves A move in Go is the action of a player to place his stone on a vacant intersection of the board.

1010 Moves A move in Go is the action of a player to place his stone on a vacant intersection of the board. Chapter 2 Basic Concepts 1000 Basic Concepts As for the rules, what was explained in the last chapter was concise enough. You will be able to start playing a game and learn more as you experience many

More information

Computing Science (CMPUT) 496

Computing Science (CMPUT) 496 Computing Science (CMPUT) 496 Search, Knowledge, and Simulations Martin Müller Department of Computing Science University of Alberta mmueller@ualberta.ca Winter 2017 Part IV Knowledge 496 Today - Mar 9

More information

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm Weight: 8% Individual Work: All assignments in this course are to be completed individually. Students are advised to read the guidelines

More information

Pay attention to how flipping of pieces is determined with each move.

Pay attention to how flipping of pieces is determined with each move. CSCE 625 Programing Assignment #5 due: Friday, Mar 13 (by start of class) Minimax Search for Othello The goal of this assignment is to implement a program for playing Othello using Minimax search. Othello,

More information

1 Modified Othello. Assignment 2. Total marks: 100. Out: February 10 Due: March 5 at 14:30

1 Modified Othello. Assignment 2. Total marks: 100. Out: February 10 Due: March 5 at 14:30 CSE 3402 3.0 Intro. to Concepts of AI Winter 2012 Dept. of Computer Science & Engineering York University Assignment 2 Total marks: 100. Out: February 10 Due: March 5 at 14:30 Note 1: To hand in your report

More information

Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, :59pm

Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, :59pm Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, 2017 11:59pm This will be our last assignment in the class, boohoo Grading: For this assignment, you will be graded traditionally,

More information

For slightly more detailed instructions on how to play, visit:

For slightly more detailed instructions on how to play, visit: Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! The purpose of this assignment is to program some of the search algorithms and game playing strategies that we have learned

More information

ENGR170 Assignment Problem Solving with Recursion Dr Michael M. Marefat

ENGR170 Assignment Problem Solving with Recursion Dr Michael M. Marefat ENGR170 Assignment Problem Solving with Recursion Dr Michael M. Marefat Overview The goal of this assignment is to find solutions for the 8-queen puzzle/problem. The goal is to place on a 8x8 chess board

More information

CMPUT 657: Heuristic Search

CMPUT 657: Heuristic Search CMPUT 657: Heuristic Search Assignment 1: Two-player Search Summary You are to write a program to play the game of Lose Checkers. There are two goals for this assignment. First, you want to build the smallest

More information

2. Review of Pawns p

2. Review of Pawns p Critical Thinking, version 2.2 page 2-1 2. Review of Pawns p Objectives: 1. State and apply rules of movement for pawns 2. Solve problems using pawns The main objective of this lesson is to reinforce the

More information

Color-matching Non-matching Symmetries Patterns Game

Color-matching Non-matching Symmetries Patterns Game Ages 6 to adult For 1 or 2 players 9 unique four-color squares MiniMatch-ITM Color-matching Non-matching Symmetries Patterns Game A product of Kadon Enterprises, Inc. MiniMatch-I is a trademark of Kadon

More information

CSE548, AMS542: Analysis of Algorithms, Fall 2016 Date: Sep 25. Homework #1. ( Due: Oct 10 ) Figure 1: The laser game.

CSE548, AMS542: Analysis of Algorithms, Fall 2016 Date: Sep 25. Homework #1. ( Due: Oct 10 ) Figure 1: The laser game. CSE548, AMS542: Analysis of Algorithms, Fall 2016 Date: Sep 25 Homework #1 ( Due: Oct 10 ) Figure 1: The laser game. Task 1. [ 60 Points ] Laser Game Consider the following game played on an n n board,

More information

Programming an Othello AI Michael An (man4), Evan Liang (liange)

Programming an Othello AI Michael An (man4), Evan Liang (liange) Programming an Othello AI Michael An (man4), Evan Liang (liange) 1 Introduction Othello is a two player board game played on an 8 8 grid. Players take turns placing stones with their assigned color (black

More information

Assignment 2 (Part 1 of 2), University of Toronto, CSC384 - Intro to AI, Winter

Assignment 2 (Part 1 of 2), University of Toronto, CSC384 - Intro to AI, Winter Assignment 2 (Part 1 of 2), University of Toronto, CSC384 - Intro to AI, Winter 2011 1 Computer Science 384 February 20, 2011 St. George Campus University of Toronto Homework Assignment #2 (Part 1 of 2)

More information

CS61B, Fall 2014 Project #2: Jumping Cubes(version 3) P. N. Hilfinger

CS61B, Fall 2014 Project #2: Jumping Cubes(version 3) P. N. Hilfinger CSB, Fall 0 Project #: Jumping Cubes(version ) P. N. Hilfinger Due: Tuesday, 8 November 0 Background The KJumpingCube game is a simple two-person board game. It is a pure strategy game, involving no element

More information

Final Project: Reversi

Final Project: Reversi Final Project: Reversi Reversi is a classic 2-player game played on an 8 by 8 grid of squares. Players take turns placing pieces of their color on the board so that they sandwich and change the color of

More information

a b c d e f g h 1 a b c d e f g h C A B B A C C X X C C X X C C A B B A C Diagram 1-2 Square names

a b c d e f g h 1 a b c d e f g h C A B B A C C X X C C X X C C A B B A C Diagram 1-2 Square names Chapter Rules and notation Diagram - shows the standard notation for Othello. The columns are labeled a through h from left to right, and the rows are labeled through from top to bottom. In this book,

More information

Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! Due (in dropbox) Tuesday, September 23, 9:34am

Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! Due (in dropbox) Tuesday, September 23, 9:34am Introduction to Artificial Intelligence CS 151 Programming Assignment 2 Mancala!! Due (in dropbox) Tuesday, September 23, 9:34am The purpose of this assignment is to program some of the search algorithms

More information

In the game of Chess a queen can move any number of spaces in any linear direction: horizontally, vertically, or along a diagonal.

In the game of Chess a queen can move any number of spaces in any linear direction: horizontally, vertically, or along a diagonal. CMPS 12A Introduction to Programming Winter 2013 Programming Assignment 5 In this assignment you will write a java program finds all solutions to the n-queens problem, for 1 n 13. Begin by reading the

More information

Assignment 2, University of Toronto, CSC384 - Intro to AI, Winter

Assignment 2, University of Toronto, CSC384 - Intro to AI, Winter Assignment 2, University of Toronto, CSC384 - Intro to AI, Winter 2014 1 Computer Science 384 March 5, 2014 St. George Campus University of Toronto Homework Assignment #2 Game Tree Search Due: Mon March

More information

BRITISH GO ASSOCIATION. Tournament rules of play 31/03/2009

BRITISH GO ASSOCIATION. Tournament rules of play 31/03/2009 BRITISH GO ASSOCIATION Tournament rules of play 31/03/2009 REFERENCES AUDIENCE AND PURPOSE 2 1. THE BOARD, STONES AND GAME START 2 2. PLAY 2 3. KOMI 2 4. HANDICAP 2 5. CAPTURE 2 6. REPEATED BOARD POSITION

More information

Analyzing Games: Solutions

Analyzing Games: Solutions Writing Proofs Misha Lavrov Analyzing Games: olutions Western PA ARML Practice March 13, 2016 Here are some key ideas that show up in these problems. You may gain some understanding of them by reading

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

Examples for Ikeda Territory I Scoring - Part 3

Examples for Ikeda Territory I Scoring - Part 3 Examples for Ikeda Territory I - Part 3 by Robert Jasiek One-sided Plays A general formal definition of "one-sided play" is not available yet. In the discussed examples, the following types occur: 1) one-sided

More information

The game of Reversi was invented around 1880 by two. Englishmen, Lewis Waterman and John W. Mollett. It later became

The game of Reversi was invented around 1880 by two. Englishmen, Lewis Waterman and John W. Mollett. It later became Reversi Meng Tran tranm@seas.upenn.edu Faculty Advisor: Dr. Barry Silverman Abstract: The game of Reversi was invented around 1880 by two Englishmen, Lewis Waterman and John W. Mollett. It later became

More information

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class http://www.clubpenguinsaraapril.com/2009/07/mancala-game-in-club-penguin.html The purpose of this assignment is to program some

More information

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger. Project #3: Checkers

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger. Project #3: Checkers UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS61B Fall 2004 P. N. Hilfinger Project #3: Checkers Due: 8 December 2004 1 Introduction Checkers

More information

Analyzing the Impact of Knowledge and Search in Monte Carlo Tree Search in Go

Analyzing the Impact of Knowledge and Search in Monte Carlo Tree Search in Go Analyzing the Impact of Knowledge and Search in Monte Carlo Tree Search in Go Farhad Haqiqat and Martin Müller University of Alberta Edmonton, Canada Contents Motivation and research goals Feature Knowledge

More information

CMPS 12A Introduction to Programming Programming Assignment 5 In this assignment you will write a Java program that finds all solutions to the n-queens problem, for. Begin by reading the Wikipedia article

More information

CSC 110 Lab 4 Algorithms using Functions. Names:

CSC 110 Lab 4 Algorithms using Functions. Names: CSC 110 Lab 4 Algorithms using Functions Names: Tic- Tac- Toe Game Write a program that will allow two players to play Tic- Tac- Toe. You will be given some code as a starting point. Fill in the parts

More information

CPSC 217 Assignment 3

CPSC 217 Assignment 3 CPSC 217 Assignment 3 Due: Friday November 24, 2017 at 11:55pm Weight: 7% Sample Solution Length: Less than 100 lines, including blank lines and some comments (not including the provided code) Individual

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

Go Combinatorics: The Recent Work of Dr. John Tromp and His Colleagues on the Number of Possible Go Positions, Games and their Length

Go Combinatorics: The Recent Work of Dr. John Tromp and His Colleagues on the Number of Possible Go Positions, Games and their Length Go Combinatorics: The Recent Work of Dr. John Tromp and His Colleagues on the Number of Possible Go Positions, Games and their Length By Peter Shotwell July 2010 This is a lightly edited version of one

More information

Second Annual University of Oregon Programming Contest, 1998

Second Annual University of Oregon Programming Contest, 1998 A Magic Magic Squares A magic square of order n is an arrangement of the n natural numbers 1,...,n in a square array such that the sums of the entries in each row, column, and each of the two diagonals

More information

Here is a step-by-step guide to playing a basic SCRABBLE game including rules, recommendations and examples of frequently asked questions.

Here is a step-by-step guide to playing a basic SCRABBLE game including rules, recommendations and examples of frequently asked questions. Here is a step-by-step guide to playing a basic SCRABBLE game including rules, recommendations and examples of frequently asked questions. Game Play 1. After tiles are counted, each team draws ONE LETTER

More information

University of Amsterdam. Encyclopedia of AI project. Tic-Tac-Toe. Authors: Andreas van Cranenburgh Ricus Smid. Supervisor: Maarten van Someren

University of Amsterdam. Encyclopedia of AI project. Tic-Tac-Toe. Authors: Andreas van Cranenburgh Ricus Smid. Supervisor: Maarten van Someren University of Amsterdam Encyclopedia of AI project Tic-Tac-Toe Authors: Andreas van Cranenburgh Ricus Smid Supervisor: Maarten van Someren January 27, 2007 Encyclopedia of AI, assignment 5 Tic-tac-toe

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

Jarl 3 Freeman 3 Spearman Chieftain Vala Berserker

Jarl 3 Freeman 3 Spearman Chieftain Vala Berserker In the long winters between the glorious summers of raids and exploration, warriors scheme and keep their intellects sharp through games of wits and chance. Ragnar, Rollo, Floki and even the Earl challenge

More information

Eight Queens Puzzle Solution Using MATLAB EE2013 Project

Eight Queens Puzzle Solution Using MATLAB EE2013 Project Eight Queens Puzzle Solution Using MATLAB EE2013 Project Matric No: U066584J January 20, 2010 1 Introduction Figure 1: One of the Solution for Eight Queens Puzzle The eight queens puzzle is the problem

More information

2 Textual Input Language. 1.1 Notation. Project #2 2

2 Textual Input Language. 1.1 Notation. Project #2 2 CS61B, Fall 2015 Project #2: Lines of Action P. N. Hilfinger Due: Tuesday, 17 November 2015 at 2400 1 Background and Rules Lines of Action is a board game invented by Claude Soucie. It is played on a checkerboard

More information

Game Playing in Prolog

Game Playing in Prolog 1 Introduction CIS335: Logic Programming, Assignment 5 (Assessed) Game Playing in Prolog Geraint A. Wiggins November 11, 2004 This assignment is the last formally assessed course work exercise for students

More information

Programming Problems 14 th Annual Computer Science Programming Contest

Programming Problems 14 th Annual Computer Science Programming Contest Programming Problems 14 th Annual Computer Science Programming Contest Department of Mathematics and Computer Science Western Carolina University April 8, 2003 Criteria for Determining Team Scores Each

More information

Optimal Yahtzee performance in multi-player games

Optimal Yahtzee performance in multi-player games Optimal Yahtzee performance in multi-player games Andreas Serra aserra@kth.se Kai Widell Niigata kaiwn@kth.se April 12, 2013 Abstract Yahtzee is a game with a moderately large search space, dependent on

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

Documentation and Discussion

Documentation and Discussion 1 of 9 11/7/2007 1:21 AM ASSIGNMENT 2 SUBJECT CODE: CS 6300 SUBJECT: ARTIFICIAL INTELLIGENCE LEENA KORA EMAIL:leenak@cs.utah.edu Unid: u0527667 TEEKO GAME IMPLEMENTATION Documentation and Discussion 1.

More information

Lab Exercise #10. Assignment Overview

Lab Exercise #10. Assignment Overview Lab Exercise #10 Assignment Overview You will work with a partner on this exercise during your lab session. Two people should work at one computer. Occasionally switch the person who is typing. Talk to

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

UNIT 13A AI: Games & Search Strategies

UNIT 13A AI: Games & Search Strategies UNIT 13A AI: Games & Search Strategies 1 Artificial Intelligence Branch of computer science that studies the use of computers to perform computational processes normally associated with human intellect

More information

Due: Sunday 13 November by 10:59pm Worth: 8%

Due: Sunday 13 November by 10:59pm Worth: 8% CSC 8 HF Project # General Instructions Fall Due: Sunday Novemer y :9pm Worth: 8% Sumitting your project You must hand in your work electronically, using the MarkUs system. Log in to https://markus.teach.cs.toronto.edu/csc8--9/en/main

More information

3. Bishops b. The main objective of this lesson is to teach the rules of movement for the bishops.

3. Bishops b. The main objective of this lesson is to teach the rules of movement for the bishops. page 3-1 3. Bishops b Objectives: 1. State and apply rules of movement for bishops 2. Use movement rules to count moves and captures 3. Solve problems using bishops The main objective of this lesson is

More information

YourTurnMyTurn.com: chess rules. Jan Willem Schoonhoven Copyright 2018 YourTurnMyTurn.com

YourTurnMyTurn.com: chess rules. Jan Willem Schoonhoven Copyright 2018 YourTurnMyTurn.com YourTurnMyTurn.com: chess rules Jan Willem Schoonhoven Copyright 2018 YourTurnMyTurn.com Inhoud Chess rules...1 The object of chess...1 The board...1 Moves...1 Captures...1 Movement of the different pieces...2

More information

UNIT 13A AI: Games & Search Strategies. Announcements

UNIT 13A AI: Games & Search Strategies. Announcements UNIT 13A AI: Games & Search Strategies 1 Announcements Do not forget to nominate your favorite CA bu emailing gkesden@gmail.com, No lecture on Friday, no recitation on Thursday No office hours Wednesday,

More information

Training a Back-Propagation Network with Temporal Difference Learning and a database for the board game Pente

Training a Back-Propagation Network with Temporal Difference Learning and a database for the board game Pente Training a Back-Propagation Network with Temporal Difference Learning and a database for the board game Pente Valentijn Muijrers 3275183 Valentijn.Muijrers@phil.uu.nl Supervisor: Gerard Vreeswijk 7,5 ECTS

More information

YourTurnMyTurn.com: Go-moku rules. Sjoerd Hemminga (sjoerdje) Copyright 2019 YourTurnMyTurn.com

YourTurnMyTurn.com: Go-moku rules. Sjoerd Hemminga (sjoerdje) Copyright 2019 YourTurnMyTurn.com YourTurnMyTurn.com: Go-moku rules Sjoerd Hemminga (sjoerdje) Copyright 2019 YourTurnMyTurn.com Inhoud Go-moku rules...1 Introduction and object of the board game...1 Tactics...1 Strategy...2 i Go-moku

More information

MAS336 Computational Problem Solving. Problem 3: Eight Queens

MAS336 Computational Problem Solving. Problem 3: Eight Queens MAS336 Computational Problem Solving Problem 3: Eight Queens Introduction Francis J. Wright, 2007 Topics: arrays, recursion, plotting, symmetry The problem is to find all the distinct ways of choosing

More information

Taffy Tangle. cpsc 231 assignment #5. Due Dates

Taffy Tangle. cpsc 231 assignment #5. Due Dates cpsc 231 assignment #5 Taffy Tangle If you ve ever played casual games on your mobile device, or even on the internet through your browser, chances are that you ve spent some time with a match three game.

More information

Movement of the pieces

Movement of the pieces Movement of the pieces Rook The rook moves in a straight line, horizontally or vertically. The rook may not jump over other pieces, that is: all squares between the square where the rook starts its move

More information

Artificial Intelligence Lecture 3

Artificial Intelligence Lecture 3 Artificial Intelligence Lecture 3 The problem Depth first Not optimal Uses O(n) space Optimal Uses O(B n ) space Can we combine the advantages of both approaches? 2 Iterative deepening (IDA) Let M be a

More information

Tac Due: Sep. 26, 2012

Tac Due: Sep. 26, 2012 CS 195N 2D Game Engines Andy van Dam Tac Due: Sep. 26, 2012 Introduction This assignment involves a much more complex game than Tic-Tac-Toe, and in order to create it you ll need to add several features

More information

CS 4700: Artificial Intelligence

CS 4700: Artificial Intelligence CS 4700: Foundations of Artificial Intelligence Fall 2017 Instructor: Prof. Haym Hirsh Lecture 10 Today Adversarial search (R&N Ch 5) Tuesday, March 7 Knowledge Representation and Reasoning (R&N Ch 7)

More information

MODULE: DESIGNING AND DEVELOPING OBJECT-ORIENTED COMPUTER PROGRAMS ASSIGNMENT TITLE: WORDSEARCH MARCH 2014

MODULE: DESIGNING AND DEVELOPING OBJECT-ORIENTED COMPUTER PROGRAMS ASSIGNMENT TITLE: WORDSEARCH MARCH 2014 MDU: DSGG D DVPG BJCT-TD CMPUT PGMS SSGMT TT: WDSC MC 2014 mportant otes: Please refer to the ssignment Presentation equirements for advice on how to set out your assignment. These can be found on the

More information

By David Anderson SZTAKI (Budapest, Hungary) WPI D2009

By David Anderson SZTAKI (Budapest, Hungary) WPI D2009 By David Anderson SZTAKI (Budapest, Hungary) WPI D2009 1997, Deep Blue won against Kasparov Average workstation can defeat best Chess players Computer Chess no longer interesting Go is much harder for

More information

Othello/Reversi using Game Theory techniques Parth Parekh Urjit Singh Bhatia Kushal Sukthankar

Othello/Reversi using Game Theory techniques Parth Parekh Urjit Singh Bhatia Kushal Sukthankar Othello/Reversi using Game Theory techniques Parth Parekh Urjit Singh Bhatia Kushal Sukthankar Othello Rules Two Players (Black and White) 8x8 board Black plays first Every move should Flip over at least

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

Divorced, Beheaded, Died, Divorced, Beheaded, Survived.

Divorced, Beheaded, Died, Divorced, Beheaded, Survived. Divorced, Beheaded, Died, Divorced, Beheaded, Survived. A History Repeats Itself game for the piecepack Copyright 2003 By: Eric Witt V3.0 04/14/03 2-4 players, 30 minutes for standard game, longer for

More information

! Denver, CO! Demystifying Computing with Magic, continued

! Denver, CO! Demystifying Computing with Magic, continued 2012-03-07! Denver, CO! Demystifying Computing with Magic, continued Special Session Overview Motivation The 7 magic tricks ú Real-Time 4x4 Magic Square ú Left/Right Game ú The Tricky Dice ú The Numbers

More information

1, 2,, 10. Example game. Pieces and Board: This game is played on a 1 by 10 board. The initial position is an empty board.

1, 2,, 10. Example game. Pieces and Board: This game is played on a 1 by 10 board. The initial position is an empty board. ,,, 0 Pieces and Board: This game is played on a by 0 board. The initial position is an empty board. To Move: Players alternate placing either one or two pieces on the leftmost open squares. In this game,

More information

The 2013 British Informatics Olympiad

The 2013 British Informatics Olympiad Sponsored by Time allowed: 3 hours The 2013 British Informatics Olympiad Instructions You should write a program for part (a) of each question, and produce written answers to the remaining parts. Programs

More information

AI Plays Yun Nie (yunn), Wenqi Hou (wenqihou), Yicheng An (yicheng)

AI Plays Yun Nie (yunn), Wenqi Hou (wenqihou), Yicheng An (yicheng) AI Plays 2048 Yun Nie (yunn), Wenqi Hou (wenqihou), Yicheng An (yicheng) Abstract The strategy game 2048 gained great popularity quickly. Although it is easy to play, people cannot win the game easily,

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

After learning the Rules, What should beginners learn next?

After learning the Rules, What should beginners learn next? After learning the Rules, What should beginners learn next? Chess Puzzling Presentation Nancy Randolph Capital Conference June 21, 2016 Name Introduction to Chess Test 1. How many squares does a chess

More information

A1 Problem Statement Unit Pricing

A1 Problem Statement Unit Pricing A1 Problem Statement Unit Pricing Given up to 10 items (weight in ounces and cost in dollars) determine which one by order (e.g. third) is the cheapest item in terms of cost per ounce. Also output the

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

Mind Ninja The Game of Boundless Forms

Mind Ninja The Game of Boundless Forms Mind Ninja The Game of Boundless Forms Nick Bentley 2007-2008. email: nickobento@gmail.com Overview Mind Ninja is a deep board game for two players. It is 2007 winner of the prestigious international board

More information

CHESS SOLUTION PREP GUIDE.

CHESS SOLUTION PREP GUIDE. CHESS SOLUTION PREP GUIDE. Article 1 1minute 46 seconds 5minutes. 1. Can a player capture the opponents king?---------------------------------------------------[1] 2. When does a player have the move?

More information

Tic-tac-toe. Lars-Henrik Eriksson. Functional Programming 1. Original presentation by Tjark Weber. Lars-Henrik Eriksson (UU) Tic-tac-toe 1 / 23

Tic-tac-toe. Lars-Henrik Eriksson. Functional Programming 1. Original presentation by Tjark Weber. Lars-Henrik Eriksson (UU) Tic-tac-toe 1 / 23 Lars-Henrik Eriksson Functional Programming 1 Original presentation by Tjark Weber Lars-Henrik Eriksson (UU) Tic-tac-toe 1 / 23 Take-Home Exam Take-Home Exam Lars-Henrik Eriksson (UU) Tic-tac-toe 2 / 23

More information

Lecture 33: How can computation Win games against you? Chess: Mechanical Turk

Lecture 33: How can computation Win games against you? Chess: Mechanical Turk 4/2/0 CS 202 Introduction to Computation " UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department Lecture 33: How can computation Win games against you? Professor Andrea Arpaci-Dusseau Spring 200

More information

GENERALIZATION: RANK ORDER FILTERS

GENERALIZATION: RANK ORDER FILTERS GENERALIZATION: RANK ORDER FILTERS Definition For simplicity and implementation efficiency, we consider only brick (rectangular: wf x hf) filters. A brick rank order filter evaluates, for every pixel in

More information

C SC 483 Chess and AI: Computation and Cognition. Lecture 3 September 10th

C SC 483 Chess and AI: Computation and Cognition. Lecture 3 September 10th C SC 483 Chess and AI: Computation and Cognition Lecture 3 September th Programming Project A series of tasks There are lots of resources and open source code available for chess Please don t simply copy

More information

Over ===* Three games of strategy and chance Unique solitaire puzzles. For I to 4 players Ages 12 to adult. PassTM

Over ===* Three games of strategy and chance Unique solitaire puzzles. For I to 4 players Ages 12 to adult. PassTM Over ===* For I to 4 players Ages 12 to adult PassTM Three games of strategy and chance Unique solitaire puzzles A product of Kadon Enterprises, Inc. Over-Pass is a trademark of Arthur Blumberg, used by

More information

Senior Math Circles February 10, 2010 Game Theory II

Senior Math Circles February 10, 2010 Game Theory II 1 University of Waterloo Faculty of Mathematics Centre for Education in Mathematics and Computing Senior Math Circles February 10, 2010 Game Theory II Take-Away Games Last Wednesday, you looked at take-away

More information

Image processing. Image formation. Brightness images. Pre-digitization image. Subhransu Maji. CMPSCI 670: Computer Vision. September 22, 2016

Image processing. Image formation. Brightness images. Pre-digitization image. Subhransu Maji. CMPSCI 670: Computer Vision. September 22, 2016 Image formation Image processing Subhransu Maji : Computer Vision September 22, 2016 Slides credit: Erik Learned-Miller and others 2 Pre-digitization image What is an image before you digitize it? Continuous

More information

Words Mobile Ready Game Documentation

Words Mobile Ready Game Documentation Words Mobile Ready Game Documentation Joongly games 2016 Words Mobile Ready Game Contents Overview... 3 Quick Start... 3 Game rules... 4 Basics... 4 Board... 4 Tiles... 4 Extra Point Values... 4 Game start...

More information

Problem F. Chessboard Coloring

Problem F. Chessboard Coloring Problem F Chessboard Coloring You have a chessboard with N rows and N columns. You want to color each of the cells with exactly N colors (colors are numbered from 0 to N 1). A coloring is valid if and

More information

Introduction to DSP ECE-S352 Fall Quarter 2000 Matlab Project 1

Introduction to DSP ECE-S352 Fall Quarter 2000 Matlab Project 1 Objective: Introduction to DSP ECE-S352 Fall Quarter 2000 Matlab Project 1 This Matlab Project is an extension of the basic correlation theory presented in the course. It shows a practical application

More information

Project Connect Four (Version 1.1)

Project Connect Four (Version 1.1) OPI F2008: Object-Oriented Programming Carsten Schürmann Date: April 2, 2008 Project Connect Four (Version 1.1) Guidelines While we acknowledge that beauty is in the eye of the beholder, you should nonetheless

More information

Comprehensive Rules Document v1.1

Comprehensive Rules Document v1.1 Comprehensive Rules Document v1.1 Contents 1. Game Concepts 100. General 101. The Golden Rule 102. Players 103. Starting the Game 104. Ending The Game 105. Kairu 106. Cards 107. Characters 108. Abilities

More information

Chess Handbook: Course One

Chess Handbook: Course One Chess Handbook: Course One 2012 Vision Academy All Rights Reserved No Reproduction Without Permission WELCOME! Welcome to The Vision Academy! We are pleased to help you learn Chess, one of the world s

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

Mage Tower Rulebook Ver 0.1

Mage Tower Rulebook Ver 0.1 Mage Tower Rulebook Ver 0.1 This is a very early version of the rulebook, and is one of the last things being worked on while the Kickstarter is happening. All the text to play the game is here, but the

More information

John Griffin Chess Club Rules and Etiquette

John Griffin Chess Club Rules and Etiquette John Griffin Chess Club Rules and Etiquette 1. Chess sets must be kept together on the assigned table at all times, with pieces returned to starting position immediately following each game. 2. No communication

More information

Lesson 1: The Rules of Pentago

Lesson 1: The Rules of Pentago Lesson 1: The Rules of Pentago 1.1 Learning the Rules The Board The Pentago game board is a 6x6 grid of places, each containing a detent or divot (a small round depression in the surface) that can hold

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

Using Artificial intelligent to solve the game of 2048

Using Artificial intelligent to solve the game of 2048 Using Artificial intelligent to solve the game of 2048 Ho Shing Hin (20343288) WONG, Ngo Yin (20355097) Lam Ka Wing (20280151) Abstract The report presents the solver of the game 2048 base on artificial

More information

Game-playing AIs: Games and Adversarial Search FINAL SET (w/ pruning study examples) AIMA

Game-playing AIs: Games and Adversarial Search FINAL SET (w/ pruning study examples) AIMA Game-playing AIs: Games and Adversarial Search FINAL SET (w/ pruning study examples) AIMA 5.1-5.2 Games: Outline of Unit Part I: Games as Search Motivation Game-playing AI successes Game Trees Evaluation

More information

CSE 573 Problem Set 1. Answers on 10/17/08

CSE 573 Problem Set 1. Answers on 10/17/08 CSE 573 Problem Set. Answers on 0/7/08 Please work on this problem set individually. (Subsequent problem sets may allow group discussion. If any problem doesn t contain enough information for you to answer

More information

Comparing Methods for Solving Kuromasu Puzzles

Comparing Methods for Solving Kuromasu Puzzles Comparing Methods for Solving Kuromasu Puzzles Leiden Institute of Advanced Computer Science Bachelor Project Report Tim van Meurs Abstract The goal of this bachelor thesis is to examine different methods

More information

A Complex Systems Introduction to Go

A Complex Systems Introduction to Go A Complex Systems Introduction to Go Eric Jankowski CSAAW 10-22-2007 Background image by Juha Nieminen Wei Chi, Go, Baduk... Oldest board game in the world (maybe) Developed by Chinese monks Spread to

More information

Retrograde Analysis of Woodpush

Retrograde Analysis of Woodpush Retrograde Analysis of Woodpush Tristan Cazenave 1 and Richard J. Nowakowski 2 1 LAMSADE Université Paris-Dauphine Paris France cazenave@lamsade.dauphine.fr 2 Dept. of Mathematics and Statistics Dalhousie

More information

The Basic Rules of Chess

The Basic Rules of Chess Introduction The Basic Rules of Chess One of the questions parents of young children frequently ask Chess coaches is: How old does my child have to be to learn chess? I have personally taught over 500

More information