1 Selected Goodies of DarkThought Ernst A. Heinz M.I.T. Laboratory for Computer Science (until June 2001)

Slides:



Advertisements
Similar presentations
Maven: World-Championship- Caliber Scrabble Tim Ott April 8 th, 2005.
Advertisements

Multilevel Page Tables
Anthony Cozzie. Quite possibly the nerdiest activity in the world But actually more fun than human chess Zappa o alpha-beta searcher, with a lot of tricks.
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.
Operating Systems Lecture 10 Issues in Paging and Virtual Memory Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing.
ICS-271:Notes 6: 1 Notes 6: Game-Playing ICS 271 Fall 2008.
Applied Neuro-Dynamic Programming in the Game of Chess James Gideon.
Application of Artificial intelligence to Chess Playing Capstone Design Project 2004 Jason Cook Bitboards  Bitboards are 64 bit unsigned integers, with.
Lecture 12 Last time: CSPs, backtracking, forward checking Today: Game Playing.
Adversarial Search CSE 473 University of Washington.
Domain Name System. DNS is a client/server protocol which provides Name to IP Address Resolution.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
1 Hashing (Walls & Mirrors - end of Chapter 12). 2 I hate quotations. Tell me what you know. – Ralph Waldo Emerson.
Intelligence for Games and Puzzles1 Minimax to fixed depth Where the game tree is too large.
UnInformed Search What to do when you don’t know anything.
November 10, 2009Introduction to Cognitive Science Lecture 17: Game-Playing Algorithms 1 Decision Trees Many classes of problems can be formalized as search.
CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)
Run time vs. Compile time
ICS-271:Notes 6: 1 Notes 6: Game-Playing ICS 271 Fall 2006.
CS 206 Introduction to Computer Science II 12 / 10 / 2008 Instructor: Michael Eckmann.
A Low-Power Low-Memory Real-Time ASR System. Outline Overview of Automatic Speech Recognition (ASR) systems Sub-vector clustering and parameter quantization.
 Structured peer to peer overlay networks are resilient – but not secure.  Even a small fraction of malicious nodes may result in failure of correct.
Tree-Structured Indexes. Range Searches ``Find all students with gpa > 3.0’’ –If data is in sorted file, do binary search to find first such student,
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.
Database Management 8. course. Query types Equality query – Each field has to be equal to a constant Range query – Not all the fields have to be equal.
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.
Algorithms & Data Structures for Games
Chapter 11 Indexing & Hashing. 2 n Sophisticated database access methods n Basic concerns: access/insertion/deletion time, space overhead n Indexing 
CSE 501N Fall ‘09 11: Data Structures: Stacks, Queues, and Maps Nick Leidenfrost October 6, 2009.
Games. Adversaries Consider the process of reasoning when an adversary is trying to defeat our efforts In game playing situations one searches down the.
B + -Trees. Motivation An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations.
Chess and AI Group Members Abhishek Sugandhi Sanjeet Khaitan Gautam Solanki
Cilk Pousse James Process CS534. Overview Introduction to Pousse Searching Evaluation Function Move Ordering Conclusion.
IWEC20021 Threat Stacks to Guide Pruning and Search Extensions in Shogi Reijer Grimbergen Department of Information Science Saga University, Japan.
PYIWIT'021 Threat Analysis to Reduce the Effects of the Horizon Problem in Shogi Reijer Grimbergen Department of Information Science Saga University.
Game Playing Revision Mini-Max search Alpha-Beta pruning General concerns on games.
Today’s Topics Playing Deterministic (no Dice, etc) Games –Mini-max –  -  pruning –ML and games? 1997: Computer Chess Player (IBM’s Deep Blue) Beat Human.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Virtual Memory Hardware.
Collections Data structures in Java. OBJECTIVE “ WHEN TO USE WHICH DATA STRUCTURE ” D e b u g.
Peer to Peer Network Design Discovery and Routing algorithms
Chess Strategies Component Skills Strategies Prototype Josh Waters, Ty Fenn, Tianyu Chen.
Parallel Programming in Chess Simulations Tyler Patton.
Week 9 - Monday.  What did we talk about last time?  Practiced with red-black trees  AVL trees  Balanced add.
ARTIFICIAL INTELLIGENCE (CS 461D) Princess Nora University Faculty of Computer & Information Systems.
Hyperion :High Volume Stream Archival Divya Muthukumaran.
Adversarial Search and Game Playing Russell and Norvig: Chapter 6 Slides adapted from: robotics.stanford.edu/~latombe/cs121/2004/home.htm Prof: Dekang.
Parallel Programming in Chess Simulations Part 2 Tyler Patton.
W4118 Operating Systems Instructor: Junfeng Yang.
Chapter 5 Ranking with Indexes. Indexes and Ranking n Indexes are designed to support search  Faster response time, supports updates n Text search engines.
Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications * CS587x Lecture Department of Computer Science Iowa State University *I. Stoica,
Search: Games & Adversarial Search Artificial Intelligence CMSC January 28, 2003.
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
CS422 Principles of Database Systems Indexes
Game Playing Why do AI researchers study game playing?
#1 Chess Engine of Spring 2017 at S&T
CSE-291 Cloud Computing, Fall 2016 Kesden
CS Fall 2016 (Shavlik©), Lecture 11, Week 6
Adversarial Search and Game Playing (Where making good decisions requires respecting your opponent) R&N: Chap. 6.
October 30th – Priority QUeues
Dakota Ewigman Jacob Zimmermann
Searching CLRS, Sections 9.1 – 9.3.
Database Design and Programming
Search.
Search.
PN, PN2 and PN* in Lines of Action
Games & Adversarial Search
Minimax Trees: Utility Evaluation, Tree Evaluation, Pruning
Presentation transcript:

1 Selected Goodies of DarkThought Ernst A. Heinz M.I.T. Laboratory for Computer Science (until June 2001)

2 Overview 1.Previously Published Specialties 2.More on Material Signatures 3.Caching and Hash-Table Tricks 4.Details of Search Extensions 5.Top-level Search Specifics

3 Previously Published Specialties Adaptive Null-Move Pruning (1999) (reduction factor R varies with search depth and material) Extd. Futility Pruning, Limited Razoring (1998) (static forward pruning at pre- and pre-pre-frontier nodes) Efficient Interior-Node Recognition (1998) (material signatures, perfect endgame knowledge) Knowledgeable Endgame Databases (1999) (in RAM, a-priori knowledge for compression & indexing)

4 Material Signatures (I) bit vectors of available piece types ( Q R B N P =  R+N+P yes, but no Q or B) versatile abstraction of material balance excellent for table indexing (e.g. evaluation) for other “knowledge questions” too ( m_sig & X == X  test signature for presence of X)

5 Material Signatures (II) efficient MVV/LVA capture generation a0_sig = mat_sig(side); v_sig = mat_sig(opponent); while ((mvv = MVV_clear(&v_sig)) != 0) { a_sig = a0_sig; while ((lva=LVA_clear(&a_sig)) != 0) { gen_caps(mvv, lva, &caps, &dead); if (dead) clear_bit(a0_sig, lva); }}

6 King+Pawn Evaluation Caching separate tables for P and K+P standard (1x P, 1x bK+P, 1x wK+P  3x accesses, 3x hash locks) idea: embed table for P in those of K+P (pros: less accesses and less “wasted” space for hash locks, cons: lower hash efficiency for pure P accesses) trick: also use pure P hash key in K+P ( retains hash efficiency of P accesses despite K+P misses)

7 Other Hash-Table Tricks store static evaluation scores in TT maintain additional evaluation cache (hit rates poor in middlegames, good in endgames, use full hash key as index and simply overwrite for replacement) save mate-threat and single legal move information in TT (for efficient move generation and extensions later on)

8 Details of Search Extensions (I) disabled in upper tree to prevent search blow-up: –check extensions in single major-piece endgames –mate-threat extensions (except for single-reply nodes) disabled in whole tree to prevent search blow-up: –check ext. in Pawn and single minor-piece endgames enabled near horizon to cope with null-move failures: –direct mate-threat extensions if defending side has great material advantage while opponent pieces still dangerous

9 Details of Search Extensions (II) various different Pawn extensions: –all Pawn moves to 7 th / 2 nd rank (captures and pushes) –attacks on two enemy Pawns on 7 th / 2 nd in Pawn endings –midgame pushes attacking Pawns in enemy King shield sophisticated passed-Pawn extensions: –pushes to 6 th / 3 rd rank in endings or near search horizon –pushes and some (all) captures to 5 th +6 th / 3 rd +4 th rank in (very) late endings (at most one piece  very late game)

10 Top-level Search Specifics extensive static root analysis (“oracle” with automatic management of all hash tables) true-value searches in first 2 iterations (  good initial aspiration window and hash fill, speed OK) PVS with lazy alpha-bounding and narrow aspiration window (about 0.25 Pawns)

11 Top-level Alpha Bounding direct resolution of new best moves not necessary (resolve bound only after next MWS fails high) lazy  resolve by single researches and delay top- level failures also across iterations time-controlled  if remaining search time less than 0.3*target time, resolve directly, otherwise allocate more time to finish “shaky” iteration (resolution delay across iterations acts like a PV extension)

12 Epilogue Countless treasures wait to be unearthed in each and every single game-playing program. Please, everybody, publish them !!!