CPS 100, Spring 2008 7.1 Search, Backtracking,Heuristics l How do you find a needle in a haystack?  How does a computer play chess?  Why would you write.

Slides:



Advertisements
Similar presentations
Adversarial Search We have experience in search where we assume that we are the only intelligent being and we have explicit control over the “world”. Lets.
Advertisements

Computers playing games. One-player games Puzzle: Place 8 queens on a chess board so that no two queens attack each other (i.e. on the same row, same.
ICS-271:Notes 6: 1 Notes 6: Game-Playing ICS 271 Fall 2008.
CPS 100, Fall Backtracking by image search.
Announcements Assignment #4 is due tonight. Last lab program is going to be assigned this Wednesday. ◦ A backtracking problem.
CompSci 100e Program Design and Analysis II March 3, 2011 Prof. Rodger CompSci 100e, Spring
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
CompSci Recursion & Minimax Playing Against the Computer Recursion & the Minimax Algorithm Key to Acing Computer Science If you understand everything,
Backtracking COP Backtracking  Backtracking is a technique used to solve problems with a large search space, by systematically trying and eliminating.
Backtracking What is backtracking?
This time: Outline Game playing The minimax algorithm
Game Playing CSC361 AI CSC361: Game Playing.
ICS-271:Notes 6: 1 Notes 6: Game-Playing ICS 271 Fall 2006.
CIS 310: Visual Programming, Spring 2006 Western State College 310: Visual Programming Othello.
Alpha-Beta Search. 2 Two-player games The object of a search is to find a path from the starting position to a goal position In a puzzle-type problem,
Backtracking.
1 Adversary Search Ref: Chapter 5. 2 Games & A.I. Easy to measure success Easy to represent states Small number of operators Comparison against humans.
Game Trees: MiniMax strategy, Tree Evaluation, Pruning, Utility evaluation Adapted from slides of Yoonsuck Choe.
Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning CPSC 315 – Programming Studio Spring 2008 Project 2, Lecture 2 Adapted from slides of Yoonsuck.
Minimax.
Game Playing Chapter 5. Game playing §Search applied to a problem against an adversary l some actions are not under the control of the problem-solver.
Game Playing.
Game Playing Chapter 5. Game playing §Search applied to a problem against an adversary l some actions are not under the control of the problem-solver.
Mark Dunlop, Computer and Information Sciences, Strathclyde University 1 Algorithms & Complexity 5 Games Mark D Dunlop.
CPS 100e, Spring Day, Week, Month Overview l Backtracking p/review  Boggle  APT l Assignment review  Boggle  APT l PQ Overview.
CSE 143 Lecture 17 More Recursive Backtracking reading: "Appendix R" on course web site slides created by Marty Stepp and Hélène Martin
For Wednesday Read Weiss, chapter 12, section 2 Homework: –Weiss, chapter 10, exercise 36 Program 5 due.
CSE 143 Lecture 17 More Recursive Backtracking reading: "Appendix R" on course web site slides created by Marty Stepp and Hélène Martin
Game Playing. Towards Intelligence? Many researchers attacked “intelligent behavior” by looking to strategy games involving deep thought. Many researchers.
CPS 100, Fall PFTN2Wks l Making progress on Boggle assignment  Many, many classes, each designed to do one thing  Some related by inheritance,
Games. Adversaries Consider the process of reasoning when an adversary is trying to defeat our efforts In game playing situations one searches down the.
Announcements This Wednesday, Class and Labs are cancelled! The last lab is due this Wednesday … how many people are planning on doing it? Finally posted.
Search exploring the consequences of possible actions.
CPS 100, Fall GridGame APT How would you solve this problem using recursion?
CPS Backtracking, Search, Heuristics l Many problems require an approach similar to solving a maze  Certain mazes can be solved using the “right-hand”
The "8 Queens" problem Consider the problem of trying to place 8 queens on a chess board such that no queen can attack another queen. What are the "choices"?
CompSci 100e 6.1 Plan for the week l More recursion examples l Backtracking  Exhaustive incremental search  When we a potential solution is invalid,
Game tree search Chapter 6 (6.1 to 6.3 and 6.6) cover games. 6.6 covers state of the art game players in particular. 6.5 covers games that involve uncertainty.
CompSci 100 Prog Design and Analysis II Oct 26, 2010 Prof. Rodger CPS 100, Fall
CSE 143 Lecture 18 More Recursive Backtracking slides created by Marty Stepp
Backtracking & Brute Force Optimization Intro2CS – weeks
ARTIFICIAL INTELLIGENCE (CS 461D) Princess Nora University Faculty of Computer & Information Systems.
CompSci Backtracking, Search, Heuristics l Many problems require an approach similar to solving a maze ä Certain mazes can be solved using the.
CSE 143 Lecture 13 Recursive Backtracking slides created by Ethan Apter
Contest Algorithms January 2016 Pseudo-code for backtracking search, and three examples (all subsets, permutations, and 8- queens). 4. Backtracking 1Contest.
CPS Backtracking, Search, Heuristics l Many problems require an approach similar to solving a maze ä Certain mazes can be solved using the “right-hand”
CompSci Recursion & Minimax Recursion & the Minimax Algorithm Key to Acing Computer Science If you understand everything, ace your computer science.
Artificial Intelligence in Game Design Board Games and the MinMax Algorithm.
CPS 100, Spring Search, Trees, Games, Backtracking l Trees help with search  Set, map: binary search tree, balanced and otherwise  Quadtree.
Understanding AI of 2 Player Games. Motivation Not much experience in AI (first AI project) and no specific interests/passion that I wanted to explore.
CSE 143 read: 12.5 Lecture 18: recursive backtracking.
TWTG What work is still to come APT, Huff, APT
Game playing Types of games Deterministic vs. chance
TWTG What work is still to come APT, Huff, APT
Backtracking, Search, Heuristics
CSCI 104 Backtracking Search
The "8 Queens" problem Consider the problem of trying to place 8 queens on a chess board such that no queen can attack another queen. What are the "choices"?
Analysis and design of algorithm
Alpha-Beta Search.
adapted from Recursive Backtracking by Mike Scott, UT Austin
Alpha-Beta Search.
Alpha-Beta Search.
Alpha-Beta Search.
The "8 Queens" problem Consider the problem of trying to place 8 queens on a chess board such that no queen can attack another queen. What are the "choices"?
Alpha-Beta Search.
Backtracking, Search, Heuristics
Data Structures and Algorithms
Announcements Assignment #4 is due tonight. Last lab program is going to be assigned this Wednesday. ◦ A backtracking problem.
Backtracking, Search, Heuristics
Owen Astrachan November 9, 2018
Presentation transcript:

CPS 100, Spring Search, Backtracking,Heuristics l How do you find a needle in a haystack?  How does a computer play chess?  Why would you write that program?  l How does Mapquest/Googlemap find routes from one place to another?  Shortest path algorithms  Longest path algorithms l Why are these videos relevant? Copyright issues?  

CPS 100, Spring Exhaustive Search/Heuristics l We use binary search trees to organize data, in searching we don’t need to examine all the data to find what we’re looking for  Where is the smallest item in a search tree? Largest?  How are trees balanced? l What do we do when the search space is huge?  How many chess boards are there?  How many routes are there between my house and yours? l Exhaustive search: look at everything!

CPS 100, Spring Classic problem: N queens l Can queens be placed on a chess board so that no queens attack each other?  Easily place two queens  What about 8 queens? l Make the board NxN, this is the N queens problem  Place one queen/column  Horiz/Vert/Diag attacks l Backtracking  Tentative placement  Recurse, if ok done!  If fail, undo tentative, retry l wikipedia-n-queens wikipedia-n-queens

CPS 100, Spring Backtracking idea with N queens l Try to place a queen in each column in turn  Try first row in column C, if ok, move onto next column  If solved, great, otherwise try next row in column C, place queen, move onto the next column Must unplace the placed queen to keep going l What happens when we start in a column, where to start?  If we fail, move back to previous column (which remembers where it is/failed)  When starting in a column anew, start at beginning When backing up, try next location, not beginning l Backtracking in general, record an attempt go forward  If going forward fails, undo the record and backup

CPS 100, Spring N queens backtracking: Queens.java public boolean solve(int col){ if (col == mySize) return true; // try each row until all are tried for(int r=0; r < mySize; r++){ if (myBoard.safeToPlace(r,col)){ myBoard.setQueen(r,col,true); if (solve(col+1)){ return true; } myBoard.setQueen(r,col,false); } return false; }

CPS 100, Spring Basic ideas in backtracking search l We need to be able to enumerate all possible choices/moves  We try these choices in order, committing to a choice  If the choice doesn’t pan out we must undo the choice This is the backtracking step, choices must be undoable l Process is inherently recursive, so we need to know when the search finishes  When all columns tried in N queens  When we have found the exit in a maze  When every possible moved tried in Tic-tac-toe or chess? Is there a difference between these games? l Summary: enumerate choices, try a choice, undo a choice, this is brute force search: try everything

CPS 100, Spring Pruning vs. Exhaustive Search l If we consider every possible placement of 4 queens on a 4x4 board, how many are there? (N queens)  4x4x4x4 if we don’t pay attention to any attacks  4x3x2x1 if we avoid attacks in same row l What about if we avoid diagonal attacks?  Pruning search space makes more search possible, still could be lots of searching to do! l Estimate how long to calculate # solutions to the N- queens problem with our Java code….

CPS 100, Spring Queens Details l How do we know when it’s safe to place a queen?  No queen in same row, or diagonal  For each column, store the row that a queen is in  See QBoard.java for details l For GUI version, we use a decorator  The QBoardGUI is an IQueenState class and it has an IQueenState object in it  Appears as an IQueenState to client, but uses an existing one to help do its work  One of many object oriented design patterns, seen in Huff in the BitInputStream class

CPS 100, Spring Computer v. Human in Games l Computers can explore a large search space of moves quickly  How many moves possible in chess, for example? l Computers cannot explore every move (why) so must use heuristics  Rules of thumb about position, strategy, board evaluation  Try a move, undo it and try another, track the best move l What do humans do well in these games? What about computers?  What about at Duke?

CPS 100, Spring Games at Duke l Alan Biermann  Natural language processing  Compsci 1: Greate Ideas  Duchess, checkers, chess l Tom Truscott  Duke undergraduate working with/for Biermann  Usenet: online community l Second EFF Pioneer Award (with Vint Cerf!) Second EFF Pioneer Award (with Vint Cerf!)

CPS 100, Spring Heuristics l A heuristic is a rule of thumb, doesn’t always work, isn’t guaranteed to work, but useful in many/most cases  Search problems that are “big” often can be approximated or solved with the right heuristics l What heuristic is good for Sudoku?  Is there always a no-reasoning move, e.g., 5 goes here?  What about “if I put a 5 here, then…”  Do something else? l What other optimizations/improvements can we make?  For chess, checkers: good heuristics, good data structures

CPS 100, Spring Boggle Program

CPS 100, Spring Boggle Search for Word l Starting at board location (row,col) to find a string s  We want to keep track of where we are in the string  We want to keep track of what board locations we’ve used l How do we know when we’re done?  Base case of recursive, backtracking call  Where we are in the string? l How do we keep track of used locations?  Store in array list: tentatively use current one, recurse  If we don’t succeed, take off the last one stored!

CPS 100, Spring Backtracking, minimax, game search l We’ll use tic-tac-toe to illustrate the idea, but it’s a silly game to show the power of the method  What games might be better? Problems? l Minimax idea: two players, one maximizes score, the other minimizes score, search complete/partial game tree for best possible move  In tic-tac-toe we can search until the end-of-the game, but this isn’t possible in general, why not?  Use static board evaluation functions instead of searching all the way until the game ends l Minimax leads to alpha-beta search, then to other rules and heuristics

CPS 100, Spring Minimax, see TicTac.java l Players alternate, one might be computer, one human (or two computer players) l Simple rules: win scores +10, loss scores –10, tie is zero  X maximizes, O minimizes l Assume opponent plays smart  What happens otherwise? l As game tree is explored is there redundant search?  What can we do about this? X O X X O X X O X X X O X O X O X O X O X O X O X X O X O