Inside HARUKA - PowerPoint PPT Presentation

About This Presentation
Title:

Inside HARUKA

Description:

Near Future Work. Play moves that prevents opponent's moyo ... Consistency, moves when in a disadvantageous position. Special scheme for ko fights ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 23
Provided by: webdocsCs
Category:

less

Transcript and Presenter's Notes

Title: Inside HARUKA


1
Inside HARUKA
  • Written by Ryuichi Kawa
  • Surveyed by Akihiro Kishimto

2
Obstacles to Go-Playing Programs
  • So many exceptions that must be implemented
  • E.g. A B are connected, B C are connected,
    but A C arent
  • Static evaluation v.s. search
  • If possible, evaluate statically
  • If exceptions frequently appears, perform a search

3
Overview of HARUKAs Search Engine
  • 6 routines
  • Fuseki
  • Joseki
  • Life and death
  • Semeai
  • Search around center
  • Local search
  • Each routine returns move and evaluation value
    called deiri(input/output) computation
  • Compute value by my playing first
  • Compute value by opponent playing first
  • Compute 1. 2. And return this value

4
Fuseki Routine
  • Inaccurate but looks stable with occasional
    adjustments
  • Each fuseki move has evaluation values
  • Three-four point, star point 18 points
  • Kakari 17 points
  • Corner enclosure 16 points
  • Extension, splitting move etc 8-15 points based
    on distance and strength of stones

5
Joseki Routine
  • Pattern sized 11 11
  • Immediately makes a move if pattern matches
  • Randomly choose one if more than one pattern
    matches
  • Pattern matches with smaller sizes (9 9 or 7
    7)
  • Regard as promising move
  • Passed to local search engine

6
Life and Death/Semeai Routines
  • Return status (e.g. win, win for Ko, seki) of
    life and death/semeai
  • Occasionally returns incorrect outcome
  • E.g. stones outside of region influences on
    outcome
  • Might be only a part of local search engine?

7
Search around Center
  • Perform 3-ply search for points
    extending/fighting/breaking moyo around center of
    the board
  • of branches lt 10
  • Choose point that doesnt contain any stones for
    8 directions
  • Prepared for programs playing like Go
  • Currently does not work well

8
Overview of Local Search
  • Search range
  • (x,y) stone worth considering
  • R (p,q) p x q y lt 8
  • Ladder is an exception
  • Alpha-beta search
  • Maximum number of branches 10
  • Depth direct 3-5 ply search
  • Spends almost all the time

9
Overview of Local Search (contd)
  • How is a local search performed?
  • Do a local search around the opponents stone
    played last time
  • Do a local search around the stone I played last
    time
  • Compute places that are influenced on by these
    two stones
  • Perform local searches around these places
  • Previous results are stored and updated
  • Re-searches are performed if necessary

10
Position Recognition (1 / 3)
  • From simple notion to complicated (19 features)
  • Whether theres a stone or not, of empty stones
    around a point, ko point
  • Strings and of stones, liberties (up to 4) ,
    of liberties
  • Characteristics of connections
  • 1-point jump, 2-point jump, knights move,
    knights big move
  • Detect points where opponent cant cut
  • kosumi, bamboo, eye, opponents suicide point
  • Points where ate/nuki is possible
  • Points where cut/fukurami is possible

11
Position Recognition (2 / 3)
  • Status on whether white and black stones are
    adjacent
  • Points for connections (1-point jump peep,
    keima-dekiri), double atari
  • Capture search
  • Kiri(cut) search (reuse capture search)
  • Life and death for semi-connected strings and
    influence computation
  • Eye-shape (eye, half-eye, eye with 2 (3, 4, ..)
    consecutive moves, false-eye)

12
Position Recognition (3 / 3)
  • Detect groups
  • Compute boundary and size of moyo for each group
  • Compute how easily group can be escaped and
    connection to other groups
  • Strength, size and importance of group
  • Compute evaluation values for moves played at the
    points adjacent to stones
  • hane, nobi, attach, ate,cut, tsuki-nuke,
    pincer-attach, etc
  • Compute evaluation values for moves played at the
    points not adjacent to stones
  • 1-point jump, kosumi, keima-gake, hazama,
    sarusuberi, etc

13
Capture Search
  • Alpha-beta search TT for string with of
    liberties lt 4
  • of branches lt 8
  • Depth lt 64
  • of node limit lt 1000
  • Performs well if of liberties lt 3
  • Needs a lot of time (sometimes 90 of
    computation) to determine outcome
  • Cannot distinguish unconditional capture from
    capture for ko
  • Need to restrict moves and prove strings arent
    captured as quickly as possible

14
Kiri Search
  • Detect whether target strings are cut at cutting
    points
  • Utilize capture search
  • Stones dropped at cutting points are captured ?
    target strings are not cut
  • Perform only at important points (capture search
    too)
  • points around stone played in the previous move

15
Influence Computation
  • Preliminary compute life and death (strength) of
    stones
  • Compute influence c / d2
  • c strength of stone d distance
  • Influenced up to 1-point jump point
  • Cant go through other stones and bamboo
  • Add up these numbers

16
Strength and Importance of Groups
  • Convert features into of eye points
  • of eye points
  • Eye-shape
  • Possibility to escape, extend, and connect
  • Status of opponents stones

17
Evaluating Points (Not) Adjacent to Stones
  • Have value between 0 255 tuned by hand
  • 0 completely bad move
  • 64 bad move
  • 128 normal move
  • Used if all the stones in the region are (mostly)
    alive

18
Move Generation
  • Moves are generated in the following order
  • Moves having a high priority
  • connecting stones around stone played by opponent
    just before, escaping from atari, 2-line block
  • Double atari, capture, escape
  • Semeai moves
  • Attacking/defending weak stones
  • Moves at points (not) adjacent to stones having
    high evaluation values
  • Ko threats
  • Look at the whole board

19
Evaluation at Leaf Nodes
  1. Position recognition
  2. Verifying if one of two strings can be captured
  3. Detecting Life and death status for group
  4. Adjusting life and death status for group
    considering connections to other groups
  5. Adjusting life and death status for group
    considering opponents groups and semeai
  6. Territory computation

20
Other Issues
  • Adjustment to search results
  • Adding 1-4 points for sente move
  • Effective for yose

21
Near Future Work
  • Play moves that prevents opponents moyo
  • Adjust evaluation values for yose considering
    double-sente, sente, double-gote
  • Have a strategy for detecting a loss
  • Perform 5-ply search without degrading speed
    (realization probability?)
  • Improve capture search

22
Things that Must be Done in the Long Run
  • Strategies based on position evaluation
  • Theres no difference of losses between 0.5 point
    and 100 points
  • Human-like playing style
  • Consistency, moves when in a disadvantageous
    position
  • Special scheme for ko fights
  • Seems to be impossible with searches only
Write a Comment
User Comments (0)
About PowerShow.com