Code Monkey home page Code Monkey logo

Comments (3)

PascalPons avatar PascalPons commented on June 20, 2024 1

Thanks Colin for your feedback, I'll remove the reset line.

You are absolutely right that there is no need to reset the transposition table between each position resolution. The reset was there as my last version was used to generate an opening book (available here https://github.com/PascalPons/connect4/releases/tag/book).
To generate such book I solved all <12 depth position and kept the most complex positions, complexity being measured by the number of explored node. Without reseting the transposition table, the number of explored nodes (and processing time) was highly biased by the previous state of the transposition table.

Second point, be careful that the transposition table is not thread-safe. So make sure to have one instance of solver and transposition table per thread. for a batch resolution, it could be more convenient to run multiple process rather than multi-thread.

from connect4.

ColaColin avatar ColaColin commented on June 20, 2024

I actually call your solver from python via cython, so I have no choice but to make multiple processes :)

from connect4.

selectany avatar selectany commented on June 20, 2024

Thanks Colin for your feedback, I'll remove the reset line.

You are absolutely right that there is no need to reset the transposition table between each position resolution. The reset was there as my last version was used to generate an opening book (available here https://github.com/PascalPons/connect4/releases/tag/book). To generate such book I solved all <12 depth position and kept the most complex positions, complexity being measured by the number of explored node. Without reseting the transposition table, the number of explored nodes (and processing time) was highly biased by the previous state of the transposition table.

Second point, be careful that the transposition table is not thread-safe. So make sure to have one instance of solver and transposition table per thread. for a batch resolution, it could be more convenient to run multiple process rather than multi-thread.

About generating an opening book, you don't have to reset TT if all your positions set (file) you load, are with a same length.

from connect4.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.